diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 75c9d0dca..2191c471e 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/actions/build-electron/action.yml b/.github/actions/build-electron/action.yml index 9e5b1670b..93772d7d9 100644 --- a/.github/actions/build-electron/action.yml +++ b/.github/actions/build-electron/action.yml @@ -85,7 +85,7 @@ runs: APPLE_ID: ${{ env.APPLE_ID }} APPLE_ID_PASSWORD: ${{ env.APPLE_ID_PASSWORD }} WINDOWS_SIGN_EXECUTABLE: ${{ env.WINDOWS_SIGN_EXECUTABLE }} - TRILIUM_ARTIFACT_NAME_HINT: TriliumNextNotes-${{ github.ref_name }}-${{ inputs.os }}-${{ inputs.arch }} + TRILIUM_ARTIFACT_NAME_HINT: TriliumNotes-${{ github.ref_name }}-${{ inputs.os }}-${{ inputs.arch }} run: pnpm nx --project=desktop electron-forge:make -- --arch=${{ inputs.arch }} --platform=${{ inputs.forge_platform }} # Add DMG signing step diff --git a/.github/actions/build-server/action.yml b/.github/actions/build-server/action.yml index c3c6288bc..b0ab05212 100644 --- a/.github/actions/build-server/action.yml +++ b/.github/actions/build-server/action.yml @@ -30,4 +30,4 @@ runs: mkdir -p upload file=$(find ./apps/server/out -name '*.tar.xz' -print -quit) name=${{ github.ref_name }} - cp "$file" "upload/TriliumNextNotes-Server-${name//\//-}-${{ inputs.os }}-${{ inputs.arch }}.tar.xz" + cp "$file" "upload/TriliumNotes-Server-${name//\//-}-${{ inputs.os }}-${{ inputs.arch }}.tar.xz" diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml new file mode 100644 index 000000000..90751b906 --- /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/codeql.yml b/.github/workflows/codeql.yml index 25cd18724..3a241d807 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -13,9 +13,9 @@ name: "CodeQL Advanced" on: push: - branches: [ "develop" ] + branches: [ "main" ] pull_request: - branches: [ "develop" ] + branches: [ "main" ] schedule: - cron: '20 7 * * 0' diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index be719993f..e9d3964c6 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -1,9 +1,9 @@ name: Dev on: push: - branches: [ develop ] + branches: [ main ] pull_request: - branches: [ develop ] + branches: [ main ] concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -12,8 +12,8 @@ concurrency: env: GHCR_REGISTRY: ghcr.io DOCKERHUB_REGISTRY: docker.io - IMAGE_NAME: ${{ github.repository_owner }}/notes - TEST_TAG: ${{ github.repository_owner }}/notes:test + IMAGE_NAME: ${{ github.repository}} + TEST_TAG: ${{ github.repository}}:test permissions: pull-requests: write # for PR comments @@ -39,7 +39,7 @@ jobs: - uses: nrwl/nx-set-shas@v4 - name: Check affected - run: pnpm nx affected --verbose -t typecheck build rebuild-deps + run: pnpm nx affected --verbose -t typecheck build rebuild-deps test-build test_dev: name: Test development @@ -77,6 +77,7 @@ jobs: - name: Trigger client build run: pnpm nx run client:build - name: Send client bundle stats to RelativeCI + if: false uses: relative-ci/agent-action@v3 with: webpackStatsFile: ./apps/client/dist/webpack-stats.json diff --git a/.github/workflows/main-docker.yml b/.github/workflows/main-docker.yml index 2fe298217..40c5149c7 100644 --- a/.github/workflows/main-docker.yml +++ b/.github/workflows/main-docker.yml @@ -1,7 +1,7 @@ on: push: branches: - - "develop" + - "main" - "feature/update**" - "feature/server_esm**" paths-ignore: @@ -14,8 +14,8 @@ on: env: GHCR_REGISTRY: ghcr.io DOCKERHUB_REGISTRY: docker.io - IMAGE_NAME: ${{ github.repository_owner }}/notes - TEST_TAG: ${{ github.repository_owner }}/notes:test + IMAGE_NAME: ${{ github.repository}} + TEST_TAG: ${{ github.repository}}:test permissions: contents: read @@ -53,7 +53,7 @@ jobs: run: pnpm install --frozen-lockfile - name: Install Playwright Browsers - run: pnpx playwright install --with-deps + run: pnpm exec playwright install --with-deps - name: Run the TypeScript build run: pnpm run server:build @@ -82,7 +82,15 @@ jobs: require-healthy: true - name: Run Playwright tests - run: TRILIUM_DOCKER=1 TRILIUM_PORT=8082 pnpx nx run server-e2e:e2e + run: TRILIUM_DOCKER=1 TRILIUM_PORT=8082 pnpm exec nx run server-e2e:e2e + + - name: Upload Playwright trace + if: failure() + uses: actions/upload-artifact@v4 + with: + name: Playwright trace (${{ matrix.dockerfile }}) + path: test-output/playwright/output + - uses: actions/upload-artifact@v4 if: ${{ !cancelled() }} with: diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 7504eca93..990c8dfb9 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -11,7 +11,8 @@ on: pull_request: paths: - .github/actions/build-electron/* - - forge.config.cjs + - .github/workflows/nightly.yml + - forge.config.ts concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -76,7 +77,7 @@ jobs: WINDOWS_SIGN_EXECUTABLE: ${{ vars.WINDOWS_SIGN_EXECUTABLE }} - name: Publish release - uses: softprops/action-gh-release@v2.2.2 + uses: softprops/action-gh-release@v2.3.2 if: ${{ github.event_name != 'pull_request' }} with: make_latest: false @@ -91,7 +92,7 @@ jobs: uses: actions/upload-artifact@v4 if: ${{ github.event_name == 'pull_request' }} with: - name: TriliumNextNotes ${{ matrix.os.name }} ${{ matrix.arch }} + name: TriliumNotes ${{ matrix.os.name }} ${{ matrix.arch }} path: apps/desktop/upload nightly-server: @@ -116,7 +117,7 @@ jobs: arch: ${{ matrix.arch }} - name: Publish release - uses: softprops/action-gh-release@v2.2.2 + uses: softprops/action-gh-release@v2.3.2 if: ${{ github.event_name != 'pull_request' }} with: make_latest: false diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml index 3ad04a23a..9e267ad45 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/playwright.yml @@ -3,7 +3,7 @@ name: playwright on: push: branches: - - master + - main pull_request: permissions: @@ -33,7 +33,7 @@ jobs: - name: Install dependencies run: pnpm install --frozen-lockfile - - run: pnpx playwright install --with-deps + - run: pnpm exec playwright install --with-deps - uses: nrwl/nx-set-shas@v4 - name: Install playwright run: pnpm exec playwright install @@ -41,4 +41,4 @@ jobs: # - run: npx nx-cloud record -- echo Hello World # Nx Affected runs only tasks affected by the changes in this PR/commit. Learn more: https://nx.dev/ci/features/affected # When you enable task distribution, run the e2e-ci task instead of e2e - - run: pnpx nx affected -t e2e + - run: pnpm exec nx affected -t e2e --exclude desktop-e2e diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5dee14fed..b05cb4939 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,7 +23,7 @@ jobs: shell: bash forge_platform: darwin - name: linux - image: ubuntu-latest + image: ubuntu-22.04 shell: bash forge_platform: linux - name: windows @@ -114,13 +114,13 @@ jobs: path: upload - name: Publish stable release - uses: softprops/action-gh-release@v2.2.2 + uses: softprops/action-gh-release@v2.3.2 with: draft: false body_path: docs/Release Notes/Release Notes/${{ github.ref_name }}.md fail_on_unmatched_files: true files: upload/*.* - discussion_category_name: Announcements + discussion_category_name: Releases make_latest: ${{ !contains(github.ref, 'rc') }} prerelease: ${{ contains(github.ref, 'rc') }} token: ${{ secrets.RELEASE_PAT }} diff --git a/.gitignore b/.gitignore index ecb8c9edf..d7694258d 100644 --- a/.gitignore +++ b/.gitignore @@ -45,4 +45,5 @@ upload .rollup.cache *.tsbuildinfo -/result \ No newline at end of file +/result +.svelte-kit \ No newline at end of file diff --git a/.mailmap b/.mailmap index d0f5fedf0..33287fa2c 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 156ca6d39..fcc226927 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -22.16.0 \ No newline at end of file +22.17.0 \ No newline at end of file diff --git a/.nxignore b/.nxignore index bac1baa0e..7290b55e6 100644 --- a/.nxignore +++ b/.nxignore @@ -1,7 +1,2 @@ _regroup -_regroup_monorepo - -# Asset copying respects .gitignore / .nxignore for some reason. -# See https://github.com/nrwl/nx/issues/20309 -!dist -!node_modules \ No newline at end of file +_regroup_monorepo \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 13e5a892d..e64c42352 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -9,6 +9,8 @@ "redhat.vscode-yaml", "tobermory.es6-string-html", "vitest.explorer", - "yzhang.markdown-all-in-one" + "yzhang.markdown-all-in-one", + "svelte.svelte-vscode", + "bradlc.vscode-tailwindcss" ] } diff --git a/README.md b/README.md index 7caf50479..540d5f226 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,14 @@ -# TriliumNext Notes +# Trilium Notes + +Donate: ![GitHub Sponsors](https://img.shields.io/github/sponsors/eliandoran?style=flat-square) ![LiberaPay patrons](https://img.shields.io/liberapay/patrons/ElianDoran?style=flat-square) -![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) [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) -TriliumNext Notes is a free and open-source, cross-platform hierarchical note taking application with focus on building large personal knowledge bases. +Trilium Notes is a free and open-source, cross-platform hierarchical note taking application with focus on building large personal knowledge bases. See [screenshots](https://triliumnext.github.io/Docs/Wiki/screenshot-tour) for quick overview: @@ -22,7 +23,7 @@ See [screenshots](https://triliumnext.github.io/Docs/Wiki/screenshot-tour) for q * Seamless [note versioning](https://triliumnext.github.io/Docs/Wiki/note-revisions) * Note [attributes](https://triliumnext.github.io/Docs/Wiki/attributes) can be used for note organization, querying and advanced [scripting](https://triliumnext.github.io/Docs/Wiki/scripts) * UI available in English, German, Spanish, French, Romanian, and Chinese (simplified and traditional) -* Direct [OpenID and TOTP integration](.docs/User%20Guide/User%20Guide/Installation%20%26%20Setup/Server%20Installation/Multi-Factor%20Authentication.md") for more secure login +* Direct [OpenID and TOTP integration](./docs/User%20Guide/User%20Guide/Installation%20%26%20Setup/Server%20Installation/Multi-Factor%20Authentication.md) for more secure login * [Synchronization](https://triliumnext.github.io/Docs/Wiki/synchronization) with self-hosted sync server * there's a [3rd party service for hosting synchronisation server](https://trilium.cc/paid-hosting) * [Sharing](https://triliumnext.github.io/Docs/Wiki/sharing) (publishing) notes to public internet @@ -119,8 +120,8 @@ To install TriliumNext on your own server (including via Docker from [Dockerhub] 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 +130,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 +139,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 ``` @@ -153,7 +154,7 @@ Please view the [documentation guide](./docs/Developer%20Guide/Developer%20Guide ## 👏 Shoutouts * [CKEditor 5](https://github.com/ckeditor/ckeditor5) - best WYSIWYG editor on the market, very interactive and listening team -* [FancyTree](https://github.com/mar10/fancytree) - very feature rich tree library without real competition. TriliumNext Notes would not be the same without it. +* [FancyTree](https://github.com/mar10/fancytree) - very feature rich tree library without real competition. Trilium Notes would not be the same without it. * [CodeMirror](https://github.com/codemirror/CodeMirror) - code editor with support for huge amount of languages * [jsPlumb](https://github.com/jsplumb/jsplumb) - visual connectivity library without competition. Used in [relation maps](https://triliumnext.github.io/Docs/Wiki/relation-map.html) and [link maps](https://triliumnext.github.io/Docs/Wiki/note-map.html#link-map) diff --git a/_regroup/bin/generate_document.ts b/_regroup/bin/generate_document.ts index f9d327116..793efc105 100644 --- a/_regroup/bin/generate_document.ts +++ b/_regroup/bin/generate_document.ts @@ -91,5 +91,5 @@ async function start() { } // @TriliumNextTODO sqlInit.dbReady never seems to resolve so program hangs -// see https://github.com/TriliumNext/Notes/issues/1020 +// see https://github.com/TriliumNext/Trilium/issues/1020 sqlInit.dbReady.then(cls.wrap(start)).catch((err) => console.error(err)); diff --git a/_regroup/bin/release-flatpack.sh b/_regroup/bin/release-flatpack.sh index f28ff7adb..31e42881b 100644 --- a/_regroup/bin/release-flatpack.sh +++ b/_regroup/bin/release-flatpack.sh @@ -24,7 +24,7 @@ if ! git diff-index --quiet HEAD --; then exit 1 fi -BASE_BRANCH=master +BASE_BRANCH=main if [[ "$VERSION" == *"beta"* ]]; then BASE_BRANCH=beta diff --git a/_regroup/bin/release.sh b/_regroup/bin/release.sh index db3c62e4b..fe9a65a36 100644 --- a/_regroup/bin/release.sh +++ b/_regroup/bin/release.sh @@ -47,11 +47,3 @@ echo "Tagging commit with $TAG" git tag $TAG git push origin $TAG - -echo "Updating master" - -git fetch -git checkout master -git reset --hard origin/master -git merge origin/develop -git push \ No newline at end of file diff --git a/_regroup/bin/translation.sh b/_regroup/bin/translation.sh index 4375303b9..15d211ea7 100644 --- a/_regroup/bin/translation.sh +++ b/_regroup/bin/translation.sh @@ -25,15 +25,16 @@ stats() { # Print the number of existing strings on the JSON files for each locale s=$(number_of_keys "${paths[0]}/en/server.json") c=$(number_of_keys "${paths[1]}/en/translation.json") - echo "| locale |server strings |client strings |" - echo "|--------|---------------|---------------|" - echo "| en | ${s} | ${c} |" + echo "| locale | server strings | client strings |" + echo "|--------|----------------|----------------|" + echo "| en | ${s} | ${c} |" + echo "|--------|----------------|----------------|" for locale in "${locales[@]}"; do s=$(number_of_keys "${paths[0]}/${locale}/server.json") c=$(number_of_keys "${paths[1]}/${locale}/translation.json") n1=$(((8 - ${#locale}) / 2)) n2=$((n1 == 1 ? n1 + 1 : n1)) - echo "|$(printf "%${n1}s")${locale}$(printf "%${n2}s")| ${s} | ${c} |" + echo "|$(printf "%${n1}s")${locale}$(printf "%${n2}s")| ${s} | ${c} |" done } @@ -78,7 +79,10 @@ file_path="$( cd -- "$(dirname "${0}")" >/dev/null 2>&1 || exit pwd -P )" -paths=("${file_path}/../translations/" "${file_path}/../src/public/translations/") +paths=( + "${file_path}/../../apps/server/src/assets/translations/" + "${file_path}/../../apps/client/src/translations/" +) locales=(cn de es fr pt_br ro tw) if [ $# -eq 1 ]; then diff --git a/_regroup/eslint.config.js b/_regroup/eslint.config.js index 2f2b2c036..7c906beb2 100644 --- a/_regroup/eslint.config.js +++ b/_regroup/eslint.config.js @@ -44,7 +44,6 @@ export default tseslint.config( "dist/*", "docs/*", "demo/*", - "libraries/*", "src/public/app-dist/*", "src/public/app/doc_notes/*" ] diff --git a/_regroup/eslint.format.config.js b/_regroup/eslint.format.config.js index 23fbb6caf..9dbfd78b2 100644 --- a/_regroup/eslint.format.config.js +++ b/_regroup/eslint.format.config.js @@ -38,7 +38,6 @@ export default [ "dist/*", "docs/*", "demo/*", - "libraries/*", // TriliumNextTODO: check if we want to format packages here as well - for now skipping it "packages/*", "src/public/app-dist/*", diff --git a/_regroup/integration-tests/update_check.spec.ts b/_regroup/integration-tests/update_check.spec.ts index 8cb7f4bf2..38e28bf22 100644 --- a/_regroup/integration-tests/update_check.spec.ts +++ b/_regroup/integration-tests/update_check.spec.ts @@ -8,5 +8,5 @@ test("Displays update badge when there is a version available", async ({ page }) await page.getByText(`Version ${expectedVersion} is available,`).click(); const page1 = await page.waitForEvent("popup"); - expect(page1.url()).toBe(`https://github.com/TriliumNext/Notes/releases/tag/v${expectedVersion}`); + expect(page1.url()).toBe(`https://github.com/TriliumNext/Trilium/releases/tag/v${expectedVersion}`); }); diff --git a/_regroup/package.json b/_regroup/package.json index f477dd550..6c2329b50 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.52.0", - "@stylistic/eslint-plugin": "4.4.1", + "@playwright/test": "1.54.1", + "@stylistic/eslint-plugin": "5.1.0", "@types/express": "5.0.3", - "@types/node": "22.15.30", + "@types/node": "22.16.3", "@types/yargs": "17.0.33", - "@vitest/coverage-v8": "3.2.3", - "eslint": "9.28.0", + "@vitest/coverage-v8": "3.2.4", + "eslint": "9.31.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.5", + "typedoc": "0.28.7", "typedoc-plugin-missing-exports": "4.0.0" }, "optionalDependencies": { diff --git a/apps/client/.env b/apps/client/.env new file mode 100644 index 000000000..78b4a229b --- /dev/null +++ b/apps/client/.env @@ -0,0 +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 +VITE_CKEDITOR_ENABLE_INSPECTOR=false \ No newline at end of file diff --git a/apps/client/.env.production b/apps/client/.env.production new file mode 100644 index 000000000..efd1fd517 --- /dev/null +++ b/apps/client/.env.production @@ -0,0 +1 @@ +VITE_CKEDITOR_ENABLE_INSPECTOR=false diff --git a/apps/client/package.json b/apps/client/package.json index 0b33bdacd..de3507c8f 100644 --- a/apps/client/package.json +++ b/apps/client/package.json @@ -1,25 +1,25 @@ { "name": "@triliumnext/client", - "version": "0.94.1", + "version": "0.96.0", "description": "JQuery-based client for TriliumNext, used for both web and desktop (via Electron)", "private": true, "license": "AGPL-3.0-only", "author": { - "name": "TriliumNext Notes Team", + "name": "Trilium Notes Team", "email": "contact@eliandoran.me", "url": "https://github.com/TriliumNext/Notes" }, "dependencies": { - "@eslint/js": "9.28.0", + "@eslint/js": "9.31.0", "@excalidraw/excalidraw": "0.18.0", - "@fullcalendar/core": "6.1.17", - "@fullcalendar/daygrid": "6.1.17", - "@fullcalendar/interaction": "6.1.17", - "@fullcalendar/list": "6.1.17", - "@fullcalendar/multimonth": "6.1.17", - "@fullcalendar/timegrid": "6.1.17", - "@mermaid-js/layout-elk": "0.1.7", - "@mind-elixir/node-menu": "1.0.5", + "@fullcalendar/core": "6.1.18", + "@fullcalendar/daygrid": "6.1.18", + "@fullcalendar/interaction": "6.1.18", + "@fullcalendar/list": "6.1.18", + "@fullcalendar/multimonth": "6.1.18", + "@fullcalendar/timegrid": "6.1.18", + "@mermaid-js/layout-elk": "0.1.8", + "@mind-elixir/node-menu": "5.0.0", "@popperjs/core": "2.11.8", "@triliumnext/ckeditor5": "workspace:*", "@triliumnext/codemirror": "workspace:*", @@ -27,15 +27,15 @@ "@triliumnext/highlightjs": "workspace:*", "@triliumnext/share-theme": "workspace:*", "autocomplete.js": "0.38.1", - "bootstrap": "5.3.6", + "bootstrap": "5.3.7", "boxicons": "2.1.4", "dayjs": "1.11.13", "dayjs-plugin-utc": "0.1.2", "debounce": "2.2.0", "draggabilly": "3.0.0", - "force-graph": "1.49.6", - "globals": "16.2.0", - "i18next": "25.2.1", + "force-graph": "1.50.1", + "globals": "16.3.0", + "i18next": "25.3.2", "i18next-http-backend": "3.0.2", "jquery": "3.7.1", "jquery-hotkeys": "0.2.2", @@ -46,36 +46,40 @@ "leaflet": "1.9.4", "leaflet-gpx": "2.2.0", "mark.js": "8.11.1", - "marked": "15.0.12", - "mermaid": "11.6.0", - "mind-elixir": "4.6.0", + "marked": "16.0.0", + "mermaid": "11.8.1", + "mind-elixir": "5.0.2", "normalize.css": "8.0.1", "panzoom": "9.4.3", - "react": "19.1.0", - "react-dom": "19.1.0", + "preact": "10.26.9", "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", "@types/bootstrap": "5.2.10", "@types/jquery": "3.5.32", - "@types/leaflet": "1.9.18", + "@types/leaflet": "1.9.20", "@types/leaflet-gpx": "1.3.7", "@types/mark.js": "8.11.12", - "@types/react": "19.1.7", - "@types/react-dom": "19.1.6", + "@types/tabulator-tables": "6.2.7", "copy-webpack-plugin": "13.0.0", - "happy-dom": "17.6.3", + "happy-dom": "18.0.1", "script-loader": "0.7.2", - "vite-plugin-static-copy": "3.0.0" + "vite-plugin-static-copy": "3.1.1" }, "nx": { "name": "client", "targets": { "serve": { - "dependsOn": ["^build"] + "dependsOn": [ + "^build" + ] + }, + "circular-deps": { + "command": "pnpx dpdm -T {projectRoot}/src/**/*.ts --tree=false --warning=false --skip-dynamic-imports=circular" } } } diff --git a/apps/client/src-example/app/app.element.css b/apps/client/src-example/app/app.element.css deleted file mode 100644 index 27d098404..000000000 --- a/apps/client/src-example/app/app.element.css +++ /dev/null @@ -1,424 +0,0 @@ -/* - * Remove template code below - */ - html { - -webkit-text-size-adjust: 100%; - font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, - 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, - 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', - 'Noto Color Emoji'; - line-height: 1.5; - tab-size: 4; - scroll-behavior: smooth; - } - body { - font-family: inherit; - line-height: inherit; - margin: 0; - } - h1, - h2, - p, - pre { - margin: 0; - } - *, - ::before, - ::after { - box-sizing: border-box; - border-width: 0; - border-style: solid; - border-color: currentColor; - } - h1, - h2 { - font-size: inherit; - font-weight: inherit; - } - a { - color: inherit; - text-decoration: inherit; - } - pre { - font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, - 'Liberation Mono', 'Courier New', monospace; - } - svg { - display: block; - vertical-align: middle; - } - - svg { - shape-rendering: auto; - text-rendering: optimizeLegibility; - } - pre { - background-color: rgba(55, 65, 81, 1); - border-radius: 0.25rem; - color: rgba(229, 231, 235, 1); - font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, - 'Liberation Mono', 'Courier New', monospace; - overflow: scroll; - padding: 0.5rem 0.75rem; - } - - .shadow { - box-shadow: 0 0 #0000, 0 0 #0000, 0 10px 15px -3px rgba(0, 0, 0, 0.1), - 0 4px 6px -2px rgba(0, 0, 0, 0.05); - } - .rounded { - border-radius: 1.5rem; - } - - .wrapper { - width: 100%; - } - .container { - margin-left: auto; - margin-right: auto; - max-width: 768px; - padding-bottom: 3rem; - padding-left: 1rem; - padding-right: 1rem; - color: rgba(55, 65, 81, 1); - width: 100%; - } - #welcome { - margin-top: 2.5rem; - } - #welcome h1 { - font-size: 3rem; - font-weight: 500; - letter-spacing: -0.025em; - line-height: 1; - } - #welcome span { - display: block; - font-size: 1.875rem; - font-weight: 300; - line-height: 2.25rem; - margin-bottom: 0.5rem; - } - #hero { - align-items: center; - background-color: hsla(214, 62%, 21%, 1); - border: none; - box-sizing: border-box; - color: rgba(55, 65, 81, 1); - display: grid; - grid-template-columns: 1fr; - margin-top: 3.5rem; - } - #hero .text-container { - color: rgba(255, 255, 255, 1); - padding: 3rem 2rem; - } - #hero .text-container h2 { - font-size: 1.5rem; - line-height: 2rem; - position: relative; - } - #hero .text-container h2 svg { - color: hsla(162, 47%, 50%, 1); - height: 2rem; - left: -0.25rem; - position: absolute; - top: 0; - width: 2rem; - } - #hero .text-container h2 span { - margin-left: 2.5rem; - } - #hero .text-container a { - background-color: rgba(255, 255, 255, 1); - border-radius: 0.75rem; - color: rgba(55, 65, 81, 1); - display: inline-block; - margin-top: 1.5rem; - padding: 1rem 2rem; - text-decoration: inherit; - } - #hero .logo-container { - display: none; - justify-content: center; - padding-left: 2rem; - padding-right: 2rem; - } - #hero .logo-container svg { - color: rgba(255, 255, 255, 1); - width: 66.666667%; - } - - #middle-content { - align-items: flex-start; - display: grid; - gap: 4rem; - grid-template-columns: 1fr; - margin-top: 3.5rem; - } - - #learning-materials { - padding: 2.5rem 2rem; - } - #learning-materials h2 { - font-weight: 500; - font-size: 1.25rem; - letter-spacing: -0.025em; - line-height: 1.75rem; - padding-left: 1rem; - padding-right: 1rem; - } - .list-item-link { - align-items: center; - border-radius: 0.75rem; - display: flex; - margin-top: 1rem; - padding: 1rem; - transition-property: background-color, border-color, color, fill, stroke, - opacity, box-shadow, transform, filter, backdrop-filter, - -webkit-backdrop-filter; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; - width: 100%; - } - .list-item-link svg:first-child { - margin-right: 1rem; - height: 1.5rem; - transition-property: background-color, border-color, color, fill, stroke, - opacity, box-shadow, transform, filter, backdrop-filter, - -webkit-backdrop-filter; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; - width: 1.5rem; - } - .list-item-link > span { - flex-grow: 1; - font-weight: 400; - transition-property: background-color, border-color, color, fill, stroke, - opacity, box-shadow, transform, filter, backdrop-filter, - -webkit-backdrop-filter; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; - } - .list-item-link > span > span { - color: rgba(107, 114, 128, 1); - display: block; - flex-grow: 1; - font-size: 0.75rem; - font-weight: 300; - line-height: 1rem; - transition-property: background-color, border-color, color, fill, stroke, - opacity, box-shadow, transform, filter, backdrop-filter, - -webkit-backdrop-filter; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; - } - .list-item-link svg:last-child { - height: 1rem; - transition-property: all; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; - width: 1rem; - } - .list-item-link:hover { - color: rgba(255, 255, 255, 1); - background-color: hsla(162, 47%, 50%, 1); - } - .list-item-link:hover > span { - } - .list-item-link:hover > span > span { - color: rgba(243, 244, 246, 1); - } - .list-item-link:hover svg:last-child { - transform: translateX(0.25rem); - } - - #other-links { - } - .button-pill { - padding: 1.5rem 2rem; - transition-duration: 300ms; - transition-property: background-color, border-color, color, fill, stroke, - opacity, box-shadow, transform, filter, backdrop-filter, - -webkit-backdrop-filter; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - align-items: center; - display: flex; - } - .button-pill svg { - transition-property: background-color, border-color, color, fill, stroke, - opacity, box-shadow, transform, filter, backdrop-filter, - -webkit-backdrop-filter; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; - flex-shrink: 0; - width: 3rem; - } - .button-pill > span { - letter-spacing: -0.025em; - font-weight: 400; - font-size: 1.125rem; - line-height: 1.75rem; - padding-left: 1rem; - padding-right: 1rem; - } - .button-pill span span { - display: block; - font-size: 0.875rem; - font-weight: 300; - line-height: 1.25rem; - } - .button-pill:hover svg, - .button-pill:hover { - color: rgba(255, 255, 255, 1) !important; - } - #nx-console:hover { - background-color: rgba(0, 122, 204, 1); - } - #nx-console svg { - color: rgba(0, 122, 204, 1); - } - #nx-console-jetbrains { - margin-top: 2rem; - } - #nx-console-jetbrains:hover { - background-color: rgba(255, 49, 140, 1); - } - #nx-console-jetbrains svg { - color: rgba(255, 49, 140, 1); - } - #nx-repo:hover { - background-color: rgba(24, 23, 23, 1); - } - #nx-repo svg { - color: rgba(24, 23, 23, 1); - } - - #nx-cloud { - margin-bottom: 2rem; - margin-top: 2rem; - padding: 2.5rem 2rem; - } - #nx-cloud > div { - align-items: center; - display: flex; - } - #nx-cloud > div svg { - border-radius: 0.375rem; - flex-shrink: 0; - width: 3rem; - } - #nx-cloud > div h2 { - font-size: 1.125rem; - font-weight: 400; - letter-spacing: -0.025em; - line-height: 1.75rem; - padding-left: 1rem; - padding-right: 1rem; - } - #nx-cloud > div h2 span { - display: block; - font-size: 0.875rem; - font-weight: 300; - line-height: 1.25rem; - } - #nx-cloud p { - font-size: 1rem; - line-height: 1.5rem; - margin-top: 1rem; - } - #nx-cloud pre { - margin-top: 1rem; - } - #nx-cloud a { - color: rgba(107, 114, 128, 1); - display: block; - font-size: 0.875rem; - line-height: 1.25rem; - margin-top: 1.5rem; - text-align: right; - } - #nx-cloud a:hover { - text-decoration: underline; - } - - #commands { - padding: 2.5rem 2rem; - - margin-top: 3.5rem; - } - #commands h2 { - font-size: 1.25rem; - font-weight: 400; - letter-spacing: -0.025em; - line-height: 1.75rem; - padding-left: 1rem; - padding-right: 1rem; - } - #commands p { - font-size: 1rem; - font-weight: 300; - line-height: 1.5rem; - margin-top: 1rem; - padding-left: 1rem; - padding-right: 1rem; - } - details { - align-items: center; - display: flex; - margin-top: 1rem; - padding-left: 1rem; - padding-right: 1rem; - width: 100%; - } - details pre > span { - color: rgba(181, 181, 181, 1); - } - summary { - border-radius: 0.5rem; - display: flex; - font-weight: 400; - padding: 0.5rem; - cursor: pointer; - transition-property: background-color, border-color, color, fill, stroke, - opacity, box-shadow, transform, filter, backdrop-filter, - -webkit-backdrop-filter; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; - } - summary:hover { - background-color: rgba(243, 244, 246, 1); - } - summary svg { - height: 1.5rem; - margin-right: 1rem; - width: 1.5rem; - } - - #love { - color: rgba(107, 114, 128, 1); - font-size: 0.875rem; - line-height: 1.25rem; - margin-top: 3.5rem; - opacity: 0.6; - text-align: center; - } - #love svg { - color: rgba(252, 165, 165, 1); - width: 1.25rem; - height: 1.25rem; - display: inline; - margin-top: -0.25rem; - } - - @media screen and (min-width: 768px) { - #hero { - grid-template-columns: repeat(2, minmax(0, 1fr)); - } - #hero .logo-container { - display: flex; - } - #middle-content { - grid-template-columns: repeat(2, minmax(0, 1fr)); - } - } diff --git a/apps/client/src-example/app/app.element.spec.ts b/apps/client/src-example/app/app.element.spec.ts deleted file mode 100644 index 2c12da184..000000000 --- a/apps/client/src-example/app/app.element.spec.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { AppElement } from './app.element'; - -describe('AppElement', () => { - let app: AppElement; - - beforeEach(() => { - app = new AppElement(); - }); - - it('should create successfully', () => { - expect(app).toBeTruthy(); - }); - - it('should have a greeting', () => { - app.connectedCallback(); - - expect(app.querySelector('h1').innerHTML).toContain( - 'Welcome @triliumnext/client' - ); - }); -}); diff --git a/apps/client/src-example/app/app.element.ts b/apps/client/src-example/app/app.element.ts deleted file mode 100644 index fab80aa49..000000000 --- a/apps/client/src-example/app/app.element.ts +++ /dev/null @@ -1,409 +0,0 @@ -import './app.element.css'; - -export class AppElement extends HTMLElement { - public static observedAttributes = [ - - ]; - - connectedCallback() { - const title = '@triliumnext/client'; - this.innerHTML = ` -
-
- -
-

- Hello there, - Welcome ${title} 👋 -

-
- - -
-
-

- - - - You're up and running -

- What's next? -
-
- - - -
-
- - - - - -
-

Next steps

-

Here are some things you can do with Nx:

-
- - - - - Add UI library - -
# Generate UI lib
-nx g @nx/angular:lib ui
-
-# Add a component
-nx g @nx/angular:component ui/src/lib/button
-
-
- - - - - View interactive project graph - -
nx graph
-
-
- - - - - Run affected commands - -
# see what's been affected by changes
-nx affected:graph
-
-# run tests for current changes
-nx affected:test
-
-# run e2e tests for current changes
-nx affected:e2e
-
-
- -

- Carefully crafted with - - - -

-
-
- `; - } -} -customElements.define('triliumnext-root', AppElement); diff --git a/apps/client/src-example/assets/.gitkeep b/apps/client/src-example/assets/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/apps/client/src-example/favicon.ico b/apps/client/src-example/favicon.ico deleted file mode 100644 index 317ebcb23..000000000 Binary files a/apps/client/src-example/favicon.ico and /dev/null differ diff --git a/apps/client/src-example/index.html b/apps/client/src-example/index.html deleted file mode 100644 index e206d4837..000000000 --- a/apps/client/src-example/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - Client - - - - - - - - - diff --git a/apps/client/src-example/main.ts b/apps/client/src-example/main.ts deleted file mode 100644 index fdb879ded..000000000 --- a/apps/client/src-example/main.ts +++ /dev/null @@ -1 +0,0 @@ -import './app/app.element'; diff --git a/apps/client/src-example/styles.css b/apps/client/src-example/styles.css deleted file mode 100644 index 90d4ee007..000000000 --- a/apps/client/src-example/styles.css +++ /dev/null @@ -1 +0,0 @@ -/* You can add global styles to this file, and also import other style files */ diff --git a/apps/client/src/components/app_context.ts b/apps/client/src/components/app_context.ts index f7a5dfb1e..0c155c1e8 100644 --- a/apps/client/src/components/app_context.ts +++ b/apps/client/src/components/app_context.ts @@ -1,5 +1,4 @@ import froca from "../services/froca.js"; -import bundleService from "../services/bundle.js"; import RootCommandExecutor from "./root_command_executor.js"; import Entrypoints, { type SqlExecuteResults } from "./entrypoints.js"; import options from "../services/options.js"; @@ -28,6 +27,7 @@ import type { NativeImage, TouchBar } from "electron"; import TouchBarComponent from "./touch_bar.js"; import type { CKTextEditor } from "@triliumnext/ckeditor5"; import type CodeMirror from "@triliumnext/codemirror"; +import { StartupChecks } from "./startup_checks.js"; interface Layout { getRootWidget: (appContext: AppContext) => RootWidget; @@ -122,12 +122,14 @@ export type CommandMappings = { showImportDialog: CommandData & { noteId: string }; openNewNoteSplit: NoteCommandData; openInWindow: NoteCommandData; + openInPopup: CommandData & { noteIdOrPath: string; }; openNoteInNewTab: CommandData; openNoteInNewSplit: CommandData; openNoteInNewWindow: CommandData; openAboutDialog: CommandData; hideFloatingButtons: {}; hideLeftPane: CommandData; + showCpuArchWarning: CommandData; showLeftPane: CommandData; hoistNote: CommandData & { noteId: string }; leaveProtectedSession: CommandData; @@ -139,6 +141,7 @@ export type CommandMappings = { }; openInTab: ContextMenuCommandData; openNoteInSplit: ContextMenuCommandData; + openNoteInPopup: ContextMenuCommandData; toggleNoteHoisting: ContextMenuCommandData; insertNoteAfter: ContextMenuCommandData; insertChildNote: ContextMenuCommandData; @@ -260,7 +263,6 @@ export type CommandMappings = { // Geomap deleteFromMap: { noteId: string }; - openGeoLocation: { noteId: string; event: JQuery.MouseDownEvent }; toggleZenMode: CommandData; @@ -279,6 +281,7 @@ export type CommandMappings = { buildIcon(name: string): NativeImage; }; refreshTouchBar: CommandData; + reloadTextEditor: CommandData; }; type EventMappings = { @@ -467,13 +470,21 @@ export class AppContext extends Component { this.tabManager.loadTabs(); + const bundleService = (await import("../services/bundle.js")).default; setTimeout(() => bundleService.executeStartupBundles(), 2000); } initComponents() { this.tabManager = new TabManager(); - this.components = [this.tabManager, new RootCommandExecutor(), new Entrypoints(), new MainTreeExecutors(), new ShortcutComponent()]; + this.components = [ + this.tabManager, + new RootCommandExecutor(), + new Entrypoints(), + new MainTreeExecutors(), + new ShortcutComponent(), + new StartupChecks() + ]; if (utils.isMobile()) { this.components.push(new MobileScreenSwitcherExecutor()); diff --git a/apps/client/src/components/component.ts b/apps/client/src/components/component.ts index e2897d1f3..8686a7bb9 100644 --- a/apps/client/src/components/component.ts +++ b/apps/client/src/components/component.ts @@ -93,11 +93,7 @@ export class TypedComponent> { if (fun) { return this.callMethod(fun, data); - } else { - if (!this.parent) { - throw new Error(`Component "${this.componentId}" does not have a parent attached to propagate a command.`); - } - + } else if (this.parent) { return this.parent.triggerCommand(name, data); } } diff --git a/apps/client/src/components/note_context.ts b/apps/client/src/components/note_context.ts index 11d32cf0d..75c66b1bc 100644 --- a/apps/client/src/components/note_context.ts +++ b/apps/client/src/components/note_context.ts @@ -12,6 +12,7 @@ import type FNote from "../entities/fnote.js"; import type TypeWidget from "../widgets/type_widgets/type_widget.js"; import type { CKTextEditor } from "@triliumnext/ckeditor5"; import type CodeMirror from "@triliumnext/codemirror"; +import { closeActiveDialog } from "../services/dialog.js"; export interface SetNoteOpts { triggerSwitchEvent?: unknown; @@ -83,7 +84,7 @@ class NoteContext extends Component implements EventListener<"entitiesReloaded"> await this.triggerEvent("beforeNoteSwitch", { noteContext: this }); - utils.closeActiveDialog(); + closeActiveDialog(); this.notePath = resolvedNotePath; this.viewScope = opts.viewScope; @@ -314,14 +315,38 @@ class NoteContext extends Component implements EventListener<"entitiesReloaded"> } hasNoteList() { - return ( - this.note && - ["default", "contextual-help"].includes(this.viewScope?.viewMode ?? "") && - (this.note.hasChildren() || this.note.getLabelValue("viewType") === "calendar") && - ["book", "text", "code"].includes(this.note.type) && - this.note.mime !== "text/x-sqlite;schema=trilium" && - !this.note.isLabelTruthy("hideChildrenOverview") - ); + const note = this.note; + + if (!note) { + return false; + } + + if (!["default", "contextual-help"].includes(this.viewScope?.viewMode ?? "")) { + return false; + } + + // Some book types must always display a note list, even if no children. + if (["calendar", "table", "geoMap"].includes(note.getLabelValue("viewType") ?? "")) { + return true; + } + + if (!note.hasChildren()) { + return false; + } + + if (!["book", "text", "code"].includes(note.type)) { + return false; + } + + if (note.mime === "text/x-sqlite;schema=trilium") { + return false; + } + + if (note.isLabelTruthy("hideChildrenOverview")) { + return false; + } + + return true; } async getTextEditor(callback?: GetTextEditorCallback) { diff --git a/apps/client/src/components/startup_checks.ts b/apps/client/src/components/startup_checks.ts new file mode 100644 index 000000000..b320d7e13 --- /dev/null +++ b/apps/client/src/components/startup_checks.ts @@ -0,0 +1,26 @@ +import server from "../services/server"; +import Component from "./component"; + +// TODO: Deduplicate. +interface CpuArchResponse { + isCpuArchMismatch: boolean; +} + +export class StartupChecks extends Component { + + constructor() { + super(); + this.checkCpuArchMismatch(); + } + + async checkCpuArchMismatch() { + try { + const response = await server.get("system-checks") as CpuArchResponse; + if (response.isCpuArchMismatch) { + this.triggerCommand("showCpuArchWarning", {}); + } + } catch (error) { + console.warn("Could not check CPU arch status:", error); + } + } +} diff --git a/apps/client/src/components/tab_manager.ts b/apps/client/src/components/tab_manager.ts index fa83470ce..0416071c6 100644 --- a/apps/client/src/components/tab_manager.ts +++ b/apps/client/src/components/tab_manager.ts @@ -688,7 +688,7 @@ export default class TabManager extends Component { const titleFragments = [ // it helps to navigate in history if note title is included in the title await activeNoteContext.getNavigationTitle(), - "TriliumNext Notes" + "Trilium Notes" ].filter(Boolean); document.title = titleFragments.join(" - "); diff --git a/apps/client/src/desktop.ts b/apps/client/src/desktop.ts index 1a0f7e8a9..65e2e285a 100644 --- a/apps/client/src/desktop.ts +++ b/apps/client/src/desktop.ts @@ -8,6 +8,7 @@ import electronContextMenu from "./menus/electron_context_menu.js"; import glob from "./services/glob.js"; import { t } from "./services/i18n.js"; import options from "./services/options.js"; +import server from "./services/server.js"; import type ElectronRemote from "@electron/remote"; import type Electron from "electron"; import "./stylesheets/bootstrap.scss"; diff --git a/apps/client/src/entities/fnote.ts b/apps/client/src/entities/fnote.ts index 9e215821d..b5d575ed9 100644 --- a/apps/client/src/entities/fnote.ts +++ b/apps/client/src/entities/fnote.ts @@ -1,7 +1,6 @@ import server from "../services/server.js"; import noteAttributeCache from "../services/note_attribute_cache.js"; import ws from "../services/ws.js"; -import froca from "../services/froca.js"; import protectedSessionHolder from "../services/protected_session_holder.js"; import cssClassManager from "../services/css_class_manager.js"; import type { Froca } from "../services/froca-interface.js"; @@ -28,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" }; @@ -37,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; @@ -410,8 +408,8 @@ class FNote { const notePaths: NotePathRecord[] = this.getAllNotePaths().map((path) => ({ notePath: path, isInHoistedSubTree: isHoistedRoot || path.includes(hoistedNoteId), - isArchived: path.some((noteId) => froca.notes[noteId].isArchived), - isSearch: path.some((noteId) => froca.notes[noteId].type === "search"), + isArchived: path.some((noteId) => this.froca.notes[noteId].isArchived), + isSearch: path.some((noteId) => this.froca.notes[noteId].type === "search"), isHidden: path.includes("_hidden") })); @@ -982,7 +980,7 @@ class FNote { continue; } - const parentNote = froca.notes[parentNoteId]; + const parentNote = this.froca.notes[parentNoteId]; if (!parentNote || parentNote.type === "search") { continue; diff --git a/apps/client/src/layouts/desktop_layout.ts b/apps/client/src/layouts/desktop_layout.ts index d47b112f6..33c1135c8 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 d9559cde2..c2802c963 100644 --- a/apps/client/src/layouts/layout_commons.ts +++ b/apps/client/src/layouts/layout_commons.ts @@ -21,6 +21,15 @@ import ConfirmDialog from "../widgets/dialogs/confirm.js"; 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 @@ -45,4 +54,16 @@ export function applyModals(rootContainer: RootContainer) { .child(new InfoDialog()) .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 f6d69f4c6..ba656d445 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/libraries/codemirror/hcl.js b/apps/client/src/libraries/codemirror/hcl.js deleted file mode 100644 index 04c0ea749..000000000 --- a/apps/client/src/libraries/codemirror/hcl.js +++ /dev/null @@ -1,204 +0,0 @@ -// Source: https://github.com/codemirror/codemirror5/pull/7080/files - -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: https://codemirror.net/5/LICENSE - -(function (mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function (CodeMirror) { - "use strict"; - - CodeMirror.defineMode("hcl", function (config) { - var indentUnit = config.indentUnit; - - var keywords = { - "resource": true, - "variable": true, - "output": true, - "module": true, - "provider": true, - "data": true, - "locals": true, - "terraform": true, - "if": true, - "else": true, - "for": true, - "foreach": true, - "in": true, - "true": true, - "false": true, - "null": true, - }; - - var atoms = { - "true": true, - "false": true, - "null": true, - }; - - var isOperatorChar = /[+\-*&^%:=<>!|\/]/; - - var curPunc; - - function tokenBase(stream, state) { - var ch = stream.next(); - if (ch == '"' || ch == "'" || ch == "`") { - state.tokenize = tokenString(ch); - return state.tokenize(stream, state); - } - if (/[\d\.]/.test(ch)) { - if (ch == ".") { - stream.match(/^[0-9_]+([eE][\-+]?[0-9_]+)?/); - } else { - stream.match(/^[0-9_]*\.?[0-9_]*([eE][\-+]?[0-9_]+)?/); - } - return "number"; - } - if (/[\[\]{}\(\),;\:\.]/.test(ch)) { - curPunc = ch; - return null; - } - if (ch == "/") { - if (stream.eat("*")) { - state.tokenize = tokenComment; - return tokenComment(stream, state); - } - if (stream.eat("/")) { - stream.skipToEnd(); - return "comment"; - } - } - if (isOperatorChar.test(ch)) { - stream.eatWhile(isOperatorChar); - return "operator"; - } - stream.eatWhile(/[\w\$_\xa1-\uffff]/); - var cur = stream.current(); - if (keywords.propertyIsEnumerable(cur)) { - return "keyword"; - } - if (atoms.propertyIsEnumerable(cur)) return "atom"; - return "variable"; - } - - function tokenString(quote) { - return function (stream, state) { - var escaped = false, - next, - end = false; - while ((next = stream.next()) != null) { - if (next == quote && !escaped) { - end = true; - break; - } - escaped = !escaped && quote != "`" && next == "\\"; - } - if (end || !(escaped || quote == "`")) - state.tokenize = tokenBase; - return "string"; - }; - } - - function tokenComment(stream, state) { - var maybeEnd = false, - ch; - while (ch = stream.next()) { - if (ch == "/" && maybeEnd) { - state.tokenize = tokenBase; - break; - } - maybeEnd = (ch == "*"); - } - return "comment"; - } - - function Context(indented, column, type, align, prev) { - this.indented = indented; - this.column = column; - this.type = type; - this.align = align; - this.prev = prev; - } - function pushContext(state, col, type) { - return state.context = new Context(state.indented, col, type, null, state.context); - } - function popContext(state) { - if (!state.context.prev) return; - var t = state.context.type; - if (t == ")" || t == "]" || t == "}") - state.indented = state.context.indented; - return state.context = state.context.prev; - } - - // Interface - - return { - startState: function (basecolumn) { - return { - tokenize: null, - context: new Context((basecolumn || 0) - indentUnit, 0, "top", false), - indented: 0, - startOfLine: true - }; - }, - - token: function (stream, state) { - var ctx = state.context; - if (stream.sol()) { - if (ctx.align == null) ctx.align = false; - state.indented = stream.indentation(); - state.startOfLine = true; - } - if (stream.eatSpace()) return null; - curPunc = null; - var style = (state.tokenize || tokenBase)(stream, state); - if (style == "comment") return style; - if (ctx.align == null) ctx.align = true; - - if (curPunc == "{") pushContext(state, stream.column(), "}"); - else if (curPunc == "[") pushContext(state, stream.column(), "]"); - else if (curPunc == "(") pushContext(state, stream.column(), ")"); - else if (curPunc == "}" && ctx.type == "}") popContext(state); - else if (curPunc == ctx.type) popContext(state); - state.startOfLine = false; - return style; - }, - - indent: function (state, textAfter) { - if (state.tokenize != tokenBase && state.tokenize != null) return CodeMirror.Pass; - var ctx = state.context, firstChar = textAfter && textAfter.charAt(0); - if (firstChar == "#" || firstChar == ";") return 0; - if (stream.sol()) { - if (ctx.type == "case" && /^(?:case|default)\b/.test(textAfter)) { - state.context.type = "}"; - return ctx.indented; - } - var closing = firstChar == ctx.type; - if (ctx.align) return ctx.column + (closing ? 0 : 1); - else return ctx.indented + (closing ? 0 : indentUnit); - } - }, - - electricChars: "{}):", - closeBrackets: "()[]{}''\"\"``", - fold: "brace", - blockCommentStart: "/*", - blockCommentEnd: "*/", - lineComment: "//" - }; - }); - - CodeMirror.defineMIME("text/x-hcl", "hcl"); - CodeMirror.modeInfo.push({ - ext: [ "hcl " ], - mime: "text/x-hcl", - mode: "hcl", - name: "Terraform (HCL)" - }); - -}); diff --git a/apps/client/src/menus/context_menu.ts b/apps/client/src/menus/context_menu.ts index a8a37f462..aefe7bf30 100644 --- a/apps/client/src/menus/context_menu.ts +++ b/apps/client/src/menus/context_menu.ts @@ -2,7 +2,7 @@ import keyboardActionService from "../services/keyboard_actions.js"; import note_tooltip from "../services/note_tooltip.js"; import utils from "../services/utils.js"; -interface ContextMenuOptions { +export interface ContextMenuOptions { x: number; y: number; orientation?: "left"; @@ -17,17 +17,25 @@ interface MenuSeparatorItem { title: "----"; } +export interface MenuItemBadge { + title: string; + className?: string; +} + export interface MenuCommandItem { title: string; command?: T; type?: string; uiIcon?: string; + badges?: MenuItemBadge[]; templateNoteId?: string; enabled?: boolean; handler?: MenuHandler; items?: MenuItem[] | null; shortcut?: string; spellingSuggestion?: string; + checked?: boolean; + columns?: number; } export type MenuItem = MenuCommandItem | MenuSeparatorItem; @@ -146,10 +154,13 @@ class ContextMenu { } else { const $icon = $(""); - if ("uiIcon" in item && item.uiIcon) { - $icon.addClass(item.uiIcon); - } else { - $icon.append(" "); + if ("uiIcon" in item || "checked" in item) { + const icon = (item.checked ? "bx bx-check" : item.uiIcon); + if (icon) { + $icon.addClass(icon); + } else { + $icon.append(" "); + } } const $link = $("") @@ -157,6 +168,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)); } @@ -194,14 +217,15 @@ class ContextMenu { return false; }); - if (!this.isMobile) { - $item.on("mouseup", (e) =>{ + $item.on("mouseup", (e) => { + // Prevent submenu from failing to expand on mobile + if (!this.isMobile || !("items" in item && item.items)) { e.stopPropagation(); // Hide the content menu on mouse up to prevent the mouse event from propagating to the elements below. this.hide(); return false; - }); - } + } + }); if ("enabled" in item && item.enabled !== undefined && !item.enabled) { $item.addClass("disabled"); @@ -212,6 +236,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 cef67b7da..e73f333af 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 887781d74..40730a51c 100644 --- a/apps/client/src/menus/tree_context_menu.ts +++ b/apps/client/src/menus/tree_context_menu.ts @@ -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: "----" }, { title: `${t("tree-context-menu.expand-subtree")} `, command: "expandSubtree", uiIcon: "bx bx-expand", enabled: noSelectedNotes }, @@ -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) { const blob = await note.getBlob(); + let content = blob?.content || ""; + if (note.mime === "application/json") { + try { + content = JSON.stringify(JSON.parse(content), null, 4); + } catch (e) { + // Ignore JSON parsing errors. + } + } + const $codeBlock = $(""); - $codeBlock.text(blob?.content || ""); + $codeBlock.text(content); $renderedContent.append($("
    ").append($codeBlock));
         await applySingleBlockSyntaxHighlight($codeBlock, normalizeMimeTypeForCKEditor(note.mime));
     }
    @@ -301,7 +310,7 @@ function getRenderingType(entity: FNote | FAttachment) {
     
         if (type === "file" && mime === "application/pdf") {
             type = "pdf";
    -    } else if (type === "file" && mime && CODE_MIME_TYPES.has(mime)) {
    +    } else if ((type === "file" || type === "viewConfig") && mime && CODE_MIME_TYPES.has(mime)) {
             type = "code";
         } else if (type === "file" && mime && mime.startsWith("audio/")) {
             type = "audio";
    diff --git a/apps/client/src/services/dialog.ts b/apps/client/src/services/dialog.ts
    index e2d93250f..298c7bf8a 100644
    --- a/apps/client/src/services/dialog.ts
    +++ b/apps/client/src/services/dialog.ts
    @@ -1,6 +1,41 @@
    +import { Modal } from "bootstrap";
     import appContext from "../components/app_context.js";
     import type { ConfirmDialogOptions, ConfirmDialogResult, ConfirmWithMessageOptions } from "../widgets/dialogs/confirm.js";
     import type { PromptDialogOptions } from "../widgets/dialogs/prompt.js";
    +import { focusSavedElement, saveFocusedElement } from "./focus.js";
    +
    +export async function openDialog($dialog: JQuery, closeActDialog = true, config?: Partial) {
    +    if (closeActDialog) {
    +        closeActiveDialog();
    +        glob.activeDialog = $dialog;
    +    }
    +
    +    saveFocusedElement();
    +    Modal.getOrCreateInstance($dialog[0], config).show();
    +
    +    $dialog.on("hidden.bs.modal", () => {
    +        const $autocompleteEl = $(".aa-input");
    +        if ("autocomplete" in $autocompleteEl) {
    +            $autocompleteEl.autocomplete("close");
    +        }
    +
    +        if (!glob.activeDialog || glob.activeDialog === $dialog) {
    +            focusSavedElement();
    +        }
    +    });
    +
    +    const keyboardActionsService = (await import("./keyboard_actions.js")).default;
    +    keyboardActionsService.updateDisplayedShortcuts($dialog);
    +
    +    return $dialog;
    +}
    +
    +export function closeActiveDialog() {
    +    if (glob.activeDialog) {
    +        Modal.getOrCreateInstance(glob.activeDialog[0]).hide();
    +        glob.activeDialog = null;
    +    }
    +}
     
     async function info(message: string) {
         return new Promise((res) => appContext.triggerCommand("showInfoDialog", { message, callback: res }));
    diff --git a/apps/client/src/services/focus.ts b/apps/client/src/services/focus.ts
    new file mode 100644
    index 000000000..066c74558
    --- /dev/null
    +++ b/apps/client/src/services/focus.ts
    @@ -0,0 +1,29 @@
    +let $lastFocusedElement: JQuery | null;
    +
    +// perhaps there should be saved focused element per tab?
    +export function saveFocusedElement() {
    +    $lastFocusedElement = $(":focus");
    +}
    +
    +export function focusSavedElement() {
    +    if (!$lastFocusedElement) {
    +        return;
    +    }
    +
    +    if ($lastFocusedElement.hasClass("ck")) {
    +        // must handle CKEditor separately because of this bug: https://github.com/ckeditor/ckeditor5/issues/607
    +        // the bug manifests itself in resetting the cursor position to the first character - jumping above
    +
    +        const editor = $lastFocusedElement.closest(".ck-editor__editable").prop("ckeditorInstance");
    +
    +        if (editor) {
    +            editor.editing.view.focus();
    +        } else {
    +            console.log("Could not find CKEditor instance to focus last element");
    +        }
    +    } else {
    +        $lastFocusedElement.focus();
    +    }
    +
    +    $lastFocusedElement = null;
    +}
    diff --git a/apps/client/src/services/froca.ts b/apps/client/src/services/froca.ts
    index 131cec06f..6bbc3a50d 100644
    --- a/apps/client/src/services/froca.ts
    +++ b/apps/client/src/services/froca.ts
    @@ -245,6 +245,10 @@ class FrocaImpl implements Froca {
         }
     
         async getNotes(noteIds: string[] | JQuery, silentNotFoundError = false): Promise {
    +        if (noteIds.length === 0) {
    +            return [];
    +        }
    +
             noteIds = Array.from(new Set(noteIds)); // make unique
             const missingNoteIds = noteIds.filter((noteId) => !this.notes[noteId]);
     
    diff --git a/apps/client/src/services/glob.ts b/apps/client/src/services/glob.ts
    index 6e261b4c8..48d0d29a7 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.spec.ts b/apps/client/src/services/i18n.spec.ts
    index 9143097be..e64605949 100644
    --- a/apps/client/src/services/i18n.spec.ts
    +++ b/apps/client/src/services/i18n.spec.ts
    @@ -1,6 +1,7 @@
     import { LOCALES } from "@triliumnext/commons";
     import { readFileSync } from "fs";
     import { join } from "path";
    +import { describe, expect, it } from "vitest";
     
     describe("i18n", () => {
         it("translations are valid JSON", () => {
    diff --git a/apps/client/src/services/image.ts b/apps/client/src/services/image.ts
    index 3cf1424d5..f13a9a3c7 100644
    --- a/apps/client/src/services/image.ts
    +++ b/apps/client/src/services/image.ts
    @@ -1,5 +1,5 @@
     import { t } from "./i18n.js";
    -import toastService from "./toast.js";
    +import toastService, { showError } from "./toast.js";
     
     function copyImageReferenceToClipboard($imageWrapper: JQuery) {
         try {
    @@ -11,7 +11,9 @@ function copyImageReferenceToClipboard($imageWrapper: JQuery) {
             if (success) {
                 toastService.showMessage(t("image.copied-to-clipboard"));
             } else {
    -            toastService.showAndLogError(t("image.cannot-copy"));
    +            const message = t("image.cannot-copy");
    +            showError(message);
    +            logError(message);
             }
         } finally {
             window.getSelection()?.removeAllRanges();
    diff --git a/apps/client/src/services/link.ts b/apps/client/src/services/link.ts
    index 116ca8a5b..c03ab536a 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 (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);
     }
     
    -async function loadReferenceLinkTitle($el: JQuery, href: string | null | undefined = null) {
    +export 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 4ffff8594..d6eb4df0e 100644
    --- a/apps/client/src/services/note_autocomplete.ts
    +++ b/apps/client/src/services/note_autocomplete.ts
    @@ -289,13 +289,11 @@ function initNoteAutocomplete($el: JQuery, options?: Options) {
             }
     
             if (suggestion.action === "create-note") {
    -            const { success, noteType, templateNoteId } = await noteCreateService.chooseNoteType();
    -
    +            const { success, noteType, templateNoteId, notePath } = await noteCreateService.chooseNoteType();
                 if (!success) {
                     return;
                 }
    -
    -            const { note } = await noteCreateService.createNote(suggestion.parentNoteId, {
    +            const { note } = await noteCreateService.createNote( notePath || suggestion.parentNoteId, {
                     title: suggestion.noteTitle,
                     activate: false,
                     type: noteType,
    diff --git a/apps/client/src/services/note_create.ts b/apps/client/src/services/note_create.ts
    index 5fa262553..3fb597930 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;
    @@ -116,7 +116,7 @@ async function chooseNoteType() {
     }
     
     async function createNoteWithTypePrompt(parentNotePath: string, options: CreateNoteOpts = {}) {
    -    const { success, noteType, templateNoteId } = await chooseNoteType();
    +    const { success, noteType, templateNoteId, notePath } = await chooseNoteType();
     
         if (!success) {
             return;
    @@ -125,7 +125,7 @@ async function createNoteWithTypePrompt(parentNotePath: string, options: CreateN
         options.type = noteType;
         options.templateNoteId = templateNoteId;
     
    -    return await createNote(parentNotePath, options);
    +    return await createNote(notePath || parentNotePath, options);
     }
     
     /* If the first element is heading, parse it out and use it as a new heading. */
    diff --git a/apps/client/src/services/note_list_renderer.ts b/apps/client/src/services/note_list_renderer.ts
    index ede0c3132..122ba9745 100644
    --- a/apps/client/src/services/note_list_renderer.ts
    +++ b/apps/client/src/services/note_list_renderer.ts
    @@ -1,38 +1,44 @@
     import type FNote from "../entities/fnote.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";
    +export type ViewTypeOptions = "list" | "grid" | "calendar" | "table" | "geoMap";
     
     export default class NoteListRenderer {
     
         private viewType: ViewTypeOptions;
    -    public viewMode: ViewMode | null;
    +    public viewMode: ViewMode | null;
     
    -    constructor($parent: JQuery, parentNote: FNote, noteIds: string[], showNotePath: boolean = false) {
    -        this.viewType = this.#getViewType(parentNote);
    -        const args: ViewModeArgs = {
    -            $parent,
    -            parentNote,
    -            noteIds,
    -            showNotePath
    -        };
    +    constructor(args: ViewModeArgs) {
    +        this.viewType = this.#getViewType(args.parentNote);
     
    -        if (this.viewType === "list" || this.viewType === "grid") {
    -            this.viewMode = new ListOrGridView(this.viewType, args);
    -        } else if (this.viewType === "calendar") {
    -            this.viewMode = new CalendarView(args);
    -        } else {
    -            this.viewMode = null;
    +        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;
    +            case "geoMap":
    +                this.viewMode = new GeoView(args);
    +                break;
    +            default:
    +                this.viewMode = null;
             }
         }
     
         #getViewType(parentNote: FNote): ViewTypeOptions {
             const viewType = parentNote.getLabelValue("viewType");
     
    -        if (!["list", "grid", "calendar"].includes(viewType || "")) {
    +        if (!["list", "grid", "calendar", "table", "geoMap"].includes(viewType || "")) {
                 // when not explicitly set, decide based on the note type
                 return parentNote.type === "search" ? "list" : "grid";
             } else {
    diff --git a/apps/client/src/services/note_tooltip.ts b/apps/client/src/services/note_tooltip.ts
    index 4a2b88bb6..fd8a577b9 100644
    --- a/apps/client/src/services/note_tooltip.ts
    +++ b/apps/client/src/services/note_tooltip.ts
    @@ -14,6 +14,7 @@ let dismissTimer: ReturnType;
     
     function setupGlobalTooltip() {
         $(document).on("mouseenter", "a", mouseEnterHandler);
    +    $(document).on("mouseenter", "[data-href]", mouseEnterHandler);
     
         // close any note tooltip after click, this fixes the problem that sometimes tooltips remained on the screen
         $(document).on("click", (e) => {
    @@ -167,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}
    `; @@ -175,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 4de0bd8bf..64d31ad39 100644 --- a/apps/client/src/services/note_types.ts +++ b/apps/client/src/services/note_types.ts @@ -1,43 +1,236 @@ -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[] = [ - { title: t("note_types.text"), command, type: "text", uiIcon: "bx bx-note" }, - { title: t("note_types.code"), command, type: "code", uiIcon: "bx bx-code" }, - { title: t("note_types.saved-search"), command, type: "search", uiIcon: "bx bx-file-find" }, - { title: t("note_types.relation-map"), command, type: "relationMap", uiIcon: "bx bxs-network-chart" }, - { title: t("note_types.note-map"), command, type: "noteMap", uiIcon: "bx bxs-network-chart" }, - { title: t("note_types.render-note"), command, type: "render", uiIcon: "bx bx-extension" }, - { title: t("note_types.book"), command, type: "book", uiIcon: "bx bx-book" }, - { title: t("note_types.mermaid-diagram"), command, type: "mermaid", uiIcon: "bx bx-selection" }, - { title: t("note_types.canvas"), command, type: "canvas", uiIcon: "bx bx-pen" }, - { title: t("note_types.web-view"), command, type: "webView", uiIcon: "bx bx-globe-alt" }, - { title: t("note_types.mind-map"), command, type: "mindMap", uiIcon: "bx bx-sitemap" }, - { title: t("note_types.geo-map"), command, type: "geoMap", uiIcon: "bx bx-map-alt" }, + ...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); + if (templateNotes.length === 0) { + return []; + } - if (templateNotes.length > 0) { - items.push({ title: "----" }); + const items: MenuItem[] = [ + SEPARATOR + ]; - for (const templateNote of templateNotes) { - items.push({ - title: templateNote.title, - uiIcon: templateNote.getIcon(), - command: command, - type: templateNote.type, - templateNoteId: templateNote.noteId - }); + for (const templateNote of templateNotes) { + 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(title: string | null, command: TreeCommandNames | undefined, filterCollections: boolean) { + const templatesRoot = await froca.getNote("_templates"); + if (!templatesRoot) { + console.warn("Unable to find template root."); + return []; + } + + const childNotes = await templatesRoot.getChildNotes(); + if (childNotes.length === 0) { + return []; + } + + 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); } } - return items; + // 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 { diff --git a/apps/client/src/services/promoted_attribute_definition_parser.ts b/apps/client/src/services/promoted_attribute_definition_parser.ts index f46040e2a..6cdb8edc6 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 @@ -type LabelType = "text" | "number" | "boolean" | "date" | "datetime" | "time" | "url"; +export type LabelType = "text" | "number" | "boolean" | "date" | "datetime" | "time" | "url"; type Multiplicity = "single" | "multi"; export interface DefinitionObject { diff --git a/apps/client/src/services/script_context.ts b/apps/client/src/services/script_context.ts index 27a8a7d44..7c15db1ae 100644 --- a/apps/client/src/services/script_context.ts +++ b/apps/client/src/services/script_context.ts @@ -1,4 +1,4 @@ -import FrontendScriptApi, { type Entity } from "./frontend_script_api.js"; +import type { Entity } from "./frontend_script_api.js"; import utils from "./utils.js"; import froca from "./froca.js"; @@ -14,6 +14,8 @@ async function ScriptContext(startNoteId: string, allNoteIds: string[], originEn throw new Error(`Could not find start note ${startNoteId}.`); } + const FrontendScriptApi = (await import("./frontend_script_api.js")).default; + return { modules: modules, notes: utils.toObject(allNotes, (note) => [note.noteId, note]), diff --git a/apps/client/src/services/server.ts b/apps/client/src/services/server.ts index f577fbfb4..cb557b19b 100644 --- a/apps/client/src/services/server.ts +++ b/apps/client/src/services/server.ts @@ -276,7 +276,8 @@ async function reportError(method: string, url: string, statusCode: number, resp } else { const title = `${statusCode} ${method} ${url}`; toastService.showErrorTitleAndMessage(title, messageStr); - toastService.throwError(`${title} - ${message}`); + const { throwError } = await import("./ws.js"); + throwError(`${title} - ${message}`); } } diff --git a/apps/client/src/services/toast.ts b/apps/client/src/services/toast.ts index 18cc876a9..66b3f7f50 100644 --- a/apps/client/src/services/toast.ts +++ b/apps/client/src/services/toast.ts @@ -78,13 +78,7 @@ function showMessage(message: string, delay = 2000) { }); } -function showAndLogError(message: string, delay = 10000) { - showError(message, delay); - - ws.logError(message); -} - -function showError(message: string, delay = 10000) { +export function showError(message: string, delay = 10000) { console.log(utils.now(), "error: ", message); toast({ @@ -108,18 +102,10 @@ function showErrorTitleAndMessage(title: string, message: string, delay = 10000) }); } -function throwError(message: string) { - ws.logError(message); - - throw new Error(message); -} - export default { showMessage, showError, showErrorTitleAndMessage, - showAndLogError, - throwError, showPersistent, closePersistent }; diff --git a/apps/client/src/services/utils.ts b/apps/client/src/services/utils.ts index 2cfa07ee8..c7d37e4d9 100644 --- a/apps/client/src/services/utils.ts +++ b/apps/client/src/services/utils.ts @@ -1,5 +1,4 @@ import dayjs from "dayjs"; -import { Modal } from "bootstrap"; import type { ViewScope } from "./link.js"; const SVG_MIME = "image/svg+xml"; @@ -275,71 +274,6 @@ function getMimeTypeClass(mime: string) { return `mime-${mime.toLowerCase().replace(/[\W_]+/g, "-")}`; } -function closeActiveDialog() { - if (glob.activeDialog) { - Modal.getOrCreateInstance(glob.activeDialog[0]).hide(); - glob.activeDialog = null; - } -} - -let $lastFocusedElement: JQuery | null; - -// perhaps there should be saved focused element per tab? -function saveFocusedElement() { - $lastFocusedElement = $(":focus"); -} - -function focusSavedElement() { - if (!$lastFocusedElement) { - return; - } - - if ($lastFocusedElement.hasClass("ck")) { - // must handle CKEditor separately because of this bug: https://github.com/ckeditor/ckeditor5/issues/607 - // the bug manifests itself in resetting the cursor position to the first character - jumping above - - const editor = $lastFocusedElement.closest(".ck-editor__editable").prop("ckeditorInstance"); - - if (editor) { - editor.editing.view.focus(); - } else { - console.log("Could not find CKEditor instance to focus last element"); - } - } else { - $lastFocusedElement.focus(); - } - - $lastFocusedElement = null; -} - -async function openDialog($dialog: JQuery, closeActDialog = true) { - if (closeActDialog) { - closeActiveDialog(); - glob.activeDialog = $dialog; - } - - saveFocusedElement(); - Modal.getOrCreateInstance($dialog[0]).show(); - - $dialog.on("hidden.bs.modal", () => { - const $autocompleteEl = $(".aa-input"); - if ("autocomplete" in $autocompleteEl) { - $autocompleteEl.autocomplete("close"); - } - - if (!glob.activeDialog || glob.activeDialog === $dialog) { - focusSavedElement(); - } - }); - - // TODO: Fix once keyboard_actions is ported. - // @ts-ignore - const keyboardActionsService = (await import("./keyboard_actions.js")).default; - keyboardActionsService.updateDisplayedShortcuts($dialog); - - return $dialog; -} - function isHtmlEmpty(html: string) { if (!html) { return true; @@ -825,10 +759,6 @@ export default { setCookie, getNoteTypeClass, getMimeTypeClass, - closeActiveDialog, - openDialog, - saveFocusedElement, - focusSavedElement, isHtmlEmpty, clearBrowserCache, copySelectionToClipboard, diff --git a/apps/client/src/services/ws.ts b/apps/client/src/services/ws.ts index ccfd19592..dcd63e577 100644 --- a/apps/client/src/services/ws.ts +++ b/apps/client/src/services/ws.ts @@ -17,7 +17,7 @@ let lastProcessedEntityChangeId = window.glob.maxEntityChangeIdAtLoad; let lastPingTs: number; let frontendUpdateDataQueue: EntityChange[] = []; -function logError(message: string) { +export function logError(message: string) { console.error(utils.now(), message); // needs to be separate from .trace() if (ws && ws.readyState === 1) { @@ -301,6 +301,12 @@ setTimeout(() => { setInterval(sendPing, 1000); }, 0); +export function throwError(message: string) { + logError(message); + + throw new Error(message); +} + export default { logError, subscribeToMessages, diff --git a/apps/client/src/stylesheets/ckeditor-theme.css b/apps/client/src/stylesheets/ckeditor-theme.css index 225788c5b..622454bbe 100644 --- a/apps/client/src/stylesheets/ckeditor-theme.css +++ b/apps/client/src/stylesheets/ckeditor-theme.css @@ -81,8 +81,8 @@ body { /* -- Overrides the default colors used by the ckeditor5-image package. --------------------- */ - --ck-color-image-caption-background: var(--main-background-color); - --ck-color-image-caption-text: var(--main-text-color); + --ck-content-color-image-caption-background: var(--main-background-color); + --ck-content-color-image-caption-text: var(--main-text-color); /* -- Overrides the default colors used by the ckeditor5-widget package. -------------------- */ diff --git a/apps/client/src/stylesheets/style.css b/apps/client/src/stylesheets/style.css index 2f026ab01..1a527bf5c 100644 --- a/apps/client/src/stylesheets/style.css +++ b/apps/client/src/stylesheets/style.css @@ -25,6 +25,7 @@ --bs-body-font-weight: var(--main-font-weight) !important; --bs-body-color: var(--main-text-color) !important; --bs-body-bg: var(--main-background-color) !important; + --ck-mention-list-max-height: 500px; } .table { @@ -191,6 +192,13 @@ samp { font-family: var(--monospace-font-family) !important; } +.badge { + --bs-badge-color: var(--muted-text-color); + + margin-left: 8px; + background: var(--accented-background-color); +} + .input-group-text { background-color: var(--accented-background-color) !important; color: var(--muted-text-color) !important; @@ -319,7 +327,8 @@ button kbd { } } -.dropdown-menu { +.dropdown-menu, +.tabulator-popup-container { color: var(--menu-text-color) !important; font-size: inherit; background-color: var(--menu-background-color) !important; @@ -329,7 +338,13 @@ button kbd { --bs-dropdown-link-active-bg: var(--active-item-background-color) !important; } -body.desktop .dropdown-menu { +.dropdown-menu .dropdown-divider { + break-before: avoid; + break-after: avoid; +} + +body.desktop .dropdown-menu, +body.desktop .tabulator-popup-container { border: 1px solid var(--dropdown-border-color); box-shadow: 0px 10px 20px rgba(0, 0, 0, var(--dropdown-shadow-opacity)); animation: dropdown-menu-opening 100ms ease-in; @@ -372,7 +387,8 @@ body.desktop .dropdown-menu { } .dropdown-menu a:hover:not(.disabled), -.dropdown-item:hover:not(.disabled, .dropdown-item-container) { +.dropdown-item:hover:not(.disabled, .dropdown-item-container), +.tabulator-menu-item:hover { color: var(--hover-item-text-color) !important; background-color: var(--hover-item-background-color) !important; border-color: var(--hover-item-border-color) !important; @@ -391,7 +407,7 @@ body.desktop .dropdown-menu { } body.desktop .dropdown-menu:not(#context-menu-container) .dropdown-item, -body.desktop #context-menu-container .dropdown-item > span { +body #context-menu-container .dropdown-item > span { display: flex; align-items: center; } @@ -439,10 +455,11 @@ body.desktop #context-menu-container .dropdown-item > span { border-radius: 6px; overflow: hidden; margin: 4px; + font-size: var(--monospace-font-size); } -body .cm-editor { - font-size: var(--monospace-font-size); +.cm-scroller { + font-family: var(--monospace-font-family) !important; } body .cm-editor .cm-gutters { @@ -526,6 +543,7 @@ button.btn-sm { /* Making this narrower because https://github.com/zadam/trilium/issues/502 (problem only in smaller font sizes) */ min-width: 0; padding: 0; + z-index: 1000; } pre:not(.hljs) { @@ -757,6 +775,14 @@ table.promoted-attributes-in-tooltip th { font-size: small; } +.note-tooltip-content .open-popup-button { + position: absolute; + right: 15px; + bottom: 8px; + font-size: 1.2em; + color: inherit; +} + .note-tooltip-attributes { display: -webkit-box; -webkit-box-orient: vertical; @@ -898,6 +924,13 @@ div[data-notify="container"] { font-family: var(--monospace-font-family); } +.ck-content { + --ck-content-font-family: var(--detail-font-family); + --ck-content-font-size: 1.1em; + --ck-content-font-color: var(--main-text-color); + --ck-content-line-height: var(--bs-body-line-height); +} + .ck-content .table table th { background-color: var(--accented-background-color); } @@ -1184,12 +1217,14 @@ body.mobile .dropdown-submenu > .dropdown-menu { } #context-menu-container, -#context-menu-container .dropdown-menu { - padding: 3px 0 0; +#context-menu-container .dropdown-menu, +.tabulator-popup-container { + padding: 3px 0; z-index: 2000; } -#context-menu-container .dropdown-item { +#context-menu-container .dropdown-item, +.tabulator-menu .tabulator-menu-item { padding: 0 7px 0 10px; cursor: pointer; user-select: none; @@ -1273,6 +1308,29 @@ body:not(.mobile) #launcher-pane.horizontal .dropdown-submenu > .dropdown-menu { white-space: normal !important; } +/* Slash commands */ + +.ck.ck-slash-command-button { + padding: 0.5em 1em !important; +} + +.ck.ck-slash-command-button__text-part, +.ck.ck-template-form__text-part { + margin-left: 0.5em; + line-height: 1.2em !important; +} + +.ck.ck-slash-command-button__text-part > span, +.ck.ck-template-form__text-part > span { + line-height: inherit !important; +} + +.ck.ck-slash-command-button__text-part .ck.ck-slash-command-button__description, +.ck.ck-template-form__text-part .ck-template-form__description { + display: block; + opacity: 0.8; +} + .area-expander { display: flex; flex-direction: row; diff --git a/apps/client/src/stylesheets/table.css b/apps/client/src/stylesheets/table.css new file mode 100644 index 000000000..18193088b --- /dev/null +++ b/apps/client/src/stylesheets/table.css @@ -0,0 +1,172 @@ +.tabulator { + --table-background-color: var(--main-background-color); + + --col-header-background-color: var(--main-background-color); + --col-header-hover-background-color: var(--accented-background-color); + --col-header-text-color: var(--main-text-color); + --col-header-arrow-active-color: var(--main-text-color); + --col-header-arrow-inactive-color: var(--more-accented-background-color); + --col-header-separator-border: none; + --col-header-bottom-border: 2px solid var(--main-border-color); + + --row-background-color: var(--main-background-color); + --row-alternate-background-color: var(--main-background-color); + --row-moving-background-color: var(--accented-background-color); + --row-text-color: var(--main-text-color); + --row-delimiter-color: var(--more-accented-background-color); + + --cell-horiz-padding-size: 8px; + --cell-vert-padding-size: 8px; + + --cell-editable-hover-outline-color: var(--main-border-color); + --cell-read-only-text-color: var(--muted-text-color); + + --cell-editing-border-color: var(--main-border-color); + --cell-editing-border-width: 2px; + --cell-editing-background-color: var(--ck-color-selector-focused-cell-background); + --cell-editing-text-color: initial; + + background: unset; + border: unset; +} + +.tabulator .tabulator-tableholder .tabulator-table { + background: var(--table-background-color); +} + +/* Column headers */ + +.tabulator div.tabulator-header { + border-bottom: var(--col-header-bottom-border); + background: var(--col-header-background-color); + color: var(--col-header-text-color); +} + +.tabulator .tabulator-col-content { + padding: 8px 4px !important; +} + +@media (hover: hover) and (pointer: fine) { + .tabulator .tabulator-header .tabulator-col.tabulator-sortable.tabulator-col-sorter-element:hover { + background-color: var(--col-header-hover-background-color); + } +} + +.tabulator div.tabulator-header .tabulator-col.tabulator-moving { + border: none; + background: var(--col-header-hover-background-color); +} + +.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort] .tabulator-col-content .tabulator-col-sorter .tabulator-arrow { + border-bottom-color: var(--col-header-arrow-active-color); + border-top-color: var(--col-header-arrow-active-color); +} + +.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="none"] .tabulator-col-content .tabulator-col-sorter .tabulator-arrow { + border-bottom-color: var(--col-header-arrow-inactive-color); +} + +.tabulator div.tabulator-header .tabulator-col, +.tabulator div.tabulator-header .tabulator-frozen.tabulator-frozen-left { + background: var(--col-header-background-color); + border-right: var(--col-header-separator-border); +} + +/* Table body */ + +.tabulator-tableholder { + padding-top: 10px; +} + +/* Rows */ + +.tabulator-row .tabulator-cell { + padding: var(--cell-vert-padding-size) var(--cell-horiz-padding-size); +} + +.tabulator-row .tabulator-cell input { + padding-left: var(--cell-horiz-padding-size) !important; + padding-right: var(--cell-horiz-padding-size) !important; +} + +.tabulator-row { + background: transparent; + border-top: none; + border-bottom: 1px solid var(--row-delimiter-color); + color: var(--row-text-color); +} + +.tabulator-row.tabulator-row-odd { + background: var(--row-background-color); +} + +.tabulator-row.tabulator-row-even { + background: var(--row-alternate-background-color); +} + +.tabulator-row.tabulator-moving { + border-color: transparent; + background-color: var(--row-moving-background-color); +} + +/* Cell */ + +.tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left, +.tabulator-row .tabulator-cell { + border-right-color: transparent; +} + +.tabulator-row .tabulator-cell:not(.tabulator-editable) { + color: var(--cell-read-only-text-color); +} + +.tabulator:not(.tabulator-editing) .tabulator-row .tabulator-cell.tabulator-editable:hover { + outline: 2px solid var(--cell-editable-hover-outline-color); + outline-offset: -1px; +} + +.tabulator-row .tabulator-cell.tabulator-editing { + border-color: transparent; +} + +.tabulator-row:not(.tabulator-moving) .tabulator-cell.tabulator-editing { + outline: calc(var(--cell-editing-border-width) - 1px) solid var(--cell-editing-border-color); + border-color: var(--cell-editing-border-color); + background: var(--cell-editing-background-color); +} + +.tabulator-row:not(.tabulator-moving) .tabulator-cell.tabulator-editing > * { + color: var(--cell-editing-text-color); +} + +/* Checkbox cells */ + +.tabulator .tabulator-cell:has(svg), +.tabulator .tabulator-cell:has(input[type="checkbox"]) { + padding-left: 8px; + display: inline-flex; + flex-direction: column; + justify-content: center; + align-items: flex-start; +} + +.tabulator .tabulator-cell input[type="checkbox"] { + margin: 0; +} + +.tabulator .tabulator-footer { + color: var(--main-text-color); +} + +/* Context menus */ + +.tabulator-popup-container { + min-width: 10em; + border-radius: var(--bs-border-radius); +} + +.tabulator-menu .tabulator-menu-item { + border: 1px solid transparent; + color: var(--menu-text-color); + font-size: 16px; +} \ No newline at end of file diff --git a/apps/client/src/stylesheets/theme-next-dark.css b/apps/client/src/stylesheets/theme-next-dark.css index 031bdf465..b27627bd1 100644 --- a/apps/client/src/stylesheets/theme-next-dark.css +++ b/apps/client/src/stylesheets/theme-next-dark.css @@ -178,6 +178,9 @@ --alert-bar-background: #6b6b6b3b; + --badge-background-color: #ffffff1a; + --badge-text-color: var(--muted-text-color); + --promoted-attribute-card-background-color: var(--card-background-color); --promoted-attribute-card-shadow-color: #000000b3; diff --git a/apps/client/src/stylesheets/theme-next-light.css b/apps/client/src/stylesheets/theme-next-light.css index ba994587f..ff82e99ba 100644 --- a/apps/client/src/stylesheets/theme-next-light.css +++ b/apps/client/src/stylesheets/theme-next-light.css @@ -171,6 +171,9 @@ --alert-bar-background: #32637b29; + --badge-background-color: #00000011; + --badge-text-color: var(--muted-text-color); + --promoted-attribute-card-background-color: var(--card-background-color); --promoted-attribute-card-shadow-color: #00000033; diff --git a/apps/client/src/stylesheets/theme-next/base.css b/apps/client/src/stylesheets/theme-next/base.css index 9058328c3..116a8ebdd 100644 --- a/apps/client/src/stylesheets/theme-next/base.css +++ b/apps/client/src/stylesheets/theme-next/base.css @@ -171,6 +171,16 @@ html body .dropdown-item[disabled] { opacity: var(--menu-item-disabled-opacity); } +/* Badges */ +:root .badge { + --bs-badge-color: var(--badge-text-color); + --bs-badge-font-weight: 500; + + background: var(--badge-background-color); + text-transform: uppercase; + letter-spacing: .2pt; +} + /* Menu item icon */ .dropdown-item .bx { transform: translateY(var(--menu-item-icon-vert-offset)); diff --git a/apps/client/src/stylesheets/theme-next/dialogs.css b/apps/client/src/stylesheets/theme-next/dialogs.css index e73c555fc..0351e6f23 100644 --- a/apps/client/src/stylesheets/theme-next/dialogs.css +++ b/apps/client/src/stylesheets/theme-next/dialogs.css @@ -382,6 +382,10 @@ div.tn-tool-dialog { /* DELETE NOTE PREVIEW DIALOG */ +.delete-notes-dialog .modal-dialog { + --bs-modal-width: fit-content; +} + .delete-notes-list .note-path { padding-left: 8px; } @@ -395,4 +399,20 @@ div.tn-tool-dialog { padding-right: 12px; font-weight: normal; white-space: nowrap; +} + +/* + * NOTE TYPE CHOOSER DIALOG + */ + +.note-type-chooser-dialog div.note-type-dropdown { + /* Disable the active item highlighting since there is no use for it here */ + --active-item-text-color: initial; + --active-item-background-color: initial; + + font-size: unset; +} + +.note-type-chooser-dialog div.note-type-dropdown .dropdown-item span.bx { + margin-right: .25em; } \ No newline at end of file diff --git a/apps/client/src/stylesheets/theme-next/forms.css b/apps/client/src/stylesheets/theme-next/forms.css index 446c9b89c..b09d6cb65 100644 --- a/apps/client/src/stylesheets/theme-next/forms.css +++ b/apps/client/src/stylesheets/theme-next/forms.css @@ -267,7 +267,7 @@ input::selection, } .input-group button:focus-visible, -.input-group a:focus-visible { +.input-group a:focus-visible:not(.dropdown-item) { box-shadow: unset; outline: transparent; border: transparent; @@ -349,7 +349,7 @@ select:hover, select.form-select:hover, select.form-control:hover, .select-button.dropdown-toggle.btn:hover { - background: var(--input-hover-background) var(--dropdown-arrow); + background: var(--input-hover-background) var(--dropdown-arrow,); color: var(--input-hover-color); } diff --git a/apps/client/src/stylesheets/theme-next/notes/text.css b/apps/client/src/stylesheets/theme-next/notes/text.css index f7b9e3f51..404a47fec 100644 --- a/apps/client/src/stylesheets/theme-next/notes/text.css +++ b/apps/client/src/stylesheets/theme-next/notes/text.css @@ -201,6 +201,11 @@ color: var(--menu-item-icon-color); } +/* Slash commands */ +.ck.ck-slash-command-button__text-part .ck.ck-button__label { + font-weight: bold; +} + /* Separator */ :root .ck .ck-list__separator { margin: .5em 0; diff --git a/apps/client/src/stylesheets/theme-next/pages.css b/apps/client/src/stylesheets/theme-next/pages.css index 5a34b9680..1d2d0512c 100644 --- a/apps/client/src/stylesheets/theme-next/pages.css +++ b/apps/client/src/stylesheets/theme-next/pages.css @@ -142,6 +142,12 @@ div.note-detail-empty { border: unset; } +/* NOTE ATTACHMENTS */ + +.attachment-list div.links-wrapper { + font-size: unset; +} + /* * OPTIONS PAGES */ diff --git a/apps/client/src/stylesheets/theme-next/ribbon.css b/apps/client/src/stylesheets/theme-next/ribbon.css index e21984a76..efc1952fe 100644 --- a/apps/client/src/stylesheets/theme-next/ribbon.css +++ b/apps/client/src/stylesheets/theme-next/ribbon.css @@ -46,6 +46,12 @@ div.promoted-attributes-container { .image-properties > div:first-child > span > strong { opacity: 0.65; font-weight: 500; + vertical-align: top; +} + +.note-info-widget-table td, +.file-properties-widget .file-table td { + vertical-align: top; } .file-properties-widget { diff --git a/apps/client/src/stylesheets/theme-next/shell.css b/apps/client/src/stylesheets/theme-next/shell.css index 5b11839e5..844ac0135 100644 --- a/apps/client/src/stylesheets/theme-next/shell.css +++ b/apps/client/src/stylesheets/theme-next/shell.css @@ -71,12 +71,13 @@ body.background-effects.platform-win32.layout-vertical #vertical-main-container /* #endregion */ /* Matches when the left pane is collapsed */ -:has(.layout-vertical #left-pane.hidden-int) { +#horizontal-main-container.left-pane-hidden { --center-pane-border-radius: 0; --tab-first-item-horiz-offset: 5px; } -:has(#left-pane.hidden-int) #launcher-pane.vertical { +/* Add a border to the vertical launch bar if collapsed. */ +body.layout-vertical #horizontal-main-container.left-pane-hidden #launcher-pane.vertical { border-right: 2px solid var(--left-pane-collapsed-border-color); } @@ -354,7 +355,7 @@ body.layout-horizontal > .horizontal { } .calendar-dropdown-widget .calendar-header .calendar-month-selector .select-button { - --select-arrow-svg: ""; /* Disable the dropdown arrow */ + --select-arrow-svg: initial; /* Disable the dropdown arrow */ } @media (max-width: 992px) { @@ -1145,12 +1146,18 @@ body.mobile .note-title { /* The "Change note icon" button */ -.note-icon-widget .note-icon { +:root .note-icon-widget button.note-icon, +:root .note-icon-widget button.note-icon:hover { border: none; border-radius: 8px; } -.note-icon-widget .note-icon:hover { +/* Dropdown open */ +:root .note-icon-widget button.note-icon.show { + background: var(--ck-editor-toolbar-dropdown-button-open-background); +} + +:root .note-icon-widget button.note-icon:not(:disabled):hover { background: var(--icon-button-hover-background); color: var(--icon-button-hover-color); } @@ -1294,9 +1301,9 @@ div.promoted-attribute-cell .tn-checkbox { height: 1cap; } -/* The
    containing the checkbox for a promoted boolean attribute */ -div.promoted-attribute-cell div:has(input[type="checkbox"]) { - order: -1; /* Relocate the checkbox before the label */ +/* Relocate the checkbox before the label */ +div.promoted-attribute-cell.promoted-attribute-label-boolean > div:first-of-type { + order: -1; margin-right: 1.5em; } diff --git a/apps/client/src/translations/cn/translation.json b/apps/client/src/translations/cn/translation.json index fa2460f26..375b32a46 100644 --- a/apps/client/src/translations/cn/translation.json +++ b/apps/client/src/translations/cn/translation.json @@ -1,6 +1,6 @@ { "about": { - "title": "关于 TriliumNext Notes", + "title": "关于 Trilium Notes", "close": "关闭", "homepage": "项目主页:", "app_version": "应用版本:", @@ -754,7 +754,7 @@ "expand_all_children": "展开所有子项", "collapse": "折叠", "expand": "展开", - "book_properties": "书籍属性", + "book_properties": "", "invalid_view_type": "无效的查看类型 '{{type}}'", "calendar": "日历" }, @@ -1333,7 +1333,7 @@ "recovery_keys_used": "已使用: {{date}}", "recovery_keys_unused": "恢复代码 {{index}} 未使用", "oauth_title": "OAuth/OpenID 认证", - "oauth_description": "OpenID 是一种标准化方式,允许您使用其他服务(如 Google)的账户登录网站,以验证您的身份。请参阅这些 指南 通过 Google 设置 OpenID 服务。", + "oauth_description": "OpenID 是一种标准化方式,允许您使用其他服务(如 Google)的账号登录网站来验证您的身份。默认的身份提供者是 Google,但您可以更改为任何其他 OpenID 提供者。点击这里了解更多信息。请参阅这些 指南 通过 Google 设置 OpenID 服务。", "oauth_description_warning": "要启用 OAuth/OpenID,您需要设置 config.ini 文件中的 OAuth/OpenID 基础 URL、客户端 ID 和客户端密钥,并重新启动应用程序。如果要从环境变量设置,请设置 TRILIUM_OAUTH_BASE_URL、TRILIUM_OAUTH_CLIENT_ID 和 TRILIUM_OAUTH_CLIENT_SECRET 环境变量。", "oauth_missing_vars": "缺少以下设置项: {{missingVars}}", "oauth_user_account": "用户账号:", @@ -1431,7 +1431,6 @@ "move-to": "移动到...", "paste-into": "粘贴到里面", "paste-after": "粘贴到后面", - "duplicate-subtree": "复制子树", "export": "导出", "import-into-note": "导入到笔记", "apply-bulk-actions": "应用批量操作", diff --git a/apps/client/src/translations/de/translation.json b/apps/client/src/translations/de/translation.json index ea17f0575..60a10744a 100644 --- a/apps/client/src/translations/de/translation.json +++ b/apps/client/src/translations/de/translation.json @@ -1,6 +1,6 @@ { "about": { - "title": "Über TriliumNext Notes", + "title": "Über Trilium Notes", "close": "Schließen", "homepage": "Startseite:", "app_version": "App-Version:", @@ -639,7 +639,7 @@ "reload_frontend": "Frontend neu laden", "show_hidden_subtree": "Versteckten Teilbaum anzeigen", "show_help": "Hilfe anzeigen", - "about": "Über TriliumNext Notes", + "about": "Über Trilium Notes", "logout": "Abmelden", "show-cheatsheet": "Cheatsheet anzeigen", "toggle-zen-mode": "Zen Modus" @@ -750,7 +750,7 @@ "expand_all_children": "Unternotizen ausklappen", "collapse": "Einklappen", "expand": "Ausklappen", - "book_properties": "Bucheigenschaften", + "book_properties": "", "invalid_view_type": "Ungültiger Ansichtstyp „{{type}}“", "calendar": "Kalender" }, @@ -1384,7 +1384,7 @@ "move-to": "Verschieben nach...", "paste-into": "Als Unternotiz einfügen", "paste-after": "Danach einfügen", - "duplicate-subtree": "Notizbaum duplizieren", + "duplicate": "Duplizieren", "export": "Exportieren", "import-into-note": "In Notiz importieren", "apply-bulk-actions": "Massenaktionen ausführen", diff --git a/apps/client/src/translations/en/translation.json b/apps/client/src/translations/en/translation.json index 493e0a845..b7c8f7732 100644 --- a/apps/client/src/translations/en/translation.json +++ b/apps/client/src/translations/en/translation.json @@ -1,6 +1,6 @@ { "about": { - "title": "About TriliumNext Notes", + "title": "About Trilium Notes", "close": "Close", "homepage": "Homepage:", "app_version": "App version:", @@ -233,6 +233,8 @@ "move_success_message": "Selected notes have been moved into " }, "note_type_chooser": { + "change_path_prompt": "Change where to create the new note:", + "search_placeholder": "search path by name (default if empty)", "modal_title": "Choose note type", "close": "Close", "modal_body": "Choose note type / template of the new note:", @@ -641,7 +643,7 @@ "reload_frontend": "Reload Frontend", "show_hidden_subtree": "Show Hidden Subtree", "show_help": "Show Help", - "about": "About TriliumNext Notes", + "about": "About Trilium Notes", "logout": "Logout", "show-cheatsheet": "Show Cheatsheet", "toggle-zen-mode": "Zen Mode" @@ -756,9 +758,11 @@ "expand_all_children": "Expand all children", "collapse": "Collapse", "expand": "Expand", - "book_properties": "Book Properties", + "book_properties": "Collection Properties", "invalid_view_type": "Invalid view type '{{type}}'", - "calendar": "Calendar" + "calendar": "Calendar", + "table": "Table", + "geo-map": "Geo Map" }, "edited_notes": { "no_edited_notes_found": "No edited notes on this day yet...", @@ -958,7 +962,7 @@ "no_attachments": "This note has no attachments." }, "book": { - "no_children_help": "This note of type Book doesn't have any child notes so there's nothing to display. See wiki for details." + "no_children_help": "This collection doesn't have any child notes so there's nothing to display. See wiki for details." }, "editable_code": { "placeholder": "Type the content of your code note here..." @@ -1021,7 +1025,7 @@ "title": "Consistency Checks", "find_and_fix_button": "Find and fix consistency issues", "finding_and_fixing_message": "Finding and fixing consistency issues...", - "issues_fixed_message": "Consistency issues should be fixed." + "issues_fixed_message": "Any consistency issue which may have been found is now fixed." }, "database_anonymization": { "title": "Database Anonymization", @@ -1195,7 +1199,6 @@ "restore_provider": "Restore provider to search", "similarity_threshold": "Similarity Threshold", "similarity_threshold_description": "Minimum similarity score (0-1) for notes to be included in context for LLM queries", - "reprocess_index": "Rebuild Search Index", "reprocessing_index": "Rebuilding...", "reprocess_index_started": "Search index optimization started in the background", @@ -1508,7 +1511,7 @@ "recovery_keys_used": "Used: {{date}}", "recovery_keys_unused": "Recovery code {{index}} is unused", "oauth_title": "OAuth/OpenID", - "oauth_description": "OpenID is a standardized way to let you log into websites using an account from another service, like Google, to verify your identity. Follow these instructions to setup an OpenID service through Google.", + "oauth_description": "OpenID is a standardized way to let you log into websites using an account from another service, like Google, to verify your identity. The default issuer is Google, but you can change it to any other OpenID provider. Check here for more information. Follow these instructions to setup an OpenID service through Google.", "oauth_description_warning": "To enable OAuth/OpenID, you need to set the OAuth/OpenID base URL, client ID and client secret in the config.ini file and restart the application. If you want to set from environment variables, please set TRILIUM_OAUTH_BASE_URL, TRILIUM_OAUTH_CLIENT_ID and TRILIUM_OAUTH_CLIENT_SECRET.", "oauth_missing_vars": "Missing settings: {{variables}}", "oauth_user_account": "User Account: ", @@ -1607,12 +1610,13 @@ "move-to": "Move to...", "paste-into": "Paste into", "paste-after": "Paste after", - "duplicate-subtree": "Duplicate subtree", + "duplicate": "Duplicate", "export": "Export", "import-into-note": "Import into note", "apply-bulk-actions": "Apply bulk actions", "converted-to-attachments": "{{count}} notes have been converted to attachments.", - "convert-to-attachment-confirm": "Are you sure you want to convert note selected notes into attachments of their parent notes?" + "convert-to-attachment-confirm": "Are you sure you want to convert note selected notes into attachments of their parent notes?", + "open-in-popup": "Quick edit" }, "shared_info": { "shared_publicly": "This note is shared publicly on", @@ -1640,7 +1644,9 @@ "geo-map": "Geo Map", "beta-feature": "Beta", "ai-chat": "AI Chat", - "task-list": "Task List" + "task-list": "Task List", + "new-feature": "New", + "collections": "Collections" }, "protect_note": { "toggle-on": "Protect the note", @@ -1842,7 +1848,8 @@ "link_context_menu": { "open_note_in_new_tab": "Open note in a new tab", "open_note_in_new_split": "Open note in a new split", - "open_note_in_new_window": "Open note in a new window" + "open_note_in_new_window": "Open note in a new window", + "open_note_in_popup": "Quick edit" }, "electron_integration": { "desktop-application": "Desktop Application", @@ -1862,7 +1869,8 @@ "full-text-search": "Full text search" }, "note_tooltip": { - "note-has-been-deleted": "Note has been deleted." + "note-has-been-deleted": "Note has been deleted.", + "quick-edit": "Quick edit" }, "geo-map": { "create-child-note-title": "Create a new child note and add it to the map", @@ -1871,7 +1879,8 @@ }, "geo-map-context": { "open-location": "Open location", - "remove-from-map": "Remove from map" + "remove-from-map": "Remove from map", + "add-note": "Add a marker at this location" }, "help-button": { "title": "Open the relevant help page" @@ -1933,5 +1942,38 @@ "title": "Appearance", "word_wrapping": "Word wrapping", "color-scheme": "Color scheme" + }, + "cpu_arch_warning": { + "title": "Please download the ARM64 version", + "message_macos": "TriliumNext is currently running under Rosetta 2 translation, which means you're using the Intel (x64) version on Apple Silicon Mac. This will significantly impact performance and battery life.", + "message_windows": "TriliumNext is currently running emulation, which means you're using the Intel (x64) version on a Windows on ARM device. This will significantly impact performance and battery life.", + "recommendation": "For the best experience, please download the native ARM64 version of TriliumNext from our releases page.", + "download_link": "Download Native Version", + "continue_anyway": "Continue Anyway", + "dont_show_again": "Don't show this warning again" + }, + "editorfeatures": { + "title": "Features", + "emoji_completion_enabled": "Enable Emoji auto-completion", + "note_completion_enabled": "Enable note auto-completion" + }, + "table_view": { + "new-row": "New row", + "new-column": "New column", + "sort-column-by": "Sort by \"{{title}}\"", + "sort-column-ascending": "Ascending", + "sort-column-descending": "Descending", + "sort-column-clear": "Clear sorting", + "hide-column": "Hide column \"{{title}}\"", + "show-hide-columns": "Show/hide columns", + "row-insert-above": "Insert row above", + "row-insert-below": "Insert row below" + }, + "book_properties_config": { + "hide-weekends": "Hide weekends", + "display-week-numbers": "Display week numbers" + }, + "table_context_menu": { + "delete_row": "Delete row" } } diff --git a/apps/client/src/translations/es/translation.json b/apps/client/src/translations/es/translation.json index 64951c3a6..1a4fa051e 100644 --- a/apps/client/src/translations/es/translation.json +++ b/apps/client/src/translations/es/translation.json @@ -1,6 +1,6 @@ { "about": { - "title": "Acerca de TriliumNext Notes", + "title": "Acerca de Trilium Notes", "close": "Cerrar", "homepage": "Página principal:", "app_version": "Versión de la aplicación:", @@ -16,7 +16,7 @@ "message": "Ha ocurrido un error crítico que previene que el cliente de la aplicación inicie:\n\n{{message}}\n\nMuy probablemente es causado por un script que falla de forma inesperada. Intente iniciar la aplicación en modo seguro y atienda el error." }, "widget-error": { - "title": "No se pudo inicializar un widget", + "title": "Hubo un fallo al inicializar un widget", "message-custom": "El widget personalizado de la nota con ID \"{{id}}\", titulada \"{{title}}\" no pudo ser inicializado debido a:\n\n{{message}}", "message-unknown": "Un widget no pudo ser inicializado debido a:\n\n{{message}}" }, @@ -127,6 +127,7 @@ "collapseSubTree": "colapsar subárbol", "tabShortcuts": "Atajos de pestañas", "newTabNoteLink": "CTRL+clic - (o clic central del mouse) en el enlace de la nota abre la nota en una nueva pestaña", + "newTabWithActivationNoteLink": "Ctrl+Shift+clic - (o Shift+clic de rueda de ratón) en el enlace de la nota abre y activa la nota en una nueva pestaña", "onlyInDesktop": "Solo en escritorio (compilación con Electron)", "openEmptyTab": "abrir pestaña vacía", "closeActiveTab": "cerrar pestaña activa", @@ -232,6 +233,8 @@ "move_success_message": "Las notas seleccionadas se han movido a " }, "note_type_chooser": { + "change_path_prompt": "Cambiar donde se creará la nueva nota:", + "search_placeholder": "ruta de búsqueda por nombre (por defecto si está vacío)", "modal_title": "Elija el tipo de nota", "close": "Cerrar", "modal_body": "Elija el tipo de nota/plantilla de la nueva nota:", @@ -274,9 +277,9 @@ "revision_last_edited": "Esta revisión se editó por última vez en {{date}}", "confirm_delete_all": "¿Quiere eliminar todas las revisiones de esta nota?", "no_revisions": "Aún no hay revisiones para esta nota...", - "restore_button": "", + "restore_button": "Restaurar", "confirm_restore": "¿Quiere restaurar esta revisión? Esto sobrescribirá el título actual y el contenido de la nota con esta revisión.", - "delete_button": "", + "delete_button": "Eliminar", "confirm_delete": "¿Quieres eliminar esta revisión?", "revisions_deleted": "Se han eliminado las revisiones de nota.", "revision_restored": "Se ha restaurado la revisión de nota.", @@ -588,6 +591,7 @@ "sat": "Sáb", "sun": "Dom", "cannot_find_day_note": "No se puede encontrar la nota del día", + "cannot_find_week_note": "No se puede encontrar la nota de la semana", "january": "Enero", "febuary": "Febrero", "march": "Marzo", @@ -639,7 +643,7 @@ "reload_frontend": "Recargar interfaz", "show_hidden_subtree": "Mostrar subárbol oculto", "show_help": "Mostrar ayuda", - "about": "Acerca de TriliumNext Notes", + "about": "Acerca de Trilium Notes", "logout": "Cerrar sesión", "show-cheatsheet": "Mostrar hoja de trucos", "toggle-zen-mode": "Modo Zen" @@ -754,7 +758,7 @@ "expand_all_children": "Ampliar todas las subnotas", "collapse": "Colapsar", "expand": "Expandir", - "book_properties": "Propiedades del libro", + "book_properties": "", "invalid_view_type": "Tipo de vista inválida '{{type}}'", "calendar": "Calendario" }, @@ -1121,6 +1125,148 @@ "layout-vertical-description": "la barra del lanzador está en la izquierda (por defecto)", "layout-horizontal-description": "la barra de lanzamiento está debajo de la barra de pestañas, la barra de pestañas ahora tiene ancho completo." }, + "ai_llm": { + "not_started": "No iniciado", + "title": "IA y ajustes de embeddings", + "processed_notes": "Notas procesadas", + "total_notes": "Notas totales", + "progress": "Progreso", + "queued_notes": "Notas en fila", + "failed_notes": "Notas fallidas", + "last_processed": "Última procesada", + "refresh_stats": "Recargar estadísticas", + "enable_ai_features": "Habilitar características IA/LLM", + "enable_ai_description": "Habilitar características de IA como resumen de notas, generación de contenido y otras capacidades LLM", + "openai_tab": "OpenAI", + "anthropic_tab": "Anthropic", + "voyage_tab": "Voyage AI", + "ollama_tab": "Ollama", + "enable_ai": "Habilitar características IA/LLM", + "enable_ai_desc": "Habilitar características de IA como resumen de notas, generación de contenido y otras capacidades LLM", + "provider_configuration": "Configuración de proveedor de IA", + "provider_precedence": "Precedencia de proveedor", + "provider_precedence_description": "Lista de proveedores en orden de precedencia separada por comas (p.e., 'openai,anthropic,ollama')", + "temperature": "Temperatura", + "temperature_description": "Controla la aleatoriedad de las respuestas (0 = determinista, 2 = aleatoriedad máxima)", + "system_prompt": "Mensaje de sistema", + "system_prompt_description": "Mensaje de sistema predeterminado utilizado para todas las interacciones de IA", + "openai_configuration": "Configuración de OpenAI", + "openai_settings": "Ajustes de OpenAI", + "api_key": "Clave API", + "url": "URL base", + "model": "Modelo", + "openai_api_key_description": "Tu clave API de OpenAI para acceder a sus servicios de IA", + "anthropic_api_key_description": "Tu clave API de Anthropic para acceder a los modelos Claude", + "default_model": "Modelo por defecto", + "openai_model_description": "Ejemplos: gpt-4o, gpt-4-turbo, gpt-3.5-turbo", + "base_url": "URL base", + "openai_url_description": "Por defecto: https://api.openai.com/v1", + "anthropic_settings": "Ajustes de Anthropic", + "anthropic_url_description": "URL base para la API de Anthropic (por defecto: https://api.anthropic.com)", + "anthropic_model_description": "Modelos Claude de Anthropic para el completado de chat", + "voyage_settings": "Ajustes de Voyage AI", + "ollama_settings": "Ajustes de Ollama", + "ollama_url_description": "URL para la API de Ollama (por defecto: http://localhost:11434)", + "ollama_model_description": "Modelo de Ollama a usar para el completado de chat", + "anthropic_configuration": "Configuración de Anthropic", + "voyage_configuration": "Configuración de Voyage AI", + "voyage_url_description": "Por defecto: https://api.voyageai.com/v1", + "ollama_configuration": "Configuración de Ollama", + "enable_ollama": "Habilitar Ollama", + "enable_ollama_description": "Habilitar Ollama para uso de modelo de IA local", + "ollama_url": "URL de Ollama", + "ollama_model": "Modelo de Ollama", + "refresh_models": "Refrescar modelos", + "refreshing_models": "Refrescando...", + "enable_automatic_indexing": "Habilitar indexado automático", + "rebuild_index": "Recrear índice", + "rebuild_index_error": "Error al comenzar la reconstrucción del índice. Consulte los registros para más detalles.", + "note_title": "Título de nota", + "error": "Error", + "last_attempt": "Último intento", + "actions": "Acciones", + "retry": "Reintentar", + "partial": "{{ percentage }}% completado", + "retry_queued": "Nota en la cola para reintento", + "retry_failed": "Hubo un fallo al poner en la cola a la nota para reintento", + "max_notes_per_llm_query": "Máximo de notas por consulta", + "max_notes_per_llm_query_description": "Número máximo de notas similares a incluir en el contexto IA", + "active_providers": "Proveedores activos", + "disabled_providers": "Proveedores deshabilitados", + "remove_provider": "Eliminar proveedor de la búsqueda", + "restore_provider": "Restaurar proveedor a la búsqueda", + "similarity_threshold": "Bias de similaridad", + "similarity_threshold_description": "Puntuación de similaridad mínima (0-1) para incluir notas en el contexto para consultas LLM", + "reprocess_index": "Reconstruir el índice de búsqueda", + "reprocessing_index": "Reconstruyendo...", + "reprocess_index_started": "La optimización de índice de búsqueda comenzó en segundo plano", + "reprocess_index_error": "Error al reconstruir el índice de búsqueda", + "index_rebuild_progress": "Progreso de reconstrucción de índice", + "index_rebuilding": "Optimizando índice ({{percentage}}%)", + "index_rebuild_complete": "Optimización de índice completa", + "index_rebuild_status_error": "Error al comprobar el estado de reconstrucción del índice", + "never": "Nunca", + "processing": "Procesando ({{percentage}}%)", + "incomplete": "Incompleto ({{percentage}}%)", + "complete": "Completo (100%)", + "refreshing": "Refrescando...", + "auto_refresh_notice": "Refrescar automáticamente cada {{seconds}} segundos", + "note_queued_for_retry": "Nota en la cola para reintento", + "failed_to_retry_note": "Hubo un fallo al reintentar nota", + "all_notes_queued_for_retry": "Todas las notas con fallo agregadas a la cola para reintento", + "failed_to_retry_all": "Hubo un fallo al reintentar notas", + "ai_settings": "Ajustes de IA", + "api_key_tooltip": "Clave API para acceder al servicio", + "empty_key_warning": { + "anthropic": "La clave API de Anthropic está vacía. Por favor, ingrese una clave API válida.", + "openai": "La clave API de OpenAI está vacía. Por favor, ingrese una clave API válida.", + "voyage": "La clave API de Voyage está vacía. Por favor, ingrese una clave API válida.", + "ollama": "La clave API de Ollama está vacía. Por favor, ingrese una clave API válida." + }, + "agent": { + "processing": "Procesando...", + "thinking": "Pensando...", + "loading": "Cargando...", + "generating": "Generando..." + }, + "name": "IA", + "openai": "OpenAI", + "use_enhanced_context": "Utilizar contexto mejorado", + "enhanced_context_description": "Provee a la IA con más contexto de la nota y sus notas relacionadas para obtener mejores respuestas", + "show_thinking": "Mostrar pensamiento", + "show_thinking_description": "Mostrar la cadena del proceso de pensamiento de la IA", + "enter_message": "Ingrese su mensaje...", + "error_contacting_provider": "Error al contactar con su proveedor de IA. Por favor compruebe sus ajustes y conexión a internet.", + "error_generating_response": "Error al generar respuesta de IA", + "index_all_notes": "Indexar todas las notas", + "index_status": "Estado de índice", + "indexed_notes": "Notas indexadas", + "indexing_stopped": "Indexado detenido", + "indexing_in_progress": "Indexado en progreso...", + "last_indexed": "Último indexado", + "n_notes_queued": "{{ count }} nota agregada a la cola para indexado", + "n_notes_queued_plural": "{{ count }} notas agregadas a la cola para indexado", + "note_chat": "Chat de nota", + "notes_indexed": "{{ count }} nota indexada", + "notes_indexed_plural": "{{ count }} notas indexadas", + "sources": "Fuentes", + "start_indexing": "Comenzar indexado", + "use_advanced_context": "Usar contexto avanzado", + "ollama_no_url": "Ollama no está configurado. Por favor ingrese una URL válida.", + "chat": { + "root_note_title": "Chats de IA", + "root_note_content": "Esta nota contiene tus conversaciones de chat de IA guardadas.", + "new_chat_title": "Nuevo chat", + "create_new_ai_chat": "Crear nuevo chat de IA" + }, + "create_new_ai_chat": "Crear nuevo chat de IA", + "configuration_warnings": "Hay algunos problemas con su configuración de IA. Por favor compruebe sus ajustes.", + "experimental_warning": "La característica de LLM aún es experimental - ha sido advertido.", + "selected_provider": "Proveedor seleccionado", + "selected_provider_description": "Elija el proveedor de IA para el chat y características de completado", + "select_model": "Seleccionar modelo...", + "select_provider": "Seleccionar proveedor..." + }, "zoom_factor": { "title": "Factor de zoom (solo versión de escritorio)", "description": "El zoom también se puede controlar con los atajos CTRL+- y CTRL+=." @@ -1236,12 +1382,26 @@ "label": "Tamaño para modo de solo lectura automático (notas de texto)", "unit": "caracteres" }, + "custom_date_time_format": { + "title": "Formato de fecha/hora personalizada", + "description": "Personalizar el formado de fecha y la hora insertada vía o la barra de herramientas. Véa la documentación de Day.js para más tokens de formato disponibles.", + "format_string": "Cadena de formato:", + "formatted_time": "Fecha/hora personalizada:" + }, "i18n": { "title": "Localización", "language": "Idioma", "first-day-of-the-week": "Primer día de la semana", "sunday": "Domingo", - "monday": "Lunes" + "monday": "Lunes", + "first-week-of-the-year": "Primer semana del año", + "first-week-contains-first-day": "Primer semana que contiene al primer día del año", + "first-week-contains-first-thursday": "Primer semana que contiene al primer jueves del año", + "first-week-has-minimum-days": "Primer semana que contiene un mínimo de días", + "min-days-in-first-week": "Días mínimos en la primer semana", + "first-week-info": "Primer semana que contiene al primer jueves del año está basado en el estándarISO 8601.", + "first-week-warning": "Cambiar las opciones de primer semana puede causar duplicados con las Notas Semanales existentes y las Notas Semanales existentes no serán actualizadas respectivamente.", + "formatting-locale": "Fecha y formato de número" }, "backup": { "automatic_backup": "Copia de seguridad automática", @@ -1308,6 +1468,39 @@ "password_mismatch": "Las nuevas contraseñas no son las mismas.", "password_changed_success": "La contraseña ha sido cambiada. Trilium se recargará después de presionar Aceptar." }, + "multi_factor_authentication": { + "title": "Autenticación Multi-Factor", + "description": "La autenticación multifactor (MFA) agrega una capa adicional de seguridad a su cuenta. En lugar de solo ingresar una contraseña para iniciar sesión, MFA requiere que proporcione una o más pruebas adicionales para verificar su identidad. De esta manera, incluso si alguien se apodera de su contraseña, aún no puede acceder a su cuenta sin la segunda pieza de información. Es como agregar una cerradura adicional a su puerta, lo que hace que sea mucho más difícil para cualquier otra persona entrar.

    Por favor siga las instrucciones a continuación para habilitar MFA. Si no lo configura correctamente, el inicio de sesión volverá a solo contraseña.", + "mfa_enabled": "Habilitar la autenticación multifactor", + "mfa_method": "Método MFA", + "electron_disabled": "Actualmente la autenticación multifactor no está soportada en la compilación de escritorio.", + "totp_title": "Contraseña de un solo uso basada en el tiempo (TOTP)", + "totp_description": "TOTP (contraseña de un solo uso basada en el tiempo) es una característica de seguridad que genera un código temporal único que cambia cada 30 segundos. Utiliza este código, junto con su contraseña para iniciar sesión en su cuenta, lo que hace que sea mucho más difícil para cualquier otra persona acceder a ella.", + "totp_secret_title": "Generar secreto TOTP", + "totp_secret_generate": "Generar secreto TOTP", + "totp_secret_regenerate": "Regenerar secreto TOTP", + "no_totp_secret_warning": "Para habilitar TOTP, primero debe de generar un secreto TOTP.", + "totp_secret_description_warning": "Después de generar un nuevo secreto TOTP, le será requerido que inicie sesión otra vez con el nuevo secreto TOTP.", + "totp_secret_generated": "Secreto TOTP generado", + "totp_secret_warning": "Por favor guarde el secreto generado en una ubicación segura. No será mostrado de nuevo.", + "totp_secret_regenerate_confirm": "¿Está seguro que desea regenerar el secreto TOTP? Esto va a invalidar el secreto TOTP previo y todos los códigos de recuperación existentes.", + "recovery_keys_title": "Claves de recuperación para un solo inicio de sesión", + "recovery_keys_description": "Las claves de recuperación para un solo inicio de sesión son usadas para iniciar sesión incluso cuando no puede acceder a los códigos de su autentificador.", + "recovery_keys_description_warning": "Las claves de recuperación no son mostrada de nuevo después de dejar esta página, manténgalas en un lugar seguro.
    Después de que una clave de recuperación es utilizada ya no puede utilizarse de nuevo.", + "recovery_keys_error": "Error al generar códigos de recuperación", + "recovery_keys_no_key_set": "No hay códigos de recuperación establecidos", + "recovery_keys_generate": "Generar códigos de recuperación", + "recovery_keys_regenerate": "Regenerar códigos de recuperación", + "recovery_keys_used": "Usado: {{date}}", + "recovery_keys_unused": "El código de recuperación {{index}} está sin usar", + "oauth_title": "OAuth/OpenID", + "oauth_description": "OpenID es una forma estandarizada de permitirle iniciar sesión en sitios web utilizando una cuenta de otro servicio, como Google, para verificar su identidad. Siga estas instrucciones para configurar un servicio OpenID a través de Google.", + "oauth_description_warning": "Para habilitar OAuth/OpenID, necesita establecer la URL base de OAuth/OpenID, ID de cliente y secreto de cliente en el archivo config.ini y reiniciar la aplicación. Si desea establecerlas desde variables de ambiente, por favor establezca TRILIUM_OAUTH_BASE_URL, TRILIUM_OAUTH_CLIENT_ID y TRILIUM_OAUTH_CLIENT_SECRET.", + "oauth_missing_vars": "Ajustes faltantes: {{variables}}", + "oauth_user_account": "Cuenta de usuario: ", + "oauth_user_email": "Correo electrónico de usuario: ", + "oauth_user_not_logged_in": "¡No ha iniciado sesión!" + }, "shortcuts": { "keyboard_shortcuts": "Atajos de teclado", "multiple_shortcuts": "Varios atajos para la misma acción se pueden separar mediante comas.", @@ -1400,7 +1593,7 @@ "move-to": "Mover a...", "paste-into": "Pegar en", "paste-after": "Pegar después de", - "duplicate-subtree": "Duplicar subárbol", + "duplicate": "Duplicar", "export": "Exportar", "import-into-note": "Importar a nota", "apply-bulk-actions": "Aplicar acciones en lote", @@ -1431,7 +1624,9 @@ "widget": "Widget", "confirm-change": "No es recomendado cambiar el tipo de nota cuando el contenido de la nota no está vacío. ¿Desea continuar de cualquier manera?", "geo-map": "Mapa Geo", - "beta-feature": "Beta" + "beta-feature": "Beta", + "ai-chat": "Chat de IA", + "task-list": "Lista de tareas" }, "protect_note": { "toggle-on": "Proteger la nota", @@ -1541,7 +1736,9 @@ }, "clipboard": { "cut": "La(s) notas(s) han sido cortadas al portapapeles.", - "copied": "La(s) notas(s) han sido copiadas al portapapeles." + "copied": "La(s) notas(s) han sido copiadas al portapapeles.", + "copy_failed": "No se puede copiar al portapapeles debido a problemas de permisos.", + "copy_success": "Copiado al portapapeles." }, "entrypoints": { "note-revision-created": "Una revisión de nota ha sido creada.", @@ -1584,7 +1781,7 @@ "auto-detect-language": "Detectado automáticamente" }, "highlighting": { - "title": "", + "title": "Bloques de código", "description": "Controla el resaltado de sintaxis para bloques de código dentro de las notas de texto, las notas de código no serán afectadas.", "color-scheme": "Esquema de color" }, @@ -1592,7 +1789,8 @@ "word_wrapping": "Ajuste de palabras", "theme_none": "Sin resaltado de sintaxis", "theme_group_light": "Temas claros", - "theme_group_dark": "Temas oscuros" + "theme_group_dark": "Temas oscuros", + "copy_title": "Copiar al portapapeles" }, "classic_editor_toolbar": { "title": "Formato" @@ -1713,5 +1911,22 @@ }, "png_export_button": { "button_title": "Exportar diagrama como PNG" + }, + "svg": { + "export_to_png": "El diagrama no pudo ser exportado a PNG." + }, + "code_theme": { + "title": "Apariencia", + "word_wrapping": "Ajuste de palabras", + "color-scheme": "Esquema de color" + }, + "cpu_arch_warning": { + "title": "Por favor descargue la versión ARM64", + "message_macos": "TriliumNext está siendo ejecutado bajo traducción Rosetta 2, lo que significa que está usando la versión Intel (x64) en Apple Silicon Mac. Esto impactará significativamente en el rendimiento y la vida de la batería.", + "message_windows": "TriliumNext está siendo ejecutado bajo emulación, lo que significa que está usando la version Intel (x64) en Windows en un dispositivo ARM. Esto impactará significativamente en el rendimiento y la vida de la batería.", + "recommendation": "Para la mejor experiencia, por favor descargue la versión nativa ARM64 de TriliumNext desde nuestra página de lanzamientos.", + "download_link": "Descargar versión nativa", + "continue_anyway": "Continuar de todas maneras", + "dont_show_again": "No mostrar esta advertencia otra vez" } } diff --git a/apps/client/src/translations/fr/translation.json b/apps/client/src/translations/fr/translation.json index 74335e936..4578f9ecc 100644 --- a/apps/client/src/translations/fr/translation.json +++ b/apps/client/src/translations/fr/translation.json @@ -1,6 +1,6 @@ { "about": { - "title": "À propos de TriliumNext Notes", + "title": "À propos de Trilium Notes", "close": "Fermer", "homepage": "Page d'accueil :", "app_version": "Version de l'application :", @@ -639,7 +639,7 @@ "reload_frontend": "Recharger l'interface", "show_hidden_subtree": "Afficher le Sous-arbre caché", "show_help": "Afficher l'aide", - "about": "À propos de TriliumNext Notes", + "about": "À propos de Trilium Notes", "logout": "Déconnexion", "show-cheatsheet": "Afficher l'aide rapide", "toggle-zen-mode": "Zen Mode" @@ -753,7 +753,7 @@ "expand_all_children": "Développer tous les enfants", "collapse": "Réduire", "expand": "Développer", - "book_properties": "Propriétés du livre", + "book_properties": "", "invalid_view_type": "Type de vue non valide '{{type}}'", "calendar": "Calendrier" }, @@ -1389,7 +1389,7 @@ "move-to": "Déplacer vers...", "paste-into": "Coller dans", "paste-after": "Coller après", - "duplicate-subtree": "Dupliquer le sous-arbre", + "duplicate": "Dupliquer", "export": "Exporter", "import-into-note": "Importer dans la note", "apply-bulk-actions": "Appliquer des Actions groupées", diff --git a/apps/client/src/translations/ro/translation.json b/apps/client/src/translations/ro/translation.json index 25b073e9e..c45df1e76 100644 --- a/apps/client/src/translations/ro/translation.json +++ b/apps/client/src/translations/ro/translation.json @@ -1,6 +1,6 @@ { "about": { - "title": "Despre TriliumNext Notes", + "title": "Despre Trilium Notes", "homepage": "Site web:", "app_version": "Versiune aplicație:", "db_version": "Versiune bază de date:", @@ -274,7 +274,7 @@ "no_children_help": "Această notiță de tip Carte nu are nicio subnotiță așadar nu este nimic de afișat. Vedeți wiki pentru detalii." }, "book_properties": { - "book_properties": "Proprietăți carte", + "book_properties": "", "collapse": "Minimizează", "collapse_all_notes": "Minimizează toate notițele", "expand": "Expandează", @@ -572,7 +572,7 @@ "system-default": "Fontul predefinit al sistemului" }, "global_menu": { - "about": "Despre TriliumNext Notes", + "about": "Despre Trilium Notes", "advanced": "Opțiuni avansate", "configure_launchbar": "Configurează bara de lansare", "logout": "Deautentificare", @@ -1349,7 +1349,7 @@ "copy-note-path-to-clipboard": "Copiază calea notiței în clipboard", "cut": "Decupează", "delete": "Șterge", - "duplicate-subtree": "Dublifică ierarhia", + "duplicate": "Dublifică", "edit-branch-prefix": "Editează prefixul ramurii", "expand-subtree": "Expandează subnotițele", "export": "Exportă", diff --git a/apps/client/src/translations/tw/translation.json b/apps/client/src/translations/tw/translation.json index c25504510..701df1262 100644 --- a/apps/client/src/translations/tw/translation.json +++ b/apps/client/src/translations/tw/translation.json @@ -1,6 +1,6 @@ { "about": { - "title": "關於 TriliumNext Notes", + "title": "關於 Trilium Notes", "homepage": "項目主頁:", "app_version": "軟件版本:", "db_version": "資料庫版本:", @@ -718,7 +718,7 @@ "expand_all_children": "展開所有子項", "collapse": "折疊", "expand": "展開", - "book_properties": "書籍屬性", + "book_properties": "", "invalid_view_type": "無效的查看類型 '{{type}}'" }, "edited_notes": { @@ -1336,7 +1336,6 @@ "move-to": "移動到...", "paste-into": "貼上到裡面", "paste-after": "貼上到後面", - "duplicate-subtree": "複製子樹", "export": "匯出", "import-into-note": "匯入到筆記", "apply-bulk-actions": "應用批量操作", diff --git a/apps/client/src/types-assets.d.ts b/apps/client/src/types-assets.d.ts index 34a964be8..e80532517 100644 --- a/apps/client/src/types-assets.d.ts +++ b/apps/client/src/types-assets.d.ts @@ -3,9 +3,14 @@ declare module "*.png" { export default path; } -declare module "@triliumnext/ckeditor5/emoji_definitions/en.json?url" { +declare module "*?url" { var path: string; export default path; } +declare module "*?raw" { + var content: string; + export default content; +} + declare module "boxicons/css/boxicons.min.css" { } diff --git a/apps/client/src/types.d.ts b/apps/client/src/types.d.ts index 113b94d76..be42284c7 100644 --- a/apps/client/src/types.d.ts +++ b/apps/client/src/types.d.ts @@ -57,6 +57,8 @@ declare global { process?: ElectronProcess; glob?: CustomGlobals; + + EXCALIDRAW_ASSET_PATH?: string; } interface AutoCompleteConfig { diff --git a/apps/client/src/vite-env.d.ts b/apps/client/src/vite-env.d.ts new file mode 100644 index 000000000..d6d562031 --- /dev/null +++ b/apps/client/src/vite-env.d.ts @@ -0,0 +1,16 @@ +/// + +interface ViteTypeOptions { + strictImportMetaEnv: unknown +} + +interface ImportMetaEnv { + /** The license key for CKEditor premium features. */ + readonly VITE_CKEDITOR_KEY?: string; + /** Whether to enable the CKEditor inspector (see https://ckeditor.com/docs/ckeditor5/latest/framework/develpment-tools/inspector.html). */ + readonly VITE_CKEDITOR_ENABLE_INSPECTOR?: "true" | "false"; +} + +interface ImportMeta { + readonly env: ImportMetaEnv +} diff --git a/apps/client/src/widgets/attribute_widgets/attribute_detail.ts b/apps/client/src/widgets/attribute_widgets/attribute_detail.ts index 08bb764fc..9017673f3 100644 --- a/apps/client/src/widgets/attribute_widgets/attribute_detail.ts +++ b/apps/client/src/widgets/attribute_widgets/attribute_detail.ts @@ -11,6 +11,7 @@ import utils from "../../services/utils.js"; import shortcutService from "../../services/shortcuts.js"; import appContext from "../../components/app_context.js"; import type { Attribute } from "../../services/attribute_parser.js"; +import { focusSavedElement, saveFocusedElement } from "../../services/focus.js"; const TPL = /*html*/`
    @@ -483,7 +484,7 @@ export default class AttributeDetailWidget extends NoteContextAwareWidget { return; } - utils.saveFocusedElement(); + saveFocusedElement(); this.attrType = this.getAttrType(attribute); @@ -605,7 +606,7 @@ export default class AttributeDetailWidget extends NoteContextAwareWidget { this.hide(); - utils.focusSavedElement(); + focusSavedElement(); } async cancelAndClose() { @@ -613,7 +614,7 @@ export default class AttributeDetailWidget extends NoteContextAwareWidget { this.hide(); - utils.focusSavedElement(); + focusSavedElement(); } userEditedAttribute() { diff --git a/apps/client/src/widgets/attribute_widgets/attribute_editor.ts b/apps/client/src/widgets/attribute_widgets/attribute_editor.ts index 132632ceb..08bfefac3 100644 --- a/apps/client/src/widgets/attribute_widgets/attribute_editor.ts +++ b/apps/client/src/widgets/attribute_widgets/attribute_editor.ts @@ -4,7 +4,7 @@ import noteAutocompleteService, { type Suggestion } from "../../services/note_au import server from "../../services/server.js"; import contextMenuService from "../../menus/context_menu.js"; import attributeParser, { type Attribute } from "../../services/attribute_parser.js"; -import { AttributeEditor, type EditorConfig, type Element, type MentionFeed, type Node, type Position } from "@triliumnext/ckeditor5"; +import { AttributeEditor, type EditorConfig, type ModelElement, type MentionFeed, type ModelNode, type ModelPosition } from "@triliumnext/ckeditor5"; import froca from "../../services/froca.js"; import attributeRenderer from "../../services/attribute_renderer.js"; import noteCreateService from "../../services/note_create.js"; @@ -417,15 +417,15 @@ export default class AttributeEditorWidget extends NoteContextAwareWidget implem this.$editor.tooltip("show"); } - getClickIndex(pos: Position) { + getClickIndex(pos: ModelPosition) { let clickIndex = pos.offset - (pos.textNode?.startOffset ?? 0); - let curNode: Node | Text | Element | null = pos.textNode; + let curNode: ModelNode | Text | ModelElement | null = pos.textNode; while (curNode?.previousSibling) { curNode = curNode.previousSibling; - if ((curNode as Element).name === "reference") { + if ((curNode as ModelElement).name === "reference") { clickIndex += (curNode.getAttribute("notePath") as string).length + 1; } else if ("data" in curNode) { clickIndex += (curNode.data as string).length; diff --git a/apps/client/src/widgets/buttons/global_menu.ts b/apps/client/src/widgets/buttons/global_menu.ts index 47323e271..65e7d2ed1 100644 --- a/apps/client/src/widgets/buttons/global_menu.ts +++ b/apps/client/src/widgets/buttons/global_menu.ts @@ -424,7 +424,7 @@ export default class GlobalMenuWidget extends BasicWidget { } downloadLatestVersionCommand() { - window.open("https://github.com/TriliumNext/Notes/releases/latest"); + window.open("https://github.com/TriliumNext/Trilium/releases/latest"); } activeContextChangedEvent() { diff --git a/apps/client/src/widgets/buttons/note_actions.ts b/apps/client/src/widgets/buttons/note_actions.ts index 6989d8152..9bef36f3a 100644 --- a/apps/client/src/widgets/buttons/note_actions.ts +++ b/apps/client/src/widgets/buttons/note_actions.ts @@ -189,7 +189,7 @@ export default class NoteActionsWidget extends NoteContextAwareWidget { this.toggleDisabled(this.$findInTextButton, ["text", "code", "book", "mindMap"].includes(note.type)); this.toggleDisabled(this.$showAttachmentsButton, !isInOptions); - this.toggleDisabled(this.$showSourceButton, ["text", "code", "relationMap", "mermaid", "canvas", "mindMap", "geoMap"].includes(note.type)); + this.toggleDisabled(this.$showSourceButton, ["text", "code", "relationMap", "mermaid", "canvas", "mindMap"].includes(note.type)); const canPrint = ["text", "code"].includes(note.type); this.toggleDisabled(this.$printActiveNoteButton, canPrint); diff --git a/apps/client/src/widgets/containers/container.ts b/apps/client/src/widgets/containers/container.ts index 679fa11a8..236feffdd 100644 --- a/apps/client/src/widgets/containers/container.ts +++ b/apps/client/src/widgets/containers/container.ts @@ -1,5 +1,5 @@ -import type { default as Component, TypedComponent } from "../../components/component.js"; -import BasicWidget, { TypedBasicWidget } from "../basic_widget.js"; +import type { TypedComponent } from "../../components/component.js"; +import { TypedBasicWidget } from "../basic_widget.js"; export default class Container> extends TypedBasicWidget { doRender() { diff --git a/apps/client/src/widgets/containers/left_pane_container.ts b/apps/client/src/widgets/containers/left_pane_container.ts index d95f5091a..e6bc78e23 100644 --- a/apps/client/src/widgets/containers/left_pane_container.ts +++ b/apps/client/src/widgets/containers/left_pane_container.ts @@ -5,7 +5,7 @@ import type Component from "../../components/component.js"; export default class LeftPaneContainer extends FlexContainer { private currentLeftPaneVisible: boolean; - + constructor() { super("column"); @@ -24,6 +24,7 @@ export default class LeftPaneContainer extends FlexContainer { this.currentLeftPaneVisible = leftPaneVisible ?? !this.currentLeftPaneVisible; const visible = this.isEnabled(); this.toggleInt(visible); + this.parent?.$widget.toggleClass("left-pane-hidden", !visible); if (visible) { this.triggerEvent("focusTree", {}); diff --git a/apps/client/src/widgets/dialogs/about.ts b/apps/client/src/widgets/dialogs/about.ts index 2c364d756..2276a5214 100644 --- a/apps/client/src/widgets/dialogs/about.ts +++ b/apps/client/src/widgets/dialogs/about.ts @@ -4,6 +4,7 @@ import BasicWidget from "../basic_widget.js"; import openService from "../../services/open.js"; import server from "../../services/server.js"; import utils from "../../services/utils.js"; +import { openDialog } from "../../services/dialog.js"; interface AppInfo { appVersion: string; @@ -26,7 +27,7 @@ const TPL = /*html*/` - + @@ -91,7 +92,7 @@ export default class AboutDialog extends BasicWidget { 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/Notes/commit/${appInfo.buildRevision}`); + this.$buildRevision.attr("href", `https://github.com/TriliumNext/Trilium/commit/${appInfo.buildRevision}`); if (utils.isElectron()) { this.$dataDirectory.html( $("", { @@ -111,6 +112,6 @@ export default class AboutDialog extends BasicWidget { async openAboutDialogEvent() { await this.refresh(); - utils.openDialog(this.$widget); + openDialog(this.$widget); } } diff --git a/apps/client/src/widgets/dialogs/add_link.ts b/apps/client/src/widgets/dialogs/add_link.ts index 14defb082..d7758c92d 100644 --- a/apps/client/src/widgets/dialogs/add_link.ts +++ b/apps/client/src/widgets/dialogs/add_link.ts @@ -1,11 +1,11 @@ import { t } from "../../services/i18n.js"; import treeService from "../../services/tree.js"; import noteAutocompleteService from "../../services/note_autocomplete.js"; -import utils from "../../services/utils.js"; import BasicWidget from "../basic_widget.js"; import type { Suggestion } from "../../services/note_autocomplete.js"; import type { default as TextTypeWidget } from "../type_widgets/editable_text.js"; import type { EventData } from "../../components/app_context.js"; +import { openDialog } from "../../services/dialog.js"; const TPL = /*html*/`
    ${t("about.homepage")}https://github.com/TriliumNext/Noteshttps://github.com/TriliumNext/Trilium
    ${t("about.app_version")}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     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 Search + Not supported. 
    Relation Map + Not supported. 
    Note Map + Not supported. 
    Render Note + Not 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 View + Not supported. 
    Mind Map + The diagram is displayed as a vector image. +
      +
    • No further interaction supported.
    • +
    +
    Geo Map View + Not supported. 
    File + Basic interaction (downloading the file). +
      +
    • No further interaction supported.
    • +
    +
    + +

    While the sharing feature is powerful, it has some limitations:

    +
      +
    • Code Notes: No syntax highlighting.
    • +
    • Static Note Tree +
    • +
    • Protected Notes: Cannot be shared.
    • +
    • Include Notes: Not supported.
    • +
    +

    Some of these limitations may be addressed in future updates.

    +

    Prerequisites

    +

    To use the sharing feature, you must have a Server Installation of Trilium. + This is necessary because the notes will be hosted from the server.

    +

    How to Share a Note

    +
      +
    1. +

      Enable Sharing: To share a note, toggle the Shared switch + within the note's interface. Once sharing is enabled, an URL will appear, + which you can click to access the shared note.

      +

      + Share Note +

      +
    2. +
    3. +

      Access the Shared Note: The link provided will open the + note in your browser. If your server is not configured with a public IP, + the URL will refer to localhost (127.0.0.1).

      +
    4. +
    +

    Sharing a Note Subtree

    +

    When you share a note, you actually share the entire subtree of notes + beneath it. If the note has child notes, they will also be included in + the shared content. For example, sharing the "Formatting" subtree will + display a page with basic navigation for exploring all the notes within + that subtree.

    +

    Viewing All Shared Notes

    +

    You can view a list of all shared notes by clicking on "Show Shared Notes + Subtree." This allows you to manage and navigate through all the notes + you have made public.

    +

    Security Considerations

    +

    Shared notes are published on the open internet and can be accessed by + anyone with the URL. The URL's randomness does not provide security, so + it is crucial not to share sensitive information through this feature.

    +

    Password Protection

    +

    To protect shared notes with a username and password, you can use the #shareCredentials attribute. + Add this label to the note with the format #shareCredentials="username:password". + To protect an entire subtree, make sure the label is inheritable.

    +

    Advanced Sharing Options

    +

    Customizing the Appearance of Shared Notes

    +

    The default design should be a good starting point, but you can customize + it using your own CSS:

    +
      +
    • Custom CSS: Link a CSS Code note to the shared page by + adding a ~shareCss relation to the note. If you want this style + to apply to the entire subtree, make the label inheritable. You can hide + the CSS code note from the tree navigation by adding the #shareHiddenFromTree label.
    • +
    • Omitting Default CSS: For extensive styling changes, + use the #shareOmitDefaultCss label to avoid conflicts with Trilium's + default stylesheet.
    • +
    +

    Adding JavaScript

    +

    You can inject custom JavaScript into the shared note using the ~shareJs relation. + This allows you to access note attributes or traverse the note tree using + the fetchNote() API, which retrieves note data based on its + ID.

    +

    Example:

    const currentNote = await fetchNote();
     const parentNote = await fetchNote(currentNote.parentNoteIds[0]);
     
     for (const attr of parentNote.attributes) {
         console.log(attr.type, attr.name, attr.value);
     }
    -

    Creating Human-Readable URL Aliases

    -

    Shared notes typically have URLs like http://domain.tld/share/knvU8aJy4dJ7, - where the last part is the note's ID. You can make these URLs more user-friendly - by adding the #shareAlias label to individual notes (e.g., #shareAlias=highlighting). - This will change the URL to http://domain.tld/share/highlighting.

    -

    Important:

    -
      -
    1. Ensure that aliases are unique.
    2. -
    3. Using slashes (/) within aliases to create subpaths is not - supported.
    4. -
    -

    Viewing and Managing Shared Notes

    -

    All shared notes are grouped under an automatically managed "Shared Notes" - section. From here, you can view, share, or unshare notes by moving or - cloning them within this section.

    -

    - Shared Notes List -

    -

    Setting a Custom Favicon

    -

    To customize the favicon for your shared pages, create a relation ~shareFavicon pointing - to a file note containing the favicon (e.g., in .ico format).

    -

    Sharing a Note as the Root

    -

    You can designate a specific note or folder as the root of your shared - content by adding the #shareRoot label. This note will be linked - when visiting [http://domain.tld/share](http://domain/share), - making it easier to use Trilium as a fully-fledged website. Consider combining - this with the #shareIndex label, which will display a list of - all shared notes.

    -

    Limitations

    -

    While the sharing feature is powerful, it has some limitations:

    -
      -
    • No Relation Map Support -
    • -
    • Book Notes: Only show a list of child notes.
    • -
    • Code Notes: No syntax highlighting.
    • -
    • Static Note Tree -
    • -
    • Protected Notes: Cannot be shared.
    • -
    • Include Notes: Not supported.
    • -
    -

    Some of these limitations may be addressed in future updates.

    -

    Attribute reference

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    AttributeDescription
    shareHiddenFromTree - this note is hidden from left navigation tree, but still accessible with - its URL
    shareExternalLink - note will act as a link to an external website in the share tree
    shareAlias - define an alias using which the note will be available under https://your_trilium_host/share/[your_alias] -
    shareOmitDefaultCss - default share page CSS will be omitted. Use when you make extensive styling - changes.
    shareRoot - marks note which is served on /share root.
    shareDescription - define text to be added to the HTML meta tag for description
    shareRaw - Note 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.
    • -
    -
    shareCredentials - require 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.
    shareIndex - Note with this label will list all roots of shared notes.
    -
    \ No newline at end of file +

    Creating Human-Readable URL Aliases

    +

    Shared notes typically have URLs like http://domain.tld/share/knvU8aJy4dJ7, + where the last part is the note's ID. You can make these URLs more user-friendly + by adding the #shareAlias label to individual notes (e.g., #shareAlias=highlighting). + This will change the URL to http://domain.tld/share/highlighting.

    +

    Important:

    +
      +
    1. Ensure that aliases are unique.
    2. +
    3. Using slashes (/) within aliases to create subpaths is not + supported.
    4. +
    +

    Viewing and Managing Shared Notes

    +

    All shared notes are grouped under an automatically managed "Shared Notes" + section. From here, you can view, share, or unshare notes by moving or + cloning them within this section.

    +

    + Shared Notes List +

    +

    Setting a Custom Favicon

    +

    To customize the favicon for your shared pages, create a relation ~shareFavicon pointing + to a file note containing the favicon (e.g., in .ico format).

    +

    Sharing a Note as the Root

    +

    You can designate a specific note or folder as the root of your shared + content by adding the #shareRoot label. This note will be linked + when visiting [http://domain.tld/share](http://domain/share), + making it easier to use Trilium as a fully-fledged website. Consider combining + this with the #shareIndex label, which will display a list of + all shared notes.

    +

    Attribute reference

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    AttributeDescription
    shareHiddenFromTree + this note is hidden from left navigation tree, but still accessible with + its URL
    shareExternalLink + note will act as a link to an external website in the share tree
    shareAlias + define an alias using which the note will be available under https://your_trilium_host/share/[your_alias] +
    shareOmitDefaultCss + default share page CSS will be omitted. Use when you make extensive styling + changes.
    shareRoot + marks note which is served on /share root.
    shareDescription + define text to be added to the HTML meta tag for description
    shareRaw + Note 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.
    • +
    +
    shareCredentials + require 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.
    shareIndex + Note with this label will list all roots of shared notes.
    +
    + +

    Credits

    +

    Since v0.95.0, a new theme was introduced (and enabled by default) which + greatly improves the visual aspect of the Share feature, as well as its + functionality (such as mobile support, dark/light mode, collapsible tree, + etc.). This theme is an adaptation of the Trilium Rocks! by + zerebos.

    \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing/1_Serving directly the conte.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing/1_Serving directly the conte.png index 981a43146..23592294b 100644 Binary files a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing/1_Serving directly the conte.png and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing/1_Serving directly the conte.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing/Serving directly the content o.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing/Serving directly the content o.html index a02f07641..8f7217624 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing/Serving directly the content o.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing/Serving directly the content o.html @@ -1,24 +1,29 @@

    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
    +
    + +
    +
    + +
    +

    By adding an attribute to the note

    Simply add the #shareRaw attribute and the note will always diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing_image.png new file mode 100644 index 000000000..4c92b90c5 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing_share-multiple-not.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing_share-multiple-not.png deleted file mode 100644 index 6b88c8b6e..000000000 Binary files a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing_share-multiple-not.png and /dev/null differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing_share-single-note-.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing_share-single-note-.png deleted file mode 100644 index 744fd4cda..000000000 Binary files a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing_share-single-note-.png and /dev/null differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown.html index e99dddbf4..d71887009 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown.html @@ -42,19 +42,5 @@ This will export the notes in an unencrypted form, so if you reimport into Trilium, make sure to re-protect these notes.

    Supported syntax

    -
      -
    • GitHub-Flavored Markdown is - the main syntax that Trilium is following.
    • -
    • Images are supported. When exporting, images are usually kept in the basic - Markdown syntax but will use the HTML syntax if the image has a custom - width. Figures are always embedded as HTML.
    • -
    • Tables are supported with the Markdown syntax. If the table is too complex - or contains elements that would render as HTML, the table is also rendered - as HTML.
    • -
    • Admonitions are - supported using GitHub's format.
    • -
    • Links are supported. “Reference links” (internal links that mirror a note's - title and display its icon) are embedded as HTML in order to preserve the - information on import.
    • -
    • Math equations are supported using $ and $$ syntaxes.
    • -
    \ No newline at end of file +

    See the dedicated page: Supported syntax +

    \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown/Supported syntax.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown/Supported syntax.html new file mode 100644 index 000000000..23cce355a --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown/Supported syntax.html @@ -0,0 +1,54 @@ +

    GitHub-Flavored Markdown is + the main syntax that Trilium is following.

    +

    Images

    +

    When exporting, images are usually kept in the basic Markdown syntax but + will use the HTML syntax if the image has a custom width. Figures are always + embedded as HTML.

    +

    Tables

    +

    Simple tables are supported with the Markdown syntax. If the table is + too complex or contains elements that would render as HTML, the table is + also rendered as HTML.

    +

    Links

    +

    Standard Markdown links are supported.

    +

    Trilium internal links (that mirror a note's title and display its icon) + are embedded as HTML in order to preserve the information on import.

    +

    Math equations

    +

    Both inline and display equations are supported, using the $ and $$ syntaxes.

    +

    Admonitions

    +

    The Markdown syntax for admonitions as supported by Trilium is the one + that GitHub uses, which is as follows:

    > [!NOTE]
    +> This is a note.
    +
    +> [!TIP]
    +> This is a tip.
    +
    +> [!IMPORTANT]
    +> This is a very important information.
    +
    +> [!CAUTION]
    +> This is a caution.
    +

    There are currently no plans of supporting alternative admonition syntaxes + such as !!! note.

    +

    Wikilinks

    +

    Basic support for wikilinks has been added in v0.96.0:

    +
      +
    • [[foo/bar]] will look for the bar.md file in the foo directory + and turn it into an internal link.
    • +
    • ![[foo/baz.png]] will look for the baz.png file + in the foo directory and turn it into an image.
    • +
    +

    This feature is import-only, which means that it will turn wikilinks into + Trilium-compatible syntax, but it will not export Trilium Notes into Markdown + files with this syntax.

    + \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick edit.clone.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick edit.clone.html new file mode 100644 index 000000000..f69c27506 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick edit.clone.html @@ -0,0 +1 @@ +

    This is a clone of a note. Go to its primary location.

    \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.html index 0d26a25f3..4eabc1aec 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.html @@ -146,6 +146,8 @@
  • #publicationYear %= '19[0-9]{2}': Use the '%=' operator to match a regular expression (regex). This feature has been available since Trilium 0.52.
  • +
  • note.content %= '\\d{2}:\\d{2} (PM|AM)': Find notes that + mention a time. Backslashes in a regex must be escaped.

Advanced Use Cases

    diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/1_Note List_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/1_Note List_image.png deleted file mode 100644 index 4f0329d42..000000000 Binary files a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/1_Note List_image.png and /dev/null differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/2_Note List_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/2_Note List_image.png deleted file mode 100644 index 4b581bbe9..000000000 Binary files a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/2_Note List_image.png and /dev/null differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.html index 4f7609ca8..0ca364679 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.html @@ -1,3 +1,7 @@ +
    + +

    When a note has one or more child notes, they will be listed at the end of the note for easy navigation.

    Configuration

    @@ -11,47 +15,11 @@ the desired number.

View types

+

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.

- -

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/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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/10_Geo Map 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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/14_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/15_Geo Map View_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/15_Geo Map View_image.png new file mode 100644 index 000000000..72dbb9861 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/18_Geo Map 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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/1_Geo Map 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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/2_Geo Map 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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/3_Geo Map 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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/4_Geo Map 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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/5_Geo Map 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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/6_Geo Map 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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/7_Geo Map 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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/8_Geo Map 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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/9_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/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 index 6435f8d4f..0739b7706 100644 --- 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 @@ -2,8 +2,8 @@ -

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 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 @@ -14,8 +14,9 @@
  • 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.

+

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

@@ -32,17 +33,17 @@ - + - +
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.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 Book needs changed to “Calendar”, - by selecting the “Book Properties” tab in the ribbon.Once created, the “View type” of the Collection needs changed to “Calendar”, + by selecting the “Collection Properties” tab in the ribbon.
@@ -63,7 +64,7 @@
  • Creating new notes from the calendar will respect the ~child:template relation - if set on the book note.
  • + if set on the Collection note.

    Interacting with events

      @@ -71,16 +72,30 @@
      -
    • 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.
    • +
    • 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

    -

    The following attributes can be added to the book type:

    -
    +

    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:

    +
    @@ -126,200 +141,169 @@
    -
    -

    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.

    +

    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:

    + class="table"> - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      NameDescription
    #startDate=2025-02-11 #endDate=2025-02-13 #name="My vacation" #calendar:title="name"
    +
    #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.
    -

    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.

    -
    +

    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.

    +
    @@ -329,39 +313,70 @@ class="table"> - - - - -
    #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."
    +
    #startDate=2025-02-11 #endDate=2025-02-13 #name="My vacation" #calendar:title="name"
    +

     

    - +
    -
    \ No newline at end of file +
    + +

    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/Note Types/Geo Map.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Geo Map View.html similarity index 67% rename from apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Geo Map.html rename to apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Geo Map View.html index b85d13a7c..cb99b75c5 100644 --- 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/Basic Concepts and Features/Notes/Note List/Geo Map View.html @@ -1,5 +1,11 @@ +
    -

    This note type displays the children notes on a geographical map, based @@ -19,9 +25,9 @@ 1 -

    - +
    +
    Right click on any note on the note tree and select Insert child noteGeo Map (beta). @@ -30,7 +36,7 @@ 2
    -
    @@ -49,6 +55,7 @@

    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

    @@ -63,18 +70,18 @@ + ) in the top-right of the map. @@ -94,7 +101,7 @@
    1 To create a marker, first navigate to the desired point on the map. Then press the - button in the Floating buttons (top-right) + 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 @@ -86,7 +93,7 @@
    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 @@ -104,10 +111,33 @@
    +

    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

    @@ -119,28 +149,49 @@ page (Ctrl+R ) to cancel it.

    Interaction with the markers

      -
    • Hovering over a marker will display the content of the note it belongs - to. +
    • 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 allowing: -
        -
      • Opening the note in a new tab, split or window.
      • -
      • Opening the location using an external application (if the operating system +
      • 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. Removing the marker from the map, which will remove the #geolocation attribute +
        6. Adding a new marker at that location.
        7. +
        +
      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. -
    + - +

    Icon and color of the markers

    - image

    The markers will have the same icon as the note.

    @@ -171,7 +222,7 @@ 1
    -
    @@ -188,7 +239,7 @@ 2
    -
    @@ -198,7 +249,7 @@ 3
    -
    @@ -231,7 +282,7 @@ 1 - Go to any location on openstreetmap.org and right click to bring up the @@ -240,7 +291,7 @@ 2 - The address will be visible in the top-left of the screen, in the place @@ -251,7 +302,7 @@ 3 - Simply paste the value inside the text box into the #geolocation attribute @@ -283,7 +334,7 @@ class="table" style="width:100%;"> 1
    -
    @@ -294,7 +345,7 @@ class="table" style="width:100%;"> 2
    -
    @@ -305,7 +356,7 @@ class="table" style="width:100%;"> 3
    -
    @@ -324,9 +375,20 @@ class="table" style="width:100%;">

    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.

    Troubleshooting

    -
    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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/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/Grid View.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Grid View.html new file mode 100644 index 000000000..1633c01e7 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/Grid View_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Grid View_image.png new file mode 100644 index 000000000..8de2914c1 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Grid View_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/List View.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/List View.html new file mode 100644 index 000000000..68bac777e --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/List View_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/List View_image.png new file mode 100644 index 000000000..61a9d8249 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/List View_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Table View.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Table View.html new file mode 100644 index 000000000..7df7457b0 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Table View.html @@ -0,0 +1,96 @@ +
    + +
    +

    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 Collection 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 Collection 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 + Collection 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 Collection 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 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 View_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Table View_image.png new file mode 100644 index 000000000..7750b698c Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Table View_image.png differ 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 b0a8e157b..8de2914c1 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 f07452571..b56e502b8 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/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 000000000..3500d6134 --- /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 000000000..049a07d61 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 b3ef4588e..32b54240f 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 f36081d10..cd9f40c1c 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 000000000..befdaae03 --- /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 2b14b33a7..c8dc3a86b 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 afbc96c25..51683bdc0 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 000000000..4e5dd7b77 --- /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 000000000..89882f216 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 000000000..826c8b9e0 --- /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/Server Installation.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation.html index bf9406106..c1fcde150 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation.html @@ -46,7 +46,7 @@ variable to something larger than the integer 250 (e.g. 450 in the following example):

      export MAX_ALLOWED_FILE_SIZE_MB=450

      Disabling Authentication

      -

      See Authentication.

      +

      See Authentication.

      Reverse Proxy Setup

      To configure a reverse proxy for Trilium, you can use either nginx or Apache. You can also check out the documentation stored in the Reverse proxy folder.

      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 8c9b34051..f7138444d 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 @@ -20,7 +20,7 @@

      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 master branch with:

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

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

      git clone -b main https://github.com/triliumnext/notes.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 6d92fef26..8cff3851b 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	
      @@ -3,10 +3,10 @@
       

      Steps

      • SSH into your server
      • -
      • use wget (or curl) to download latest TriliumNextNotes-Server-[VERSION]-linux-x64.tar.xz (copy +
      • use wget (or curl) to download latest TriliumNotes-Server-[VERSION]-linux-x64.tar.xz (copy link from release page, notice -Server suffix) on your server.
      • -
      • unpack the archive, e.g. using tar -xf -d TriliumNextNotes-Server-[VERSION]-linux-x64.tar.xz +
      • unpack the archive, e.g. using tar -xf -d TriliumNotes-Server-[VERSION]-linux-x64.tar.xz
      • cd trilium-linux-x64-server
      • @@ -27,7 +27,7 @@

        Configure Trilium to auto-run on boot with systemd

        • After downloading, extract and move Trilium:
        • -
        tar -xvf TriliumNextNotes-Server-[VERSION]-linux-x64.tar.xz
        +
      tar -xvf TriliumNotes-Server-[VERSION]-linux-x64.tar.xz
       sudo mv trilium-linux-x64-server /opt/trilium
      • Create the service:
      • diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Nginx.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Nginx.html index 46ac6f4fb..7b7e958a0 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Nginx.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Nginx.html @@ -10,7 +10,14 @@ vim default.conf
    • Fill the file with the context shown below, part of the setting show be - changed. Then you can enjoy your web with HTTPS forced and proxy.

      # This part is for proxy and HTTPS configure
      +      changed. Then you can enjoy your web with HTTPS forced and proxy.

      # This part configures, where your Trilium server is running
      +upstream trilium {
      +  zone trilium 64k;
      +  server 127.0.0.1:8080; # change it to a different hostname and port if non-default is used
      +  keepalive 2;
      +}
      +
      +# This part is for proxy and HTTPS configure
       server {
           listen 443 ssl;
           server_name trilium.example.net; #change trilium.example.net to your domain without HTTPS or HTTP.
      @@ -29,9 +36,8 @@ server {
               proxy_set_header X-Forwarded-Proto $scheme;
               proxy_set_header Upgrade $http_upgrade;
               proxy_set_header Connection "upgrade";
      -        proxy_pass http://127.0.0.1:8080; # change it to a different port if non-default is used
      +        proxy_pass http://trilium;
               proxy_read_timeout 90;
      -        proxy_redirect http://127.0.0.1:8080 https://trilium.example.net; # change them based on your IP, port and domain
           }
       }
       
      @@ -52,16 +58,16 @@ server {
             
    • add the proxy_cookie_path directive with the same path: this allows you to stay logged in at multiple instances at the same time.
        location /trilium/instance-one {
    +        rewrite /trilium/instance-one/(.*) /$1  break;
             proxy_set_header Host $host;
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
             proxy_set_header X-Forwarded-Proto $scheme;
             proxy_set_header Upgrade $http_upgrade;
             proxy_set_header Connection "upgrade";
    -        proxy_pass http://127.0.0.1:8080; # change it to a different port if non-default is used
    +        proxy_pass http://trilium;
             proxy_cookie_path / /trilium/instance-one
             proxy_read_timeout 90;
    -        proxy_redirect http://127.0.0.1:8080 https://trilium.example.net; # change them based on your IP, port and domain
         }
     
  • diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/Authentication.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/Authentication.html index 8f03c7d8f..55a085b4b 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/Authentication.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/Authentication.html @@ -4,7 +4,7 @@ by adding the following to config.ini:

    [General]
     noAuthentication=true

    Disabling authentication will bypass even the Multi-Factor Authentication since + href="#root/_help_7DAiwaf8Z7Rz">Multi-Factor Authentication since v0.94.1.

    Understanding how the session works

    Once logged into Trilium, the application will store this information @@ -22,14 +22,14 @@ cookieMaxAge=86400 the last interaction with the application.

    Viewing active sessions

    The login sessions are now stored in the same Database as - the user data. In order to view which sessions are active, open the  - SQL Console and run the following query:

    SELECT * FROM sessions
    + href="#root/_help_wX4HbRucYSDD">Database as the user data. In + order to view which sessions are active, open the SQL Console and run the following + query:

    SELECT * FROM sessions

    Expired sessions are periodically cleaned by the server, generally an hourly interval.

    See also

    \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/Multi-Factor Authentication.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/Multi-Factor Authentication.html index 8145def6a..63a6e2edf 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/Multi-Factor Authentication.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/Multi-Factor Authentication.html @@ -41,10 +41,6 @@ class="admonition warning"> the page).

    OpenID

    -

    In order to setup OpenID, you will need to setup a authentication provider. This requires a bit of extra setup. Follow these instructions to setup an OpenID service through google.

    @@ -61,4 +57,12 @@ class="admonition warning">
  • Click the “Enable Multi-Factor Authentication” checkbox if not checked
  • Choose “OAuth/OpenID” under MFA Method
  • Refresh the page and login through OpenID provider
  • - \ No newline at end of file + + \ No newline at end of file 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 711607951..c5216a81c 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 @@ -84,7 +84,7 @@ style="width:100%;"> kind of content, provided there is a script behind it to generate it. - Book + Collections

    Displays the children of the note either as a grid, a list, or for a more @@ -116,7 +116,7 @@ style="width:100%;"> Easy for brainstorming ideas, by placing them in a hierarchical layout. - Geo Map + 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 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 00c5e8cc3..000000000 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 3a89cb666..000000000 --- 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 ba4e1dd7a..000000000 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 000000000..9fdb998ba --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections.html @@ -0,0 +1,54 @@ +

    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.
    • +
    +

    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 in 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.

    +

    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/Note Types/Collections/Calendar View.clone.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Calendar View.clone.html new file mode 100644 index 000000000..9ccdbfa74 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Calendar View.clone.html @@ -0,0 +1 @@ +

    This is a clone of a note. Go to its primary location.

    \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Geo Map View.clone.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Geo Map View.clone.html new file mode 100644 index 000000000..b4d153e64 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Geo Map View.clone.html @@ -0,0 +1 @@ +

    This is a clone of a note. Go to its primary location.

    \ 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.clone.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Grid View.clone.html new file mode 100644 index 000000000..c00abb546 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Grid View.clone.html @@ -0,0 +1 @@ +

    This is a clone of a note. Go to its primary location.

    \ 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.clone.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/List View.clone.html new file mode 100644 index 000000000..21dae316b --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/List View.clone.html @@ -0,0 +1 @@ +

    This is a clone of a note. Go to its primary location.

    \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Table View.clone.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Table View.clone.html new file mode 100644 index 000000000..31f21928f --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections/Table View.clone.html @@ -0,0 +1 @@ +

    This is a clone of a note. Go to its primary location.

    \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Note Map.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Note Map.html index d7954bcd2..9c567f670 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Note Map.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Note Map.html @@ -6,4 +6,7 @@ of the same name: Note Map (Link map, Tree map).

    Once created, the note map will display the relations between notes. Only the notes that are part of the parent of the note map will be displayed - (including their children).

    \ No newline at end of file + (including their children).

    +

    The labels mapIncludeRelation and mapExcludeRelation, + if set, filter the note map to include only the specified relations or + to exclude the specified relations, respectively.

    \ 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 37ee6a6d1..b09ee1395 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 @@ -142,13 +142,28 @@ class="table">
      -
    • Indentation
    • -
    • Markdown import
    • +
    • Indentation +
        +
      • Markdown import
      • +
      +
    • Cut to subnote
    + + Premium features + + + + +
    diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Block quotes & admonitions.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Block quotes & admonitions.html index e775bcb7c..6f16fc214 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Block quotes & admonitions.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Block quotes & admonitions.html @@ -62,17 +62,4 @@ class="image image-style-align-center"> are currently no plans for adjusting it or allowing the user to customize them.

    Markdown support

    -

    The Markdown syntax for admonitions as supported by Trilium is the one - that GitHub uses, which is as follows:

    > [!NOTE]
    -> This is a note.
    -
    -> [!TIP]
    -> This is a tip.
    -
    -> [!IMPORTANT]
    -> This is a very important information.
    -
    -> [!CAUTION]
    -> This is a caution.
    -

    There are currently no plans of supporting alternative admonition syntaxes - such as !!! note.

    \ No newline at end of file +

    See Supported syntax.

    \ 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 c1f5114ad..fa5d3dcef 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 000000000..e296eef5a --- /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 000000000..f4070a1b5 --- /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/Premium features.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features.html new file mode 100644 index 000000000..8b3a9e8ac --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features.html @@ -0,0 +1,18 @@ +

      The text editor we are using for Text notes + is called CKEditor and it's a commercial product. The core components are + open-source, however they offer quite a few features that + require a commercial license in order to be used.

      +

      We have reached out to the CKEditor team in order to obtain a license + in order to have some of these extra features and they have agreed, based + on a signed agreement.

      +

      How the license works

      +

      The license key is stored in the application and it enables the use of + the previously described premium features. The license key has an expiration + date which means that the features can become disabled if using an older + version of the application for extended periods of time.

      +

      Can I opt out of these features?

      +

      At this moment there is no way to disable these features, apart from manually + modifying the source code. If this is a problem, let us know.

      +

      If you have the possibility of rebuilding the source code (e.g. if a package + maintainer), then modify VITE_CKEDITOR_KEY in apps/client/.env to + be GPL.

      \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/1_Text Snippets_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/1_Text Snippets_image.png new file mode 100644 index 000000000..b2dd17dfa Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/1_Text Snippets_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/Slash Commands.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/Slash Commands.html new file mode 100644 index 000000000..ca453511a --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/Slash Commands.html @@ -0,0 +1,34 @@ +
      + +
      + +

      Slash commands is a feature of Text notes + which allows easily accessing commonly used commands simply by using the + keyboard, without having to remember dedicated Keyboard Shortcuts.

      +

      Interaction

      +
        +
      • As the name suggests, to trigger the slash commands simply press the / key + to trigger it. Note that this can be anywhere in a paragraph as long as + it's not part of the word, if it doesn't show up simply press a space and + press the / key again.
      • +
      • Use and keys to navigate between options.
      • +
      • By default, the full list of commands is displayed.
      • +
      • To search by title or description, simply start typing for an action.
      • +
      • To trigger an action, press the Enter key.
      • +
      +

      Integration with other features

      +

      Apart from the common set of commands, some features are specially integrated + with the slash commands:

      +
        +
      • For admonitions, each admonition + type (e.g. note, tip) will be individually displayed.
      • +
      • Every Text Snippets will + also appear individually, making it easy to insert them.
      • +
      \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/Slash Commands_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/Slash Commands_image.png new file mode 100644 index 000000000..b46c1a4c6 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/Slash Commands_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/Text Snippets.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/Text Snippets.html new file mode 100644 index 000000000..54e7ea03d --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/Text Snippets.html @@ -0,0 +1,53 @@ +
      + +
      + +

      Text Snippets are closely related to Templates, + but instead of defining the content of an entire note, text snippets are + pieces of formatted text that can easily be inserted in a text note.

      +

      Creating a text snippet

      +

      In the Note Tree: 

      +
        +
      1. Right click a note where to place the text snippet.
      2. +
      3. Select Insert child note.
      4. +
      5. Select Text snippet.
      6. +
      +

      Afterwards, simply type in the content of the note the desired text. The + text can be formatted in the same manner as a normal text note.

      +

      The title of the note will become the title of the template. Optionally, + a description can be added in the Promoted Attributes section.

      +

      Inserting a snippet

      +

      Once a snippet is created, there are two options to insert it:

      +
        +
      1. From the Formatting toolbar, + by looking for the + button.
      2. +
      3. Using Slash Commands:  +
          +
        1. To look for a specific template, start typing the name of the template + (its title).
        2. +
        3. To look for all the templates, type template.
        4. +
        +
      4. +
      + +

      Limitations

      +
        +
      • Whenever a snippet is created, deleted or its title/description are modified, + all the open text notes will need to be refreshed. This causes a slight + flash for usually under a second, but it can cause some discomfort.
      • +
      • Unlike Templates, + the snippets cannot be limited to a particular workspace.
      • +
      \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/Text Snippets_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/Text Snippets_image.png new file mode 100644 index 000000000..90b8fbe95 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/Text Snippets_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Reference.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Reference.html index c62f3dec7..c9a4d0275 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Reference.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Reference.html @@ -135,7 +135,8 @@ body.electron:not(.native-titlebar) {

      Custom fonts

      Currently the only way to include a custom font is to use Custom resource providers. Basically import a font into Trilium and assign it #customResourceProvider=fonts/myfont.ttf and - then import the font in CSS via /custom/fonts/myfont.ttf.

      + then import the font in CSS via /custom/fonts/myfont.ttf. Use ../../../custom/fonts/myfont.ttf if + you run your Trilium server on a different path than /.

      Dark and light themes

      A light theme needs to have the following CSS:

      :root {
       	--theme-style: light;
      diff --git a/apps/server/src/assets/images/icon-black.svg b/apps/server/src/assets/images/icon-black.svg
      index f710dce46..4b9a74e91 100644
      --- a/apps/server/src/assets/images/icon-black.svg
      +++ b/apps/server/src/assets/images/icon-black.svg
      @@ -1,5 +1,5 @@
       
       
      -	TriliumNext Notes
      +	Trilium Notes
       	
       
      \ No newline at end of file
      diff --git a/apps/server/src/assets/images/icon-color.svg b/apps/server/src/assets/images/icon-color.svg
      index 173712891..943f1bfe8 100644
      --- a/apps/server/src/assets/images/icon-color.svg
      +++ b/apps/server/src/assets/images/icon-color.svg
      @@ -1,6 +1,6 @@
       
       
      -	TriliumNext Notes
      +	Trilium Notes
       	
       	  
           
      -    TriliumNext Notes
      +    Trilium Notes
       
       
       
      diff --git a/apps/server/src/assets/views/mobile.ejs b/apps/server/src/assets/views/mobile.ejs
      index 31c3a3963..d210c5ca7 100644
      --- a/apps/server/src/assets/views/mobile.ejs
      +++ b/apps/server/src/assets/views/mobile.ejs
      @@ -7,7 +7,7 @@
       	
       	
           
      -    TriliumNext Notes
      +    Trilium Notes
           
       
           
      +	
      +		
      +		
      +		
      +	
      +		
      +		
      +		
      +
      +		
      +		
      +		
      +	
      +
      diff --git a/apps/website/static/note-types/canvas.png b/apps/website/static/note-types/canvas.png
      new file mode 100644
      index 000000000..ad5c74b36
      Binary files /dev/null and b/apps/website/static/note-types/canvas.png differ
      diff --git a/apps/website/static/note-types/geo-map.png b/apps/website/static/note-types/geo-map.png
      new file mode 100644
      index 000000000..cd891b646
      Binary files /dev/null and b/apps/website/static/note-types/geo-map.png differ
      diff --git a/apps/website/static/note-types/mermaid.png b/apps/website/static/note-types/mermaid.png
      new file mode 100644
      index 000000000..1e8bd7386
      Binary files /dev/null and b/apps/website/static/note-types/mermaid.png differ
      diff --git a/apps/website/static/note-types/mind-map.png b/apps/website/static/note-types/mind-map.png
      new file mode 100644
      index 000000000..a970d485f
      Binary files /dev/null and b/apps/website/static/note-types/mind-map.png differ
      diff --git a/apps/website/static/screenshots/desktop-win.png b/apps/website/static/screenshots/desktop-win.png
      new file mode 100644
      index 000000000..ab6ee05ec
      Binary files /dev/null and b/apps/website/static/screenshots/desktop-win.png differ
      diff --git a/apps/website/static/screenshots/macos/dark.png b/apps/website/static/screenshots/macos/dark.png
      new file mode 100644
      index 000000000..2eae66f18
      Binary files /dev/null and b/apps/website/static/screenshots/macos/dark.png differ
      diff --git a/apps/website/static/screenshots/macos/light.png b/apps/website/static/screenshots/macos/light.png
      new file mode 100644
      index 000000000..a2b64b7fb
      Binary files /dev/null and b/apps/website/static/screenshots/macos/light.png differ
      diff --git a/apps/website/static/technical-features/grafana-metrics.png b/apps/website/static/technical-features/grafana-metrics.png
      new file mode 120000
      index 000000000..1dd11db67
      --- /dev/null
      +++ b/apps/website/static/technical-features/grafana-metrics.png
      @@ -0,0 +1 @@
      +../../../../docs/User Guide/User Guide/Advanced Usage/1_Metrics_image.png
      \ No newline at end of file
      diff --git a/apps/website/svelte.config.js b/apps/website/svelte.config.js
      new file mode 100644
      index 000000000..0cd57a52d
      --- /dev/null
      +++ b/apps/website/svelte.config.js
      @@ -0,0 +1,11 @@
      +import { mdsvex } from 'mdsvex';
      +import adapter from '@sveltejs/adapter-auto';
      +import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
      +
      +const config = {
      +	preprocess: [vitePreprocess(), mdsvex()],
      +	kit: { adapter: adapter() },
      +	extensions: ['.svelte', '.svx']
      +};
      +
      +export default config;
      diff --git a/apps/website/tsconfig.json b/apps/website/tsconfig.json
      new file mode 100644
      index 000000000..5adb685c0
      --- /dev/null
      +++ b/apps/website/tsconfig.json
      @@ -0,0 +1,20 @@
      +{
      +	"extends": "./.svelte-kit/tsconfig.json",
      +	"compilerOptions": {
      +		"allowJs": true,
      +		"checkJs": true,
      +		"esModuleInterop": true,
      +		"forceConsistentCasingInFileNames": true,
      +		"resolveJsonModule": true,
      +		"skipLibCheck": true,
      +		"sourceMap": true,
      +		"strict": true,
      +		"moduleResolution": "bundler",
      +		"composite": true
      +	}
      +	// Path aliases are handled by https://svelte.dev/docs/kit/configuration#alias
      +	// except $lib which is handled by https://svelte.dev/docs/kit/configuration#files
      +	//
      +	// If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes
      +	// from the referenced tsconfig.json - TypeScript does not merge them in
      +}
      diff --git a/apps/website/vite.config.ts b/apps/website/vite.config.ts
      new file mode 100644
      index 000000000..135fc634d
      --- /dev/null
      +++ b/apps/website/vite.config.ts
      @@ -0,0 +1,24 @@
      +import tailwindcss from '@tailwindcss/vite';
      +import { paraglideVitePlugin } from '@inlang/paraglide-js';
      +import { sveltekit } from '@sveltejs/kit/vite';
      +import { defineConfig, type Plugin } from 'vite';
      +
      +export default () => {
      +    // See https://github.com/nrwl/nx/issues/28978.
      +    const cwd = process.cwd();
      +    process.chdir(__dirname); // Temporarily change the working directory
      +
      +    const config = defineConfig({
      +        plugins: [
      +            tailwindcss(),
      +            sveltekit(),
      +            paraglideVitePlugin({
      +                project: './project.inlang',
      +                outdir: './src/lib/paraglide'
      +            })
      +        ] as Plugin[]
      +    });
      +
      +    process.chdir(cwd); // Restore the original working directory
      +    return config;
      +};
      diff --git a/docker-compose.yml b/docker-compose.yml
      index 63f798bb9..ba9824c7c 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 6e9c247b9..45135e5ea 100644
      --- a/docs/Developer Guide/!!!meta.json	
      +++ b/docs/Developer Guide/!!!meta.json	
      @@ -1,6 +1,6 @@
       {
           "formatVersion": 2,
      -    "appVersion": "0.94.0",
      +    "appVersion": "0.96.0",
           "files": [
               {
                   "isClone": false,
      @@ -178,6 +178,1587 @@
                               }
                           ]
                       },
      +                {
      +                    "isClone": false,
      +                    "noteId": "wbVIolLKDhe2",
      +                    "notePath": [
      +                        "jdjRLhLV3TtI",
      +                        "wbVIolLKDhe2"
      +                    ],
      +                    "title": "Development and architecture",
      +                    "notePosition": 220,
      +                    "prefix": null,
      +                    "isExpanded": false,
      +                    "type": "text",
      +                    "mime": "text/html",
      +                    "attributes": [],
      +                    "format": "markdown",
      +                    "attachments": [],
      +                    "dirFileName": "Development and architecture",
      +                    "children": [
      +                        {
      +                            "isClone": false,
      +                            "noteId": "TLXJwBDo8Rdv",
      +                            "notePath": [
      +                                "jdjRLhLV3TtI",
      +                                "wbVIolLKDhe2",
      +                                "TLXJwBDo8Rdv"
      +                            ],
      +                            "title": "Internationalisation / Translations",
      +                            "notePosition": 10,
      +                            "prefix": null,
      +                            "isExpanded": false,
      +                            "type": "text",
      +                            "mime": "text/html",
      +                            "attributes": [
      +                                {
      +                                    "type": "relation",
      +                                    "name": "internalLink",
      +                                    "value": "ky5zpmxXZhhr",
      +                                    "isInheritable": false,
      +                                    "position": 10
      +                                },
      +                                {
      +                                    "type": "label",
      +                                    "name": "iconClass",
      +                                    "value": "bx bx-globe",
      +                                    "isInheritable": false,
      +                                    "position": 10
      +                                }
      +                            ],
      +                            "format": "markdown",
      +                            "dataFileName": "Internationalisation  Translat.md",
      +                            "attachments": [],
      +                            "dirFileName": "Internationalisation  Translations",
      +                            "children": [
      +                                {
      +                                    "isClone": false,
      +                                    "noteId": "ky5zpmxXZhhr",
      +                                    "notePath": [
      +                                        "jdjRLhLV3TtI",
      +                                        "wbVIolLKDhe2",
      +                                        "TLXJwBDo8Rdv",
      +                                        "ky5zpmxXZhhr"
      +                                    ],
      +                                    "title": "Guidelines",
      +                                    "notePosition": 10,
      +                                    "prefix": null,
      +                                    "isExpanded": false,
      +                                    "type": "text",
      +                                    "mime": "text/html",
      +                                    "attributes": [],
      +                                    "format": "markdown",
      +                                    "dataFileName": "Guidelines.md",
      +                                    "attachments": []
      +                                },
      +                                {
      +                                    "isClone": false,
      +                                    "noteId": "VTebBD3jZjdp",
      +                                    "notePath": [
      +                                        "jdjRLhLV3TtI",
      +                                        "wbVIolLKDhe2",
      +                                        "TLXJwBDo8Rdv",
      +                                        "VTebBD3jZjdp"
      +                                    ],
      +                                    "title": "i18n-ally",
      +                                    "notePosition": 20,
      +                                    "prefix": null,
      +                                    "isExpanded": false,
      +                                    "type": "text",
      +                                    "mime": "text/html",
      +                                    "attributes": [
      +                                        {
      +                                            "type": "relation",
      +                                            "name": "internalLink",
      +                                            "value": "ky5zpmxXZhhr",
      +                                            "isInheritable": false,
      +                                            "position": 10
      +                                        }
      +                                    ],
      +                                    "format": "markdown",
      +                                    "dataFileName": "i18n-ally.md",
      +                                    "attachments": []
      +                                },
      +                                {
      +                                    "isClone": false,
      +                                    "noteId": "KhDvxPlQQybs",
      +                                    "notePath": [
      +                                        "jdjRLhLV3TtI",
      +                                        "wbVIolLKDhe2",
      +                                        "TLXJwBDo8Rdv",
      +                                        "KhDvxPlQQybs"
      +                                    ],
      +                                    "title": "Server translations",
      +                                    "notePosition": 30,
      +                                    "prefix": null,
      +                                    "isExpanded": false,
      +                                    "type": "text",
      +                                    "mime": "text/html",
      +                                    "attributes": [],
      +                                    "format": "markdown",
      +                                    "dataFileName": "Server translations.md",
      +                                    "attachments": []
      +                                }
      +                            ]
      +                        },
      +                        {
      +                            "isClone": false,
      +                            "noteId": "fI16A7NrT713",
      +                            "notePath": [
      +                                "jdjRLhLV3TtI",
      +                                "wbVIolLKDhe2",
      +                                "fI16A7NrT713"
      +                            ],
      +                            "title": "Live reload",
      +                            "notePosition": 20,
      +                            "prefix": null,
      +                            "isExpanded": false,
      +                            "type": "text",
      +                            "mime": "text/html",
      +                            "attributes": [],
      +                            "format": "markdown",
      +                            "dataFileName": "Live reload.md",
      +                            "attachments": []
      +                        },
      +                        {
      +                            "isClone": false,
      +                            "noteId": "7BCukQTCm7fv",
      +                            "notePath": [
      +                                "jdjRLhLV3TtI",
      +                                "wbVIolLKDhe2",
      +                                "7BCukQTCm7fv"
      +                            ],
      +                            "title": "Themes",
      +                            "notePosition": 30,
      +                            "prefix": null,
      +                            "isExpanded": false,
      +                            "type": "text",
      +                            "mime": "text/html",
      +                            "attributes": [],
      +                            "format": "markdown",
      +                            "dataFileName": "Themes.md",
      +                            "attachments": []
      +                        },
      +                        {
      +                            "isClone": false,
      +                            "noteId": "n9wYW9nUTynV",
      +                            "notePath": [
      +                                "jdjRLhLV3TtI",
      +                                "wbVIolLKDhe2",
      +                                "n9wYW9nUTynV"
      +                            ],
      +                            "title": "Synchronisation",
      +                            "notePosition": 40,
      +                            "prefix": null,
      +                            "isExpanded": false,
      +                            "type": "text",
      +                            "mime": "text/html",
      +                            "attributes": [],
      +                            "format": "markdown",
      +                            "attachments": [],
      +                            "dirFileName": "Synchronisation",
      +                            "children": [
      +                                {
      +                                    "isClone": false,
      +                                    "noteId": "wA6tm9xcWWaB",
      +                                    "notePath": [
      +                                        "jdjRLhLV3TtI",
      +                                        "wbVIolLKDhe2",
      +                                        "n9wYW9nUTynV",
      +                                        "wA6tm9xcWWaB"
      +                                    ],
      +                                    "title": "Content hashing",
      +                                    "notePosition": 10,
      +                                    "prefix": null,
      +                                    "isExpanded": false,
      +                                    "type": "text",
      +                                    "mime": "text/html",
      +                                    "attributes": [],
      +                                    "format": "markdown",
      +                                    "dataFileName": "Content hashing.md",
      +                                    "attachments": []
      +                                }
      +                            ]
      +                        },
      +                        {
      +                            "isClone": false,
      +                            "noteId": "aGlhNBEA9wwo",
      +                            "notePath": [
      +                                "jdjRLhLV3TtI",
      +                                "wbVIolLKDhe2",
      +                                "aGlhNBEA9wwo"
      +                            ],
      +                            "title": "Build information",
      +                            "notePosition": 50,
      +                            "prefix": null,
      +                            "isExpanded": false,
      +                            "type": "text",
      +                            "mime": "text/html",
      +                            "attributes": [
      +                                {
      +                                    "type": "relation",
      +                                    "name": "internalLink",
      +                                    "value": "PXzm2t3sCdsP",
      +                                    "isInheritable": false,
      +                                    "position": 10
      +                                }
      +                            ],
      +                            "format": "markdown",
      +                            "dataFileName": "Build information.md",
      +                            "attachments": []
      +                        },
      +                        {
      +                            "isClone": false,
      +                            "noteId": "vNMojjUN76jc",
      +                            "notePath": [
      +                                "jdjRLhLV3TtI",
      +                                "wbVIolLKDhe2",
      +                                "vNMojjUN76jc"
      +                            ],
      +                            "title": "Database",
      +                            "notePosition": 60,
      +                            "prefix": null,
      +                            "isExpanded": false,
      +                            "type": "text",
      +                            "mime": "text/html",
      +                            "attributes": [],
      +                            "format": "markdown",
      +                            "attachments": [],
      +                            "dirFileName": "Database",
      +                            "children": [
      +                                {
      +                                    "isClone": false,
      +                                    "noteId": "e6GnYOXeIWjg",
      +                                    "notePath": [
      +                                        "jdjRLhLV3TtI",
      +                                        "wbVIolLKDhe2",
      +                                        "vNMojjUN76jc",
      +                                        "e6GnYOXeIWjg"
      +                                    ],
      +                                    "title": "attachments",
      +                                    "notePosition": 20,
      +                                    "prefix": null,
      +                                    "isExpanded": false,
      +                                    "type": "text",
      +                                    "mime": "text/html",
      +                                    "attributes": [
      +                                        {
      +                                            "type": "relation",
      +                                            "name": "internalLink",
      +                                            "value": "DSkl8C325tEC",
      +                                            "isInheritable": false,
      +                                            "position": 10
      +                                        },
      +                                        {
      +                                            "type": "relation",
      +                                            "name": "internalLink",
      +                                            "value": "UvXpeSqfYc6d",
      +                                            "isInheritable": false,
      +                                            "position": 20
      +                                        },
      +                                        {
      +                                            "type": "relation",
      +                                            "name": "internalLink",
      +                                            "value": "VIcWnKGs0sMh",
      +                                            "isInheritable": false,
      +                                            "position": 30
      +                                        },
      +                                        {
      +                                            "type": "relation",
      +                                            "name": "internalLink",
      +                                            "value": "tM3rIZQzlum4",
      +                                            "isInheritable": false,
      +                                            "position": 40
      +                                        },
      +                                        {
      +                                            "type": "label",
      +                                            "name": "iconClass",
      +                                            "value": "bx bx-table",
      +                                            "isInheritable": false,
      +                                            "position": 10
      +                                        }
      +                                    ],
      +                                    "format": "markdown",
      +                                    "dataFileName": "attachments.md",
      +                                    "attachments": []
      +                                },
      +                                {
      +                                    "isClone": false,
      +                                    "noteId": "ciL84vNBNi9y",
      +                                    "notePath": [
      +                                        "jdjRLhLV3TtI",
      +                                        "wbVIolLKDhe2",
      +                                        "vNMojjUN76jc",
      +                                        "ciL84vNBNi9y"
      +                                    ],
      +                                    "title": "attributes",
      +                                    "notePosition": 30,
      +                                    "prefix": null,
      +                                    "isExpanded": false,
      +                                    "type": "text",
      +                                    "mime": "text/html",
      +                                    "attributes": [
      +                                        {
      +                                            "type": "relation",
      +                                            "name": "internalLink",
      +                                            "value": "r11Bh3uxFGRj",
      +                                            "isInheritable": false,
      +                                            "position": 10
      +                                        },
      +                                        {
      +                                            "type": "relation",
      +                                            "name": "internalLink",
      +                                            "value": "DSkl8C325tEC",
      +                                            "isInheritable": false,
      +                                            "position": 20
      +                                        },
      +                                        {
      +                                            "type": "relation",
      +                                            "name": "internalLink",
      +                                            "value": "tM3rIZQzlum4",
      +                                            "isInheritable": false,
      +                                            "position": 30
      +                                        },
      +                                        {
      +                                            "type": "label",
      +                                            "name": "iconClass",
      +                                            "value": "bx bx-table",
      +                                            "isInheritable": false,
      +                                            "position": 10
      +                                        }
      +                                    ],
      +                                    "format": "markdown",
      +                                    "dataFileName": "attributes.md",
      +                                    "attachments": []
      +                                },
      +                                {
      +                                    "isClone": false,
      +                                    "noteId": "VIcWnKGs0sMh",
      +                                    "notePath": [
      +                                        "jdjRLhLV3TtI",
      +                                        "wbVIolLKDhe2",
      +                                        "vNMojjUN76jc",
      +                                        "VIcWnKGs0sMh"
      +                                    ],
      +                                    "title": "blobs",
      +                                    "notePosition": 40,
      +                                    "prefix": null,
      +                                    "isExpanded": false,
      +                                    "type": "text",
      +                                    "mime": "text/html",
      +                                    "attributes": [
      +                                        {
      +                                            "type": "label",
      +                                            "name": "iconClass",
      +                                            "value": "bx bx-table",
      +                                            "isInheritable": false,
      +                                            "position": 10
      +                                        }
      +                                    ],
      +                                    "format": "markdown",
      +                                    "dataFileName": "blobs.md",
      +                                    "attachments": []
      +                                },
      +                                {
      +                                    "isClone": false,
      +                                    "noteId": "GskLPkgY5n6E",
      +                                    "notePath": [
      +                                        "jdjRLhLV3TtI",
      +                                        "wbVIolLKDhe2",
      +                                        "vNMojjUN76jc",
      +                                        "GskLPkgY5n6E"
      +                                    ],
      +                                    "title": "branches",
      +                                    "notePosition": 50,
      +                                    "prefix": null,
      +                                    "isExpanded": false,
      +                                    "type": "text",
      +                                    "mime": "text/html",
      +                                    "attributes": [
      +                                        {
      +                                            "type": "relation",
      +                                            "name": "internalLink",
      +                                            "value": "h8AsuFjSD4fB",
      +                                            "isInheritable": false,
      +                                            "position": 10
      +                                        },
      +                                        {
      +                                            "type": "relation",
      +                                            "name": "internalLink",
      +                                            "value": "DSkl8C325tEC",
      +                                            "isInheritable": false,
      +                                            "position": 20
      +                                        },
      +                                        {
      +                                            "type": "relation",
      +                                            "name": "internalLink",
      +                                            "value": "tM3rIZQzlum4",
      +                                            "isInheritable": false,
      +                                            "position": 30
      +                                        },
      +                                        {
      +                                            "type": "label",
      +                                            "name": "iconClass",
      +                                            "value": "bx bx-table",
      +                                            "isInheritable": false,
      +                                            "position": 10
      +                                        }
      +                                    ],
      +                                    "format": "markdown",
      +                                    "dataFileName": "branches.md",
      +                                    "attachments": []
      +                                },
      +                                {
      +                                    "isClone": false,
      +                                    "noteId": "ohhExR078MPU",
      +                                    "notePath": [
      +                                        "jdjRLhLV3TtI",
      +                                        "wbVIolLKDhe2",
      +                                        "vNMojjUN76jc",
      +                                        "ohhExR078MPU"
      +                                    ],
      +                                    "title": "entity_changes",
      +                                    "notePosition": 51,
      +                                    "prefix": null,
      +                                    "isExpanded": false,
      +                                    "type": "text",
      +                                    "mime": "text/html",
      +                                    "attributes": [
      +                                        {
      +                                            "type": "label",
      +                                            "name": "iconClass",
      +                                            "value": "bx bx-table",
      +                                            "isInheritable": false,
      +                                            "position": 10
      +                                        }
      +                                    ],
      +                                    "format": "markdown",
      +                                    "dataFileName": "entity_changes.md",
      +                                    "attachments": []
      +                                },
      +                                {
      +                                    "isClone": false,
      +                                    "noteId": "bRqbIg633nCs",
      +                                    "notePath": [
      +                                        "jdjRLhLV3TtI",
      +                                        "wbVIolLKDhe2",
      +                                        "vNMojjUN76jc",
      +                                        "bRqbIg633nCs"
      +                                    ],
      +                                    "title": "etapi_tokens",
      +                                    "notePosition": 52,
      +                                    "prefix": null,
      +                                    "isExpanded": false,
      +                                    "type": "text",
      +                                    "mime": "text/html",
      +                                    "attributes": [
      +                                        {
      +                                            "type": "relation",
      +                                            "name": "internalLink",
      +                                            "value": "tM3rIZQzlum4",
      +                                            "isInheritable": false,
      +                                            "position": 10
      +                                        },
      +                                        {
      +                                            "type": "label",
      +                                            "name": "iconClass",
      +                                            "value": "bx bx-table",
      +                                            "isInheritable": false,
      +                                            "position": 10
      +                                        }
      +                                    ],
      +                                    "format": "markdown",
      +                                    "dataFileName": "etapi_tokens.md",
      +                                    "attachments": []
      +                                },
      +                                {
      +                                    "isClone": false,
      +                                    "noteId": "DSkl8C325tEC",
      +                                    "notePath": [
      +                                        "jdjRLhLV3TtI",
      +                                        "wbVIolLKDhe2",
      +                                        "vNMojjUN76jc",
      +                                        "DSkl8C325tEC"
      +                                    ],
      +                                    "title": "notes",
      +                                    "notePosition": 53,
      +                                    "prefix": null,
      +                                    "isExpanded": false,
      +                                    "type": "text",
      +                                    "mime": "text/html",
      +                                    "attributes": [
      +                                        {
      +                                            "type": "relation",
      +                                            "name": "internalLink",
      +                                            "value": "VIcWnKGs0sMh",
      +                                            "isInheritable": false,
      +                                            "position": 10
      +                                        },
      +                                        {
      +                                            "type": "relation",
      +                                            "name": "internalLink",
      +                                            "value": "UvXpeSqfYc6d",
      +                                            "isInheritable": false,
      +                                            "position": 20
      +                                        },
      +                                        {
      +                                            "type": "relation",
      +                                            "name": "internalLink",
      +                                            "value": "tM3rIZQzlum4",
      +                                            "isInheritable": false,
      +                                            "position": 30
      +                                        },
      +                                        {
      +                                            "type": "label",
      +                                            "name": "iconClass",
      +                                            "value": "bx bx-table",
      +                                            "isInheritable": false,
      +                                            "position": 10
      +                                        }
      +                                    ],
      +                                    "format": "markdown",
      +                                    "dataFileName": "notes.md",
      +                                    "attachments": []
      +                                },
      +                                {
      +                                    "isClone": false,
      +                                    "noteId": "4oeftEmy77Bt",
      +                                    "notePath": [
      +                                        "jdjRLhLV3TtI",
      +                                        "wbVIolLKDhe2",
      +                                        "vNMojjUN76jc",
      +                                        "4oeftEmy77Bt"
      +                                    ],
      +                                    "title": "options",
      +                                    "notePosition": 54,
      +                                    "prefix": null,
      +                                    "isExpanded": false,
      +                                    "type": "text",
      +                                    "mime": "text/html",
      +                                    "attributes": [
      +                                        {
      +                                            "type": "label",
      +                                            "name": "iconClass",
      +                                            "value": "bx bx-table",
      +                                            "isInheritable": false,
      +                                            "position": 10
      +                                        }
      +                                    ],
      +                                    "format": "markdown",
      +                                    "dataFileName": "options.md",
      +                                    "attachments": []
      +                                },
      +                                {
      +                                    "isClone": false,
      +                                    "noteId": "VyFirdgAOoh5",
      +                                    "notePath": [
      +                                        "jdjRLhLV3TtI",
      +                                        "wbVIolLKDhe2",
      +                                        "vNMojjUN76jc",
      +                                        "VyFirdgAOoh5"
      +                                    ],
      +                                    "title": "recent_notes",
      +                                    "notePosition": 55,
      +                                    "prefix": null,
      +                                    "isExpanded": false,
      +                                    "type": "text",
      +                                    "mime": "text/html",
      +                                    "attributes": [
      +                                        {
      +                                            "type": "relation",
      +                                            "name": "internalLink",
      +                                            "value": "DSkl8C325tEC",
      +                                            "isInheritable": false,
      +                                            "position": 10
      +                                        },
      +                                        {
      +                                            "type": "label",
      +                                            "name": "iconClass",
      +                                            "value": "bx bx-table",
      +                                            "isInheritable": false,
      +                                            "position": 10
      +                                        }
      +                                    ],
      +                                    "format": "markdown",
      +                                    "dataFileName": "recent_notes.md",
      +                                    "attachments": []
      +                                },
      +                                {
      +                                    "isClone": false,
      +                                    "noteId": "s7ZBiaJVNumK",
      +                                    "notePath": [
      +                                        "jdjRLhLV3TtI",
      +                                        "wbVIolLKDhe2",
      +                                        "vNMojjUN76jc",
      +                                        "s7ZBiaJVNumK"
      +                                    ],
      +                                    "title": "revisions",
      +                                    "notePosition": 56,
      +                                    "prefix": null,
      +                                    "isExpanded": false,
      +                                    "type": "text",
      +                                    "mime": "text/html",
      +                                    "attributes": [
      +                                        {
      +                                            "type": "relation",
      +                                            "name": "internalLink",
      +                                            "value": "DSkl8C325tEC",
      +                                            "isInheritable": false,
      +                                            "position": 10
      +                                        },
      +                                        {
      +                                            "type": "relation",
      +                                            "name": "internalLink",
      +                                            "value": "VIcWnKGs0sMh",
      +                                            "isInheritable": false,
      +                                            "position": 20
      +                                        },
      +                                        {
      +                                            "type": "relation",
      +                                            "name": "internalLink",
      +                                            "value": "UvXpeSqfYc6d",
      +                                            "isInheritable": false,
      +                                            "position": 30
      +                                        },
      +                                        {
      +                                            "type": "label",
      +                                            "name": "iconClass",
      +                                            "value": "bx bx-table",
      +                                            "isInheritable": false,
      +                                            "position": 10
      +                                        }
      +                                    ],
      +                                    "format": "markdown",
      +                                    "dataFileName": "revisions.md",
      +                                    "attachments": []
      +                                }
      +                            ]
      +                        },
      +                        {
      +                            "isClone": false,
      +                            "noteId": "UvXpeSqfYc6d",
      +                            "notePath": [
      +                                "jdjRLhLV3TtI",
      +                                "wbVIolLKDhe2",
      +                                "UvXpeSqfYc6d"
      +                            ],
      +                            "title": "Protected entities",
      +                            "notePosition": 80,
      +                            "prefix": null,
      +                            "isExpanded": false,
      +                            "type": "text",
      +                            "mime": "text/html",
      +                            "attributes": [
      +                                {
      +                                    "type": "relation",
      +                                    "name": "internalLink",
      +                                    "value": "e6GnYOXeIWjg",
      +                                    "isInheritable": false,
      +                                    "position": 10
      +                                },
      +                                {
      +                                    "type": "relation",
      +                                    "name": "internalLink",
      +                                    "value": "DSkl8C325tEC",
      +                                    "isInheritable": false,
      +                                    "position": 20
      +                                },
      +                                {
      +                                    "type": "relation",
      +                                    "name": "internalLink",
      +                                    "value": "s7ZBiaJVNumK",
      +                                    "isInheritable": false,
      +                                    "position": 30
      +                                }
      +                            ],
      +                            "format": "markdown",
      +                            "dataFileName": "Protected entities.md",
      +                            "attachments": []
      +                        },
      +                        {
      +                            "isClone": false,
      +                            "noteId": "tM3rIZQzlum4",
      +                            "notePath": [
      +                                "jdjRLhLV3TtI",
      +                                "wbVIolLKDhe2",
      +                                "tM3rIZQzlum4"
      +                            ],
      +                            "title": "Deleted notes",
      +                            "notePosition": 90,
      +                            "prefix": null,
      +                            "isExpanded": false,
      +                            "type": "text",
      +                            "mime": "text/html",
      +                            "attributes": [],
      +                            "format": "markdown",
      +                            "dataFileName": "Deleted notes.md",
      +                            "attachments": []
      +                        },
      +                        {
      +                            "isClone": false,
      +                            "noteId": "r11Bh3uxFGRj",
      +                            "notePath": [
      +                                "jdjRLhLV3TtI",
      +                                "wbVIolLKDhe2",
      +                                "r11Bh3uxFGRj"
      +                            ],
      +                            "title": "Special notes",
      +                            "notePosition": 100,
      +                            "prefix": null,
      +                            "isExpanded": false,
      +                            "type": "text",
      +                            "mime": "text/html",
      +                            "attributes": [],
      +                            "format": "markdown",
      +                            "dataFileName": "Special notes.md",
      +                            "attachments": []
      +                        },
      +                        {
      +                            "isClone": false,
      +                            "noteId": "h8AsuFjSD4fB",
      +                            "notePath": [
      +                                "jdjRLhLV3TtI",
      +                                "wbVIolLKDhe2",
      +                                "h8AsuFjSD4fB"
      +                            ],
      +                            "title": "Branch prefixes",
      +                            "notePosition": 110,
      +                            "prefix": null,
      +                            "isExpanded": false,
      +                            "type": "text",
      +                            "mime": "text/html",
      +                            "attributes": [],
      +                            "format": "markdown",
      +                            "dataFileName": "Branch prefixes.md",
      +                            "attachments": []
      +                        },
      +                        {
      +                            "isClone": false,
      +                            "noteId": "qjQNyaYXSNWu",
      +                            "notePath": [
      +                                "jdjRLhLV3TtI",
      +                                "wbVIolLKDhe2",
      +                                "qjQNyaYXSNWu"
      +                            ],
      +                            "title": "Revisions",
      +                            "notePosition": 120,
      +                            "prefix": null,
      +                            "isExpanded": false,
      +                            "type": "text",
      +                            "mime": "text/html",
      +                            "attributes": [],
      +                            "format": "markdown",
      +                            "dataFileName": "Revisions.md",
      +                            "attachments": []
      +                        },
      +                        {
      +                            "isClone": false,
      +                            "noteId": "3mz4ZYhi9Cy8",
      +                            "notePath": [
      +                                "jdjRLhLV3TtI",
      +                                "wbVIolLKDhe2",
      +                                "3mz4ZYhi9Cy8"
      +                            ],
      +                            "title": "Backlinks",
      +                            "notePosition": 130,
      +                            "prefix": null,
      +                            "isExpanded": false,
      +                            "type": "text",
      +                            "mime": "text/html",
      +                            "attributes": [],
      +                            "format": "markdown",
      +                            "dataFileName": "Backlinks.md",
      +                            "attachments": []
      +                        },
      +                        {
      +                            "isClone": false,
      +                            "noteId": "ItZRqNGeGSU0",
      +                            "notePath": [
      +                                "jdjRLhLV3TtI",
      +                                "wbVIolLKDhe2",
      +                                "ItZRqNGeGSU0"
      +                            ],
      +                            "title": "Note types",
      +                            "notePosition": 140,
      +                            "prefix": null,
      +                            "isExpanded": false,
      +                            "type": "text",
      +                            "mime": "text/html",
      +                            "attributes": [
      +                                {
      +                                    "type": "relation",
      +                                    "name": "internalLink",
      +                                    "value": "DSkl8C325tEC",
      +                                    "isInheritable": false,
      +                                    "position": 10
      +                                }
      +                            ],
      +                            "format": "markdown",
      +                            "dataFileName": "Note types.md",
      +                            "attachments": []
      +                        },
      +                        {
      +                            "isClone": false,
      +                            "noteId": "64ZTlUPgEPtW",
      +                            "notePath": [
      +                                "jdjRLhLV3TtI",
      +                                "wbVIolLKDhe2",
      +                                "64ZTlUPgEPtW"
      +                            ],
      +                            "title": "Safe mode",
      +                            "notePosition": 150,
      +                            "prefix": null,
      +                            "isExpanded": false,
      +                            "type": "text",
      +                            "mime": "text/html",
      +                            "attributes": [],
      +                            "format": "markdown",
      +                            "dataFileName": "Safe mode.md",
      +                            "attachments": []
      +                        },
      +                        {
      +                            "isClone": false,
      +                            "noteId": "m2W35hwSDUeh",
      +                            "notePath": [
      +                                "jdjRLhLV3TtI",
      +                                "wbVIolLKDhe2",
      +                                "m2W35hwSDUeh"
      +                            ],
      +                            "title": "Icons",
      +                            "notePosition": 160,
      +                            "prefix": null,
      +                            "isExpanded": false,
      +                            "type": "text",
      +                            "mime": "text/html",
      +                            "attributes": [
      +                                {
      +                                    "type": "relation",
      +                                    "name": "internalLink",
      +                                    "value": "PXzm2t3sCdsP",
      +                                    "isInheritable": false,
      +                                    "position": 10
      +                                },
      +                                {
      +                                    "type": "relation",
      +                                    "name": "internalLink",
      +                                    "value": "oLhKpfi2kGON",
      +                                    "isInheritable": false,
      +                                    "position": 20
      +                                }
      +                            ],
      +                            "format": "markdown",
      +                            "dataFileName": "Icons.md",
      +                            "attachments": [],
      +                            "dirFileName": "Icons",
      +                            "children": [
      +                                {
      +                                    "isClone": false,
      +                                    "noteId": "rUkJPiX0sJSk",
      +                                    "notePath": [
      +                                        "jdjRLhLV3TtI",
      +                                        "wbVIolLKDhe2",
      +                                        "m2W35hwSDUeh",
      +                                        "rUkJPiX0sJSk"
      +                                    ],
      +                                    "title": "Removed icons",
      +                                    "notePosition": 10,
      +                                    "prefix": null,
      +                                    "isExpanded": false,
      +                                    "type": "text",
      +                                    "mime": "text/html",
      +                                    "attributes": [],
      +                                    "format": "markdown",
      +                                    "dataFileName": "Removed icons.md",
      +                                    "attachments": []
      +                                },
      +                                {
      +                                    "isClone": false,
      +                                    "noteId": "GzrBXey1UTUW",
      +                                    "notePath": [
      +                                        "jdjRLhLV3TtI",
      +                                        "wbVIolLKDhe2",
      +                                        "m2W35hwSDUeh",
      +                                        "GzrBXey1UTUW"
      +                                    ],
      +                                    "title": "Icons on Mac",
      +                                    "notePosition": 20,
      +                                    "prefix": null,
      +                                    "isExpanded": false,
      +                                    "type": "text",
      +                                    "mime": "text/html",
      +                                    "attributes": [],
      +                                    "format": "markdown",
      +                                    "dataFileName": "Icons on Mac.md",
      +                                    "attachments": [
      +                                        {
      +                                            "attachmentId": "gMQM37l1tgDc",
      +                                            "title": "image.png",
      +                                            "role": "image",
      +                                            "mime": "image/png",
      +                                            "position": 10,
      +                                            "dataFileName": "Icons on Mac_image.png"
      +                                        },
      +                                        {
      +                                            "attachmentId": "KBbeDSs1hueu",
      +                                            "title": "image.png",
      +                                            "role": "image",
      +                                            "mime": "image/png",
      +                                            "position": 10,
      +                                            "dataFileName": "1_Icons on Mac_image.png"
      +                                        }
      +                                    ],
      +                                    "dirFileName": "Icons on Mac",
      +                                    "children": [
      +                                        {
      +                                            "isClone": false,
      +                                            "noteId": "0btkkp7llQdO",
      +                                            "notePath": [
      +                                                "jdjRLhLV3TtI",
      +                                                "wbVIolLKDhe2",
      +                                                "m2W35hwSDUeh",
      +                                                "GzrBXey1UTUW",
      +                                                "0btkkp7llQdO"
      +                                            ],
      +                                            "title": "Slightly blurry icon on Mac",
      +                                            "notePosition": 10,
      +                                            "prefix": null,
      +                                            "isExpanded": false,
      +                                            "type": "text",
      +                                            "mime": "text/html",
      +                                            "attributes": [],
      +                                            "format": "markdown",
      +                                            "dataFileName": "Slightly blurry icon on Mac.md",
      +                                            "attachments": [
      +                                                {
      +                                                    "attachmentId": "6USSTMu15E6N",
      +                                                    "title": "image.png",
      +                                                    "role": "image",
      +                                                    "mime": "image/png",
      +                                                    "position": 10,
      +                                                    "dataFileName": "Slightly blurry icon on Ma.png"
      +                                                },
      +                                                {
      +                                                    "attachmentId": "KEkBj1bOyfQ5",
      +                                                    "title": "image.png",
      +                                                    "role": "image",
      +                                                    "mime": "image/png",
      +                                                    "position": 10,
      +                                                    "dataFileName": "1_Slightly blurry icon on Ma.png"
      +                                                },
      +                                                {
      +                                                    "attachmentId": "XaG2VbiqKYtR",
      +                                                    "title": "image.png",
      +                                                    "role": "image",
      +                                                    "mime": "image/png",
      +                                                    "position": 10,
      +                                                    "dataFileName": "2_Slightly blurry icon on Ma.png"
      +                                                }
      +                                            ]
      +                                        },
      +                                        {
      +                                            "isClone": false,
      +                                            "noteId": "8zAJ5J8SFEp8",
      +                                            "notePath": [
      +                                                "jdjRLhLV3TtI",
      +                                                "wbVIolLKDhe2",
      +                                                "m2W35hwSDUeh",
      +                                                "GzrBXey1UTUW",
      +                                                "8zAJ5J8SFEp8"
      +                                            ],
      +                                            "title": "Adaptive icon",
      +                                            "notePosition": 20,
      +                                            "prefix": null,
      +                                            "isExpanded": false,
      +                                            "type": "text",
      +                                            "mime": "text/html",
      +                                            "attributes": [],
      +                                            "format": "markdown",
      +                                            "dataFileName": "Adaptive icon.md",
      +                                            "attachments": [
      +                                                {
      +                                                    "attachmentId": "38usIA7IJTpY",
      +                                                    "title": "image.png",
      +                                                    "role": "image",
      +                                                    "mime": "image/png",
      +                                                    "position": 10,
      +                                                    "dataFileName": "Adaptive icon_image.png"
      +                                                },
      +                                                {
      +                                                    "attachmentId": "4eQa9Eqkuekv",
      +                                                    "title": "image.png",
      +                                                    "role": "image",
      +                                                    "mime": "image/png",
      +                                                    "position": 10,
      +                                                    "dataFileName": "1_Adaptive icon_image.png"
      +                                                },
      +                                                {
      +                                                    "attachmentId": "gM1I22x3bYDv",
      +                                                    "title": "image.png",
      +                                                    "role": "image",
      +                                                    "mime": "image/png",
      +                                                    "position": 10,
      +                                                    "dataFileName": "2_Adaptive icon_image.png"
      +                                                },
      +                                                {
      +                                                    "attachmentId": "Im2xMquSwizu",
      +                                                    "title": "image.png",
      +                                                    "role": "image",
      +                                                    "mime": "image/png",
      +                                                    "position": 10,
      +                                                    "dataFileName": "3_Adaptive icon_image.png"
      +                                                },
      +                                                {
      +                                                    "attachmentId": "l2xu0BHxfPfq",
      +                                                    "title": "image.png",
      +                                                    "role": "image",
      +                                                    "mime": "image/png",
      +                                                    "position": 10,
      +                                                    "dataFileName": "4_Adaptive icon_image.png"
      +                                                },
      +                                                {
      +                                                    "attachmentId": "wM6YPPsas7tA",
      +                                                    "title": "image.png",
      +                                                    "role": "image",
      +                                                    "mime": "image/png",
      +                                                    "position": 10,
      +                                                    "dataFileName": "5_Adaptive icon_image.png"
      +                                                },
      +                                                {
      +                                                    "attachmentId": "zPLIBv0Xvgwm",
      +                                                    "title": "image.png",
      +                                                    "role": "image",
      +                                                    "mime": "image/png",
      +                                                    "position": 10,
      +                                                    "dataFileName": "6_Adaptive icon_image.png"
      +                                                }
      +                                            ]
      +                                        }
      +                                    ]
      +                                }
      +                            ]
      +                        },
      +                        {
      +                            "isClone": false,
      +                            "noteId": "oLhKpfi2kGON",
      +                            "notePath": [
      +                                "jdjRLhLV3TtI",
      +                                "wbVIolLKDhe2",
      +                                "oLhKpfi2kGON"
      +                            ],
      +                            "title": "Demo document",
      +                            "notePosition": 170,
      +                            "prefix": null,
      +                            "isExpanded": false,
      +                            "type": "text",
      +                            "mime": "text/html",
      +                            "attributes": [],
      +                            "format": "markdown",
      +                            "dataFileName": "Demo document.md",
      +                            "attachments": []
      +                        },
      +                        {
      +                            "isClone": false,
      +                            "noteId": "mXFYlhuEr1mZ",
      +                            "notePath": [
      +                                "jdjRLhLV3TtI",
      +                                "wbVIolLKDhe2",
      +                                "mXFYlhuEr1mZ"
      +                            ],
      +                            "title": "Docker",
      +                            "notePosition": 180,
      +                            "prefix": null,
      +                            "isExpanded": false,
      +                            "type": "text",
      +                            "mime": "text/html",
      +                            "attributes": [],
      +                            "format": "markdown",
      +                            "dataFileName": "Docker.md",
      +                            "attachments": []
      +                        },
      +                        {
      +                            "isClone": false,
      +                            "noteId": "6dC7ha5vjqqS",
      +                            "notePath": [
      +                                "jdjRLhLV3TtI",
      +                                "wbVIolLKDhe2",
      +                                "6dC7ha5vjqqS"
      +                            ],
      +                            "title": "Options",
      +                            "notePosition": 190,
      +                            "prefix": null,
      +                            "isExpanded": false,
      +                            "type": "text",
      +                            "mime": "text/html",
      +                            "attributes": [],
      +                            "format": "markdown",
      +                            "dataFileName": "Options.md",
      +                            "attachments": [],
      +                            "dirFileName": "Options",
      +                            "children": [
      +                                {
      +                                    "isClone": false,
      +                                    "noteId": "Qk5Q0Xty3ITv",
      +                                    "notePath": [
      +                                        "jdjRLhLV3TtI",
      +                                        "wbVIolLKDhe2",
      +                                        "6dC7ha5vjqqS",
      +                                        "Qk5Q0Xty3ITv"
      +                                    ],
      +                                    "title": "Check box option",
      +                                    "notePosition": 10,
      +                                    "prefix": null,
      +                                    "isExpanded": false,
      +                                    "type": "text",
      +                                    "mime": "text/html",
      +                                    "attributes": [],
      +                                    "format": "markdown",
      +                                    "dataFileName": "Check box option.md",
      +                                    "attachments": []
      +                                },
      +                                {
      +                                    "isClone": false,
      +                                    "noteId": "VnqYvYEuMMvb",
      +                                    "notePath": [
      +                                        "jdjRLhLV3TtI",
      +                                        "wbVIolLKDhe2",
      +                                        "6dC7ha5vjqqS",
      +                                        "VnqYvYEuMMvb"
      +                                    ],
      +                                    "title": "Trigger UI refresh",
      +                                    "notePosition": 20,
      +                                    "prefix": null,
      +                                    "isExpanded": false,
      +                                    "type": "text",
      +                                    "mime": "text/html",
      +                                    "attributes": [],
      +                                    "format": "markdown",
      +                                    "dataFileName": "Trigger UI refresh.md",
      +                                    "attachments": []
      +                                },
      +                                {
      +                                    "isClone": false,
      +                                    "noteId": "3TbiQZODAp6y",
      +                                    "notePath": [
      +                                        "jdjRLhLV3TtI",
      +                                        "wbVIolLKDhe2",
      +                                        "6dC7ha5vjqqS",
      +                                        "3TbiQZODAp6y"
      +                                    ],
      +                                    "title": "Displaying the option in settings",
      +                                    "notePosition": 30,
      +                                    "prefix": null,
      +                                    "isExpanded": false,
      +                                    "type": "text",
      +                                    "mime": "text/html",
      +                                    "attributes": [],
      +                                    "format": "markdown",
      +                                    "dataFileName": "Displaying the option in setti.md",
      +                                    "attachments": []
      +                                },
      +                                {
      +                                    "isClone": false,
      +                                    "noteId": "1TVWljchsc0t",
      +                                    "notePath": [
      +                                        "jdjRLhLV3TtI",
      +                                        "wbVIolLKDhe2",
      +                                        "6dC7ha5vjqqS",
      +                                        "1TVWljchsc0t"
      +                                    ],
      +                                    "title": "Refresh widget with option change",
      +                                    "notePosition": 40,
      +                                    "prefix": null,
      +                                    "isExpanded": false,
      +                                    "type": "text",
      +                                    "mime": "text/html",
      +                                    "attributes": [],
      +                                    "format": "markdown",
      +                                    "dataFileName": "Refresh widget with option cha.md",
      +                                    "attachments": []
      +                                },
      +                                {
      +                                    "isClone": false,
      +                                    "noteId": "NcHcYOEn4ol5",
      +                                    "notePath": [
      +                                        "jdjRLhLV3TtI",
      +                                        "wbVIolLKDhe2",
      +                                        "6dC7ha5vjqqS",
      +                                        "NcHcYOEn4ol5"
      +                                    ],
      +                                    "title": "Creating a new option",
      +                                    "notePosition": 50,
      +                                    "prefix": null,
      +                                    "isExpanded": false,
      +                                    "type": "text",
      +                                    "mime": "text/html",
      +                                    "attributes": [],
      +                                    "format": "markdown",
      +                                    "dataFileName": "Creating a new option.md",
      +                                    "attachments": []
      +                                }
      +                            ]
      +                        },
      +                        {
      +                            "isClone": false,
      +                            "noteId": "AdNRgGrYeTCy",
      +                            "notePath": [
      +                                "jdjRLhLV3TtI",
      +                                "wbVIolLKDhe2",
      +                                "AdNRgGrYeTCy"
      +                            ],
      +                            "title": "Adding a new note type",
      +                            "notePosition": 210,
      +                            "prefix": null,
      +                            "isExpanded": false,
      +                            "type": "text",
      +                            "mime": "text/html",
      +                            "attributes": [],
      +                            "format": "markdown",
      +                            "attachments": [],
      +                            "dirFileName": "Adding a new note type",
      +                            "children": [
      +                                {
      +                                    "isClone": false,
      +                                    "noteId": "UFtOg3sLumZM",
      +                                    "notePath": [
      +                                        "jdjRLhLV3TtI",
      +                                        "wbVIolLKDhe2",
      +                                        "AdNRgGrYeTCy",
      +                                        "UFtOg3sLumZM"
      +                                    ],
      +                                    "title": "First steps",
      +                                    "notePosition": 10,
      +                                    "prefix": null,
      +                                    "isExpanded": false,
      +                                    "type": "text",
      +                                    "mime": "text/html",
      +                                    "attributes": [
      +                                        {
      +                                            "type": "relation",
      +                                            "name": "internalLink",
      +                                            "value": "lgFwLJT72mdf",
      +                                            "isInheritable": false,
      +                                            "position": 10
      +                                        },
      +                                        {
      +                                            "type": "relation",
      +                                            "name": "internalLink",
      +                                            "value": "oLhKpfi2kGON",
      +                                            "isInheritable": false,
      +                                            "position": 20
      +                                        }
      +                                    ],
      +                                    "format": "markdown",
      +                                    "dataFileName": "First steps.md",
      +                                    "attachments": [],
      +                                    "dirFileName": "First steps",
      +                                    "children": [
      +                                        {
      +                                            "isClone": false,
      +                                            "noteId": "aSO1wqK7L1ma",
      +                                            "notePath": [
      +                                                "jdjRLhLV3TtI",
      +                                                "wbVIolLKDhe2",
      +                                                "AdNRgGrYeTCy",
      +                                                "UFtOg3sLumZM",
      +                                                "aSO1wqK7L1ma"
      +                                            ],
      +                                            "title": "mind_map.js",
      +                                            "notePosition": 10,
      +                                            "prefix": null,
      +                                            "isExpanded": false,
      +                                            "type": "code",
      +                                            "mime": "application/javascript;env=frontend",
      +                                            "attributes": [],
      +                                            "dataFileName": "mind_map.js",
      +                                            "attachments": []
      +                                        }
      +                                    ]
      +                                },
      +                                {
      +                                    "isClone": false,
      +                                    "noteId": "lgFwLJT72mdf",
      +                                    "notePath": [
      +                                        "jdjRLhLV3TtI",
      +                                        "wbVIolLKDhe2",
      +                                        "AdNRgGrYeTCy",
      +                                        "lgFwLJT72mdf"
      +                                    ],
      +                                    "title": "Note type checklist",
      +                                    "notePosition": 20,
      +                                    "prefix": null,
      +                                    "isExpanded": false,
      +                                    "type": "text",
      +                                    "mime": "text/html",
      +                                    "attributes": [
      +                                        {
      +                                            "type": "relation",
      +                                            "name": "internalLink",
      +                                            "value": "UFtOg3sLumZM",
      +                                            "isInheritable": false,
      +                                            "position": 10
      +                                        },
      +                                        {
      +                                            "type": "relation",
      +                                            "name": "internalLink",
      +                                            "value": "OGYpAbrmEXbX",
      +                                            "isInheritable": false,
      +                                            "position": 20
      +                                        },
      +                                        {
      +                                            "type": "label",
      +                                            "name": "iconClass",
      +                                            "value": "bx bx-list-check",
      +                                            "isInheritable": false,
      +                                            "position": 40
      +                                        }
      +                                    ],
      +                                    "format": "markdown",
      +                                    "dataFileName": "Note type checklist.md",
      +                                    "attachments": []
      +                                },
      +                                {
      +                                    "isClone": false,
      +                                    "noteId": "PoxUNujeKJ7T",
      +                                    "notePath": [
      +                                        "jdjRLhLV3TtI",
      +                                        "wbVIolLKDhe2",
      +                                        "AdNRgGrYeTCy",
      +                                        "PoxUNujeKJ7T"
      +                                    ],
      +                                    "title": "Saving data via spaced update",
      +                                    "notePosition": 30,
      +                                    "prefix": null,
      +                                    "isExpanded": false,
      +                                    "type": "text",
      +                                    "mime": "text/html",
      +                                    "attributes": [
      +                                        {
      +                                            "type": "relation",
      +                                            "name": "internalLink",
      +                                            "value": "OGYpAbrmEXbX",
      +                                            "isInheritable": false,
      +                                            "position": 10
      +                                        }
      +                                    ],
      +                                    "format": "markdown",
      +                                    "dataFileName": "Saving data via spaced update.md",
      +                                    "attachments": []
      +                                },
      +                                {
      +                                    "isClone": false,
      +                                    "noteId": "xYVE7qA3EBwb",
      +                                    "notePath": [
      +                                        "jdjRLhLV3TtI",
      +                                        "wbVIolLKDhe2",
      +                                        "AdNRgGrYeTCy",
      +                                        "xYVE7qA3EBwb"
      +                                    ],
      +                                    "title": "Loading data",
      +                                    "notePosition": 40,
      +                                    "prefix": null,
      +                                    "isExpanded": false,
      +                                    "type": "text",
      +                                    "mime": "text/html",
      +                                    "attributes": [
      +                                        {
      +                                            "type": "relation",
      +                                            "name": "internalLink",
      +                                            "value": "PoxUNujeKJ7T",
      +                                            "isInheritable": false,
      +                                            "position": 10
      +                                        }
      +                                    ],
      +                                    "format": "markdown",
      +                                    "dataFileName": "Loading data.md",
      +                                    "attachments": []
      +                                },
      +                                {
      +                                    "isClone": false,
      +                                    "noteId": "OGYpAbrmEXbX",
      +                                    "notePath": [
      +                                        "jdjRLhLV3TtI",
      +                                        "wbVIolLKDhe2",
      +                                        "AdNRgGrYeTCy",
      +                                        "OGYpAbrmEXbX"
      +                                    ],
      +                                    "title": "SVG rendering",
      +                                    "notePosition": 50,
      +                                    "prefix": null,
      +                                    "isExpanded": false,
      +                                    "type": "text",
      +                                    "mime": "text/html",
      +                                    "attributes": [],
      +                                    "format": "markdown",
      +                                    "dataFileName": "SVG rendering.md",
      +                                    "attachments": []
      +                                },
      +                                {
      +                                    "isClone": false,
      +                                    "noteId": "Q8hgB8EEen80",
      +                                    "notePath": [
      +                                        "jdjRLhLV3TtI",
      +                                        "wbVIolLKDhe2",
      +                                        "AdNRgGrYeTCy",
      +                                        "Q8hgB8EEen80"
      +                                    ],
      +                                    "title": "Copy image reference to the clipboard",
      +                                    "notePosition": 60,
      +                                    "prefix": null,
      +                                    "isExpanded": false,
      +                                    "type": "text",
      +                                    "mime": "text/html",
      +                                    "attributes": [],
      +                                    "format": "markdown",
      +                                    "dataFileName": "Copy image reference to the cl.md",
      +                                    "attachments": []
      +                                },
      +                                {
      +                                    "isClone": false,
      +                                    "noteId": "AwWq8bJRl6XD",
      +                                    "notePath": [
      +                                        "jdjRLhLV3TtI",
      +                                        "wbVIolLKDhe2",
      +                                        "AdNRgGrYeTCy",
      +                                        "AwWq8bJRl6XD"
      +                                    ],
      +                                    "title": "Export diagram as SVG",
      +                                    "notePosition": 70,
      +                                    "prefix": null,
      +                                    "isExpanded": false,
      +                                    "type": "text",
      +                                    "mime": "text/html",
      +                                    "attributes": [
      +                                        {
      +                                            "type": "relation",
      +                                            "name": "internalLink",
      +                                            "value": "OGYpAbrmEXbX",
      +                                            "isInheritable": false,
      +                                            "position": 10
      +                                        }
      +                                    ],
      +                                    "format": "markdown",
      +                                    "dataFileName": "Export diagram as SVG.md",
      +                                    "attachments": []
      +                                }
      +                            ]
      +                        },
      +                        {
      +                            "isClone": false,
      +                            "noteId": "W0msUwLxm40d",
      +                            "notePath": [
      +                                "jdjRLhLV3TtI",
      +                                "wbVIolLKDhe2",
      +                                "W0msUwLxm40d"
      +                            ],
      +                            "title": "Printing",
      +                            "notePosition": 220,
      +                            "prefix": null,
      +                            "isExpanded": false,
      +                            "type": "text",
      +                            "mime": "text/html",
      +                            "attributes": [],
      +                            "format": "markdown",
      +                            "dataFileName": "Printing.md",
      +                            "attachments": []
      +                        },
      +                        {
      +                            "isClone": false,
      +                            "noteId": "Usiyzn9C4WFv",
      +                            "notePath": [
      +                                "jdjRLhLV3TtI",
      +                                "wbVIolLKDhe2",
      +                                "Usiyzn9C4WFv"
      +                            ],
      +                            "title": "Launchers",
      +                            "notePosition": 230,
      +                            "prefix": null,
      +                            "isExpanded": false,
      +                            "type": "text",
      +                            "mime": "text/html",
      +                            "attributes": [],
      +                            "format": "markdown",
      +                            "dataFileName": "Launchers.md",
      +                            "attachments": []
      +                        },
      +                        {
      +                            "isClone": false,
      +                            "noteId": "k7RavjuXQt8z",
      +                            "notePath": [
      +                                "jdjRLhLV3TtI",
      +                                "wbVIolLKDhe2",
      +                                "k7RavjuXQt8z"
      +                            ],
      +                            "title": "Syntax highlighting",
      +                            "notePosition": 240,
      +                            "prefix": null,
      +                            "isExpanded": false,
      +                            "type": "text",
      +                            "mime": "text/html",
      +                            "attributes": [],
      +                            "format": "markdown",
      +                            "dataFileName": "Syntax highlighting.md",
      +                            "attachments": []
      +                        },
      +                        {
      +                            "isClone": false,
      +                            "noteId": "UzRirf46Xi46",
      +                            "notePath": [
      +                                "jdjRLhLV3TtI",
      +                                "wbVIolLKDhe2",
      +                                "UzRirf46Xi46"
      +                            ],
      +                            "title": "Hidden notes",
      +                            "notePosition": 250,
      +                            "prefix": null,
      +                            "isExpanded": false,
      +                            "type": "text",
      +                            "mime": "text/html",
      +                            "attributes": [],
      +                            "format": "markdown",
      +                            "dataFileName": "Hidden notes.md",
      +                            "attachments": []
      +                        }
      +                    ]
      +                },
      +                {
      +                    "isClone": false,
      +                    "noteId": "VHhyVRYK43gI",
      +                    "notePath": [
      +                        "jdjRLhLV3TtI",
      +                        "VHhyVRYK43gI"
      +                    ],
      +                    "title": "Building and deployment",
      +                    "notePosition": 230,
      +                    "prefix": null,
      +                    "isExpanded": false,
      +                    "type": "text",
      +                    "mime": "text/html",
      +                    "attributes": [],
      +                    "format": "markdown",
      +                    "attachments": [],
      +                    "dirFileName": "Building and deployment",
      +                    "children": [
      +                        {
      +                            "isClone": false,
      +                            "noteId": "Un4wj2Mak2Ky",
      +                            "notePath": [
      +                                "jdjRLhLV3TtI",
      +                                "VHhyVRYK43gI",
      +                                "Un4wj2Mak2Ky"
      +                            ],
      +                            "title": "Nix flake",
      +                            "notePosition": 10,
      +                            "prefix": null,
      +                            "isExpanded": false,
      +                            "type": "text",
      +                            "mime": "text/html",
      +                            "attributes": [],
      +                            "format": "markdown",
      +                            "dataFileName": "Nix flake.md",
      +                            "attachments": []
      +                        }
      +                    ]
      +                },
                       {
                           "isClone": false,
                           "noteId": "ibAPHul7Efvr",
      @@ -186,7 +1767,7 @@
                               "ibAPHul7Efvr"
                           ],
                           "title": "Old documentation",
      -                    "notePosition": 220,
      +                    "notePosition": 260,
                           "prefix": null,
                           "isExpanded": false,
                           "type": "text",
      @@ -602,1603 +2183,6 @@
                                       }
                                   ]
                               },
      -                        {
      -                            "isClone": false,
      -                            "noteId": "wbVIolLKDhe2",
      -                            "notePath": [
      -                                "jdjRLhLV3TtI",
      -                                "ibAPHul7Efvr",
      -                                "wbVIolLKDhe2"
      -                            ],
      -                            "title": "Development and architecture",
      -                            "notePosition": 70,
      -                            "prefix": null,
      -                            "isExpanded": false,
      -                            "type": "text",
      -                            "mime": "text/html",
      -                            "attributes": [],
      -                            "format": "markdown",
      -                            "attachments": [],
      -                            "dirFileName": "Development and architecture",
      -                            "children": [
      -                                {
      -                                    "isClone": false,
      -                                    "noteId": "TLXJwBDo8Rdv",
      -                                    "notePath": [
      -                                        "jdjRLhLV3TtI",
      -                                        "ibAPHul7Efvr",
      -                                        "wbVIolLKDhe2",
      -                                        "TLXJwBDo8Rdv"
      -                                    ],
      -                                    "title": "Internationalisation / Translations",
      -                                    "notePosition": 10,
      -                                    "prefix": null,
      -                                    "isExpanded": false,
      -                                    "type": "text",
      -                                    "mime": "text/html",
      -                                    "attributes": [
      -                                        {
      -                                            "type": "relation",
      -                                            "name": "internalLink",
      -                                            "value": "ky5zpmxXZhhr",
      -                                            "isInheritable": false,
      -                                            "position": 10
      -                                        },
      -                                        {
      -                                            "type": "label",
      -                                            "name": "iconClass",
      -                                            "value": "bx bx-globe",
      -                                            "isInheritable": false,
      -                                            "position": 10
      -                                        }
      -                                    ],
      -                                    "format": "markdown",
      -                                    "dataFileName": "Internationalisation  Translat.md",
      -                                    "attachments": [],
      -                                    "dirFileName": "Internationalisation  Translations",
      -                                    "children": [
      -                                        {
      -                                            "isClone": false,
      -                                            "noteId": "ky5zpmxXZhhr",
      -                                            "notePath": [
      -                                                "jdjRLhLV3TtI",
      -                                                "ibAPHul7Efvr",
      -                                                "wbVIolLKDhe2",
      -                                                "TLXJwBDo8Rdv",
      -                                                "ky5zpmxXZhhr"
      -                                            ],
      -                                            "title": "Guidelines",
      -                                            "notePosition": 10,
      -                                            "prefix": null,
      -                                            "isExpanded": false,
      -                                            "type": "text",
      -                                            "mime": "text/html",
      -                                            "attributes": [],
      -                                            "format": "markdown",
      -                                            "dataFileName": "Guidelines.md",
      -                                            "attachments": []
      -                                        },
      -                                        {
      -                                            "isClone": false,
      -                                            "noteId": "VTebBD3jZjdp",
      -                                            "notePath": [
      -                                                "jdjRLhLV3TtI",
      -                                                "ibAPHul7Efvr",
      -                                                "wbVIolLKDhe2",
      -                                                "TLXJwBDo8Rdv",
      -                                                "VTebBD3jZjdp"
      -                                            ],
      -                                            "title": "i18n-ally",
      -                                            "notePosition": 20,
      -                                            "prefix": null,
      -                                            "isExpanded": false,
      -                                            "type": "text",
      -                                            "mime": "text/html",
      -                                            "attributes": [
      -                                                {
      -                                                    "type": "relation",
      -                                                    "name": "internalLink",
      -                                                    "value": "ky5zpmxXZhhr",
      -                                                    "isInheritable": false,
      -                                                    "position": 10
      -                                                }
      -                                            ],
      -                                            "format": "markdown",
      -                                            "dataFileName": "i18n-ally.md",
      -                                            "attachments": []
      -                                        },
      -                                        {
      -                                            "isClone": false,
      -                                            "noteId": "KhDvxPlQQybs",
      -                                            "notePath": [
      -                                                "jdjRLhLV3TtI",
      -                                                "ibAPHul7Efvr",
      -                                                "wbVIolLKDhe2",
      -                                                "TLXJwBDo8Rdv",
      -                                                "KhDvxPlQQybs"
      -                                            ],
      -                                            "title": "Server translations",
      -                                            "notePosition": 30,
      -                                            "prefix": null,
      -                                            "isExpanded": false,
      -                                            "type": "text",
      -                                            "mime": "text/html",
      -                                            "attributes": [],
      -                                            "format": "markdown",
      -                                            "dataFileName": "Server translations.md",
      -                                            "attachments": []
      -                                        }
      -                                    ]
      -                                },
      -                                {
      -                                    "isClone": false,
      -                                    "noteId": "fI16A7NrT713",
      -                                    "notePath": [
      -                                        "jdjRLhLV3TtI",
      -                                        "ibAPHul7Efvr",
      -                                        "wbVIolLKDhe2",
      -                                        "fI16A7NrT713"
      -                                    ],
      -                                    "title": "Live reload",
      -                                    "notePosition": 20,
      -                                    "prefix": null,
      -                                    "isExpanded": false,
      -                                    "type": "text",
      -                                    "mime": "text/html",
      -                                    "attributes": [],
      -                                    "format": "markdown",
      -                                    "dataFileName": "Live reload.md",
      -                                    "attachments": []
      -                                },
      -                                {
      -                                    "isClone": false,
      -                                    "noteId": "7BCukQTCm7fv",
      -                                    "notePath": [
      -                                        "jdjRLhLV3TtI",
      -                                        "ibAPHul7Efvr",
      -                                        "wbVIolLKDhe2",
      -                                        "7BCukQTCm7fv"
      -                                    ],
      -                                    "title": "Themes",
      -                                    "notePosition": 30,
      -                                    "prefix": null,
      -                                    "isExpanded": false,
      -                                    "type": "text",
      -                                    "mime": "text/html",
      -                                    "attributes": [],
      -                                    "format": "markdown",
      -                                    "dataFileName": "Themes.md",
      -                                    "attachments": []
      -                                },
      -                                {
      -                                    "isClone": false,
      -                                    "noteId": "n9wYW9nUTynV",
      -                                    "notePath": [
      -                                        "jdjRLhLV3TtI",
      -                                        "ibAPHul7Efvr",
      -                                        "wbVIolLKDhe2",
      -                                        "n9wYW9nUTynV"
      -                                    ],
      -                                    "title": "Synchronisation",
      -                                    "notePosition": 40,
      -                                    "prefix": null,
      -                                    "isExpanded": false,
      -                                    "type": "text",
      -                                    "mime": "text/html",
      -                                    "attributes": [],
      -                                    "format": "markdown",
      -                                    "attachments": [],
      -                                    "dirFileName": "Synchronisation",
      -                                    "children": [
      -                                        {
      -                                            "isClone": false,
      -                                            "noteId": "wA6tm9xcWWaB",
      -                                            "notePath": [
      -                                                "jdjRLhLV3TtI",
      -                                                "ibAPHul7Efvr",
      -                                                "wbVIolLKDhe2",
      -                                                "n9wYW9nUTynV",
      -                                                "wA6tm9xcWWaB"
      -                                            ],
      -                                            "title": "Content hashing",
      -                                            "notePosition": 10,
      -                                            "prefix": null,
      -                                            "isExpanded": false,
      -                                            "type": "text",
      -                                            "mime": "text/html",
      -                                            "attributes": [],
      -                                            "format": "markdown",
      -                                            "dataFileName": "Content hashing.md",
      -                                            "attachments": []
      -                                        }
      -                                    ]
      -                                },
      -                                {
      -                                    "isClone": false,
      -                                    "noteId": "aGlhNBEA9wwo",
      -                                    "notePath": [
      -                                        "jdjRLhLV3TtI",
      -                                        "ibAPHul7Efvr",
      -                                        "wbVIolLKDhe2",
      -                                        "aGlhNBEA9wwo"
      -                                    ],
      -                                    "title": "Build information",
      -                                    "notePosition": 50,
      -                                    "prefix": null,
      -                                    "isExpanded": false,
      -                                    "type": "text",
      -                                    "mime": "text/html",
      -                                    "attributes": [
      -                                        {
      -                                            "type": "relation",
      -                                            "name": "internalLink",
      -                                            "value": "PXzm2t3sCdsP",
      -                                            "isInheritable": false,
      -                                            "position": 10
      -                                        }
      -                                    ],
      -                                    "format": "markdown",
      -                                    "dataFileName": "Build information.md",
      -                                    "attachments": []
      -                                },
      -                                {
      -                                    "isClone": false,
      -                                    "noteId": "vNMojjUN76jc",
      -                                    "notePath": [
      -                                        "jdjRLhLV3TtI",
      -                                        "ibAPHul7Efvr",
      -                                        "wbVIolLKDhe2",
      -                                        "vNMojjUN76jc"
      -                                    ],
      -                                    "title": "Database",
      -                                    "notePosition": 60,
      -                                    "prefix": null,
      -                                    "isExpanded": false,
      -                                    "type": "text",
      -                                    "mime": "text/html",
      -                                    "attributes": [],
      -                                    "format": "markdown",
      -                                    "attachments": [],
      -                                    "dirFileName": "Database",
      -                                    "children": [
      -                                        {
      -                                            "isClone": false,
      -                                            "noteId": "e6GnYOXeIWjg",
      -                                            "notePath": [
      -                                                "jdjRLhLV3TtI",
      -                                                "ibAPHul7Efvr",
      -                                                "wbVIolLKDhe2",
      -                                                "vNMojjUN76jc",
      -                                                "e6GnYOXeIWjg"
      -                                            ],
      -                                            "title": "attachments",
      -                                            "notePosition": 20,
      -                                            "prefix": null,
      -                                            "isExpanded": false,
      -                                            "type": "text",
      -                                            "mime": "text/html",
      -                                            "attributes": [
      -                                                {
      -                                                    "type": "relation",
      -                                                    "name": "internalLink",
      -                                                    "value": "DSkl8C325tEC",
      -                                                    "isInheritable": false,
      -                                                    "position": 10
      -                                                },
      -                                                {
      -                                                    "type": "relation",
      -                                                    "name": "internalLink",
      -                                                    "value": "UvXpeSqfYc6d",
      -                                                    "isInheritable": false,
      -                                                    "position": 20
      -                                                },
      -                                                {
      -                                                    "type": "relation",
      -                                                    "name": "internalLink",
      -                                                    "value": "VIcWnKGs0sMh",
      -                                                    "isInheritable": false,
      -                                                    "position": 30
      -                                                },
      -                                                {
      -                                                    "type": "relation",
      -                                                    "name": "internalLink",
      -                                                    "value": "tM3rIZQzlum4",
      -                                                    "isInheritable": false,
      -                                                    "position": 40
      -                                                },
      -                                                {
      -                                                    "type": "label",
      -                                                    "name": "iconClass",
      -                                                    "value": "bx bx-table",
      -                                                    "isInheritable": false,
      -                                                    "position": 10
      -                                                }
      -                                            ],
      -                                            "format": "markdown",
      -                                            "dataFileName": "attachments.md",
      -                                            "attachments": []
      -                                        },
      -                                        {
      -                                            "isClone": false,
      -                                            "noteId": "ciL84vNBNi9y",
      -                                            "notePath": [
      -                                                "jdjRLhLV3TtI",
      -                                                "ibAPHul7Efvr",
      -                                                "wbVIolLKDhe2",
      -                                                "vNMojjUN76jc",
      -                                                "ciL84vNBNi9y"
      -                                            ],
      -                                            "title": "attributes",
      -                                            "notePosition": 30,
      -                                            "prefix": null,
      -                                            "isExpanded": false,
      -                                            "type": "text",
      -                                            "mime": "text/html",
      -                                            "attributes": [
      -                                                {
      -                                                    "type": "relation",
      -                                                    "name": "internalLink",
      -                                                    "value": "r11Bh3uxFGRj",
      -                                                    "isInheritable": false,
      -                                                    "position": 10
      -                                                },
      -                                                {
      -                                                    "type": "relation",
      -                                                    "name": "internalLink",
      -                                                    "value": "DSkl8C325tEC",
      -                                                    "isInheritable": false,
      -                                                    "position": 20
      -                                                },
      -                                                {
      -                                                    "type": "relation",
      -                                                    "name": "internalLink",
      -                                                    "value": "tM3rIZQzlum4",
      -                                                    "isInheritable": false,
      -                                                    "position": 30
      -                                                },
      -                                                {
      -                                                    "type": "label",
      -                                                    "name": "iconClass",
      -                                                    "value": "bx bx-table",
      -                                                    "isInheritable": false,
      -                                                    "position": 10
      -                                                }
      -                                            ],
      -                                            "format": "markdown",
      -                                            "dataFileName": "attributes.md",
      -                                            "attachments": []
      -                                        },
      -                                        {
      -                                            "isClone": false,
      -                                            "noteId": "VIcWnKGs0sMh",
      -                                            "notePath": [
      -                                                "jdjRLhLV3TtI",
      -                                                "ibAPHul7Efvr",
      -                                                "wbVIolLKDhe2",
      -                                                "vNMojjUN76jc",
      -                                                "VIcWnKGs0sMh"
      -                                            ],
      -                                            "title": "blobs",
      -                                            "notePosition": 40,
      -                                            "prefix": null,
      -                                            "isExpanded": false,
      -                                            "type": "text",
      -                                            "mime": "text/html",
      -                                            "attributes": [
      -                                                {
      -                                                    "type": "label",
      -                                                    "name": "iconClass",
      -                                                    "value": "bx bx-table",
      -                                                    "isInheritable": false,
      -                                                    "position": 10
      -                                                }
      -                                            ],
      -                                            "format": "markdown",
      -                                            "dataFileName": "blobs.md",
      -                                            "attachments": []
      -                                        },
      -                                        {
      -                                            "isClone": false,
      -                                            "noteId": "GskLPkgY5n6E",
      -                                            "notePath": [
      -                                                "jdjRLhLV3TtI",
      -                                                "ibAPHul7Efvr",
      -                                                "wbVIolLKDhe2",
      -                                                "vNMojjUN76jc",
      -                                                "GskLPkgY5n6E"
      -                                            ],
      -                                            "title": "branches",
      -                                            "notePosition": 50,
      -                                            "prefix": null,
      -                                            "isExpanded": false,
      -                                            "type": "text",
      -                                            "mime": "text/html",
      -                                            "attributes": [
      -                                                {
      -                                                    "type": "relation",
      -                                                    "name": "internalLink",
      -                                                    "value": "h8AsuFjSD4fB",
      -                                                    "isInheritable": false,
      -                                                    "position": 10
      -                                                },
      -                                                {
      -                                                    "type": "relation",
      -                                                    "name": "internalLink",
      -                                                    "value": "DSkl8C325tEC",
      -                                                    "isInheritable": false,
      -                                                    "position": 20
      -                                                },
      -                                                {
      -                                                    "type": "relation",
      -                                                    "name": "internalLink",
      -                                                    "value": "tM3rIZQzlum4",
      -                                                    "isInheritable": false,
      -                                                    "position": 30
      -                                                },
      -                                                {
      -                                                    "type": "label",
      -                                                    "name": "iconClass",
      -                                                    "value": "bx bx-table",
      -                                                    "isInheritable": false,
      -                                                    "position": 10
      -                                                }
      -                                            ],
      -                                            "format": "markdown",
      -                                            "dataFileName": "branches.md",
      -                                            "attachments": []
      -                                        },
      -                                        {
      -                                            "isClone": false,
      -                                            "noteId": "ohhExR078MPU",
      -                                            "notePath": [
      -                                                "jdjRLhLV3TtI",
      -                                                "ibAPHul7Efvr",
      -                                                "wbVIolLKDhe2",
      -                                                "vNMojjUN76jc",
      -                                                "ohhExR078MPU"
      -                                            ],
      -                                            "title": "entity_changes",
      -                                            "notePosition": 51,
      -                                            "prefix": null,
      -                                            "isExpanded": false,
      -                                            "type": "text",
      -                                            "mime": "text/html",
      -                                            "attributes": [
      -                                                {
      -                                                    "type": "label",
      -                                                    "name": "iconClass",
      -                                                    "value": "bx bx-table",
      -                                                    "isInheritable": false,
      -                                                    "position": 10
      -                                                }
      -                                            ],
      -                                            "format": "markdown",
      -                                            "dataFileName": "entity_changes.md",
      -                                            "attachments": []
      -                                        },
      -                                        {
      -                                            "isClone": false,
      -                                            "noteId": "bRqbIg633nCs",
      -                                            "notePath": [
      -                                                "jdjRLhLV3TtI",
      -                                                "ibAPHul7Efvr",
      -                                                "wbVIolLKDhe2",
      -                                                "vNMojjUN76jc",
      -                                                "bRqbIg633nCs"
      -                                            ],
      -                                            "title": "etapi_tokens",
      -                                            "notePosition": 52,
      -                                            "prefix": null,
      -                                            "isExpanded": false,
      -                                            "type": "text",
      -                                            "mime": "text/html",
      -                                            "attributes": [
      -                                                {
      -                                                    "type": "relation",
      -                                                    "name": "internalLink",
      -                                                    "value": "tM3rIZQzlum4",
      -                                                    "isInheritable": false,
      -                                                    "position": 10
      -                                                },
      -                                                {
      -                                                    "type": "label",
      -                                                    "name": "iconClass",
      -                                                    "value": "bx bx-table",
      -                                                    "isInheritable": false,
      -                                                    "position": 10
      -                                                }
      -                                            ],
      -                                            "format": "markdown",
      -                                            "dataFileName": "etapi_tokens.md",
      -                                            "attachments": []
      -                                        },
      -                                        {
      -                                            "isClone": false,
      -                                            "noteId": "DSkl8C325tEC",
      -                                            "notePath": [
      -                                                "jdjRLhLV3TtI",
      -                                                "ibAPHul7Efvr",
      -                                                "wbVIolLKDhe2",
      -                                                "vNMojjUN76jc",
      -                                                "DSkl8C325tEC"
      -                                            ],
      -                                            "title": "notes",
      -                                            "notePosition": 53,
      -                                            "prefix": null,
      -                                            "isExpanded": false,
      -                                            "type": "text",
      -                                            "mime": "text/html",
      -                                            "attributes": [
      -                                                {
      -                                                    "type": "relation",
      -                                                    "name": "internalLink",
      -                                                    "value": "VIcWnKGs0sMh",
      -                                                    "isInheritable": false,
      -                                                    "position": 10
      -                                                },
      -                                                {
      -                                                    "type": "relation",
      -                                                    "name": "internalLink",
      -                                                    "value": "UvXpeSqfYc6d",
      -                                                    "isInheritable": false,
      -                                                    "position": 20
      -                                                },
      -                                                {
      -                                                    "type": "relation",
      -                                                    "name": "internalLink",
      -                                                    "value": "tM3rIZQzlum4",
      -                                                    "isInheritable": false,
      -                                                    "position": 30
      -                                                },
      -                                                {
      -                                                    "type": "label",
      -                                                    "name": "iconClass",
      -                                                    "value": "bx bx-table",
      -                                                    "isInheritable": false,
      -                                                    "position": 10
      -                                                }
      -                                            ],
      -                                            "format": "markdown",
      -                                            "dataFileName": "notes.md",
      -                                            "attachments": []
      -                                        },
      -                                        {
      -                                            "isClone": false,
      -                                            "noteId": "4oeftEmy77Bt",
      -                                            "notePath": [
      -                                                "jdjRLhLV3TtI",
      -                                                "ibAPHul7Efvr",
      -                                                "wbVIolLKDhe2",
      -                                                "vNMojjUN76jc",
      -                                                "4oeftEmy77Bt"
      -                                            ],
      -                                            "title": "options",
      -                                            "notePosition": 54,
      -                                            "prefix": null,
      -                                            "isExpanded": false,
      -                                            "type": "text",
      -                                            "mime": "text/html",
      -                                            "attributes": [
      -                                                {
      -                                                    "type": "label",
      -                                                    "name": "iconClass",
      -                                                    "value": "bx bx-table",
      -                                                    "isInheritable": false,
      -                                                    "position": 10
      -                                                }
      -                                            ],
      -                                            "format": "markdown",
      -                                            "dataFileName": "options.md",
      -                                            "attachments": []
      -                                        },
      -                                        {
      -                                            "isClone": false,
      -                                            "noteId": "VyFirdgAOoh5",
      -                                            "notePath": [
      -                                                "jdjRLhLV3TtI",
      -                                                "ibAPHul7Efvr",
      -                                                "wbVIolLKDhe2",
      -                                                "vNMojjUN76jc",
      -                                                "VyFirdgAOoh5"
      -                                            ],
      -                                            "title": "recent_notes",
      -                                            "notePosition": 55,
      -                                            "prefix": null,
      -                                            "isExpanded": false,
      -                                            "type": "text",
      -                                            "mime": "text/html",
      -                                            "attributes": [
      -                                                {
      -                                                    "type": "relation",
      -                                                    "name": "internalLink",
      -                                                    "value": "DSkl8C325tEC",
      -                                                    "isInheritable": false,
      -                                                    "position": 10
      -                                                },
      -                                                {
      -                                                    "type": "label",
      -                                                    "name": "iconClass",
      -                                                    "value": "bx bx-table",
      -                                                    "isInheritable": false,
      -                                                    "position": 10
      -                                                }
      -                                            ],
      -                                            "format": "markdown",
      -                                            "dataFileName": "recent_notes.md",
      -                                            "attachments": []
      -                                        },
      -                                        {
      -                                            "isClone": false,
      -                                            "noteId": "s7ZBiaJVNumK",
      -                                            "notePath": [
      -                                                "jdjRLhLV3TtI",
      -                                                "ibAPHul7Efvr",
      -                                                "wbVIolLKDhe2",
      -                                                "vNMojjUN76jc",
      -                                                "s7ZBiaJVNumK"
      -                                            ],
      -                                            "title": "revisions",
      -                                            "notePosition": 56,
      -                                            "prefix": null,
      -                                            "isExpanded": false,
      -                                            "type": "text",
      -                                            "mime": "text/html",
      -                                            "attributes": [
      -                                                {
      -                                                    "type": "relation",
      -                                                    "name": "internalLink",
      -                                                    "value": "DSkl8C325tEC",
      -                                                    "isInheritable": false,
      -                                                    "position": 10
      -                                                },
      -                                                {
      -                                                    "type": "relation",
      -                                                    "name": "internalLink",
      -                                                    "value": "VIcWnKGs0sMh",
      -                                                    "isInheritable": false,
      -                                                    "position": 20
      -                                                },
      -                                                {
      -                                                    "type": "relation",
      -                                                    "name": "internalLink",
      -                                                    "value": "UvXpeSqfYc6d",
      -                                                    "isInheritable": false,
      -                                                    "position": 30
      -                                                },
      -                                                {
      -                                                    "type": "label",
      -                                                    "name": "iconClass",
      -                                                    "value": "bx bx-table",
      -                                                    "isInheritable": false,
      -                                                    "position": 10
      -                                                }
      -                                            ],
      -                                            "format": "markdown",
      -                                            "dataFileName": "revisions.md",
      -                                            "attachments": []
      -                                        }
      -                                    ]
      -                                },
      -                                {
      -                                    "isClone": false,
      -                                    "noteId": "UvXpeSqfYc6d",
      -                                    "notePath": [
      -                                        "jdjRLhLV3TtI",
      -                                        "ibAPHul7Efvr",
      -                                        "wbVIolLKDhe2",
      -                                        "UvXpeSqfYc6d"
      -                                    ],
      -                                    "title": "Protected entities",
      -                                    "notePosition": 80,
      -                                    "prefix": null,
      -                                    "isExpanded": false,
      -                                    "type": "text",
      -                                    "mime": "text/html",
      -                                    "attributes": [
      -                                        {
      -                                            "type": "relation",
      -                                            "name": "internalLink",
      -                                            "value": "e6GnYOXeIWjg",
      -                                            "isInheritable": false,
      -                                            "position": 10
      -                                        },
      -                                        {
      -                                            "type": "relation",
      -                                            "name": "internalLink",
      -                                            "value": "DSkl8C325tEC",
      -                                            "isInheritable": false,
      -                                            "position": 20
      -                                        },
      -                                        {
      -                                            "type": "relation",
      -                                            "name": "internalLink",
      -                                            "value": "s7ZBiaJVNumK",
      -                                            "isInheritable": false,
      -                                            "position": 30
      -                                        }
      -                                    ],
      -                                    "format": "markdown",
      -                                    "dataFileName": "Protected entities.md",
      -                                    "attachments": []
      -                                },
      -                                {
      -                                    "isClone": false,
      -                                    "noteId": "tM3rIZQzlum4",
      -                                    "notePath": [
      -                                        "jdjRLhLV3TtI",
      -                                        "ibAPHul7Efvr",
      -                                        "wbVIolLKDhe2",
      -                                        "tM3rIZQzlum4"
      -                                    ],
      -                                    "title": "Deleted notes",
      -                                    "notePosition": 90,
      -                                    "prefix": null,
      -                                    "isExpanded": false,
      -                                    "type": "text",
      -                                    "mime": "text/html",
      -                                    "attributes": [],
      -                                    "format": "markdown",
      -                                    "dataFileName": "Deleted notes.md",
      -                                    "attachments": []
      -                                },
      -                                {
      -                                    "isClone": false,
      -                                    "noteId": "r11Bh3uxFGRj",
      -                                    "notePath": [
      -                                        "jdjRLhLV3TtI",
      -                                        "ibAPHul7Efvr",
      -                                        "wbVIolLKDhe2",
      -                                        "r11Bh3uxFGRj"
      -                                    ],
      -                                    "title": "Special notes",
      -                                    "notePosition": 100,
      -                                    "prefix": null,
      -                                    "isExpanded": false,
      -                                    "type": "text",
      -                                    "mime": "text/html",
      -                                    "attributes": [],
      -                                    "format": "markdown",
      -                                    "dataFileName": "Special notes.md",
      -                                    "attachments": []
      -                                },
      -                                {
      -                                    "isClone": false,
      -                                    "noteId": "h8AsuFjSD4fB",
      -                                    "notePath": [
      -                                        "jdjRLhLV3TtI",
      -                                        "ibAPHul7Efvr",
      -                                        "wbVIolLKDhe2",
      -                                        "h8AsuFjSD4fB"
      -                                    ],
      -                                    "title": "Branch prefixes",
      -                                    "notePosition": 110,
      -                                    "prefix": null,
      -                                    "isExpanded": false,
      -                                    "type": "text",
      -                                    "mime": "text/html",
      -                                    "attributes": [],
      -                                    "format": "markdown",
      -                                    "dataFileName": "Branch prefixes.md",
      -                                    "attachments": []
      -                                },
      -                                {
      -                                    "isClone": false,
      -                                    "noteId": "qjQNyaYXSNWu",
      -                                    "notePath": [
      -                                        "jdjRLhLV3TtI",
      -                                        "ibAPHul7Efvr",
      -                                        "wbVIolLKDhe2",
      -                                        "qjQNyaYXSNWu"
      -                                    ],
      -                                    "title": "Revisions",
      -                                    "notePosition": 120,
      -                                    "prefix": null,
      -                                    "isExpanded": false,
      -                                    "type": "text",
      -                                    "mime": "text/html",
      -                                    "attributes": [],
      -                                    "format": "markdown",
      -                                    "dataFileName": "Revisions.md",
      -                                    "attachments": []
      -                                },
      -                                {
      -                                    "isClone": false,
      -                                    "noteId": "3mz4ZYhi9Cy8",
      -                                    "notePath": [
      -                                        "jdjRLhLV3TtI",
      -                                        "ibAPHul7Efvr",
      -                                        "wbVIolLKDhe2",
      -                                        "3mz4ZYhi9Cy8"
      -                                    ],
      -                                    "title": "Backlinks",
      -                                    "notePosition": 130,
      -                                    "prefix": null,
      -                                    "isExpanded": false,
      -                                    "type": "text",
      -                                    "mime": "text/html",
      -                                    "attributes": [],
      -                                    "format": "markdown",
      -                                    "dataFileName": "Backlinks.md",
      -                                    "attachments": []
      -                                },
      -                                {
      -                                    "isClone": false,
      -                                    "noteId": "ItZRqNGeGSU0",
      -                                    "notePath": [
      -                                        "jdjRLhLV3TtI",
      -                                        "ibAPHul7Efvr",
      -                                        "wbVIolLKDhe2",
      -                                        "ItZRqNGeGSU0"
      -                                    ],
      -                                    "title": "Note types",
      -                                    "notePosition": 140,
      -                                    "prefix": null,
      -                                    "isExpanded": false,
      -                                    "type": "text",
      -                                    "mime": "text/html",
      -                                    "attributes": [
      -                                        {
      -                                            "type": "relation",
      -                                            "name": "internalLink",
      -                                            "value": "DSkl8C325tEC",
      -                                            "isInheritable": false,
      -                                            "position": 10
      -                                        }
      -                                    ],
      -                                    "format": "markdown",
      -                                    "dataFileName": "Note types.md",
      -                                    "attachments": []
      -                                },
      -                                {
      -                                    "isClone": false,
      -                                    "noteId": "64ZTlUPgEPtW",
      -                                    "notePath": [
      -                                        "jdjRLhLV3TtI",
      -                                        "ibAPHul7Efvr",
      -                                        "wbVIolLKDhe2",
      -                                        "64ZTlUPgEPtW"
      -                                    ],
      -                                    "title": "Safe mode",
      -                                    "notePosition": 150,
      -                                    "prefix": null,
      -                                    "isExpanded": false,
      -                                    "type": "text",
      -                                    "mime": "text/html",
      -                                    "attributes": [],
      -                                    "format": "markdown",
      -                                    "dataFileName": "Safe mode.md",
      -                                    "attachments": []
      -                                },
      -                                {
      -                                    "isClone": false,
      -                                    "noteId": "m2W35hwSDUeh",
      -                                    "notePath": [
      -                                        "jdjRLhLV3TtI",
      -                                        "ibAPHul7Efvr",
      -                                        "wbVIolLKDhe2",
      -                                        "m2W35hwSDUeh"
      -                                    ],
      -                                    "title": "Icons",
      -                                    "notePosition": 160,
      -                                    "prefix": null,
      -                                    "isExpanded": false,
      -                                    "type": "text",
      -                                    "mime": "text/html",
      -                                    "attributes": [
      -                                        {
      -                                            "type": "relation",
      -                                            "name": "internalLink",
      -                                            "value": "PXzm2t3sCdsP",
      -                                            "isInheritable": false,
      -                                            "position": 10
      -                                        },
      -                                        {
      -                                            "type": "relation",
      -                                            "name": "internalLink",
      -                                            "value": "oLhKpfi2kGON",
      -                                            "isInheritable": false,
      -                                            "position": 20
      -                                        }
      -                                    ],
      -                                    "format": "markdown",
      -                                    "dataFileName": "Icons.md",
      -                                    "attachments": [],
      -                                    "dirFileName": "Icons",
      -                                    "children": [
      -                                        {
      -                                            "isClone": false,
      -                                            "noteId": "rUkJPiX0sJSk",
      -                                            "notePath": [
      -                                                "jdjRLhLV3TtI",
      -                                                "ibAPHul7Efvr",
      -                                                "wbVIolLKDhe2",
      -                                                "m2W35hwSDUeh",
      -                                                "rUkJPiX0sJSk"
      -                                            ],
      -                                            "title": "Removed icons",
      -                                            "notePosition": 10,
      -                                            "prefix": null,
      -                                            "isExpanded": false,
      -                                            "type": "text",
      -                                            "mime": "text/html",
      -                                            "attributes": [],
      -                                            "format": "markdown",
      -                                            "dataFileName": "Removed icons.md",
      -                                            "attachments": []
      -                                        },
      -                                        {
      -                                            "isClone": false,
      -                                            "noteId": "GzrBXey1UTUW",
      -                                            "notePath": [
      -                                                "jdjRLhLV3TtI",
      -                                                "ibAPHul7Efvr",
      -                                                "wbVIolLKDhe2",
      -                                                "m2W35hwSDUeh",
      -                                                "GzrBXey1UTUW"
      -                                            ],
      -                                            "title": "Icons on Mac",
      -                                            "notePosition": 20,
      -                                            "prefix": null,
      -                                            "isExpanded": false,
      -                                            "type": "text",
      -                                            "mime": "text/html",
      -                                            "attributes": [],
      -                                            "format": "markdown",
      -                                            "dataFileName": "Icons on Mac.md",
      -                                            "attachments": [
      -                                                {
      -                                                    "attachmentId": "gMQM37l1tgDc",
      -                                                    "title": "image.png",
      -                                                    "role": "image",
      -                                                    "mime": "image/png",
      -                                                    "position": 10,
      -                                                    "dataFileName": "Icons on Mac_image.png"
      -                                                },
      -                                                {
      -                                                    "attachmentId": "KBbeDSs1hueu",
      -                                                    "title": "image.png",
      -                                                    "role": "image",
      -                                                    "mime": "image/png",
      -                                                    "position": 10,
      -                                                    "dataFileName": "1_Icons on Mac_image.png"
      -                                                }
      -                                            ],
      -                                            "dirFileName": "Icons on Mac",
      -                                            "children": [
      -                                                {
      -                                                    "isClone": false,
      -                                                    "noteId": "0btkkp7llQdO",
      -                                                    "notePath": [
      -                                                        "jdjRLhLV3TtI",
      -                                                        "ibAPHul7Efvr",
      -                                                        "wbVIolLKDhe2",
      -                                                        "m2W35hwSDUeh",
      -                                                        "GzrBXey1UTUW",
      -                                                        "0btkkp7llQdO"
      -                                                    ],
      -                                                    "title": "Slightly blurry icon on Mac",
      -                                                    "notePosition": 10,
      -                                                    "prefix": null,
      -                                                    "isExpanded": false,
      -                                                    "type": "text",
      -                                                    "mime": "text/html",
      -                                                    "attributes": [],
      -                                                    "format": "markdown",
      -                                                    "dataFileName": "Slightly blurry icon on Mac.md",
      -                                                    "attachments": [
      -                                                        {
      -                                                            "attachmentId": "6USSTMu15E6N",
      -                                                            "title": "image.png",
      -                                                            "role": "image",
      -                                                            "mime": "image/png",
      -                                                            "position": 10,
      -                                                            "dataFileName": "Slightly blurry icon on Ma.png"
      -                                                        },
      -                                                        {
      -                                                            "attachmentId": "KEkBj1bOyfQ5",
      -                                                            "title": "image.png",
      -                                                            "role": "image",
      -                                                            "mime": "image/png",
      -                                                            "position": 10,
      -                                                            "dataFileName": "1_Slightly blurry icon on Ma.png"
      -                                                        },
      -                                                        {
      -                                                            "attachmentId": "XaG2VbiqKYtR",
      -                                                            "title": "image.png",
      -                                                            "role": "image",
      -                                                            "mime": "image/png",
      -                                                            "position": 10,
      -                                                            "dataFileName": "2_Slightly blurry icon on Ma.png"
      -                                                        }
      -                                                    ]
      -                                                },
      -                                                {
      -                                                    "isClone": false,
      -                                                    "noteId": "8zAJ5J8SFEp8",
      -                                                    "notePath": [
      -                                                        "jdjRLhLV3TtI",
      -                                                        "ibAPHul7Efvr",
      -                                                        "wbVIolLKDhe2",
      -                                                        "m2W35hwSDUeh",
      -                                                        "GzrBXey1UTUW",
      -                                                        "8zAJ5J8SFEp8"
      -                                                    ],
      -                                                    "title": "Adaptive icon",
      -                                                    "notePosition": 20,
      -                                                    "prefix": null,
      -                                                    "isExpanded": false,
      -                                                    "type": "text",
      -                                                    "mime": "text/html",
      -                                                    "attributes": [],
      -                                                    "format": "markdown",
      -                                                    "dataFileName": "Adaptive icon.md",
      -                                                    "attachments": [
      -                                                        {
      -                                                            "attachmentId": "38usIA7IJTpY",
      -                                                            "title": "image.png",
      -                                                            "role": "image",
      -                                                            "mime": "image/png",
      -                                                            "position": 10,
      -                                                            "dataFileName": "Adaptive icon_image.png"
      -                                                        },
      -                                                        {
      -                                                            "attachmentId": "4eQa9Eqkuekv",
      -                                                            "title": "image.png",
      -                                                            "role": "image",
      -                                                            "mime": "image/png",
      -                                                            "position": 10,
      -                                                            "dataFileName": "1_Adaptive icon_image.png"
      -                                                        },
      -                                                        {
      -                                                            "attachmentId": "gM1I22x3bYDv",
      -                                                            "title": "image.png",
      -                                                            "role": "image",
      -                                                            "mime": "image/png",
      -                                                            "position": 10,
      -                                                            "dataFileName": "2_Adaptive icon_image.png"
      -                                                        },
      -                                                        {
      -                                                            "attachmentId": "Im2xMquSwizu",
      -                                                            "title": "image.png",
      -                                                            "role": "image",
      -                                                            "mime": "image/png",
      -                                                            "position": 10,
      -                                                            "dataFileName": "3_Adaptive icon_image.png"
      -                                                        },
      -                                                        {
      -                                                            "attachmentId": "l2xu0BHxfPfq",
      -                                                            "title": "image.png",
      -                                                            "role": "image",
      -                                                            "mime": "image/png",
      -                                                            "position": 10,
      -                                                            "dataFileName": "4_Adaptive icon_image.png"
      -                                                        },
      -                                                        {
      -                                                            "attachmentId": "wM6YPPsas7tA",
      -                                                            "title": "image.png",
      -                                                            "role": "image",
      -                                                            "mime": "image/png",
      -                                                            "position": 10,
      -                                                            "dataFileName": "5_Adaptive icon_image.png"
      -                                                        },
      -                                                        {
      -                                                            "attachmentId": "zPLIBv0Xvgwm",
      -                                                            "title": "image.png",
      -                                                            "role": "image",
      -                                                            "mime": "image/png",
      -                                                            "position": 10,
      -                                                            "dataFileName": "6_Adaptive icon_image.png"
      -                                                        }
      -                                                    ]
      -                                                }
      -                                            ]
      -                                        }
      -                                    ]
      -                                },
      -                                {
      -                                    "isClone": false,
      -                                    "noteId": "oLhKpfi2kGON",
      -                                    "notePath": [
      -                                        "jdjRLhLV3TtI",
      -                                        "ibAPHul7Efvr",
      -                                        "wbVIolLKDhe2",
      -                                        "oLhKpfi2kGON"
      -                                    ],
      -                                    "title": "Demo document",
      -                                    "notePosition": 170,
      -                                    "prefix": null,
      -                                    "isExpanded": false,
      -                                    "type": "text",
      -                                    "mime": "text/html",
      -                                    "attributes": [],
      -                                    "format": "markdown",
      -                                    "dataFileName": "Demo document.md",
      -                                    "attachments": []
      -                                },
      -                                {
      -                                    "isClone": false,
      -                                    "noteId": "mXFYlhuEr1mZ",
      -                                    "notePath": [
      -                                        "jdjRLhLV3TtI",
      -                                        "ibAPHul7Efvr",
      -                                        "wbVIolLKDhe2",
      -                                        "mXFYlhuEr1mZ"
      -                                    ],
      -                                    "title": "Docker",
      -                                    "notePosition": 180,
      -                                    "prefix": null,
      -                                    "isExpanded": false,
      -                                    "type": "text",
      -                                    "mime": "text/html",
      -                                    "attributes": [],
      -                                    "format": "markdown",
      -                                    "dataFileName": "Docker.md",
      -                                    "attachments": []
      -                                },
      -                                {
      -                                    "isClone": false,
      -                                    "noteId": "6dC7ha5vjqqS",
      -                                    "notePath": [
      -                                        "jdjRLhLV3TtI",
      -                                        "ibAPHul7Efvr",
      -                                        "wbVIolLKDhe2",
      -                                        "6dC7ha5vjqqS"
      -                                    ],
      -                                    "title": "Options",
      -                                    "notePosition": 190,
      -                                    "prefix": null,
      -                                    "isExpanded": false,
      -                                    "type": "text",
      -                                    "mime": "text/html",
      -                                    "attributes": [],
      -                                    "format": "markdown",
      -                                    "dataFileName": "Options.md",
      -                                    "attachments": [],
      -                                    "dirFileName": "Options",
      -                                    "children": [
      -                                        {
      -                                            "isClone": false,
      -                                            "noteId": "Qk5Q0Xty3ITv",
      -                                            "notePath": [
      -                                                "jdjRLhLV3TtI",
      -                                                "ibAPHul7Efvr",
      -                                                "wbVIolLKDhe2",
      -                                                "6dC7ha5vjqqS",
      -                                                "Qk5Q0Xty3ITv"
      -                                            ],
      -                                            "title": "Check box option",
      -                                            "notePosition": 10,
      -                                            "prefix": null,
      -                                            "isExpanded": false,
      -                                            "type": "text",
      -                                            "mime": "text/html",
      -                                            "attributes": [],
      -                                            "format": "markdown",
      -                                            "dataFileName": "Check box option.md",
      -                                            "attachments": []
      -                                        },
      -                                        {
      -                                            "isClone": false,
      -                                            "noteId": "VnqYvYEuMMvb",
      -                                            "notePath": [
      -                                                "jdjRLhLV3TtI",
      -                                                "ibAPHul7Efvr",
      -                                                "wbVIolLKDhe2",
      -                                                "6dC7ha5vjqqS",
      -                                                "VnqYvYEuMMvb"
      -                                            ],
      -                                            "title": "Trigger UI refresh",
      -                                            "notePosition": 20,
      -                                            "prefix": null,
      -                                            "isExpanded": false,
      -                                            "type": "text",
      -                                            "mime": "text/html",
      -                                            "attributes": [],
      -                                            "format": "markdown",
      -                                            "dataFileName": "Trigger UI refresh.md",
      -                                            "attachments": []
      -                                        },
      -                                        {
      -                                            "isClone": false,
      -                                            "noteId": "3TbiQZODAp6y",
      -                                            "notePath": [
      -                                                "jdjRLhLV3TtI",
      -                                                "ibAPHul7Efvr",
      -                                                "wbVIolLKDhe2",
      -                                                "6dC7ha5vjqqS",
      -                                                "3TbiQZODAp6y"
      -                                            ],
      -                                            "title": "Displaying the option in settings",
      -                                            "notePosition": 30,
      -                                            "prefix": null,
      -                                            "isExpanded": false,
      -                                            "type": "text",
      -                                            "mime": "text/html",
      -                                            "attributes": [],
      -                                            "format": "markdown",
      -                                            "dataFileName": "Displaying the option in setti.md",
      -                                            "attachments": []
      -                                        },
      -                                        {
      -                                            "isClone": false,
      -                                            "noteId": "1TVWljchsc0t",
      -                                            "notePath": [
      -                                                "jdjRLhLV3TtI",
      -                                                "ibAPHul7Efvr",
      -                                                "wbVIolLKDhe2",
      -                                                "6dC7ha5vjqqS",
      -                                                "1TVWljchsc0t"
      -                                            ],
      -                                            "title": "Refresh widget with option change",
      -                                            "notePosition": 40,
      -                                            "prefix": null,
      -                                            "isExpanded": false,
      -                                            "type": "text",
      -                                            "mime": "text/html",
      -                                            "attributes": [],
      -                                            "format": "markdown",
      -                                            "dataFileName": "Refresh widget with option cha.md",
      -                                            "attachments": []
      -                                        },
      -                                        {
      -                                            "isClone": false,
      -                                            "noteId": "NcHcYOEn4ol5",
      -                                            "notePath": [
      -                                                "jdjRLhLV3TtI",
      -                                                "ibAPHul7Efvr",
      -                                                "wbVIolLKDhe2",
      -                                                "6dC7ha5vjqqS",
      -                                                "NcHcYOEn4ol5"
      -                                            ],
      -                                            "title": "Creating a new option",
      -                                            "notePosition": 50,
      -                                            "prefix": null,
      -                                            "isExpanded": false,
      -                                            "type": "text",
      -                                            "mime": "text/html",
      -                                            "attributes": [],
      -                                            "format": "markdown",
      -                                            "dataFileName": "Creating a new option.md",
      -                                            "attachments": []
      -                                        }
      -                                    ]
      -                                },
      -                                {
      -                                    "isClone": false,
      -                                    "noteId": "AdNRgGrYeTCy",
      -                                    "notePath": [
      -                                        "jdjRLhLV3TtI",
      -                                        "ibAPHul7Efvr",
      -                                        "wbVIolLKDhe2",
      -                                        "AdNRgGrYeTCy"
      -                                    ],
      -                                    "title": "Adding a new note type",
      -                                    "notePosition": 210,
      -                                    "prefix": null,
      -                                    "isExpanded": false,
      -                                    "type": "text",
      -                                    "mime": "text/html",
      -                                    "attributes": [],
      -                                    "format": "markdown",
      -                                    "attachments": [],
      -                                    "dirFileName": "Adding a new note type",
      -                                    "children": [
      -                                        {
      -                                            "isClone": false,
      -                                            "noteId": "UFtOg3sLumZM",
      -                                            "notePath": [
      -                                                "jdjRLhLV3TtI",
      -                                                "ibAPHul7Efvr",
      -                                                "wbVIolLKDhe2",
      -                                                "AdNRgGrYeTCy",
      -                                                "UFtOg3sLumZM"
      -                                            ],
      -                                            "title": "First steps",
      -                                            "notePosition": 10,
      -                                            "prefix": null,
      -                                            "isExpanded": false,
      -                                            "type": "text",
      -                                            "mime": "text/html",
      -                                            "attributes": [
      -                                                {
      -                                                    "type": "relation",
      -                                                    "name": "internalLink",
      -                                                    "value": "lgFwLJT72mdf",
      -                                                    "isInheritable": false,
      -                                                    "position": 10
      -                                                },
      -                                                {
      -                                                    "type": "relation",
      -                                                    "name": "internalLink",
      -                                                    "value": "oLhKpfi2kGON",
      -                                                    "isInheritable": false,
      -                                                    "position": 20
      -                                                }
      -                                            ],
      -                                            "format": "markdown",
      -                                            "dataFileName": "First steps.md",
      -                                            "attachments": [],
      -                                            "dirFileName": "First steps",
      -                                            "children": [
      -                                                {
      -                                                    "isClone": false,
      -                                                    "noteId": "aSO1wqK7L1ma",
      -                                                    "notePath": [
      -                                                        "jdjRLhLV3TtI",
      -                                                        "ibAPHul7Efvr",
      -                                                        "wbVIolLKDhe2",
      -                                                        "AdNRgGrYeTCy",
      -                                                        "UFtOg3sLumZM",
      -                                                        "aSO1wqK7L1ma"
      -                                                    ],
      -                                                    "title": "mind_map.js",
      -                                                    "notePosition": 10,
      -                                                    "prefix": null,
      -                                                    "isExpanded": false,
      -                                                    "type": "code",
      -                                                    "mime": "application/javascript;env=frontend",
      -                                                    "attributes": [],
      -                                                    "dataFileName": "mind_map.js",
      -                                                    "attachments": []
      -                                                }
      -                                            ]
      -                                        },
      -                                        {
      -                                            "isClone": false,
      -                                            "noteId": "lgFwLJT72mdf",
      -                                            "notePath": [
      -                                                "jdjRLhLV3TtI",
      -                                                "ibAPHul7Efvr",
      -                                                "wbVIolLKDhe2",
      -                                                "AdNRgGrYeTCy",
      -                                                "lgFwLJT72mdf"
      -                                            ],
      -                                            "title": "Note type checklist",
      -                                            "notePosition": 20,
      -                                            "prefix": null,
      -                                            "isExpanded": false,
      -                                            "type": "text",
      -                                            "mime": "text/html",
      -                                            "attributes": [
      -                                                {
      -                                                    "type": "relation",
      -                                                    "name": "internalLink",
      -                                                    "value": "UFtOg3sLumZM",
      -                                                    "isInheritable": false,
      -                                                    "position": 10
      -                                                },
      -                                                {
      -                                                    "type": "relation",
      -                                                    "name": "internalLink",
      -                                                    "value": "OGYpAbrmEXbX",
      -                                                    "isInheritable": false,
      -                                                    "position": 20
      -                                                },
      -                                                {
      -                                                    "type": "label",
      -                                                    "name": "iconClass",
      -                                                    "value": "bx bx-list-check",
      -                                                    "isInheritable": false,
      -                                                    "position": 40
      -                                                }
      -                                            ],
      -                                            "format": "markdown",
      -                                            "dataFileName": "Note type checklist.md",
      -                                            "attachments": []
      -                                        },
      -                                        {
      -                                            "isClone": false,
      -                                            "noteId": "PoxUNujeKJ7T",
      -                                            "notePath": [
      -                                                "jdjRLhLV3TtI",
      -                                                "ibAPHul7Efvr",
      -                                                "wbVIolLKDhe2",
      -                                                "AdNRgGrYeTCy",
      -                                                "PoxUNujeKJ7T"
      -                                            ],
      -                                            "title": "Saving data via spaced update",
      -                                            "notePosition": 30,
      -                                            "prefix": null,
      -                                            "isExpanded": false,
      -                                            "type": "text",
      -                                            "mime": "text/html",
      -                                            "attributes": [
      -                                                {
      -                                                    "type": "relation",
      -                                                    "name": "internalLink",
      -                                                    "value": "OGYpAbrmEXbX",
      -                                                    "isInheritable": false,
      -                                                    "position": 10
      -                                                }
      -                                            ],
      -                                            "format": "markdown",
      -                                            "dataFileName": "Saving data via spaced update.md",
      -                                            "attachments": []
      -                                        },
      -                                        {
      -                                            "isClone": false,
      -                                            "noteId": "xYVE7qA3EBwb",
      -                                            "notePath": [
      -                                                "jdjRLhLV3TtI",
      -                                                "ibAPHul7Efvr",
      -                                                "wbVIolLKDhe2",
      -                                                "AdNRgGrYeTCy",
      -                                                "xYVE7qA3EBwb"
      -                                            ],
      -                                            "title": "Loading data",
      -                                            "notePosition": 40,
      -                                            "prefix": null,
      -                                            "isExpanded": false,
      -                                            "type": "text",
      -                                            "mime": "text/html",
      -                                            "attributes": [
      -                                                {
      -                                                    "type": "relation",
      -                                                    "name": "internalLink",
      -                                                    "value": "PoxUNujeKJ7T",
      -                                                    "isInheritable": false,
      -                                                    "position": 10
      -                                                }
      -                                            ],
      -                                            "format": "markdown",
      -                                            "dataFileName": "Loading data.md",
      -                                            "attachments": []
      -                                        },
      -                                        {
      -                                            "isClone": false,
      -                                            "noteId": "OGYpAbrmEXbX",
      -                                            "notePath": [
      -                                                "jdjRLhLV3TtI",
      -                                                "ibAPHul7Efvr",
      -                                                "wbVIolLKDhe2",
      -                                                "AdNRgGrYeTCy",
      -                                                "OGYpAbrmEXbX"
      -                                            ],
      -                                            "title": "SVG rendering",
      -                                            "notePosition": 50,
      -                                            "prefix": null,
      -                                            "isExpanded": false,
      -                                            "type": "text",
      -                                            "mime": "text/html",
      -                                            "attributes": [],
      -                                            "format": "markdown",
      -                                            "dataFileName": "SVG rendering.md",
      -                                            "attachments": []
      -                                        },
      -                                        {
      -                                            "isClone": false,
      -                                            "noteId": "Q8hgB8EEen80",
      -                                            "notePath": [
      -                                                "jdjRLhLV3TtI",
      -                                                "ibAPHul7Efvr",
      -                                                "wbVIolLKDhe2",
      -                                                "AdNRgGrYeTCy",
      -                                                "Q8hgB8EEen80"
      -                                            ],
      -                                            "title": "Copy image reference to the clipboard",
      -                                            "notePosition": 60,
      -                                            "prefix": null,
      -                                            "isExpanded": false,
      -                                            "type": "text",
      -                                            "mime": "text/html",
      -                                            "attributes": [],
      -                                            "format": "markdown",
      -                                            "dataFileName": "Copy image reference to the cl.md",
      -                                            "attachments": []
      -                                        },
      -                                        {
      -                                            "isClone": false,
      -                                            "noteId": "AwWq8bJRl6XD",
      -                                            "notePath": [
      -                                                "jdjRLhLV3TtI",
      -                                                "ibAPHul7Efvr",
      -                                                "wbVIolLKDhe2",
      -                                                "AdNRgGrYeTCy",
      -                                                "AwWq8bJRl6XD"
      -                                            ],
      -                                            "title": "Export diagram as SVG",
      -                                            "notePosition": 70,
      -                                            "prefix": null,
      -                                            "isExpanded": false,
      -                                            "type": "text",
      -                                            "mime": "text/html",
      -                                            "attributes": [
      -                                                {
      -                                                    "type": "relation",
      -                                                    "name": "internalLink",
      -                                                    "value": "OGYpAbrmEXbX",
      -                                                    "isInheritable": false,
      -                                                    "position": 10
      -                                                }
      -                                            ],
      -                                            "format": "markdown",
      -                                            "dataFileName": "Export diagram as SVG.md",
      -                                            "attachments": []
      -                                        }
      -                                    ]
      -                                },
      -                                {
      -                                    "isClone": false,
      -                                    "noteId": "W0msUwLxm40d",
      -                                    "notePath": [
      -                                        "jdjRLhLV3TtI",
      -                                        "ibAPHul7Efvr",
      -                                        "wbVIolLKDhe2",
      -                                        "W0msUwLxm40d"
      -                                    ],
      -                                    "title": "Printing",
      -                                    "notePosition": 220,
      -                                    "prefix": null,
      -                                    "isExpanded": false,
      -                                    "type": "text",
      -                                    "mime": "text/html",
      -                                    "attributes": [],
      -                                    "format": "markdown",
      -                                    "dataFileName": "Printing.md",
      -                                    "attachments": []
      -                                },
      -                                {
      -                                    "isClone": false,
      -                                    "noteId": "Usiyzn9C4WFv",
      -                                    "notePath": [
      -                                        "jdjRLhLV3TtI",
      -                                        "ibAPHul7Efvr",
      -                                        "wbVIolLKDhe2",
      -                                        "Usiyzn9C4WFv"
      -                                    ],
      -                                    "title": "Launchers",
      -                                    "notePosition": 230,
      -                                    "prefix": null,
      -                                    "isExpanded": false,
      -                                    "type": "text",
      -                                    "mime": "text/html",
      -                                    "attributes": [],
      -                                    "format": "markdown",
      -                                    "dataFileName": "Launchers.md",
      -                                    "attachments": []
      -                                },
      -                                {
      -                                    "isClone": false,
      -                                    "noteId": "k7RavjuXQt8z",
      -                                    "notePath": [
      -                                        "jdjRLhLV3TtI",
      -                                        "ibAPHul7Efvr",
      -                                        "wbVIolLKDhe2",
      -                                        "k7RavjuXQt8z"
      -                                    ],
      -                                    "title": "Syntax highlighting",
      -                                    "notePosition": 240,
      -                                    "prefix": null,
      -                                    "isExpanded": false,
      -                                    "type": "text",
      -                                    "mime": "text/html",
      -                                    "attributes": [],
      -                                    "format": "markdown",
      -                                    "dataFileName": "Syntax highlighting.md",
      -                                    "attachments": []
      -                                },
      -                                {
      -                                    "isClone": false,
      -                                    "noteId": "UzRirf46Xi46",
      -                                    "notePath": [
      -                                        "jdjRLhLV3TtI",
      -                                        "ibAPHul7Efvr",
      -                                        "wbVIolLKDhe2",
      -                                        "UzRirf46Xi46"
      -                                    ],
      -                                    "title": "Hidden notes",
      -                                    "notePosition": 250,
      -                                    "prefix": null,
      -                                    "isExpanded": false,
      -                                    "type": "text",
      -                                    "mime": "text/html",
      -                                    "attributes": [],
      -                                    "format": "markdown",
      -                                    "dataFileName": "Hidden notes.md",
      -                                    "attachments": []
      -                                }
      -                            ]
      -                        },
                               {
                                   "isClone": false,
                                   "noteId": "re0QTuqiYnVb",
      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
      new file mode 100644
      index 000000000..9268eed6e
      --- /dev/null
      +++ b/docs/Developer Guide/Developer Guide/Building and deployment/Nix flake.md	
      @@ -0,0 +1,76 @@
      +# Nix flake
      +Since TriliumNext 0.94.1, the desktop and server applications can be built using [Nix](https://nixos.org/).
      +
      +## System requirements
      +
      +Installation of Nix on Mac or Linux ([download page](https://nixos.org/download/)). About 3-4 gigabytes of additional storage space, for build artifacts.
      +
      +## 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`
      +
      +Running the server requires explicitly specifying the desired package: `nix run github:TriliumNext/Notes/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.
      +
      +## Install on NixOS
      +
      +Add to your `flake.nix`:
      +
      +```
      +{
      +  inputs = {
      +    nixpkgs.url = # ...;
      +    trilium-notes = {
      +      url = "github:TriliumNext/Notes/v0.95.0";
      +      inputs.nixpkgs.follows = "nixpkgs";
      +    };
      +  };
      +
      +  outputs =
      +    {
      +      self,
      +      # ...
      +      trilium-notes,
      +      ...
      +    }:
      +    {
      +      nixosConfigurations = {
      +        "nixos" = nixpkgs.lib.nixosSystem {
      +          system = "x86_64-linux";
      +          modules = [
      +            ./configuration.nix
      +          ];
      +          specialArgs = {
      +            inherit
      +              trilium-notes
      +              ;
      +          };
      +        };
      +      };
      +    };
      +}
      +
      +```
      +
      +Add to your `configuration.nix`:
      +
      +```
      +{
      +  # ...
      +  trilium-notes,
      +  ...
      +}:
      +
      +{
      +  # ...
      +
      +  services.trilium-server.package = trilium-notes.packages.x86_64-linux.server;
      +
      +  environment.systemPackages = [
      +    trilium-notes.packages.x86_64-linux.desktop
      +  ];
      +}
      +```
      +
      +The flake aims to be compatible with the latest NixOS stable and unstable.
      \ No newline at end of file
      diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Adding a new note type/Copy image reference to the cl.md b/docs/Developer Guide/Developer Guide/Development and architecture/Adding a new note type/Copy image reference to the cl.md
      similarity index 100%
      rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Adding a new note type/Copy image reference to the cl.md
      rename to docs/Developer Guide/Developer Guide/Development and architecture/Adding a new note type/Copy image reference to the cl.md
      diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Adding a new note type/Export diagram as SVG.md b/docs/Developer Guide/Developer Guide/Development and architecture/Adding a new note type/Export diagram as SVG.md
      similarity index 100%
      rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Adding a new note type/Export diagram as SVG.md
      rename to docs/Developer Guide/Developer Guide/Development and architecture/Adding a new note type/Export diagram as SVG.md
      diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Adding a new note type/First steps.md b/docs/Developer Guide/Developer Guide/Development and architecture/Adding a new note type/First steps.md
      similarity index 100%
      rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Adding a new note type/First steps.md
      rename to docs/Developer Guide/Developer Guide/Development and architecture/Adding a new note type/First steps.md
      diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Adding a new note type/First steps/mind_map.js b/docs/Developer Guide/Developer Guide/Development and architecture/Adding a new note type/First steps/mind_map.js
      similarity index 100%
      rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Adding a new note type/First steps/mind_map.js
      rename to docs/Developer Guide/Developer Guide/Development and architecture/Adding a new note type/First steps/mind_map.js
      diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Adding a new note type/Loading data.md b/docs/Developer Guide/Developer Guide/Development and architecture/Adding a new note type/Loading data.md
      similarity index 100%
      rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Adding a new note type/Loading data.md
      rename to docs/Developer Guide/Developer Guide/Development and architecture/Adding a new note type/Loading data.md
      diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Adding a new note type/Note type checklist.md b/docs/Developer Guide/Developer Guide/Development and architecture/Adding a new note type/Note type checklist.md
      similarity index 100%
      rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Adding a new note type/Note type checklist.md
      rename to docs/Developer Guide/Developer Guide/Development and architecture/Adding a new note type/Note type checklist.md
      diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Adding a new note type/SVG rendering.md b/docs/Developer Guide/Developer Guide/Development and architecture/Adding a new note type/SVG rendering.md
      similarity index 100%
      rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Adding a new note type/SVG rendering.md
      rename to docs/Developer Guide/Developer Guide/Development and architecture/Adding a new note type/SVG rendering.md
      diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Adding a new note type/Saving data via spaced update.md b/docs/Developer Guide/Developer Guide/Development and architecture/Adding a new note type/Saving data via spaced update.md
      similarity index 100%
      rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Adding a new note type/Saving data via spaced update.md
      rename to docs/Developer Guide/Developer Guide/Development and architecture/Adding a new note type/Saving data via spaced update.md
      diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Backlinks.md b/docs/Developer Guide/Developer Guide/Development and architecture/Backlinks.md
      similarity index 100%
      rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Backlinks.md
      rename to docs/Developer Guide/Developer Guide/Development and architecture/Backlinks.md
      diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Branch prefixes.md b/docs/Developer Guide/Developer Guide/Development and architecture/Branch prefixes.md
      similarity index 100%
      rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Branch prefixes.md
      rename to docs/Developer Guide/Developer Guide/Development and architecture/Branch prefixes.md
      diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Build information.md b/docs/Developer Guide/Developer Guide/Development and architecture/Build information.md
      similarity index 80%
      rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Build information.md
      rename to docs/Developer Guide/Developer Guide/Development and architecture/Build information.md
      index bdc3399fe..475d902f5 100644
      --- a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Build information.md	
      +++ b/docs/Developer Guide/Developer Guide/Development and architecture/Build information.md	
      @@ -1,4 +1,4 @@
       # Build information
       *   Provides context about when the build was made and the corresponding Git revision.
       *   The information is displayed to the client when going in the about dialog.
      -*   The build information is hard-coded in `src/services/build.ts`. This file is generated automatically via `npm run update-build-info` which itself is run automatically whenever making a build in the CI, or a [local delivery](../Build%20deliveries%20locally.md).
      \ No newline at end of file
      +*   The build information is hard-coded in `src/services/build.ts`. This file is generated automatically via `npm run update-build-info` which itself is run automatically whenever making a build in the CI, or a [local delivery](../Old%20documentation/Build%20deliveries%20locally.md).
      \ No newline at end of file
      diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Database/attachments.md b/docs/Developer Guide/Developer Guide/Development and architecture/Database/attachments.md
      similarity index 100%
      rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Database/attachments.md
      rename to docs/Developer Guide/Developer Guide/Development and architecture/Database/attachments.md
      diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Database/attributes.md b/docs/Developer Guide/Developer Guide/Development and architecture/Database/attributes.md
      similarity index 100%
      rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Database/attributes.md
      rename to docs/Developer Guide/Developer Guide/Development and architecture/Database/attributes.md
      diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Database/blobs.md b/docs/Developer Guide/Developer Guide/Development and architecture/Database/blobs.md
      similarity index 100%
      rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Database/blobs.md
      rename to docs/Developer Guide/Developer Guide/Development and architecture/Database/blobs.md
      diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Database/branches.md b/docs/Developer Guide/Developer Guide/Development and architecture/Database/branches.md
      similarity index 100%
      rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Database/branches.md
      rename to docs/Developer Guide/Developer Guide/Development and architecture/Database/branches.md
      diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Database/entity_changes.md b/docs/Developer Guide/Developer Guide/Development and architecture/Database/entity_changes.md
      similarity index 100%
      rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Database/entity_changes.md
      rename to docs/Developer Guide/Developer Guide/Development and architecture/Database/entity_changes.md
      diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Database/etapi_tokens.md b/docs/Developer Guide/Developer Guide/Development and architecture/Database/etapi_tokens.md
      similarity index 100%
      rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Database/etapi_tokens.md
      rename to docs/Developer Guide/Developer Guide/Development and architecture/Database/etapi_tokens.md
      diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Database/notes.md b/docs/Developer Guide/Developer Guide/Development and architecture/Database/notes.md
      similarity index 100%
      rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Database/notes.md
      rename to docs/Developer Guide/Developer Guide/Development and architecture/Database/notes.md
      diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Database/options.md b/docs/Developer Guide/Developer Guide/Development and architecture/Database/options.md
      similarity index 100%
      rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Database/options.md
      rename to docs/Developer Guide/Developer Guide/Development and architecture/Database/options.md
      diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Database/recent_notes.md b/docs/Developer Guide/Developer Guide/Development and architecture/Database/recent_notes.md
      similarity index 100%
      rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Database/recent_notes.md
      rename to docs/Developer Guide/Developer Guide/Development and architecture/Database/recent_notes.md
      diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Database/revisions.md b/docs/Developer Guide/Developer Guide/Development and architecture/Database/revisions.md
      similarity index 100%
      rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Database/revisions.md
      rename to docs/Developer Guide/Developer Guide/Development and architecture/Database/revisions.md
      diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Deleted notes.md b/docs/Developer Guide/Developer Guide/Development and architecture/Deleted notes.md
      similarity index 100%
      rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Deleted notes.md
      rename to docs/Developer Guide/Developer Guide/Development and architecture/Deleted notes.md
      diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Demo document.md b/docs/Developer Guide/Developer Guide/Development and architecture/Demo document.md
      similarity index 100%
      rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Demo document.md
      rename to docs/Developer Guide/Developer Guide/Development and architecture/Demo document.md
      diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Docker.md b/docs/Developer Guide/Developer Guide/Development and architecture/Docker.md
      similarity index 100%
      rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Docker.md
      rename to docs/Developer Guide/Developer Guide/Development and architecture/Docker.md
      diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Hidden notes.md b/docs/Developer Guide/Developer Guide/Development and architecture/Hidden notes.md
      similarity index 100%
      rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Hidden notes.md
      rename to docs/Developer Guide/Developer Guide/Development and architecture/Hidden notes.md
      diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons.md b/docs/Developer Guide/Developer Guide/Development and architecture/Icons.md
      similarity index 61%
      rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons.md
      rename to docs/Developer Guide/Developer Guide/Development and architecture/Icons.md
      index 4641a82d1..68d57f474 100644
      --- a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons.md	
      +++ b/docs/Developer Guide/Developer Guide/Development and architecture/Icons.md	
      @@ -17,7 +17,7 @@ These are stored in `images`:
       
       ## 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/Old documentation/Development and architecture/Icons/1_Icons on Mac_image.png b/docs/Developer Guide/Developer Guide/Development and architecture/Icons/1_Icons on Mac_image.png similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/1_Icons on Mac_image.png rename to docs/Developer Guide/Developer Guide/Development and architecture/Icons/1_Icons on Mac_image.png diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/Icons on Mac.md b/docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac.md similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/Icons on Mac.md rename to docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac.md diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/Icons on Mac/1_Adaptive icon_image.png b/docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/1_Adaptive icon_image.png similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/Icons on Mac/1_Adaptive icon_image.png rename to docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/1_Adaptive icon_image.png diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/Icons on Mac/1_Slightly blurry icon on Ma.png b/docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/1_Slightly blurry icon on Ma.png similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/Icons on Mac/1_Slightly blurry icon on Ma.png rename to docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/1_Slightly blurry icon on Ma.png diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/Icons on Mac/2_Adaptive icon_image.png b/docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/2_Adaptive icon_image.png similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/Icons on Mac/2_Adaptive icon_image.png rename to docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/2_Adaptive icon_image.png diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/Icons on Mac/2_Slightly blurry icon on Ma.png b/docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/2_Slightly blurry icon on Ma.png similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/Icons on Mac/2_Slightly blurry icon on Ma.png rename to docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/2_Slightly blurry icon on Ma.png diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/Icons on Mac/3_Adaptive icon_image.png b/docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/3_Adaptive icon_image.png similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/Icons on Mac/3_Adaptive icon_image.png rename to docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/3_Adaptive icon_image.png diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/Icons on Mac/4_Adaptive icon_image.png b/docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/4_Adaptive icon_image.png similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/Icons on Mac/4_Adaptive icon_image.png rename to docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/4_Adaptive icon_image.png diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/Icons on Mac/5_Adaptive icon_image.png b/docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/5_Adaptive icon_image.png similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/Icons on Mac/5_Adaptive icon_image.png rename to docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/5_Adaptive icon_image.png diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/Icons on Mac/6_Adaptive icon_image.png b/docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/6_Adaptive icon_image.png similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/Icons on Mac/6_Adaptive icon_image.png rename to docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/6_Adaptive icon_image.png diff --git a/docs/Developer Guide/Developer Guide/Old documentation/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 similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/Icons on Mac/Adaptive icon.md rename to docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/Adaptive icon.md diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/Icons on Mac/Adaptive icon_image.png b/docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/Adaptive icon_image.png similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/Icons on Mac/Adaptive icon_image.png rename to docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/Adaptive icon_image.png diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/Icons on Mac/Slightly blurry icon on Ma.png b/docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/Slightly blurry icon on Ma.png similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/Icons on Mac/Slightly blurry icon on Ma.png rename to docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/Slightly blurry icon on Ma.png diff --git a/docs/Developer Guide/Developer Guide/Old documentation/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 similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/Icons on Mac/Slightly blurry icon on Mac.md rename to docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac/Slightly blurry icon on Mac.md diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/Icons on Mac_image.png b/docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac_image.png similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/Icons on Mac_image.png rename to docs/Developer Guide/Developer Guide/Development and architecture/Icons/Icons on Mac_image.png diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/Removed icons.md b/docs/Developer Guide/Developer Guide/Development and architecture/Icons/Removed icons.md similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Icons/Removed icons.md rename to docs/Developer Guide/Developer Guide/Development and architecture/Icons/Removed icons.md diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Internationalisation Translat.md b/docs/Developer Guide/Developer Guide/Development and architecture/Internationalisation Translat.md similarity index 99% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Internationalisation Translat.md rename to docs/Developer Guide/Developer Guide/Development and architecture/Internationalisation Translat.md index 909309976..7ae59016f 100644 --- a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Internationalisation Translat.md +++ b/docs/Developer Guide/Developer Guide/Development and architecture/Internationalisation Translat.md @@ -18,7 +18,7 @@ The key-based approach allows a hierarchical structure. For example, a key of `a ```json { "about": { - "title": "About TriliumNext Notes" + "title": "About Trilium Notes" } } ``` diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Internationalisation Translations/Guidelines.md b/docs/Developer Guide/Developer Guide/Development and architecture/Internationalisation Translations/Guidelines.md similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Internationalisation Translations/Guidelines.md rename to docs/Developer Guide/Developer Guide/Development and architecture/Internationalisation Translations/Guidelines.md diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Internationalisation Translations/Server translations.md b/docs/Developer Guide/Developer Guide/Development and architecture/Internationalisation Translations/Server translations.md similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Internationalisation Translations/Server translations.md rename to docs/Developer Guide/Developer Guide/Development and architecture/Internationalisation Translations/Server translations.md diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Internationalisation Translations/i18n-ally.md b/docs/Developer Guide/Developer Guide/Development and architecture/Internationalisation Translations/i18n-ally.md similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Internationalisation Translations/i18n-ally.md rename to docs/Developer Guide/Developer Guide/Development and architecture/Internationalisation Translations/i18n-ally.md diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Launchers.md b/docs/Developer Guide/Developer Guide/Development and architecture/Launchers.md similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Launchers.md rename to docs/Developer Guide/Developer Guide/Development and architecture/Launchers.md diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Live reload.md b/docs/Developer Guide/Developer Guide/Development and architecture/Live reload.md similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Live reload.md rename to docs/Developer Guide/Developer Guide/Development and architecture/Live reload.md diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Note types.md b/docs/Developer Guide/Developer Guide/Development and architecture/Note types.md similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Note types.md rename to docs/Developer Guide/Developer Guide/Development and architecture/Note types.md diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Options.md b/docs/Developer Guide/Developer Guide/Development and architecture/Options.md similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Options.md rename to docs/Developer Guide/Developer Guide/Development and architecture/Options.md diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Options/Check box option.md b/docs/Developer Guide/Developer Guide/Development and architecture/Options/Check box option.md similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Options/Check box option.md rename to docs/Developer Guide/Developer Guide/Development and architecture/Options/Check box option.md diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Options/Creating a new option.md b/docs/Developer Guide/Developer Guide/Development and architecture/Options/Creating a new option.md similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Options/Creating a new option.md rename to docs/Developer Guide/Developer Guide/Development and architecture/Options/Creating a new option.md diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Options/Displaying the option in setti.md b/docs/Developer Guide/Developer Guide/Development and architecture/Options/Displaying the option in setti.md similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Options/Displaying the option in setti.md rename to docs/Developer Guide/Developer Guide/Development and architecture/Options/Displaying the option in setti.md diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Options/Refresh widget with option cha.md b/docs/Developer Guide/Developer Guide/Development and architecture/Options/Refresh widget with option cha.md similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Options/Refresh widget with option cha.md rename to docs/Developer Guide/Developer Guide/Development and architecture/Options/Refresh widget with option cha.md diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Options/Trigger UI refresh.md b/docs/Developer Guide/Developer Guide/Development and architecture/Options/Trigger UI refresh.md similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Options/Trigger UI refresh.md rename to docs/Developer Guide/Developer Guide/Development and architecture/Options/Trigger UI refresh.md diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Printing.md b/docs/Developer Guide/Developer Guide/Development and architecture/Printing.md similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Printing.md rename to docs/Developer Guide/Developer Guide/Development and architecture/Printing.md diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Protected entities.md b/docs/Developer Guide/Developer Guide/Development and architecture/Protected entities.md similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Protected entities.md rename to docs/Developer Guide/Developer Guide/Development and architecture/Protected entities.md diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Revisions.md b/docs/Developer Guide/Developer Guide/Development and architecture/Revisions.md similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Revisions.md rename to docs/Developer Guide/Developer Guide/Development and architecture/Revisions.md diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Safe mode.md b/docs/Developer Guide/Developer Guide/Development and architecture/Safe mode.md similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Safe mode.md rename to docs/Developer Guide/Developer Guide/Development and architecture/Safe mode.md diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Special notes.md b/docs/Developer Guide/Developer Guide/Development and architecture/Special notes.md similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Special notes.md rename to docs/Developer Guide/Developer Guide/Development and architecture/Special notes.md diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Synchronisation/Content hashing.md b/docs/Developer Guide/Developer Guide/Development and architecture/Synchronisation/Content hashing.md similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Synchronisation/Content hashing.md rename to docs/Developer Guide/Developer Guide/Development and architecture/Synchronisation/Content hashing.md diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Syntax highlighting.md b/docs/Developer Guide/Developer Guide/Development and architecture/Syntax highlighting.md similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Syntax highlighting.md rename to docs/Developer Guide/Developer Guide/Development and architecture/Syntax highlighting.md diff --git a/docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Themes.md b/docs/Developer Guide/Developer Guide/Development and architecture/Themes.md similarity index 100% rename from docs/Developer Guide/Developer Guide/Old documentation/Development and architecture/Themes.md rename to docs/Developer Guide/Developer Guide/Development and architecture/Themes.md 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 5ec7fd1e0..90a7740be 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 @@ -4,7 +4,7 @@ On Ubuntu: ``` #!/usr/bin/env bash -name=TriliumNextNotes-linux-x64-nightly.deb +name=TriliumNotes-linux-x64-nightly.deb rm -f $name* wget https://github.com/TriliumNext/Notes/releases/download/nightly/$name sudo apt-get install ./$name diff --git a/docs/README-ZH_CN.md b/docs/README-ZH_CN.md index 908f73145..e63f1da63 100644 --- a/docs/README-ZH_CN.md +++ b/docs/README-ZH_CN.md @@ -1,8 +1,8 @@ -# TriliumNext Notes +# Trilium Notes [English](../README.md) | [Chinese](./README-ZH_CN.md) | [Russian](./README.ru.md) | [Japanese](./README.ja.md) | [Italian](./README.it.md) | [Spanish](./README.es.md) -TriliumNext Notes 是一个层次化的笔记应用程序,专注于建立大型个人知识库。请参阅[屏幕截图](https://triliumnext.github.io/Docs/Wiki/screenshot-tour)以快速了解: +Trilium Notes 是一个层次化的笔记应用程序,专注于建立大型个人知识库。请参阅[屏幕截图](https://triliumnext.github.io/Docs/Wiki/screenshot-tour)以快速了解: Trilium Screenshot diff --git a/docs/README.es.md b/docs/README.es.md index bc958938d..2d49db9cc 100644 --- a/docs/README.es.md +++ b/docs/README.es.md @@ -1,8 +1,8 @@ -# TriliumNext Notes +# Trilium Notes [English](../README.md) | [Chinese](./README-ZH_CN.md) | [Russian](./README.ru.md) | [Japanese](./README.ja.md) | [Italian](./README.it.md) | [Spanish](./README.es.md) -TriliumNext Notes es una aplicación de toma de notas jerárquicas multi-plataforma y de código libre con un enfoque en la construcción de grandes bases de conocimiento personal. +Trilium Notes es una aplicación de toma de notas jerárquicas multi-plataforma y de código libre con un enfoque en la construcción de grandes bases de conocimiento personal. Vea estas [capturas de pantalla](https://triliumnext.github.io/Docs/Wiki/screenshot-tour) para un vistazo rápido: @@ -92,7 +92,7 @@ npm run server:start ## 👏 Reconocimientos - [CKEditor 5](https://github.com/ckeditor/ckeditor5) - el mejor editor WYSIWYG en el mercado, equipo muy interactivo y atento -- [FancyTree](https://github.com/mar10/fancytree) - biblioteca de árbol muy rica en funciones sin competencia real. TriliumNext Notes no sería lo mismo sin esta. +- [FancyTree](https://github.com/mar10/fancytree) - biblioteca de árbol muy rica en funciones sin competencia real. Trilium Notes no sería lo mismo sin esta. - [CodeMirror](https://github.com/codemirror/CodeMirror) - editor de código con soporte para una gran cantidad de lenguajes - [jsPlumb](https://github.com/jsplumb/jsplumb) - biblioteca de conectividad visual sin competencia. Usado en [mapas de relación](https://triliumnext.github.io/Docs/Wiki/Relation-map) y [mapas de enlace](https://triliumnext.github.io/Docs/Wiki/Link-map) diff --git a/docs/README.it.md b/docs/README.it.md index 17095c386..58c2806d7 100644 --- a/docs/README.it.md +++ b/docs/README.it.md @@ -1,8 +1,8 @@ -# TriliumNext Notes +# Trilium Notes [English](../README.md) | [Chinese](./README-ZH_CN.md) | [Russian](./README.ru.md) | [Japanese](./README.ja.md) | [Italian](./README.it.md) | [Spanish](./README.es.md) -TriliumNext Notes è un'applicazione per appunti ad organizzazione gerarchica, studiata per la costruzione di archivi di conoscenza personali di grandi dimensioni. +Trilium Notes è un'applicazione per appunti ad organizzazione gerarchica, studiata per la costruzione di archivi di conoscenza personali di grandi dimensioni. Vedi [fotografie](https://triliumnext.github.io/Docs/Wiki/screenshot-tour) per una panoramica veloce: diff --git a/docs/README.ja.md b/docs/README.ja.md index a00daf5b4..d1cb164b0 100644 --- a/docs/README.ja.md +++ b/docs/README.ja.md @@ -1,4 +1,4 @@ -# TriliumNext Notes +# Trilium Notes [English](../README.md) | [Chinese](./README-ZH_CN.md) | [Russian](./README.ru.md) | [Japanese](./README.ja.md) | [Italian](./README.it.md) | [Spanish](./README.es.md) diff --git a/docs/README.ru.md b/docs/README.ru.md index 9f310b163..ebf6240c5 100644 --- a/docs/README.ru.md +++ b/docs/README.ru.md @@ -1,4 +1,4 @@ -# TriliumNext Notes +# Trilium Notes [English](../README.md) | [Chinese](./README-ZH_CN.md) | [Russian](./README.ru.md) | [Japanese](./README.ja.md) | [Italian](./README.it.md) | [Spanish](./README.es.md) diff --git a/docs/Release Notes/!!!meta.json b/docs/Release Notes/!!!meta.json index 1c30ae90c..548a9de60 100644 --- a/docs/Release Notes/!!!meta.json +++ b/docs/Release Notes/!!!meta.json @@ -1,6 +1,6 @@ { "formatVersion": 2, - "appVersion": "0.94.0", + "appVersion": "0.96.0", "files": [ { "isClone": false, @@ -61,6 +61,58 @@ "attachments": [], "dirFileName": "Release Notes", "children": [ + { + "isClone": false, + "noteId": "mYXFde3LuNR7", + "notePath": [ + "hD3V4hiu2VW4", + "mYXFde3LuNR7" + ], + "title": "v0.96.0", + "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.96.0.md", + "attachments": [] + }, + { + "isClone": false, + "noteId": "jthwbL0FdaeU", + "notePath": [ + "hD3V4hiu2VW4", + "jthwbL0FdaeU" + ], + "title": "v0.95.0", + "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.95.0.md", + "attachments": [] + }, { "isClone": false, "noteId": "7HGYsJbLuhnv", @@ -69,7 +121,7 @@ "7HGYsJbLuhnv" ], "title": "v0.94.1", - "notePosition": 10, + "notePosition": 30, "prefix": null, "isExpanded": false, "type": "text", @@ -95,7 +147,7 @@ "Neq53ujRGBqv" ], "title": "v0.94.0", - "notePosition": 20, + "notePosition": 40, "prefix": null, "isExpanded": false, "type": "text", @@ -121,7 +173,7 @@ "VN3xnce1vLkX" ], "title": "v0.93.0", - "notePosition": 30, + "notePosition": 50, "prefix": null, "isExpanded": false, "type": "text", @@ -139,7 +191,7 @@ "WRaBfQqPr6qo" ], "title": "v0.92.7", - "notePosition": 40, + "notePosition": 60, "prefix": null, "isExpanded": false, "type": "text", @@ -165,7 +217,7 @@ "a2rwfKNmUFU1" ], "title": "v0.92.6", - "notePosition": 50, + "notePosition": 70, "prefix": null, "isExpanded": false, "type": "text", @@ -183,7 +235,7 @@ "fEJ8qErr0BKL" ], "title": "v0.92.5-beta", - "notePosition": 60, + "notePosition": 80, "prefix": null, "isExpanded": false, "type": "text", @@ -201,7 +253,7 @@ "kkkZQQGSXjwy" ], "title": "v0.92.4", - "notePosition": 70, + "notePosition": 90, "prefix": null, "isExpanded": false, "type": "text", @@ -219,7 +271,7 @@ "vAroNixiezaH" ], "title": "v0.92.3-beta", - "notePosition": 80, + "notePosition": 100, "prefix": null, "isExpanded": false, "type": "text", @@ -237,7 +289,7 @@ "mHEq1wxAKNZd" ], "title": "v0.92.2-beta", - "notePosition": 90, + "notePosition": 110, "prefix": null, "isExpanded": false, "type": "text", @@ -255,7 +307,7 @@ "IykjoAmBpc61" ], "title": "v0.92.1-beta", - "notePosition": 100, + "notePosition": 120, "prefix": null, "isExpanded": false, "type": "text", @@ -273,7 +325,7 @@ "dq2AJ9vSBX4Y" ], "title": "v0.92.0-beta", - "notePosition": 110, + "notePosition": 130, "prefix": null, "isExpanded": false, "type": "text", @@ -291,7 +343,7 @@ "3a8aMe4jz4yM" ], "title": "v0.91.6", - "notePosition": 120, + "notePosition": 140, "prefix": null, "isExpanded": false, "type": "text", @@ -309,7 +361,7 @@ "8djQjkiDGESe" ], "title": "v0.91.5", - "notePosition": 130, + "notePosition": 150, "prefix": null, "isExpanded": false, "type": "text", @@ -327,7 +379,7 @@ "OylxVoVJqNmr" ], "title": "v0.91.4-beta", - "notePosition": 140, + "notePosition": 160, "prefix": null, "isExpanded": false, "type": "text", @@ -345,7 +397,7 @@ "tANGQDvnyhrj" ], "title": "v0.91.3-beta", - "notePosition": 150, + "notePosition": 170, "prefix": null, "isExpanded": false, "type": "text", @@ -363,7 +415,7 @@ "hMoBfwSoj1SC" ], "title": "v0.91.2-beta", - "notePosition": 160, + "notePosition": 180, "prefix": null, "isExpanded": false, "type": "text", @@ -381,7 +433,7 @@ "a2XMSKROCl9z" ], "title": "v0.91.1-beta", - "notePosition": 170, + "notePosition": 190, "prefix": null, "isExpanded": false, "type": "text", @@ -399,7 +451,7 @@ "yqXFvWbLkuMD" ], "title": "v0.90.12", - "notePosition": 180, + "notePosition": 200, "prefix": null, "isExpanded": false, "type": "text", @@ -417,7 +469,7 @@ "veS7pg311yJP" ], "title": "v0.90.11-beta", - "notePosition": 190, + "notePosition": 210, "prefix": null, "isExpanded": false, "type": "text", @@ -435,7 +487,7 @@ "sq5W9TQxRqMq" ], "title": "v0.90.10-beta", - "notePosition": 200, + "notePosition": 220, "prefix": null, "isExpanded": false, "type": "text", @@ -453,7 +505,7 @@ "yFEGVCUM9tPx" ], "title": "v0.90.9-beta", - "notePosition": 210, + "notePosition": 230, "prefix": null, "isExpanded": false, "type": "text", @@ -471,7 +523,7 @@ "o4wAGqOQuJtV" ], "title": "v0.90.8", - "notePosition": 220, + "notePosition": 240, "prefix": null, "isExpanded": false, "type": "text", @@ -504,7 +556,7 @@ "i4A5g9iOg9I0" ], "title": "v0.90.7-beta", - "notePosition": 230, + "notePosition": 250, "prefix": null, "isExpanded": false, "type": "text", @@ -522,7 +574,7 @@ "ThNf2GaKgXUs" ], "title": "v0.90.6-beta", - "notePosition": 240, + "notePosition": 260, "prefix": null, "isExpanded": false, "type": "text", @@ -540,7 +592,7 @@ "G4PAi554kQUr" ], "title": "v0.90.5-beta", - "notePosition": 250, + "notePosition": 270, "prefix": null, "isExpanded": false, "type": "text", @@ -567,7 +619,7 @@ "zATRobGRCmBn" ], "title": "v0.90.4", - "notePosition": 260, + "notePosition": 280, "prefix": null, "isExpanded": false, "type": "text", @@ -585,7 +637,7 @@ "sCDLf8IKn3Iz" ], "title": "v0.90.3", - "notePosition": 270, + "notePosition": 290, "prefix": null, "isExpanded": false, "type": "text", @@ -603,7 +655,7 @@ "VqqyBu4AuTjC" ], "title": "v0.90.2-beta", - "notePosition": 280, + "notePosition": 300, "prefix": null, "isExpanded": false, "type": "text", @@ -621,7 +673,7 @@ "RX3Nl7wInLsA" ], "title": "v0.90.1-beta", - "notePosition": 290, + "notePosition": 310, "prefix": null, "isExpanded": false, "type": "text", @@ -639,7 +691,7 @@ "GyueACukPWjk" ], "title": "v0.90.0-beta", - "notePosition": 300, + "notePosition": 320, "prefix": null, "isExpanded": false, "type": "text", @@ -657,7 +709,7 @@ "wyurrlcDl416" ], "title": "Release Template", - "notePosition": 310, + "notePosition": 330, "prefix": null, "isExpanded": false, "type": "text", diff --git a/docs/Release Notes/Release Notes/v0.90.0-beta.md b/docs/Release Notes/Release Notes/v0.90.0-beta.md index a87ee7fc5..7a9f40160 100644 --- a/docs/Release Notes/Release Notes/v0.90.0-beta.md +++ b/docs/Release Notes/Release Notes/v0.90.0-beta.md @@ -13,14 +13,14 @@ For the first release of TriliumNext, we simply need to check if there are any r For the desktop application, simply download it from the releases page and extract it in a similar fashion to how the original Trilium Notes is installed. -Regarding data, please note that **TriliumNext Notes shares the same database as Trilium Notes.** A manual database backup is strongly encouraged: +Regarding data, please note that **Trilium Notes shares the same database as Trilium Notes.** A manual database backup is strongly encouraged: * On Windows, open Windows Explorer and type `%appdata%` in the address bar. Look for `trilium-data` and simply copy and paste it. * On Linux, the data directory is in `~/.local/share/trilium-data`. Generally your existing notes should be quite safe (there are no database migrations or API changes, only the consistency checks could have been impacted), haven't noticed any issues when testing. -Additionally, since the sync version has not changed either, you should be able to mix the client and the server between Trilium Notes and TriliumNext Notes. +Additionally, since the sync version has not changed either, you should be able to mix the client and the server between Trilium Notes and Trilium Notes. The server is also packaged and available in the release. For the Docker build, the Docker image is built automatically and is available on GitHub's Docker registry. diff --git a/docs/Release Notes/Release Notes/v0.90.3.md b/docs/Release Notes/Release Notes/v0.90.3.md index 1a93628fb..dc657432c 100644 --- a/docs/Release Notes/Release Notes/v0.90.3.md +++ b/docs/Release Notes/Release Notes/v0.90.3.md @@ -18,11 +18,11 @@ As a short overview of what's planned next from a user-facing point of view: There is no change in the database structure. -TriliumNext Notes can be run instead of the original Trilium Notes and it should work out of the box, since it will reuse the same database. +Trilium Notes can be run instead of the original Trilium Notes and it should work out of the box, since it will reuse the same database. It should also be possible to downgrade back to Trilium Notes if required, without any changes or loss of data. -Similarly goes for the server, it should work out of the box. It is possible to mix and match between Trilium Notes and TriliumNext Notes. +Similarly goes for the server, it should work out of the box. It is possible to mix and match between Trilium Notes and Trilium Notes. ## 🐞 How stable is the version diff --git a/docs/Release Notes/Release Notes/v0.90.5-beta.md b/docs/Release Notes/Release Notes/v0.90.5-beta.md index f11c58fde..44787678e 100644 --- a/docs/Release Notes/Release Notes/v0.90.5-beta.md +++ b/docs/Release Notes/Release Notes/v0.90.5-beta.md @@ -26,7 +26,7 @@ Note that the integration is still in its infancy, so there might be bugs and a The internal build tooling has been updated, resulting in the following changes: * For macOS users there is now a `.dmg` installation method as well. `@JYC333` - * There is also an ARM-native version for macOS that can be used, however it will require [additional steps to get it running](https://github.com/TriliumNext/Notes/issues/329) due to the lack of notarization (to bypass the “TriliumNext Notes.app” is damaged error). + * There is also an ARM-native version for macOS that can be used, however it will require [additional steps to get it running](https://github.com/TriliumNext/Notes/issues/329) due to the lack of notarization (to bypass the “Trilium Notes.app” is damaged error). * For both Windows and Linux we now have `amd64` builds as well. * Please note these versions are not being actively tested due to lack of equipment, so feel free to raise any issues you might be encountering. diff --git a/docs/Release Notes/Release Notes/v0.94.1.md b/docs/Release Notes/Release Notes/v0.94.1.md index 7a630ccab..5662cfedf 100644 --- a/docs/Release Notes/Release Notes/v0.94.1.md +++ b/docs/Release Notes/Release Notes/v0.94.1.md @@ -1,6 +1,6 @@ # v0.94.1 > [!NOTE] -> *TriliumNext Notes* will rebrand itself back to Trilium Notes since @zadam was kind enough to give us the original name. See [#2190](https://github.com/orgs/TriliumNext/discussions/2190) for more info. This will probably be the "last" version branded as *TriliumNext Notes*. +> _Trilium Notes_ will rebrand itself back to Trilium Notes since @zadam was kind enough to give us the original name. See [#2190](https://github.com/orgs/TriliumNext/discussions/2190) for more info. This will probably be the "last" version branded as Trilium Notes\_. > [!IMPORTANT] > If you enjoyed this release, consider showing a token of appreciation by: diff --git a/docs/Release Notes/Release Notes/v0.95.0.md b/docs/Release Notes/Release Notes/v0.95.0.md new file mode 100644 index 000000000..50f764ce8 --- /dev/null +++ b/docs/Release Notes/Release Notes/v0.95.0.md @@ -0,0 +1,61 @@ +# v0.95.0 +> [!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). + +> [!CAUTION] +> Sync version has been increased, so update of both the client and server are necessary. + +> [!IMPORTANT] +> For canvas notes, the “Mermaid to Excalidraw” feature is no longer functional for now since it relies on an old version of Mermaid diagrams. To avoid having a large library duplicated, we had to let go of this feature. If it's an important feature to you, let us know. + +## 💡 Key highlights + +* Improvements to the shared notes functionality: + * A new default theme was introduced called Trilium.Rocks (original development by @zerebos) and adapted to our project. New features from this theme include: search, collapsible tree, light/dark mode, mobile mobile. + * Basic syntax highlighting for code blocks has been added, but only if the language is explicitly specified. + * Note icons are now displayed in the share tree. + * Math equations are now rendered in text notes. + +## 🐞 Bugfixes + +* Text notes stability if the editor crashes: + * Data loss if the editor crashed while it was saving (causing an empty note) + * Blank screen if editor crashes more than once +* [Zen Mode: text formatting commands are missing from UI](https://github.com/TriliumNext/Notes/issues/1370) by @SiriusXT +* [Links: Unable to open notes in a new window](https://github.com/TriliumNext/Notes/pull/2243) by @SiriusXT +* [desktop syncing issues with the app](https://github.com/TriliumNext/Notes/issues/2268) +* LLM bugfixes by @perfectra1n: + * LLM could sometimes save the response in the wrong note + * [Llama3.1 doesn't work](https://github.com/TriliumNext/Notes/issues/2200) +* Text notes: + * [Selection gets incomplete when moving multiple lines up/down](https://github.com/TriliumNext/Notes/issues/2191) by @SiriusXT and @herrkami + * [Markdown import: restore focus after importing markdown](https://github.com/TriliumNext/Notes/pull/2304) by @SiriusXT + * [Ensure images opened in a new tab can be activated](https://github.com/TriliumNext/Notes/pull/2303) by @SiriusXT +* [Unexpected collapse after hoisting a note](https://github.com/TriliumNext/Notes/pull/2293) by @SiriusXT + +## ✨ Improvements + +* [Tab bar: ensure similar behavior between horizontal/vertical scrolling](https://github.com/TriliumNext/Notes/pull/2177) by @SiriusXT and @rom1dep +* [Two factor: support custom OIDC server](https://github.com/TriliumNext/Notes/pull/2198) by @koderx and @JYC333 +* LLM improvements by @perfectra1n  + * [Clarify experimental state](https://github.com/TriliumNext/Notes/pull/2217) + * [Simplify (remove embedding system) in order to improve its stability](https://github.com/TriliumNext/Notes/pull/2205) + * Simplify provider selection +* Text editor improvements + * [Relocate link icon in floating toolbar](https://github.com/TriliumNext/Notes/pull/2231) by @SiriusXT + * [Add text alignment options](https://github.com/TriliumNext/Notes/pull/2232) by @SiriusXT +* [Display a warning when using the the x86 build on ARM](https://github.com/TriliumNext/Notes/pull/2281) by @perfectra1n + +## 📖 Documentation + +* Clarify custom paths for non-root and improve nginx configuration by @hulmgulm +* Multi-factor authentication clarifications by @JYC333 + +## 🛠️ Technical updates + +* Express was updated to the newest major version (5). +* The canvas (Excalidraw) was refactored to use Preact instead of React. +* Desktop version: remove unnecessary locale information to save some space. \ No newline at end of file diff --git a/docs/Release Notes/Release Notes/v0.96.0.md b/docs/Release Notes/Release Notes/v0.96.0.md new file mode 100644 index 000000000..c0020ce6a --- /dev/null +++ b/docs/Release Notes/Release Notes/v0.96.0.md @@ -0,0 +1,50 @@ +# v0.96.0 +> [!NOTE] +> The Docker image has been relocated to `triliumnext/trilium`. Please update your configuration accordingly. + +> [!IMPORTANT] +> If you enjoyed this release, consider showing a token of appreciation by: +> +> * 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 + +* Thanks to a partnership with CKEditor, we now have a set of features that would otherwise be available on a commercial license only. + * Slash commands for easy commands via the keyboard. + * Text snippets to insert reusable pieces of text (similar to templates, but for blocks of text content). + * For more information, see the user guide → Note Types → Text → Premium features. + +## 🐞 Bugfixes + +* [“Insert note after” long-press dialog doesn’t create Note](https://github.com/TriliumNext/Notes/issues/2246) +* Code notes: user's font selection not respected. +* [Windows V0.95.0 Client Failed to sync with server (use of double-slashes)](https://github.com/TriliumNext/Notes/issues/2339) by @perfectra1n +* Desktop client not working on older Linux distros +* [NOT NULL constraint failed: revisions.title when saving an empty note](https://github.com/TriliumNext/Trilium/issues/6103) + +## ✨ Improvements + +* [Elixir language syntax highlighting for text notes](https://github.com/TriliumNext/Notes/pull/2327) (by @jshprentz) and code notes. +* [Autocomplete: support specifying path when creating a new note](https://github.com/TriliumNext/Notes/pull/2342) by @SiriusXT +* Markdown import: basic support for importing wikilinks +* Text notes: + * Allow disabling emoji auto-completion from settings. + * Allow disabling note auto-completion from settings. +* [Backend scripts: re-enable dayjs plugins by default](https://github.com/TriliumNext/Trilium/issues/6080) + +## 📖 Documentation + +* [regex search / Nix flake / restore dev docs](https://github.com/TriliumNext/Notes/pull/2341) by @FliegendeWurst +* New premium features in text note type. + +## 🌍 Internationalization + +* Spanish improvements by @hasecilu + +## 🛠️ Technical updates + +* flake: fix Electron version, fix Wayland support, fix source filter by @FliegendeWurst +* Improvements to the landing page (under development) by @FliegendeWurst +* Updated Node.js to v22.17.0 +* Updated CKEditor to v45.2.1 \ No newline at end of file diff --git a/docs/Script API/index.html b/docs/Script API/index.html index a4b2a08b7..e6968fd9a 100644 --- a/docs/Script API/index.html +++ b/docs/Script API/index.html @@ -1,6 +1,6 @@ -trilium
      trilium
        Preparing search index...

        trilium

        TriliumNext Notes

        GitHub Sponsors Docker Pulls GitHub Downloads (all assets, all releases)

        +trilium
        trilium
          Preparing search index...

          trilium

          Trilium Notes

          GitHub Sponsors Docker Pulls GitHub Downloads (all assets, all releases)

          English | Chinese | Russian | Japanese | Italian | Spanish

          -

          TriliumNext Notes is an open-source, cross-platform hierarchical note taking application with focus on building large personal knowledge bases.

          +

          Trilium Notes is an open-source, cross-platform hierarchical note taking application with focus on building large personal knowledge bases.

          See screenshots for quick overview:

          Trilium Screenshot

          The original Trilium project is in maintenance mode

          @@ -58,7 +58,7 @@

        Currently when running TriliumNext/Notes on MacOS, you may get the following error:

        -

        Apple could not verify "TriliumNext Notes" is free of malware and may harm your Mac or compromise your privacy.

        +

        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):

        xattr -c "/path/to/Trilium Next.app"
        @@ -77,7 +77,7 @@
         

        See the documentation guide for details.

        • CKEditor 5 - best WYSIWYG editor on the market, very interactive and listening team
        • -
        • FancyTree - very feature rich tree library without real competition. TriliumNext Notes would not be the same without it.
        • +
        • FancyTree - very feature rich tree library without real competition. Trilium Notes would not be the same without it.
        • CodeMirror - code editor with support for huge amount of languages
        • jsPlumb - visual connectivity library without competition. Used in relation maps and link maps
        diff --git a/docs/Script API/media/README-ZH_CN.md b/docs/Script API/media/README-ZH_CN.md index 1f6bbaf55..0fb87daa8 100644 --- a/docs/Script API/media/README-ZH_CN.md +++ b/docs/Script API/media/README-ZH_CN.md @@ -1,8 +1,8 @@ -# TriliumNext Notes +# Trilium Notes [English](./README.md) | [Chinese](./README-ZH_CN.md) | [Russian](./README.ru.md) | [Japanese](./README.ja.md) | [Italian](./README.it.md) | [Spanish](./README.es.md) -TriliumNext Notes 是一个层次化的笔记应用程序,专注于建立大型个人知识库。请参阅[屏幕截图](https://triliumnext.github.io/Docs/Wiki/screenshot-tour)以快速了解: +Trilium Notes 是一个层次化的笔记应用程序,专注于建立大型个人知识库。请参阅[屏幕截图](https://triliumnext.github.io/Docs/Wiki/screenshot-tour)以快速了解: Trilium Screenshot diff --git a/docs/Script API/media/README.es.md b/docs/Script API/media/README.es.md index bfa57fe45..d57d65695 100644 --- a/docs/Script API/media/README.es.md +++ b/docs/Script API/media/README.es.md @@ -1,8 +1,8 @@ -# TriliumNext Notes +# Trilium Notes [English](./README.md) | [Chinese](./README-ZH_CN.md) | [Russian](./README.ru.md) | [Japanese](./README.ja.md) | [Italian](./README.it.md) | [Spanish](./README.es.md) -TriliumNext Notes es una aplicación de toma de notas jerárquicas multi-plataforma y de código libre con un enfoque en la construcción de grandes bases de conocimiento personal. +Trilium Notes es una aplicación de toma de notas jerárquicas multi-plataforma y de código libre con un enfoque en la construcción de grandes bases de conocimiento personal. Vea estas [capturas de pantalla](https://triliumnext.github.io/Docs/Wiki/screenshot-tour) para un vistazo rápido: @@ -92,7 +92,7 @@ npm run server:start ## 👏 Reconocimientos - [CKEditor 5](https://github.com/ckeditor/ckeditor5) - el mejor editor WYSIWYG en el mercado, equipo muy interactivo y atento -- [FancyTree](https://github.com/mar10/fancytree) - biblioteca de árbol muy rica en funciones sin competencia real. TriliumNext Notes no sería lo mismo sin esta. +- [FancyTree](https://github.com/mar10/fancytree) - biblioteca de árbol muy rica en funciones sin competencia real. Trilium Notes no sería lo mismo sin esta. - [CodeMirror](https://github.com/codemirror/CodeMirror) - editor de código con soporte para una gran cantidad de lenguajes - [jsPlumb](https://github.com/jsplumb/jsplumb) - biblioteca de conectividad visual sin competencia. Usado en [mapas de relación](https://triliumnext.github.io/Docs/Wiki/Relation-map) y [mapas de enlace](https://triliumnext.github.io/Docs/Wiki/Link-map) diff --git a/docs/Script API/media/README.it.md b/docs/Script API/media/README.it.md index 750027c1a..1c0bf9911 100644 --- a/docs/Script API/media/README.it.md +++ b/docs/Script API/media/README.it.md @@ -1,8 +1,8 @@ -# TriliumNext Notes +# Trilium Notes [English](./README.md) | [Chinese](./README-ZH_CN.md) | [Russian](./README.ru.md) | [Japanese](./README.ja.md) | [Italian](./README.it.md) | [Spanish](./README.es.md) -TriliumNext Notes è un'applicazione per appunti ad organizzazione gerarchica, studiata per la costruzione di archivi di conoscenza personali di grandi dimensioni. +Trilium Notes è un'applicazione per appunti ad organizzazione gerarchica, studiata per la costruzione di archivi di conoscenza personali di grandi dimensioni. Vedi [fotografie](https://triliumnext.github.io/Docs/Wiki/screenshot-tour) per una panoramica veloce: diff --git a/docs/Script API/media/README.ja.md b/docs/Script API/media/README.ja.md index 757638770..e16234dbd 100644 --- a/docs/Script API/media/README.ja.md +++ b/docs/Script API/media/README.ja.md @@ -1,4 +1,4 @@ -# TriliumNext Notes +# Trilium Notes [English](./README.md) | [Chinese](./README-ZH_CN.md) | [Russian](./README.ru.md) | [Japanese](./README.ja.md) | [Italian](./README.it.md) | [Spanish](./README.es.md) diff --git a/docs/Script API/media/README.md b/docs/Script API/media/README.md index 30f4dc124..a32ea2ba2 100644 --- a/docs/Script API/media/README.md +++ b/docs/Script API/media/README.md @@ -1,10 +1,10 @@ -# TriliumNext Notes +# 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) [English](./README.md) | [Chinese](./README-ZH_CN.md) | [Russian](./README.ru.md) | [Japanese](./README.ja.md) | [Italian](./README.it.md) | [Spanish](./README.es.md) -TriliumNext Notes is an open-source, cross-platform hierarchical note taking application with focus on building large personal knowledge bases. +Trilium Notes is an open-source, cross-platform hierarchical note taking application with focus on building large personal knowledge bases. See [screenshots](https://triliumnext.github.io/Docs/Wiki/screenshot-tour) for quick overview: @@ -70,7 +70,7 @@ To use TriliumNext on your desktop machine (Linux, MacOS, and Windows) you have #### MacOS Currently when running TriliumNext/Notes on MacOS, you may get the following error: -> Apple could not verify "TriliumNext Notes" is free of malware and may harm your Mac or compromise your privacy. +> 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)): @@ -116,7 +116,7 @@ See the [documentation guide](https://github.com/TriliumNext/Notes/blob/develop/ ## 👏 Shoutouts * [CKEditor 5](https://github.com/ckeditor/ckeditor5) - best WYSIWYG editor on the market, very interactive and listening team -* [FancyTree](https://github.com/mar10/fancytree) - very feature rich tree library without real competition. TriliumNext Notes would not be the same without it. +* [FancyTree](https://github.com/mar10/fancytree) - very feature rich tree library without real competition. Trilium Notes would not be the same without it. * [CodeMirror](https://github.com/codemirror/CodeMirror) - code editor with support for huge amount of languages * [jsPlumb](https://github.com/jsplumb/jsplumb) - visual connectivity library without competition. Used in [relation maps](https://triliumnext.github.io/Docs/Wiki/relation-map.html) and [link maps](https://triliumnext.github.io/Docs/Wiki/note-map.html#link-map) diff --git a/docs/Script API/media/README.ru.md b/docs/Script API/media/README.ru.md index e2336efb3..03a319313 100644 --- a/docs/Script API/media/README.ru.md +++ b/docs/Script API/media/README.ru.md @@ -1,4 +1,4 @@ -# TriliumNext Notes +# Trilium Notes [English](./README.md) | [Chinese](./README-ZH_CN.md) | [Russian](./README.ru.md) | [Japanese](./README.ja.md) | [Italian](./README.it.md) | [Spanish](./README.es.md) diff --git a/docs/User Guide/!!!meta.json b/docs/User Guide/!!!meta.json index 82f5f1f1e..35ab128cb 100644 --- a/docs/User Guide/!!!meta.json +++ b/docs/User Guide/!!!meta.json @@ -1,6 +1,6 @@ { "formatVersion": 2, - "appVersion": "0.94.0", + "appVersion": "0.96.0", "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": "2FvYrpmOXm29", + "isInheritable": false, + "position": 10 + }, + { + "type": "relation", + "name": "internalLink", + "value": "ZjLYv08Rp3qC", + "isInheritable": false, + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "R9pX4DGra2Vt", + "isInheritable": false, + "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "LMAv4Uy3Wk6J", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "NRnIZmSMc5sj", + "isInheritable": false, + "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "rC3pL2aptaRE", + "isInheritable": false, + "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "xWbu3jpNWapp", + "isInheritable": false, + "position": 70 + }, + { + "type": "relation", + "name": "internalLink", + "value": "81SGnPGMk7Xc", + "isInheritable": false, + "position": 80 + }, + { + "type": "relation", + "name": "internalLink", + "value": "GTwFsgaA0lCt", + "isInheritable": false, + "position": 90 + }, + { + "type": "relation", + "name": "internalLink", + "value": "iPIMuisry3hd", + "isInheritable": false, + "position": 100 + }, + { + "type": "relation", + "name": "internalLink", + "value": "ZlN4nump6EbW", + "isInheritable": false, + "position": 110 + }, + { + "type": "relation", + "name": "internalLink", + "value": "pwc194wlRzcH", + "isInheritable": false, + "position": 120 + }, + { + "type": "relation", + "name": "internalLink", + "value": "7DAiwaf8Z7Rz", + "isInheritable": false, + "position": 130 + }, + { + "type": "relation", + "name": "internalLink", + "value": "veGu4faJErEM", + "isInheritable": false, + "position": 140 + }, + { + "type": "relation", + "name": "internalLink", + "value": "AgjCISero73a", + "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", @@ -189,23 +327,23 @@ { "type": "relation", "name": "internalLink", - "value": "fDLvzOx29Pfg", + "value": "0hzsNCP31IAB", "isInheritable": false, "position": 120 }, + { + "type": "relation", + "name": "internalLink", + "value": "fDLvzOx29Pfg", + "isInheritable": false, + "position": 130 + }, { "type": "label", "name": "shareAlias", "value": "server-installation", "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "0hzsNCP31IAB", - "isInheritable": false, - "position": 130 + "position": 10 } ], "format": "markdown", @@ -269,14 +407,14 @@ "name": "shareAlias", "value": "packaged-server-installation", "isInheritable": false, - "position": 20 + "position": 10 }, { "type": "label", "name": "iconClass", "value": "bx bxl-tux", "isInheritable": false, - "position": 30 + "position": 20 } ], "format": "markdown", @@ -674,32 +812,32 @@ "mime": "text/html", "attributes": [ { - "type": "label", - "name": "iconClass", - "value": "bx bx-lock-alt", + "type": "relation", + "name": "internalLink", + "value": "wX4HbRucYSDD", "isInheritable": false, "position": 10 }, { "type": "relation", "name": "internalLink", - "value": "7DAiwaf8Z7Rz", + "value": "YKWqdJhzi2VY", "isInheritable": false, "position": 20 }, { "type": "relation", "name": "internalLink", - "value": "wX4HbRucYSDD", + "value": "7DAiwaf8Z7Rz", "isInheritable": false, "position": 30 }, { - "type": "relation", - "name": "internalLink", - "value": "YKWqdJhzi2VY", + "type": "label", + "name": "iconClass", + "value": "bx bx-lock-alt", "isInheritable": false, - "position": 40 + "position": 10 } ], "format": "markdown", @@ -736,19 +874,12 @@ "isInheritable": false, "position": 10 }, - { - "type": "label", - "name": "shareHiddenFromTree", - "value": "", - "isInheritable": false, - "position": 20 - }, { "type": "label", "name": "iconClass", "value": "bx bx-stopwatch", "isInheritable": false, - "position": 30 + "position": 20 } ], "format": "markdown", @@ -1151,7 +1282,7 @@ "gh7bpGYxajRS" ], "title": "Basic Concepts and Features", - "notePosition": 30, + "notePosition": 40, "prefix": null, "isExpanded": false, "type": "text", @@ -1389,6 +1520,13 @@ "isInheritable": false, "position": 30 }, + { + "type": "relation", + "name": "internalLink", + "value": "DvdZhoQZY9Yd", + "isInheritable": false, + "position": 40 + }, { "type": "label", "name": "shareAlias", @@ -1596,7 +1734,7 @@ "dataFileName": "Note tree contextual menu.md", "attachments": [ { - "attachmentId": "8DX1hysz3JRh", + "attachmentId": "5mFOLdHBuKYa", "title": "image.png", "role": "image", "mime": "image/png", @@ -1604,7 +1742,7 @@ "dataFileName": "Note tree contextual menu_.png" }, { - "attachmentId": "GQv4tBf9VSON", + "attachmentId": "E3x5TRRe2pvx", "title": "image.png", "role": "image", "mime": "image/png", @@ -1657,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": [] } ] }, @@ -2483,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": "81SGnPGMk7Xc", + "isInheritable": false, + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "xWbu3jpNWapp", + "isInheritable": false, + "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "2FvYrpmOXm29", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "Cq5X6iKQop6R", + "isInheritable": false, + "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "hrZ1D00cLbal", + "isInheritable": false, + "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "iPIMuisry3hd", + "isInheritable": false, + "position": 70 + }, + { + "type": "relation", + "name": "internalLink", + "value": "GTwFsgaA0lCt", + "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" + } + ] } ] }, @@ -3132,45 +3442,52 @@ { "type": "relation", "name": "internalLink", - "value": "iPIMuisry3hd", + "value": "81SGnPGMk7Xc", "isInheritable": false, "position": 20 }, { "type": "relation", "name": "internalLink", - "value": "6f9hih2hXXZk", + "value": "iPIMuisry3hd", "isInheritable": false, "position": 30 }, { "type": "relation", "name": "internalLink", - "value": "4TIF1oA4VQRO", + "value": "6f9hih2hXXZk", "isInheritable": false, "position": 40 }, { "type": "relation", "name": "internalLink", - "value": "BlN9DFI679QC", + "value": "4TIF1oA4VQRO", "isInheritable": false, "position": 50 }, { "type": "relation", "name": "internalLink", - "value": "XpOYSgsLkTJy", + "value": "BlN9DFI679QC", "isInheritable": false, "position": 60 }, { "type": "relation", "name": "internalLink", - "value": "s1aBHPd79XYj", + "value": "XpOYSgsLkTJy", "isInheritable": false, "position": 70 }, + { + "type": "relation", + "name": "internalLink", + "value": "s1aBHPd79XYj", + "isInheritable": false, + "position": 80 + }, { "type": "label", "name": "shareAlias", @@ -3236,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", @@ -3276,28 +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", @@ -3319,6 +3592,20 @@ "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", @@ -3427,6 +3714,443 @@ "dataFileName": "11_Calendar View_image.png" } ] + }, + { + "isClone": false, + "noteId": "2FvYrpmOXm29", + "notePath": [ + "pOsGYCXsbNQG", + "gh7bpGYxajRS", + "BFs8mudNFgCS", + "0ESUbbAxVnoK", + "2FvYrpmOXm29" + ], + "title": "Table View", + "notePosition": 20, + "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": "eIg8jdvaoNNd", + "isInheritable": false, + "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "oPVyFC7WL2Lp", + "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": "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": "81SGnPGMk7Xc", + "notePath": [ + "pOsGYCXsbNQG", + "gh7bpGYxajRS", + "BFs8mudNFgCS", + "0ESUbbAxVnoK", + "81SGnPGMk7Xc" + ], + "title": "Geo Map View", + "notePosition": 40, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "0ESUbbAxVnoK", + "isInheritable": false, + "position": 10 + }, + { + "type": "relation", + "name": "internalLink", + "value": "IakOLONlIfGI", + "isInheritable": false, + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "ZjLYv08Rp3qC", + "isInheritable": false, + "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "KSZ04uQ2D1St", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "XpOYSgsLkTJy", + "isInheritable": false, + "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "oPVyFC7WL2Lp", + "isInheritable": false, + "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "lgKX7r3aL30x", + "isInheritable": false, + "position": 70 + }, + { + "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", + "gh7bpGYxajRS", + "BFs8mudNFgCS", + "0ESUbbAxVnoK", + "8QqnMzx393bx" + ], + "title": "Grid View", + "notePosition": 50, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "0ESUbbAxVnoK", + "isInheritable": false, + "position": 10 + }, + { + "type": "relation", + "name": "internalLink", + "value": "iPIMuisry3hd", + "isInheritable": false, + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "6f9hih2hXXZk", + "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", + "gh7bpGYxajRS", + "BFs8mudNFgCS", + "0ESUbbAxVnoK", + "mULW0Q3VojwY" + ], + "title": "List View", + "notePosition": 60, + "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" + } + ] } ] } @@ -3936,6 +4660,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", @@ -4360,7 +5100,7 @@ { "type": "relation", "name": "internalLink", - "value": "NwBbFdNZ9h7O", + "value": "rJ9grSgoExl9", "isInheritable": false, "position": 10 }, @@ -4414,6 +5154,38 @@ "position": 10, "dataFileName": "Markdown_markdown-inline-i.gif" } + ], + "dirFileName": "Markdown", + "children": [ + { + "isClone": false, + "noteId": "rJ9grSgoExl9", + "notePath": [ + "pOsGYCXsbNQG", + "gh7bpGYxajRS", + "mHbBMPDPkVV5", + "Oau6X9rCuegd", + "rJ9grSgoExl9" + ], + "title": "Supported syntax", + "notePosition": 10, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "label", + "name": "iconClass", + "value": "bx bx-code-alt", + "isInheritable": false, + "position": 10 + } + ], + "format": "markdown", + "dataFileName": "Supported syntax.md", + "attachments": [] + } ] }, { @@ -4544,7 +5316,7 @@ "s3YCWHBfmYuM" ], "title": "Quick Start", - "notePosition": 50, + "notePosition": 60, "prefix": null, "isExpanded": false, "type": "text", @@ -4605,7 +5377,7 @@ "i6dbnitykE5D" ], "title": "FAQ", - "notePosition": 60, + "notePosition": 70, "prefix": null, "isExpanded": false, "type": "text", @@ -4694,7 +5466,7 @@ "KSZ04uQ2D1St" ], "title": "Note Types", - "notePosition": 120, + "notePosition": 130, "prefix": null, "isExpanded": false, "type": "text", @@ -4964,31 +5736,52 @@ { "type": "relation", "name": "internalLink", - "value": "CoFPLs3dRlXc", + "value": "gLt3vA97tMcp", "isInheritable": false, "position": 150 }, { "type": "relation", "name": "internalLink", - "value": "A9Oc6YKKc65v", + "value": "ZlN4nump6EbW", "isInheritable": false, "position": 160 }, { "type": "relation", "name": "internalLink", - "value": "QrtTYPmdd1qq", + "value": "KC1HB96bqqHX", "isInheritable": false, "position": 170 }, { "type": "relation", "name": "internalLink", - "value": "MI26XDLSAlCD", + "value": "CoFPLs3dRlXc", "isInheritable": false, "position": 180 }, + { + "type": "relation", + "name": "internalLink", + "value": "A9Oc6YKKc65v", + "isInheritable": false, + "position": 190 + }, + { + "type": "relation", + "name": "internalLink", + "value": "QrtTYPmdd1qq", + "isInheritable": false, + "position": 200 + }, + { + "type": "relation", + "name": "internalLink", + "value": "MI26XDLSAlCD", + "isInheritable": false, + "position": 210 + }, { "type": "label", "name": "shareAlias", @@ -5067,10 +5860,17 @@ { "type": "relation", "name": "internalLink", - "value": "nRhnJkTT8cPs", + "value": "rJ9grSgoExl9", "isInheritable": false, "position": 10 }, + { + "type": "relation", + "name": "internalLink", + "value": "nRhnJkTT8cPs", + "isInheritable": false, + "position": 20 + }, { "type": "label", "name": "iconClass", @@ -6242,24 +7042,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", @@ -6277,38 +7084,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" + } + ] } ] }, @@ -6699,6 +7582,233 @@ } ] }, + { + "isClone": false, + "noteId": "gLt3vA97tMcp", + "notePath": [ + "pOsGYCXsbNQG", + "KSZ04uQ2D1St", + "iPIMuisry3hd", + "gLt3vA97tMcp" + ], + "title": "Premium features", + "notePosition": 190, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "iPIMuisry3hd", + "isInheritable": false, + "position": 10 + }, + { + "type": "relation", + "name": "internalLink", + "value": "wy8So3yZZlH9", + "isInheritable": false, + "position": 20 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bx-star", + "isInheritable": false, + "position": 10 + } + ], + "format": "markdown", + "dataFileName": "Premium features.md", + "attachments": [], + "dirFileName": "Premium features", + "children": [ + { + "isClone": false, + "noteId": "ZlN4nump6EbW", + "notePath": [ + "pOsGYCXsbNQG", + "KSZ04uQ2D1St", + "iPIMuisry3hd", + "gLt3vA97tMcp", + "ZlN4nump6EbW" + ], + "title": "Slash Commands", + "notePosition": 10, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "gLt3vA97tMcp", + "isInheritable": false, + "position": 10 + }, + { + "type": "relation", + "name": "internalLink", + "value": "iPIMuisry3hd", + "isInheritable": false, + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "A9Oc6YKKc65v", + "isInheritable": false, + "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "NwBbFdNZ9h7O", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "pwc194wlRzcH", + "isInheritable": false, + "position": 50 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bx-menu", + "isInheritable": false, + "position": 10 + } + ], + "format": "markdown", + "dataFileName": "Slash Commands.md", + "attachments": [ + { + "attachmentId": "WUCwfWz4wTwf", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "Slash Commands_image.png" + } + ] + }, + { + "isClone": false, + "noteId": "pwc194wlRzcH", + "notePath": [ + "pOsGYCXsbNQG", + "KSZ04uQ2D1St", + "iPIMuisry3hd", + "gLt3vA97tMcp", + "pwc194wlRzcH" + ], + "title": "Text Snippets", + "notePosition": 20, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "gLt3vA97tMcp", + "isInheritable": false, + "position": 10 + }, + { + "type": "relation", + "name": "internalLink", + "value": "KC1HB96bqqHX", + "isInheritable": false, + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "oPVyFC7WL2Lp", + "isInheritable": false, + "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "OFXdgB2nNk1F", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "nRhnJkTT8cPs", + "isInheritable": false, + "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "ZlN4nump6EbW", + "isInheritable": false, + "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "9sRHySam5fXb", + "isInheritable": false, + "position": 70 + }, + { + "type": "relation", + "name": "internalLink", + "value": "s8alTXmpFR61", + "isInheritable": false, + "position": 80 + }, + { + "type": "relation", + "name": "internalLink", + "value": "wy8So3yZZlH9", + "isInheritable": false, + "position": 90 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bx-align-left", + "isInheritable": false, + "position": 10 + } + ], + "format": "markdown", + "dataFileName": "Text Snippets.md", + "attachments": [ + { + "attachmentId": "1hG8Yw0DTTxr", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "Text Snippets_image.png" + }, + { + "attachmentId": "DlisV0iJLVec", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "1_Text Snippets_image.png" + } + ] + } + ] + }, { "isClone": false, "noteId": "BFvAtE74rbP6", @@ -6709,7 +7819,7 @@ "BFvAtE74rbP6" ], "title": "Table of contents", - "notePosition": 190, + "notePosition": 200, "prefix": null, "isExpanded": false, "type": "text", @@ -6767,7 +7877,7 @@ "NdowYOC1GFKS" ], "title": "Tables", - "notePosition": 200, + "notePosition": 210, "prefix": null, "isExpanded": false, "type": "text", @@ -7280,7 +8390,7 @@ "KSZ04uQ2D1St", "GTwFsgaA0lCt" ], - "title": "Book", + "title": "Collections", "notePosition": 130, "prefix": null, "isExpanded": false, @@ -7290,7 +8400,7 @@ { "type": "relation", "name": "internalLink", - "value": "BFs8mudNFgCS", + "value": "8QqnMzx393bx", "isInheritable": false, "position": 10 }, @@ -7304,10 +8414,66 @@ { "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": "BlN9DFI679QC", + "isInheritable": false, + "position": 80 + }, + { + "type": "relation", + "name": "internalLink", + "value": "m523cpzocqaD", + "isInheritable": false, + "position": 90 + }, + { + "type": "relation", + "name": "internalLink", + "value": "KC1HB96bqqHX", + "isInheritable": false, + "position": 100 + }, + { + "type": "relation", + "name": "internalLink", + "value": "2mUhVmZK8RF3", + "isInheritable": false, + "position": 110 + }, { "type": "label", "name": "shareAlias", @@ -7324,15 +8490,89 @@ } ], "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": true, + "noteId": "xWbu3jpNWapp", + "notePath": [ + "pOsGYCXsbNQG", + "KSZ04uQ2D1St", + "GTwFsgaA0lCt", + "xWbu3jpNWapp" + ], + "title": "Calendar View", + "prefix": null, + "dataFileName": "Calendar View.clone.md", + "type": "text", + "format": "markdown", + "isExpanded": false + }, + { + "isClone": true, + "noteId": "81SGnPGMk7Xc", + "notePath": [ + "pOsGYCXsbNQG", + "KSZ04uQ2D1St", + "GTwFsgaA0lCt", + "81SGnPGMk7Xc" + ], + "title": "Geo Map View", + "prefix": null, + "dataFileName": "Geo Map View.clone.md", + "type": "text", + "format": "markdown", + "isExpanded": false + }, + { + "isClone": true, + "noteId": "8QqnMzx393bx", + "notePath": [ + "pOsGYCXsbNQG", + "KSZ04uQ2D1St", + "GTwFsgaA0lCt", + "8QqnMzx393bx" + ], + "title": "Grid View", + "prefix": null, + "dataFileName": "Grid View.clone.md", + "type": "text", + "format": "markdown", + "isExpanded": false + }, + { + "isClone": true, + "noteId": "mULW0Q3VojwY", + "notePath": [ + "pOsGYCXsbNQG", + "KSZ04uQ2D1St", + "GTwFsgaA0lCt", + "mULW0Q3VojwY" + ], + "title": "List View", + "prefix": null, + "dataFileName": "List View.clone.md", + "type": "text", + "format": "markdown", + "isExpanded": false + }, + { + "isClone": true, + "noteId": "2FvYrpmOXm29", + "notePath": [ + "pOsGYCXsbNQG", + "KSZ04uQ2D1St", + "GTwFsgaA0lCt", + "2FvYrpmOXm29" + ], + "title": "Table View", + "prefix": null, + "dataFileName": "Table View.clone.md", + "type": "text", + "format": "markdown", + "isExpanded": false } ] }, @@ -7577,201 +8817,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", @@ -7943,7 +8988,7 @@ "BgmBlOIl72jZ" ], "title": "Troubleshooting", - "notePosition": 240, + "notePosition": 250, "prefix": null, "isExpanded": false, "type": "text", @@ -8202,7 +9247,7 @@ "pKK96zzmvBGf" ], "title": "Theme development", - "notePosition": 250, + "notePosition": 260, "prefix": null, "isExpanded": false, "type": "text", @@ -8405,7 +9450,7 @@ "tC7s2alapj8V" ], "title": "Advanced Usage", - "notePosition": 310, + "notePosition": 320, "prefix": null, "isExpanded": false, "type": "text", @@ -9152,38 +10197,122 @@ { "type": "relation", "name": "internalLink", - "value": "WOcw2SLH6tbX", + "value": "iPIMuisry3hd", "isInheritable": false, "position": 10 }, { "type": "relation", "name": "internalLink", - "value": "bwZpz2ajCEwO", + "value": "6f9hih2hXXZk", "isInheritable": false, "position": 20 }, { "type": "relation", "name": "internalLink", - "value": "6f9hih2hXXZk", + "value": "m523cpzocqaD", "isInheritable": false, "position": 30 }, { "type": "relation", "name": "internalLink", - "value": "Wy267RK4M69c", + "value": "iRwzGnHPzonm", "isInheritable": false, "position": 40 }, { "type": "relation", "name": "internalLink", - "value": "Qjt68inQ2bRj", + "value": "bdUJEHsAPYQR", "isInheritable": false, "position": 50 }, + { + "type": "relation", + "name": "internalLink", + "value": "HcABDtFCkbFN", + "isInheritable": false, + "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "GTwFsgaA0lCt", + "isInheritable": false, + "position": 70 + }, + { + "type": "relation", + "name": "internalLink", + "value": "s1aBHPd79XYj", + "isInheritable": false, + "position": 80 + }, + { + "type": "relation", + "name": "internalLink", + "value": "grjYqerjn243", + "isInheritable": false, + "position": 90 + }, + { + "type": "relation", + "name": "internalLink", + "value": "1vHRoWCEjj0L", + "isInheritable": false, + "position": 100 + }, + { + "type": "relation", + "name": "internalLink", + "value": "gBbsAeiuUxI5", + "isInheritable": false, + "position": 110 + }, + { + "type": "relation", + "name": "internalLink", + "value": "81SGnPGMk7Xc", + "isInheritable": false, + "position": 120 + }, + { + "type": "relation", + "name": "internalLink", + "value": "W8vYD3Q1zjCR", + "isInheritable": false, + "position": 130 + }, + { + "type": "relation", + "name": "internalLink", + "value": "WOcw2SLH6tbX", + "isInheritable": false, + "position": 140 + }, + { + "type": "relation", + "name": "internalLink", + "value": "bwZpz2ajCEwO", + "isInheritable": false, + "position": 150 + }, + { + "type": "relation", + "name": "internalLink", + "value": "Wy267RK4M69c", + "isInheritable": false, + "position": 160 + }, + { + "type": "relation", + "name": "internalLink", + "value": "Qjt68inQ2bRj", + "isInheritable": false, + "position": 170 + }, { "type": "label", "name": "shareAlias", @@ -9211,20 +10340,12 @@ "dataFileName": "Sharing_shared-list.png" }, { - "attachmentId": "DFUCyGDOpqOt", - "title": "share-multiple-notes-web.png", + "attachmentId": "ibqWQUOCMhIE", + "title": "image.png", "role": "image", "mime": "image/png", "position": 10, - "dataFileName": "Sharing_share-multiple-not.png" - }, - { - "attachmentId": "Il8udowRLald", - "title": "share-single-note-web.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Sharing_share-single-note-.png" + "dataFileName": "Sharing_image.png" }, { "attachmentId": "ShhsPSZVMQKx", @@ -9265,10 +10386,10 @@ "dataFileName": "Serving directly the conte.png" }, { - "attachmentId": "xicVjsf2Kmaz", + "attachmentId": "ixkXFTSSkdpL", "title": "image.png", "role": "image", - "mime": "image/jpg", + "mime": "image/png", "position": 10, "dataFileName": "1_Serving directly the conte.png" } @@ -10867,7 +11988,7 @@ "LMAv4Uy3Wk6J" ], "title": "AI", - "notePosition": 320, + "notePosition": 330, "prefix": null, "isExpanded": false, "type": "book", @@ -11230,7 +12351,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 54233914a..8182e3876 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/Note source.md b/docs/User Guide/User Guide/Advanced Usage/Note source.md index 26986739e..8338f3477 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 9be69d58a..a0936169f 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Sharing.md +++ b/docs/User Guide/User Guide/Advanced Usage/Sharing.md @@ -1,6 +1,32 @@ # Sharing Trilium allows you to share selected notes as **publicly accessible** read-only documents. This feature is particularly useful for publishing content directly from your Trilium notes, making it accessible to others online. +
        + +## Features, interaction and limitations + +* Searching by note title. +* Automatic dark/light mode based on the user's browser settings. +* Mobile-friendly layout, with sidebar. +* Collapsible tree with the same note icons as the application. +* Customizable logo. +* Toggle button for dark/light mode, which also stores the user preferences. +* Quick navigation buttons (previous and next note). +* Displaying the date of the last update of the note. + +### 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. 
        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: + +* **Code Notes**: No syntax highlighting. +* **Static Note Tree** +* **Protected Notes**: Cannot be shared. +* **Include Notes**: Not supported. + +Some of these limitations may be addressed in future updates. + ## Prerequisites To use the sharing feature, you must have a Server Installation of Trilium. This is necessary because the notes will be hosted from the server. @@ -11,15 +37,11 @@ To use the sharing feature, you must have a Code note to the shared page by adding a `~shareCss` relation to the note. If you want this style to apply to the entire subtree, make the label inheritable. You can hide the CSS code note from the tree navigation by adding the `#shareHiddenFromTree` label. * **Omitting Default CSS**: For extensive styling changes, use the `#shareOmitDefaultCss` label to avoid conflicts with Trilium's [default stylesheet](../Basic%20Concepts%20and%20Features/Themes.md). @@ -79,19 +101,10 @@ To customize the favicon for your shared pages, create a relation `~shareFavicon You can designate a specific note or folder as the root of your shared content by adding the `#shareRoot` label. This note will be linked when visiting `[http://domain.tld/share](http://domain/share)`, making it easier to use Trilium as a fully-fledged website. Consider combining this with the `#shareIndex` label, which will display a list of all shared notes. -## Limitations - -While the sharing feature is powerful, it has some limitations: - -* **No Relation Map Support** -* **Book Notes**: Only show a list of child notes. -* **Code Notes**: No syntax highlighting. -* **Static Note Tree** -* **Protected Notes**: Cannot be shared. -* **Include Notes**: Not supported. - -Some of these limitations may be addressed in future updates. - ## 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.
        \ No newline at end of file +
        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 + +Since v0.95.0, a new theme was introduced (and enabled by default) which greatly improves the visual aspect of the Share feature, as well as its functionality (such as mobile support, dark/light mode, collapsible tree, etc.). This theme is an adaptation of the [Trilium Rocks!](https://github.com/zerebos/trilium.rocks) by [zerebos](https://github.com/zerebos). \ No newline at end of file diff --git a/docs/User Guide/User Guide/Advanced Usage/Sharing/1_Serving directly the conte.png b/docs/User Guide/User Guide/Advanced Usage/Sharing/1_Serving directly the conte.png index 981a43146..23592294b 100644 Binary files a/docs/User Guide/User Guide/Advanced Usage/Sharing/1_Serving directly the conte.png and b/docs/User Guide/User Guide/Advanced Usage/Sharing/1_Serving directly the conte.png differ 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 72a495a47..54531bf31 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,9 +1,7 @@ # 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 | -| --- | --- | -| ![](1_Serving%20directly%20the%20conte.png) | ![](Serving%20directly%20the%20conte.png) | +
        A note displayed as a web page (HTML)A note displayed as a raw format
        ## By adding an attribute to the note diff --git a/docs/User Guide/User Guide/Advanced Usage/Sharing_image.png b/docs/User Guide/User Guide/Advanced Usage/Sharing_image.png new file mode 100644 index 000000000..4c92b90c5 Binary files /dev/null and b/docs/User Guide/User Guide/Advanced Usage/Sharing_image.png differ diff --git a/docs/User Guide/User Guide/Advanced Usage/Sharing_share-multiple-not.png b/docs/User Guide/User Guide/Advanced Usage/Sharing_share-multiple-not.png deleted file mode 100644 index 6b88c8b6e..000000000 Binary files a/docs/User Guide/User Guide/Advanced Usage/Sharing_share-multiple-not.png and /dev/null differ diff --git a/docs/User Guide/User Guide/Advanced Usage/Sharing_share-single-note-.png b/docs/User Guide/User Guide/Advanced Usage/Sharing_share-single-note-.png deleted file mode 100644 index 744fd4cda..000000000 Binary files a/docs/User Guide/User Guide/Advanced Usage/Sharing_share-single-note-.png and /dev/null differ 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 ae773acca..bcf692d0e 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](../../Basic%20Concepts%20and%20Features/Notes/Note%20List/Geo%20Map%20View.md) notes. ## Plugins diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown.md b/docs/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown.md index 1cd6c5521..d0e6107f1 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown.md @@ -42,9 +42,4 @@ If you want to export protected notes, enter a protected session first! This wil ## Supported syntax -* [GitHub-Flavored Markdown](https://github.github.com/gfm/) is the main syntax that Trilium is following. -* Images are supported. When exporting, images are usually kept in the basic Markdown syntax but will use the HTML syntax if the image has a custom width. Figures are always embedded as HTML. -* Tables are supported with the Markdown syntax. If the table is too complex or contains elements that would render as HTML, the table is also rendered as HTML. -* Admonitions are supported using GitHub's format. -* Links are supported. “Reference links” (internal links that mirror a note's title and display its icon) are embedded as HTML in order to preserve the information on import. -* Math equations are supported using `$` and `$$` syntaxes. \ No newline at end of file +See the dedicated page: Supported syntax \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown/Supported syntax.md b/docs/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown/Supported syntax.md new file mode 100644 index 000000000..e537d549a --- /dev/null +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown/Supported syntax.md @@ -0,0 +1,57 @@ +# Supported syntax +[GitHub-Flavored Markdown](https://github.github.com/gfm/) is the main syntax that Trilium is following. + +## Images + +When exporting, images are usually kept in the basic Markdown syntax but will use the HTML syntax if the image has a custom width. Figures are always embedded as HTML. + +## Tables + +Simple tables are supported with the Markdown syntax. If the table is too complex or contains elements that would render as HTML, the table is also rendered as HTML. + +## Links + +Standard Markdown links are supported. + +Trilium internal links (that mirror a note's title and display its icon) are embedded as HTML in order to preserve the information on import. + +## Math equations + +Both inline and display equations are supported, using the `$` and `$$` syntaxes. + +## Admonitions + +The Markdown syntax for admonitions as supported by Trilium is the one that GitHub uses, which is as follows: + +``` +> [!NOTE] +> This is a note. + +> [!TIP] +> This is a tip. + +> [!IMPORTANT] +> This is a very important information. + +> [!CAUTION] +> This is a caution. +``` + +There are currently no plans of supporting alternative admonition syntaxes such as `!!! note`. + +## Wikilinks + +Basic support for wikilinks has been added in v0.96.0: + +* `[[foo/bar]]` will look for the `bar.md` file in the `foo` directory and turn it into an internal link. +* `![[foo/baz.png]]` will look for the `baz.png` file in the `foo` directory and turn it into an image. + +This feature is import-only, which means that it will turn wikilinks into Trilium-compatible syntax, but it will not export Trilium Notes into Markdown files with this syntax. + +> [!IMPORTANT] +> The path to pages in wikilinks is resolved relatively to the _import root_ and not the current directory of the note. This is to be inline with other platforms that use wikilinks such as SilverBullet. +> +> The root path of the import is determined as follows: +> +> * If there is a single directory within the archive at root level, then that directory is considered the root. +> * If there are multiple files & directories at root level, then the archive root (containing all of these items) is considered the root. \ 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 000000000..c769505f1 --- /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/Search.md b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.md index c4a1e3023..d8dae25c5 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.md @@ -69,6 +69,7 @@ The options available are: * `#dateNote >= TODAY-30`: A "smart search" to find notes with the "dateNote" label within the last 30 days. Supported smart values include NOW +- seconds, TODAY +- days, MONTH +- months, YEAR +- years. * `~author.title *=* Tolkien`: Find notes related to an author whose title contains "Tolkien". * `#publicationYear %= '19[0-9]{2}'`: Use the '%=' operator to match a regular expression (regex). This feature has been available since Trilium 0.52. +* `note.content %= '\\d{2}:\\d{2} (PM|AM)'`: Find notes that mention a time. Backslashes in a regex must be escaped. ### Advanced Use Cases 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 4f0329d42..000000000 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 4b581bbe9..000000000 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 8eed85e6a..d06a9e544 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,8 @@ When a note has one or more child notes, they will be listed at the end of the n ## View types +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/Note Types/11_Geo Map_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/10_Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Note Types/12_Geo Map_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/14_Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/15_Geo Map View_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/15_Geo Map View_image.png new file mode 100644 index 000000000..72dbb9861 Binary files /dev/null and b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/18_Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Note Types/1_Geo Map_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/1_Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Note Types/2_Geo Map_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/2_Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Note Types/3_Geo Map_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/3_Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Note Types/4_Geo Map_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/4_Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Note Types/5_Geo Map_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/5_Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Note Types/6_Geo Map_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/6_Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Note Types/8_Geo Map_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/7_Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Note Types/9_Geo Map_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/8_Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Note Types/10_Geo Map_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/9_Geo Map View_image.png 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 index aec8046b9..efd41b300 100644 --- 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 @@ -1,7 +1,7 @@ # 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 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: @@ -10,11 +10,11 @@ The Calendar view has multiple display modes: * 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. +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 -
           
        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.
        +
           
        1The 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.
        2Once 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 @@ -22,25 +22,34 @@ Unlike other Book view types, the Calendar view also allows some kind of interac * 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. +* 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 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. +* 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 +## Configuring the calendar view -The following attributes can be added to the book type: +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 +## Configuring the calendar events using attributes For each note of the calendar, the following attributes can be used: @@ -50,9 +59,9 @@ For each note of the calendar, the following attributes can be used: ![](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. +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 book note: +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" @@ -70,7 +79,7 @@ When not used in a Journal, the calendar is recursive. That is, it will look for ### 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. +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: @@ -85,7 +94,7 @@ Based on the `#calendarRoot` (or `#workspaceCalendarRoot`) attribute, the calend 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. +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"

         

        diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Geo Map View.md b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Geo Map View.md new file mode 100644 index 000000000..916038606 --- /dev/null +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Geo Map View.md @@ -0,0 +1,134 @@ +# 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 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.
         
        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.
        + +### 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](../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: + +
           
        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. + +## 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. + +## 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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/Geo Map View_image.png diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Grid View.md b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Grid View.md new file mode 100644 index 000000000..913c9a93c --- /dev/null +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/Grid View_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Grid View_image.png new file mode 100644 index 000000000..8de2914c1 Binary files /dev/null and b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Grid View_image.png differ diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/List View.md b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/List View.md new file mode 100644 index 000000000..71172046f --- /dev/null +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/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/Basic Concepts and Features/Notes/Note List/List View_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/List View_image.png new file mode 100644 index 000000000..61a9d8249 Binary files /dev/null and b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/List View_image.png differ diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Table View.md b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Table View.md new file mode 100644 index 000000000..dadae0183 --- /dev/null +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Table View.md @@ -0,0 +1,83 @@ +# 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. + +## 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 Collection 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 Collection 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 Collection 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 _Collection_ 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 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 View_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Table View_image.png new file mode 100644 index 000000000..7750b698c Binary files /dev/null and b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Table View_image.png differ 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 b0a8e157b..8de2914c1 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 7811c5d6c..38ab3f584 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/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 000000000..ee247109d --- /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 000000000..049a07d61 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 24014253c..edd0470e0 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 f36081d10..cd9f40c1c 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 000000000..faec3ac7a --- /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 31c92c9b6..2df2536cf 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 afbc96c25..51683bdc0 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 000000000..542513072 --- /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 000000000..89882f216 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 000000000..a9b449db2 --- /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/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 05c764adb..404262525 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 @@ -28,10 +28,10 @@ sudo apt install libpng16-16 libpng-dev pkg-config autoconf libtool build-essent You can either download source code zip/tar from [https://github.com/TriliumNext/Notes/releases/latest](https://github.com/TriliumNext/Notes/releases/latest). -For the latest version including betas, clone Git repository **from** `master` **branch** with: +For the latest version including betas, clone Git repository **from** `main` **branch** with: ``` -git clone -b master https://github.com/triliumnext/notes.git +git clone -b main https://github.com/triliumnext/notes.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 a1326d1c9..88386a9f3 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,8 +4,8 @@ This is essentially Trilium sources + node modules + node.js runtime packaged in ## Steps * SSH into your server -* use `wget` (or `curl`) to download latest `TriliumNextNotes-Server-[VERSION]-linux-x64.tar.xz` (copy link from [release page](https://github.com/TriliumNext/Notes/releases), notice `-Server` suffix) on your server. -* unpack the archive, e.g. using `tar -xf -d TriliumNextNotes-Server-[VERSION]-linux-x64.tar.xz` +* 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. +* unpack the archive, e.g. using `tar -xf -d TriliumNotes-Server-[VERSION]-linux-x64.tar.xz` * `cd trilium-linux-x64-server` * `./trilium.sh` * you can open the browser and open http://\[your-server-hostname\]:8080 and you should see Trilium initialization page @@ -20,7 +20,7 @@ The problem with above steps is that once you close the SSH connection, the Tril * After downloading, extract and move Trilium: ``` -tar -xvf TriliumNextNotes-Server-[VERSION]-linux-x64.tar.xz +tar -xvf TriliumNotes-Server-[VERSION]-linux-x64.tar.xz sudo mv trilium-linux-x64-server /opt/trilium ``` diff --git a/docs/User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Nginx.md b/docs/User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Nginx.md index 24b57c4ea..57f51b4e6 100644 --- a/docs/User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Nginx.md +++ b/docs/User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Nginx.md @@ -73,4 +73,4 @@ Configure Nginx proxy and HTTPS. The operating system here is Ubuntu 18.04. proxy_read_timeout 90; } - ``` + ``` \ No newline at end of file diff --git a/docs/User Guide/User Guide/Installation & Setup/Server Installation/Authentication.md b/docs/User Guide/User Guide/Installation & Setup/Server Installation/Authentication.md index 901127eb7..cebac2f48 100644 --- a/docs/User Guide/User Guide/Installation & Setup/Server Installation/Authentication.md +++ b/docs/User Guide/User Guide/Installation & Setup/Server Installation/Authentication.md @@ -27,7 +27,7 @@ When “Remember me” is unchecked, the behavior is different. At client/browse The login sessions are now stored in the same Database as the user data. In order to view which sessions are active, open the SQL Console and run the following query: -```trilium +``` SELECT * FROM sessions ``` diff --git a/docs/User Guide/User Guide/Installation & Setup/Server Installation/Multi-Factor Authentication.md b/docs/User Guide/User Guide/Installation & Setup/Server Installation/Multi-Factor Authentication.md index a2bf3f7e4..e76e1e2c2 100644 --- a/docs/User Guide/User Guide/Installation & Setup/Server Installation/Multi-Factor Authentication.md +++ b/docs/User Guide/User Guide/Installation & Setup/Server Installation/Multi-Factor Authentication.md @@ -34,9 +34,6 @@ MFA can only be set up on a server instance. ### OpenID -> [!NOTE] -> Currently only compatible with Google. Other services like Authentik and Auth0 are planned on being added. - In order to setup OpenID, you will need to setup a authentication provider. This requires a bit of extra setup. Follow [these instructions](https://developers.google.com/identity/openid-connect/openid-connect) to setup an OpenID service through google. 1. Set the `oauthBaseUrl`, `oauthClientId` and `oauthClientSecret` in the `config.ini` file (check Configuration (config.ini or environment variables) for more information). @@ -45,4 +42,7 @@ In order to setup OpenID, you will need to setup a authentication provider. This 3. Go to "Menu" -> "Options" -> "MFA" 4. Click the “Enable Multi-Factor Authentication” checkbox if not checked 5. Choose “OAuth/OpenID” under MFA Method -6. Refresh the page and login through OpenID provider \ No newline at end of file +6. Refresh the page and login through OpenID provider + +> [!NOTE] +> The default OAuth issuer is Google. To use other services such as Authentik or Auth0, you can configure the settings via `oauthIssuerBaseUrl`, `oauthIssuerName`, and `oauthIssuerIcon` in the `config.ini` file. Alternatively, these values can be set using environment variables: `TRILIUM_OAUTH_ISSUER_BASE_URL`, `TRILIUM_OAUTH_ISSUER_NAME`, and `TRILIUM_OAUTH_ISSUER_ICON`. `oauthIssuerName` and `oauthIssuerIcon` are required for displaying correct issuer information at the Login page. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Note Types.md b/docs/User Guide/User Guide/Note Types.md index 71e510a11..5dbe39fb5 100644 --- a/docs/User Guide/User Guide/Note Types.md +++ b/docs/User Guide/User Guide/Note Types.md @@ -25,4 +25,4 @@ 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 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.
        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 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 Map ViewDisplays 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 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 00c5e8cc3..000000000 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 59543b937..000000000 --- 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 ba4e1dd7a..000000000 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 000000000..f3195d578 --- /dev/null +++ b/docs/User Guide/User Guide/Note Types/Collections.md @@ -0,0 +1,31 @@ +# 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. + +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 in 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. + +## 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/Note Types/Collections/Calendar View.clone.md b/docs/User Guide/User Guide/Note Types/Collections/Calendar View.clone.md new file mode 100644 index 000000000..f7d49f641 --- /dev/null +++ b/docs/User Guide/User Guide/Note Types/Collections/Calendar View.clone.md @@ -0,0 +1,2 @@ +# Calendar View +This is a clone of a note. Go to its [primary location](../../Basic%20Concepts%20and%20Features/Notes/Note%20List/Calendar%20View.md). \ No newline at end of file diff --git a/docs/User Guide/User Guide/Note Types/Collections/Geo Map View.clone.md b/docs/User Guide/User Guide/Note Types/Collections/Geo Map View.clone.md new file mode 100644 index 000000000..b68feacd4 --- /dev/null +++ b/docs/User Guide/User Guide/Note Types/Collections/Geo Map View.clone.md @@ -0,0 +1,2 @@ +# Geo Map View +This is a clone of a note. Go to its [primary location](../../Basic%20Concepts%20and%20Features/Notes/Note%20List/Geo%20Map%20View.md). \ No newline at end of file diff --git a/docs/User Guide/User Guide/Note Types/Collections/Grid View.clone.md b/docs/User Guide/User Guide/Note Types/Collections/Grid View.clone.md new file mode 100644 index 000000000..ae9e1853e --- /dev/null +++ b/docs/User Guide/User Guide/Note Types/Collections/Grid View.clone.md @@ -0,0 +1,2 @@ +# Grid View +This is a clone of a note. Go to its [primary location](../../Basic%20Concepts%20and%20Features/Notes/Note%20List/Grid%20View.md). \ No newline at end of file diff --git a/docs/User Guide/User Guide/Note Types/Collections/List View.clone.md b/docs/User Guide/User Guide/Note Types/Collections/List View.clone.md new file mode 100644 index 000000000..6c441876d --- /dev/null +++ b/docs/User Guide/User Guide/Note Types/Collections/List View.clone.md @@ -0,0 +1,2 @@ +# List View +This is a clone of a note. Go to its [primary location](../../Basic%20Concepts%20and%20Features/Notes/Note%20List/List%20View.md). \ No newline at end of file diff --git a/docs/User Guide/User Guide/Note Types/Collections/Table View.clone.md b/docs/User Guide/User Guide/Note Types/Collections/Table View.clone.md new file mode 100644 index 000000000..d2ff914a0 --- /dev/null +++ b/docs/User Guide/User Guide/Note Types/Collections/Table View.clone.md @@ -0,0 +1,2 @@ +# Table View +This is a clone of a note. Go to its [primary location](../../Basic%20Concepts%20and%20Features/Notes/Note%20List/Table%20View.md). \ No newline at end of file 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 78237cad3..000000000 --- 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/Note Map.md b/docs/User Guide/User Guide/Note Types/Note Map.md index 2433e7161..dc0d62947 100644 --- a/docs/User Guide/User Guide/Note Types/Note Map.md +++ b/docs/User Guide/User Guide/Note Types/Note Map.md @@ -3,4 +3,6 @@ A Note map is a note type which displays a standalone version of the feature of the same name: [Note Map (Link map, Tree map)](../Advanced%20Usage/Note%20Map%20\(Link%20map%2C%20Tree%20map\).md). -Once created, the note map will display the relations between notes. Only the notes that are part of the parent of the note map will be displayed (including their children). \ No newline at end of file +Once created, the note map will display the relations between notes. Only the notes that are part of the parent of the note map will be displayed (including their children). + +The labels `mapIncludeRelation` and `mapExcludeRelation`, if set, filter the note map to include only the specified relations or to exclude the specified relations, respectively. \ 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 5d29939c4..1b6486efb 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
        +
        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/Block quotes & admonitions.md b/docs/User Guide/User Guide/Note Types/Text/Block quotes & admonitions.md index 038077cb3..72ef490c1 100644 --- a/docs/User Guide/User Guide/Note Types/Text/Block quotes & admonitions.md +++ b/docs/User Guide/User Guide/Note Types/Text/Block quotes & admonitions.md @@ -52,20 +52,4 @@ These types were inspired by GitHub's support for this feature and there are cur ### Markdown support -The Markdown syntax for admonitions as supported by Trilium is the one that GitHub uses, which is as follows: - -``` -> [!NOTE] -> This is a note. - -> [!TIP] -> This is a tip. - -> [!IMPORTANT] -> This is a very important information. - -> [!CAUTION] -> This is a caution. -``` - -There are currently no plans of supporting alternative admonition syntaxes such as `!!! note`. \ No newline at end of file +See 
        Supported syntax. \ 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 8387ce0f1..93d9bfcc9 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 000000000..fabc2f21e --- /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 000000000..e45eb2cf1 --- /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/Premium features.md b/docs/User Guide/User Guide/Note Types/Text/Premium features.md new file mode 100644 index 000000000..5777f59c0 --- /dev/null +++ b/docs/User Guide/User Guide/Note Types/Text/Premium features.md @@ -0,0 +1,14 @@ +# Premium features +The text editor we are using for Text notes is called CKEditor and it's a commercial product. The core components are open-source, however they [offer quite a few features](https://ckeditor.com/docs/trial/latest/index.html) that require a commercial license in order to be used. + +We have reached out to the CKEditor team in order to obtain a license in order to have some of these extra features and they have agreed, based on a signed agreement. + +## How the license works + +The license key is stored in the application and it enables the use of the previously described premium features. The license key has an expiration date which means that the features can become disabled if using an older version of the application for extended periods of time. + +## Can I opt out of these features? + +At this moment there is no way to disable these features, apart from manually modifying the source code. If this is a problem, [let us know](../../Troubleshooting/Reporting%20issues.md). + +If you have the possibility of rebuilding the source code (e.g. if a package maintainer), then modify `VITE_CKEDITOR_KEY` in `apps/client/.env` to be `GPL`. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Note Types/Text/Premium features/1_Text Snippets_image.png b/docs/User Guide/User Guide/Note Types/Text/Premium features/1_Text Snippets_image.png new file mode 100644 index 000000000..b2dd17dfa Binary files /dev/null and b/docs/User Guide/User Guide/Note Types/Text/Premium features/1_Text Snippets_image.png differ diff --git a/docs/User Guide/User Guide/Note Types/Text/Premium features/Slash Commands.md b/docs/User Guide/User Guide/Note Types/Text/Premium features/Slash Commands.md new file mode 100644 index 000000000..2cb35ca48 --- /dev/null +++ b/docs/User Guide/User Guide/Note Types/Text/Premium features/Slash Commands.md @@ -0,0 +1,22 @@ +# Slash Commands +
        + +> [!NOTE] +> This is a premium feature of the editor we are using (CKEditor) and we benefit from it thanks to an written agreement with the team. See  Premium features for more information. + +Slash commands is a feature of Text notes which allows easily accessing commonly used commands simply by using the keyboard, without having to remember dedicated Keyboard Shortcuts. + +## Interaction + +* As the name suggests, to trigger the slash commands simply press the / key to trigger it. Note that this can be anywhere in a paragraph as long as it's not part of the word, if it doesn't show up simply press a space and press the / key again. +* Use and keys to navigate between options. +* By default, the full list of commands is displayed. +* To search by title or description, simply start typing for an action. +* To trigger an action, press the Enter key. + +## Integration with other features + +Apart from the common set of commands, some features are specially integrated with the slash commands: + +* For [admonitions](../Block%20quotes%20%26%20admonitions.md), each admonition type (e.g. note, tip) will be individually displayed. +* Every Text Snippets will also appear individually, making it easy to insert them. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Note Types/Text/Premium features/Slash Commands_image.png b/docs/User Guide/User Guide/Note Types/Text/Premium features/Slash Commands_image.png new file mode 100644 index 000000000..b46c1a4c6 Binary files /dev/null and b/docs/User Guide/User Guide/Note Types/Text/Premium features/Slash Commands_image.png differ diff --git a/docs/User Guide/User Guide/Note Types/Text/Premium features/Text Snippets.md b/docs/User Guide/User Guide/Note Types/Text/Premium features/Text Snippets.md new file mode 100644 index 000000000..1151446f4 --- /dev/null +++ b/docs/User Guide/User Guide/Note Types/Text/Premium features/Text Snippets.md @@ -0,0 +1,38 @@ +# Text Snippets +
        + +> [!NOTE] +> This is a premium feature of the editor we are using (CKEditor) and we benefit from it thanks to an written agreement with the team. See  Premium features for more information. + +Text Snippets are closely related to Templates, but instead of defining the content of an entire note, text snippets are pieces of formatted text that can easily be inserted in a text note. + +## Creating a text snippet + +In the Note Tree:  + +1. Right click a note where to place the text snippet. +2. Select _Insert child note_. +3. Select _Text snippet_. + +Afterwards, simply type in the content of the note the desired text. The text can be formatted in the same manner as a normal text note. + +The title of the note will become the title of the template. Optionally, a description can be added in the Promoted Attributes section. + +## Inserting a snippet + +Once a snippet is created, there are two options to insert it: + +1. From the Formatting toolbar, by looking for the button. +2. Using Slash Commands:  + 1. To look for a specific template, start typing the name of the template (its title). + 2. To look for all the templates, type `template`. + +> [!TIP] +> A newly created snippet doesn't appear? Generally it takes up to a few seconds to refresh the list of templates once you make a change. +> +> If this doesn't happen, [reload the application](../../../Troubleshooting/Refreshing%20the%20application.md) and [report the issue](../../../Troubleshooting/Reporting%20issues.md)to us.  + +## Limitations + +* Whenever a snippet is created, deleted or its title/description are modified, all the open text notes will need to be refreshed. This causes a slight flash for usually under a second, but it can cause some discomfort. +* Unlike Templates, the snippets cannot be limited to a particular [workspace](../../../Basic%20Concepts%20and%20Features/Navigation/Workspaces.md). \ No newline at end of file diff --git a/docs/User Guide/User Guide/Note Types/Text/Premium features/Text Snippets_image.png b/docs/User Guide/User Guide/Note Types/Text/Premium features/Text Snippets_image.png new file mode 100644 index 000000000..90b8fbe95 Binary files /dev/null and b/docs/User Guide/User Guide/Note Types/Text/Premium features/Text Snippets_image.png differ diff --git a/docs/User Guide/User Guide/Theme development/Reference.md b/docs/User Guide/User Guide/Theme development/Reference.md index 5e1036ae1..9f1be7b9c 100644 --- a/docs/User Guide/User Guide/Theme development/Reference.md +++ b/docs/User Guide/User Guide/Theme development/Reference.md @@ -195,4 +195,4 @@ If the theme is auto (e.g. supports both light or dark based on `prefers-color-s } ``` -This will affect the behavior of the Electron application by informing the operating system of the color preference (e.g. background effects will appear correct on Windows). +This will affect the behavior of the Electron application by informing the operating system of the color preference (e.g. background effects will appear correct on Windows). \ No newline at end of file diff --git a/flake.lock b/flake.lock index 0aabefa81..d77c38c69 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 3b3736081..ccf7c7b5a 100644 --- a/flake.nix +++ b/flake.nix @@ -1,8 +1,8 @@ { - description = "TriliumNext Notes (experimental flake)"; + 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"; @@ -21,7 +21,7 @@ system: let pkgs = import nixpkgs { inherit system; }; - electron = pkgs.electron_35; + electron = pkgs."electron_${lib.versions.major packageJsonDesktop.devDependencies.electron}"; nodejs = pkgs.nodejs_22; pnpm = pkgs.pnpm_10; inherit (pkgs) @@ -30,6 +30,7 @@ lib makeBinaryWrapper makeDesktopItem + makeShellWrapper moreutils removeReferencesTo stdenv @@ -40,13 +41,13 @@ fullCleanSourceFilter = name: type: (lib.cleanSourceFilter name type) - || ( + && ( let baseName = baseNameOf (toString name); in # No need to copy the flake. # Don't copy local development instance of NX cache. - baseName == "flake.nix" || baseName == "flake.lock" || baseName == ".nx" + baseName != "flake.nix" && baseName != "flake.lock" && baseName != ".nx" ); fullCleanSource = src: @@ -55,6 +56,7 @@ src = src; }; packageJson = builtins.fromJSON (builtins.readFile ./package.json); + packageJsonDesktop = builtins.fromJSON (builtins.readFile ./apps/desktop/package.json); makeApp = { @@ -101,15 +103,20 @@ extraNativeBuildInputs = [ - makeBinaryWrapper moreutils # sponge nodejs.python removeReferencesTo ] ++ lib.optionals (app == "desktop") [ copyDesktopItems + # required for NIXOS_OZONE_WL expansion + # https://github.com/NixOS/nixpkgs/issues/172583 + makeShellWrapper wrapGAppsHook3 ] + ++ lib.optionals (app == "server") [ + makeBinaryWrapper + ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ xcodebuild darwin.cctools @@ -156,18 +163,18 @@ desktopItems = lib.optionals (app == "desktop") [ (makeDesktopItem { - name = "TriliumNext Notes"; + name = "Trilium Notes"; exec = meta.mainProgram; icon = "trilium"; comment = meta.description; - desktopName = "TriliumNext Notes"; + desktopName = "Trilium Notes"; categories = [ "Office" ]; - startupWMClass = "Trilium Notes Next"; + startupWMClass = "Trilium Notes"; }) ]; meta = { - description = "TriliumNext: ${app}"; + description = "Trilium: ${app}"; inherit mainProgram; }; }; @@ -184,9 +191,11 @@ mkdir -p $out/{bin,share/icons/hicolor/512x512/apps,opt/trilium} cp --archive apps/desktop/dist/* $out/opt/trilium cp apps/client/src/assets/icon.png $out/share/icons/hicolor/512x512/apps/trilium.png - makeWrapper ${lib.getExe electron} $out/bin/trilium \ + makeShellWrapper ${lib.getExe electron} $out/bin/trilium \ "''${gappsWrapperArgs[@]}" \ + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \ --set-default ELECTRON_IS_DEV 0 \ + --set TRILIUM_RESOURCE_DIR $out/opt/trilium \ --add-flags $out/opt/trilium/main.cjs ''; }; diff --git a/nx.json b/nx.json index c457d117b..927089448 100644 --- a/nx.json +++ b/nx.json @@ -1,6 +1,6 @@ { "$schema": "./node_modules/nx/schemas/nx-schema.json", - "defaultBase": "develop", + "defaultBase": "main", "namedInputs": { "default": [ "{projectRoot}/**/*", diff --git a/package.json b/package.json index 2a772489e..d35a835de 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@triliumnext/source", - "version": "0.94.1", - "description": "Build your personal knowledge base with TriliumNext Notes", + "version": "0.96.0", + "description": "Build your personal knowledge base with Trilium Notes", "directories": { "doc": "docs" }, @@ -20,54 +20,55 @@ "chore:update-build-info": "tsx ./scripts/update-build-info.ts", "chore:update-version": "tsx ./scripts/update-version.ts", "test:all": "pnpm test:parallel && pnpm test:sequential", - "test:parallel": "pnpm nx run-many -t test --all --exclude=ckeditor5-mermaid,ckeditor5-math --parallel", - "test:sequential": "pnpm nx run-many -t test --projects=ckeditor5-mermaid,ckeditor5-math --parallel=1", + "test:parallel": "pnpm nx run-many -t test --all --exclude=server,ckeditor5-mermaid,ckeditor5-math --parallel", + "test:sequential": "pnpm nx run-many -t test --projects=server,ckeditor5-mermaid,ckeditor5-math --parallel=1", "coverage": "pnpm nx run-many -t coverage" }, "private": true, "devDependencies": { "@electron/rebuild": "4.0.1", - "@nx/devkit": "21.1.3", - "@nx/esbuild": "21.1.3", - "@nx/eslint": "21.1.3", - "@nx/eslint-plugin": "21.1.3", - "@nx/express": "21.1.3", - "@nx/js": "21.1.3", - "@nx/node": "21.1.3", - "@nx/playwright": "21.1.3", - "@nx/vite": "21.1.3", - "@nx/web": "21.1.3", + "@nx/devkit": "21.2.3", + "@nx/esbuild": "21.2.3", + "@nx/eslint": "21.2.3", + "@nx/eslint-plugin": "21.2.3", + "@nx/express": "21.2.3", + "@nx/js": "21.2.3", + "@nx/node": "21.2.3", + "@nx/playwright": "21.2.3", + "@nx/vite": "21.2.3", + "@nx/web": "21.2.3", "@playwright/test": "^1.36.0", "@triliumnext/server": "workspace:*", "@types/express": "^5.0.0", - "@types/node": "22.15.30", + "@types/node": "22.16.3", "@vitest/coverage-v8": "^3.0.5", "@vitest/ui": "^3.0.0", "chalk": "5.4.1", "cross-env": "7.0.3", + "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": "~17.6.0", + "happy-dom": "~18.0.0", "jiti": "2.4.2", "jsdom": "~26.1.0", "jsonc-eslint-parser": "^2.1.0", - "nx": "21.1.3", + "nx": "21.2.3", "react-refresh": "^0.17.0", - "rollup-plugin-webpack-stats": "2.0.7", + "rollup-plugin-webpack-stats": "2.1.0", "tslib": "^2.3.0", - "tsx": "4.19.4", + "tsx": "4.20.3", "typescript": "~5.8.0", "typescript-eslint": "^8.19.0", "upath": "2.0.1", - "vite": "^6.0.0", + "vite": "^7.0.0", "vite-plugin-dts": "~4.5.0", "vitest": "^3.0.0" }, "license": "AGPL-3.0-only", "author": { - "name": "TriliumNext Notes Team", + "name": "Trilium Notes Team", "email": "contact@eliandoran.me", "url": "https://github.com/TriliumNext/Notes" }, @@ -79,27 +80,43 @@ "url": "https://github.com/TriliumNext/Notes/issues" }, "homepage": "https://github.com/TriliumNext/Notes#readme", - "dependencies": { - "axios": "^1.6.0", - "express": "^5.0.0" - }, - "packageManager": "pnpm@10.12.1+sha512.f0dda8580f0ee9481c5c79a1d927b9164f2c478e90992ad268bbb2465a736984391d6333d2c327913578b2804af33474ca554ba29c04a8b13060a717675ae3ac", + "packageManager": "pnpm@10.13.1", "pnpm": { "patchedDependencies": { "@ckeditor/ckeditor5-mention": "patches/@ckeditor__ckeditor5-mention.patch", "@ckeditor/ckeditor5-code-block": "patches/@ckeditor__ckeditor5-code-block.patch", - "ckeditor5": "patches/ckeditor5.patch" + "ckeditor5": "patches/ckeditor5.patch", + "@nx/js": "patches/@nx__js.patch" }, "overrides": { - "node-abi": "4.9.0", - "@types/express-serve-static-core": "5.0.6", + "mermaid": "11.8.1", + "preact": "10.26.9", + "roughjs": "4.6.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" - } + }, + "ignoredBuiltDependencies": [ + "sqlite3" + ], + "onlyBuiltDependencies": [ + "@parcel/watcher", + "@scarf/scarf", + "better-sqlite3", + "bufferutil", + "core-js-pure", + "electron", + "electron-winstaller", + "esbuild", + "fs-xattr", + "macos-alias", + "nx", + "utf-8-validate" + ] }, "nx": { "name": "triliumnext" diff --git a/packages/ckeditor5-admonition/package.json b/packages/ckeditor5-admonition/package.json index 21e5158e0..089feb2c0 100644 --- a/packages/ckeditor5-admonition/package.json +++ b/packages/ckeditor5-admonition/package.json @@ -32,14 +32,14 @@ "ckeditor5-metadata.json" ], "devDependencies": { - "@ckeditor/ckeditor5-dev-build-tools": "43.0.1", + "@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.34.0", + "@typescript-eslint/eslint-plugin": "~8.36.0", "@typescript-eslint/parser": "^8.0.0", "@vitest/browser": "^3.0.5", "@vitest/coverage-istanbul": "^3.0.5", - "ckeditor5": "45.2.0", + "ckeditor5": "46.0.0", "eslint": "^9.0.0", "eslint-config-ckeditor5": ">=9.1.0", "http-server": "^14.1.0", @@ -53,7 +53,7 @@ "webdriverio": "^9.0.7" }, "peerDependencies": { - "ckeditor5": "45.2.0" + "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 27381cd52..35456efbc 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-admonition/src/index.ts b/packages/ckeditor5-admonition/src/index.ts index c6db132c2..99edeece8 100644 --- a/packages/ckeditor5-admonition/src/index.ts +++ b/packages/ckeditor5-admonition/src/index.ts @@ -4,9 +4,9 @@ import "../theme/blockquote.css"; export { default as Admonition } from './admonition.js'; export { default as AdmonitionEditing } from './admonitionediting.js'; -export { default as AdmonitionUI } from './admonitionui.js'; +export { default as AdmonitionUI, ADMONITION_TYPES } from './admonitionui.js'; export { default as AdmonitionAutoformat } from './admonitionautoformat.js'; -export type { default as AdmonitionCommand } from './admonitioncommand.js'; +export type { default as AdmonitionCommand, AdmonitionType } from './admonitioncommand.js'; export const icons = { admonitionIcon diff --git a/packages/ckeditor5-admonition/vitest.config.ts b/packages/ckeditor5-admonition/vitest.config.ts index 636654886..22699a78f 100644 --- a/packages/ckeditor5-admonition/vitest.config.ts +++ b/packages/ckeditor5-admonition/vitest.config.ts @@ -11,31 +11,12 @@ export default defineConfig( { svg() ], test: { - browser: { - enabled: true, - name: 'chrome', - provider: 'webdriverio', - providerOptions: {}, - headless: true, - ui: false - }, + environment: "happy-dom", include: [ 'tests/**/*.[jt]s' ], globals: true, watch: false, - passWithNoTests: true, - coverage: { - thresholds: { - lines: 100, - functions: 100, - branches: 100, - statements: 100 - }, - provider: 'istanbul', - include: [ - 'src' - ] - } + passWithNoTests: true } } ); diff --git a/packages/ckeditor5-footnotes/package.json b/packages/ckeditor5-footnotes/package.json index f8914fb70..ca3b4b54f 100644 --- a/packages/ckeditor5-footnotes/package.json +++ b/packages/ckeditor5-footnotes/package.json @@ -33,14 +33,14 @@ "ckeditor5-metadata.json" ], "devDependencies": { - "@ckeditor/ckeditor5-dev-build-tools": "43.0.1", + "@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.34.0", + "@typescript-eslint/eslint-plugin": "~8.36.0", "@typescript-eslint/parser": "^8.0.0", "@vitest/browser": "^3.0.5", "@vitest/coverage-istanbul": "^3.0.5", - "ckeditor5": "45.2.0", + "ckeditor5": "46.0.0", "eslint": "^9.0.0", "eslint-config-ckeditor5": ">=9.1.0", "http-server": "^14.1.0", @@ -54,7 +54,7 @@ "webdriverio": "^9.0.7" }, "peerDependencies": { - "ckeditor5": "45.2.0" + "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 1390b3a26..54d97cf10 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 30d2eeecd..48b6e653b 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 5fefb6834..bd19f8d93 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 004914571..b26f8ec2c 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 30789660c..27d1a61ed 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 5121b8b5c..43dee0936 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 a3bc34c53..e1b0ea396 100644 --- a/packages/ckeditor5-keyboard-marker/package.json +++ b/packages/ckeditor5-keyboard-marker/package.json @@ -35,14 +35,14 @@ "ckeditor5-metadata.json" ], "devDependencies": { - "@ckeditor/ckeditor5-dev-build-tools": "43.0.1", + "@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.34.0", + "@typescript-eslint/eslint-plugin": "~8.36.0", "@typescript-eslint/parser": "^8.0.0", "@vitest/browser": "^3.0.5", "@vitest/coverage-istanbul": "^3.0.5", - "ckeditor5": "45.2.0", + "ckeditor5": "46.0.0", "eslint": "^9.0.0", "eslint-config-ckeditor5": ">=9.1.0", "http-server": "^14.1.0", @@ -56,7 +56,7 @@ "webdriverio": "^9.0.7" }, "peerDependencies": { - "ckeditor5": "45.2.0" + "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 e44c27450..51bc9735a 100644 --- a/packages/ckeditor5-math/package.json +++ b/packages/ckeditor5-math/package.json @@ -35,15 +35,15 @@ "ckeditor5-metadata.json" ], "devDependencies": { - "@ckeditor/ckeditor5-dev-build-tools": "43.0.1", - "@ckeditor/ckeditor5-dev-utils": "43.0.1", + "@ckeditor/ckeditor5-dev-build-tools": "43.1.0", + "@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.34.0", + "@typescript-eslint/eslint-plugin": "~8.36.0", "@typescript-eslint/parser": "^8.0.0", "@vitest/browser": "^3.0.5", "@vitest/coverage-istanbul": "^3.0.5", - "ckeditor5": "45.2.0", + "ckeditor5": "46.0.0", "eslint": "^9.0.0", "eslint-config-ckeditor5": ">=9.1.0", "http-server": "^14.1.0", @@ -57,7 +57,7 @@ "webdriverio": "^9.0.7" }, "peerDependencies": { - "ckeditor5": "45.2.0" + "ckeditor5": "46.0.0" }, "scripts": { "build": "node ./scripts/build-dist.mjs", @@ -90,6 +90,6 @@ } }, "dependencies": { - "@ckeditor/ckeditor5-icons": "45.2.0" + "@ckeditor/ckeditor5-icons": "46.0.0" } } diff --git a/packages/ckeditor5-math/src/automath.ts b/packages/ckeditor5-math/src/automath.ts index bf16eacae..4e54f78cf 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/index.ts b/packages/ckeditor5-math/src/index.ts index 781f07432..f33a90620 100644 --- a/packages/ckeditor5-math/src/index.ts +++ b/packages/ckeditor5-math/src/index.ts @@ -3,6 +3,7 @@ import './augmentation.js'; import "../theme/mathform.css"; export { default as Math } from './math.js'; +export { default as MathUI } from './mathui.js'; export { default as AutoformatMath } from './autoformatmath.js'; export const icons = { diff --git a/packages/ckeditor5-math/src/mathediting.ts b/packages/ckeditor5-math/src/mathediting.ts index 0c51653c3..bd026829c 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 2e120b6c2..05df08fce 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 1823912da..975741452 100644 --- a/packages/ckeditor5-mermaid/package.json +++ b/packages/ckeditor5-mermaid/package.json @@ -35,14 +35,14 @@ "ckeditor5-metadata.json" ], "devDependencies": { - "@ckeditor/ckeditor5-dev-build-tools": "43.0.1", + "@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.34.0", + "@typescript-eslint/eslint-plugin": "~8.36.0", "@typescript-eslint/parser": "^8.0.0", "@vitest/browser": "^3.0.5", "@vitest/coverage-istanbul": "^3.0.5", - "ckeditor5": "45.2.0", + "ckeditor5": "46.0.0", "eslint": "^9.0.0", "eslint-config-ckeditor5": ">=9.1.0", "http-server": "^14.1.0", @@ -56,7 +56,7 @@ "webdriverio": "^9.0.7" }, "peerDependencies": { - "ckeditor5": "45.2.0" + "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 420ab111b..b4de57f8b 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 67e5e1954..fd623a6b2 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 692e707cb..d78c4c060 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 1e2fc2e88..05d7af480 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 e7109c0c0..d5fc6519e 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 863a3f6e8..1f7ccfb2e 100644 --- a/packages/ckeditor5/package.json +++ b/packages/ckeditor5/package.json @@ -23,17 +23,20 @@ "name": "ckeditor5", "targets": { "typecheck": { - "dependsOn": [ "^build" ] + "dependsOn": [ + "^build" + ] } } }, "dependencies": { - "ckeditor5": "45.2.0", - "@triliumnext/ckeditor5-keyboard-marker": "workspace:*", - "@triliumnext/ckeditor5-mermaid": "workspace:*", "@triliumnext/ckeditor5-admonition": "workspace:*", "@triliumnext/ckeditor5-footnotes": "workspace:*", - "@triliumnext/ckeditor5-math": "workspace:*" + "@triliumnext/ckeditor5-keyboard-marker": "workspace:*", + "@triliumnext/ckeditor5-math": "workspace:*", + "@triliumnext/ckeditor5-mermaid": "workspace:*", + "ckeditor5": "46.0.0", + "ckeditor5-premium-features": "46.0.0" }, "devDependencies": { "@types/jquery": "3.5.32" diff --git a/packages/ckeditor5/src/extra_slash_commands.ts b/packages/ckeditor5/src/extra_slash_commands.ts new file mode 100644 index 000000000..ec77b1f94 --- /dev/null +++ b/packages/ckeditor5/src/extra_slash_commands.ts @@ -0,0 +1,139 @@ +import type { Editor } from 'ckeditor5'; +import type { SlashCommandEditorConfig } from 'ckeditor5-premium-features'; +import { icons as footnoteIcons } from '@triliumnext/ckeditor5-footnotes'; +import IconPageBreak from "@ckeditor/ckeditor5-icons/theme/icons/page-break.svg?raw"; +import IconAlignLeft from "@ckeditor/ckeditor5-icons/theme/icons/align-left.svg?raw"; +import IconAlignCenter from "@ckeditor/ckeditor5-icons/theme/icons/align-center.svg?raw"; +import IconAlignRight from "@ckeditor/ckeditor5-icons/theme/icons/align-right.svg?raw"; +import IconAlignJustify from "@ckeditor/ckeditor5-icons/theme/icons/align-justify.svg?raw"; +import bxInfoCircle from "boxicons/svg/regular/bx-info-circle.svg?raw"; +import bxBulb from "boxicons/svg/regular/bx-bulb.svg?raw"; +import bxCommentError from "boxicons/svg/regular/bx-comment-error.svg?raw"; +import bxErrorCircle from "boxicons/svg/regular/bx-error-circle.svg?raw"; +import bxError from "boxicons/svg/regular/bx-error.svg?raw"; +import { COMMAND_NAME as INSERT_DATE_TIME_COMMAND } from './plugins/insert_date_time.js'; +import { COMMAND_NAME as INTERNAL_LINK_COMMAND } from './plugins/internallink.js'; +import { COMMAND_NAME as INCLUDE_NOTE_COMMAND } from './plugins/includenote.js'; +import { COMMAND_NAME as MARKDOWN_IMPORT_COMMAND } from './plugins/markdownimport.js'; +import { ADMONITION_TYPES, type AdmonitionType } from '@triliumnext/ckeditor5-admonition'; +import dateTimeIcon from './icons/date-time.svg?raw'; +import internalLinkIcon from './icons/trilium.svg?raw'; +import noteIcon from './icons/note.svg?raw'; +import importMarkdownIcon from './icons/markdown-mark.svg?raw'; +import { icons as mathIcons, MathUI } from '@triliumnext/ckeditor5-math'; + +type SlashCommandDefinition = SlashCommandEditorConfig["extraCommands"][number]; + +export default function buildExtraCommands(): SlashCommandDefinition[] { + return [ + ...buildAlignmentExtraCommands(), + ...buildAdmonitionExtraCommands(), + { + id: 'footnote', + title: 'Footnote', + description: 'Create a new footnote and reference it here', + icon: footnoteIcons.insertFootnoteIcon, + commandName: "InsertFootnote" + }, + { + id: "datetime", + title: "Insert Date/Time", + description: "Insert the current date and time", + icon: dateTimeIcon, + commandName: INSERT_DATE_TIME_COMMAND + }, + { + id: "internal-link", + title: "Internal Trilium link", + description: "Insert a link to another Trilium note", + aliases: [ "internal link", "trilium link", "reference link" ], + icon: internalLinkIcon, + commandName: INTERNAL_LINK_COMMAND + }, + { + id: "math", + title: "Math equation", + description: "Insert a math equation", + icon: mathIcons.ckeditor, + execute: (editor: Editor) => editor.plugins.get(MathUI)._showUI() + }, + { + id: "include-note", + title: "Include note", + description: "Display the content of another note in this note", + icon: noteIcon, + commandName: INCLUDE_NOTE_COMMAND + }, + { + id: "page-break", + title: "Page break", + description: "Insert a page break (for printing)", + icon: IconPageBreak, + commandName: "pageBreak" + }, + { + id: "markdown-import", + title: "Markdown import", + description: "Import a markdown file into this note", + icon: importMarkdownIcon, + commandName: MARKDOWN_IMPORT_COMMAND + } + ]; +} + +function buildAlignmentExtraCommands(): SlashCommandDefinition[] { + return [ + { + id: "align-left", + title: "Align Left", + description: "Align text to the left", + icon: IconAlignLeft, + execute: (editor: Editor) => editor.execute("alignment", { value: "left" }), + }, + { + id: "align-center", + title: "Align Center", + description: "Align text to the center", + icon: IconAlignCenter, + execute: (editor: Editor) => editor.execute("alignment", { value: "center" }), + }, + { + id: "align-right", + title: "Align Right", + description: "Align text to the right", + icon: IconAlignRight, + execute: (editor: Editor) => editor.execute("alignment", { value: "right" }), + }, + { + id: "align-justify", + title: "Justify", + description: "Justify text alignment", + icon: IconAlignJustify, + execute: (editor: Editor) => editor.execute("alignment", { value: "justify" }), + } + ]; +} + +function buildAdmonitionExtraCommands(): SlashCommandDefinition[] { + const commands: SlashCommandDefinition[] = []; + const admonitionIcons: Record = { + note: bxInfoCircle, + tip: bxBulb, + important: bxCommentError, + caution: bxErrorCircle, + warning: bxError, + }; + + for (const [ keyword, definition ] of Object.entries(ADMONITION_TYPES)) { + commands.push({ + id: keyword, + title: definition.title, + description: "Inserts a new admonition", + icon: admonitionIcons[keyword as AdmonitionType], + execute: (editor: Editor) => editor.execute("admonition", { forceValue: keyword as AdmonitionType }), + aliases: [ "box" ] + }); + } + return commands; +} + diff --git a/packages/ckeditor5/src/index.ts b/packages/ckeditor5/src/index.ts index 117d14574..0bdc4c493 100644 --- a/packages/ckeditor5/src/index.ts +++ b/packages/ckeditor5/src/index.ts @@ -1,9 +1,13 @@ import "ckeditor5/ckeditor5.css"; import "./theme/code_block_toolbar.css"; -import { COMMON_PLUGINS, CORE_PLUGINS, POPUP_EDITOR_PLUGINS } from "./plugins"; +import { COMMON_PLUGINS, CORE_PLUGINS, POPUP_EDITOR_PLUGINS } from "./plugins.js"; import { BalloonEditor, DecoupledEditor, FindAndReplaceEditing, FindCommand } from "ckeditor5"; +import "./translation_overrides.js"; export { EditorWatchdog } from "ckeditor5"; -export type { EditorConfig, MentionFeed, MentionFeedObjectItem, Node, Position, Element, WatchdogConfig } from "ckeditor5"; +export { PREMIUM_PLUGINS } from "./plugins.js"; +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"; // Import with sideffects to ensure that type augmentations are present. import "@triliumnext/ckeditor5-math"; @@ -25,6 +29,7 @@ export type FindCommandResult = ReturnType; * The text editor that can be used for editing attributes and relations. */ export class AttributeEditor extends BalloonEditor { + static override get builtinPlugins() { return CORE_PLUGINS; } diff --git a/packages/ckeditor5/src/plugins.ts b/packages/ckeditor5/src/plugins.ts index ae64b7ea0..a16ad1bbb 100644 --- a/packages/ckeditor5/src/plugins.ts +++ b/packages/ckeditor5/src/plugins.ts @@ -1,4 +1,5 @@ -import { Autoformat, AutoLink, BlockQuote, BlockToolbar, Bold, CKFinderUploadAdapter, Clipboard, Code, CodeBlock, Enter, FindAndReplace, Font, FontBackgroundColor, FontColor, GeneralHtmlSupport, Heading, HeadingButtonsUI, HorizontalLine, Image, ImageCaption, ImageInline, ImageResize, ImageStyle, ImageToolbar, ImageUpload, Alignment, Indent, IndentBlock, Italic, Link, List, ListProperties, Mention, PageBreak, Paragraph, ParagraphButtonUI, PasteFromOffice, PictureEditing, RemoveFormat, SelectAll, ShiftEnter, SpecialCharacters, SpecialCharactersEssentials, Strikethrough, Style, Subscript, Superscript, Table, TableCaption, TableCellProperties, TableColumnResize, TableProperties, TableSelection, TableToolbar, TextPartLanguage, TextTransformation, TodoList, Typing, Underline, Undo, Bookmark, Emoji } from "ckeditor5"; +import { Autoformat, AutoLink, BlockQuote, BlockToolbar, Bold, CKFinderUploadAdapter, Clipboard, Code, CodeBlock, Enter, FindAndReplace, Font, FontBackgroundColor, FontColor, GeneralHtmlSupport, Heading, HeadingButtonsUI, HorizontalLine, Image, ImageCaption, ImageInline, ImageResize, ImageStyle, ImageToolbar, ImageUpload, Alignment, Indent, IndentBlock, Italic, Link, List, ListProperties, Mention, PageBreak, Paragraph, ParagraphButtonUI, PasteFromOffice, PictureEditing, RemoveFormat, SelectAll, ShiftEnter, SpecialCharacters, SpecialCharactersEssentials, Strikethrough, Style, Subscript, Superscript, Table, TableCaption, TableCellProperties, TableColumnResize, TableProperties, TableSelection, TableToolbar, TextPartLanguage, TextTransformation, TodoList, Typing, Underline, Undo, Bookmark, Emoji, Notification, EmojiMention, EmojiPicker } from "ckeditor5"; +import { SlashCommand, Template } from "ckeditor5-premium-features"; import type { Plugin } from "ckeditor5"; import CutToNotePlugin from "./plugins/cuttonote.js"; import UploadimagePlugin from "./plugins/uploadimage.js"; @@ -77,6 +78,14 @@ export const CORE_PLUGINS: typeof Plugin[] = [ ReferenceLink ]; +/** + * Plugins that require a premium CKEditor license key to work. + */ +export const PREMIUM_PLUGINS: typeof Plugin[] = [ + SlashCommand, + Template +]; + /** * The set of plugins that are required for the editor to work. This is used in normal text editors (floating or fixed toolbar) but not in the attribute editor. */ @@ -136,7 +145,8 @@ export const COMMON_PLUGINS: typeof Plugin[] = [ TextPartLanguage, Style, Bookmark, - Emoji, + EmojiMention, + EmojiPicker, ...TRILIUM_PLUGINS, ...EXTERNAL_PLUGINS @@ -147,5 +157,5 @@ export const COMMON_PLUGINS: typeof Plugin[] = [ */ export const POPUP_EDITOR_PLUGINS: typeof Plugin[] = [ ...COMMON_PLUGINS, - BlockToolbar + BlockToolbar, ]; diff --git a/packages/ckeditor5/src/plugins/code_block_toolbar.ts b/packages/ckeditor5/src/plugins/code_block_toolbar.ts index ff9014fd8..4bdd30f0c 100644 --- a/packages/ckeditor5/src/plugins/code_block_toolbar.ts +++ b/packages/ckeditor5/src/plugins/code_block_toolbar.ts @@ -1,4 +1,4 @@ -import { CodeBlock, Plugin, ViewDocumentFragment, WidgetToolbarRepository, type ViewNode } from "ckeditor5"; +import { BalloonToolbarShowEvent, CodeBlock, Plugin, ViewDocumentFragment, WidgetToolbarRepository, type ViewNode } from "ckeditor5"; import CodeBlockLanguageDropdown from "./code_block_language_dropdown"; import CopyToClipboardButton from "./copy_to_clipboard_button"; @@ -37,6 +37,18 @@ export default class CodeBlockToolbar extends Plugin { return null; } }); + + // Hide balloon toolbar when in a code block + if (editor.plugins.has("BalloonToolbar")) { + editor.listenTo(editor.plugins.get('BalloonToolbar'), 'show', (evt) => { + const firstPosition = editor.model.document.selection.getFirstPosition(); + const isInCodeBlock = firstPosition?.findAncestor('codeBlock'); + + if (isInCodeBlock) { + evt.stop(); // Prevent the balloon toolbar from showing + } + }, { priority: 'high' }); + } } } diff --git a/packages/ckeditor5/src/plugins/file_upload/fileuploadcommand.ts b/packages/ckeditor5/src/plugins/file_upload/fileuploadcommand.ts index d5a2c7237..56f9b76b0 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 b44b11126..dcca223f5 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/includenote.ts b/packages/ckeditor5/src/plugins/includenote.ts index 0c7149078..1ce633f35 100644 --- a/packages/ckeditor5/src/plugins/includenote.ts +++ b/packages/ckeditor5/src/plugins/includenote.ts @@ -1,6 +1,8 @@ import { ButtonView, Command, Plugin, toWidget, Widget, type Editor, type Observable } from 'ckeditor5'; import noteIcon from '../icons/note.svg?raw'; +export const COMMAND_NAME = 'insertIncludeNote'; + export default class IncludeNote extends Plugin { static get requires() { return [ IncludeNoteEditing, IncludeNoteUI ]; @@ -16,7 +18,7 @@ class IncludeNoteUI extends Plugin { // to be displayed in the toolbar. editor.ui.componentFactory.add( 'includeNote', locale => { // The state of the button will be bound to the widget command. - const command = editor.commands.get( 'insertIncludeNote' ); + const command = editor.commands.get( COMMAND_NAME ); // The button will be an instance of ButtonView. const buttonView = new ButtonView( locale ); @@ -35,7 +37,7 @@ class IncludeNoteUI extends Plugin { } // Execute the command when the button is clicked (executed). - this.listenTo( buttonView, 'execute', () => editor.execute( 'insertIncludeNote' ) ); + this.listenTo( buttonView, 'execute', () => editor.execute( COMMAND_NAME ) ); return buttonView; } ); @@ -51,7 +53,7 @@ class IncludeNoteEditing extends Plugin { this._defineSchema(); this._defineConverters(); - this.editor.commands.add( 'insertIncludeNote', new InsertIncludeNoteCommand( this.editor ) ); + this.editor.commands.add( COMMAND_NAME, new InsertIncludeNoteCommand( this.editor ) ); } _defineSchema() { diff --git a/packages/ckeditor5/src/plugins/indent_block_shortcut.ts b/packages/ckeditor5/src/plugins/indent_block_shortcut.ts index ce00462a5..2e65e978c 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/insert_date_time.ts b/packages/ckeditor5/src/plugins/insert_date_time.ts index f08d616a9..b105297e5 100644 --- a/packages/ckeditor5/src/plugins/insert_date_time.ts +++ b/packages/ckeditor5/src/plugins/insert_date_time.ts @@ -1,10 +1,14 @@ -import { ButtonView, Plugin } from 'ckeditor5'; +import { ButtonView, Command, Plugin } from 'ckeditor5'; import dateTimeIcon from '../icons/date-time.svg?raw'; +export const COMMAND_NAME = 'insertDateTimeToText'; + export default class InsertDateTimePlugin extends Plugin { init() { const editor = this.editor; + editor.commands.add(COMMAND_NAME, new InsertDateTimeCommand(editor)); + editor.ui.componentFactory.add('dateTime', locale => { const view = new ButtonView( locale ); @@ -15,17 +19,30 @@ export default class InsertDateTimePlugin extends Plugin { } ); // enable only if the editor is not read only - view.bind('isEnabled').to(editor, 'isReadOnly', isReadOnly => !isReadOnly); - + const command = editor.commands.get(COMMAND_NAME)!; + view.bind('isEnabled').to(command, 'isEnabled'); view.on('execute', () => { - const editorEl = editor.editing.view.getDomRoot(); - const component = glob.getComponentByEl(editorEl); - - component.triggerCommand('insertDateTimeToText'); + editor.execute(COMMAND_NAME); editor.editing.view.focus(); - } ); - + }); return view; }); } -} \ No newline at end of file +} + +class InsertDateTimeCommand extends Command { + + refresh() { + this.isEnabled = !this.editor.isReadOnly; + } + + execute() { + const editor = this.editor; + const editorEl = editor.editing.view.getDomRoot(); + const component = glob.getComponentByEl(editorEl); + + component.triggerCommand('insertDateTimeToText'); + editor.editing.view.focus(); + } + +} diff --git a/packages/ckeditor5/src/plugins/internallink.ts b/packages/ckeditor5/src/plugins/internallink.ts index 895de239a..f6045dbc9 100644 --- a/packages/ckeditor5/src/plugins/internallink.ts +++ b/packages/ckeditor5/src/plugins/internallink.ts @@ -1,7 +1,9 @@ -import { ButtonView, Plugin } from 'ckeditor5'; +import { ButtonView, Command, Plugin } from 'ckeditor5'; import internalLinkIcon from '../icons/trilium.svg?raw'; import ReferenceLink from './referencelink'; +export const COMMAND_NAME = 'insertInternalLink'; + export default class InternalLinkPlugin extends Plugin { static get requires() { @@ -11,6 +13,8 @@ export default class InternalLinkPlugin extends Plugin { init() { const editor = this.editor; + editor.commands.add(COMMAND_NAME, new InsertInternalLinkCommand(editor)); + editor.ui.componentFactory.add('internalLink', locale => { const view = new ButtonView( locale ); @@ -21,16 +25,28 @@ export default class InternalLinkPlugin extends Plugin { } ); // enable internal link only if the editor is not read only - view.bind('isEnabled').to(editor, 'isReadOnly', isReadOnly => !isReadOnly); - + const command = editor.commands.get(COMMAND_NAME)!; + view.bind('isEnabled').to(command, 'isEnabled'); view.on('execute', () => { - const editorEl = editor.editing.view.getDomRoot(); - const component = glob.getComponentByEl(editorEl); - - component.triggerCommand('addLinkToText'); + editor.execute(COMMAND_NAME); } ); return view; }); } } + +class InsertInternalLinkCommand extends Command { + + refresh() { + this.isEnabled = !this.editor.isReadOnly; + } + + execute() { + const editor = this.editor; + const editorEl = editor.editing.view.getDomRoot(); + const component = glob.getComponentByEl(editorEl); + + component.triggerCommand('addLinkToText'); + } +} diff --git a/packages/ckeditor5/src/plugins/markdownimport.ts b/packages/ckeditor5/src/plugins/markdownimport.ts index 2da1c7e4e..c00b9f7f6 100644 --- a/packages/ckeditor5/src/plugins/markdownimport.ts +++ b/packages/ckeditor5/src/plugins/markdownimport.ts @@ -1,10 +1,14 @@ -import { ButtonView, Plugin } from 'ckeditor5'; +import { ButtonView, Command, Plugin } from 'ckeditor5'; import markdownIcon from '../icons/markdown-mark.svg?raw'; +export const COMMAND_NAME = 'importMarkdownInline'; + export default class MarkdownImportPlugin extends Plugin { init() { const editor = this.editor; + editor.commands.add(COMMAND_NAME, new ImportMarkdownCommand(editor)); + editor.ui.componentFactory.add( 'markdownImport', locale => { const view = new ButtonView( locale ); @@ -15,11 +19,19 @@ export default class MarkdownImportPlugin extends Plugin { } ); // Callback executed once the image is clicked. - view.on( 'execute', () => { - glob.importMarkdownInline(); - } ); + const command = editor.commands.get(COMMAND_NAME)!; + view.bind('isEnabled').to(command, 'isEnabled'); + view.on('execute', () => editor.execute(COMMAND_NAME)); return view; } ); } } + +class ImportMarkdownCommand extends Command { + + execute() { + glob.importMarkdownInline(); + } + +} diff --git a/packages/ckeditor5/src/plugins/mention_customization.ts b/packages/ckeditor5/src/plugins/mention_customization.ts index eed0960ca..6b844a5f6 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): @@ -13,6 +13,10 @@ export default class MentionCustomization extends Plugin { return [ Mention ]; } + public static get pluginName() { + return "MentionCustomization" as const; + } + afterInit() { const editor = this.editor; // override standard mention command (see https://github.com/ckeditor/ckeditor5/issues/6470) @@ -27,7 +31,7 @@ interface MentionOpts { }; marker: string; text?: string; - range?: Range; + range?: ModelRange; } interface MentionAttribute { @@ -44,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 => { @@ -65,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 e804bb426..2c6e7dc80 100644 --- a/packages/ckeditor5/src/plugins/move_block_updown.ts +++ b/packages/ckeditor5/src/plugins/move_block_updown.ts @@ -1,73 +1,146 @@ /** - * https://github.com/TriliumNext/Notes/issues/1002 + * https://github.com/TriliumNext/Trilium/issues/1002 */ -import { Command, DocumentSelection, Element, Node, Plugin } from 'ckeditor5'; - +import { Command, ModelDocumentSelection, ModelElement, ModelNode, Plugin, ModelRange } from 'ckeditor5'; export default class MoveBlockUpDownPlugin extends Plugin { init() { const editor = this.editor; - editor.config.define('moveBlockUp', { - keystroke: ['ctrl+arrowup', 'alt+arrowup'], - }); - editor.config.define('moveBlockDown', { - keystroke: ['ctrl+arrowdown', 'alt+arrowdown'], - }); editor.commands.add('moveBlockUp', new MoveBlockUpCommand(editor)); editor.commands.add('moveBlockDown', new MoveBlockDownCommand(editor)); - for (const keystroke of editor.config.get('moveBlockUp.keystroke') ?? []) { - editor.keystrokes.set(keystroke, 'moveBlockUp'); - } - for (const keystroke of editor.config.get('moveBlockDown.keystroke') ?? []) { - editor.keystrokes.set(keystroke, 'moveBlockDown'); - } + // Use native DOM capturing to intercept Ctrl/Alt + ↑/↓, + // as plugin-level keystroke handling may fail when the selection is near an object. + this.bindMoveBlockShortcuts(editor); } + bindMoveBlockShortcuts(editor: any) { + editor.editing.view.once('render', () => { + const domRoot = editor.editing.view.getDomRoot(); + if (!domRoot) return; + + const handleKeydown = (e: KeyboardEvent) => { + const keyMap = { + ArrowUp: 'moveBlockUp', + ArrowDown: 'moveBlockDown' + }; + + const command = keyMap[e.key]; + const isCtrl = e.ctrlKey || e.metaKey; + const hasModifier = (isCtrl || e.altKey) && !(isCtrl && e.altKey); + + if (command && hasModifier) { + e.preventDefault(); + e.stopImmediatePropagation(); + editor.execute(command); + } + }; + + domRoot.addEventListener('keydown', handleKeydown, { capture: true }); + }); + } + } abstract class MoveBlockUpDownCommand extends Command { - abstract getSelectedBlocks(selection: DocumentSelection): Element[]; - abstract getSibling(selectedBlock: Element): Node | null; + abstract getSibling(selectedBlock: ModelElement): ModelNode | null; abstract get offset(): "before" | "after"; - override refresh() { - const selection = this.editor.model.document.selection; - const selectedBlocks = this.getSelectedBlocks(selection); - - this.isEnabled = true; - for (const selectedBlock of selectedBlocks) { - if (!this.getSibling(selectedBlock)) this.isEnabled = false; - } - } - override execute() { const model = this.editor.model; const selection = model.document.selection; const selectedBlocks = this.getSelectedBlocks(selection); + const isEnabled = selectedBlocks.length > 0 + && selectedBlocks.every(block => !!this.getSibling(block)); + + if (!isEnabled) { + return; + } + + const movingBlocks = this.offset === 'before' + ? selectedBlocks + : [...selectedBlocks].reverse(); + + // Store selection offsets + const firstBlock = selectedBlocks[0]; + const lastBlock = selectedBlocks[selectedBlocks.length - 1]; + const startOffset = model.document.selection.getFirstPosition()?.offset ?? 0; + const endOffset = model.document.selection.getLastPosition()?.offset ?? 0; model.change((writer) => { - for (const selectedBlock of selectedBlocks) { - const sibling = this.getSibling(selectedBlock); + // Move blocks + for (const block of movingBlocks) { + const sibling = this.getSibling(block); if (sibling) { - const range = model.createRangeOn(selectedBlock); + const range = model.createRangeOn(block); writer.move(range, sibling, this.offset); } } + + // Restore selection + let range: ModelRange; + const maxStart = firstBlock.maxOffset ?? startOffset; + const maxEnd = lastBlock.maxOffset ?? endOffset; + // If original offsets valid within bounds, restore partial selection + if (startOffset <= maxStart && endOffset <= maxEnd) { + const clampedStart = Math.min(startOffset, maxStart); + const clampedEnd = Math.min(endOffset, maxEnd); + range = writer.createRange( + writer.createPositionAt(firstBlock, clampedStart), + writer.createPositionAt(lastBlock, clampedEnd) + ); + } else { // Fallback: select entire moved blocks (handles tables) + range = writer.createRange( + writer.createPositionBefore(firstBlock), + writer.createPositionAfter(lastBlock) + ); + } + writer.setSelection(range); + this.editor.editing.view.focus(); + + this.scrollToSelection(); }); + } + + getSelectedBlocks(selection: ModelDocumentSelection) { + const blocks = [...selection.getSelectedBlocks()]; + const resolved: ModelElement[] = []; + + // Selects elements (such as Mermaid) when there are no blocks + if (!blocks.length) { + const selectedObj = selection.getSelectedElement(); + if (selectedObj) { + return [selectedObj]; + } + } + + for (const block of blocks) { + 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 ModelElement; + } + resolved.push(el); + } + + // Deduplicate adjacent duplicates (e.g., nested selections resolving to same block) + return resolved.filter((blk, idx) => idx === 0 || blk !== resolved[idx - 1]); } + + scrollToSelection() { + // Ensure scroll happens in sync with DOM updates + requestAnimationFrame(() => { + this.editor.editing.view.scrollToTheSelection(); + }); + }; } class MoveBlockUpCommand extends MoveBlockUpDownCommand { - getSelectedBlocks(selection: DocumentSelection) { - return [...selection.getSelectedBlocks()]; - } - - getSibling(selectedBlock: Element) { + getSibling(selectedBlock: ModelElement) { return selectedBlock.previousSibling; } @@ -80,12 +153,7 @@ class MoveBlockUpCommand extends MoveBlockUpDownCommand { class MoveBlockDownCommand extends MoveBlockUpDownCommand { /** @override */ - getSelectedBlocks(selection: DocumentSelection) { - return [...selection.getSelectedBlocks()].reverse(); - } - - /** @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 a790eb0a1..7569d2fa6 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 18c5fae9c..f9d656964 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/ckeditor5/src/translation_overrides.ts b/packages/ckeditor5/src/translation_overrides.ts new file mode 100644 index 000000000..47c167d51 --- /dev/null +++ b/packages/ckeditor5/src/translation_overrides.ts @@ -0,0 +1,8 @@ +window.CKEDITOR_TRANSLATIONS = { + en: { + dictionary: { + "Insert template": "Insert text snippet", + "Search template": "Search text snippet" + } + } +}; diff --git a/packages/ckeditor5/tests/templates.ts b/packages/ckeditor5/tests/templates.ts new file mode 100644 index 000000000..f8894ac60 --- /dev/null +++ b/packages/ckeditor5/tests/templates.ts @@ -0,0 +1,37 @@ +import { it } from "vitest"; +import { describe } from "vitest"; +import { ClassicEditor } from "../src/index.js"; +import { type BalloonEditor, type ButtonView, type Editor } from "ckeditor5"; +import { beforeEach } from "vitest"; +import { expect } from "vitest"; + +describe("Text snippets", () => { + let editorElement: HTMLDivElement; + let editor: Editor; + + beforeEach(async () => { + editorElement = document.createElement( 'div' ); + document.body.appendChild( editorElement ); + + console.log("Trigger each"); + + editor = await ClassicEditor.create(editorElement, { + licenseKey: "GPL", + toolbar: { + items: [ + "insertTemplate" + ] + } + }); + }); + + it("uses correct translations", () => { + const itemsWithButtonView = Array.from(editor.ui.view.toolbar?.items) + .filter(item => "buttonView" in item) + .map(item => (item.buttonView as ButtonView).label); + + expect(itemsWithButtonView).not.toContain("Insert template"); + expect(itemsWithButtonView).toContain("Insert text snippet"); + }); +}); + diff --git a/packages/codemirror/package.json b/packages/codemirror/package.json index e99ec1e88..e146c8b8a 100644 --- a/packages/codemirror/package.json +++ b/packages/codemirror/package.json @@ -23,14 +23,14 @@ "@codemirror/lang-css": "6.3.1", "@codemirror/lang-html": "6.4.9", "@codemirror/lang-javascript": "6.2.4", - "@codemirror/lang-json": "6.0.1", - "@codemirror/lang-markdown": "6.3.2", - "@codemirror/lang-php": "6.0.1", + "@codemirror/lang-json": "6.0.2", + "@codemirror/lang-markdown": "6.3.3", + "@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.37.1", + "@codemirror/view": "6.38.0", "@fsegurai/codemirror-theme-abcdef": "6.2.0", "@fsegurai/codemirror-theme-abyss": "6.2.0", "@fsegurai/codemirror-theme-android-studio": "6.2.0", @@ -59,8 +59,9 @@ "@replit/codemirror-vim": "6.3.0", "@ssddanbrown/codemirror-lang-smarty": "1.0.0", "@ssddanbrown/codemirror-lang-twig": "1.0.0", + "codemirror-lang-elixir": "4.0.0", "codemirror-lang-hcl": "0.1.0", "codemirror-lang-mermaid": "0.5.0", - "eslint-linter-browserify": "9.28.0" + "eslint-linter-browserify": "9.31.0" } } diff --git a/packages/codemirror/src/syntax_highlighting.ts b/packages/codemirror/src/syntax_highlighting.ts index 9fffa31b3..40a0d721d 100644 --- a/packages/codemirror/src/syntax_highlighting.ts +++ b/packages/codemirror/src/syntax_highlighting.ts @@ -84,6 +84,7 @@ const byMimeType: Record Promise | Language "text/x-ebnf": async () => (await import('@codemirror/legacy-modes/mode/ebnf')).ebnf, "text/x-ecl": async () => (await import('@codemirror/legacy-modes/mode/ecl')).ecl, "text/x-eiffel": async () => (await import('@codemirror/legacy-modes/mode/eiffel')).eiffel, + "text/x-elixir": async () => (await import('codemirror-lang-elixir')).elixir(), "text/x-elm": async () => (await import('@codemirror/legacy-modes/mode/elm')).elm, "text/x-erlang": async () => (await import('@codemirror/legacy-modes/mode/erlang')).erlang, "text/x-esper": async () => (await import('@codemirror/legacy-modes/mode/sql')).esper, diff --git a/packages/commons/package.json b/packages/commons/package.json index 16894e80a..2bccaf60c 100644 --- a/packages/commons/package.json +++ b/packages/commons/package.json @@ -1,6 +1,6 @@ { "name": "@triliumnext/commons", - "version": "0.94.1", + "version": "0.96.0", "description": "Shared library between the clients (e.g. browser, Electron) and the server, mostly for type definitions and utility methods.", "private": true, "type": "module", @@ -18,7 +18,7 @@ }, "license": "AGPL-3.0-only", "author": { - "name": "TriliumNext Notes Team", + "name": "Trilium Notes Team", "email": "contact@eliandoran.me", "url": "https://github.com/TriliumNext/Notes" }, diff --git a/packages/commons/src/lib/hidden_subtree.ts b/packages/commons/src/lib/hidden_subtree.ts index 54f386668..8440fdeb3 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, @@ -12,7 +10,7 @@ enum Command { } export interface HiddenSubtreeAttribute { - type: AttributeType; + type: "label" | "relation"; name: string; isInheritable?: boolean; value?: string; @@ -23,6 +21,9 @@ export interface HiddenSubtreeItem { id: string; title: string; type: LauncherNoteType; + /** + * The icon to use for this item, in the format "bx-icon-name" (e.g., `bx-file-blank`), *without* the leading `bx `. + */ icon?: string; attributes?: HiddenSubtreeAttribute[]; children?: HiddenSubtreeItem[]; diff --git a/packages/commons/src/lib/mime_type.ts b/packages/commons/src/lib/mime_type.ts index 039201cba..ba6deafc8 100644 --- a/packages/commons/src/lib/mime_type.ts +++ b/packages/commons/src/lib/mime_type.ts @@ -9,8 +9,6 @@ export interface MimeTypeDefinition { mime: string; /** The name of the language/mime type as defined by highlight.js (or one of the aliases), in order to be used for syntax highlighting such as inside code blocks. */ mdLanguageCode?: string; - /** If specified, will load the corresponding highlight file from the given path instead of `node_modules`. */ - codeMirrorSource?: string; } export interface MimeType extends MimeTypeDefinition { @@ -43,7 +41,7 @@ export const MIME_TYPES_DICT: readonly MimeTypeDefinition[] = Object.freeze([ { title: "ASN.1", mime: "text/x-ttcn-asn" }, { title: "ASP.NET", mime: "application/x-aspx" }, { title: "Asterisk", mime: "text/x-asterisk" }, - { title: "Batch file (DOS)", mime: "application/x-bat", highlightJs: "dos", codeMirrorSource: "libraries/codemirror/batch.js" }, + { title: "Batch file (DOS)", mime: "application/x-bat", highlightJs: "dos" }, { title: "Brainfuck", mime: "text/x-brainfuck", mdLanguageCode: "brainfuck" }, { title: "C", mime: "text/x-csrc", mdLanguageCode: "c", default: true }, { title: "C#", mime: "text/x-csharp", mdLanguageCode: "csharp", default: true }, @@ -71,6 +69,7 @@ export const MIME_TYPES_DICT: readonly MimeTypeDefinition[] = Object.freeze([ { title: "ECL", mime: "text/x-ecl" }, { title: "edn", mime: "application/edn" }, { title: "Eiffel", mime: "text/x-eiffel" }, + { title: "Elixir", mime: "text/x-elixir", mdLanguageCode: "elixir" }, { title: "Elm", mime: "text/x-elm", mdLanguageCode: "elm" }, { title: "Embedded Javascript", mime: "application/x-ejs" }, { title: "Embedded Ruby", mime: "application/x-erb", mdLanguageCode: "erb" }, @@ -174,7 +173,7 @@ export const MIME_TYPES_DICT: readonly MimeTypeDefinition[] = Object.freeze([ { title: "Swift", mime: "text/x-swift", default: true }, { title: "SystemVerilog", mime: "text/x-systemverilog" }, { title: "Tcl", mime: "text/x-tcl", mdLanguageCode: "tcl" }, - { title: "Terraform (HCL)", mime: "text/x-hcl", highlightJs: "terraform", highlightJsSource: "libraries", codeMirrorSource: "libraries/codemirror/hcl.js" }, + { title: "Terraform (HCL)", mime: "text/x-hcl", highlightJs: "terraform" }, { title: "Textile", mime: "text/x-textile" }, { title: "TiddlyWiki ", mime: "text/x-tiddlywiki" }, { title: "Tiki wiki", mime: "text/tiki" }, diff --git a/packages/commons/src/lib/options_interface.ts b/packages/commons/src/lib/options_interface.ts index 0d0cebcea..0d21b0ba1 100644 --- a/packages/commons/src/lib/options_interface.ts +++ b/packages/commons/src/lib/options_interface.ts @@ -118,6 +118,10 @@ export interface OptionDefinitions extends KeyboardShortcutsOptions import("highlight.js/lib/languages/ebnf"), "text/x-ecl": null, "text/x-eiffel": null, + "text/x-elixir": () => import("highlight.js/lib/languages/elixir"), "text/x-elm": () => import("highlight.js/lib/languages/elm"), "text/x-erlang": () => import("highlight.js/lib/languages/erlang"), "text/x-esper": null, diff --git a/packages/share-theme/package-lock.json b/packages/share-theme/package-lock.json deleted file mode 100644 index d28ae12ae..000000000 --- a/packages/share-theme/package-lock.json +++ /dev/null @@ -1,2562 +0,0 @@ -{ - "name": "@triliumnext/share-theme", - "version": "1.0.3", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "@triliumnext/share-theme", - "version": "1.0.3", - "license": "ISC", - "devDependencies": { - "@digitak/esrun": "^3.2.24", - "@types/swagger-ui": "^3.52.0", - "@typescript-eslint/eslint-plugin": "^6.7.2", - "@typescript-eslint/parser": "^6.7.2", - "dotenv": "^16.3.1", - "esbuild": "^0.25.0", - "eslint": "^8.49.0", - "highlight.js": "^11.8.0", - "typescript": "^5.2.2" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@digitak/esrun": { - "version": "3.2.24", - "resolved": "https://registry.npmjs.org/@digitak/esrun/-/esrun-3.2.24.tgz", - "integrity": "sha512-HvD1eSuZVBaFZpKU/kl2rzDELCAbAnrFO2in855IrX15Zji4sdrekiEQph+eq5W5xjCyc254zx/Bh8RM2216mg==", - "dev": true, - "dependencies": { - "@digitak/grubber": "^3.1.4", - "chokidar": "^3.5.1", - "esbuild": "^0.17.4" - }, - "bin": { - "esrun": "bin.js" - }, - "engines": { - "node": ">=14.0" - } - }, - "node_modules/@digitak/esrun/node_modules/@esbuild/android-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", - "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@digitak/esrun/node_modules/@esbuild/android-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", - "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@digitak/esrun/node_modules/@esbuild/android-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", - "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@digitak/esrun/node_modules/@esbuild/darwin-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", - "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@digitak/esrun/node_modules/@esbuild/darwin-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", - "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@digitak/esrun/node_modules/@esbuild/freebsd-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", - "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@digitak/esrun/node_modules/@esbuild/freebsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", - "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@digitak/esrun/node_modules/@esbuild/linux-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", - "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@digitak/esrun/node_modules/@esbuild/linux-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", - "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@digitak/esrun/node_modules/@esbuild/linux-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", - "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@digitak/esrun/node_modules/@esbuild/linux-loong64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", - "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@digitak/esrun/node_modules/@esbuild/linux-mips64el": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", - "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@digitak/esrun/node_modules/@esbuild/linux-ppc64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", - "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@digitak/esrun/node_modules/@esbuild/linux-riscv64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", - "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@digitak/esrun/node_modules/@esbuild/linux-s390x": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", - "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@digitak/esrun/node_modules/@esbuild/linux-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", - "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@digitak/esrun/node_modules/@esbuild/netbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", - "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@digitak/esrun/node_modules/@esbuild/openbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", - "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@digitak/esrun/node_modules/@esbuild/sunos-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", - "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@digitak/esrun/node_modules/@esbuild/win32-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", - "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@digitak/esrun/node_modules/@esbuild/win32-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", - "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@digitak/esrun/node_modules/@esbuild/win32-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", - "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@digitak/esrun/node_modules/esbuild": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", - "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.17.19", - "@esbuild/android-arm64": "0.17.19", - "@esbuild/android-x64": "0.17.19", - "@esbuild/darwin-arm64": "0.17.19", - "@esbuild/darwin-x64": "0.17.19", - "@esbuild/freebsd-arm64": "0.17.19", - "@esbuild/freebsd-x64": "0.17.19", - "@esbuild/linux-arm": "0.17.19", - "@esbuild/linux-arm64": "0.17.19", - "@esbuild/linux-ia32": "0.17.19", - "@esbuild/linux-loong64": "0.17.19", - "@esbuild/linux-mips64el": "0.17.19", - "@esbuild/linux-ppc64": "0.17.19", - "@esbuild/linux-riscv64": "0.17.19", - "@esbuild/linux-s390x": "0.17.19", - "@esbuild/linux-x64": "0.17.19", - "@esbuild/netbsd-x64": "0.17.19", - "@esbuild/openbsd-x64": "0.17.19", - "@esbuild/sunos-x64": "0.17.19", - "@esbuild/win32-arm64": "0.17.19", - "@esbuild/win32-ia32": "0.17.19", - "@esbuild/win32-x64": "0.17.19" - } - }, - "node_modules/@digitak/grubber": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@digitak/grubber/-/grubber-3.1.4.tgz", - "integrity": "sha512-pqsnp2BUYlDoTXWG34HWgEJse/Eo1okRgNex8IG84wHrJp8h3SakeR5WhB4VxSA2+/D+frNYJ0ch3yXzsfNDoA==", - "dev": true - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.5.tgz", - "integrity": "sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.5.tgz", - "integrity": "sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.5.tgz", - "integrity": "sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.5.tgz", - "integrity": "sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.5.tgz", - "integrity": "sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.5.tgz", - "integrity": "sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.5.tgz", - "integrity": "sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.5.tgz", - "integrity": "sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.5.tgz", - "integrity": "sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.5.tgz", - "integrity": "sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.5.tgz", - "integrity": "sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.5.tgz", - "integrity": "sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.5.tgz", - "integrity": "sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.5.tgz", - "integrity": "sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.5.tgz", - "integrity": "sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.5.tgz", - "integrity": "sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.5.tgz", - "integrity": "sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.5.tgz", - "integrity": "sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.5.tgz", - "integrity": "sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.5.tgz", - "integrity": "sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.5.tgz", - "integrity": "sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.5.tgz", - "integrity": "sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.5.tgz", - "integrity": "sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.5.tgz", - "integrity": "sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.5.tgz", - "integrity": "sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.1.tgz", - "integrity": "sha512-PWiOzLIUAjN/w5K17PoF4n6sKBw0gqLHPhywmYHP4t1VFQQVYeb1yWsJwnMVEMl3tUHME7X/SJPZLmtG7XBDxQ==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/js": { - "version": "8.49.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.49.0.tgz", - "integrity": "sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.11", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", - "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.13", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", - "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==", - "dev": true - }, - "node_modules/@types/semver": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.2.tgz", - "integrity": "sha512-7aqorHYgdNO4DM36stTiGO3DvKoex9TQRwsJU6vMaFGyqpBA1MNZkz+PG3gaNUPpTAOYhT1WR7M1JyA3fbS9Cw==", - "dev": true - }, - "node_modules/@types/swagger-ui": { - "version": "3.52.0", - "resolved": "https://registry.npmjs.org/@types/swagger-ui/-/swagger-ui-3.52.0.tgz", - "integrity": "sha512-SlufixEmh+8CLHNgTfAfCT1icNOF7bXboWabhHr1+hIolqlvfwYJGe7HgRcpI3ChE7HWASmEKLkMu34rxseJjQ==", - "dev": true - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.2.tgz", - "integrity": "sha512-ooaHxlmSgZTM6CHYAFRlifqh1OAr3PAQEwi7lhYhaegbnXrnh7CDcHmc3+ihhbQC7H0i4JF0psI5ehzkF6Yl6Q==", - "dev": true, - "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.7.2", - "@typescript-eslint/type-utils": "6.7.2", - "@typescript-eslint/utils": "6.7.2", - "@typescript-eslint/visitor-keys": "6.7.2", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.4", - "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.2.tgz", - "integrity": "sha512-KA3E4ox0ws+SPyxQf9iSI25R6b4Ne78ORhNHeVKrPQnoYsb9UhieoiRoJgrzgEeKGOXhcY1i8YtOeCHHTDa6Fw==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "6.7.2", - "@typescript-eslint/types": "6.7.2", - "@typescript-eslint/typescript-estree": "6.7.2", - "@typescript-eslint/visitor-keys": "6.7.2", - "debug": "^4.3.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.2.tgz", - "integrity": "sha512-bgi6plgyZjEqapr7u2mhxGR6E8WCzKNUFWNh6fkpVe9+yzRZeYtDTbsIBzKbcxI+r1qVWt6VIoMSNZ4r2A+6Yw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.2", - "@typescript-eslint/visitor-keys": "6.7.2" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.2.tgz", - "integrity": "sha512-36F4fOYIROYRl0qj95dYKx6kybddLtsbmPIYNK0OBeXv2j9L5nZ17j9jmfy+bIDHKQgn2EZX+cofsqi8NPATBQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "6.7.2", - "@typescript-eslint/utils": "6.7.2", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.2.tgz", - "integrity": "sha512-flJYwMYgnUNDAN9/GAI3l8+wTmvTYdv64fcH8aoJK76Y+1FCZ08RtI5zDerM/FYT5DMkAc+19E4aLmd5KqdFyg==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.2.tgz", - "integrity": "sha512-kiJKVMLkoSciGyFU0TOY0fRxnp9qq1AzVOHNeN1+B9erKFCJ4Z8WdjAkKQPP+b1pWStGFqezMLltxO+308dJTQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.2", - "@typescript-eslint/visitor-keys": "6.7.2", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.2.tgz", - "integrity": "sha512-ZCcBJug/TS6fXRTsoTkgnsvyWSiXwMNiPzBUani7hDidBdj1779qwM1FIAmpH4lvlOZNF3EScsxxuGifjpLSWQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.7.2", - "@typescript-eslint/types": "6.7.2", - "@typescript-eslint/typescript-estree": "6.7.2", - "semver": "^7.5.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.2.tgz", - "integrity": "sha512-uVw9VIMFBUTz8rIeaUT3fFe8xIUx8r4ywAdlQv1ifH+6acn/XF8Y6rwJ7XNmkNMDrTW+7+vxFFPIF40nJCVsMQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dotenv": { - "version": "16.3.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", - "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/motdotla/dotenv?sponsor=1" - } - }, - "node_modules/esbuild": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.5.tgz", - "integrity": "sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.5", - "@esbuild/android-arm": "0.25.5", - "@esbuild/android-arm64": "0.25.5", - "@esbuild/android-x64": "0.25.5", - "@esbuild/darwin-arm64": "0.25.5", - "@esbuild/darwin-x64": "0.25.5", - "@esbuild/freebsd-arm64": "0.25.5", - "@esbuild/freebsd-x64": "0.25.5", - "@esbuild/linux-arm": "0.25.5", - "@esbuild/linux-arm64": "0.25.5", - "@esbuild/linux-ia32": "0.25.5", - "@esbuild/linux-loong64": "0.25.5", - "@esbuild/linux-mips64el": "0.25.5", - "@esbuild/linux-ppc64": "0.25.5", - "@esbuild/linux-riscv64": "0.25.5", - "@esbuild/linux-s390x": "0.25.5", - "@esbuild/linux-x64": "0.25.5", - "@esbuild/netbsd-arm64": "0.25.5", - "@esbuild/netbsd-x64": "0.25.5", - "@esbuild/openbsd-arm64": "0.25.5", - "@esbuild/openbsd-x64": "0.25.5", - "@esbuild/sunos-x64": "0.25.5", - "@esbuild/win32-arm64": "0.25.5", - "@esbuild/win32-ia32": "0.25.5", - "@esbuild/win32-x64": "0.25.5" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.49.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.49.0.tgz", - "integrity": "sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.49.0", - "@humanwhocodes/config-array": "^0.11.11", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz", - "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==", - "dev": true, - "dependencies": { - "flatted": "^3.2.7", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globals": { - "version": "13.21.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", - "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/highlight.js": { - "version": "11.8.0", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.8.0.tgz", - "integrity": "sha512-MedQhoqVdr0U6SSnWPzfiadUcDHfN/Wzq25AkXiQv9oiOO/sG0S7XkvpFIqWBl9Yq1UYyYOOVORs5UW2XlPyzg==", - "dev": true, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/keyv": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", - "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/ts-api-utils": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", - "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", - "dev": true, - "engines": { - "node": ">=16.13.0" - }, - "peerDependencies": { - "typescript": ">=4.2.0" - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} diff --git a/packages/share-theme/package.json b/packages/share-theme/package.json index f6e6089e2..7c2740589 100644 --- a/packages/share-theme/package.json +++ b/packages/share-theme/package.json @@ -23,12 +23,12 @@ "license": "Apache-2.0", "devDependencies": { "@digitak/esrun": "^3.2.24", - "@types/swagger-ui": "^3.52.0", - "@typescript-eslint/eslint-plugin": "^6.7.2", - "@typescript-eslint/parser": "^6.7.2", - "dotenv": "^16.3.1", + "@types/swagger-ui": "^5.0.0", + "@typescript-eslint/eslint-plugin": "^8.0.0", + "@typescript-eslint/parser": "^8.0.0", + "dotenv": "^17.0.0", "esbuild": "^0.25.0", - "eslint": "^8.49.0", + "eslint": "^9.0.0", "highlight.js": "^11.8.0", "typescript": "^5.2.2" }, diff --git a/patches/@nx__js.patch b/patches/@nx__js.patch new file mode 100644 index 000000000..eb9a069f5 --- /dev/null +++ b/patches/@nx__js.patch @@ -0,0 +1,17 @@ +diff --git a/src/utils/assets/copy-assets-handler.js b/src/utils/assets/copy-assets-handler.js +index 6b68205d833ce9e8277283ac31230c020d2921ec..2f0a7f018b03eae3b8f3ce1a4cf4790aaafed677 100644 +--- a/src/utils/assets/copy-assets-handler.js ++++ b/src/utils/assets/copy-assets-handler.js +@@ -39,12 +39,6 @@ class CopyAssetsHandler { + this.callback = opts.callback ?? exports.defaultFileEventHandler; + // TODO(jack): Should handle nested .gitignore files + this.ignore = (0, ignore_1.default)(); +- const gitignore = pathPosix.join(opts.rootDir, '.gitignore'); +- const nxignore = pathPosix.join(opts.rootDir, '.nxignore'); +- if ((0, node_fs_1.existsSync)(gitignore)) +- this.ignore.add((0, node_fs_1.readFileSync)(gitignore).toString()); +- if ((0, node_fs_1.existsSync)(nxignore)) +- this.ignore.add((0, node_fs_1.readFileSync)(nxignore).toString()); + this.assetGlobs = opts.assets.map((f) => { + let isGlob = false; + let pattern; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0873e8281..6e20f08fe 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,8 +5,10 @@ settings: excludeLinksFromLockfile: false overrides: - node-abi: 4.9.0 - '@types/express-serve-static-core': 5.0.6 + mermaid: 11.8.1 + preact: 10.26.9 + roughjs: 4.6.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' @@ -21,6 +23,9 @@ patchedDependencies: '@ckeditor/ckeditor5-mention': hash: 5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d path: patches/@ckeditor__ckeditor5-mention.patch + '@nx/js': + hash: 7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7 + path: patches/@nx__js.patch ckeditor5: hash: 8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41 path: patches/ckeditor5.patch @@ -28,50 +33,43 @@ patchedDependencies: importers: .: - dependencies: - axios: - specifier: ^1.6.0 - version: 1.9.0(debug@4.4.1) - express: - specifier: ^5.0.0 - version: 5.1.0 devDependencies: '@electron/rebuild': specifier: 4.0.1 version: 4.0.1 '@nx/devkit': - specifier: 21.1.3 - version: 21.1.3(nx@21.1.3(@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.2.3 + version: 21.2.3(nx@21.2.3(@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': - specifier: 21.1.3 - version: 21.1.3(@babel/traverse@7.27.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.1.3(@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.2.3 + version: 21.2.3(@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.6)(nx@21.2.3(@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': - specifier: 21.1.3 - version: 21.1.3(@babel/traverse@7.27.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.28.0(jiti@2.4.2))(nx@21.1.3(@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.2.3 + version: 21.2.3(@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.31.0(jiti@2.4.2))(nx@21.2.3(@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-plugin': - specifier: 21.1.3 - version: 21.1.3(@babel/traverse@7.27.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.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint-config-prettier@10.1.5(eslint@9.28.0(jiti@2.4.2)))(eslint@9.28.0(jiti@2.4.2))(nx@21.1.3(@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.2.3 + version: 21.2.3(@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.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint-config-prettier@10.1.5(eslint@9.31.0(jiti@2.4.2)))(eslint@9.31.0(jiti@2.4.2))(nx@21.2.3(@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/express': - specifier: 21.1.3 - version: 21.1.3(@babel/traverse@7.27.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.15.30)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.28.0(jiti@2.4.2))(express@5.1.0)(nx@21.1.3(@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.15.30)(typescript@5.8.3))(typescript@5.8.3) + specifier: 21.2.3 + version: 21.2.3(@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.3)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.31.0(jiti@2.4.2))(express@4.21.2)(nx@21.2.3(@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.3)(typescript@5.8.3))(typescript@5.8.3) '@nx/js': - specifier: 21.1.3 - version: 21.1.3(@babel/traverse@7.27.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.1.3(@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.2.3 + version: 21.2.3(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.3(@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': - specifier: 21.1.3 - version: 21.1.3(@babel/traverse@7.27.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.15.30)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.28.0(jiti@2.4.2))(nx@21.1.3(@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.15.30)(typescript@5.8.3))(typescript@5.8.3) + specifier: 21.2.3 + version: 21.2.3(@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.3)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.31.0(jiti@2.4.2))(nx@21.2.3(@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.3)(typescript@5.8.3))(typescript@5.8.3) '@nx/playwright': - specifier: 21.1.3 - version: 21.1.3(@babel/traverse@7.27.0)(@playwright/test@1.52.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.28.0(jiti@2.4.2))(nx@21.1.3(@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.2.3 + version: 21.2.3(@babel/traverse@7.28.0)(@playwright/test@1.54.1)(@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.31.0(jiti@2.4.2))(nx@21.2.3(@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/vite': - specifier: 21.1.3 - version: 21.1.3(@babel/traverse@7.27.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.1.3(@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@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0))(vitest@3.2.3) + specifier: 21.2.3 + version: 21.2.3(@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.3(@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.4(@types/node@22.16.3)(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.43.1)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4) '@nx/web': - specifier: 21.1.3 - version: 21.1.3(@babel/traverse@7.27.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.1.3(@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.2.3 + version: 21.2.3(@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.3(@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))) '@playwright/test': specifier: ^1.36.0 - version: 1.52.0 + version: 1.54.1 '@triliumnext/server': specifier: workspace:* version: link:apps/server @@ -79,35 +77,38 @@ importers: specifier: ^5.0.0 version: 5.0.3 '@types/node': - specifier: 22.15.30 - version: 22.15.30 + specifier: 22.16.3 + version: 22.16.3 '@vitest/coverage-v8': specifier: ^3.0.5 - version: 3.2.3(vitest@3.2.3) + version: 3.2.4(@vitest/browser@3.2.4)(vitest@3.2.4) '@vitest/ui': specifier: ^3.0.0 - version: 3.2.3(vitest@3.2.3) + version: 3.2.4(vitest@3.2.4) chalk: specifier: 5.4.1 version: 5.4.1 cross-env: specifier: 7.0.3 version: 7.0.3 + dpdm: + specifier: 3.14.0 + version: 3.14.0 esbuild: specifier: ^0.25.0 - version: 0.25.5 + version: 0.25.6 eslint: specifier: ^9.8.0 - version: 9.28.0(jiti@2.4.2) + version: 9.31.0(jiti@2.4.2) eslint-config-prettier: specifier: ^10.0.0 - version: 10.1.5(eslint@9.28.0(jiti@2.4.2)) + version: 10.1.5(eslint@9.31.0(jiti@2.4.2)) eslint-plugin-playwright: specifier: ^2.0.0 - version: 2.2.0(eslint@9.28.0(jiti@2.4.2)) + version: 2.2.0(eslint@9.31.0(jiti@2.4.2)) happy-dom: - specifier: ~17.6.0 - version: 17.6.3 + specifier: ~18.0.0 + version: 18.0.1 jiti: specifier: 2.4.2 version: 2.4.2 @@ -118,71 +119,71 @@ importers: specifier: ^2.1.0 version: 2.4.0 nx: - specifier: 21.1.3 - version: 21.1.3(@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.2.3 + version: 21.2.3(@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)) react-refresh: specifier: ^0.17.0 version: 0.17.0 rollup-plugin-webpack-stats: - specifier: 2.0.7 - version: 2.0.7(rollup@4.40.0)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0)) + specifier: 2.1.0 + version: 2.1.0(rollup@4.44.2)(vite@7.0.4(@types/node@22.16.3)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)) tslib: specifier: ^2.3.0 version: 2.8.1 tsx: - specifier: 4.19.4 - version: 4.19.4 + specifier: 4.20.3 + version: 4.20.3 typescript: specifier: ~5.8.0 version: 5.8.3 typescript-eslint: specifier: ^8.19.0 - version: 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + version: 8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) upath: specifier: 2.0.1 version: 2.0.1 vite: - specifier: ^6.0.0 - version: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) + specifier: ^7.0.0 + version: 7.0.4(@types/node@22.16.3)(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.43.1)(tsx@4.20.3)(yaml@2.8.0) vite-plugin-dts: specifier: ~4.5.0 - version: 4.5.4(@types/node@22.15.30)(rollup@4.40.0)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0)) + version: 4.5.4(@types/node@22.16.3)(rollup@4.44.2)(typescript@5.8.3)(vite@7.0.4(@types/node@22.16.3)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)) vitest: specifier: ^3.0.0 - version: 3.2.3(@types/debug@4.1.12)(@types/node@22.15.30)(@vitest/ui@3.2.3)(happy-dom@17.6.3)(jiti@2.4.2)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(msw@2.7.5(@types/node@22.15.30)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.16.3)(@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.3)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) apps/client: dependencies: '@eslint/js': - specifier: 9.28.0 - version: 9.28.0 + specifier: 9.31.0 + version: 9.31.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@19.1.0))(react@19.1.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) '@fullcalendar/core': - specifier: 6.1.17 - version: 6.1.17 + specifier: 6.1.18 + version: 6.1.18 '@fullcalendar/daygrid': - specifier: 6.1.17 - version: 6.1.17(@fullcalendar/core@6.1.17) + specifier: 6.1.18 + version: 6.1.18(@fullcalendar/core@6.1.18) '@fullcalendar/interaction': - specifier: 6.1.17 - version: 6.1.17(@fullcalendar/core@6.1.17) + specifier: 6.1.18 + version: 6.1.18(@fullcalendar/core@6.1.18) '@fullcalendar/list': - specifier: 6.1.17 - version: 6.1.17(@fullcalendar/core@6.1.17) + specifier: 6.1.18 + version: 6.1.18(@fullcalendar/core@6.1.18) '@fullcalendar/multimonth': - specifier: 6.1.17 - version: 6.1.17(@fullcalendar/core@6.1.17) + specifier: 6.1.18 + version: 6.1.18(@fullcalendar/core@6.1.18) '@fullcalendar/timegrid': - specifier: 6.1.17 - version: 6.1.17(@fullcalendar/core@6.1.17) + specifier: 6.1.18 + version: 6.1.18(@fullcalendar/core@6.1.18) '@mermaid-js/layout-elk': - specifier: 0.1.7 - version: 0.1.7(mermaid@11.6.0) + specifier: 0.1.8 + version: 0.1.8(mermaid@11.8.1) '@mind-elixir/node-menu': - specifier: 1.0.5 - version: 1.0.5(mind-elixir@4.6.0) + specifier: 5.0.0 + version: 5.0.0(mind-elixir@5.0.2) '@popperjs/core': specifier: 2.11.8 version: 2.11.8 @@ -205,8 +206,8 @@ importers: specifier: 0.38.1 version: 0.38.1 bootstrap: - specifier: 5.3.6 - version: 5.3.6(@popperjs/core@2.11.8) + specifier: 5.3.7 + version: 5.3.7(@popperjs/core@2.11.8) boxicons: specifier: 2.1.4 version: 2.1.4 @@ -223,14 +224,14 @@ importers: specifier: 3.0.0 version: 3.0.0 force-graph: - specifier: 1.49.6 - version: 1.49.6 + specifier: 1.50.1 + version: 1.50.1 globals: - specifier: 16.2.0 - version: 16.2.0 + specifier: 16.3.0 + version: 16.3.0 i18next: - specifier: 25.2.1 - version: 25.2.1(typescript@5.8.3) + specifier: 25.3.2 + version: 25.3.2(typescript@5.8.3) i18next-http-backend: specifier: 3.0.2 version: 3.0.2(encoding@0.1.13) @@ -262,39 +263,39 @@ importers: specifier: 8.11.1 version: 8.11.1 marked: - specifier: 15.0.12 - version: 15.0.12 + specifier: 16.0.0 + version: 16.0.0 mermaid: - specifier: 11.6.0 - version: 11.6.0 + specifier: 11.8.1 + version: 11.8.1 mind-elixir: - specifier: 4.6.0 - version: 4.6.0 + specifier: 5.0.2 + version: 5.0.2 normalize.css: specifier: 8.0.1 version: 8.0.1 panzoom: specifier: 9.4.3 version: 9.4.3 - react: - specifier: 19.1.0 - version: 19.1.0 - react-dom: - specifier: 19.1.0 - version: 19.1.0(react@19.1.0) + preact: + specifier: 10.26.9 + version: 10.26.9 split.js: specifier: 1.6.5 version: 1.6.5 svg-pan-zoom: specifier: 3.6.2 version: 3.6.2 + tabulator-tables: + specifier: 6.3.1 + version: 6.3.1 vanilla-js-wheel-zoom: specifier: 9.0.4 version: 9.0.4 devDependencies: '@ckeditor/ckeditor5-inspector': - specifier: 4.1.0 - version: 4.1.0 + specifier: 5.0.0 + version: 5.0.0 '@types/bootstrap': specifier: 5.2.10 version: 5.2.10 @@ -302,32 +303,29 @@ importers: specifier: 3.5.32 version: 3.5.32 '@types/leaflet': - specifier: 1.9.18 - version: 1.9.18 + specifier: 1.9.20 + version: 1.9.20 '@types/leaflet-gpx': specifier: 1.3.7 version: 1.3.7 '@types/mark.js': specifier: 8.11.12 version: 8.11.12 - '@types/react': - specifier: 19.1.7 - version: 19.1.7 - '@types/react-dom': - specifier: 19.1.6 - version: 19.1.6(@types/react@19.1.7) + '@types/tabulator-tables': + specifier: 6.2.7 + version: 6.2.7 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)) happy-dom: - specifier: 17.6.3 - version: 17.6.3 + specifier: 18.0.1 + version: 18.0.1 script-loader: specifier: 0.7.2 version: 0.7.2 vite-plugin-static-copy: - specifier: 3.0.0 - version: 3.0.0(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0)) + specifier: 3.1.1 + version: 3.1.1(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)) apps/db-compare: dependencies: @@ -347,11 +345,11 @@ importers: apps/desktop: dependencies: '@electron/remote': - specifier: 2.1.2 - version: 2.1.2(electron@36.4.0) + specifier: 2.1.3 + version: 2.1.3(electron@37.2.1) better-sqlite3: - specifier: ^11.9.1 - version: 11.10.0 + specifier: ^12.0.0 + version: 12.2.0 electron-debug: specifier: 4.1.0 version: 4.1.0 @@ -400,19 +398,28 @@ 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)) electron: - specifier: 36.4.0 - version: 36.4.0 + specifier: 37.2.1 + version: 37.2.1 prebuild-install: specifier: ^7.1.1 version: 7.1.3 + apps/desktop-e2e: + devDependencies: + dotenv: + specifier: 17.2.0 + version: 17.2.0 + electron: + specifier: 37.2.1 + version: 37.2.1 + apps/dump-db: dependencies: better-sqlite3: - specifier: ^11.1.2 - version: 11.10.0 + specifier: ^12.0.0 + version: 12.2.0 mime-types: specifier: ^3.0.0 version: 3.0.1 @@ -421,7 +428,7 @@ importers: version: 1.6.3 tsx: specifier: ^4.19.3 - version: 4.19.4 + version: 4.20.3 yargs: specifier: ^18.0.0 version: 18.0.0 @@ -431,7 +438,7 @@ importers: version: 7.6.13 '@types/mime-types': specifier: ^3.0.0 - version: 3.0.0 + version: 3.0.1 '@types/yargs': specifier: ^17.0.33 version: 17.0.33 @@ -442,8 +449,8 @@ importers: specifier: 7.0.1 version: 7.0.1 better-sqlite3: - specifier: ^11.9.1 - version: 11.10.0 + specifier: ^12.0.0 + version: 12.2.0 devDependencies: '@triliumnext/client': specifier: workspace:* @@ -456,10 +463,10 @@ 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)) electron: - specifier: 36.4.0 - version: 36.4.0 + specifier: 37.2.1 + version: 37.2.1 fs-extra: specifier: 11.3.0 version: 11.3.0 @@ -467,18 +474,18 @@ importers: apps/server: dependencies: better-sqlite3: - specifier: 11.10.0 - version: 11.10.0 + specifier: 12.2.0 + version: 12.2.0 devDependencies: '@anthropic-ai/sdk': - specifier: 0.53.0 - version: 0.53.0 + specifier: 0.56.0 + version: 0.56.0 '@braintree/sanitize-url': specifier: 7.1.1 version: 7.1.1 '@electron/remote': - specifier: 2.1.2 - version: 2.1.2(electron@36.4.0) + specifier: 2.1.3 + version: 2.1.3(electron@37.2.1) '@triliumnext/commons': specifier: workspace:* version: link:../../packages/commons @@ -537,8 +544,8 @@ importers: specifier: 3.0.1 version: 3.0.1 '@types/multer': - specifier: 1.4.13 - version: 1.4.13 + specifier: 2.0.0 + version: 2.0.0 '@types/safe-compare': specifier: 1.1.2 version: 1.1.2 @@ -566,9 +573,6 @@ importers: '@types/swagger-ui-express': specifier: 4.1.8 version: 4.1.8 - '@types/tesseract.js': - specifier: 2.0.0 - version: 2.0.0(encoding@0.1.13) '@types/tmp': specifier: 0.2.6 version: 0.2.6 @@ -588,8 +592,8 @@ importers: specifier: 0.5.0 version: 0.5.0 axios: - specifier: 1.9.0 - version: 1.9.0(debug@4.4.1) + specifier: 1.10.0 + version: 1.10.0(debug@4.4.1) bindings: specifier: 1.5.0 version: 1.5.0 @@ -627,8 +631,8 @@ importers: specifier: 3.1.10 version: 3.1.10 electron: - specifier: 36.4.0 - version: 36.4.0 + specifier: 37.2.1 + version: 37.2.1 electron-debug: specifier: 4.1.0 version: 4.1.0 @@ -648,8 +652,8 @@ importers: specifier: ^2.17.1 version: 2.18.1(express@5.1.0) express-rate-limit: - specifier: 7.5.0 - version: 7.5.0(express@5.1.0) + specifier: 7.5.1 + version: 7.5.1(express@5.1.0) express-session: specifier: 1.18.1 version: 1.18.1 @@ -675,8 +679,8 @@ importers: specifier: 7.0.6 version: 7.0.6 i18next: - specifier: 25.2.1 - version: 25.2.1(typescript@5.8.3) + specifier: 25.3.2 + version: 25.3.2(typescript@5.8.3) i18next-fs-backend: specifier: 2.6.0 version: 2.6.0 @@ -690,8 +694,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 @@ -702,8 +706,8 @@ importers: specifier: 26.1.0 version: 26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) marked: - specifier: 15.0.12 - version: 15.0.12 + specifier: 16.0.0 + version: 16.0.0 mime-types: specifier: 3.0.1 version: 3.0.1 @@ -717,8 +721,8 @@ importers: specifier: 0.5.16 version: 0.5.16 openai: - specifier: 5.2.0 - version: 5.2.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.24.4) + specifier: 5.9.0 + version: 5.9.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 @@ -735,8 +739,8 @@ importers: specifier: 1.4.1 version: 1.4.1 serve-favicon: - specifier: 2.5.0 - version: 2.5.0 + specifier: 2.5.1 + version: 2.5.1 stream-throttle: specifier: 0.1.3 version: 0.1.3 @@ -747,17 +751,14 @@ importers: specifier: 3.2.0 version: 3.2.0 supertest: - specifier: 7.1.1 - version: 7.1.1 + specifier: 7.1.3 + version: 7.1.3 swagger-jsdoc: specifier: 6.2.8 version: 6.2.8(openapi-types@12.1.3) swagger-ui-express: specifier: 5.0.1 version: 5.0.1(express@5.1.0) - tesseract.js: - specifier: 6.0.1 - version: 6.0.1(encoding@0.1.13) time2fa: specifier: ^1.3.0 version: 1.4.2 @@ -771,8 +772,8 @@ importers: specifier: 1.0.1 version: 1.0.1 ws: - specifier: 8.18.2 - version: 8.18.2(bufferutil@4.0.9)(utf-8-validate@6.0.5) + specifier: 8.18.3 + version: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) xml2js: specifier: 0.6.2 version: 0.6.2 @@ -783,8 +784,66 @@ importers: apps/server-e2e: devDependencies: dotenv: - specifier: 16.5.0 - version: 16.5.0 + specifier: 17.2.0 + version: 17.2.0 + + apps/website: + dependencies: + '@inlang/paraglide-js': + specifier: ^2.0.0 + version: 2.2.0(babel-plugin-macros@3.1.0) + devDependencies: + '@eslint/compat': + specifier: ^1.2.5 + version: 1.3.1(eslint@9.31.0(jiti@2.4.2)) + '@eslint/js': + specifier: ^9.18.0 + version: 9.31.0 + '@sveltejs/adapter-auto': + specifier: ^6.0.0 + version: 6.0.1(@sveltejs/kit@2.22.5(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.6)(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.6)(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0))) + '@sveltejs/kit': + specifier: ^2.16.0 + version: 2.22.5(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.6)(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.6)(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)) + '@sveltejs/vite-plugin-svelte': + specifier: ^6.0.0 + version: 6.0.0(svelte@5.35.6)(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)) + '@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.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)) + eslint: + specifier: ^9.18.0 + version: 9.31.0(jiti@2.4.2) + eslint-plugin-svelte: + specifier: ^3.0.0 + version: 3.10.1(eslint@9.31.0(jiti@2.4.2))(svelte@5.35.6)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.0.12)(typescript@5.8.3)) + globals: + specifier: ^16.0.0 + version: 16.3.0 + mdsvex: + specifier: ^0.12.3 + version: 0.12.6(svelte@5.35.6) + svelte: + specifier: ^5.0.0 + version: 5.35.6 + svelte-check: + specifier: ^4.0.0 + version: 4.2.2(picomatch@4.0.2)(svelte@5.35.6)(typescript@5.8.3) + tailwindcss: + specifier: ^4.0.0 + version: 4.1.11 + typescript: + specifier: ^5.0.0 + version: 5.8.3 + typescript-eslint: + specifier: ^8.20.0 + version: 8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) + vite: + specifier: ^7.0.0 + version: 7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0) packages/ckeditor5: dependencies: @@ -804,8 +863,11 @@ importers: specifier: workspace:* version: link:../ckeditor5-mermaid ckeditor5: - specifier: 45.2.0 - version: 45.2.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + specifier: 46.0.0 + version: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + ckeditor5-premium-features: + 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 @@ -814,249 +876,249 @@ importers: packages/ckeditor5-admonition: devDependencies: '@ckeditor/ckeditor5-dev-build-tools': - specifier: 43.0.1 - version: 43.0.1(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.8.3) + specifier: 43.1.0 + version: 43.1.0(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.8.3) '@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.15.30)(bufferutil@4.0.9)(esbuild@0.25.5)(utf-8-validate@6.0.5) + version: 4.0.1(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.0.12)(bufferutil@4.0.9)(esbuild@0.25.6)(utf-8-validate@6.0.5) '@typescript-eslint/eslint-plugin': - specifier: ~8.34.0 - version: 8.34.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + specifier: ~8.36.0 + version: 8.36.0(@typescript-eslint/parser@8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/parser': specifier: ^8.0.0 - version: 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + version: 8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) '@vitest/browser': specifier: ^3.0.5 - version: 3.2.0(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.15.30)(typescript@5.8.3))(playwright@1.52.0)(utf-8-validate@6.0.5)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0))(vitest@3.2.0)(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.0.12)(typescript@5.8.3))(playwright@1.54.1)(utf-8-validate@6.0.5)(vite@7.0.0(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4)(webdriverio@9.17.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)) '@vitest/coverage-istanbul': specifier: ^3.0.5 - version: 3.2.0(vitest@3.2.0) + version: 3.2.4(vitest@3.2.4) ckeditor5: - specifier: 45.2.0 - version: 45.2.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + specifier: 46.0.0 + version: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) eslint: specifier: ^9.0.0 - version: 9.28.0(jiti@2.4.2) + version: 9.31.0(jiti@2.4.2) eslint-config-ckeditor5: specifier: '>=9.1.0' - version: 10.0.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + version: 12.0.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) http-server: specifier: ^14.1.0 version: 14.1.1 lint-staged: specifier: ^16.0.0 - version: 16.1.0 + version: 16.1.2 stylelint: specifier: ^16.0.0 - version: 16.20.0(typescript@5.8.3) + version: 16.21.1(typescript@5.8.3) stylelint-config-ckeditor5: specifier: '>=9.1.0' - version: 10.0.0(stylelint@16.20.0(typescript@5.8.3)) + version: 12.0.0(stylelint@16.21.1(typescript@5.8.3)) ts-node: specifier: ^10.9.1 - version: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.15.30)(typescript@5.8.3) + version: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.0.12)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 vite-plugin-svgo: specifier: ~2.0.0 - version: 2.0.0(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0)) + version: 2.0.0(typescript@5.8.3)(vite@7.0.0(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)) vitest: specifier: ^3.0.5 - version: 3.2.0(@types/debug@4.1.12)(@types/node@22.15.30)(@vitest/browser@3.2.0)(@vitest/ui@3.2.0)(happy-dom@17.6.3)(jiti@2.4.2)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(msw@2.7.5(@types/node@22.15.30)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.0.12)(@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@24.0.12)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) webdriverio: specifier: ^9.0.7 - version: 9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) + version: 9.17.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) packages/ckeditor5-footnotes: devDependencies: '@ckeditor/ckeditor5-dev-build-tools': - specifier: 43.0.1 - version: 43.0.1(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.8.3) + specifier: 43.1.0 + version: 43.1.0(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.8.3) '@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.15.30)(bufferutil@4.0.9)(esbuild@0.25.5)(utf-8-validate@6.0.5) + version: 4.0.1(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.0.12)(bufferutil@4.0.9)(esbuild@0.25.6)(utf-8-validate@6.0.5) '@typescript-eslint/eslint-plugin': - specifier: ~8.34.0 - version: 8.34.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + specifier: ~8.36.0 + version: 8.36.0(@typescript-eslint/parser@8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/parser': specifier: ^8.0.0 - version: 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + version: 8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) '@vitest/browser': specifier: ^3.0.5 - version: 3.2.0(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.15.30)(typescript@5.8.3))(playwright@1.52.0)(utf-8-validate@6.0.5)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0))(vitest@3.2.0)(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.0.12)(typescript@5.8.3))(playwright@1.54.1)(utf-8-validate@6.0.5)(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4)(webdriverio@9.17.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)) '@vitest/coverage-istanbul': specifier: ^3.0.5 - version: 3.2.0(vitest@3.2.0) + version: 3.2.4(vitest@3.2.4) ckeditor5: - specifier: 45.2.0 - version: 45.2.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + specifier: 46.0.0 + version: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) eslint: specifier: ^9.0.0 - version: 9.28.0(jiti@2.4.2) + version: 9.31.0(jiti@2.4.2) eslint-config-ckeditor5: specifier: '>=9.1.0' - version: 10.0.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + version: 12.0.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) http-server: specifier: ^14.1.0 version: 14.1.1 lint-staged: specifier: ^16.0.0 - version: 16.1.0 + version: 16.1.2 stylelint: specifier: ^16.0.0 - version: 16.20.0(typescript@5.8.3) + version: 16.21.1(typescript@5.8.3) stylelint-config-ckeditor5: specifier: '>=9.1.0' - version: 10.0.0(stylelint@16.20.0(typescript@5.8.3)) + version: 12.0.0(stylelint@16.21.1(typescript@5.8.3)) ts-node: specifier: ^10.9.1 - version: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.15.30)(typescript@5.8.3) + version: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.0.12)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 vite-plugin-svgo: specifier: ~2.0.0 - version: 2.0.0(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0)) + version: 2.0.0(typescript@5.8.3)(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)) vitest: specifier: ^3.0.5 - version: 3.2.0(@types/debug@4.1.12)(@types/node@22.15.30)(@vitest/browser@3.2.0)(@vitest/ui@3.2.0)(happy-dom@17.6.3)(jiti@2.4.2)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(msw@2.7.5(@types/node@22.15.30)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.0.12)(@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@24.0.12)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) webdriverio: specifier: ^9.0.7 - version: 9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) + version: 9.17.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) packages/ckeditor5-keyboard-marker: devDependencies: '@ckeditor/ckeditor5-dev-build-tools': - specifier: 43.0.1 - version: 43.0.1(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.8.3) + specifier: 43.1.0 + version: 43.1.0(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.8.3) '@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.15.30)(bufferutil@4.0.9)(esbuild@0.25.5)(utf-8-validate@6.0.5) + version: 4.0.1(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.0.12)(bufferutil@4.0.9)(esbuild@0.25.6)(utf-8-validate@6.0.5) '@typescript-eslint/eslint-plugin': - specifier: ~8.34.0 - version: 8.34.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + specifier: ~8.36.0 + version: 8.36.0(@typescript-eslint/parser@8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/parser': specifier: ^8.0.0 - version: 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + version: 8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) '@vitest/browser': specifier: ^3.0.5 - version: 3.2.0(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.15.30)(typescript@5.8.3))(playwright@1.52.0)(utf-8-validate@6.0.5)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0))(vitest@3.2.0)(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.0.12)(typescript@5.8.3))(playwright@1.54.1)(utf-8-validate@6.0.5)(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4)(webdriverio@9.17.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)) '@vitest/coverage-istanbul': specifier: ^3.0.5 - version: 3.2.0(vitest@3.2.0) + version: 3.2.4(vitest@3.2.4) ckeditor5: - specifier: 45.2.0 - version: 45.2.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + specifier: 46.0.0 + version: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) eslint: specifier: ^9.0.0 - version: 9.28.0(jiti@2.4.2) + version: 9.31.0(jiti@2.4.2) eslint-config-ckeditor5: specifier: '>=9.1.0' - version: 10.0.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + version: 12.0.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) http-server: specifier: ^14.1.0 version: 14.1.1 lint-staged: specifier: ^16.0.0 - version: 16.1.0 + version: 16.1.2 stylelint: specifier: ^16.0.0 - version: 16.20.0(typescript@5.8.3) + version: 16.21.1(typescript@5.8.3) stylelint-config-ckeditor5: specifier: '>=9.1.0' - version: 10.0.0(stylelint@16.20.0(typescript@5.8.3)) + version: 12.0.0(stylelint@16.21.1(typescript@5.8.3)) ts-node: specifier: ^10.9.1 - version: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.15.30)(typescript@5.8.3) + version: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.0.12)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 vite-plugin-svgo: specifier: ~2.0.0 - version: 2.0.0(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0)) + version: 2.0.0(typescript@5.8.3)(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)) vitest: specifier: ^3.0.5 - version: 3.2.0(@types/debug@4.1.12)(@types/node@22.15.30)(@vitest/browser@3.2.0)(@vitest/ui@3.2.0)(happy-dom@17.6.3)(jiti@2.4.2)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(msw@2.7.5(@types/node@22.15.30)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.0.12)(@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@24.0.12)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) webdriverio: specifier: ^9.0.7 - version: 9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) + version: 9.17.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) packages/ckeditor5-math: dependencies: '@ckeditor/ckeditor5-icons': - specifier: 45.2.0 - version: 45.2.0 + specifier: 46.0.0 + version: 46.0.0 devDependencies: '@ckeditor/ckeditor5-dev-build-tools': - specifier: 43.0.1 - version: 43.0.1(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.8.3) + specifier: 43.1.0 + version: 43.1.0(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.8.3) '@ckeditor/ckeditor5-dev-utils': - specifier: 43.0.1 - version: 43.0.1(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5)) + 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.6)) '@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.15.30)(bufferutil@4.0.9)(esbuild@0.25.5)(utf-8-validate@6.0.5) + version: 4.0.1(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.0.12)(bufferutil@4.0.9)(esbuild@0.25.6)(utf-8-validate@6.0.5) '@typescript-eslint/eslint-plugin': - specifier: ~8.34.0 - version: 8.34.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + specifier: ~8.36.0 + version: 8.36.0(@typescript-eslint/parser@8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/parser': specifier: ^8.0.0 - version: 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + version: 8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) '@vitest/browser': specifier: ^3.0.5 - version: 3.2.0(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.15.30)(typescript@5.8.3))(playwright@1.52.0)(utf-8-validate@6.0.5)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0))(vitest@3.2.0)(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.0.12)(typescript@5.8.3))(playwright@1.54.1)(utf-8-validate@6.0.5)(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4)(webdriverio@9.17.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)) '@vitest/coverage-istanbul': specifier: ^3.0.5 - version: 3.2.0(vitest@3.2.0) + version: 3.2.4(vitest@3.2.4) ckeditor5: - specifier: 45.2.0 - version: 45.2.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + specifier: 46.0.0 + version: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) eslint: specifier: ^9.0.0 - version: 9.28.0(jiti@2.4.2) + version: 9.31.0(jiti@2.4.2) eslint-config-ckeditor5: specifier: '>=9.1.0' - version: 10.0.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + version: 12.0.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) http-server: specifier: ^14.1.0 version: 14.1.1 lint-staged: specifier: ^16.0.0 - version: 16.1.0 + version: 16.1.2 stylelint: specifier: ^16.0.0 - version: 16.20.0(typescript@5.8.3) + version: 16.21.1(typescript@5.8.3) stylelint-config-ckeditor5: specifier: '>=9.1.0' - version: 10.0.0(stylelint@16.20.0(typescript@5.8.3)) + version: 12.0.0(stylelint@16.21.1(typescript@5.8.3)) ts-node: specifier: ^10.9.1 - version: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.15.30)(typescript@5.8.3) + version: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.0.12)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 vite-plugin-svgo: specifier: ~2.0.0 - version: 2.0.0(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0)) + version: 2.0.0(typescript@5.8.3)(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)) vitest: specifier: ^3.0.5 - version: 3.2.0(@types/debug@4.1.12)(@types/node@22.15.30)(@vitest/browser@3.2.0)(@vitest/ui@3.2.0)(happy-dom@17.6.3)(jiti@2.4.2)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(msw@2.7.5(@types/node@22.15.30)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.0.12)(@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@24.0.12)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) webdriverio: specifier: ^9.0.7 - version: 9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) + version: 9.17.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) packages/ckeditor5-mermaid: dependencies: @@ -1068,62 +1130,62 @@ importers: version: 4.17.21 devDependencies: '@ckeditor/ckeditor5-dev-build-tools': - specifier: 43.0.1 - version: 43.0.1(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.8.3) + specifier: 43.1.0 + version: 43.1.0(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.8.3) '@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.15.30)(bufferutil@4.0.9)(esbuild@0.25.5)(utf-8-validate@6.0.5) + version: 4.0.1(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.0.12)(bufferutil@4.0.9)(esbuild@0.25.6)(utf-8-validate@6.0.5) '@typescript-eslint/eslint-plugin': - specifier: ~8.34.0 - version: 8.34.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + specifier: ~8.36.0 + version: 8.36.0(@typescript-eslint/parser@8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/parser': specifier: ^8.0.0 - version: 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + version: 8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) '@vitest/browser': specifier: ^3.0.5 - version: 3.2.0(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.15.30)(typescript@5.8.3))(playwright@1.52.0)(utf-8-validate@6.0.5)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0))(vitest@3.2.0)(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.0.12)(typescript@5.8.3))(playwright@1.54.1)(utf-8-validate@6.0.5)(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4)(webdriverio@9.17.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)) '@vitest/coverage-istanbul': specifier: ^3.0.5 - version: 3.2.0(vitest@3.2.0) + version: 3.2.4(vitest@3.2.4) ckeditor5: - specifier: 45.2.0 - version: 45.2.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + specifier: 46.0.0 + version: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) eslint: specifier: ^9.0.0 - version: 9.28.0(jiti@2.4.2) + version: 9.31.0(jiti@2.4.2) eslint-config-ckeditor5: specifier: '>=9.1.0' - version: 10.0.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + version: 12.0.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) http-server: specifier: ^14.1.0 version: 14.1.1 lint-staged: specifier: ^16.0.0 - version: 16.1.0 + version: 16.1.2 stylelint: specifier: ^16.0.0 - version: 16.20.0(typescript@5.8.3) + version: 16.21.1(typescript@5.8.3) stylelint-config-ckeditor5: specifier: '>=9.1.0' - version: 10.0.0(stylelint@16.20.0(typescript@5.8.3)) + version: 12.0.0(stylelint@16.21.1(typescript@5.8.3)) ts-node: specifier: ^10.9.1 - version: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.15.30)(typescript@5.8.3) + version: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.0.12)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 vite-plugin-svgo: specifier: ~2.0.0 - version: 2.0.0(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0)) + version: 2.0.0(typescript@5.8.3)(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)) vitest: specifier: ^3.0.5 - version: 3.2.0(@types/debug@4.1.12)(@types/node@22.15.30)(@vitest/browser@3.2.0)(@vitest/ui@3.2.0)(happy-dom@17.6.3)(jiti@2.4.2)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(msw@2.7.5(@types/node@22.15.30)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.0.12)(@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@24.0.12)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) webdriverio: specifier: ^9.0.7 - version: 9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) + version: 9.17.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) packages/codemirror: dependencies: @@ -1140,14 +1202,14 @@ importers: specifier: 6.2.4 version: 6.2.4 '@codemirror/lang-json': - specifier: 6.0.1 - version: 6.0.1 + specifier: 6.0.2 + version: 6.0.2 '@codemirror/lang-markdown': - specifier: 6.3.2 - version: 6.3.2 + specifier: 6.3.3 + version: 6.3.3 '@codemirror/lang-php': - specifier: 6.0.1 - version: 6.0.1 + specifier: 6.0.2 + version: 6.0.2 '@codemirror/lang-vue': specifier: 0.1.3 version: 0.1.3 @@ -1161,92 +1223,95 @@ importers: specifier: 6.5.11 version: 6.5.11 '@codemirror/view': - specifier: 6.37.1 - version: 6.37.1 + specifier: 6.38.0 + version: 6.38.0 '@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.37.1)(@lezer/highlight@1.2.1) + version: 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': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.37.1)(@lezer/highlight@1.2.1) + version: 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': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.37.1)(@lezer/highlight@1.2.1) + version: 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': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.37.1)(@lezer/highlight@1.2.1) + version: 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': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.37.1)(@lezer/highlight@1.2.1) + version: 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': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.37.1)(@lezer/highlight@1.2.1) + version: 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': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.37.1)(@lezer/highlight@1.2.1) + version: 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': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.37.1)(@lezer/highlight@1.2.1) + version: 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': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.37.1)(@lezer/highlight@1.2.1) + version: 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': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.37.1)(@lezer/highlight@1.2.1) + version: 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': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.37.1)(@lezer/highlight@1.2.1) + version: 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': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.37.1)(@lezer/highlight@1.2.1) + version: 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': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.37.1)(@lezer/highlight@1.2.1) + version: 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': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.37.1)(@lezer/highlight@1.2.1) + version: 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': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.37.1)(@lezer/highlight@1.2.1) + version: 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': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.37.1)(@lezer/highlight@1.2.1) + version: 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': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.37.1)(@lezer/highlight@1.2.1) + version: 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': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.37.1)(@lezer/highlight@1.2.1) + version: 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': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.37.1)(@lezer/highlight@1.2.1) + version: 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': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.37.1)(@lezer/highlight@1.2.1) + version: 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': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.37.1)(@lezer/highlight@1.2.1) + version: 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': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.37.1)(@lezer/highlight@1.2.1) + version: 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': specifier: 6.2.0 - version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.37.1)(@lezer/highlight@1.2.1) + version: 6.2.0(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)(@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.37.1) + version: 6.5.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0) '@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.37.1)(@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.0)(@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.37.1) + 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) '@ssddanbrown/codemirror-lang-smarty': specifier: 1.0.0 version: 1.0.0 '@ssddanbrown/codemirror-lang-twig': specifier: 1.0.0 version: 1.0.0 + codemirror-lang-elixir: + specifier: 4.0.0 + version: 4.0.0 codemirror-lang-hcl: specifier: 0.1.0 version: 0.1.0 @@ -1254,8 +1319,8 @@ importers: specifier: 0.5.0 version: 0.5.0 eslint-linter-browserify: - specifier: 9.28.0 - version: 9.28.0 + specifier: 9.31.0 + version: 9.31.0 packages/commons: {} @@ -1289,23 +1354,23 @@ importers: specifier: ^3.2.24 version: 3.2.26 '@types/swagger-ui': - specifier: ^3.52.0 - version: 3.52.4 + specifier: ^5.0.0 + version: 5.21.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.7.2 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) + specifier: ^8.0.0 + version: 8.36.0(@typescript-eslint/parser@8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/parser': - specifier: ^6.7.2 - version: 6.21.0(eslint@8.57.1)(typescript@5.8.3) + specifier: ^8.0.0 + version: 8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) dotenv: - specifier: ^16.3.1 - version: 16.5.0 + specifier: ^17.0.0 + version: 17.2.0 esbuild: specifier: ^0.25.0 - version: 0.25.5 + version: 0.25.6 eslint: - specifier: ^8.49.0 - version: 8.57.1 + specifier: ^9.0.0 + version: 9.31.0(jiti@2.4.2) highlight.js: specifier: ^11.8.0 version: 11.11.1 @@ -1337,8 +1402,8 @@ packages: '@antfu/utils@8.1.1': resolution: {integrity: sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==} - '@anthropic-ai/sdk@0.53.0': - resolution: {integrity: sha512-bl2frVo0cgHCXTzQEIHXPH329uQXC4YKBaLBkZmUc59tNiR3GgcGpBZU7mwfyv5tPuU/yT7tGHyoe5AnjN02QA==} + '@anthropic-ai/sdk@0.56.0': + resolution: {integrity: sha512-SLCB8M8+VMg1cpCucnA1XWHGWqVSZtIWzmOdDOEu3eTFZMB+A0sGZ1ESO5MHDnqrNTXz3safMrWx9x4rMZSOqA==} hasBin: true '@apidevtools/json-schema-ref-parser@9.1.2': @@ -1359,28 +1424,157 @@ packages: '@asamuzakjp/css-color@3.1.4': resolution: {integrity: sha512-SeuBV4rnjpFNjI8HSgKUwteuFdkHwkboq31HWzznuqgySQir+jSTczoWVVL4jvOjKjuH80fMDG0Fvg1Sb+OJsA==} + '@aws-crypto/crc32@5.2.0': + resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==} + engines: {node: '>=16.0.0'} + + '@aws-crypto/sha256-browser@5.2.0': + resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==} + + '@aws-crypto/sha256-js@5.2.0': + resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==} + engines: {node: '>=16.0.0'} + + '@aws-crypto/supports-web-crypto@5.2.0': + resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==} + + '@aws-crypto/util@5.2.0': + resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} + + '@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@3.823.0': + resolution: {integrity: sha512-dBWdsbyGw8rPfdCsZySNtTOGQK4EZ8lxB/CneSQWRBPHgQ+Ys88NXxImO8xfWO7Itt1eh8O7UDTZ9+smcvw2pw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/core@3.823.0': + resolution: {integrity: sha512-1Cf4w8J7wYexz0KU3zpaikHvldGXQEjFldHOhm0SBGRy7qfYNXecfJAamccF7RdgLxKGgkv5Pl9zX/Z/DcW9zg==} + engines: {node: '>=18.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/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-ini@3.823.0': + resolution: {integrity: sha512-C0o63qviK5yFvjH9zKWAnCUBkssJoQ1A1XAHe0IAQkurzoNBSmu9oVemqwnKKHA4H6QrmusaEERfL00yohIkJA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-node@3.823.0': + resolution: {integrity: sha512-nfSxXVuZ+2GJDpVFlflNfh55Yb4BtDsXLGNssXF5YU6UgSPsi8j2YkaE92Jv2s7dlUK07l0vRpLyPuXMaGeiRQ==} + engines: {node: '>=18.0.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-sso@3.823.0': + resolution: {integrity: sha512-ff8IM80Wqz1V7VVMaMUqO2iR417jggfGWLPl8j2l7uCgwpEyop1ZZl5CFVYEwSupRBtwp+VlW1gTCk7ke56MUw==} + engines: {node: '>=18.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/eventstream-handler-node@3.821.0': + resolution: {integrity: sha512-JqmzOCAnd9pUnmbrqXIbyBUxjw/UAfXAu8KAsE/4SveUIvyYRbYSTfCoPq6nnNJQpBtdEFLkjvBnHKBcInDwkg==} + engines: {node: '>=18.0.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.821.0': + resolution: {integrity: sha512-xSMR+sopSeWGx5/4pAGhhfMvGBHioVBbqGvDs6pG64xfNwM5vq5s5v6D04e2i+uSTj4qGa71dLUs5I0UzAK3sw==} + engines: {node: '>=18.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.821.0': + resolution: {integrity: sha512-efmaifbhBoqKG3bAoEfDdcM8hn1psF+4qa7ykWuYmfmah59JBeqHLfz5W9m9JoTwoKPkFcVLWZxnyZzAnVBOIg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-user-agent@3.823.0': + resolution: {integrity: sha512-TKRQK09ld1LrIPExC9rIDpqnMsWcv+eq8ABKFHVo8mDLTSuWx/IiQ4eCh9T5zDuEZcLY4nNYCSzXKqw6XKcMCA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/nested-clients@3.823.0': + resolution: {integrity: sha512-/BcyOBubrJnd2gxlbbmNJR1w0Z3OVN/UE8Yz20e+ou+Mijjv7EbtVwmWvio1e3ZjphwdA8tVfPYZKwXmrvHKmQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/region-config-resolver@3.821.0': + resolution: {integrity: sha512-t8og+lRCIIy5nlId0bScNpCkif8sc0LhmtaKsbm0ZPm3sCa/WhCbSZibjbZ28FNjVCV+p0D9RYZx0VDDbtWyjw==} + engines: {node: '>=18.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/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.821.0': + resolution: {integrity: sha512-irWZHyM0Jr1xhC+38OuZ7JB6OXMLPZlj48thElpsO1ZSLRkLZx5+I7VV6k3sp2yZ7BYbKz/G2ojSv4wdm7XTLw==} + + '@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'} - '@babel/compat-data@7.26.8': - resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==} + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} - '@babel/core@7.26.10': - resolution: {integrity: sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==} + '@babel/compat-data@7.28.0': + resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.28.0': + resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==} engines: {node: '>=6.9.0'} '@babel/generator@7.27.0': resolution: {integrity: sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==} engines: {node: '>=6.9.0'} + '@babel/generator@7.28.0': + resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==} + engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.25.9': 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-compilation-targets@7.27.2': + resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} engines: {node: '>=6.9.0'} '@babel/helper-create-class-features-plugin@7.27.0': @@ -1400,16 +1594,20 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + engines: {node: '>=6.9.0'} + '@babel/helper-member-expression-to-functions@7.25.9': resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.25.9': - resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} + '@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==} + '@babel/helper-module-transforms@7.27.3': + resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1446,33 +1644,28 @@ 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==} + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} '@babel/helper-wrap-function@7.25.9': 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==} + '@babel/helpers@7.27.6': + resolution: {integrity: sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==} engines: {node: '>=6.9.0'} - '@babel/parser@7.27.0': - resolution: {integrity: sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/parser@7.27.2': - resolution: {integrity: sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==} - engines: {node: '>=6.0.0'} - hasBin: true - '@babel/parser@7.27.5': resolution: {integrity: sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==} engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.28.0': + resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9': resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==} engines: {node: '>=6.9.0'} @@ -1957,20 +2150,28 @@ packages: resolution: {integrity: sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==} engines: {node: '>=6.9.0'} + '@babel/runtime@7.27.6': + resolution: {integrity: sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==} + engines: {node: '>=6.9.0'} + '@babel/template@7.27.0': resolution: {integrity: sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==} engines: {node: '>=6.9.0'} + '@babel/template@7.27.2': + resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} + engines: {node: '>=6.9.0'} + '@babel/traverse@7.27.0': resolution: {integrity: sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==} engines: {node: '>=6.9.0'} - '@babel/types@7.27.1': - resolution: {integrity: sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==} + '@babel/traverse@7.28.0': + resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==} engines: {node: '>=6.9.0'} - '@babel/types@7.27.6': - resolution: {integrity: sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==} + '@babel/types@7.28.0': + resolution: {integrity: sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@0.2.3': @@ -1986,8 +2187,8 @@ packages: '@braintree/sanitize-url@7.1.1': resolution: {integrity: sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==} - '@bufbuild/protobuf@2.5.2': - resolution: {integrity: sha512-foZ7qr0IsUBjzWIq+SuBLfdQCpJ1j8cTuNNT4owngTHoN5KsJb8L9t65fzz7SCeSWzescoOil/0ldqiL041ABg==} + '@bufbuild/protobuf@2.6.0': + resolution: {integrity: sha512-6cuonJVNOIL7lTj5zgo/Rc2bKAo4/GvN+rKCrUj7GdEHRzCk8zKOfFwUsL9nAVk5rSIsRmlgcpLzTRysopEeeg==} '@bundled-es-modules/cookie@2.0.1': resolution: {integrity: sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw==} @@ -2013,217 +2214,294 @@ packages: '@chevrotain/utils@11.0.3': resolution: {integrity: sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==} - '@ckeditor/ckeditor5-adapter-ckfinder@45.2.0': - resolution: {integrity: sha512-wMDFBDGcUpq8jN/yftki1RxEz79FePfBedeS572+sWdvjm4lPDhkFQETOH0RwZ0TySNen3GJxFe8rKc4LI+iZA==} + '@ckeditor/ckeditor-cloud-services-collaboration@53.0.0': + resolution: {integrity: sha512-fvPDzpWW6X0cPaz0nTV2e1kKIGCCUZWCYcgaY8Nfk/Lol1uqqhOaYqzL33ONDPf/TeEIrBNXDU+WtBPWLGMNIQ==} + peerDependencies: + '@ckeditor/ckeditor5-utils': '>= 37.0' + ckeditor5: '>= 37.0' - '@ckeditor/ckeditor5-alignment@45.2.0': - resolution: {integrity: sha512-fARxsVWFZpWgTTiWdaY5bxrXnDokafTNk2cEZul5YtVBG3qFXz7MA/MzPc9+NFlu1Kju3WDos9synwxtDrMKTQ==} + '@ckeditor/ckeditor5-adapter-ckfinder@46.0.0': + resolution: {integrity: sha512-Y5OrOyHHgnjA9ferph822U9eJdWqIFbPoRpUTcs/kXWKmQBCvAqPOoGJGAz6O9TCZoGUqjK71eVKV0jSnSo22A==} - '@ckeditor/ckeditor5-autoformat@45.2.0': - resolution: {integrity: sha512-CWu/oAdsKaAoe4vsoh4ghip9aLopjJGKxF2RuW7k423JUFXufLIB+Dz2Y/hWjtm2NnpcDMXsS18NePe3b33t1g==} + '@ckeditor/ckeditor5-ai@46.0.0': + resolution: {integrity: sha512-56CPl4LETFZn+uzN7A9cG8Bj7hZnREGUIp4IhmnGRZvLr5wFWtfL8XhQh8huo7hBJ0uhAVY5pDB2owLkfz4ITw==} - '@ckeditor/ckeditor5-autosave@45.2.0': - resolution: {integrity: sha512-7qAyz/cj4EMDYbF1GzJN3fi8yvFsP+Ul7rbkmB1w6OXXnrxxgzv/H86obKylQLW/vCwa28pVjeNUvPwt2UxL7w==} + '@ckeditor/ckeditor5-alignment@46.0.0': + resolution: {integrity: sha512-GNyqLCASALv9hygMfj0lvsl2WAMbOLNcezjjlapYYiZDJSWrxWkYI8Sl+GojjWYyIovwBaGHwJM1IDYKB3mMgw==} - '@ckeditor/ckeditor5-basic-styles@45.2.0': - resolution: {integrity: sha512-MmL+25jt9pe6NmU7gUK1p8Kh/BTZejFCRFgfsUFmNz6BpVnD0GKMZ3aVdPIlkhyNlEQdcqfPoGnuTpdMAn7bMw==} + '@ckeditor/ckeditor5-autoformat@46.0.0': + resolution: {integrity: sha512-/PU0QlSKHTemYzELG1cQWn7GQ2AYKb3+pSvM3sTgxYkel00KZcmmh0Nl18nyJrlKqn7xKAqEg8XwjsF17I/fJA==} - '@ckeditor/ckeditor5-block-quote@45.2.0': - resolution: {integrity: sha512-mMwFBDMYTREzh0xdn3WyMPxEF5VLsfcu/Rc/bGLBEkvDqxPcqcXvRpMsW/ilmgFjtexsEkgUb/FbqvHDPRfH+A==} + '@ckeditor/ckeditor5-autosave@46.0.0': + resolution: {integrity: sha512-xIaLvCg6ijac41UyPMIfBvS1Gc1u9Y4OcvGln3GCskdFVyjNhHOe4p8yaTavwJ78Dc+59zDIP0rGV8AYWFhyYA==} - '@ckeditor/ckeditor5-bookmark@45.2.0': - resolution: {integrity: sha512-mpMXvRA/ZWHR7K9nFOUd517/7CgJxSNfbJpgibEcXJMvWQxeKBAMgLtrA8hKO3uX22qbxbBxw5EipyGz3b1cYA==} + '@ckeditor/ckeditor5-basic-styles@46.0.0': + resolution: {integrity: sha512-i56SO1n0Xuclhel4Ol362khimK9NQFv4NEcnP058b7JK7JXVDZlyyNHh+J8nTALWokmoLPvj823/2F4yKC8oRQ==} - '@ckeditor/ckeditor5-ckbox@45.2.0': - resolution: {integrity: sha512-HTwlpWUiozn4OubRCavQ0BJMZKvBBQ8bwjdbsC3hmRHMQvh62808r454wj6fETy4JuTBCaRNqaw9sO3j2eCpsQ==} + '@ckeditor/ckeditor5-block-quote@46.0.0': + resolution: {integrity: sha512-ASZM3p0wzg2Q4OMsEFhyyi3mN8EUl02LhOxZ41eKa1H2qtAUi+aIFEYNf69raWZ2tqzLfm0z2wTNROzPa3KCJw==} - '@ckeditor/ckeditor5-ckfinder@45.2.0': - resolution: {integrity: sha512-16lsbm+evNJhQKXMI51fFgkjITQ74a/xOtRBdoGbE6ui1V8T3K1eM7woFMguEwEAUMevgfUWOgAlBo95GjEZEw==} + '@ckeditor/ckeditor5-bookmark@46.0.0': + resolution: {integrity: sha512-E52IERdDfNKuagMUkFju6ScFqDIDpXYlLhOmOLv7C/Xh8vKJtyufjjDl/OkhBdMa6gaaHug4a9F7OfCtE+P/Lw==} - '@ckeditor/ckeditor5-clipboard@45.2.0': - resolution: {integrity: sha512-9o1xdbQvkiCeOxIMFpJBgZQSpvBqQK9w/A1WtjzN64Wmdjr5brtdfm1j0TwaZXXGkoLKdvNPJZXuBwQYU2SWhA==} + '@ckeditor/ckeditor5-case-change@46.0.0': + resolution: {integrity: sha512-HAsZ/8wywWDP5kWmBxy8YkIS7kxwK2YLmzro+u7rwMwnxXw+DaoMtCeTZcFehwBC2mzN6DfMUXZ4epl9IfNK/g==} - '@ckeditor/ckeditor5-cloud-services@45.2.0': - resolution: {integrity: sha512-Cjbyk0sU1hox/683E/NGZEaFFBLzPbfNhg4go+T/P1ig6rUc0VdlRitxNI5byvGlKA/36EprRSqoVecVCjWnPg==} + '@ckeditor/ckeditor5-ckbox@46.0.0': + resolution: {integrity: sha512-3RWEx+H7+RKlblI579w8AnlDO3JeRFHmNxh2XolSGohy1bqTttATi5WZVVmGK6quIgFss4VmRpuzZYPpiciuIQ==} - '@ckeditor/ckeditor5-code-block@45.2.0': - resolution: {integrity: sha512-lU5PIc7hDUqZ7GEVrZQBI863cMeoIFWhuY9yVBzOgsGj4J6FcO1GeRGOUNeedCnwjIIRh9+hGEBgYfc8dMa5yg==} + '@ckeditor/ckeditor5-ckfinder@46.0.0': + resolution: {integrity: sha512-g7bhFrrlEUi/QbRkGbNRKeeZCrXU7DkLkGsMBypb0m/7hFF0M3XivXNxh9MxrBjIbCyLjnCPXZVL3dLcapHUww==} - '@ckeditor/ckeditor5-core@45.2.0': - resolution: {integrity: sha512-mNHNCReBAeBLkMSffq54iD/l5p+eViYWOo+iRoUyXw+qNStmNRWac2Gkl4oWvwn05At1Gpprzs4LqHeWTEMNcw==} + '@ckeditor/ckeditor5-clipboard@46.0.0': + resolution: {integrity: sha512-FNXyYk8lZKCdpOOql8rTGnTyW6eRo07i4jTSb0sCOOc/x3iAfhyw0ckHI11hi7U3cYE0fOf8WZvp2fn0NfsPVg==} - '@ckeditor/ckeditor5-dev-build-tools@43.0.1': - resolution: {integrity: sha512-Ca8nF0+SY4IA+apGUjGWp76CBsqVg0Oy7YqbEDDkIDV/AHqQX0ipFp3W6s9RMj/0Rm/FSL7EV1uKdLxa04zm5A==} + '@ckeditor/ckeditor5-cloud-services@46.0.0': + resolution: {integrity: sha512-ai1OjKmoWmBK/RY5jUXVFAX92szMrK/UcVcu1QHwYBoBNqxoQajsLyzBd+QUg3Z3AdQCpLEJqabgsfizMyrpiA==} + + '@ckeditor/ckeditor5-code-block@46.0.0': + resolution: {integrity: sha512-9rJqjpW/RY/kKCYEWMchTaTuGyMnUHspteBumtFOnwJS6PVaA1uJU5FOAPSFevZx9KzJBoXbehxtZWmUjImLMQ==} + + '@ckeditor/ckeditor5-collaboration-core@46.0.0': + resolution: {integrity: sha512-2avV+/PwoPI8qKelprjLoush3PqEME3q1iwh6gTqqN+Ayy7Zc7jV5yEl5HIUZO5L0WzHYkiBZjfmRCxUxL8Hsg==} + + '@ckeditor/ckeditor5-comments@46.0.0': + resolution: {integrity: sha512-02ji0gIeLuVBopZfmw9hPOWnfDtA9MgDUtCPWI9rqjhg9k0u/ZcYGBFqsL6mUu7h/YaY1n8Z4aKIuArQFwYc3Q==} + + '@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==} engines: {node: '>=18.0.0', npm: '>=5.7.1'} hasBin: true - '@ckeditor/ckeditor5-dev-translations@43.0.1': - resolution: {integrity: sha512-V2exqknJanhLvL0Y3Pxmuab5cbzrM5TzaFGigDJvMdADYvdPggEocqyNSnB0YiS+vka6lWG+iGtyu0b8JYyRBQ==} + '@ckeditor/ckeditor5-dev-translations@43.1.0': + 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-utils@43.0.1': - resolution: {integrity: sha512-GyobheNObVkcqLTU8KVCoPOQWDR56qSWAv+SbGc45+itPh7/VFfdA5/Q7R5oQQk8nXWocL50qLG6EcFpMjMngA==} + '@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-easy-image@45.2.0': - resolution: {integrity: sha512-6wPMwLiYtYQU3SuPQv/B0ujz7IMBEzETbKfqNtYzDk1MvzSdvDSfI5GjIH1tqTyGmK7wtEaJVZLI2B1Wu/R1mA==} + '@ckeditor/ckeditor5-document-outline@46.0.0': + resolution: {integrity: sha512-aLOQuPHXnHKzjQOm2Gg8O0WfzEAUJ0bDuM3nAE7/rqRja2bke2fBqWiy0pGMtVuy+TdYHpn+YGV5o012JNeKtg==} - '@ckeditor/ckeditor5-editor-balloon@45.2.0': - resolution: {integrity: sha512-z+aT3uHtZ10KbQnHYaAkZK4J7A17jjX9yU6JTnDAeMH5pFblXgvroe1zzMXv9SSOxmr2v5p95gE8GgNsEWSG1w==} + '@ckeditor/ckeditor5-easy-image@46.0.0': + resolution: {integrity: sha512-y9rnIlbQRSe3FRdsoAaL0zpW6jlYPxIpCGT28WdWAF3kLwMp/41oKz6ggjbgzAafobUsbPdjpOzoLEDb8RyMcw==} - '@ckeditor/ckeditor5-editor-classic@45.2.0': - resolution: {integrity: sha512-6WbaINZsmCdXGftHGVu9qA7i+qnuEpm4LcQYfBthAdV9k0C/fp8j9IV26SR0Q9PfPk/KaT2XG5wB0uBxn72q3g==} + '@ckeditor/ckeditor5-editor-balloon@46.0.0': + resolution: {integrity: sha512-mDkeX4Lu9NG8gWW1hWPQvR2ZJ7JqKXBfkxRgI7D3PrwrfDyzT2XllfQ31ZjvdUwyUUWyJjIV5AkjsjwWerZHdQ==} - '@ckeditor/ckeditor5-editor-decoupled@45.2.0': - resolution: {integrity: sha512-utIwy3xFdpgbZ+cBTnqdwRguYhENjFOHDTR3cukAE8mEm+Wq7hFy0muybQ/HnnRFJVZBRnEZTXr/ZQFEGg42bA==} + '@ckeditor/ckeditor5-editor-classic@46.0.0': + resolution: {integrity: sha512-o0JLR+7KEydjEuHepkaWbi1VGzocxRik7/LiN60jvzeue48YF3ELtD1czRa5eebuAzh3FSL2r3hfbqpagxGlBg==} - '@ckeditor/ckeditor5-editor-inline@45.2.0': - resolution: {integrity: sha512-JX0YCj8mCV7SLZCFrkIhXvK42up9eKRQDcLOj9i5XxO5K+J8i+frqMCJCptHK8VH4ibxCRNojiGoudY5LADRMQ==} + '@ckeditor/ckeditor5-editor-decoupled@46.0.0': + resolution: {integrity: sha512-HkCfauugtLQxD87A4HcFq2nMxnYq9yngh5JZTPygDSDigRMjNtbdk4PVqMt7p96yw6epJs1HVIZDlFqLljJfLw==} - '@ckeditor/ckeditor5-editor-multi-root@45.2.0': - resolution: {integrity: sha512-MmVq3Dis/3gKME26aVeIHWp+ESqoi9VJTazzjTBuqtuplwCfG2/NhaYvMSX4goN9HGkmXGtfgRONlfWSaLQiPA==} + '@ckeditor/ckeditor5-editor-inline@46.0.0': + resolution: {integrity: sha512-m4C6wFkEU16wLdwu2IkTutz+M0u72yqbngMVM95TJ0FNhNQf3T/TVdhjVQxMDlw7Ep+2X3vUDJXMpDQXLNoy1Q==} - '@ckeditor/ckeditor5-emoji@45.2.0': - resolution: {integrity: sha512-NtUTMRyv26iWd14Rr6G0zbwLeRsInj51WzsjPSf2YPw0/yqhV3ul9q4mYELfKBEG4op/uReH0ZTPbF7DQNUstg==} + '@ckeditor/ckeditor5-editor-multi-root@46.0.0': + resolution: {integrity: sha512-WHCibqvsEBVZ0KqlCycqL+7S/5xXt+c4vuLlrKA6hYkF8YQXnxtxIVIWUZp6fEZi0+b75Eke3dOEK4wTY/tDbA==} - '@ckeditor/ckeditor5-engine@45.2.0': - resolution: {integrity: sha512-jr9/pT5TaY1rew6ncNX4z7Dtjni5RmRf7u4mEt1TKPKhzDA5vszN+ZMj7wwa3nLtLLMiOUej5da2z3aDjvWz6w==} + '@ckeditor/ckeditor5-email@46.0.0': + resolution: {integrity: sha512-Y7ka17XCOMG7ShxLPyukeYaIQazsOjetVbxWlSolJcZS0YW9yQHE9mIUYlwMdgMjZHYe9MHD6WE6V5yMzKrHqA==} - '@ckeditor/ckeditor5-enter@45.2.0': - resolution: {integrity: sha512-E1fAKr3rFknUPFfVH1lbemLtFCMmysNXY1BKT+LFBhpomk+aJ6yk53EJdqPSYQdbPCQHg9ebqAA5JVMxxaFshA==} + '@ckeditor/ckeditor5-emoji@46.0.0': + resolution: {integrity: sha512-XCvkdcujJQeQbYMR6vGzZeOt11+9Q+BbzPh45BAytqzrWN4ngOpJX+BS6ORiZK4f9EsWPgF3kJgJiLVEJhovvw==} - '@ckeditor/ckeditor5-essentials@45.2.0': - resolution: {integrity: sha512-z0CSUMTPHSr29agNg76K3rwI5mh3EAYvlu7BIzgzfZqrKVdAiJHwzbdBqU/LU2JorhLl4ZTHVb3H4wk4fHzxug==} + '@ckeditor/ckeditor5-engine@46.0.0': + resolution: {integrity: sha512-kuTPDygXaZkILp2A002zDWEZH1gHd6Pw5UfgF+S9f9wEgA0vPLYi/qbeqLkM6D95JQyAfXYPuEkXq6fZdtoZYQ==} - '@ckeditor/ckeditor5-find-and-replace@45.2.0': - resolution: {integrity: sha512-Fn7vhHX8baV7MQgm5fr15sG8LS6QUyqvqdvY05gQuv4+CVs3HBgK2zdNznQwUFoI+Zlyk0erEhKnWdyTCYRcxQ==} + '@ckeditor/ckeditor5-enter@46.0.0': + resolution: {integrity: sha512-SAGbScUrB1nazw7dXaGuT/S02bmYvnz/AMRxDkjRAXPqCNE6AUgdCr6dDmXREigQjsR01jvhvx1PAZwUgiC8IQ==} - '@ckeditor/ckeditor5-font@45.2.0': - resolution: {integrity: sha512-EEamXmHw+Kckhjk7JmaxA6fDVK7P6rwAWGqmZiJzwfO0g7BRwzp/BtjTmXysbWVvaCxm7bbnib/OKX6MP8ZyWw==} + '@ckeditor/ckeditor5-essentials@46.0.0': + resolution: {integrity: sha512-3YuRFelc0f0oerzdrcDvSsMkKDATAB/Z219mjqize0N2RwUA17CCMCbFnGDWZYRekglRQYLTvxd8LCTCmEjQFA==} - '@ckeditor/ckeditor5-fullscreen@45.2.0': - resolution: {integrity: sha512-bYj3jt42X7qPpkJUGc4N7n+EzwsoHIVInVAHYXHeJLkN8axuiLraGAe+pguZvwRalMJOkIDqXj/flpm8go2x9w==} + '@ckeditor/ckeditor5-export-inline-styles@46.0.0': + resolution: {integrity: sha512-0MJXr9h6owrJRn4i8erutlSTsZ2IQRuFib8k987wm5zl7anMSS1p83sDhZezRQu4MX1P+nUOcQDsdVGRS0y1WQ==} - '@ckeditor/ckeditor5-heading@45.2.0': - resolution: {integrity: sha512-yURkKMAtr9RY4LutfLSTSw8L/uRpWRi77NDFeknRv2h90/ouOImXBQuluwmIWfSgQ2o6HoTPvb+nd1EItF1uqQ==} + '@ckeditor/ckeditor5-export-pdf@46.0.0': + resolution: {integrity: sha512-m7JSpT4nptuqMp58PYkrBPJrEjxVt2FMcYlEHedGgc7po8OcyshHjN6/KcgIPRejyqzKg1wmTwXorTamSJmocw==} - '@ckeditor/ckeditor5-highlight@45.2.0': - resolution: {integrity: sha512-+JRQ9wfO0dBmla7iA5KVbMWHAgIf7vxRaAxnRixzeZJyY46p39rZmKK6h/olwMzdfiiAoufGnJSlQRsjiPTC8g==} + '@ckeditor/ckeditor5-export-word@46.0.0': + resolution: {integrity: sha512-TqN6wgNxiiinoIx1eUhJqCsoKMFJBeqfj9Qu32iHgYKN/oHjJkczcQBGluMn0wMW7l+ybjenYKqkMfhPUYgPoQ==} - '@ckeditor/ckeditor5-horizontal-line@45.2.0': - resolution: {integrity: sha512-wOdM53nqs9rTNHj3I5jfQnac2rrEqirMEu7wCDLBzGKDCsr7X7wBeH6oMLM7ML/+g041p3xXLRKrX3K1mBsXZg==} + '@ckeditor/ckeditor5-find-and-replace@46.0.0': + resolution: {integrity: sha512-qGw1rOyGVRKQZR7ogNs0XxUb78SkB0xie3LFWZduFAGOaDhC7+DMx91UuO2+lbEaqgGtg1gffNm4Rce//2WdbA==} - '@ckeditor/ckeditor5-html-embed@45.2.0': - resolution: {integrity: sha512-SfkmolUysYvCGc05A2t8AP7F6DH3+kuO2bKLu38mv0mVkm4bD6/7CcZh+InN75YQD42uAL5DhmGqUZklrgNdSQ==} + '@ckeditor/ckeditor5-font@46.0.0': + resolution: {integrity: sha512-Eynyqqre6p+X5ZxlojOfbWuUh8dZdjSnm+8m/7lEOwh8rgzEA5QJ4k91x5BFCYT/yMCesvKTv8H39qIjs/J0Qg==} - '@ckeditor/ckeditor5-html-support@45.2.0': - resolution: {integrity: sha512-MRKO/hMQXwOOcXWbQra5dD2ztSFnnAQAO7hlKB0vYbhRcGjruhivDOHNrDjQkkdckJHv/C/xTKuvtE6RFX34tw==} + '@ckeditor/ckeditor5-format-painter@46.0.0': + resolution: {integrity: sha512-224mVroOMf53aX4rdESpYkTvy+hLGQN/sbpOlhFpzuWuS00+rOO9RfJTU6q4tmZh1fr7m+ky61ybONFZz/EZdg==} - '@ckeditor/ckeditor5-icons@45.2.0': - resolution: {integrity: sha512-8BSpnnBYnhfRWd5QZuqzwTRmG8BL+WXB612Alo26T+EWJi3tiuEgNq1qm9EUVKj6j9dNiq87dNXKyQQY7B/7Gw==} + '@ckeditor/ckeditor5-fullscreen@46.0.0': + resolution: {integrity: sha512-vus25ec9AyGOVcy9ghUTILz8LLctW7dDP2GhUreCX1FEouue8UgvvrfYYLwim1tI7b1deRcg1zIAENHVhjNLiw==} - '@ckeditor/ckeditor5-image@45.2.0': - resolution: {integrity: sha512-x218ePIog5HZ83H7m3OeAuH4gdclRN+sJczXZAi9zGSYuRzUxHmqcXh2s4rDyrLc0tFf2TB9W6jjrsqokmXZTA==} + '@ckeditor/ckeditor5-heading@46.0.0': + resolution: {integrity: sha512-fIrmsH4xh3d/QpunSZR3RPR+jybEXBibYwd8EF3ClcpmhhtMRul7BponRVb70a4A4bE+35Pq3Dj+HVV1bn6pIg==} - '@ckeditor/ckeditor5-indent@45.2.0': - resolution: {integrity: sha512-gdJQugvCrT5OpDdQCvCIl+zsgDxWFh8q+Aj+aL7We2LDDXg2rlbDuT/lBbXPEBObyuLBBo0/MthlwcirkBoXKg==} + '@ckeditor/ckeditor5-highlight@46.0.0': + resolution: {integrity: sha512-F2jChM/83tcogE3QrxzQJtbCCLhzZY+izpXhiYLO9myfm0guOXITggTbl1LiJ1jdV9iEpq81Lq72/m5mZl5kVw==} - '@ckeditor/ckeditor5-inspector@4.1.0': - resolution: {integrity: sha512-yKoIFpaSVQQIhgFEyoltwG40OSsWX5psYdYvNxW84nfxgrs90DJrbMQDtdchVZNMXBu6CkJfPiPG0WBLU9su3g==} - engines: {node: '>=14.0.0', npm: '>=5.7.1'} + '@ckeditor/ckeditor5-horizontal-line@46.0.0': + resolution: {integrity: sha512-5JAYD3nohuqgjPf757XFqi5JWGLkf+5s8SBKFL7b5r6g0WQT0zm7yIxPQGhy0N2eFBFhPW/cdWPa3WhUJYVCmw==} - '@ckeditor/ckeditor5-language@45.2.0': - resolution: {integrity: sha512-1HW4Uz/7DwfKUvs7X9j5oN4+U6MgxH/uyrGbA3CZ9U0UyWDvddB0sUhiMVm1lv56tup6rnlilwGZRetwd6YXrA==} + '@ckeditor/ckeditor5-html-embed@46.0.0': + resolution: {integrity: sha512-jHuvg+hIDyjq1zqNoMbR1sbiDBdmd4pZzG5CYcUW2l1DblFzjDq1RUnETHpS+YM0tu4QYYLiMhd9OE4s+bO9eA==} - '@ckeditor/ckeditor5-link@45.2.0': - resolution: {integrity: sha512-0KHaoF+/tpHcJljdxdnrKRrPgtn8YVVPz/wyuTITeg0aO+K6r7UbtrB/LEsLOv8MUO/KLcb9LtlgCZw7Jxm4VQ==} + '@ckeditor/ckeditor5-html-support@46.0.0': + resolution: {integrity: sha512-w+CvJ6fBzxXRJ978urZsOKfLXRINzUsfUr4XqUcU0Y9RRXIuyQa/XSRqgAZY2Wrl0t56P+AnolKWJDHx6yiVlQ==} - '@ckeditor/ckeditor5-list@45.2.0': - resolution: {integrity: sha512-pXGpmkPhHxVmIDJnfjAaCuSS1MxbGJ29vJ+tHy9avTdN4oQjQJX3HMaKg7Fxq8iqsHKrXvMFM3k3kLq+ff2IFw==} + '@ckeditor/ckeditor5-icons@46.0.0': + resolution: {integrity: sha512-WjE4DWF8tnUgFWmvVZswTQnqpWnwSGIZaG1aq11iHFvzK20O7IzJmKzxS6QxOYFeK+I8+sLzbJEDQeZerZb3Kg==} - '@ckeditor/ckeditor5-markdown-gfm@45.2.0': - resolution: {integrity: sha512-o6II688bVNBEC/or4v1JwSW0O1aAroyIbv0L5eimoMhCDPp9/6HRK4gSLKcC9nemwKKko0X+fSj0R+E/6aXpXw==} + '@ckeditor/ckeditor5-image@46.0.0': + resolution: {integrity: sha512-7NbZB1IrH+2/TJQ07RPqf/o+Qg2PFgtOl0lT8/0nSqCUVbaA5qb2hxoSPB+NGJGeSFRlJEjf0QHMSv6xA2wR8A==} - '@ckeditor/ckeditor5-media-embed@45.2.0': - resolution: {integrity: sha512-VIoc/1T6XtM6M6PblWHu/hKShVlVOXx+dzMfg2W5dX99JfWXoevrABIqVNLlHnDhhM9SNDqW94Sos2yfZ+BeVQ==} + '@ckeditor/ckeditor5-import-word@46.0.0': + resolution: {integrity: sha512-VmWoWJl5Hwj5z5dj6bxsQCMBgV723dLEG8lE2dc+1wU0l7SHNPakQhbGJhFNSfC1ADJp86NCp6yL33O0n8wffw==} - '@ckeditor/ckeditor5-mention@45.2.0': - resolution: {integrity: sha512-nBBEArPfYiopARSOI2TwbYCxLk9ALdKc/3qh2D2rjQwvoJ6zn7nBBoiDBMbhO2XC6J+AkUYQNEqcNVS4j3HIew==} + '@ckeditor/ckeditor5-indent@46.0.0': + resolution: {integrity: sha512-DGAHxA5NIe4jQ9mnoTpx6EpXKaHFSbqReZBQfZQakW3ypUOjRbpwrQOIEVtRSADaxRM37KcO6oS8duthqqwNDw==} - '@ckeditor/ckeditor5-minimap@45.2.0': - resolution: {integrity: sha512-24X53UrzhzppPHECa17Xb69EcnXuV/ktaSTbYFncIDbBFef4GwQjkQweplmXdgNRh630GLlhQc/GCCtbhIvDlA==} + '@ckeditor/ckeditor5-inspector@5.0.0': + resolution: {integrity: sha512-WVCa1mtePJkLtI81Rn2E6orV0B2Az/+O7f+corJzYapoH5koVEe9TcVyoKRquKUWeBXMG+D1m72vmR2kuoLNhA==} - '@ckeditor/ckeditor5-package-tools@4.0.0': - resolution: {integrity: sha512-LSNB5Q51A7nZL2N/o7EuV3TcHn2rncpc1qucP3GgJstYSXELY37NEGgprGKWJPH20tQqs1vJIFO7L4Jq6h1h1A==} + '@ckeditor/ckeditor5-language@46.0.0': + resolution: {integrity: sha512-REricrlKECtJy9E7F6uP+xcYweJU/eCiD5+pHCTosw9/x7XdxwLydwtUosmG9fgvZDeWBEH8SWc9RFCDscPcNQ==} + + '@ckeditor/ckeditor5-line-height@46.0.0': + resolution: {integrity: sha512-e4REy8taOCwwmDr0QZYD7Wf8LR77kbKmMpNqD22dobVezbyd/v/ryGzQfGDvlL8jOeAjEkzFp2TmgZzgde1CgA==} + + '@ckeditor/ckeditor5-link@46.0.0': + resolution: {integrity: sha512-R3cCGqgO7FOQJu69yubdoBGaRJ/mK1AB5J4NQXOslNg8us5QIbbL8ZPPbmAY3QtK7w59rJ4eeHJbtAhy28RmWA==} + + '@ckeditor/ckeditor5-list-multi-level@46.0.0': + resolution: {integrity: sha512-6YcHiNOPyPrGbNxIry+e1xoA9WRUc+1W7SuE5V1GIr87awzyNeMZNJKsqaVFXv/mIJ3kdS39id6gYOUKpc37wg==} + + '@ckeditor/ckeditor5-list@46.0.0': + resolution: {integrity: sha512-TsEUVFFT/MsJ8JLzE4YAmDDB9kImOBx7+pATN5jQJzKB2pgAoEihTytnWni45nEcXOKj8rOf3CvXTl5rVJfl2Q==} + + '@ckeditor/ckeditor5-markdown-gfm@46.0.0': + resolution: {integrity: sha512-uDHTS+VrmUY/bZWDQv/9nOOSMnfLOymAmvQ/oTNPlIZQXxprDU1cH221TxOZpvE0u1SHC3Spomt38Ea6yqzGZw==} + + '@ckeditor/ckeditor5-media-embed@46.0.0': + resolution: {integrity: sha512-ZC8JbaWAxGaC7bANYc7ADOKZtHJFHNsftwKWt0xb2mmqox8BpJlEo6o4LYakXcPBI/JgnXawwukDia2KR8Bz+g==} + + '@ckeditor/ckeditor5-mention@46.0.0': + resolution: {integrity: sha512-BWwzitc6UUR+vmBf5Hvb1MNmFsYl5k59YT/dKXl0TIeKPJgygdRTFv7EN95wgA1ROpUXRwjCDCfYP5uuaLfjJQ==} + + '@ckeditor/ckeditor5-merge-fields@46.0.0': + resolution: {integrity: sha512-AWOSHm/HfpiTFE33A/O6hVE0f0q9JIDjpY4KnBQD4Bprb/PfhZ8ns8rCSvC3vZWSPB5O92n+y9L3LjvJ8ZIuhQ==} + + '@ckeditor/ckeditor5-minimap@46.0.0': + resolution: {integrity: sha512-HiMv+fb9VBmtxVbsPhiDhfn2g2bLP3QpVXT4gmqtYEZoFV/02JvIqeweKDXtx/hrY4qXqklbKNECrJLEAz9Ssw==} + + '@ckeditor/ckeditor5-operations-compressor@46.0.0': + resolution: {integrity: sha512-z7FYiUIgwm5fWF//nHdZbnuHIChxtU1BuwsPBETG6BM8lhrvExiB35kdu0FFFTpSUcgHXPUOJ0Z4bQIoEhjUMA==} + + '@ckeditor/ckeditor5-package-tools@4.0.1': + resolution: {integrity: sha512-DbvmEzzTXhWgcpdbgOPFT+u+U5fCJUDHb5gfQSmIC1VgMVqvEIHMQTMQ29wcmBmGCxD8G8THWSWVcGu81oNs2A==} hasBin: true - '@ckeditor/ckeditor5-page-break@45.2.0': - resolution: {integrity: sha512-hKjc/pJS8CbCwQXJMmBb0EbqBjCb9811E+08SNo4o0AztZfFlxvZPcua4GjckWWQYYtjdG7GviTe+pmnR4vT+w==} + '@ckeditor/ckeditor5-page-break@46.0.0': + resolution: {integrity: sha512-zhgqdS9CLdJ46PTsMogudKtxyN2SW+aCEFjvXff56j51kvfY9shUfk6I0O8+ChmslWy8v7nM4QAQVTDJC/vSEw==} - '@ckeditor/ckeditor5-paragraph@45.2.0': - resolution: {integrity: sha512-6Cb7PdZigDe/wxDbIA6ZEmQFqDzOXfkzS8frXiQZ5EoU9DcylrF9GgRQhCO3vC2v0SoymqBZ72ldxGxHGhaVCw==} + '@ckeditor/ckeditor5-pagination@46.0.0': + resolution: {integrity: sha512-/AJY7D2db6y+hQMZ465EBrFp8rA0n7V2aX7+FQut9KoJqwnUCNFnAhUaNxe8jNapb7s8Skfql6/fQGIW6whBKg==} - '@ckeditor/ckeditor5-paste-from-office@45.2.0': - resolution: {integrity: sha512-lEvFlWW1xSzwX9+d8cfES7quvIjifbkKp3zy2x4pW3hSsk7ba4zNuV0ML1JRea95u79RjCNLYnK2FU3q0AXKUg==} + '@ckeditor/ckeditor5-paragraph@46.0.0': + resolution: {integrity: sha512-3XCJTzFBGv1G6ZS2zQ8QVfX6waBXW08cvFi7F6hhK44OZYllTgW0l9jpR1TnmcC3VokNa4LQrC1fn/J5Hk8fBQ==} - '@ckeditor/ckeditor5-remove-format@45.2.0': - resolution: {integrity: sha512-NHHsbjSw0gXGgDW8eyuOIHRTjs6BtU3YJwhXFqLXP6h+RM1gs9xTypZoKAPF6IYqS8F9+73SNy50/bmSzGfcFg==} + '@ckeditor/ckeditor5-paste-from-office-enhanced@46.0.0': + resolution: {integrity: sha512-hVMgfJ4BTcDZJvxjiNLIiWLrRaEi9PsIa5Enw/LxPhPOcZcOHVFj0ZlQIfHAubhuGAw/AxaKmXswBaoU1cWW5A==} - '@ckeditor/ckeditor5-restricted-editing@45.2.0': - resolution: {integrity: sha512-HegnRobGiLHWkBtZcQVuPyUmbU6R5sFU0w2CKLLjQzqpgs9i1g2mTqcBr3GBPUdOty0v0nfc3r0Q0BM2X8Rtow==} + '@ckeditor/ckeditor5-paste-from-office@46.0.0': + resolution: {integrity: sha512-8GaHLbcuG26xPiGtp25yoYqB0wy+0IgDZqSW2m6rM3DsMHrFWilufwArp/9wExTBjeKgdbsgv6BP0RFEA1oXcg==} - '@ckeditor/ckeditor5-select-all@45.2.0': - resolution: {integrity: sha512-Q7qjnwnkDvev7wsIYV7kcqtap3Ki5PIUlEBisB8IBrnS+6JjZtkbVSbuRYK2E6Qfe0gDdz//tnOoUc4Hb65uWA==} + '@ckeditor/ckeditor5-real-time-collaboration@46.0.0': + resolution: {integrity: sha512-RnboRHSI4lVESFhH/pJCKMJAcLGN61gsQ4mXzx4tNXSScPPioF3KkXCivdkuYgJvDtffRuoUoS5tyjWda353ig==} - '@ckeditor/ckeditor5-show-blocks@45.2.0': - resolution: {integrity: sha512-CCgj9R27PqMAat62COD/vfnX/YHWmFYzQCqyT88XuUIxB3GltsHEimxsZ+4uXo8G433bHeHhQWuOc9zWBh6CzQ==} + '@ckeditor/ckeditor5-remove-format@46.0.0': + resolution: {integrity: sha512-bOSzTlhTk8TAvSt7C+yNrS531y/D2ghoFhyexhBb2JU+TAeNXkuyuTSxFc9luWIZf2AKvWe4hU3yyVDIlXT9Bg==} - '@ckeditor/ckeditor5-source-editing@45.2.0': - resolution: {integrity: sha512-3DZPIvuvjgpfD3kr6/TE210+wVTFHwML1RAKU0fcBfWbgz/OPr81DJAU35kcpaU4vwahurLAwc15iM7D+O/TGg==} + '@ckeditor/ckeditor5-restricted-editing@46.0.0': + resolution: {integrity: sha512-euhQ57RfJFJzRP9SseV4sqWsXY9WRQobCaiW1ENxnwEa4FxmnDiLElR6xZ9jimrG5bN3ldbedjJ79mhKp9VMhA==} - '@ckeditor/ckeditor5-special-characters@45.2.0': - resolution: {integrity: sha512-ZTGiLAiIrYRXJnnXjM0s4VyEt3Pj5BIsHvdfEy0sM2XdslQ3xjPHDvBz2r0hOSfysSWr1SZ4kPf2dwU1256Bxg==} + '@ckeditor/ckeditor5-revision-history@46.0.0': + resolution: {integrity: sha512-msf49YrSdtHTifyKqfkHxU4LomWBKD4cmOTbXfttiE7V1asPRrDFfp+yWymF3HnDZbma0FfEIg2s0/Q+qR844A==} - '@ckeditor/ckeditor5-style@45.2.0': - resolution: {integrity: sha512-JQRGAf2FeQQp90oFNfg/Xq65tizF28Wbt25AXxT1g/WvaCeY8QW31cJc0joC8CKVvYGlFrzj/cN25TAwx/B8vQ==} + '@ckeditor/ckeditor5-select-all@46.0.0': + resolution: {integrity: sha512-6SvSkYuwZRJuTy/HwQUGh3HpkxkCkEq8Yfew6YWuwulRUgKwMrD4F9R6ZUqDCornTpP+o6p9UrseSFn/3sgxwQ==} - '@ckeditor/ckeditor5-table@45.2.0': - resolution: {integrity: sha512-sMYpAaHTx418RQwIsiHEQ1RXOhkmxXZxfVoThfFdCvdSVhVruCRmrXc6Thn809pJEFqAnAOe3t7Pf5gNIdFnrQ==} + '@ckeditor/ckeditor5-show-blocks@46.0.0': + resolution: {integrity: sha512-hhOANTwo6XC1Y59/O8q+XAh+dqokhMov6/HLeuZ0uxVCuryDQxXh+C1lU6rjFG9EKW0zUoQPViLkOAbx/Nm4xQ==} - '@ckeditor/ckeditor5-theme-lark@45.2.0': - resolution: {integrity: sha512-oxW8jaa8YZcFoq9EgZUpRZhJS/YDlq7FBDahl92CYjhfHeCCXNWLpG48bx8OSLTLviFE+5wAR2fwvetwMhEkeA==} + '@ckeditor/ckeditor5-slash-command@46.0.0': + resolution: {integrity: sha512-B4/DcgWDYtcSKlR8FyQzcLGHJWYsuURb9dV4FD0OYeigzC/+l8c0B1AP0+3ZHtpmIclR2/OFMSYWuetBKhKX1g==} - '@ckeditor/ckeditor5-typing@45.2.0': - resolution: {integrity: sha512-kIolXzb60SV9+oAA2tRz0gjsZgb/Tjyra6Jy1S+K7YPh8tMGaDZEhWzwNf4IZl6J0Ue840XwStZgA7Wnf1y1fw==} + '@ckeditor/ckeditor5-source-editing-enhanced@46.0.0': + resolution: {integrity: sha512-viuf65xAX5m0JZUT2XKGB4Wz4FSVIUcbOaRyw3HOLjqmcj58S+8VMfcRrChvtde1fQvzF28+5haekci9MSUWWg==} - '@ckeditor/ckeditor5-ui@45.2.0': - resolution: {integrity: sha512-nUyE4miGnBguqWpLkbtyQlGxmTq1Z9HndZ4J3r2+Db85CXVAQNvnBT62T1wdQlUp9hArEp16BgtYO8PwXTT6og==} + '@ckeditor/ckeditor5-source-editing@46.0.0': + resolution: {integrity: sha512-TRIgm1vjSerGfuiOg50/+WNXzDYUonjZLsxvFP3c9EOpTs8vqXjdQP/VeyK4PG3DgbablMsZOZhSi9ci0IO3xQ==} - '@ckeditor/ckeditor5-undo@45.2.0': - resolution: {integrity: sha512-5ySaYtW2wgyYJCZauwJF96TbrCJBghzq28mbIay0M8G0BjQQNtSo8uDFlhYWVyoO0HF0qOFw5mbTsK27ggRS4A==} + '@ckeditor/ckeditor5-special-characters@46.0.0': + resolution: {integrity: sha512-tfjKoavd6rguOE3bzLl65PWJQJsWtAJCZVvW3B6TrbeT3oEqJ1UhBnnA46LgwvXM5tT94b7xCK2AmcjyQ5eG0A==} - '@ckeditor/ckeditor5-upload@45.2.0': - resolution: {integrity: sha512-t4oYi3OK/dYzVjPzZI55VxmHqfc9rA8GeVonQrnLOpQfBW3G9BHxDn4xzLhgGbKqyMKwDqYb1XIUoFrI84pvMg==} + '@ckeditor/ckeditor5-style@46.0.0': + resolution: {integrity: sha512-Cm8jHegh4UG+1309qbs/hf7aIYTyqp4/zbBciW8Mcdrct8d2eeIigWPt54sw2PWz3v5ZsUquH4Y4JupiEXsOOw==} - '@ckeditor/ckeditor5-utils@45.2.0': - resolution: {integrity: sha512-SFRh25D5szN+AhnmzNwgef8zJFQisl9tP2f3GR7Mr4bVHzzyz/9SY/ZkGTwOG1Q5lt0kbwQyL3WWpDLfVkWPpg==} + '@ckeditor/ckeditor5-table@46.0.0': + resolution: {integrity: sha512-N51XBgCWsxrjMJaw9DNuCF9oYhdQgSRhtDsEhY8Q9+VYdtfSxEcjtLpzlUT2/GIwrZKWeFWuJeB3sba/jdfP1w==} - '@ckeditor/ckeditor5-watchdog@45.2.0': - resolution: {integrity: sha512-AnypB1eLI6xb6FEWzqkNMzYfmowE0VFlbtUAve6EPHQkRgBM1AAYoxoF00GpFDfpVanBdsE5T2g2HHndCvaR/g==} + '@ckeditor/ckeditor5-template@46.0.0': + resolution: {integrity: sha512-GMvNkqLyIQ7iQJfevYEdkO8QxdW5e5D2Ao1WFo67fwBB40vB0cGLnPKWS6fagordSErmuKn0I0GfkcgCrpOKxA==} - '@ckeditor/ckeditor5-widget@45.2.0': - resolution: {integrity: sha512-Iu0mIp+T1Vb0FstIMW1w8qh3WeCE9jnUUEvTDKQEAp46r3ldjH9znWgkXqYqxyMGME6d8x2pL1Ewb14sAoUiHw==} + '@ckeditor/ckeditor5-theme-lark@46.0.0': + resolution: {integrity: sha512-gaztcvUQ6KAbNTB1efkciEWwesJIp9CjIM91nOBj72eR5/xZKM+aTbLdiciVFSgB1Ma1qCU3DvQ1vafACO93qQ==} - '@ckeditor/ckeditor5-word-count@45.2.0': - resolution: {integrity: sha512-zGhP62Nfebr7EKlGX509fkeO588DHL2YnkQzgEBZA4CkvU/5lden1pZ1gEK/dD3qKuLgujCXTWt+TuiCn8Z8QQ==} + '@ckeditor/ckeditor5-track-changes@46.0.0': + resolution: {integrity: sha512-RJthlQjALgskwd9WedD1CRHAK9ebRn9Jo0vIydPaFa8pl5klqGvZVR6uT8jnJ7yRdYXNa/BY+EHqZxUeRdnORg==} + + '@ckeditor/ckeditor5-typing@46.0.0': + resolution: {integrity: sha512-xeFrXEpzo9T/bLaIwHtYDSSPb5KYA2eiYPVWxivw3VEs6gDfHhRz7EZEZ9OhnjNBQYhiyLgKaX+3di72sqrbhA==} + + '@ckeditor/ckeditor5-ui@46.0.0': + resolution: {integrity: sha512-VMdUOK42l+b/rHUctXv0WOMbvcqWXM8kglxZ1paAzWBWhhy1cp2Q6VW21w23VSmmwNA110xPKTcKlkC09bniDA==} + + '@ckeditor/ckeditor5-undo@46.0.0': + resolution: {integrity: sha512-MoLU8c/ip7KVByKZT8fVXSP7ZzxwXu4Rxk/T91rHcxR2BLa93fyS3M9v6oXmww9fI9enGVPw2LD+yESXYJMOiQ==} + + '@ckeditor/ckeditor5-upload@46.0.0': + resolution: {integrity: sha512-GPRctyLpktYgV00C71R31leUM7rZchEqdvGK+EJfmx8qWkzuKSXLN8HJ9rhjgFf8D49eQm506sH5lek9+HZA0w==} + + '@ckeditor/ckeditor5-uploadcare@46.0.0': + resolution: {integrity: sha512-w7e9u4VC4qn4rA9Pwfz8XM7H5dEa2bC/dVsJMYihd+K1Mb5uNCrL+W93yENT1TjPKopW2+rPp7IMUSqxFPvzOQ==} + + '@ckeditor/ckeditor5-utils@46.0.0': + resolution: {integrity: sha512-wql+hSp29EMMhQlj0oXHiOOzD4ZTvRrI7801WtFjfiSldmIJAyIiF4zLFiRoB5+pGbt+AQB76VAdqFjz43AkuA==} + + '@ckeditor/ckeditor5-watchdog@46.0.0': + resolution: {integrity: sha512-p6lNeUsuWkJ9lJ/59TkCOUrOhUxcB2NGm3sGsG3qHSB/I6W6jjW3r7ZZah/z3Ysy0ImkHLQX0WlFDlw7E6EnSw==} + + '@ckeditor/ckeditor5-widget@46.0.0': + resolution: {integrity: sha512-NhTtCkkZQNzKHPtUvN5ukOUfwI3rop0Zdo9QxfKFcrSc5B7a9+YLX70lyPzp6loUypy9N9XP4qvvjBUXg64UMw==} + + '@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==} @@ -2240,14 +2518,17 @@ packages: '@codemirror/lang-javascript@6.2.4': resolution: {integrity: sha512-0WVmhp1QOqZ4Rt6GlVGwKJN3KW7Xh4H2q8ZZNGZaP6lRdxXJzmjm4FqvmOojVj6khWJHIb9sp7U/72W7xQgqAA==} - '@codemirror/lang-json@6.0.1': - resolution: {integrity: sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==} + '@codemirror/lang-json@6.0.2': + resolution: {integrity: sha512-x2OtO+AvwEHrEwR0FyyPtfDUiloG3rnVTSZV1W8UteaLL8/MajQd8DpvUb2YVzC+/T18aSDv0H9mu+xw0EStoQ==} '@codemirror/lang-markdown@6.3.2': resolution: {integrity: sha512-c/5MYinGbFxYl4itE9q/rgN/sMTjOr8XL5OWnC+EaRMLfCbVUmmubTJfdgpfcSS2SCaT7b+Q+xi3l6CgoE+BsA==} - '@codemirror/lang-php@6.0.1': - resolution: {integrity: sha512-ublojMdw/PNWa7qdN5TMsjmqkNuTBD3k6ndZ4Z0S25SBAiweFGyY68AS3xNcIOlb6DDFDvKlinLQ40vSLqf8xA==} + '@codemirror/lang-markdown@6.3.3': + resolution: {integrity: sha512-1fn1hQAPWlSSMCvnF810AkhWpNLkJpl66CRfIy3vVl20Sl4NwChkorCHqpMtNbXr1EuMJsrDnhEpjZxKZ2UX3A==} + + '@codemirror/lang-php@6.0.2': + resolution: {integrity: sha512-ZKy2v1n8Fc8oEXj0Th0PUMXzQJ0AIR6TaZU+PbDHExFwdu+guzOA4jmCHS1Nz4vbFezwD7LyBdDnddSJeScMCA==} '@codemirror/lang-vue@0.1.3': resolution: {integrity: sha512-QSKdtYTDRhEHCfo5zOShzxCmqKJvgGrZwDQSdbvCRJ5pRLWBS7pD/8e/tH44aVQT6FKm0t6RVNoSUWHOI5vNug==} @@ -2270,8 +2551,11 @@ packages: '@codemirror/state@6.5.2': resolution: {integrity: sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==} - '@codemirror/view@6.37.1': - resolution: {integrity: sha512-Qy4CAUwngy/VQkEz0XzMKVRcckQuqLYWKqVpDDDghBe5FSXSqfVrJn49nw3ePZHxRUz4nRmb05Lgi+9csWo4eg==} + '@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==} '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} @@ -2295,22 +2579,29 @@ packages: '@csstools/css-parser-algorithms': ^3.0.4 '@csstools/css-tokenizer': ^3.0.3 - '@csstools/css-parser-algorithms@3.0.4': - resolution: {integrity: sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==} + '@csstools/css-parser-algorithms@3.0.5': + resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-tokenizer': ^3.0.3 + '@csstools/css-tokenizer': ^3.0.4 - '@csstools/css-tokenizer@3.0.3': - resolution: {integrity: sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==} + '@csstools/css-tokenizer@3.0.4': + resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} engines: {node: '>=18'} - '@csstools/media-query-list-parser@4.0.2': - resolution: {integrity: sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==} + '@csstools/media-query-list-parser@3.0.1': + resolution: {integrity: sha512-HNo8gGD02kHmcbX6PvCoUuOQvn4szyB9ca63vZHKX5A81QytgDG4oxG4IaEfHTlEZSZ6MjPEMWIVU+zF2PZcgw==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.4 - '@csstools/css-tokenizer': ^3.0.3 + '@csstools/css-parser-algorithms': ^3.0.1 + '@csstools/css-tokenizer': ^3.0.1 + + '@csstools/media-query-list-parser@4.0.3': + resolution: {integrity: sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 '@csstools/selector-resolve-nested@3.0.0': resolution: {integrity: sha512-ZoK24Yku6VJU1gS79a5PFmC8yn3wIapiKmPgun0hZgEI5AOqgH2kiPRsPz1qkGv4HL+wuDLH83yQyk6inMYrJQ==} @@ -2318,6 +2609,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'} @@ -2459,8 +2756,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' @@ -2473,18 +2770,18 @@ packages: engines: {node: '>=14.14'} hasBin: true - '@emnapi/core@1.4.3': - resolution: {integrity: sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==} + '@emnapi/core@1.4.4': + resolution: {integrity: sha512-A9CnAbC6ARNMKcIcrQwq6HeHCjpcBZ5wSx4U01WXCqEKlrzB9F9315WDNHkrs2xbx7YjjSxbUYxuN6EQzpcY2g==} - '@emnapi/runtime@1.4.3': - resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} + '@emnapi/runtime@1.4.4': + resolution: {integrity: sha512-hHyapA4A3gPaDCNfiqyZUStTMqIkKRshqPIuDOXv1hcBnD4U3l8cP0T1HMCfGRxQ6V64TGCcoswChANyOAwbQg==} - '@emnapi/wasi-threads@1.0.2': - resolution: {integrity: sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==} + '@emnapi/wasi-threads@1.0.3': + resolution: {integrity: sha512-8K5IFFsQqF9wQNJptGbS6FNKgUTsSRYnTqNCG1vPP8jFdjSv18n2mQfJpkt2Oibo9iBEzcDnDxNwKTzC7svlJw==} - '@es-joy/jsdoccomment@0.40.1': - resolution: {integrity: sha512-YORCdZSusAlBrFpZ77pJjc5r1bQs5caPWtAu+WWmiSo+8XaUzseapVrfAtiRFbQWnrBxxLLEwF6f6ZG/UgCQCg==} - engines: {node: '>=16'} + '@es-joy/jsdoccomment@0.50.2': + resolution: {integrity: sha512-YAdE/IJSpwbOTiaURNCKECdAwqrJuFiZhylmesBcIRawtYKnBR2wxPhoIewMg+Yu+QuYvHfJNReWpoxGBKOChA==} + engines: {node: '>=18'} '@esbuild/aix-ppc64@0.25.5': resolution: {integrity: sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==} @@ -2492,150 +2789,306 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.25.6': + resolution: {integrity: sha512-ShbM/3XxwuxjFiuVBHA+d3j5dyac0aEVVq1oluIDf71hUw0aRF59dV/efUsIwFnR6m8JNM2FjZOzmaZ8yG61kw==} + 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.6': + resolution: {integrity: sha512-hd5zdUarsK6strW+3Wxi5qWws+rJhCCbMiC9QZyzoxfk5uHRIE8T287giQxzVpEvCwuJ9Qjg6bEjcRJcgfLqoA==} + 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.6': + resolution: {integrity: sha512-S8ToEOVfg++AU/bHwdksHNnyLyVM+eMVAOf6yRKFitnwnbwwPNqKr3srzFRe7nzV69RQKb5DgchIX5pt3L53xg==} + 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.6': + resolution: {integrity: sha512-0Z7KpHSr3VBIO9A/1wcT3NTy7EB4oNC4upJ5ye3R7taCc2GUdeynSLArnon5G8scPwaU866d3H4BCrE5xLW25A==} + 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.6': + resolution: {integrity: sha512-FFCssz3XBavjxcFxKsGy2DYK5VSvJqa6y5HXljKzhRZ87LvEi13brPrf/wdyl/BbpbMKJNOr1Sd0jtW4Ge1pAA==} + 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.6': + resolution: {integrity: sha512-GfXs5kry/TkGM2vKqK2oyiLFygJRqKVhawu3+DOCk7OxLy/6jYkWXhlHwOoTb0WqGnWGAS7sooxbZowy+pK9Yg==} + 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.6': + resolution: {integrity: sha512-aoLF2c3OvDn2XDTRvn8hN6DRzVVpDlj2B/F66clWd/FHLiHaG3aVZjxQX2DYphA5y/evbdGvC6Us13tvyt4pWg==} + 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.6': + resolution: {integrity: sha512-2SkqTjTSo2dYi/jzFbU9Plt1vk0+nNg8YC8rOXXea+iA3hfNJWebKYPs3xnOUf9+ZWhKAaxnQNUf2X9LOpeiMQ==} + 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.6': + resolution: {integrity: sha512-b967hU0gqKd9Drsh/UuAm21Khpoh6mPBSgz8mKRq4P5mVK8bpA+hQzmm/ZwGVULSNBzKdZPQBRT3+WuVavcWsQ==} + 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.6': + resolution: {integrity: sha512-SZHQlzvqv4Du5PrKE2faN0qlbsaW/3QQfUUc6yO2EjFcA83xnwm91UbEEVx4ApZ9Z5oG8Bxz4qPE+HFwtVcfyw==} + 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.6': + resolution: {integrity: sha512-aHWdQ2AAltRkLPOsKdi3xv0mZ8fUGPdlKEjIEhxCPm5yKEThcUjHpWB1idN74lfXGnZ5SULQSgtr5Qos5B0bPw==} + 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.6': + resolution: {integrity: sha512-VgKCsHdXRSQ7E1+QXGdRPlQ/e08bN6WMQb27/TMfV+vPjjTImuT9PmLXupRlC90S1JeNNW5lzkAEO/McKeJ2yg==} + 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.6': + resolution: {integrity: sha512-WViNlpivRKT9/py3kCmkHnn44GkGXVdXfdc4drNmRl15zVQ2+D2uFwdlGh6IuK5AAnGTo2qPB1Djppj+t78rzw==} + 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.6': + resolution: {integrity: sha512-wyYKZ9NTdmAMb5730I38lBqVu6cKl4ZfYXIs31Baf8aoOtB4xSGi3THmDYt4BTFHk7/EcVixkOV2uZfwU3Q2Jw==} + 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.6': + resolution: {integrity: sha512-KZh7bAGGcrinEj4qzilJ4hqTY3Dg2U82c8bv+e1xqNqZCrCyc+TL9AUEn5WGKDzm3CfC5RODE/qc96OcbIe33w==} + 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.6': + resolution: {integrity: sha512-9N1LsTwAuE9oj6lHMyyAM+ucxGiVnEqUdp4v7IaMmrwb06ZTEVCIs3oPPplVsnjPfyjmxwHxHMF8b6vzUVAUGw==} + 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.6': + resolution: {integrity: sha512-A6bJB41b4lKFWRKNrWoP2LHsjVzNiaurf7wyj/XtFNTsnPuxwEBWHLty+ZE0dWBKuSK1fvKgrKaNjBS7qbFKig==} + 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.6': + resolution: {integrity: sha512-IjA+DcwoVpjEvyxZddDqBY+uJ2Snc6duLpjmkXm/v4xuS3H+3FkLZlDm9ZsAbF9rsfP3zeA0/ArNDORZgrxR/Q==} + 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.6': + resolution: {integrity: sha512-dUXuZr5WenIDlMHdMkvDc1FAu4xdWixTCRgP7RQLBOkkGgwuuzaGSYcOpW4jFxzpzL1ejb8yF620UxAqnBrR9g==} + 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.6': + resolution: {integrity: sha512-l8ZCvXP0tbTJ3iaqdNf3pjaOSd5ex/e6/omLIQCVBLmHTlfXW3zAxQ4fnDmPLOB1x9xrcSi/xtCWFwCZRIaEwg==} + 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.6': + resolution: {integrity: sha512-hKrmDa0aOFOr71KQ/19JC7az1P0GWtCN1t2ahYAf4O007DHZt/dW8ym5+CUdJhQ/qkZmI1HAF8KkJbEFtCL7gw==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.25.6': + resolution: {integrity: sha512-+SqBcAWoB1fYKmpWoQP4pGtx+pUUC//RNYhFdbcSA16617cchuryuhOCRpPsjCblKukAckWsV+aQ3UKT/RMPcA==} + 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.6': + resolution: {integrity: sha512-dyCGxv1/Br7MiSC42qinGL8KkG4kX0pEsdb0+TKhmJZgCUDBGmyo1/ArCjNGiOLiIAgdbWgmWgib4HoCi5t7kA==} + 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.6': + resolution: {integrity: sha512-42QOgcZeZOvXfsCBJF5Afw73t4veOId//XD3i+/9gSkhSV6Gk3VPlWncctI+JcOyERv85FUo7RxuxGy+z8A43Q==} + 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.6': + resolution: {integrity: sha512-4AWhgXmDuYN7rJI6ORB+uU9DHLq/erBbuMoAuB4VWJTu5KtCgcKYPynF0YI1VkBNuEfjNlLrFr9KZPJzrtLkrQ==} + 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.6': + resolution: {integrity: sha512-NgJPHHbEpLQgDH2MjQu90pzW/5vvXIZ7KOnPyNBm92A6WgZ/7b6fJyUBjoumLqeOQQGqY2QjQxRo97ah4Sj0cA==} + 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} @@ -2646,40 +3099,49 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.20.0': - resolution: {integrity: sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==} + '@eslint/compat@1.3.1': + resolution: {integrity: sha512-k8MHony59I5EPic6EQTCNOuPoVBnoYXkP+20xvwFjN7t0qI3ImyvyBgg+hIVPwC8JaxVjjUZld+cLfBLFDLucg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.40 || 9 + peerDependenciesMeta: + eslint: + optional: true + + '@eslint/config-array@0.21.0': + resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/config-helpers@0.2.2': - resolution: {integrity: sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==} + '@eslint/config-helpers@0.3.0': + resolution: {integrity: sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/core@0.14.0': resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/core@0.15.1': + resolution: {integrity: sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/eslintrc@3.3.1': resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@8.57.1': - resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/js@9.31.0': + resolution: {integrity: sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.28.0': - resolution: {integrity: sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==} + '@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.1': - resolution: {integrity: sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==} + '@eslint/plugin-kit@0.3.3': + resolution: {integrity: sha512-1+WqvgNMhmlAambTvT3KPtCl/Ibr68VldY2XY40SL1CE0ZXiakFR/cbTspaF5HsnpDMvcYYoJHfl4980NBjGag==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@excalidraw/excalidraw@0.18.0': @@ -2906,33 +3368,33 @@ packages: '@codemirror/view': ^6.0.0 '@lezer/highlight': ^1.0.0 - '@fullcalendar/core@6.1.17': - resolution: {integrity: sha512-0W7lnIrv18ruJ5zeWBeNZXO8qCWlzxDdp9COFEsZnyNjiEhUVnrW/dPbjRKYpL0edGG0/Lhs0ghp1z/5ekt8ZA==} + '@fullcalendar/core@6.1.18': + resolution: {integrity: sha512-cD7XtZIZZ87Cg2+itnpsONCsZ89VIfLLDZ22pQX4IQVWlpYUB3bcCf878DhWkqyEen6dhi5ePtBoqYgm5K+0fQ==} - '@fullcalendar/daygrid@6.1.17': - resolution: {integrity: sha512-K7m+pd7oVJ9fW4h7CLDdDGJbc9szJ1xDU1DZ2ag+7oOo1aCNLv44CehzkkknM6r8EYlOOhgaelxQpKAI4glj7A==} + '@fullcalendar/daygrid@6.1.18': + resolution: {integrity: sha512-s452Zle1SdMEzZDw+pDczm8m3JLIZzS9ANMThXTnqeqJewW1gqNFYas18aHypJSgF9Fh9rDJjTSUw04BpXB/Mg==} peerDependencies: - '@fullcalendar/core': ~6.1.17 + '@fullcalendar/core': ~6.1.18 - '@fullcalendar/interaction@6.1.17': - resolution: {integrity: sha512-AudvQvgmJP2FU89wpSulUUjeWv24SuyCx8FzH2WIPVaYg+vDGGYarI7K6PcM3TH7B/CyaBjm5Rqw9lXgnwt5YA==} + '@fullcalendar/interaction@6.1.18': + resolution: {integrity: sha512-f/mD5RTjzw+Q6MGTMZrLCgIrQLIUUO9NV/58aM2J6ZBQZeRlNizDqmqldqyG+j49zj2vFhUfZibPrVKWm5yA4Q==} peerDependencies: - '@fullcalendar/core': ~6.1.17 + '@fullcalendar/core': ~6.1.18 - '@fullcalendar/list@6.1.17': - resolution: {integrity: sha512-fkyK49F9IxwlGUBVhJGsFpd/LTi/vRVERLIAe1HmBaGkjwpxnynm8TMLb9mZip97wvDk3CmZWduMe6PxscAlow==} + '@fullcalendar/list@6.1.18': + resolution: {integrity: sha512-XPZI50mq3HXyDQ5sT3jmqQUuwG8zQb5H14dQIUAmOHAIFRA3WpkxlzrXO0U1SrosvGySMPyyNNxvMKI1Q/jL7A==} peerDependencies: - '@fullcalendar/core': ~6.1.17 + '@fullcalendar/core': ~6.1.18 - '@fullcalendar/multimonth@6.1.17': - resolution: {integrity: sha512-ZxA9mkTzKayCdxR5je9P9++qqhSeSbuvXmvZ6doZw6omv8K52cD7XJii+P7gvxATXxtI6hg4i+DuMyOHxP1E2g==} + '@fullcalendar/multimonth@6.1.18': + resolution: {integrity: sha512-4WSqtheJgWQMcJZjDDwTCYHe1JWTGZyJdCbIs84DuKbwZWH96g07Kr/3xDwsxiHgVX0iFlwljtkp2OmtMxQoDA==} peerDependencies: - '@fullcalendar/core': ~6.1.17 + '@fullcalendar/core': ~6.1.18 - '@fullcalendar/timegrid@6.1.17': - resolution: {integrity: sha512-K4PlA3L3lclLOs3IX8cvddeiJI9ZVMD7RA9IqaWwbvac771971foc9tFze9YY+Pqesf6S+vhS2dWtEVlERaGlQ==} + '@fullcalendar/timegrid@6.1.18': + resolution: {integrity: sha512-T/ouhs+T1tM8JcW7Cjx+KiohL/qQWKqvRITwjol8ktJ1e1N/6noC40/obR1tyolqOxMRWHjJkYoj9fUqfoez9A==} peerDependencies: - '@fullcalendar/core': ~6.1.17 + '@fullcalendar/core': ~6.1.18 '@gar/promisify@1.1.3': resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} @@ -2951,19 +3413,10 @@ packages: resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} engines: {node: '>=18.18.0'} - '@humanwhocodes/config-array@0.13.0': - resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead - '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead - '@humanwhocodes/retry@0.3.1': resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} engines: {node: '>=18.18'} @@ -2978,8 +3431,19 @@ packages: '@iconify/utils@2.3.0': resolution: {integrity: sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==} - '@inquirer/confirm@5.1.12': - resolution: {integrity: sha512-dpq+ielV9/bqgXRUbNH//KsY6WEw9DrGPmipkpmgC1Y46cwuBTNx7PXFWTjc3MQ+urcc0QxoVHcMI0FW4Ok0hg==} + '@inlang/paraglide-js@2.2.0': + resolution: {integrity: sha512-pkpXu1LanvpcAbvpVPf7PgF11Uq7DliSEBngrcUN36l4ZOOpzn3QBTvVr/tJxvks0O67WseQgiMHet8KH7Oz5A==} + hasBin: true + + '@inlang/recommend-sherlock@0.2.1': + resolution: {integrity: sha512-ckv8HvHy/iTqaVAEKrr+gnl+p3XFNwe5D2+6w6wJk2ORV2XkcRkKOJ/XsTUJbPSiyi4PI+p+T3bqbmNx/rDUlg==} + + '@inlang/sdk@2.4.9': + resolution: {integrity: sha512-cvz/C1rF5WBxzHbEoiBoI6Sz6q6M+TdxfWkEGBYTD77opY8i8WN01prUWXEM87GPF4SZcyIySez9U0Ccm12oFQ==} + engines: {node: '>=18.0.0'} + + '@inquirer/confirm@5.1.13': + resolution: {integrity: sha512-EkCtvp67ICIVVzjsquUiVSd+V5HRGOGQfsqA4E4vMWhYnB7InUL0pa0TIWt1i+OfP16Gkds8CdIu6yGZwOM1Yw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2987,8 +3451,8 @@ packages: '@types/node': optional: true - '@inquirer/core@10.1.13': - resolution: {integrity: sha512-1viSxebkYN2nJULlzCxES6G9/stgHSepZ9LqqfdIGPHj5OHhiBUXVS0a6R0bEC2A+VL4D9w6QB66ebCr6HGllA==} + '@inquirer/core@10.1.14': + resolution: {integrity: sha512-Ma+ZpOJPewtIYl6HZHZckeX1STvDnHTCB2GVINNUlSEn2Am6LddWwfPkIGY0IUFVjUUrr/93XlBwTK6mfLjf0A==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3194,6 +3658,9 @@ packages: resolution: {integrity: sha512-gqFTGEosKbOkYF/WFj26jMHOI5OH2jeP1MmC/zbK6BF6VJBf8rIC5898dPfSzZEbSA0wbbV5slbntWVc5PKLFA==} engines: {node: '>=18'} + '@jridgewell/gen-mapping@0.3.12': + resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} + '@jridgewell/gen-mapping@0.3.8': resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} @@ -3206,15 +3673,21 @@ 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==} - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/sourcemap-codec@1.5.4': + resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==} '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.29': + resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==} + '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} @@ -3233,8 +3706,8 @@ 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' @@ -3275,6 +3748,13 @@ packages: '@lezer/xml@1.0.6': resolution: {integrity: sha512-CdDwirL0OEaStFue/66ZmFSeppuL6Dwjlk8qk153mSQwiSH/Dlri4GNymrNWnUmPl2Um7QfV1FO9KFUyX3Twww==} + '@lix-js/sdk@0.4.7': + resolution: {integrity: sha512-pRbW+joG12L0ULfMiWYosIW0plmW4AsUdiPCp+Z8rAsElJ+wJ6in58zhD3UwUcd4BNcpldEGjg6PdA7e0RgsDQ==} + engines: {node: '>=18'} + + '@lix-js/server-protocol-schema@0.1.1': + resolution: {integrity: sha512-jBeALB6prAbtr5q4vTuxnRZZv1M2rKe8iNqRQhFJ4Tv7150unEa0vKyz0hs8Gl3fUGsWaNJBh3J8++fpbrpRBQ==} + '@ljharb/resumer@0.0.1': resolution: {integrity: sha512-skQiAOrCfO7vRTq53cxznMpks7wS1va95UCidALlOVWqvBAzwPVErwizDwoMqNVMEn1mDq0utxZd02eIrvF1lw==} engines: {node: '>= 0.4'} @@ -3304,13 +3784,13 @@ packages: '@marijn/find-cluster-break@1.0.2': resolution: {integrity: sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==} - '@mermaid-js/layout-elk@0.1.7': - resolution: {integrity: sha512-G3AJ2jMaCAqky2CT3z/sf3pK5UuS3tne98GsXDl3PkKByCmPmOYmJPf+6oX5PUlV3HNWWHuSgtZ9NU/CZDSuHQ==} + '@mermaid-js/layout-elk@0.1.8': + resolution: {integrity: sha512-uU+Glm1tQZScphrFuzf6dzPpYTrET3sz6Q2SqpLj/nr+FpO6cfgJmYdJ+vWA8oGoeNQZLVey480qbKAFk8DBuQ==} peerDependencies: - mermaid: ^11.0.0 + mermaid: 11.8.1 - '@mermaid-js/parser@0.4.0': - resolution: {integrity: sha512-wla8XOWvQAwuqy+gxiZqY+c7FokraOTHRWMsbB4AgRx9Sy7zKslNyejy7E+a77qHfey5GXw/ik3IXv/NHMJgaA==} + '@mermaid-js/parser@0.6.1': + resolution: {integrity: sha512-lCQNpV8R4lgsGcjX5667UiuDLk2micCtjtxR1YKbBXvN5w2v+FeLYoHrTSSrjwXdMcDYvE4ZBPvKT31dfeSmmA==} '@microsoft/api-extractor-model@7.30.6': resolution: {integrity: sha512-znmFn69wf/AIrwHya3fxX6uB5etSIn6vg4Q4RB/tb5VDDs1rqREc+AvMC/p19MUN13CZ7+V/8pkYPTj7q8tftg==} @@ -3325,10 +3805,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==} @@ -3337,8 +3817,8 @@ 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==} @@ -3384,21 +3864,21 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} deprecated: This functionality has been moved to @npmcli/fs - '@nx/devkit@21.1.3': - resolution: {integrity: sha512-NSNXdn+PaNoPcxAKIhnZUbOA91Jzgk68paZEiABzAhkvfmrE5jM6VDMT6sJZ8lHWocrf6QFnzAOon1R4MoBeZw==} + '@nx/devkit@21.2.3': + resolution: {integrity: sha512-H5Hk0qeZwqhxQmqcWaLpMc+otU4TroUzDYoV6kFpZdvcwGnXQKHCuGzZoI18kh9wPXvKFmb1BWmr9as3lHUw3Q==} peerDependencies: - nx: 21.1.3 + nx: 21.2.3 - '@nx/esbuild@21.1.3': - resolution: {integrity: sha512-yYbD5wtc0nsSJq7v6F/tbfZwAxvvZfLxowdK4f30RgPdMnIgVW8Aqwyu3czDnLrmORJeuZ10NiGHp5pZtkGeYQ==} + '@nx/esbuild@21.2.3': + resolution: {integrity: sha512-ZrijInEe386NWzooPUCB4h4RWBMpWSfc1rBln5OtKe8GFO7bhp0cSjVyb/gVbuznXxZrcP9MnD8hyob3e2yFLA==} peerDependencies: esbuild: '>=0.25.0' peerDependenciesMeta: esbuild: optional: true - '@nx/eslint-plugin@21.1.3': - resolution: {integrity: sha512-xmh3bsK7yVQiEm0O5C3cD/J1P++iWQbEUl5rnysNxgHLh6gxkIh+4GLyRS8/05gbd6+JD1WKuzn77/wGq1gohw==} + '@nx/eslint-plugin@21.2.3': + resolution: {integrity: sha512-UryMWwgRYCjCLgqexhv6aQBMnKxJyVlN58Gp6Oa/2/2P/vMnIPjwbI58pZL1D1Se6HL14NKxmVu2KkX6Bf9R1w==} peerDependencies: '@typescript-eslint/parser': ^6.13.2 || ^7.0.0 || ^8.0.0 eslint-config-prettier: ^10.0.0 @@ -3406,8 +3886,8 @@ packages: eslint-config-prettier: optional: true - '@nx/eslint@21.1.3': - resolution: {integrity: sha512-g4Os1AfTjS+51a6+X+5ZgY/J7TGIKdc1byORreaSnLXtN9BU6r4WKzGkT5TAAXS+UXXmSih7QAJhKPur2IHddQ==} + '@nx/eslint@21.2.3': + resolution: {integrity: sha512-Lr/4FeeNhBIR3pPrENHUtyWtoBKiztaDilNodzizSiXVp32mCL1sPc5UYr5n8BpqAtDT6yK7jF7Pn+YvVD688w==} peerDependencies: '@zkochan/js-yaml': 0.0.7 eslint: ^8.0.0 || ^9.0.0 @@ -3415,97 +3895,97 @@ packages: '@zkochan/js-yaml': optional: true - '@nx/express@21.1.3': - resolution: {integrity: sha512-CbfxgkDJmx6iz8eegcNDa+ygPbfyQ7lIVwEDLGECFEaL5W48IwDlydbBYjbtPD2VfXFHX1z8zbgeuC1zMnWuKA==} + '@nx/express@21.2.3': + resolution: {integrity: sha512-XUHDpH8ilLUYkuHobm3UZbtkY+09AfjrlR5xfb/fDCimvjyPb/E8MvcYPya+jvUTkNQ5Z8PL51qG/2F5SnUDBw==} peerDependencies: express: ^4.21.2 peerDependenciesMeta: express: optional: true - '@nx/jest@21.1.3': - resolution: {integrity: sha512-Wn3dqxvJ+O3OYiJ/h0Mmr4huc3JS+nZquUMAm19aJS8y6QVWRzGQGPxEJQ5jzoe407VMIKjiQ4LPhoV/xrNwbA==} + '@nx/jest@21.2.3': + resolution: {integrity: sha512-lkH+tX8c1XSRjDa1g/lnYiC4zgs+8tZsj9yUVR2/1x+OO2SYDL8KVld6ZkWzXhRW8ZKXPHkDMWMUNBqsYlAWHA==} - '@nx/js@21.1.3': - resolution: {integrity: sha512-pwn1tgWX8sxh+VKZRZl9VkabXkEyeELFCgkWS/on2Y1J6W2dMBcmyGuZAeLef2GkUNaR79VMWIqvPaK0JLyf4g==} + '@nx/js@21.2.3': + resolution: {integrity: sha512-9uA+j924UoarVJFLH6iy+PMnTWgrBM3XfjSpjThDwdJ4ffhop8NcED51sO/qUs68py93NxuY6Ud0qSSu8G5I+A==} peerDependencies: verdaccio: ^6.0.5 peerDependenciesMeta: verdaccio: optional: true - '@nx/node@21.1.3': - resolution: {integrity: sha512-tFsdkQ7RJZjAmivRkmVRAbY3ck7u+RLhcswelx2kXRsRozrWxX4Da+pECUePt2wq/HnrBGujPgGrZz7pMpZrbQ==} + '@nx/node@21.2.3': + resolution: {integrity: sha512-5ivOTIYyXHwZSwpCR3AnKFCzjjzKHMfmVnMLQbiDhYB7nd9RJXsKsPAMdEVFCP/JBTPmQkufXElw/Kxfww7dnA==} - '@nx/nx-darwin-arm64@21.1.3': - resolution: {integrity: sha512-gbBKQrw9ecjXHVs7Kwaht5Dip//NBCgmnkf3GGoA40ad3zyvHDe+MBWMxueRToUVW/mDPh8b5lvLbmFApiY6sQ==} + '@nx/nx-darwin-arm64@21.2.3': + resolution: {integrity: sha512-5WgOjoX4vqG286A8abYoLCScA2ZF5af/2ZBjaM5EHypgbJLGQuMcP2ahzX66FYohT4wdAej1D0ILkEax71fAKw==} cpu: [arm64] os: [darwin] - '@nx/nx-darwin-x64@21.1.3': - resolution: {integrity: sha512-yGDWqxwNty1BJcuvZlwGGravAhg8eIRMEIp2omfIxeyfZEVA4b7egwMCqczwU2Li/StNjTtzrUe1HPWgcCVAuQ==} + '@nx/nx-darwin-x64@21.2.3': + resolution: {integrity: sha512-aSaK8Ic9nHTwSuNZZtaKCPIXgD6+Ss9UwkNMIXPLYiYLF+EdSDORHnHutmajZZ8HakoWCQPWvxfWv30zre6iqw==} cpu: [x64] os: [darwin] - '@nx/nx-freebsd-x64@21.1.3': - resolution: {integrity: sha512-vpZPfSQgNIQ0vmnQA26DlJKZog20ISdS14ir234mvCaJJFdlgWGcpyEOSCU3Vg+32Z/VsSx7kIkBwRhfEZ73Ag==} + '@nx/nx-freebsd-x64@21.2.3': + resolution: {integrity: sha512-hFSbtaYM1gL+XQq88CkmwqeeabmFsLjpsBF+HFIv1UMAjb02ObrYHVVICmmin5c1NkBsEJcQzh3mf8PBSOHW8A==} cpu: [x64] os: [freebsd] - '@nx/nx-linux-arm-gnueabihf@21.1.3': - resolution: {integrity: sha512-R2GzEyHvyree2m7w+e/MOZjUY/l99HbW4E/jJl5BBXRGEAnGTIx9fOxSDiOW5QK6U0oZb2YO2b565t+IC+7rBQ==} + '@nx/nx-linux-arm-gnueabihf@21.2.3': + resolution: {integrity: sha512-yRzt8dLwTpRP7655We9/ol+Ol+n52R9wsRRnxJFdWHyLrHguZF0dqiZ5rAFFzyvywaDP6CRoPuS7wqFT7K14bw==} cpu: [arm] os: [linux] - '@nx/nx-linux-arm64-gnu@21.1.3': - resolution: {integrity: sha512-TlFT0G5gO6ujdkT7KUmvS2bwurvpV3olQwchqW1rQwuZ1eEQ1GVDuyzg49UG7lgESYruFn2HRhBf4V+iaD8WIw==} + '@nx/nx-linux-arm64-gnu@21.2.3': + resolution: {integrity: sha512-5u8mmUogvrNn1xlJk8Y6AJg/g1h2bKxYSyWfxR2mazKj5wI/VgbHuxHAgMXB7WDW2tK5bEcrUTvO8V0DjZQhNA==} cpu: [arm64] os: [linux] - '@nx/nx-linux-arm64-musl@21.1.3': - resolution: {integrity: sha512-YkdzrZ7p2Y0YpteRyT9lPKhfuz2t5rNFQ87x9WHK2/cFD6H6M42Fg2JldCPIVj2chN9liH+s5ougW5oPQpZyKw==} + '@nx/nx-linux-arm64-musl@21.2.3': + resolution: {integrity: sha512-4huuq2iuCBOWmJQw60gk5g3yjeHxFzwdDZJPM0680fZ7Pa/haPwamkR6kE2U6aFtFMhi1QVGPEoj4v4vE4ZS5g==} cpu: [arm64] os: [linux] - '@nx/nx-linux-x64-gnu@21.1.3': - resolution: {integrity: sha512-nnHxhakNCr4jR1y13g0yS/UOmn5aXkJ+ZA1R6jFQxIwLv3Ocy05i0ZvU7rPOtflluDberxEop8xzoiuEZXDa/w==} + '@nx/nx-linux-x64-gnu@21.2.3': + resolution: {integrity: sha512-qWpJXpF8vjOrZTkgSC8kQAnIh0pIFbsisePicYWj5U9szJYyTUvVbjMAvdUPH4Z3bnrUtt+nzf9mpFCJRLjsOQ==} cpu: [x64] os: [linux] - '@nx/nx-linux-x64-musl@21.1.3': - resolution: {integrity: sha512-poPt/LnFbq54CA3PZ1af8wcdQ4VsWRuA9w1Q1/G1BhCfDUAVIOZ0mhH1NzFpPwCxgVZ1TbNCZWhV2qjVRwQtlw==} + '@nx/nx-linux-x64-musl@21.2.3': + resolution: {integrity: sha512-JZHlovF9uzvN3blImysYJmG90/8ookr3jOmEFxmP4RfMUl6EdN9yBLBdx0zIG2ulh7+WQrR3eQ1qrmsWFb6oiw==} cpu: [x64] os: [linux] - '@nx/nx-win32-arm64-msvc@21.1.3': - resolution: {integrity: sha512-gBSVMRkXRqxTKgj/dabAD1EaptROy64fEtlU1llPz/RtcJcVhIlDczBF/y2WSD6A72cSv6zF/F1n3NrekNSfBA==} + '@nx/nx-win32-arm64-msvc@21.2.3': + resolution: {integrity: sha512-8Q1ljgFle6F2ZGSe6dLBItSdvYXjO0n2ovZI0zIih9+5OGLdN8wf6iONQJT7he2YST1dowIDPNWdeKiuOzPo6w==} cpu: [arm64] os: [win32] - '@nx/nx-win32-x64-msvc@21.1.3': - resolution: {integrity: sha512-k3/1b2dLQjnWzrg2UqHDLCoaqEBx2SRgujjYCACRJ12vmYH2gTyFX2UPXikVbbpaTJNeXv8eaCzyCKhuvPK1sQ==} + '@nx/nx-win32-x64-msvc@21.2.3': + resolution: {integrity: sha512-qJpHIZU/D48+EZ2bH02/LIFIkANYryGbcbNQUqC+pYA8ZPCU0wMqZVn4UcNMoI9K4YtXe/SvSBdjiObDuRb8yw==} cpu: [x64] os: [win32] - '@nx/playwright@21.1.3': - resolution: {integrity: sha512-6Cq8lgQQsSutx5hZG2RChFQFJ9cVgJf9ymqvBohLCDPcC6/d2QflMdoqT4yjaOd5TqStk3ZC+elll6tnTY+QYA==} + '@nx/playwright@21.2.3': + resolution: {integrity: sha512-oFQifAMa4p/o6iHJC8TPKa6Qafyg/tWXnvFzRMId9ZbN/GpNz8yMXRqUXqup+kJ5hO2CAuxUrNr4VZdZC9fHYw==} peerDependencies: '@playwright/test': ^1.36.0 peerDependenciesMeta: '@playwright/test': optional: true - '@nx/vite@21.1.3': - resolution: {integrity: sha512-xd3WFYQDIZFm3DPza1fY52dVa1km1gCJyoE9/2s+m9Jbvxu40BukdSw37SZVgCtVqyNjsl4rrlXOmzOIKLb98g==} + '@nx/vite@21.2.3': + resolution: {integrity: sha512-OgmrjnV6fuq/b8P7+KSPc0IKAOD7kE0gWZdNmL9Bzhn+NVew6mMVgGsuqH02twbucp3eEbnpCFQPCXso+5NJTw==} peerDependencies: vite: ^5.0.0 || ^6.0.0 vitest: ^1.3.1 || ^2.0.0 || ^3.0.0 - '@nx/web@21.1.3': - resolution: {integrity: sha512-9UV3uacxJ6oMYPfXbPDq1jadM6nPMs13QhSEpjQLAxNDi4ay0zTOobbHZG6LYnf69dAFEIppoayiS42Kuk6L3Q==} + '@nx/web@21.2.3': + resolution: {integrity: sha512-QWkd7+8n7kvhoiB2vqBHBZ2Z383g60lOEl78FFBRCxbRYmUHSOqvhZXahfq/l5YU7DVbbCYsiPdL8KVK22hRMw==} - '@nx/workspace@21.1.3': - resolution: {integrity: sha512-SAObZmW1cx0hRddC2PCFWJBHpzdjsTGNArJta8iyzfrbP9KAxQd8jjDBZvXLpXU6YMOw0fLwm8YAD2E1xvIoyw==} + '@nx/workspace@21.2.3': + resolution: {integrity: sha512-bC3J6pgXvL9JWyYmP7AOGCIZhtI6vmY1YLan1T+FFkSr7yyKvIwnnL9E68whQD5jcbJl1Mvu9l0lVlsVdQYF/g==} '@open-draft/deferred-promise@2.2.0': resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} @@ -3679,8 +4159,8 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@playwright/test@1.52.0': - resolution: {integrity: sha512-uh6W7sb55hl7D6vsAeA+V2p5JnlAqzhqFyF0VcJkKZXkgnFcVG9PziERRHQfPLfNGx1C292a4JqbWzhR8L4R1g==} + '@playwright/test@1.54.1': + resolution: {integrity: sha512-FS8hQ12acieG2dYSksmLOF7BNxnVf2afRJdCuM1eMSxj6QTSE6G4InGF7oApGgDb65MX7AwMVlIkpru0yZA4Xw==} engines: {node: '>=18'} hasBin: true @@ -3693,6 +4173,36 @@ packages: '@promptbook/utils@0.69.5': resolution: {integrity: sha512-xm5Ti/Hp3o4xHrsK9Yy3MS6KbDxYbq485hDsFvxqaNA7equHLPdo8H8faTitTeb14QCDfLW4iwCxdVYu5sn6YQ==} + '@protobufjs/aspromise@1.1.2': + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + + '@protobufjs/base64@1.1.2': + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + + '@protobufjs/codegen@2.0.4': + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + + '@protobufjs/eventemitter@1.1.0': + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + + '@protobufjs/fetch@1.1.0': + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + + '@protobufjs/float@1.0.2': + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + + '@protobufjs/inquire@1.1.0': + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + + '@protobufjs/path@1.1.2': + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + + '@protobufjs/pool@1.1.0': + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + + '@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==} engines: {node: '>=18'} @@ -4084,101 +4594,201 @@ packages: cpu: [arm] os: [android] + '@rollup/rollup-android-arm-eabi@4.44.2': + resolution: {integrity: sha512-g0dF8P1e2QYPOj1gu7s/3LVP6kze9A7m6x0BZ9iTdXK8N5c2V7cpBKHV3/9A4Zd8xxavdhK0t4PnqjkqVmUc9Q==} + cpu: [arm] + os: [android] + '@rollup/rollup-android-arm64@4.40.0': resolution: {integrity: sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w==} cpu: [arm64] os: [android] + '@rollup/rollup-android-arm64@4.44.2': + resolution: {integrity: sha512-Yt5MKrOosSbSaAK5Y4J+vSiID57sOvpBNBR6K7xAaQvk3MkcNVV0f9fE20T+41WYN8hDn6SGFlFrKudtx4EoxA==} + cpu: [arm64] + os: [android] + '@rollup/rollup-darwin-arm64@4.40.0': resolution: {integrity: sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ==} cpu: [arm64] os: [darwin] + '@rollup/rollup-darwin-arm64@4.44.2': + resolution: {integrity: sha512-EsnFot9ZieM35YNA26nhbLTJBHD0jTwWpPwmRVDzjylQT6gkar+zenfb8mHxWpRrbn+WytRRjE0WKsfaxBkVUA==} + cpu: [arm64] + os: [darwin] + '@rollup/rollup-darwin-x64@4.40.0': resolution: {integrity: sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA==} cpu: [x64] os: [darwin] + '@rollup/rollup-darwin-x64@4.44.2': + resolution: {integrity: sha512-dv/t1t1RkCvJdWWxQ2lWOO+b7cMsVw5YFaS04oHpZRWehI1h0fV1gF4wgGCTyQHHjJDfbNpwOi6PXEafRBBezw==} + cpu: [x64] + os: [darwin] + '@rollup/rollup-freebsd-arm64@4.40.0': resolution: {integrity: sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg==} cpu: [arm64] os: [freebsd] + '@rollup/rollup-freebsd-arm64@4.44.2': + resolution: {integrity: sha512-W4tt4BLorKND4qeHElxDoim0+BsprFTwb+vriVQnFFtT/P6v/xO5I99xvYnVzKWrK6j7Hb0yp3x7V5LUbaeOMg==} + cpu: [arm64] + os: [freebsd] + '@rollup/rollup-freebsd-x64@4.40.0': resolution: {integrity: sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw==} cpu: [x64] os: [freebsd] + '@rollup/rollup-freebsd-x64@4.44.2': + resolution: {integrity: sha512-tdT1PHopokkuBVyHjvYehnIe20fxibxFCEhQP/96MDSOcyjM/shlTkZZLOufV3qO6/FQOSiJTBebhVc12JyPTA==} + cpu: [x64] + os: [freebsd] + '@rollup/rollup-linux-arm-gnueabihf@4.40.0': resolution: {integrity: sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA==} cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-gnueabihf@4.44.2': + resolution: {integrity: sha512-+xmiDGGaSfIIOXMzkhJ++Oa0Gwvl9oXUeIiwarsdRXSe27HUIvjbSIpPxvnNsRebsNdUo7uAiQVgBD1hVriwSQ==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.40.0': resolution: {integrity: sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg==} cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.44.2': + resolution: {integrity: sha512-bDHvhzOfORk3wt8yxIra8N4k/N0MnKInCW5OGZaeDYa/hMrdPaJzo7CSkjKZqX4JFUWjUGm88lI6QJLCM7lDrA==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.40.0': resolution: {integrity: sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.44.2': + resolution: {integrity: sha512-NMsDEsDiYghTbeZWEGnNi4F0hSbGnsuOG+VnNvxkKg0IGDvFh7UVpM/14mnMwxRxUf9AdAVJgHPvKXf6FpMB7A==} + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-arm64-musl@4.40.0': resolution: {integrity: sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-musl@4.44.2': + resolution: {integrity: sha512-lb5bxXnxXglVq+7imxykIp5xMq+idehfl+wOgiiix0191av84OqbjUED+PRC5OA8eFJYj5xAGcpAZ0pF2MnW+A==} + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-loongarch64-gnu@4.40.0': resolution: {integrity: sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg==} cpu: [loong64] os: [linux] + '@rollup/rollup-linux-loongarch64-gnu@4.44.2': + resolution: {integrity: sha512-Yl5Rdpf9pIc4GW1PmkUGHdMtbx0fBLE1//SxDmuf3X0dUC57+zMepow2LK0V21661cjXdTn8hO2tXDdAWAqE5g==} + cpu: [loong64] + os: [linux] + '@rollup/rollup-linux-powerpc64le-gnu@4.40.0': resolution: {integrity: sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw==} cpu: [ppc64] os: [linux] + '@rollup/rollup-linux-powerpc64le-gnu@4.44.2': + resolution: {integrity: sha512-03vUDH+w55s680YYryyr78jsO1RWU9ocRMaeV2vMniJJW/6HhoTBwyyiiTPVHNWLnhsnwcQ0oH3S9JSBEKuyqw==} + cpu: [ppc64] + os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.40.0': resolution: {integrity: sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA==} cpu: [riscv64] os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.44.2': + resolution: {integrity: sha512-iYtAqBg5eEMG4dEfVlkqo05xMOk6y/JXIToRca2bAWuqjrJYJlx/I7+Z+4hSrsWU8GdJDFPL4ktV3dy4yBSrzg==} + cpu: [riscv64] + os: [linux] + '@rollup/rollup-linux-riscv64-musl@4.40.0': resolution: {integrity: sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ==} cpu: [riscv64] os: [linux] + '@rollup/rollup-linux-riscv64-musl@4.44.2': + resolution: {integrity: sha512-e6vEbgaaqz2yEHqtkPXa28fFuBGmUJ0N2dOJK8YUfijejInt9gfCSA7YDdJ4nYlv67JfP3+PSWFX4IVw/xRIPg==} + cpu: [riscv64] + os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.40.0': resolution: {integrity: sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw==} cpu: [s390x] os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.44.2': + resolution: {integrity: sha512-evFOtkmVdY3udE+0QKrV5wBx7bKI0iHz5yEVx5WqDJkxp9YQefy4Mpx3RajIVcM6o7jxTvVd/qpC1IXUhGc1Mw==} + cpu: [s390x] + os: [linux] + '@rollup/rollup-linux-x64-gnu@4.40.0': resolution: {integrity: sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ==} cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-gnu@4.44.2': + resolution: {integrity: sha512-/bXb0bEsWMyEkIsUL2Yt5nFB5naLAwyOWMEviQfQY1x3l5WsLKgvZf66TM7UTfED6erckUVUJQ/jJ1FSpm3pRQ==} + cpu: [x64] + os: [linux] + '@rollup/rollup-linux-x64-musl@4.40.0': resolution: {integrity: sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw==} cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-musl@4.44.2': + resolution: {integrity: sha512-3D3OB1vSSBXmkGEZR27uiMRNiwN08/RVAcBKwhUYPaiZ8bcvdeEwWPvbnXvvXHY+A/7xluzcN+kaiOFNiOZwWg==} + cpu: [x64] + os: [linux] + '@rollup/rollup-win32-arm64-msvc@4.40.0': resolution: {integrity: sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ==} cpu: [arm64] os: [win32] + '@rollup/rollup-win32-arm64-msvc@4.44.2': + resolution: {integrity: sha512-VfU0fsMK+rwdK8mwODqYeM2hDrF2WiHaSmCBrS7gColkQft95/8tphyzv2EupVxn3iE0FI78wzffoULH1G+dkw==} + cpu: [arm64] + os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.40.0': resolution: {integrity: sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA==} cpu: [ia32] os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.44.2': + resolution: {integrity: sha512-+qMUrkbUurpE6DVRjiJCNGZBGo9xM4Y0FXU5cjgudWqIBWbcLkjE3XprJUsOFgC6xjBClwVa9k6O3A7K3vxb5Q==} + cpu: [ia32] + os: [win32] + '@rollup/rollup-win32-x64-msvc@4.40.0': resolution: {integrity: sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ==} cpu: [x64] os: [win32] + '@rollup/rollup-win32-x64-msvc@4.44.2': + resolution: {integrity: sha512-3+QZROYfJ25PDcxFF66UEk8jGWigHJeecZILvkPkyQN7oc5BvFo4YEXFkOs154j3FTMp9mn9Ky8RCOwastduEA==} + cpu: [x64] + os: [win32] + '@rushstack/node-core-library@5.13.1': resolution: {integrity: sha512-5yXhzPFGEkVc9Fu92wsNJ9jlvdwz4RNb2bMso+/+TH0nMm1jDDDsOIf4l8GAkPxGuwPw5DH24RliWVfSPhlW/Q==} peerDependencies: @@ -4216,6 +4826,9 @@ packages: '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@sinclair/typebox@0.31.28': + resolution: {integrity: sha512-/s55Jujywdw/Jpan+vsy6JZs1z2ZTGxTmbZTPiuSL2wz9mfzA2gN1zzaqmvfi4pq+uOt7Du85fkiwv5ymW84aQ==} + '@sindresorhus/is@4.6.0': resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} engines: {node: '>=10'} @@ -4226,18 +4839,253 @@ packages: '@sinonjs/fake-timers@10.3.0': resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + '@smithy/abort-controller@4.0.4': + resolution: {integrity: sha512-gJnEjZMvigPDQWHrW3oPrFhQtkrgqBkyjj3pCIdF3A5M6vsZODG93KNlfJprv6bp4245bdT32fsHK4kkH3KYDA==} + engines: {node: '>=18.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@3.7.0': + resolution: {integrity: sha512-7ov8hu/4j0uPZv8b27oeOFtIBtlFmM3ibrPv/Omx1uUdoXvcpJ00U+H/OWWC/keAguLlcqwtyL2/jTlSnApgNQ==} + engines: {node: '>=18.0.0'} + + '@smithy/credential-provider-imds@4.0.6': + resolution: {integrity: sha512-hKMWcANhUiNbCJouYkZ9V3+/Qf9pteR1dnwgdyzR09R4ODEYx8BbUysHwRSyex4rZ9zapddZhLFTnT4ZijR4pw==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-codec@4.0.4': + resolution: {integrity: sha512-7XoWfZqWb/QoR/rAU4VSi0mWnO2vu9/ltS6JZ5ZSZv0eovLVfDfu0/AX4ub33RsJTOth3TiFWSHS5YdztvFnig==} + engines: {node: '>=18.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@4.1.2': + resolution: {integrity: sha512-JGtambizrWP50xHgbzZI04IWU7LdI0nh/wGbqH3sJesYToMi2j/DcoElqyOcqEIG/D4tNyxgRuaqBXWE3zOFhQ==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-node@4.0.4': + resolution: {integrity: sha512-RD6UwNZ5zISpOWPuhVgRz60GkSIp0dy1fuZmj4RYmqLVRtejFqQ16WmfYDdoSoAjlp1LX+FnZo+/hkdmyyGZ1w==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-universal@4.0.4': + resolution: {integrity: sha512-UeJpOmLGhq1SLox79QWw/0n2PFX+oPRE1ZyRMxPIaFEfCqWaqpB7BU9C8kpPOGEhLF7AwEqfFbtwNxGy4ReENA==} + engines: {node: '>=18.0.0'} + + '@smithy/fetch-http-handler@5.1.0': + resolution: {integrity: sha512-mADw7MS0bYe2OGKkHYMaqarOXuDwRbO6ArD91XhHcl2ynjGCFF+hvqf0LyQcYxkA1zaWjefSkU7Ne9mqgApSgQ==} + engines: {node: '>=18.0.0'} + + '@smithy/hash-node@4.0.4': + resolution: {integrity: sha512-qnbTPUhCVnCgBp4z4BUJUhOEkVwxiEi1cyFM+Zj6o+aY8OFGxUQleKWq8ltgp3dujuhXojIvJWdoqpm6dVO3lQ==} + engines: {node: '>=18.0.0'} + + '@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@4.0.0': + resolution: {integrity: sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-content-length@4.0.4': + resolution: {integrity: sha512-F7gDyfI2BB1Kc+4M6rpuOLne5LOcEknH1n6UQB69qv+HucXBR1rkzXBnQTB2q46sFy1PM/zuSJOB532yc8bg3w==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-endpoint@4.1.14': + resolution: {integrity: sha512-+BGLpK5D93gCcSEceaaYhUD/+OCGXM1IDaq/jKUQ+ujB0PTWlWN85noodKw/IPFZhIKFCNEe19PGd/reUMeLSQ==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-retry@4.1.15': + resolution: {integrity: sha512-iKYUJpiyTQ33U2KlOZeUb0GwtzWR3C0soYcKuCnTmJrvt6XwTPQZhMfsjJZNw7PpQ3TU4Ati1qLSrkSJxnnSMQ==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-serde@4.0.8': + resolution: {integrity: sha512-iSSl7HJoJaGyMIoNn2B7czghOVwJ9nD7TMvLhMWeSB5vt0TnEYyRRqPJu/TqW76WScaNvYYB8nRoiBHR9S1Ddw==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-stack@4.0.4': + resolution: {integrity: sha512-kagK5ggDrBUCCzI93ft6DjteNSfY8Ulr83UtySog/h09lTIOAJ/xUSObutanlPT0nhoHAkpmW9V5K8oPyLh+QA==} + engines: {node: '>=18.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@4.1.0': + resolution: {integrity: sha512-vqfSiHz2v8b3TTTrdXi03vNz1KLYYS3bhHCDv36FYDqxT7jvTll1mMnCrkD+gOvgwybuunh/2VmvOMqwBegxEg==} + engines: {node: '>=18.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@5.1.2': + resolution: {integrity: sha512-rOG5cNLBXovxIrICSBm95dLqzfvxjEmuZx4KK3hWwPFHGdW3lxY0fZNXfv2zebfRO7sJZ5pKJYHScsqopeIWtQ==} + engines: {node: '>=18.0.0'} + + '@smithy/querystring-builder@4.0.4': + resolution: {integrity: sha512-SwREZcDnEYoh9tLNgMbpop+UTGq44Hl9tdj3rf+yeLcfH7+J8OXEBaMc2kDxtyRHu8BhSg9ADEx0gFHvpJgU8w==} + engines: {node: '>=18.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@4.0.6': + resolution: {integrity: sha512-RRoTDL//7xi4tn5FrN2NzH17jbgmnKidUqd4KvquT0954/i6CXXkh1884jBiunq24g9cGtPBEXlU40W6EpNOOg==} + engines: {node: '>=18.0.0'} + + '@smithy/shared-ini-file-loader@4.0.4': + resolution: {integrity: sha512-63X0260LoFBjrHifPDs+nM9tV0VMkOTl4JRMYNuKh/f5PauSjowTfvF3LogfkWdcPoxsA9UjqEOgjeYIbhb7Nw==} + engines: {node: '>=18.0.0'} + + '@smithy/signature-v4@5.1.2': + resolution: {integrity: sha512-d3+U/VpX7a60seHziWnVZOHuEgJlclufjkS6zhXvxcJgkJq4UWdH5eOBLzHRMx6gXjsdT9h6lfpmLzbrdupHgQ==} + engines: {node: '>=18.0.0'} + + '@smithy/smithy-client@4.4.6': + resolution: {integrity: sha512-3wfhywdzB/CFszP6moa5L3lf5/zSfQoH0kvVSdkyK2az5qZet0sn2PAHjcTDiq296Y4RP5yxF7B6S6+3oeBUCQ==} + engines: {node: '>=18.0.0'} + + '@smithy/types@4.3.1': + resolution: {integrity: sha512-UqKOQBL2x6+HWl3P+3QqFD4ncKq0I8Nuz9QItGv5WuKuMHuuwlhvqcZCoXGfc+P1QmfJE7VieykoYYmrOoFJxA==} + engines: {node: '>=18.0.0'} + + '@smithy/url-parser@4.0.4': + resolution: {integrity: sha512-eMkc144MuN7B0TDA4U2fKs+BqczVbk3W+qIvcoCY6D1JY3hnAdCuhCZODC+GAeaxj0p6Jroz4+XMUn3PCxQQeQ==} + engines: {node: '>=18.0.0'} + + '@smithy/util-base64@4.0.0': + resolution: {integrity: sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==} + engines: {node: '>=18.0.0'} + + '@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@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@4.0.0': + resolution: {integrity: sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==} + engines: {node: '>=18.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@4.0.22': + resolution: {integrity: sha512-hjElSW18Wq3fUAWVk6nbk7pGrV7ZT14DL1IUobmqhV3lxcsIenr5FUsDe2jlTVaS8OYBI3x+Og9URv5YcKb5QA==} + engines: {node: '>=18.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@3.0.6': + resolution: {integrity: sha512-YARl3tFL3WgPuLzljRUnrS2ngLiUtkwhQtj8PAL13XZSyUiNLQxwG3fBBq3QXFqGFUXepIN73pINp3y8c2nBmA==} + engines: {node: '>=18.0.0'} + + '@smithy/util-hex-encoding@4.0.0': + resolution: {integrity: sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==} + engines: {node: '>=18.0.0'} + + '@smithy/util-middleware@4.0.4': + resolution: {integrity: sha512-9MLKmkBmf4PRb0ONJikCbCwORACcil6gUWojwARCClT7RmLzF04hUR4WdRprIXal7XVyrddadYNfp2eF3nrvtQ==} + engines: {node: '>=18.0.0'} + + '@smithy/util-retry@4.0.6': + resolution: {integrity: sha512-+YekoF2CaSMv6zKrA6iI/N9yva3Gzn4L6n35Luydweu5MMPYpiGZlWqehPHDHyNbnyaYlz/WJyYAZnC+loBDZg==} + engines: {node: '>=18.0.0'} + + '@smithy/util-stream@4.2.3': + resolution: {integrity: sha512-cQn412DWHHFNKrQfbHY8vSFI3nTROY1aIKji9N0tpp8gUABRilr7wdf8fqBbSlXresobM+tQFNk6I+0LXK/YZg==} + engines: {node: '>=18.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@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==} + + '@sqlite.org/sqlite-wasm@3.48.0-build4': + resolution: {integrity: sha512-hI6twvUkzOmyGZhQMza1gpfqErZxXRw6JEsiVjUbo7tFanVD+8Oil0Ih3l2nGzHdxPI41zFmfUQG7GHqhciKZQ==} + hasBin: true + '@ssddanbrown/codemirror-lang-smarty@1.0.0': resolution: {integrity: sha512-F0ut1kmdbT3eORk3xVIKfQsGCZiQdh+6sLayBa0+FTex2gyIQlVQZRRA7bPSlchI3uZtWwNnqGNz5O/QLWRlFg==} '@ssddanbrown/codemirror-lang-twig@1.0.0': resolution: {integrity: sha512-7WIMIh8Ssc54TooGCY57WU2rKEqZZrcV2tZSVRPtd0gKYsrDEKCSLWpQjUWEx7bdgh3NKHUjq1O4ugIzI/+dwQ==} - '@stylistic/eslint-plugin@4.4.0': - resolution: {integrity: sha512-bIh/d9X+OQLCAMdhHtps+frvyjvAM4B1YlSJzcEEhl7wXLIqPar3ngn9DrHhkBOrTA/z9J0bUMtctAspe0dxdQ==} + '@stylistic/eslint-plugin@4.4.1': + resolution: {integrity: sha512-CEigAk7eOLyHvdgmpZsKFwtiqS2wFwI1fn4j09IU9GmD4euFM4jEBAViWeCqaNLlbX2k2+A/Fq9cje4HQBXuJQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=9.0.0' + '@stylistic/stylelint-plugin@3.1.3': + resolution: {integrity: sha512-85fsmzgsIVmyG3/GFrjuYj6Cz8rAM7IZiPiXCMiSMfoDOC1lOrzrXPDk24WqviAghnPqGpx8b0caK2PuewWGFg==} + engines: {node: ^18.12 || >=20.9} + peerDependencies: + stylelint: ^16.8.0 + + '@sveltejs/acorn-typescript@1.0.5': + resolution: {integrity: sha512-IwQk4yfwLdibDlrXVE04jTZYlLnwsTT2PIOQQGNLWfjavGifnk1JD1LcZjZaBTRcxZu2FfPfNLOE04DSu9lqtQ==} + peerDependencies: + acorn: ^8.9.0 + + '@sveltejs/adapter-auto@6.0.1': + resolution: {integrity: sha512-mcWud3pYGPWM2Pphdj8G9Qiq24nZ8L4LB7coCUckUEy5Y7wOWGJ/enaZ4AtJTcSm5dNK1rIkBRoqt+ae4zlxcQ==} + peerDependencies: + '@sveltejs/kit': ^2.0.0 + + '@sveltejs/kit@2.22.5': + resolution: {integrity: sha512-l5i+LcDaoymD2mg5ziptnHmzzF79+c9twJiDoLWAPKq7afMEe4mvGesJ+LVtm33A92mLzd2KUHgtGSqTrvfkvg==} + engines: {node: '>=18.13'} + hasBin: true + peerDependencies: + '@sveltejs/vite-plugin-svelte': ^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0 + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.3 || ^6.0.0 || ^7.0.0-beta.0 + + '@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': ^6.0.0-next.0 + svelte: ^5.0.0 + vite: ^6.3.0 || ^7.0.0 + + '@sveltejs/vite-plugin-svelte@6.0.0': + resolution: {integrity: sha512-mma5GJ23pYiWpTNbN//g9XI3Hfob3aAlXPP42qRtvjgTAU6pfJyLyNPTdLjFuj+jfC9JslP4J3AkeiJNhjtLLA==} + engines: {node: ^20.19 || ^22.12 || >=24} + peerDependencies: + svelte: ^5.0.0 + vite: ^6.3.0 || ^7.0.0 + '@swc-node/core@1.13.3': resolution: {integrity: sha512-OGsvXIid2Go21kiNqeTIn79jcaX4l0G93X2rAnas4LFoDyA9wAwVK7xZdm+QsKoMn5Mus2yFLCc4OtX2dD/PWA==} engines: {node: '>= 10'} @@ -4332,10 +5180,108 @@ packages: '@swc/types@0.1.21': resolution: {integrity: sha512-2YEtj5HJVbKivud9N4bpPBAyZhj4S2Ipe5LkUG94alTpr7in/GU/EARgPAd3BwU+YOmFVJC2+kjqhGRi3r0ZpQ==} + '@symbiotejs/symbiote@1.11.7': + resolution: {integrity: sha512-fUOJwzuldeApJ533YeTdrfnpp4nsA+ss1eiNBodX7RHf4LnhPB2Z9HP4fF3m2YhKYnxK0whjXaKA+wrxTRP5qA==} + '@szmarczak/http-timer@4.0.6': resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} engines: {node: '>=10'} + '@tailwindcss/node@4.1.11': + resolution: {integrity: sha512-yzhzuGRmv5QyU9qLNg4GTlYI6STedBWRE7NjxP45CsFYYq9taI0zJXZBMqIC/c8fViNLhmrbpSFS57EoxUmD6Q==} + + '@tailwindcss/oxide-android-arm64@4.1.11': + resolution: {integrity: sha512-3IfFuATVRUMZZprEIx9OGDjG3Ou3jG4xQzNTvjDoKmU9JdmoCohQJ83MYd0GPnQIu89YoJqvMM0G3uqLRFtetg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@tailwindcss/oxide-darwin-arm64@4.1.11': + resolution: {integrity: sha512-ESgStEOEsyg8J5YcMb1xl8WFOXfeBmrhAwGsFxxB2CxY9evy63+AtpbDLAyRkJnxLy2WsD1qF13E97uQyP1lfQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@tailwindcss/oxide-darwin-x64@4.1.11': + resolution: {integrity: sha512-EgnK8kRchgmgzG6jE10UQNaH9Mwi2n+yw1jWmof9Vyg2lpKNX2ioe7CJdf9M5f8V9uaQxInenZkOxnTVL3fhAw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@tailwindcss/oxide-freebsd-x64@4.1.11': + resolution: {integrity: sha512-xdqKtbpHs7pQhIKmqVpxStnY1skuNh4CtbcyOHeX1YBE0hArj2romsFGb6yUmzkq/6M24nkxDqU8GYrKrz+UcA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.11': + resolution: {integrity: sha512-ryHQK2eyDYYMwB5wZL46uoxz2zzDZsFBwfjssgB7pzytAeCCa6glsiJGjhTEddq/4OsIjsLNMAiMlHNYnkEEeg==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-gnu@4.1.11': + resolution: {integrity: sha512-mYwqheq4BXF83j/w75ewkPJmPZIqqP1nhoghS9D57CLjsh3Nfq0m4ftTotRYtGnZd3eCztgbSPJ9QhfC91gDZQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-musl@4.1.11': + resolution: {integrity: sha512-m/NVRFNGlEHJrNVk3O6I9ggVuNjXHIPoD6bqay/pubtYC9QIdAMpS+cswZQPBLvVvEF6GtSNONbDkZrjWZXYNQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tailwindcss/oxide-linux-x64-gnu@4.1.11': + resolution: {integrity: sha512-YW6sblI7xukSD2TdbbaeQVDysIm/UPJtObHJHKxDEcW2exAtY47j52f8jZXkqE1krdnkhCMGqP3dbniu1Te2Fg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tailwindcss/oxide-linux-x64-musl@4.1.11': + resolution: {integrity: sha512-e3C/RRhGunWYNC3aSF7exsQkdXzQ/M+aYuZHKnw4U7KQwTJotnWsGOIVih0s2qQzmEzOFIJ3+xt7iq67K/p56Q==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tailwindcss/oxide-wasm32-wasi@4.1.11': + resolution: {integrity: sha512-Xo1+/GU0JEN/C/dvcammKHzeM6NqKovG+6921MR6oadee5XPBaKOumrJCXvopJ/Qb5TH7LX/UAywbqrP4lax0g==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib + + '@tailwindcss/oxide-win32-arm64-msvc@4.1.11': + resolution: {integrity: sha512-UgKYx5PwEKrac3GPNPf6HVMNhUIGuUh4wlDFR2jYYdkX6pL/rn73zTq/4pzUm8fOjAn5L8zDeHp9iXmUGOXZ+w==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@tailwindcss/oxide-win32-x64-msvc@4.1.11': + resolution: {integrity: sha512-YfHoggn1j0LK7wR82TOucWc5LDCguHnoS879idHekmmiR7g9HUtMw9MI0NHatS28u/Xlkfi9w5RJWgz2Dl+5Qg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@tailwindcss/oxide@4.1.11': + resolution: {integrity: sha512-Q69XzrtAhuyfHo+5/HMgr1lAiPP/G40OMFAnws7xcFEYqcypZmdW8eGXaOUIeOl1dzPJBPENXgbjsOyhg2nkrg==} + engines: {node: '>= 10'} + + '@tailwindcss/typography@0.5.16': + resolution: {integrity: sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1' + + '@tailwindcss/vite@4.1.11': + resolution: {integrity: sha512-RHYhrR3hku0MJFRV+fN2gNbDNEh3dwKvY8XJvTxCSXeMOsCRSr+uKvDWQcbizrHgjML6ZmTE5OwMrl5wKcujCw==} + peerDependencies: + vite: ^5.2.0 || ^6 || ^7 + '@testing-library/dom@10.4.0': resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} engines: {node: '>=18'} @@ -4383,6 +5329,9 @@ packages: '@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==} @@ -4581,11 +5530,14 @@ packages: '@types/estree@1.0.7': resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} + '@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-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==} @@ -4611,6 +5563,9 @@ packages: '@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==} @@ -4656,8 +5611,8 @@ packages: '@types/leaflet-gpx@1.3.7': resolution: {integrity: sha512-IDshIOLZ7dUUjRiCE3DuJcAGavgUCw0xQ93dc/3YvsA6jrFc+nx8eXr0tqZIf2SaWMgqiDj/n7N24WWNh/898g==} - '@types/leaflet@1.9.18': - resolution: {integrity: sha512-ht2vsoPjezor5Pmzi5hdsA7F++v5UGq9OlUduWHmMZiuQGIpJ2WS5+Gg9HaAA79gNh1AIPtCqhzejcIZ3lPzXQ==} + '@types/leaflet@1.9.20': + resolution: {integrity: sha512-rooalPMlk61LCaLOvBF2VIf9M47HgMQqi5xQ9QRi7c8PkdIe0WrIi5IxXUXQjAdL0c+vcQ01mYWbthzmp9GHWw==} '@types/lodash-es@4.17.12': resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} @@ -4665,21 +5620,18 @@ packages: '@types/lodash@4.17.16': resolution: {integrity: sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==} + '@types/luxon@3.6.2': + resolution: {integrity: sha512-R/BdP7OxEMc44l2Ex5lSXHoIXTB2JLNa3y2QISIbr58U/YcsffyQrYW//hZSdrfxrjRZj3GcUoxMPGdO8gSYuw==} + '@types/mark.js@8.11.12': resolution: {integrity: sha512-244ZnaIBpz4c6xutliAnYVZp6xJlmC569jZqnR3ElO1Y01ooYASSVQEqpd2x0A2UfrgVMs5V9/9tUAdZaDMytQ==} - '@types/marked@4.3.2': - resolution: {integrity: sha512-a79Yc3TOk6dGdituy8hmTTJXjOkZ7zsFYV10L337ttq/rec8lRMDBpV7fL3uLx6TgbFCa5DU/h8FmIBQPSbU0w==} - - '@types/mdast@3.0.15': - resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} '@types/methods@1.1.4': resolution: {integrity: sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==} - '@types/mime-types@3.0.0': - resolution: {integrity: sha512-9gFWMsVgEtbsD6yY/2z8pAtnZhdRKl4Q9xmKQJy5gv0fMpzJeeWtQyd7WpdhaIbRSwPCfnjXOsNMcoQvu5giGg==} - '@types/mime-types@3.0.1': resolution: {integrity: sha512-xRMsfuQbnRq1Ef+C+RKaENOxXX87Ygl38W1vDfPHRku02TgQr+Qd8iivLtAMcR0KF5/29xlnFihkTlbqFrGOVQ==} @@ -4692,11 +5644,11 @@ packages: '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/multer@1.4.13': - resolution: {integrity: sha512-bhhdtPw7JqCiEfC9Jimx5LqX9BDIPJEh2q/fQ4bqbBPtyEZYr3cvF22NwG0DmPZNYA0CAf2CnqDB4KIGGpJcaw==} + '@types/multer@2.0.0': + resolution: {integrity: sha512-C3Z9v9Evij2yST3RSBktxP9STm6OdMc5uR1xF1SGr98uv8dUlAL2hqwrZ3GVB3uyMyiegnscEK6PGtYvNrjTjw==} - '@types/node-forge@1.3.11': - resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + '@types/node-forge@1.3.12': + resolution: {integrity: sha512-a0ToKlRVnUw3aXKQq2F+krxZKq7B8LEQijzPn5RdFAMatARD2JX9o8FBpMXOOrjob0uc13aN+V/AXniOXW4d9A==} '@types/node@16.9.1': resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==} @@ -4704,15 +5656,21 @@ packages: '@types/node@20.17.32': resolution: {integrity: sha512-zeMXFn8zQ+UkjK4ws0RiOC9EWByyW1CcVmLe+2rQocXRsGEDxUCwPEIVgpsGcLHS/P8JkT0oa3839BRABS0oPw==} + '@types/node@20.19.6': + resolution: {integrity: sha512-uYssdp9z5zH5GQ0L4zEJ2ZuavYsJwkozjiUzCRfGtaaQcyjAMJ34aP8idv61QlqTozu6kudyr6JMq9Chf09dfA==} + '@types/node@22.15.21': resolution: {integrity: sha512-EV/37Td6c+MgKAbkcLG6vqZ2zEYHD7bvSrzqqs2RIhbA6w3x+Dqz8MZM3sP6kGTeLrdoOgKZe+Xja7tUB2DNkQ==} - '@types/node@22.15.29': - resolution: {integrity: sha512-LNdjOkUDlU1RZb8e1kOIUpN1qQUlzGkEtbVNo53vbrwDg5om6oduhm4SiUaPW5ASTXhAiP0jInWG8Qx9fVlOeQ==} - '@types/node@22.15.30': resolution: {integrity: sha512-6Q7lr06bEHdlfplU6YRbgG1SFBdlsfNC4/lX+SkhiTs0cpJkOElmWls8PxDFv4yY/xKb8Y6SO0OmSX4wgqTZbA==} + '@types/node@22.16.3': + resolution: {integrity: sha512-sr4Xz74KOUeYadexo1r8imhRtlVXcs+j3XK3TcoiYk7B1t3YRVJgtaD3cwX73NYb71pmVuMLNRhJ9XKdoDB74g==} + + '@types/node@24.0.12': + resolution: {integrity: sha512-LtOrbvDf5ndC9Xi+4QZjVL0woFymF/xSTKZKPgrrl7H7XoeDvnD+E2IclKVDyaK9UM756W/3BXqSU+JEHopA9g==} + '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} @@ -4751,9 +5709,6 @@ packages: '@types/sax@1.2.7': resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} - '@types/semver@7.7.0': - resolution: {integrity: sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==} - '@types/send@0.17.4': resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} @@ -4799,12 +5754,11 @@ packages: '@types/swagger-ui-express@4.1.8': resolution: {integrity: sha512-AhZV8/EIreHFmBV5wAs0gzJUNq9JbbSXgJLQubCC0jtIo6prnI9MIRRxnU4MZX9RB9yXxF1V4R7jtLl/Wcj31g==} - '@types/swagger-ui@3.52.4': - resolution: {integrity: sha512-7NV7q8BfupqdQxr26OkM0g0YEPB9uXnKGzXadgcearvI9MoCHt3F72lPTX3fZZIlrr21DC0IK26wcDMZ37oFDA==} + '@types/swagger-ui@5.21.1': + resolution: {integrity: sha512-DUmUH59eeOtvAqcWwBduH2ws0cc5i95KHsXCS4FsOfbUq/clW8TN+HqRBj7q5p9MSsSNK43RziIGItNbrAGLxg==} - '@types/tesseract.js@2.0.0': - resolution: {integrity: sha512-t0uNy5L9Ynp/O/fu0+75/ot7lWZZRlwsVwaPQOeYud/V6a0B/JjfYvwnrA4TV6+R9xc1ioRLukqjhI8Spy5diw==} - deprecated: This is a stub types definition. tesseract.js provides its own type definitions, so you do not need this installed. + '@types/tabulator-tables@6.2.7': + resolution: {integrity: sha512-c4itwLSnOwb+hj3mZl3QZSVrAHZb2XL9hUj2UsP5vkqPzZpKM1Iiak4GGVfv1cXHwqmj1igEEdG59V69KsKyGw==} '@types/tmp@0.2.6': resolution: {integrity: sha512-chhaNf2oKHlRkDGt+tiKE2Z5aJ6qalm7Z9rlLdBwmOiAAf09YQvvoLXjWK4HWPF1xU/fqvMgfNfpVoBscA/tKA==} @@ -4821,6 +5775,15 @@ 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==} + '@types/which@2.0.2': resolution: {integrity: sha512-113D3mDkZDjo+EeUEHCFy0qniNc1ZpecGiAU7WSo7YDoSzolZIQKpYFHrPpjkB2nuyahcKfrmLXeQlh7gqJYdw==} @@ -4839,183 +5802,84 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@6.21.0': - resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/eslint-plugin@8.34.0': - resolution: {integrity: sha512-QXwAlHlbcAwNlEEMKQS2RCgJsgXrTJdjXT08xEgbPFa2yYQgVjBymxP5DrfrE7X7iodSzd9qBUHUycdyVJTW1w==} + '@typescript-eslint/eslint-plugin@8.36.0': + resolution: {integrity: sha512-lZNihHUVB6ZZiPBNgOQGSxUASI7UJWhT8nHyUGCnaQ28XFCw98IfrMCG3rUl1uwUWoAvodJQby2KTs79UTcrAg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.34.0 + '@typescript-eslint/parser': ^8.36.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@6.21.0': - resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@8.33.1': - resolution: {integrity: sha512-qwxv6dq682yVvgKKp2qWwLgRbscDAYktPptK4JPojCwwi3R9cwrvIxS4lvBpzmcqzR4bdn54Z0IG1uHFskW4dA==} + '@typescript-eslint/parser@8.36.0': + resolution: {integrity: sha512-FuYgkHwZLuPbZjQHzJXrtXreJdFMKl16BFYyRrLxDhWr6Qr7Kbcu2s1Yhu8tsiMXw1S0W1pjfFfYEt+R604s+Q==} 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/parser@8.34.0': - resolution: {integrity: sha512-vxXJV1hVFx3IXz/oy2sICsJukaBrtDEQSBiV48/YIV5KWjX1dO+bcIr/kCPrW6weKXvsaGKFNlwH0v2eYdRRbA==} + '@typescript-eslint/project-service@8.36.0': + resolution: {integrity: sha512-JAhQFIABkWccQYeLMrHadu/fhpzmSQ1F1KXkpzqiVxA/iYI6UnRt2trqXHt1sYEcw1mxLnB9rKMsOxXPxowN/g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/scope-manager@8.36.0': + resolution: {integrity: sha512-wCnapIKnDkN62fYtTGv2+RY8FlnBYA3tNm0fm91kc2BjPhV2vIjwwozJ7LToaLAyb1ca8BxrS7vT+Pvvf7RvqA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.36.0': + resolution: {integrity: sha512-Nhh3TIEgN18mNbdXpd5Q8mSCBnrZQeY9V7Ca3dqYvNDStNIGRmJA6dmrIPMJ0kow3C7gcQbpsG2rPzy1Ks/AnA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/type-utils@8.36.0': + resolution: {integrity: sha512-5aaGYG8cVDd6cxfk/ynpYzxBRZJk7w/ymto6uiyUFtdCozQIsQWh7M28/6r57Fwkbweng8qAzoMCPwSJfWlmsg==} 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.33.1': - resolution: {integrity: sha512-DZR0efeNklDIHHGRpMpR5gJITQpu6tLr9lDJnKdONTC7vvzOlLAG/wcfxcdxEWrbiZApcoBCzXqU/Z458Za5Iw==} + '@typescript-eslint/types@8.36.0': + resolution: {integrity: sha512-xGms6l5cTJKQPZOKM75Dl9yBfNdGeLRsIyufewnxT4vZTrjC0ImQT4fj8QmtJK84F58uSh5HVBSANwcfiXxABQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.36.0': + resolution: {integrity: sha512-JaS8bDVrfVJX4av0jLpe4ye0BpAaUW7+tnS4Y4ETa3q7NoZgzYbN9zDQTJ8kPb5fQ4n0hliAt9tA4Pfs2zA2Hg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/project-service@8.34.0': - resolution: {integrity: sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/scope-manager@6.21.0': - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/scope-manager@8.33.1': - resolution: {integrity: sha512-dM4UBtgmzHR9bS0Rv09JST0RcHYearoEoo3pG5B6GoTR9XcyeqX87FEhPo+5kTvVfKCvfHaHrcgeJQc6mrDKrA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/scope-manager@8.34.0': - resolution: {integrity: sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/tsconfig-utils@8.33.1': - resolution: {integrity: sha512-STAQsGYbHCF0/e+ShUQ4EatXQ7ceh3fBCXkNU7/MZVKulrlq1usH7t2FhxvCpuCi5O5oi1vmVaAjrGeL71OK1g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/tsconfig-utils@8.34.0': - resolution: {integrity: sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/type-utils@6.21.0': - resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/type-utils@8.33.1': - resolution: {integrity: sha512-1cG37d9xOkhlykom55WVwG2QRNC7YXlxMaMzqw2uPeJixBFfKWZgaP/hjAObqMN/u3fr5BrTwTnc31/L9jQ2ww==} + '@typescript-eslint/utils@8.36.0': + resolution: {integrity: sha512-VOqmHu42aEMT+P2qYjylw6zP/3E/HvptRwdn/PZxyV27KhZg2IOszXod4NcXisWzPAGSS4trE/g4moNj6XmH2g==} 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/type-utils@8.34.0': - resolution: {integrity: sha512-n7zSmOcUVhcRYC75W2pnPpbO1iwhJY3NLoHEtbJwJSNlVAZuwqu05zY3f3s2SDWWDSo9FdN5szqc73DCtDObAg==} - 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@6.21.0': - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/types@8.33.1': - resolution: {integrity: sha512-xid1WfizGhy/TKMTwhtVOgalHwPtV8T32MS9MaH50Cwvz6x6YqRIPdD2WvW0XaqOzTV9p5xdLY0h/ZusU5Lokg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/types@8.34.0': - resolution: {integrity: sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/typescript-estree@6.21.0': - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/typescript-estree@8.33.1': - resolution: {integrity: sha512-+s9LYcT8LWjdYWu7IWs7FvUxpQ/DGkdjZeE/GGulHvv8rvYwQvVaUZ6DE+j5x/prADUgSbbCWZ2nPI3usuVeOA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/typescript-estree@8.34.0': - resolution: {integrity: sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/utils@6.21.0': - resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - - '@typescript-eslint/utils@8.33.1': - resolution: {integrity: sha512-52HaBiEQUaRYqAXpfzWSR2U3gxk92Kw006+xZpElaPMg3C4PgM+A5LqwoQI1f9E5aZ/qlxAZxzm42WX+vn92SQ==} - 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/utils@8.34.0': - resolution: {integrity: sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==} - 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@6.21.0': - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/visitor-keys@8.33.1': - resolution: {integrity: sha512-3i8NrFcZeeDHJ+7ZUuDkGT+UHq+XoFGsymNK2jZCOHcfEzRQ0BdpRtdpSx/Iyf3MHLWIcLS0COuOPibKQboIiQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/visitor-keys@8.34.0': - resolution: {integrity: sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==} + '@typescript-eslint/visitor-keys@8.36.0': + resolution: {integrity: sha512-vZrhV2lRPWDuGoxcmrzRZyxAggPL+qp3WzUrlZD+slFueDiYHxeBa34dUXPuC0RmGKzl4lS5kFJYvKCq9cnNDA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - '@vitest/browser@3.2.0': - resolution: {integrity: sha512-sVpX5m53lX9/0ehAqkcTSQeJK1SVlTlvBrwE8rPQ2KJQgb/Iiorx+3y+VQdzIJ+CDqfG89bQEA5l1Z02VogDsA==} + '@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.3': + resolution: {integrity: sha512-uZDXb2IuFchpNQdHDxDowKgGPd+9UOy0PIykWEPedMbbBYxh7/UUQ+G53E4KhKe7cV7BV4zoFxUrNx+Ij0lyPw==} + engines: {node: '>=16'} + + '@vitest/browser@3.2.4': + resolution: {integrity: sha512-tJxiPrWmzH8a+w9nLKlQMzAKX/7VjFs50MWgcAj7p9XQ7AQ9/35fByFYptgPELyLw+0aixTnC4pUWV+APcZ/kw==} peerDependencies: playwright: '*' safaridriver: '*' - vitest: 3.2.0 + vitest: 3.2.4 webdriverio: ^7.0.0 || ^8.0.0 || ^9.0.0 peerDependenciesMeta: playwright: @@ -5025,28 +5889,25 @@ packages: webdriverio: optional: true - '@vitest/coverage-istanbul@3.2.0': - resolution: {integrity: sha512-eSPLTxVPFMdDE0vuiuCxckob4RJEMM/AO8Z86X3WCZ1V6b9SuMeCaxR6Ebbl/fy2QO+IXWOwtGrvcWY/nSG2dw==} + '@vitest/coverage-istanbul@3.2.4': + resolution: {integrity: sha512-IDlpuFJiWU9rhcKLkpzj8mFu/lpe64gVgnV15ZOrYx1iFzxxrxCzbExiUEKtwwXRvEiEMUS6iZeYgnMxgbqbxQ==} peerDependencies: - vitest: 3.2.0 + vitest: 3.2.4 - '@vitest/coverage-v8@3.2.3': - resolution: {integrity: sha512-D1QKzngg8PcDoCE8FHSZhREDuEy+zcKmMiMafYse41RZpBE5EDJyKOTdqK3RQfsV2S2nyKor5KCs8PyPRFqKPg==} + '@vitest/coverage-v8@3.2.4': + resolution: {integrity: sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==} peerDependencies: - '@vitest/browser': 3.2.3 - vitest: 3.2.3 + '@vitest/browser': 3.2.4 + vitest: 3.2.4 peerDependenciesMeta: '@vitest/browser': optional: true - '@vitest/expect@3.2.0': - resolution: {integrity: sha512-0v4YVbhDKX3SKoy0PHWXpKhj44w+3zZkIoVES9Ex2pq+u6+Bijijbi2ua5kE+h3qT6LBWFTNZSCOEU37H8Y5sA==} + '@vitest/expect@3.2.4': + resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} - '@vitest/expect@3.2.3': - resolution: {integrity: sha512-W2RH2TPWVHA1o7UmaFKISPvdicFJH+mjykctJFoAkUw+SPTJTGjUNdKscFBrqM7IPnCVu6zihtKYa7TkZS1dkQ==} - - '@vitest/mocker@3.2.0': - resolution: {integrity: sha512-HFcW0lAMx3eN9vQqis63H0Pscv0QcVMo1Kv8BNysZbxcmHu3ZUYv59DS6BGYiGQ8F5lUkmsfMMlPm4DJFJdf/A==} + '@vitest/mocker@3.2.4': + resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==} peerDependencies: msw: ^2.4.9 vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 @@ -5056,56 +5917,25 @@ packages: vite: optional: true - '@vitest/mocker@3.2.3': - resolution: {integrity: sha512-cP6fIun+Zx8he4rbWvi+Oya6goKQDZK+Yq4hhlggwQBbrlOQ4qtZ+G4nxB6ZnzI9lyIb+JnvyiJnPC2AGbKSPA==} + '@vitest/pretty-format@3.2.4': + resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} + + '@vitest/runner@3.2.4': + resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==} + + '@vitest/snapshot@3.2.4': + resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==} + + '@vitest/spy@3.2.4': + resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} + + '@vitest/ui@3.2.4': + resolution: {integrity: sha512-hGISOaP18plkzbWEcP/QvtRW1xDXF2+96HbEX6byqQhAUbiS5oH6/9JwW+QsQCIYON2bI6QZBF+2PvOmrRZ9wA==} peerDependencies: - msw: ^2.4.9 - vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 - peerDependenciesMeta: - msw: - optional: true - vite: - optional: true + vitest: 3.2.4 - '@vitest/pretty-format@3.2.0': - resolution: {integrity: sha512-gUUhaUmPBHFkrqnOokmfMGRBMHhgpICud9nrz/xpNV3/4OXCn35oG+Pl8rYYsKaTNd/FAIrqRHnwpDpmYxCYZw==} - - '@vitest/pretty-format@3.2.3': - resolution: {integrity: sha512-yFglXGkr9hW/yEXngO+IKMhP0jxyFw2/qys/CK4fFUZnSltD+MU7dVYGrH8rvPcK/O6feXQA+EU33gjaBBbAng==} - - '@vitest/runner@3.2.0': - resolution: {integrity: sha512-bXdmnHxuB7fXJdh+8vvnlwi/m1zvu+I06i1dICVcDQFhyV4iKw2RExC/acavtDn93m/dRuawUObKsrNE1gJacA==} - - '@vitest/runner@3.2.3': - resolution: {integrity: sha512-83HWYisT3IpMaU9LN+VN+/nLHVBCSIUKJzGxC5RWUOsK1h3USg7ojL+UXQR3b4o4UBIWCYdD2fxuzM7PQQ1u8w==} - - '@vitest/snapshot@3.2.0': - resolution: {integrity: sha512-z7P/EneBRMe7hdvWhcHoXjhA6at0Q4ipcoZo6SqgxLyQQ8KSMMCmvw1cSt7FHib3ozt0wnRHc37ivuUMbxzG/A==} - - '@vitest/snapshot@3.2.3': - resolution: {integrity: sha512-9gIVWx2+tysDqUmmM1L0hwadyumqssOL1r8KJipwLx5JVYyxvVRfxvMq7DaWbZZsCqZnu/dZedaZQh4iYTtneA==} - - '@vitest/spy@3.2.0': - resolution: {integrity: sha512-s3+TkCNUIEOX99S0JwNDfsHRaZDDZZR/n8F0mop0PmsEbQGKZikCGpTGZ6JRiHuONKew3Fb5//EPwCP+pUX9cw==} - - '@vitest/spy@3.2.3': - resolution: {integrity: sha512-JHu9Wl+7bf6FEejTCREy+DmgWe+rQKbK+y32C/k5f4TBIAlijhJbRBIRIOCEpVevgRsCQR2iHRUH2/qKVM/plw==} - - '@vitest/ui@3.2.0': - resolution: {integrity: sha512-cYFZZSl1usgzsHoGF66GHfYXlEwc06ggapS1TaSLMKCzhTPWBPI9b/t1RvKIsLSjdKUakpSPf33jQMvRjMvvlQ==} - peerDependencies: - vitest: 3.2.0 - - '@vitest/ui@3.2.3': - resolution: {integrity: sha512-9aR2tY/WT7GRHGEH/9sSIipJqeA21Eh3C6xmiOVmfyBCFmezUSUFLalpaSmRHlRzWCKQU10yz3AHhKuYcdnZGQ==} - peerDependencies: - vitest: 3.2.3 - - '@vitest/utils@3.2.0': - resolution: {integrity: sha512-gXXOe7Fj6toCsZKVQouTRLJftJwmvbhH5lKOBR6rlP950zUq9AitTUjnFoXS/CqjBC2aoejAztLPzzuva++XBw==} - - '@vitest/utils@3.2.3': - resolution: {integrity: sha512-4zFBCU5Pf+4Z6v+rwnZ1HU1yzOKKvDkMXZrymE2PBlbjKJRlrOxbvpfPSvJTGRIwGoahaOGvp+kbCoxifhzJ1Q==} + '@vitest/utils@3.2.4': + resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} '@volar/language-core@2.4.13': resolution: {integrity: sha512-MnQJ7eKchJx5Oz+YdbqyFUk8BN6jasdJv31n/7r6/WwlOOv7qzvot6B66887l2ST3bUW4Mewml54euzpJWA6bg==} @@ -5136,27 +5966,27 @@ packages: '@vue/shared@3.5.14': resolution: {integrity: sha512-oXTwNxVfc9EtP1zzXAlSlgARLXNC84frFYkS0HHz0h3E4WZSP9sywqjqzGCP9Y34M8ipNmd380pVgmMuwELDyQ==} - '@wdio/config@9.15.0': - resolution: {integrity: sha512-IQzSZx2Y0KdAVWHSdcBLkuUjCmYtOnc1oDY7Psi814wDR7dEPVOuKgMo8ZZ0P1yhioMzqvy5tBemYSzj7CrFTA==} + '@wdio/config@9.17.0': + resolution: {integrity: sha512-AmP9J1GiCUj8g9aNeCuJRKAo+dET8rukVzrGQVq8jdqkj4PLjLA2hbfcQ8zQi/xwVUebnuIUT5weaomgKyb7Ng==} engines: {node: '>=18.20.0'} - '@wdio/logger@9.15.0': - resolution: {integrity: sha512-3IkaissyOsUQwg8IinkVm1svsvRMGJpFyaSiEhQ0oQXD7mnWrNVFSU9kmeFvbKAtoc4j60FRjU6XqtH94xRceg==} + '@wdio/logger@9.16.2': + resolution: {integrity: sha512-6A1eVpNPToWupLIo8CXStth4HJGTfxKsAiKtwE0xQFKyDM8uPTm3YO3Nf15vCSHbmsncbYVEo7QrUwRUEB4YUg==} 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.17.0': + resolution: {integrity: sha512-z9k8+DbhyJPLs88w/SLcUuXMdoPq2r/lE2qQ79pqWAG0jmm7kJqkBvZyndaTrSrGbh+NgjTEgh1epD1PHYtnwg==} engines: {node: '>=18.20.0'} '@webassemblyjs/ast@1.14.1': @@ -5224,8 +6054,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.63': + resolution: {integrity: sha512-B02i6QDMUQ4c+5F9LmliBGA+jFsiEHIlF0eLQ6rWLaQOD3YwI6vyWwGkVCNJnVVguE2xYyr9fAwSD/3valm1/Q==} engines: {bun: '>=0.7.0', deno: '>=1.0.0', node: '>=16.5.0'} '@zkochan/js-yaml@0.0.7': @@ -5285,6 +6115,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + address@1.2.2: resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} engines: {node: '>= 10.0.0'} @@ -5297,6 +6132,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'} @@ -5473,6 +6312,9 @@ packages: array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + array-timsort@1.0.3: + resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==} + array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} @@ -5542,8 +6384,12 @@ packages: resolution: {integrity: sha512-zJAaP9zxTcvTHRlejau3ZOY4V7SRpiByf3/dxx2uyKxxor19tpmpV2QRsTKikckwhaPmr2dVpxxMr7jOCYVp5g==} engines: {node: '>=6.0.0'} - axios@1.9.0: - resolution: {integrity: sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==} + axios@1.10.0: + resolution: {integrity: sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw==} + + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} b4a@1.6.7: resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} @@ -5606,6 +6452,9 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -5615,8 +6464,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: '*' @@ -5663,8 +6515,9 @@ packages: batch@0.6.1: resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} - better-sqlite3@11.10.0: - resolution: {integrity: sha512-EwhOpyXiOEL/lKzHz9AW1msWFNzGc/z+LzeB3/jnFJpxu+th2yqvzsSWas1v9jgs9+xiXJcD5A8CJxAG2TaghQ==} + better-sqlite3@12.2.0: + resolution: {integrity: sha512-eGbYq2CT+tos1fBwLQ/tkBt9J5M3JEHjku4hbvQUePCckkvVf14xWj+1m7dGoK81M/fOjFT7yM9UMeKT/+vFLQ==} + engines: {node: 20.x || 22.x || 23.x || 24.x} bezier-easing@2.1.0: resolution: {integrity: sha512-gbIqZ/eslnUFC1tjEvtz0sgx+xTK20wDnYMIA27VA04R7w6xxXQPZDbibjA9DTWZRA2CXtwHykkVzlCaAJAZig==} @@ -5691,9 +6544,6 @@ packages: blurhash@2.0.5: resolution: {integrity: sha512-cRygWd7kGBQO3VEhPiTgq4Wc43ctsM+o46urrmPOiuAe+07fzlSB9OJVdpgDL0jPqXUVQ9ht7aq7kxOeJHRK+w==} - bmp-js@0.1.0: - resolution: {integrity: sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==} - bmp-ts@1.0.9: resolution: {integrity: sha512-cTEHk2jLrPyi+12M3dhpEbnnPOsaZuq7C45ylbbQIiWgDFZq4UVYPEY5mlqjvsj/6gJv9qX5sa+ebDzLXT28Vw==} @@ -5715,22 +6565,25 @@ packages: resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - bootstrap@5.3.6: - resolution: {integrity: sha512-jX0GAcRzvdwISuvArXn3m7KZscWWFAf1MKBcnzaN02qWMb3jpMoUX4/qgeiGzqyIb4ojulRzs89UCUmGcFSzTA==} + bootstrap@5.3.7: + resolution: {integrity: sha512-7KgiD8UHjfcPBHEpDNg+zGz8L3LqR3GVwqZiBRFX04a1BCArZOz1r2kjly2HQ0WokqTO0v1nF+QAt8dsW4lKlw==} peerDependencies: '@popperjs/core': ^2.11.8 + bowser@2.11.0: + resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} + boxicons@2.1.4: resolution: {integrity: sha512-BvJNfYfnE4g9WQ7GL91fftxMOTwAleWlPFwvQJPYb/Ju7aLjlQ/Eu55AH9JLNk/OR82z+ZSq4TbKzbV/e5Rr0A==} bplist-creator@0.0.8: resolution: {integrity: sha512-Za9JKzD6fjLC16oX2wsXfc+qBEhJBJB1YPInoAQpMLhDuj5aVOv1baGeIQSq1Fr3OCqzvsoQcSBSwGId/Ja2PA==} - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} @@ -5745,8 +6598,8 @@ packages: browser-stdout@1.3.1: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} - browserslist@4.24.4: - resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} + browserslist@4.25.1: + resolution: {integrity: sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -5821,8 +6674,8 @@ packages: resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} engines: {node: '>=8'} - cacheable@1.9.0: - resolution: {integrity: sha512-8D5htMCxPDUULux9gFzv30f04Xo3wCnik0oOxKoRTPIBoqA7HtOcJ87uBhQTs3jCfZZTrUBGsYIZOgE0ZRgMAg==} + cacheable@1.10.1: + resolution: {integrity: sha512-Fa2BZY0CS9F0PFc/6aVA6tgpOdw+hmv9dkZOlHXII5v5Hw+meJBIWDcPrG9q/dXxGcNbym5t77fzmawrBQfTmQ==} call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} @@ -5858,8 +6711,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==} canvas-color-tracker@1.3.2: resolution: {integrity: sha512-ryQkDX26yJ3CXzb3hxUVNlg1NKE4REc5crLBq661Nxzr8TNd236SaEf2ffYLXyI5tSABSeguHLqcVq4vf9L3Zg==} @@ -5868,6 +6721,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'} @@ -5892,6 +6748,12 @@ packages: 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==} @@ -5958,8 +6820,16 @@ packages: cjs-module-lexer@1.4.3: resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} - ckeditor5@45.2.0: - resolution: {integrity: sha512-1qmimEn9buiaadFq8e8ixUP/9rMWZ7YCw0UX6RokPy3njEUByXLlni20El6nMvDG1OEtPiYvl/G79DSs6DiN8w==} + ckeditor5-collaboration@46.0.0: + resolution: {integrity: sha512-Cncgw3Rip76vpWwuJiES5UGaRFlOXdRiGac8jUzrnhFeV2pZA+sztD2yuOqthrwNa69X2zV/OQ20tKQvTjgn1g==} + + ckeditor5-premium-features@46.0.0: + resolution: {integrity: sha512-K/08QmUlTQwtmfmQMpexIZWcxKRpWJJNgXRZO+9g9pdCFYhY6MbEJ6SdeWoPZZ2v6B2FJrvw1tQFkJ5TYn+vnA==} + peerDependencies: + ckeditor5: 46.0.0 + + ckeditor5@46.0.0: + resolution: {integrity: sha512-xOvTcZqeVCsEM6hp9kHtTAAS6Elie/WZ/RA3FYZjR2251CI66vNOb0GWU+c0ufr2Ha/FuXRdgV4nSpIv3JLvaA==} clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} @@ -6034,10 +6904,17 @@ packages: resolution: {integrity: sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==} engines: {node: '>=6'} + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + co@4.6.0: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + codemirror-lang-elixir@4.0.0: + resolution: {integrity: sha512-mzFesxo/t6KOxwnkqVd34R/q7yk+sMtHh6vUKGAvjwHmpL7bERHB+vQAsmU/nqrndkwVeJEHWGw/z/ybfdiudA==} + codemirror-lang-hcl@0.1.0: resolution: {integrity: sha512-duwKEaQDhkJWad4YQ9pv4282BS6hCdR+gS/qTAj3f9bypXNNZ42bIN43h9WK3DjyZRENtVlUQdrQM1sA44wHmA==} @@ -6057,14 +6934,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==} @@ -6091,6 +6976,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'} @@ -6126,8 +7014,12 @@ packages: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} engines: {node: ^12.20.0 || >=14} - comment-parser@1.4.0: - resolution: {integrity: sha512-QLyTNiZ2KDOibvFPlZ6ZngVsZ/0gYnE6uTXi5aoDg8ed3AkJAz4sEje3Y8a29hQ1s6A99MZXe47fLAXQ1rTqaw==} + comment-json@4.2.5: + resolution: {integrity: sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==} + engines: {node: '>= 6'} + + comment-parser@1.4.1: + resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} engines: {node: '>= 12.0.0'} commondir@1.0.1: @@ -6179,6 +7071,10 @@ packages: resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} engines: {node: '>=0.8'} + consola@3.4.0: + resolution: {integrity: sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==} + engines: {node: ^14.18.0 || >=16.10.0} + console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} @@ -6211,6 +7107,10 @@ 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'} @@ -6394,6 +7294,12 @@ packages: peerDependencies: postcss: ^8.4.31 + cssnano-preset-default@7.0.7: + resolution: {integrity: sha512-jW6CG/7PNB6MufOrlovs1TvBTEVmhY45yz+bd0h6nw3h6d+1e+/TX+0fflZ+LzvZombbT5f+KC063w9VoHeHow==} + 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} @@ -6418,6 +7324,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} @@ -6436,6 +7348,12 @@ packages: peerDependencies: postcss: ^8.4.31 + cssnano@7.0.7: + resolution: {integrity: sha512-evKu7yiDIF7oS+EIpwFlMF730ijRyLFaM2o5cTxRGJR9OKHKkc+qP443ZEVR9kZG0syaAJJCPJyfv5pbrxlSng==} + 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'} @@ -6624,9 +7542,6 @@ packages: resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} engines: {node: '>=12'} - dagre-d3-es@7.0.10: - resolution: {integrity: sha512-qTCQmEhcynucuaZgY5/+ti3X/rnszKZhEQH/ZdWdtP1tA/y3VoHJzcVrO9pjjJCNpigfscAtoUB5ONcd2wNn0A==} - dagre-d3-es@7.0.11: resolution: {integrity: sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==} @@ -6696,6 +7611,15 @@ packages: supports-color: optional: true + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + debug@4.4.1: resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} engines: {node: '>=6.0'} @@ -6720,8 +7644,8 @@ packages: decimal.js@10.5.0: resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==} - decode-named-character-reference@1.1.0: - resolution: {integrity: sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==} + 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==} @@ -6731,6 +7655,14 @@ packages: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} + dedent@1.5.1: + resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + dedent@1.5.3: resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} peerDependencies: @@ -6869,6 +7801,12 @@ packages: detect-touch-events@2.0.2: resolution: {integrity: sha512-g8GWBkJLiIDRJfRXEdrd1wMXpNyGId2DkbfuwFahSb4OCvn717hyRJtAcEDISfp3zkwEhZ4Y4woHPA6DeyB3Fw==} + 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==} @@ -6949,14 +7887,18 @@ packages: resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} engines: {node: '>=12'} - dotenv@16.5.0: - resolution: {integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==} + dotenv@17.2.0: + resolution: {integrity: sha512-Q4sgBT60gzd0BB0lSyYD3xM4YxrXA9y4uBDof1JNYGzOXrQdQ6yX+7XIAqoFOGQFOTK1D3Hts5OllpxMDZFONQ==} engines: {node: '>=12'} dotignore@0.1.2: resolution: {integrity: sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==} hasBin: true + dpdm@3.14.0: + resolution: {integrity: sha512-YJzsFSyEtj88q5eTELg3UWU7TVZkG1dpbF4JDQ3t1b07xuzXmdoGeSz9TKOke1mUuOpWlk4q+pBh+aHzD6GBTg==} + hasBin: true + draggabilly@3.0.0: resolution: {integrity: sha512-aEs+B6prbMZQMxc9lgTpCBfyCUhRur/VFucHhIOvlvvdARTj7TcDmX/cdOUtqbjJJUh7+agyJXR5Z6IFe1MxwQ==} @@ -7029,8 +7971,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-window-state@5.0.3: resolution: {integrity: sha512-1mNTwCfkolXl3kMf50yW3vE2lZj0y92P/HYWFBrb+v2S/pCka5mdwN3cagKm458A7NjndSwijynXgcLWRodsVg==} @@ -7040,8 +7982,8 @@ packages: resolution: {integrity: sha512-bO3y10YikuUwUuDUQRM4KfwNkKhnpVO7IPdbsrejwN9/AABJzzTQ4GeHwyzNSrVO+tEH3/Np255a3sVZpZDjvg==} engines: {node: '>=8.0.0'} - electron@36.4.0: - resolution: {integrity: sha512-LLOOZEuW5oqvnjC7HBQhIqjIIJAZCIFjQxltQGLfEC7XFsBoZgQ3u3iFj+Kzw68Xj97u1n57Jdt7P98qLvUibQ==} + electron@37.2.1: + resolution: {integrity: sha512-ae2EbzRNqIAHlftfCHtbbt6EgJUW8+zxWLONqNnn2iSrLF0O/pbxbff3xcpZYPpmFBs4uqjoi+s4QS7DQ+zZ/w==} engines: {node: '>= 12.20.55'} hasBin: true @@ -7091,8 +8033,18 @@ packages: end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - enhanced-resolve@5.18.1: - resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} + 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==} + + engine.io-parser@5.2.3: + resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} + engines: {node: '>=10.0.0'} + + enhanced-resolve@5.18.2: + resolution: {integrity: sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ==} engines: {node: '>=10.13.0'} enquirer@2.3.6: @@ -7158,8 +8110,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==} @@ -7186,6 +8138,11 @@ packages: engines: {node: '>=18'} hasBin: true + esbuild@0.25.6: + resolution: {integrity: sha512-GVuzuUwtdsghE3ocJ9Bs8PNoF13HNQ5TXbEi2AhvVb8xU1Iwt9Fos9FEamfoee+u/TOsn7GUWc04lz46n2bbTg==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -7218,8 +8175,8 @@ packages: engines: {node: '>=6.0'} hasBin: true - eslint-config-ckeditor5@10.0.0: - resolution: {integrity: sha512-QgWEvm0Ir8m9wxq0Z/TR+TQ6DZLYPc6vzqpsh/Uuv9vX8QKKz4175KQjkkhdysMd61XcqZb/rAeGdeRAHz+2YA==} + eslint-config-ckeditor5@12.0.0: + resolution: {integrity: sha512-7slnS3fBU1Qv+CA+haTfFF09p/ShQWMWUysSuUdeIZrLKJ+AaQvWV8R0yx+bLVC5PBRA5q9utrTix916l+2PQg==} peerDependencies: eslint: ^9.0.0 typescript: ^5.0.0 @@ -7230,11 +8187,11 @@ packages: peerDependencies: eslint: '>=7.0.0' - eslint-linter-browserify@9.28.0: - resolution: {integrity: sha512-kwl+x7pjceCh+odhn7M6wOyjPKjXtmN/gPcxB7R7OItlW9aFKS1iETNnPbfcGWvO+hULt1BLSyWvNFWUah7EvQ==} + eslint-linter-browserify@9.31.0: + resolution: {integrity: sha512-Utv/GchpL5EkPK1FcYvPjdfcYl6nEr2SaJgY4cZHRt/IVGxvojhdZQLHSC9CTpWVWt1fQ7McrzyfCCD1QxB9ow==} - eslint-plugin-ckeditor5-rules@10.0.0: - resolution: {integrity: sha512-0gYPxrvzQmljIUHnxCUKrH0NsLsJNoR316wihe4QSeSSqe4zIv0MLI9ROyXt8HiuAQgSSnGnzVCcdg+T0PxpuQ==} + eslint-plugin-ckeditor5-rules@12.0.0: + resolution: {integrity: sha512-DGQa6rYuZhSq0I8zr8iD/l7PPl3owDLIdFsvOX36uJsykO0onNtKCSSNs6jhc55WJWchqdKPtKCxNSbEAQeT6w==} eslint-plugin-mocha@11.1.0: resolution: {integrity: sha512-rKntVWRsQFPbf8OkSgVNRVRrcVAPaGTyEgWCEyXaPDJkTl0v5/lwu1vTk5sWiUJU8l2sxwvGUZzSNrEKdVMeQw==} @@ -7247,34 +8204,34 @@ packages: peerDependencies: eslint: '>=8.40.0' + eslint-plugin-svelte@3.10.1: + resolution: {integrity: sha512-csCh2x0ge/DugXC7dCANh46Igi7bjMZEy6rHZCdS13AoGVJSu7a90Kru3I8oMYLGEemPRE1hQXadxvRPVMAAXQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.1 || ^9.0.0 + svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + svelte: + optional: true + eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-scope@8.3.0: - resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==} + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@4.2.0: - resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@8.57.1: - resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. - hasBin: true - - eslint@9.28.0: - resolution: {integrity: sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ==} + eslint@9.31.0: + resolution: {integrity: sha512-QldCVh/ztyKJJZLr4jXNUByx3gR+TDYZCRXEktiZoUR3PGy4qCmSbkxcIle8GEwGpb5JBZazlaJ/CxLidXdEbQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -7283,8 +8240,11 @@ packages: jiti: optional: true - espree@10.3.0: - resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + esm-env@1.2.2: + resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==} + + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} espree@9.6.1: @@ -7300,6 +8260,9 @@ packages: resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} + esrap@2.1.0: + resolution: {integrity: sha512-yzmPNpl7TBbMRC5Lj2JlJZNPml0tzqoqP5B1JXycNUwtqma9AKCO0M2wHrdgsHcy1WRW7S9rJknAMtByg3usgA==} + esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} @@ -7379,11 +8342,11 @@ packages: peerDependencies: express: '>= 4.17.0' - express-rate-limit@7.5.0: - resolution: {integrity: sha512-eB5zbQh5h+VenMPM3fh+nw1YExi5nMr6HUCR62ELSP11huvxm/Uir1H1QEyTkk5QX6A58pX6NmaTMceKZ0Eodg==} + express-rate-limit@7.5.1: + resolution: {integrity: sha512-7iN8iPMDzOMHPUYllBEsQdWVB6fPDMPqwjBaFrgr4Jgr/+okjvzAy+UHlYYL/Vs0OsOrMkwS6PJDkFlJwoxUnw==} engines: {node: '>= 16'} peerDependencies: - express: ^4.11 || 5 || ^5.0.0-beta.1 + express: '>= 4.11' express-session@1.18.1: resolution: {integrity: sha512-a5mtTqEaZvBCL9A9aqkrtfz+3SMDhOVUnjafjo+s7A9Txkq+SVX2DLvSp1Zrv4uCXa3lMSK3viWnh9Gg07PBUA==} @@ -7412,6 +8375,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'} @@ -7442,6 +8408,10 @@ packages: fast-uri@3.0.6: resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} + fast-xml-parser@4.4.1: + resolution: {integrity: sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==} + hasBin: true + fast-xml-parser@4.5.3: resolution: {integrity: sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig==} hasBin: true @@ -7453,6 +8423,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'} @@ -7471,8 +8444,8 @@ packages: picomatch: optional: true - fdir@6.4.5: - resolution: {integrity: sha512-4BG7puHpVsIYxZUbiUE3RqGloLaSSwzYie5jvasC4LWuBWzZawynvYouhjbQKw2JuIGYdm0DzIxl8iVidKlUEw==} + fdir@6.4.6: + resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -7490,12 +8463,8 @@ packages: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} - file-entry-cache@10.1.0: - resolution: {integrity: sha512-Et/ex6smi3wOOB+n5mek+Grf7P2AxZR5ueqRUvAAn4qkyatXi3cUC1cuQXVkX0VlzBVsN4BkWJFmY/fYiRTdww==} - - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@10.1.1: + resolution: {integrity: sha512-zcmsHjg2B2zjuBgjdnB+9q0+cWcgWfykIcsDkWDB4GTPtl1eXUA+gTI6sO0u01AqK3cliHryTU55/b2Ow1hfZg==} file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} @@ -7563,16 +8532,12 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} - flat-cache@6.1.9: - resolution: {integrity: sha512-DUqiKkTlAfhtl7g78IuwqYM+YqvT+as0mY+EVk6mfimy19U79pJCzDZQsnqk3Ou/T6hFXWLGbwbADzD/c8Tydg==} + flat-cache@6.1.11: + resolution: {integrity: sha512-zfOAns94mp7bHG/vCn9Ru2eDCmIxVQ5dELUHKjHfDEOJmHNzE+uGa6208kfkgmtym4a0FFjEuFksCXFacbVhSg==} flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} @@ -7605,8 +8570,8 @@ packages: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} - force-graph@1.49.6: - resolution: {integrity: sha512-o3uZ22YMvRwcS4RZ5lMQE5mCsQ5w1AzR4bPlQ1cThqgAxRrzOO4mGOaeNGTAkGGQwL6f7RIBCaxPNtvkbgAykw==} + force-graph@1.50.1: + resolution: {integrity: sha512-CtldBdsUHLmlnerVYe09V9Bxi5iz8GZce1WdBSkwGAFgNFTYn6cW90NQ1lOh/UVm0NhktMRHKugXrS9Sl8Bl3A==} engines: {node: '>=12'} foreground-child@3.3.1: @@ -7621,6 +8586,10 @@ packages: 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==} engines: {node: '>=12.20.0'} @@ -7808,11 +8777,11 @@ packages: get-them-args@1.3.2: resolution: {integrity: sha512-LRn8Jlk+DwZE4GTlDbT3Hikd1wSHgLMme/+7ddlqKd7ldwR6LjJgTVWzBnR01wnYGe4KgrXjg287RaI22UHmAw==} - get-tsconfig@4.10.0: - resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} + 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: @@ -7821,6 +8790,9 @@ 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==} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -7885,8 +8857,8 @@ packages: resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} engines: {node: '>=18'} - globals@16.2.0: - resolution: {integrity: sha512-O+7l9tPdHCU320IigZZPj5zmRCFG9xHmx9cU8FqU2Rp+JN714seHV+2S9+JslCpY4gJwU2vOGox0wzgae/MCEg==} + globals@16.3.0: + resolution: {integrity: sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==} engines: {node: '>=18'} globalthis@1.0.4: @@ -7938,8 +8910,8 @@ packages: handle-thing@2.0.1: resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} - happy-dom@17.6.3: - resolution: {integrity: sha512-UVIHeVhxmxedbWPCfgS55Jg2rDfwf2BCKeylcPSqazLz5w3Kri7Q4xdBJubsr/+VUzFLh0VjIvh13RaDA2/Xug==} + happy-dom@18.0.1: + resolution: {integrity: sha512-qn+rKOW7KWpVTtgIUi6RVmTBZJSe2k0Db0vh1f7CWrWclkkc7/Q+FrOfkZIb2eiErLyqu5AXEzE7XthO9JVxRA==} engines: {node: '>=20.0.0'} harmony-reflect@1.6.2: @@ -7957,6 +8929,10 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} + has-own-prop@2.0.0: + resolution: {integrity: sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==} + engines: {node: '>=8'} + has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} @@ -7983,6 +8959,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 @@ -8010,8 +9028,8 @@ packages: hoist-non-react-statics@2.5.5: resolution: {integrity: sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==} - hookified@1.9.0: - resolution: {integrity: sha512-2yEEGqphImtKIe1NXWEhu6yD3hlFR4Mxk4Mtp3XEyScpSt4pQ4ymmXA1zzxZpj99QkFK+nN0nzjeb2+RUi/6CQ==} + hookified@1.10.0: + resolution: {integrity: sha512-dJw0492Iddsj56U1JsSTm9E/0B/29a1AuoSLRAte8vQg/kaTGF3IgjEWT8c8yG4cC10+HisE1x5QAwR0Xwc+DA==} hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -8042,6 +9060,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==} @@ -8049,8 +9070,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==} @@ -8127,6 +9148,10 @@ packages: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} + human-id@4.1.1: + resolution: {integrity: sha512-3gKm/gCSUipeLsRYZbbdA1BD83lBoWUkZ7G9VFrhWPAU76KwYo5KR8V28bpoPm/ygy0x5/GCbpRQdY7VLYCoIg==} + hasBin: true + humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} @@ -8140,8 +9165,8 @@ packages: i18next-http-backend@3.0.2: resolution: {integrity: sha512-PdlvPnvIp4E1sYi46Ik4tBYh/v/NbYfFFgTjkwFl0is8A18s7/bx9aXqsrOax9WUbeNS6mD2oix7Z0yGGf6m5g==} - i18next@25.2.1: - resolution: {integrity: sha512-+UoXK5wh+VlE1Zy5p6MjcvctHXAhRwQKCxiJD8noKZzIXmnAX8gdHX5fLPA3MEVxEN4vbZkQFy8N0LyD9tUqPw==} + i18next@25.3.2: + resolution: {integrity: sha512-JSnbZDxRVbphc5jiptxr3o2zocy5dEqpVm9qCGdJwRNO+9saUJS0/u4LnM/13C23fUEWxAylPqKU/NpMV/IjqA==} peerDependencies: typescript: ^5 peerDependenciesMeta: @@ -8162,9 +9187,6 @@ packages: peerDependencies: postcss: ^8.1.0 - idb-keyval@6.2.2: - resolution: {integrity: sha512-yjD9nARJ/jb1g+CvD0tlhUHOrJ9Sy0P8T9MF3YaLlHnSRpwPfpTX0XIvpmw3gAJUmEu3FiICLBDPXVwyEvrleg==} - identity-obj-proxy@3.0.0: resolution: {integrity: sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==} engines: {node: '>=4'} @@ -8176,8 +9198,8 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - ignore@7.0.4: - resolution: {integrity: sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==} + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} engines: {node: '>= 4'} image-blob-reduce@3.0.1: @@ -8209,8 +9231,8 @@ packages: immutable@4.3.7: resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} - immutable@5.1.2: - resolution: {integrity: sha512-qHKXW1q6liAk1Oys6umoaZbDRqjcjgSrbnrifHsfsttza7zcvRAsL7mMV6xWcyhwQy7Xj5v4hhbr6b+iDYwlmQ==} + immutable@5.1.3: + resolution: {integrity: sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==} import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} @@ -8481,6 +9503,9 @@ packages: is-reference@1.2.1: resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + is-reference@3.0.3: + resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} + is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -8509,8 +9534,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: @@ -8777,6 +9802,9 @@ packages: jquery@3.7.1: resolution: {integrity: sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==} + js-sha256@0.11.1: + resolution: {integrity: sha512-o6WSo/LUvY2uC4j7mO50a2ms7E/EAdbP0swigLV+nzHKTTaYnaLIWJ02VdXrsJX0vGedDESQnLsOekr94ryfjg==} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -8798,8 +9826,8 @@ packages: jsbn@1.1.0: resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} - jsdoc-type-pratt-parser@4.0.0: - resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} + jsdoc-type-pratt-parser@4.1.0: + resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} engines: {node: '>=12.0.0'} jsdom@16.7.0: @@ -8894,11 +9922,15 @@ packages: keyboardevents-areequal@0.2.2: resolution: {integrity: sha512-Nv+Kr33T0mEjxR500q+I6IWisOQ0lK1GGOncV0kWE6n4KFmpcu7RUX5/2B0EUtX51Cb0HjZ9VJsSY3u4cBa0kw==} + keyux@0.7.2: + resolution: {integrity: sha512-Z8ULf9BhSx1hI2rKG2uNjcvMgQmza97ZW2w43phS5VaT4wiTka7tOL4i/GJSc79k65tbvpoTVNCZwam0pqoH6A==} + engines: {node: ^18.0.0 || >=20.0.0} + keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - keyv@5.3.3: - resolution: {integrity: sha512-Rwu4+nXI9fqcxiEHtbkvoes2X+QfkTRo1TMkPfwzipGsJlJO/z69vqB4FNl9xJ3xCpAcbkvmEabZfPzrwN3+gQ==} + keyv@5.3.4: + resolution: {integrity: sha512-ypEvQvInNpUe+u+w8BIcPkQvEqXquyyibWE/1NB5T2BTzIpS5cGEV1LZskDzPSTvNAaT4+5FutvzlvnkxOSKlw==} khroma@2.1.0: resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==} @@ -8922,12 +9954,16 @@ packages: knockout@3.5.1: resolution: {integrity: sha512-wRJ9I4az0QcsH7A4v4l0enUpkS++MBx0BnL/68KaLzJg7x1qmbjSlwEoCNol7KTYZ+pmtI7Eh2J0Nu6/2Z5J/Q==} - known-css-properties@0.36.0: - resolution: {integrity: sha512-A+9jP+IUmuQsNdsLdcg6Yt7voiMF/D4K83ew0OpJtpu+l34ef7LaohWV0Rc6KNvzw6ZDizkqfyB5JznZnzuKQA==} + known-css-properties@0.37.0: + resolution: {integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==} kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + kysely@0.27.6: + resolution: {integrity: sha512-FIyV/64EkKhJmjgC0g2hygpBv5RNWVPyNCqSAD7eTCv6eFWNIi4PN1UvdSJGicN/o35bnevgis4Y0UDC0qi8jQ==} + engines: {node: '>=14.0.0'} + langium@3.3.1: resolution: {integrity: sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==} engines: {node: '>=16.0.0'} @@ -8964,9 +10000,76 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} + lezer-elixir@1.1.2: + resolution: {integrity: sha512-K3yPMJcNhqCL6ugr5NkgOC1g37rcOM38XZezO9lBXy0LwWFd8zdWXfmRbY829vZVk0OGCQoI02yDWp9FF2OWZA==} + lie@3.3.0: resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + lightningcss-darwin-arm64@1.30.1: + resolution: {integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.30.1: + resolution: {integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.30.1: + resolution: {integrity: sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.30.1: + resolution: {integrity: sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.30.1: + resolution: {integrity: sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-arm64-musl@1.30.1: + resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-x64-gnu@1.30.1: + resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-linux-x64-musl@1.30.1: + resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-win32-arm64-msvc@1.30.1: + resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.30.1: + resolution: {integrity: sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.30.1: + resolution: {integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==} + engines: {node: '>= 12.0.0'} + lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} @@ -8985,8 +10088,8 @@ packages: resolution: {integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - lint-staged@16.1.0: - resolution: {integrity: sha512-HkpQh69XHxgCjObjejBT3s2ILwNjFx8M3nw+tJ/ssBauDlIpkx2RpqWSi1fBgkXLSSXnbR3iEq1NkVtpvV+FLQ==} + lint-staged@16.1.2: + resolution: {integrity: sha512-sQKw2Si2g9KUZNY3XNvRuDq4UJqpHwF0/FQzZR2M7I5MvtpWvibikCjUVJzZdGE0ByurEl3KQNvsGetd1ty1/Q==} engines: {node: '>=20.17'} hasBin: true @@ -9017,6 +10120,9 @@ packages: locate-app@2.5.0: resolution: {integrity: sha512-xIqbzPMBYArJRmPGUZD9CzV9wOqmVtQnaAn3wrj3s6WYW0bQvPI7x+sPYUGmDTYMHefVK//zc6HEYZ1qnxIK+Q==} + locate-character@3.0.0: + resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + locate-path@2.0.0: resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} engines: {node: '>=4'} @@ -9036,6 +10142,9 @@ packages: lodash-es@4.17.21: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + lodash.castarray@4.4.0: + resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} + lodash.clonedeep@4.5.0: resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} @@ -9050,6 +10159,9 @@ packages: resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + lodash.memoize@4.1.2: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} @@ -9097,12 +10209,18 @@ packages: resolution: {integrity: sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==} engines: {node: '>= 0.6.0'} + 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 - loupe@3.1.3: - resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==} + loupe@3.1.4: + resolution: {integrity: sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==} lowercase-keys@2.0.0: resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} @@ -9122,6 +10240,10 @@ packages: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} + luxon@3.6.1: + resolution: {integrity: sha512-tJLxrKJhO2ukZ5z0gyjY1zPh3Rh88Ej9P7jNrZiHMUXHae1yvI2imgOZtL1TO8TW6biMMKfTtAOoEJANgtWBMQ==} + engines: {node: '>=12'} + lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true @@ -9173,14 +10295,17 @@ packages: mark.js@8.11.1: resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} + markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + marked@15.0.12: resolution: {integrity: sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==} engines: {node: '>= 18'} hasBin: true - marked@4.0.12: - resolution: {integrity: sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==} - engines: {node: '>= 12'} + marked@16.0.0: + resolution: {integrity: sha512-MUKMXDjsD/eptB7GPzxo4xcnLS6oo7/RHimUMHEDRhUooPwmN9BEpMl7AEOJv3bmso169wHI2wUF9VQgL7zfmA==} + engines: {node: '>= 20'} hasBin: true matcher@3.0.0: @@ -9194,11 +10319,47 @@ packages: mathml-tag-names@2.1.3: resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} - mdast-util-from-markdown@1.3.1: - resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} + mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} - mdast-util-to-string@3.2.0: - resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} + 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==} @@ -9212,6 +10373,11 @@ packages: mdn-data@2.12.2: resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} + mdsvex@0.12.6: + resolution: {integrity: sha512-pupx2gzWh3hDtm/iDW4WuCpljmyHbHi34r7ktOqpPGvyiM4MyfNgdJ3qMizXdgCErmvYC9Nn/qyjePy+4ss9Wg==} + peerDependencies: + svelte: ^3.56.0 || ^4.0.0 || ^5.0.0-next.120 + media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} @@ -9224,8 +10390,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: @@ -9246,78 +10412,99 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - mermaid@10.9.3: - resolution: {integrity: sha512-V80X1isSEvAewIL3xhmz/rVmc27CVljcsbWxkxlWJWY/1kQa4XOABqpDl2qQLGKzpKm6WbTfUEKImBlUfFYArw==} - - mermaid@11.6.0: - resolution: {integrity: sha512-PE8hGUy1LDlWIHWBP05SFdqUHGmRcCcK4IzpOKPE35eOw+G9zZgcnMpyunJVUEOgb//KBORPjysKndw8bFLuRg==} + mermaid@11.8.1: + resolution: {integrity: sha512-VSXJLqP1Sqw5sGr273mhvpPRhXwE6NlmMSqBZQw+yZJoAJkOIPPn/uT3teeCBx60Fkt5zEI3FrH2eVT0jXRDzw==} methods@1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} - micromark-core-commonmark@1.1.0: - resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==} + micromark-core-commonmark@2.0.3: + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} - micromark-factory-destination@1.1.0: - resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==} + micromark-extension-frontmatter@2.0.0: + resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} - micromark-factory-label@1.1.0: - resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==} + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} - micromark-factory-space@1.1.0: - resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} - micromark-factory-title@1.1.0: - resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==} + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} - micromark-factory-whitespace@1.1.0: - resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==} + micromark-extension-gfm-table@2.1.1: + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} - micromark-util-character@1.2.0: - resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} - micromark-util-chunked@1.1.0: - resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==} + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} - micromark-util-classify-character@1.1.0: - resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==} + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} - micromark-util-combine-extensions@1.1.0: - resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==} + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} - micromark-util-decode-numeric-character-reference@1.1.0: - resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==} + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} - micromark-util-decode-string@1.1.0: - resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==} + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} - micromark-util-encode@1.1.0: - resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==} + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} - micromark-util-html-tag-name@1.2.0: - resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==} + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} - micromark-util-normalize-identifier@1.1.0: - resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==} + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} - micromark-util-resolve-all@1.1.0: - resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==} + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} - micromark-util-sanitize-uri@1.2.0: - resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==} + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} - micromark-util-subtokenize@1.1.0: - resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==} + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} - micromark-util-symbol@1.1.0: - resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} - micromark-util-types@1.1.0: - resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} - micromark@3.2.0: - resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} + 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==} @@ -9370,8 +10557,8 @@ packages: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} - mind-elixir@4.6.0: - resolution: {integrity: sha512-svl/YkKaIR8vsKhdgA0YRmGCWlVUgyYfUrDIFfnmL599CJDkw5f1gygwbQN8uDyRIRXNl8LZLUqEZmwmxXAPsg==} + mind-elixir@5.0.2: + resolution: {integrity: sha512-ucSTSAT5y5bqDjf1dhlPCpPNQ1WBaaN2edvp2mFTmQgSWdusoRJIvZrnqNcoYAV3MZ6o/WtCfbG3hCbH6DrOgA==} mini-css-extract-plugin@2.4.7: resolution: {integrity: sha512-euWmddf0sk9Nv1O0gfeeUAvAkoSlWncNLF77C0TP2+WoPvy8mAHKOzMajcCz2dzvyt3CNgxb1obIEVFIRxaipg==} @@ -9379,6 +10566,12 @@ 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==} @@ -9458,6 +10651,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==} @@ -9605,6 +10801,10 @@ packages: nice-try@1.0.5: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + node-abi@3.75.0: + resolution: {integrity: sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==} + engines: {node: '>=10'} + node-abi@4.9.0: resolution: {integrity: sha512-0isb3h+AXUblx5Iv0mnYy2WsErH+dk2e9iXJXdKAtS076Q5hP+scQhp6P4tvDeVlOBlG3ROKvkpQHtbORllq2A==} engines: {node: '>=22.12.0'} @@ -9663,9 +10863,6 @@ packages: node-releases@2.0.19: resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} - non-layered-tidy-tree-layout@2.0.2: - resolution: {integrity: sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==} - nopt@5.0.0: resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} engines: {node: '>=6'} @@ -9721,8 +10918,8 @@ packages: nwsapi@2.2.20: resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==} - nx@21.1.3: - resolution: {integrity: sha512-GZ7+Bve4xOVIk/hb9nN16fVqVq5PNNyFom1SCQbEGhGkyABJF8kA4JImCKhZpZyg1CtZeUrkPHK4xNO+rw9G5w==} + nx@21.2.3: + resolution: {integrity: sha512-2wL/2fSmIbRWn6zXaQ/g3kj5DfEaTw/aJkPr6ozJh8BUq5iYKE+tS9oh0PjsVVwN6Pybe80Lu+mn9RgWyeV3xw==} hasBin: true peerDependencies: '@swc-node/register': ^1.8.0 @@ -9803,16 +11000,16 @@ packages: open-color@1.9.1: resolution: {integrity: sha512-vCseG/EQ6/RcvxhUcGJiHViOgrtz4x0XbZepXvKik66TMGkvbmjeJrKFyBEx6daG5rNyyd14zYXhz0hZVwQFOw==} - open@10.1.1: - resolution: {integrity: sha512-zy1wx4+P3PfhXSEPJNtZmJXfhkkIaxU1VauWIrDZw1O7uJRDRJtKr9n3Ic4NgbA16KyOxOXO2ng9gYwCdXuSXA==} + open@10.1.2: + resolution: {integrity: sha512-cxN6aIDPz6rm8hbebcP7vrQNhvRcveZoJU72Y7vskh4oIm+BZwBECnx5nTmrlres1Qapvx27Qo1Auukpf8PKXw==} engines: {node: '>=18'} open@8.4.2: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} - openai@5.2.0: - resolution: {integrity: sha512-b+Sf2Yk2eApDkhqHr7C4d5hux9gkHUvyqQ7RrdSfLsjrXkCZpJPqkME0u5Py7RPB28Ozz+RkJZpW7YPTOoChew==} + openai@5.9.0: + resolution: {integrity: sha512-cmLC0pfqLLhBGxE4aZPyRPjydgYCncppV2ClQkKmW79hNjCvmzkfhz8rN5/YVDmjVQlFV+UsF1JIuNjNgeagyQ==} hasBin: true peerDependencies: ws: ^8.18.0 @@ -9826,10 +11023,6 @@ packages: openapi-types@12.1.3: resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} - opencollective-postinstall@2.0.3: - resolution: {integrity: sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==} - hasBin: true - opener@1.5.2: resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} hasBin: true @@ -10074,8 +11267,8 @@ packages: pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - pathval@2.0.0: - resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + pathval@2.0.1: + resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} engines: {node: '>= 14.16'} pe-library@1.0.1: @@ -10141,13 +11334,13 @@ packages: pkg-types@2.1.0: resolution: {integrity: sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==} - playwright-core@1.52.0: - resolution: {integrity: sha512-l2osTgLXSMeuLZOML9qYODUQoPPnUsKsb5/P6LJ2e6uPKXUdPK5WYhN4z03G+YNbWmGDY4YENauNu4ZKczreHg==} + playwright-core@1.54.1: + resolution: {integrity: sha512-Nbjs2zjj0htNhzgiy5wu+3w09YetDx5pkrpI/kZotDlDUaYk0HVA5xrBVPdow4SAUIlhgKcJeJg4GRKW6xHusA==} engines: {node: '>=18'} hasBin: true - playwright@1.52.0: - resolution: {integrity: sha512-JAwMNMBlxJ2oD1kce4KPtMkDeKGHQstdpFPcPH3maElAXon/QZeTvtsfXmTMRyO9TslfoYOXkSsvao2nE1ilTw==} + playwright@1.54.1: + resolution: {integrity: sha512-peWpSwIBmSLi6aW2auvrUtf2DqY16YYcCMO8rTVx486jKmDTJg7UAhyrraP98GB8BoPURZP8+nxO7TSd4cPr5g==} engines: {node: '>=18'} hasBin: true @@ -10233,6 +11426,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-colormin@7.0.3: + resolution: {integrity: sha512-xZxQcSyIVZbSsl1vjoqZAcMYYdnJsIyG8OvqShuuqf12S88qQboxxEy0ohNCOLwVPXTU+hFHvJPACRL2B5ohTA==} + 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} @@ -10251,6 +11450,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-convert-values@7.0.5: + resolution: {integrity: sha512-0VFhH8nElpIs3uXKnVtotDJJNX0OGYSZmdt4XfSfvOMrFw1jKfpwpZxfC4iN73CTM/MWakDEmsHQXkISYj4BXw==} + 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} @@ -10269,6 +11474,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} @@ -10287,6 +11498,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} @@ -10305,6 +11522,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} @@ -10323,14 +11546,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 @@ -10341,6 +11570,18 @@ packages: peerDependencies: postcss: ^8.4.21 + postcss-load-config@3.1.4: + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + postcss-loader@4.3.0: resolution: {integrity: sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q==} engines: {node: '>= 10.13.0'} @@ -10379,6 +11620,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} @@ -10397,6 +11644,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-merge-rules@7.0.5: + resolution: {integrity: sha512-ZonhuSwEaWA3+xYbOdJoEReKIBs5eDiBVLAGpYZpNFPzXZcEE5VKR7/qBEQvTZpiwjqhhqEQ+ax5O3VShBj9Wg==} + 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} @@ -10415,6 +11668,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} @@ -10433,6 +11692,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} @@ -10451,6 +11716,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-minify-params@7.0.3: + resolution: {integrity: sha512-vUKV2+f5mtjewYieanLX0xemxIp1t0W0H/D11u+kQV/MWdygOO7xPMkbK+r9P6Lhms8MgzKARF/g5OPXhb8tgg==} + 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} @@ -10469,6 +11740,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} @@ -10511,6 +11788,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} @@ -10529,6 +11812,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} @@ -10547,6 +11836,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} @@ -10565,6 +11860,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} @@ -10583,6 +11884,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} @@ -10601,6 +11908,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} @@ -10619,6 +11932,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} @@ -10637,6 +11956,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-normalize-unicode@7.0.3: + resolution: {integrity: sha512-EcoA29LvG3F+EpOh03iqu+tJY3uYYKzArqKJHxDhUYLa2u58aqGq16K6/AOsXD9yqLN8O6y9mmePKN5cx6krOw==} + 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} @@ -10655,6 +11980,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} @@ -10673,6 +12004,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} @@ -10691,6 +12028,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} @@ -10709,6 +12052,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-reduce-initial@7.0.3: + resolution: {integrity: sha512-RFvkZaqiWtGMlVjlUHpaxGqEL27lgt+Q2Ixjf83CRAzqdo+TsDyGPtJUbPx2MuYIJ+sCQc2TrOvRnhcXQfgIVA==} + 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} @@ -10727,6 +12076,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==} @@ -10736,6 +12091,16 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-scss@4.0.9: + resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.4.29 + + postcss-selector-parser@6.0.10: + resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} + engines: {node: '>=4'} + postcss-selector-parser@6.1.2: resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} @@ -10768,6 +12133,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-svgo@7.0.2: + resolution: {integrity: sha512-5Dzy66JlnRM6pkdOTF8+cGsB1fnERTE8Nc+Eed++fOWo1hdsBptCsbG8UuJkgtZt75bRtMJIrPeZmtfANixdFA==} + 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} @@ -10786,6 +12157,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==} @@ -10793,16 +12170,17 @@ packages: resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} + postject@1.0.0-alpha.6: resolution: {integrity: sha512-b9Eb8h2eVqNE8edvKdwqkrY6O7kAwmI8kcnBv1NScolYJbo59XUF0noFq+lxbC1yN20bmC0WBEbDC5H/7ASb0A==} engines: {node: '>=14.0.0'} hasBin: true - preact@10.12.1: - resolution: {integrity: sha512-l8386ixSsBdbreOAkqtrwqHwdvR35ID8c3rKPa8lCWuO86dBi32QWHV4vfsZK1utLLFMvw+Z5Ad4XLkZzchscg==} - - preact@10.26.5: - resolution: {integrity: sha512-fmpDkgfGU6JYux9teDWLhj9mKN55tyepwYbxHgQuIxbWQzgFg5vk7Mrrtfx7xRxq798ynkY4DDDxZr235Kk+4w==} + preact@10.26.9: + resolution: {integrity: sha512-SSjF9vcnF27mJK1XyFMNJzFd5u3pQiATFqoaDy03XuN00u4ziveVVEGt5RKJrDR8MHE/wJo9Nnad56RLzS2RMA==} prebuild-install@7.1.3: resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} @@ -10821,6 +12199,13 @@ packages: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + prism-svelte@0.4.7: + resolution: {integrity: sha512-yABh19CYbM24V7aS7TuPYRNMqthxwbvx6FF/Rw920YbyBWO3tnyPIqRMgHuSVsLmuHkkBS1Akyof463FVdkeDQ==} + + prismjs@1.30.0: + resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} + engines: {node: '>=6'} + proc-log@2.0.1: resolution: {integrity: sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -10859,6 +12244,13 @@ 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'} + proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} @@ -10879,6 +12271,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'} @@ -11036,10 +12431,6 @@ packages: resolution: {integrity: sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==} engines: {node: '>=0.10.0'} - react@19.1.0: - resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} - engines: {node: '>=0.10.0'} - read-binary-file-arch@1.0.6: resolution: {integrity: sha512-BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg==} hasBin: true @@ -11104,9 +12495,6 @@ packages: regenerate@1.4.2: resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - regenerator-runtime@0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} @@ -11125,6 +12513,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'} @@ -11230,12 +12645,12 @@ packages: robust-predicates@3.0.2: resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} - rollup-plugin-stats@1.3.9: - resolution: {integrity: sha512-rpz+EIdA9rQfkK/RiiMde0H8r/yCU4ilQJVZNFO6o1pU1H+pTMhu5Nlkm4+7J95+J98n0T5gxQPwyi/sxCRQXw==} + rollup-plugin-stats@1.4.0: + resolution: {integrity: sha512-qbwuMysGHqNrW0XBO3dU8qM7SdVYmMuaABp6SG1wFDClFVdUo8Umtk/LIDFCocNxDf6Tvtu7tXF/FsMy8NZCew==} engines: {node: '>=18'} peerDependencies: rollup: ^3.0.0 || ^4.0.0 - vite: ^5.0.0 || ^6.0.0 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 peerDependenciesMeta: rollup: optional: true @@ -11254,12 +12669,12 @@ packages: peerDependencies: rollup: ^3.0.0||^4.0.0 - rollup-plugin-webpack-stats@2.0.7: - resolution: {integrity: sha512-aAd/4GrnsDuwFIlPJpIJ/wcu6msiza5lNZIrfWXmskwLSEx9GhJlKFYU3HHgl5XHLgdF45ajCrV8X0k3EV4ztw==} + rollup-plugin-webpack-stats@2.1.0: + resolution: {integrity: sha512-7cxCelMRPkqZvjQa4NuHSkdJ6nshLDuDYyPAky8YOjcaz+qEocg0DRcJoSd4r2mKSupz0uZpoav5vqpDm7bSxg==} engines: {node: '>=18'} peerDependencies: rollup: ^3.0.0 || ^4.0.0 - vite: ^5.0.0 || ^6.0.0 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 peerDependenciesMeta: rollup: optional: true @@ -11271,8 +12686,10 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - roughjs@4.6.4: - resolution: {integrity: sha512-s6EZ0BntezkFYMf/9mGn7M8XGIoaav9QQBCnJROWB3brUWQ683Q2LbRD/hq0Z3bAJ/9NVpU/5LpiTWvQMyLDhw==} + rollup@4.44.2: + resolution: {integrity: sha512-PVoapzTwSEcelaWGth3uR66u7ZRo6qhPHc0f2uRO9fX6XDVNrIiGYS0Pj9+R8yIIYSD/mCx2b16Ws9itljKSPg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true roughjs@4.6.6: resolution: {integrity: sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==} @@ -11309,9 +12726,6 @@ packages: resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} - safe-buffer@5.1.1: - resolution: {integrity: sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==} - safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} @@ -11559,8 +12973,8 @@ packages: serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - serve-favicon@2.5.0: - resolution: {integrity: sha512-FMW2RvqNr03x+C0WxTyu6sOv21oOjkq5j8tjquWccwa6ScNyGFOGJVpuS1NmTVGBAHS07xnSKotgf2ehQmf9iA==} + serve-favicon@2.5.1: + resolution: {integrity: sha512-JndLBslCLA/ebr7rS3d+/EKkzTsTi1jI2T9l+vHfAaGJ7A7NhtDpSZ0lx81HCNWnnE0yHncG+SSnVf9IMxOwXQ==} engines: {node: '>= 0.8.0'} serve-index@1.9.1: @@ -11578,6 +12992,9 @@ packages: set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + set-cookie-parser@2.7.1: + resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==} + set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -11618,8 +13035,8 @@ 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.8.5: @@ -11696,6 +13113,14 @@ packages: smob@1.5.0: resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} + socket.io-client@4.7.0: + resolution: {integrity: sha512-7Q8CeDrhuZzg4QLXl3tXlk5yb086oxYzehAVZRLiGCzCmtDneiHz1qHyyWcxhTgxXiokVpWQXoG/u60HoXSQew==} + engines: {node: '>=10.0.0'} + + socket.io-parser@4.2.4: + resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} + engines: {node: '>=10.0.0'} + sockjs@0.3.24: resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} @@ -11715,6 +13140,14 @@ packages: resolution: {integrity: sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + socks@2.8.5: + 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'} @@ -11747,6 +13180,9 @@ packages: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + spacetrim@0.11.59: resolution: {integrity: sha512-lLYsktklSRKprreOm7NXReW8YiX2VBjbgmXYEziOoGf/qsJqAEACaDvoTtUOycwjpaSh+bT8eu0KrJn7UNxiCg==} @@ -11769,6 +13205,10 @@ packages: resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} engines: {node: '>=6.0.0'} + specificity@0.4.1: + resolution: {integrity: sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==} + hasBin: true + split-on-first@1.1.0: resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} engines: {node: '>=6'} @@ -11786,6 +13226,11 @@ packages: sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + sqlite-wasm-kysely@0.3.0: + resolution: {integrity: sha512-TzjBNv7KwRw6E3pdKdlRyZiTmUIE0UttT/Sl56MVwVARl/u5gp978KepazCJZewFUnlWHz9i3NQd4kOtP/Afdg==} + peerDependencies: + kysely: '*' + sqlite3@5.1.7: resolution: {integrity: sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==} @@ -11849,6 +13294,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==} @@ -11902,6 +13350,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'} @@ -11978,6 +13429,9 @@ packages: style-mod@4.1.2: resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==} + style-search@0.1.0: + resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} + stylehacks@5.1.1: resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} engines: {node: ^10 || ^12 || >=14.0} @@ -11996,28 +13450,40 @@ packages: peerDependencies: postcss: ^8.4.31 - stylelint-config-ckeditor5@10.0.0: - resolution: {integrity: sha512-0kCrtIx4uvuv5iUR4/OcOqj4m4Rnfqzw7vnvfwoVYLiv3MZA59ZTIY82g+fcMPNEKvPixkIc82YAlKuHTZRTmQ==} + stylehacks@7.0.5: + resolution: {integrity: sha512-5kNb7V37BNf0Q3w+1pxfa+oiNPS++/b4Jil9e/kPDgrk1zjEd6uR7SZeJiYaLYH6RRSC1XX2/37OTeU/4FvuIA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - stylelint: '>=13.5.0' + postcss: ^8.4.32 + + stylelint-config-ckeditor5@12.0.0: + resolution: {integrity: sha512-PviRRAUJ2JpKhAO4UYw6dykAFpy/DHb58wRKDDwoVf9l/mup7l1Q3AFFVQO8zYVHxVlhQXqcWrAfYCPMhX3JjQ==} + peerDependencies: + stylelint: '>=16.0.0' stylelint-config-ckeditor5@2.0.1: resolution: {integrity: sha512-EyDzmwkn2pT5j/hIruvKef4IFNYXKPmWrVlwK2QV2HN1Hyo3z6kxdT+z59TRyUniDeB3HoODBAu29ZchuTnB8Q==} peerDependencies: stylelint: '>=13.5.0' + stylelint-config-recommended@16.0.0: + resolution: {integrity: sha512-4RSmPjQegF34wNcK1e1O3Uz91HN8P1aFdFzio90wNK9mjgAI19u5vsU868cVZboKzCaa5XbpvtTzAAGQAxpcXA==} + engines: {node: '>=18.12.0'} + peerDependencies: + stylelint: ^16.16.0 + stylelint-config-recommended@3.0.0: resolution: {integrity: sha512-F6yTRuc06xr1h5Qw/ykb2LuFynJ2IxkKfCMf+1xqPffkxh0S09Zc902XCffcsw/XMFq/OzQ1w54fLIDtmRNHnQ==} peerDependencies: stylelint: '>=10.1.0' - stylelint-plugin-ckeditor5-rules@10.0.0: - resolution: {integrity: sha512-glHrq6s6fIzX8Te3d3l42oFfgGh7KX8az/0ipLow7pJ4kx5+HYgQRwU4OCBK9RScXSDdOjCsEDpFJ56chAUQ5Q==} + stylelint-plugin-ckeditor5-rules@12.0.0: + resolution: {integrity: sha512-DDs3+MKDh4SUO63AObc3jY9NJpTrAgtbLDpgiirxh49ib40OrlzAHZxy6quJeoPxmkS/ZFU7ocVBrycFGTGRfw==} peerDependencies: - stylelint: '>=13.5.0' + stylelint: '>=16.0.0' - stylelint@16.20.0: - resolution: {integrity: sha512-B5Myu9WRxrgKuLs3YyUXLP2H0mrbejwNxPmyADlACWwFsrL8Bmor/nTSh4OMae5sHjOz6gkSeccQH34gM4/nAw==} + stylelint@16.21.1: + resolution: {integrity: sha512-WCXdXnYK2tpCbebgMF0Bme3YZH/Rh/UXerj75twYo4uLULlcrLwFVdZTvTEF8idFnAcW21YUDJFyKOfaf6xJRw==} engines: {node: '>=18.12.0'} hasBin: true @@ -12043,13 +13509,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.2: + resolution: {integrity: sha512-vWMq11OwWCC84pQaFPzF/VO3BrjkCeewuvJgt1jfV0499Z1QSAWN4EqfMM5WlFDDX9/oP8JjlDKpblrmEoyu4Q==} engines: {node: '>=14.18.0'} + deprecated: Please upgrade to superagent v10.2.2+, see release notes at https://github.com/forwardemail/superagent/releases/tag/v10.2.2 - maintenance is supported by Forward Email @ https://forwardemail.net - supertest@7.1.1: - resolution: {integrity: sha512-aI59HBTlG9e2wTjxGJV+DygfNLgnWbGdZxiA/sgrnNNikIW8lbDvCtF6RnhZoJ82nU7qv7ZLjrvWqCEm52fAmw==} + supertest@7.1.3: + resolution: {integrity: sha512-ORY0gPa6ojmg/C74P/bDoS21WL6FMXq5I8mawkEz30/zkwdu0gOeqstFy316vHG6OKxqQ+IbGneRemHI8WraEw==} engines: {node: '>=14.18.0'} + deprecated: Please upgrade to supertest v7.1.3+, see release notes at https://github.com/forwardemail/supertest/releases/tag/v7.1.3 - maintenance is supported by Forward Email @ https://forwardemail.net supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} @@ -12075,6 +13543,27 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + svelte-check@4.2.2: + resolution: {integrity: sha512-1+31EOYZ7NKN0YDMKusav2hhEoA51GD9Ws6o//0SphMT0ve9mBTsTUEX7OmDMadUP3KjNHsSKtJrqdSaD8CrGQ==} + 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==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + svelte: + optional: true + + svelte@5.35.6: + resolution: {integrity: sha512-p7PVLQYrvCxJuxzGfOv/l71hVuHC6EZk5UDjbt/bndMYaBcUV5sFjDsj+PSIYvz1vcfbG6inX83/xIUeik1xGA==} + engines: {node: '>=18'} + svg-pan-zoom@3.6.2: resolution: {integrity: sha512-JwnvRWfVKw/Xzfe6jriFyfey/lWJLq4bUh2jwoR5ChWQuQoOH8FEh1l/bEp46iHHKHEJWIyFJETbazraxNWECg==} @@ -12124,8 +13613,14 @@ packages: resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==} engines: {node: '>=10.0.0'} - tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + tabulator-tables@6.3.1: + resolution: {integrity: sha512-qFW7kfadtcaISQIibKAIy0f3eeIXUVi8242Vly1iJfMD79kfEGzfczNuPBN/80hDxHzQJXYbmJ8VipI40hQtfA==} + + tailwindcss@4.1.11: + resolution: {integrity: sha512-2E9TBm6MDD/xKYe+dvJZAmg3yxIEDNRc0jwlNyDg/4Fil2QcSLjFKGVff0lAf1jjeaArlG/M75Ey/EYr/OJtBA==} + + tapable@2.2.2: + resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} engines: {node: '>=6'} tape@4.17.0: @@ -12135,8 +13630,8 @@ packages: 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==} @@ -12187,11 +13682,10 @@ packages: engines: {node: '>=10'} hasBin: true - tesseract.js-core@6.0.0: - resolution: {integrity: sha512-1Qncm/9oKM7xgrQXZXNB+NRh19qiXGhxlrR8EwFbK5SaUbPZnS5OMtP/ghtqfd23hsr1ZvZbZjeuAGcMxd/ooA==} - - tesseract.js@6.0.1: - resolution: {integrity: sha512-/sPvMvrCtgxnNRCjbTYbr7BRu0yfWDsMZQ2a/T5aN/L1t8wUQN6tTWv6p6FwzpoEBA0jrN2UD2SX4QQFRdoDbA==} + 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==} @@ -12204,9 +13698,6 @@ packages: text-decoder@1.2.3: resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - thingies@1.21.0: resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} engines: {node: '>=10.18'} @@ -12251,8 +13742,8 @@ packages: resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} engines: {node: '>=12.0.0'} - tinypool@1.1.0: - resolution: {integrity: sha512-7CotroY9a8DKsKprEy/a14aCCm8jYVmR7aFy4fpkZM8sdpNJbKkixuNjgM50yCmip2ezc8z4N7k3oe2+rfRJCQ==} + tinypool@1.1.1: + resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} engines: {node: ^18.0.0 || >=20.0.0} tinyrainbow@2.0.0: @@ -12326,8 +13817,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' @@ -12336,19 +13827,22 @@ 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==} - ts-api-utils@1.4.3: - resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' - ts-api-utils@2.1.0: resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} engines: {node: '>=18.12'} @@ -12387,8 +13881,8 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsx@4.19.4: - resolution: {integrity: sha512-gK5GVzDkJK1SI1zwHf32Mqxf2tSJkNx+eYcNly5+nHvWqXUJYUkWBQtKauoESz3ymezAI++ZwT855x5p5eop+Q==} + tsx@4.20.3: + resolution: {integrity: sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ==} engines: {node: '>=18.0.0'} hasBin: true @@ -12401,9 +13895,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==} @@ -12470,8 +13961,8 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typescript-eslint@8.34.0: - resolution: {integrity: sha512-MRpfN7uYjTrTGigFCt8sRyNqJFhjN0WwZecldaqhWm+wy0gaRt8Edb/3cuUy0zdq2opJWT6iXINKAtewnDOltQ==} + typescript-eslint@8.36.0: + resolution: {integrity: sha512-fTCqxthY+h9QbEgSIBfL9iV6CvKDFuoxg6bHPNpJ9HIUzS+jy2lCEyCmGyZRWEBSaykqcDPf1SJ+BfCI8DRopA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -12482,11 +13973,6 @@ packages: engines: {node: '>=12.20'} hasBin: true - typescript@5.7.3: - resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} - engines: {node: '>=14.17'} - hasBin: true - typescript@5.8.2: resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} engines: {node: '>=14.17'} @@ -12518,6 +14004,9 @@ 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'} @@ -12549,6 +14038,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'} @@ -12575,8 +14067,35 @@ packages: resolution: {integrity: sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg==} engines: {node: ^18.17.0 || >=20.5.0} - unist-util-stringify-position@3.0.3: - resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} + 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==} @@ -12598,6 +14117,10 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} + unplugin@2.3.5: + resolution: {integrity: sha512-RyWSb5AHmGtjjNQ6gIlA67sHOsWpsbWpwDokLwTcejVdOjEkJZh7QKu14J00gDDVSh8kGH4KYC/TNBceXFZhtw==} + engines: {node: '>=18.12.0'} + unused-filename@4.0.1: resolution: {integrity: sha512-ZX6U1J04K1FoSUeoX1OicAhw4d0aro2qo+L8RhJkiGTNtBNkd/Fi1Wxoc9HzcVu6HfOzm0si/N15JjxFmD1z6A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -12621,8 +14144,8 @@ 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==} use-callback-ref@1.3.3: resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} @@ -12674,6 +14197,10 @@ packages: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} + uuid@10.0.0: + resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + hasBin: true + uuid@11.1.0: resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} hasBin: true @@ -12686,11 +14213,6 @@ packages: resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true - uvu@0.5.6: - resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} - engines: {node: '>=8'} - hasBin: true - v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} @@ -12705,6 +14227,10 @@ 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==} + engines: {node: ^18.17.0 || >=20.5.0} + validator@13.15.0: resolution: {integrity: sha512-36B2ryl4+oL5QxZ3AzD0t5SsMNGvTtQHpjgFO5tbNxfXbMFkY822ktCDe1MnlqV3301QQI9SLHDNJokDI+Z9pA==} engines: {node: '>= 0.10'} @@ -12725,13 +14251,17 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - vite-node@3.2.0: - resolution: {integrity: sha512-8Fc5Ko5Y4URIJkmMF/iFP1C0/OJyY+VGVe9Nw6WAdZyw4bTO+eVg9mwxWkQp/y8NnAoQY3o9KAvE1ZdA2v+Vmg==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true + vfile-message@2.0.4: + resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==} - vite-node@3.2.3: - resolution: {integrity: sha512-gc8aAifGuDIpZHrPjuHyP4dpQmYXqWw7D1GmDnWeNWP654UEXzVfQ5IHPSK5HaHkwB/+p1atpYpSdw/2kOv8iQ==} + 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} hasBin: true @@ -12744,11 +14274,11 @@ packages: vite: optional: true - vite-plugin-static-copy@3.0.0: - resolution: {integrity: sha512-Uki9pPUQ4ZnoMEdIFabvoh9h6Bh9Q1m3iF7BrZvoiF30reREpJh2gZb4jOnW1/uYFzyRiLCmFSkM+8hwiq1vWQ==} + 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 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 vite-plugin-svgo@2.0.0: resolution: {integrity: sha512-WaiOUlmt1fKw1w/WWJnx9gVk42D1BASKZmGCPpy6iTLE5iIemN2lim3MwI7Rffyt3aQnPrLfLSLnI8ZUJ9s49g==} @@ -12756,19 +14286,19 @@ packages: typescript: '>=4.9.4' vite: '>=4.0.2' - vite@6.3.5: - resolution: {integrity: sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + vite@7.0.0: + resolution: {integrity: sha512-ixXJB1YRgDIw2OszKQS9WxGHKwLdCsbQNkpJN171udl6szi/rIySHL6/Os3s2+oE4P/FLD4dxg4mD7Wust+u5g==} + engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + '@types/node': ^20.19.0 || >=22.12.0 jiti: '>=1.21.0' - less: '*' + less: ^4.0.0 lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 terser: ^5.16.0 tsx: ^4.8.1 yaml: ^2.4.2 @@ -12796,44 +14326,64 @@ packages: yaml: optional: true - vitest@3.2.0: - resolution: {integrity: sha512-P7Nvwuli8WBNmeMHHek7PnGW4oAZl9za1fddfRVidZar8wDZRi7hpznLKQePQ8JPLwSBEYDK11g+++j7uFJV8Q==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + vite@7.0.4: + resolution: {integrity: sha512-SkaSguuS7nnmV7mfJ8l81JGBFV7Gvzp8IzgE8A8t23+AxuNX61Q5H1Tpz5efduSN7NHC8nQXD3sKQKZAu5mNEA==} + engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: - '@edge-runtime/vm': '*' - '@types/debug': ^4.1.12 - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - '@vitest/browser': 3.2.0 - '@vitest/ui': 3.2.0 - happy-dom: '*' - jsdom: '*' + '@types/node': ^20.19.0 || >=22.12.0 + jiti: '>=1.21.0' + less: ^4.0.0 + lightningcss: ^1.21.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/debug': - optional: true '@types/node': optional: true - '@vitest/browser': + jiti: optional: true - '@vitest/ui': + less: optional: true - happy-dom: + lightningcss: optional: true - jsdom: + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: optional: true - vitest@3.2.3: - resolution: {integrity: sha512-E6U2ZFXe3N/t4f5BwUaVCKRLHqUpk1CBWeMh78UT4VaTPH/2dyvH6ALl29JTovEPu9dVKr/K/J4PkXgrMbw4Ww==} + vitefu@1.1.1: + resolution: {integrity: sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0 + peerDependenciesMeta: + vite: + optional: true + + vitest@3.2.4: + resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/debug': ^4.1.12 '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - '@vitest/browser': 3.2.3 - '@vitest/ui': 3.2.3 + '@vitest/browser': 3.2.4 + '@vitest/ui': 3.2.4 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -12901,11 +14451,8 @@ packages: warning@4.0.3: resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} - wasm-feature-detect@1.8.0: - resolution: {integrity: sha512-zksaLKM2fVlnB5jQQDqKXXwYHLQUVH9es+5TOOHwGOVJOCeRBCiPjwSg+3tN2AdTCzjgli4jijCH290kXb/zWQ==} - - 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: @@ -12914,19 +14461,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'} - web-worker@1.5.0: - resolution: {integrity: sha512-RiMReJrTAiA+mBjGONMnjVDP2u3p9R1vkcGz6gDIrOMT3oGuYwX2WRMYI9ipkphSuE5XKEhydbhNEJh4NY9mlw==} - - webdriver@9.15.0: - resolution: {integrity: sha512-JCW5xvhZtL6kjbckdePgVYMOlvWbh22F1VFkIf9pw3prwXI2EHED5Eq/nfDnNfHiqr0AfFKWmIDPziSafrVv4Q==} + webdriver@9.17.0: + resolution: {integrity: sha512-vDdW5SeAe1Fn2N79cdrRIHnbTcXlpIM1f0Ki8AHGsC0DkvYRyshnuI6kgySXN8y4+Thy/xo+vDdr0CLJF2Zqgw==} engines: {node: '>=18.20.0'} - webdriverio@9.15.0: - resolution: {integrity: sha512-910g6ktwXdAKGyhgCPGw9BzIKOEBBYMFN1bLwC3bW/3mFlxGHO/n70c7Sg9hrsu9VWTzv6m+1Clf27B9uz4a/Q==} + webdriverio@9.17.0: + resolution: {integrity: sha512-LXLDhEUQC3AiYAPWZmpkZXBLaLzXlEGQskpG0CLx6S5hXAWNHs5wItgozrH9CfG7N6j26mc2avWN2ruy/vwrWQ==} engines: {node: '>=18.20.0'} peerDependencies: puppeteer-core: '>=22.x || <=24.x' @@ -12958,8 +14505,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: @@ -12978,10 +14525,13 @@ 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==} engines: {node: '>=10.13.0'} @@ -13136,8 +14686,20 @@ packages: utf-8-validate: optional: true - ws@8.18.2: - resolution: {integrity: sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==} + ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -13177,6 +14739,10 @@ packages: xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + xmlhttprequest-ssl@2.0.0: + resolution: {integrity: sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==} + engines: {node: '>=0.4.0'} + xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} @@ -13273,13 +14839,13 @@ packages: engines: {node: '>=8.0.0'} hasBin: true + zimmerframe@1.1.2: + resolution: {integrity: sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==} + zip-stream@6.0.1: resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} engines: {node: '>= 14'} - zlibjs@0.3.1: - resolution: {integrity: sha512-+J9RrgTKOmlxFSDHo0pI1xM6BLVUv+o0ZT9ANtCxGkjIVCCUdx9alUF8Gm+dGLKbkkkidWIHFDZHDMpfITt4+w==} - zod@3.24.4: resolution: {integrity: sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==} @@ -13298,6 +14864,9 @@ packages: react: optional: true + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + snapshots: '@adobe/css-tools@4.3.3': @@ -13315,7 +14884,7 @@ snapshots: '@antfu/utils@8.1.1': {} - '@anthropic-ai/sdk@0.53.0': {} + '@anthropic-ai/sdk@0.56.0': {} '@apidevtools/json-schema-ref-parser@9.1.2': dependencies: @@ -13340,32 +14909,416 @@ snapshots: '@asamuzakjp/css-color@3.1.4': dependencies: - '@csstools/css-calc': 2.1.3(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-color-parser': 3.0.9(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 + '@csstools/css-calc': 2.1.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-color-parser': 3.0.9(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 lru-cache: 10.4.3 + '@aws-crypto/crc32@5.2.0': + dependencies: + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.821.0 + tslib: 2.8.1 + + '@aws-crypto/sha256-browser@5.2.0': + dependencies: + '@aws-crypto/sha256-js': 5.2.0 + '@aws-crypto/supports-web-crypto': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.821.0 + '@aws-sdk/util-locate-window': 3.804.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 + + '@aws-crypto/sha256-js@5.2.0': + dependencies: + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.821.0 + tslib: 2.8.1 + + '@aws-crypto/supports-web-crypto@5.2.0': + dependencies: + tslib: 2.8.1 + + '@aws-crypto/util@5.2.0': + dependencies: + '@aws-sdk/types': 3.821.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 + + '@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/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/core@3.823.0': + dependencies: + '@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.823.0': + dependencies: + '@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.823.0': + dependencies: + '@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.823.0': + dependencies: + '@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-crt + + '@aws-sdk/credential-provider-node@3.823.0': + dependencies: + '@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-crt + + '@aws-sdk/credential-provider-process@3.823.0': + dependencies: + '@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.823.0': + dependencies: + '@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-crt + + '@aws-sdk/credential-provider-web-identity@3.823.0': + dependencies: + '@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-eventstream@3.821.0': + dependencies: + '@aws-sdk/types': 3.821.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@aws-sdk/middleware-host-header@3.821.0': + dependencies: + '@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.821.0': + dependencies: + '@aws-sdk/types': 3.821.0 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@aws-sdk/middleware-recursion-detection@3.821.0': + dependencies: + '@aws-sdk/types': 3.821.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@aws-sdk/middleware-user-agent@3.823.0': + dependencies: + '@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/nested-clients@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/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/token-providers@3.823.0': + dependencies: + '@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.821.0': + dependencies: + '@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.821.0': + dependencies: + '@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.823.0': + dependencies: + '@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': dependencies: '@babel/helper-validator-identifier': 7.27.1 js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.26.8': {} + '@babel/code-frame@7.27.1': + dependencies: + '@babel/helper-validator-identifier': 7.27.1 + js-tokens: 4.0.0 + picocolors: 1.1.1 - '@babel/core@7.26.10': + '@babel/compat-data@7.28.0': {} + + '@babel/core@7.28.0': 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 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.0 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) + '@babel/helpers': 7.27.6 + '@babel/parser': 7.28.0 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.0 convert-source-map: 2.0.0 debug: 4.4.1(supports-color@6.0.0) gensync: 1.0.0-beta.2 @@ -13376,48 +15329,56 @@ 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.0 '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.29 + jsesc: 3.1.0 + + '@babel/generator@7.28.0': + dependencies: + '@babel/parser': 7.28.0 + '@babel/types': 7.28.0 + '@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.27.6 + '@babel/types': 7.28.0 - '@babel/helper-compilation-targets@7.27.0': + '@babel/helper-compilation-targets@7.27.2': dependencies: - '@babel/compat-data': 7.26.8 - '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.4 + '@babel/compat-data': 7.28.0 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.25.1 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/core': 7.28.0 + '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.26.5 debug: 4.4.1(supports-color@6.0.0) lodash.debounce: 4.0.8 @@ -13425,57 +15386,59 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-globals@7.28.0': {} + '@babel/helper-member-expression-to-functions@7.25.9': dependencies: - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.6 + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.0 transitivePeerDependencies: - supports-color - '@babel/helper-module-imports@7.25.9': + '@babel/helper-module-imports@7.27.1': dependencies: - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.6 + '@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)': + '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-module-imports': 7.25.9 + '@babel/core': 7.28.0 + '@babel/helper-module-imports': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.27.0 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color '@babel/helper-optimise-call-expression@7.25.9': dependencies: - '@babel/types': 7.27.6 + '@babel/types': 7.28.0 '@babel/helper-plugin-utils@7.26.5': {} - '@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.27.0 + '@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.27.0 - '@babel/types': 7.27.6 + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.0 transitivePeerDependencies: - supports-color @@ -13483,643 +15446,654 @@ 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.0 - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.6 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.0 transitivePeerDependencies: - supports-color - '@babel/helpers@7.27.0': + '@babel/helpers@7.27.6': dependencies: - '@babel/template': 7.27.0 - '@babel/types': 7.27.6 - - '@babel/parser@7.27.0': - dependencies: - '@babel/types': 7.27.6 - - '@babel/parser@7.27.2': - dependencies: - '@babel/types': 7.27.6 + '@babel/template': 7.27.2 + '@babel/types': 7.28.0 '@babel/parser@7.27.5': dependencies: - '@babel/types': 7.27.6 + '@babel/types': 7.28.0 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.10)': + '@babel/parser@7.28.0': dependencies: - '@babel/core': 7.26.10 + '@babel/types': 7.28.0 + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/traverse': 7.27.0 + '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/traverse': 7.27.0 + '@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/core': 7.28.0 + '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-decorators': 7.25.9(@babel/core@7.26.10) + '@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.26.10)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.10)': + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.10)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.10)': + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.10)': + '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.10)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.10)': + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.10)': + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.10)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.10)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.10)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.10)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.10)': + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.10)': + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.10)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 '@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/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/core': 7.28.0 + '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.26.5 - '@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) 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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 + '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.26.5 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/core': 7.28.0 + '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.26.5 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-compilation-targets': 7.27.2 '@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-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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/template': 7.27.0 + '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 '@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/core': 7.28.0 + '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.26.5 - '@babel/traverse': 7.27.0 + '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.26.5 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/core': 7.28.0 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.26.5 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/core': 7.28.0 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.26.5 '@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/core': 7.28.0 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.26.5 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/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 + '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.10) + '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.10) + '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 + '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.26.5 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-create-class-features-plugin': 7.27.0(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.26.5 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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-regenerator@7.27.0(@babel/core@7.26.10)': + '@babel/plugin-transform-regenerator@7.27.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 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/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 + '@babel/helper-module-imports': 7.27.1 '@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-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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@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-create-class-features-plugin': 7.27.0(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.26.5 '@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.25.9(@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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.26.5 - '@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/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.26.5 - '@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/compat-data': 7.28.0 + '@babel/core': 7.28.0 + '@babel/helper-compilation-targets': 7.27.2 '@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/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/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/types': 7.27.6 + '@babel/types': 7.28.0 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/core': 7.28.0 '@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/helper-validator-option': 7.27.1 + '@babel/plugin-syntax-jsx': 7.25.9(@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 '@babel/runtime@7.27.1': {} + '@babel/runtime@7.27.6': {} + '@babel/template@7.27.0': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/parser': 7.27.5 - '@babel/types': 7.27.6 + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.28.0 + '@babel/types': 7.28.0 + + '@babel/template@7.27.2': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.28.0 + '@babel/types': 7.28.0 '@babel/traverse@7.27.0': dependencies: '@babel/code-frame': 7.26.2 '@babel/generator': 7.27.0 - '@babel/parser': 7.27.2 + '@babel/parser': 7.27.5 '@babel/template': 7.27.0 - '@babel/types': 7.27.1 + '@babel/types': 7.28.0 debug: 4.4.1(supports-color@6.0.0) globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.27.1': + '@babel/traverse@7.28.0': dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.0 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.28.0 + '@babel/template': 7.27.2 + '@babel/types': 7.28.0 + 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 @@ -14132,7 +16106,7 @@ snapshots: '@braintree/sanitize-url@7.1.1': {} - '@bufbuild/protobuf@2.5.2': + '@bufbuild/protobuf@2.6.0': optional: true '@bundled-es-modules/cookie@2.0.1': @@ -14168,123 +16142,218 @@ snapshots: '@chevrotain/utils@11.0.3': {} - '@ckeditor/ckeditor5-adapter-ckfinder@45.2.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)': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-upload': 45.2.0 - ckeditor5: 45.2.0(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 + url-parse: 1.5.10 + uuid: 9.0.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate - '@ckeditor/ckeditor5-alignment@45.2.0': + '@ckeditor/ckeditor5-adapter-ckfinder@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-upload': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - '@ckeditor/ckeditor5-autoformat@45.2.0': + '@ckeditor/ckeditor5-ai@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-heading': 45.2.0 - '@ckeditor/ckeditor5-typing': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@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-autosave@45.2.0': + '@ckeditor/ckeditor5-alignment@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(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) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-basic-styles@45.2.0': + '@ckeditor/ckeditor5-autoformat@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-typing': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(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-block-quote@45.2.0': + '@ckeditor/ckeditor5-autosave@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-enter': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-typing': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@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-bookmark@45.2.0': + '@ckeditor/ckeditor5-basic-styles@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-link': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - '@ckeditor/ckeditor5-widget': 45.2.0 - ckeditor5: 45.2.0(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-ckbox@45.2.0': + '@ckeditor/ckeditor5-block-quote@46.0.0': dependencies: - '@ckeditor/ckeditor5-cloud-services': 45.2.0 - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-image': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-upload': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 + '@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@46.0.0': + dependencies: + '@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@46.0.0': + dependencies: + '@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@46.0.0': + dependencies: + '@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.0(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.0': + '@ckeditor/ckeditor5-ckfinder@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-image': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(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.0': + '@ckeditor/ckeditor5-clipboard@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - '@ckeditor/ckeditor5-widget': 45.2.0 - 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.0': + '@ckeditor/ckeditor5-cloud-services@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + ckeditor5: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - '@ckeditor/ckeditor5-code-block@45.2.0(patch_hash=2361d8caad7d6b5bddacc3a3b4aa37dbfba260b1c1b22a450413a79c1bb1ce95)': + '@ckeditor/ckeditor5-code-block@46.0.0(patch_hash=2361d8caad7d6b5bddacc3a3b4aa37dbfba260b1c1b22a450413a79c1bb1ce95)': dependencies: - '@ckeditor/ckeditor5-clipboard': 45.2.0 - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-enter': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(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-core@45.2.0': + '@ckeditor/ckeditor5-collaboration-core@46.0.0': dependencies: - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - '@ckeditor/ckeditor5-watchdog': 45.2.0 - es-toolkit: 1.32.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-dev-build-tools@43.0.1(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.8.3)': + '@ckeditor/ckeditor5-comments@46.0.0': + dependencies: + '@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@46.0.0': + dependencies: + '@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)': dependencies: '@rollup/plugin-commonjs': 25.0.8(rollup@4.40.0) '@rollup/plugin-json': 6.1.0(rollup@4.40.0) @@ -14316,9 +16385,9 @@ snapshots: - tslib - typescript - '@ckeditor/ckeditor5-dev-translations@43.0.1': + '@ckeditor/ckeditor5-dev-translations@43.1.0': dependencies: - '@babel/parser': 7.27.0 + '@babel/parser': 7.27.5 '@babel/traverse': 7.27.0 chalk: 4.1.2 pofile: 1.1.4 @@ -14327,11 +16396,11 @@ 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@45.0.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)(typescript@5.0.4)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6))': 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)) + '@babel/parser': 7.28.0 + '@babel/traverse': 7.28.0 + '@ckeditor/ckeditor5-dev-utils': 45.0.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)(typescript@5.0.4)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)) chalk: 5.4.1 fs-extra: 11.3.0 glob: 10.4.5 @@ -14339,7 +16408,7 @@ snapshots: pofile: 1.1.4 rimraf: 5.0.10 upath: 2.0.1 - webpack-sources: 3.2.3 + webpack-sources: 3.3.3 transitivePeerDependencies: - '@rspack/core' - '@swc/core' @@ -14349,58 +16418,58 @@ snapshots: - uglify-js - webpack - '@ckeditor/ckeditor5-dev-utils@43.0.1(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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6))': dependencies: - '@ckeditor/ckeditor5-dev-translations': 43.0.1 + '@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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)) 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)) + esbuild-loader: 3.0.1(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)) fs-extra: 11.3.0 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)) 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)) 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)) 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)) + terser-webpack-plugin: 4.2.3(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)) 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@45.0.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)(typescript@5.0.4)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6))': 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-translations': 45.0.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)(typescript@5.0.4)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)) chalk: 5.4.1 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)) + css-loader: 7.1.2(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)) + cssnano: 7.0.7(postcss@8.5.6) + esbuild-loader: 4.3.0(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)) fs-extra: 11.3.0 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)) + mini-css-extract-plugin: 2.9.2(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)) 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)) + 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)) + 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)) 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)) + style-loader: 4.0.0(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)) + terser-webpack-plugin: 5.3.14(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)) through2: 4.0.2 transitivePeerDependencies: - '@rspack/core' @@ -14411,299 +16480,472 @@ snapshots: - uglify-js - webpack - '@ckeditor/ckeditor5-easy-image@45.2.0': + '@ckeditor/ckeditor5-document-outline@46.0.0': dependencies: - '@ckeditor/ckeditor5-cloud-services': 45.2.0 - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-upload': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(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-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-editor-balloon@45.2.0': + '@ckeditor/ckeditor5-easy-image@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - es-toolkit: 1.32.0 + '@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-classic@45.2.0': + '@ckeditor/ckeditor5-editor-balloon@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(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.0': + '@ckeditor/ckeditor5-editor-classic@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(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.0': + '@ckeditor/ckeditor5-editor-decoupled@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(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-multi-root@45.2.0': + '@ckeditor/ckeditor5-editor-inline@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(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-emoji@45.2.0': + '@ckeditor/ckeditor5-editor-multi-root@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-mention': 45.2.0(patch_hash=5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d) - '@ckeditor/ckeditor5-typing': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(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@46.0.0': + dependencies: + '@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) + + '@ckeditor/ckeditor5-emoji@46.0.0': + dependencies: + '@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.0': + '@ckeditor/ckeditor5-engine@46.0.0': dependencies: - '@ckeditor/ckeditor5-utils': 45.2.0 - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-utils': 46.0.0 + es-toolkit: 1.39.5 - '@ckeditor/ckeditor5-enter@45.2.0': + '@ckeditor/ckeditor5-enter@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-engine': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 - '@ckeditor/ckeditor5-essentials@45.2.0': + '@ckeditor/ckeditor5-essentials@46.0.0': dependencies: - '@ckeditor/ckeditor5-clipboard': 45.2.0 - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-enter': 45.2.0 - '@ckeditor/ckeditor5-select-all': 45.2.0 - '@ckeditor/ckeditor5-typing': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-undo': 45.2.0 - ckeditor5: 45.2.0(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-find-and-replace@45.2.0': + '@ckeditor/ckeditor5-export-inline-styles@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - es-toolkit: 1.32.0 + '@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-font@45.2.0': + '@ckeditor/ckeditor5-export-pdf@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(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-fullscreen@45.2.0': + '@ckeditor/ckeditor5-export-word@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-editor-classic': 45.2.0 - '@ckeditor/ckeditor5-editor-decoupled': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(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-heading@45.2.0': + '@ckeditor/ckeditor5-find-and-replace@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-paragraph': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(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) + es-toolkit: 1.39.5 - '@ckeditor/ckeditor5-highlight@45.2.0': + '@ckeditor/ckeditor5-font@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(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-horizontal-line@45.2.0': + '@ckeditor/ckeditor5-format-painter@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - '@ckeditor/ckeditor5-widget': 45.2.0 - ckeditor5: 45.2.0(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-html-embed@45.2.0': + '@ckeditor/ckeditor5-fullscreen@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - '@ckeditor/ckeditor5-widget': 45.2.0 - ckeditor5: 45.2.0(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-html-support@45.2.0': + '@ckeditor/ckeditor5-heading@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-enter': 45.2.0 - '@ckeditor/ckeditor5-heading': 45.2.0 - '@ckeditor/ckeditor5-image': 45.2.0 - '@ckeditor/ckeditor5-list': 45.2.0 - '@ckeditor/ckeditor5-table': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - '@ckeditor/ckeditor5-widget': 45.2.0 - ckeditor5: 45.2.0(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-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-icons@45.2.0': {} - - '@ckeditor/ckeditor5-image@45.2.0': + '@ckeditor/ckeditor5-highlight@46.0.0': dependencies: - '@ckeditor/ckeditor5-clipboard': 45.2.0 - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-typing': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-undo': 45.2.0 - '@ckeditor/ckeditor5-upload': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - '@ckeditor/ckeditor5-widget': 45.2.0 - ckeditor5: 45.2.0(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) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-indent@45.2.0': + '@ckeditor/ckeditor5-horizontal-line@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-heading': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-list': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(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-inspector@4.1.0': {} - - '@ckeditor/ckeditor5-language@45.2.0': + '@ckeditor/ckeditor5-html-embed@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(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-link@45.2.0': + '@ckeditor/ckeditor5-html-support@46.0.0': dependencies: - '@ckeditor/ckeditor5-clipboard': 45.2.0 - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-image': 45.2.0 - '@ckeditor/ckeditor5-typing': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - '@ckeditor/ckeditor5-widget': 45.2.0 - ckeditor5: 45.2.0(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-list@45.2.0': - dependencies: - '@ckeditor/ckeditor5-clipboard': 45.2.0 - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-enter': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-typing': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-icons@46.0.0': {} - '@ckeditor/ckeditor5-markdown-gfm@45.2.0': + '@ckeditor/ckeditor5-image@46.0.0': dependencies: - '@ckeditor/ckeditor5-clipboard': 45.2.0 - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@types/marked': 4.3.2 - '@types/turndown': 5.0.5 - ckeditor5: 45.2.0(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-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-media-embed@45.2.0': + '@ckeditor/ckeditor5-import-word@46.0.0': dependencies: - '@ckeditor/ckeditor5-clipboard': 45.2.0 - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-typing': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-undo': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - '@ckeditor/ckeditor5-widget': 45.2.0 - ckeditor5: 45.2.0(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-mention@45.2.0(patch_hash=5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d)': + '@ckeditor/ckeditor5-indent@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-typing': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(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-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-minimap@45.2.0': - dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@ckeditor/ckeditor5-inspector@5.0.0': {} - '@ckeditor/ckeditor5-package-tools@4.0.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.15.30)(bufferutil@4.0.9)(esbuild@0.25.5)(utf-8-validate@6.0.5)': + '@ckeditor/ckeditor5-language@46.0.0': 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-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-line-height@46.0.0': + dependencies: + '@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-link@46.0.0': + dependencies: + '@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-multi-level@46.0.0': + dependencies: + '@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-list@46.0.0': + dependencies: + '@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-markdown-gfm@46.0.0': + dependencies: + '@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-media-embed@46.0.0': + dependencies: + '@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-mention@46.0.0(patch_hash=5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d)': + dependencies: + '@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-merge-fields@46.0.0': + dependencies: + '@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-minimap@46.0.0': + dependencies: + '@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.1(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.0.12)(bufferutil@4.0.9)(esbuild@0.25.6)(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.6)(typescript@5.0.4)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)) + '@ckeditor/ckeditor5-dev-utils': 45.0.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)(typescript@5.0.4)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)) 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)) + css-loader: 5.2.7(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)) fs-extra: 11.3.0 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)) 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.20.0(typescript@5.0.4) - stylelint-config-ckeditor5: 2.0.1(stylelint@16.20.0(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.15.30)(typescript@5.0.4) + raw-loader: 4.0.2(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)) + style-loader: 2.0.0(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)) + 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.6)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)) + 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.6)) + ts-node: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.0.12)(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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6) + webpack-dev-server: 5.2.2(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.6)) transitivePeerDependencies: - '@rspack/core' - '@swc/core' @@ -14717,186 +16959,347 @@ snapshots: - utf-8-validate - webpack-cli - '@ckeditor/ckeditor5-page-break@45.2.0': + '@ckeditor/ckeditor5-page-break@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - '@ckeditor/ckeditor5-widget': 45.2.0 - ckeditor5: 45.2.0(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-paragraph@45.2.0': + '@ckeditor/ckeditor5-pagination@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.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-paste-from-office@45.2.0': + '@ckeditor/ckeditor5-paragraph@46.0.0': dependencies: - '@ckeditor/ckeditor5-clipboard': 45.2.0 - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - ckeditor5: 45.2.0(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 - '@ckeditor/ckeditor5-remove-format@45.2.0': + '@ckeditor/ckeditor5-paste-from-office-enhanced@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(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-restricted-editing@45.2.0': + '@ckeditor/ckeditor5-paste-from-office@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(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-select-all@45.2.0': + '@ckeditor/ckeditor5-real-time-collaboration@46.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.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-show-blocks@45.2.0': + '@ckeditor/ckeditor5-remove-format@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(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-source-editing@45.2.0': + '@ckeditor/ckeditor5-restricted-editing@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-theme-lark': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(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-special-characters@45.2.0': + '@ckeditor/ckeditor5-revision-history@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-typing': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + '@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-style@45.2.0': + '@ckeditor/ckeditor5-select-all@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-html-support': 45.2.0 - '@ckeditor/ckeditor5-list': 45.2.0 - '@ckeditor/ckeditor5-table': 45.2.0 - '@ckeditor/ckeditor5-typing': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(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 - '@ckeditor/ckeditor5-table@45.2.0': + '@ckeditor/ckeditor5-show-blocks@46.0.0': dependencies: - '@ckeditor/ckeditor5-clipboard': 45.2.0 - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - '@ckeditor/ckeditor5-widget': 45.2.0 - ckeditor5: 45.2.0(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) + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-theme-lark@45.2.0': + '@ckeditor/ckeditor5-slash-command@46.0.0': dependencies: - '@ckeditor/ckeditor5-ui': 45.2.0 + '@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-typing@45.2.0': + '@ckeditor/ckeditor5-source-editing-enhanced@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - 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 + '@codemirror/autocomplete': 6.18.6 + '@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: 46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - '@ckeditor/ckeditor5-ui@45.2.0': + '@ckeditor/ckeditor5-source-editing@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-editor-multi-root': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.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) + + '@ckeditor/ckeditor5-special-characters@46.0.0': + dependencies: + '@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@46.0.0': + dependencies: + '@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@46.0.0': + dependencies: + '@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@46.0.0': + dependencies: + '@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@46.0.0': + dependencies: + '@ckeditor/ckeditor5-ui': 46.0.0 + + '@ckeditor/ckeditor5-track-changes@46.0.0': + dependencies: + '@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@46.0.0': + dependencies: + '@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@46.0.0': + dependencies: + '@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.0': + '@ckeditor/ckeditor5-undo@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.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-upload@45.2.0': + '@ckeditor/ckeditor5-upload@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 + '@ckeditor/ckeditor5-core': 46.0.0 + '@ckeditor/ckeditor5-utils': 46.0.0 - '@ckeditor/ckeditor5-utils@45.2.0': + '@ckeditor/ckeditor5-uploadcare@46.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)': dependencies: - '@ckeditor/ckeditor5-ui': 45.2.0 - es-toolkit: 1.32.0 + '@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-watchdog@45.2.0': + '@ckeditor/ckeditor5-utils@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-editor-multi-root': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - es-toolkit: 1.32.0 + '@ckeditor/ckeditor5-ui': 46.0.0 + es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color - '@ckeditor/ckeditor5-widget@45.2.0': + '@ckeditor/ckeditor5-watchdog@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-enter': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-typing': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - 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-word-count@45.2.0': + '@ckeditor/ckeditor5-widget@46.0.0': dependencies: - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - ckeditor5: 45.2.0(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-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@46.0.0': + dependencies: + '@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.37.1 + '@codemirror/view': 6.38.0 '@lezer/common': 1.2.3 '@codemirror/commands@6.8.1': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@codemirror/view': 6.38.0 '@lezer/common': 1.2.3 '@codemirror/lang-css@6.3.1': @@ -14914,7 +17317,7 @@ snapshots: '@codemirror/lang-javascript': 6.2.4 '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@codemirror/view': 6.38.0 '@lezer/common': 1.2.3 '@lezer/css': 1.1.11 '@lezer/html': 1.3.10 @@ -14925,11 +17328,11 @@ snapshots: '@codemirror/language': 6.11.0 '@codemirror/lint': 6.8.5 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@codemirror/view': 6.38.0 '@lezer/common': 1.2.3 '@lezer/javascript': 1.5.1 - '@codemirror/lang-json@6.0.1': + '@codemirror/lang-json@6.0.2': dependencies: '@codemirror/language': 6.11.0 '@lezer/json': 1.0.3 @@ -14940,11 +17343,21 @@ snapshots: '@codemirror/lang-html': 6.4.9 '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@codemirror/view': 6.38.0 '@lezer/common': 1.2.3 '@lezer/markdown': 1.4.3 - '@codemirror/lang-php@6.0.1': + '@codemirror/lang-markdown@6.3.3': + 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 + '@lezer/common': 1.2.3 + '@lezer/markdown': 1.4.3 + + '@codemirror/lang-php@6.0.2': dependencies: '@codemirror/lang-html': 6.4.9 '@codemirror/language': 6.11.0 @@ -14966,14 +17379,14 @@ snapshots: '@codemirror/autocomplete': 6.18.6 '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@codemirror/view': 6.38.0 '@lezer/common': 1.2.3 '@lezer/xml': 1.0.6 '@codemirror/language@6.11.0': dependencies: '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@codemirror/view': 6.38.0 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 @@ -14986,20 +17399,27 @@ snapshots: '@codemirror/lint@6.8.5': dependencies: '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@codemirror/view': 6.38.0 crelt: 1.0.6 '@codemirror/search@6.5.11': dependencies: '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@codemirror/view': 6.38.0 crelt: 1.0.6 '@codemirror/state@6.5.2': dependencies: '@marijn/find-cluster-break': 1.0.2 - '@codemirror/view@6.37.1': + '@codemirror/theme-one-dark@6.1.2': + dependencies: + '@codemirror/language': 6.11.0 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.0 + '@lezer/highlight': 1.2.1 + + '@codemirror/view@6.38.0': dependencies: '@codemirror/state': 6.5.2 crelt: 1.0.6 @@ -15012,33 +17432,42 @@ snapshots: '@csstools/color-helpers@5.0.2': {} - '@csstools/css-calc@2.1.3(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + '@csstools/css-calc@2.1.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 - '@csstools/css-color-parser@3.0.9(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + '@csstools/css-color-parser@3.0.9(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: '@csstools/color-helpers': 5.0.2 - '@csstools/css-calc': 2.1.3(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 + '@csstools/css-calc': 2.1.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 - '@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3)': + '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)': dependencies: - '@csstools/css-tokenizer': 3.0.3 + '@csstools/css-tokenizer': 3.0.4 - '@csstools/css-tokenizer@3.0.3': {} + '@csstools/css-tokenizer@3.0.4': {} - '@csstools/media-query-list-parser@4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + '@csstools/media-query-list-parser@3.0.1(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + + '@csstools/media-query-list-parser@4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + dependencies: + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 '@csstools/selector-resolve-nested@3.0.0(postcss-selector-parser@7.1.0)': 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 @@ -15047,7 +17476,7 @@ snapshots: dependencies: '@digitak/grubber': 3.1.4 chokidar: 3.6.0 - esbuild: 0.25.5 + esbuild: 0.25.6 '@digitak/grubber@3.1.4': {} @@ -15386,7 +17815,7 @@ snapshots: detect-libc: 2.0.4 fs-extra: 10.1.0 got: 11.8.6 - node-abi: 4.9.0 + node-abi: 3.75.0 node-api-version: 0.2.1 ora: 5.4.1 read-binary-file-arch: 1.0.6 @@ -15416,9 +17845,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@electron/remote@2.1.2(electron@36.4.0)': + '@electron/remote@2.1.3(electron@37.2.1)': dependencies: - electron: 36.4.0 + electron: 37.2.1 '@electron/universal@2.0.2': dependencies: @@ -15442,113 +17871,192 @@ snapshots: transitivePeerDependencies: - supports-color - '@emnapi/core@1.4.3': + '@emnapi/core@1.4.4': dependencies: - '@emnapi/wasi-threads': 1.0.2 + '@emnapi/wasi-threads': 1.0.3 tslib: 2.8.1 - '@emnapi/runtime@1.4.3': + '@emnapi/runtime@1.4.4': dependencies: tslib: 2.8.1 - '@emnapi/wasi-threads@1.0.2': + '@emnapi/wasi-threads@1.0.3': dependencies: tslib: 2.8.1 - '@es-joy/jsdoccomment@0.40.1': + '@es-joy/jsdoccomment@0.50.2': dependencies: - comment-parser: 1.4.0 + '@types/estree': 1.0.8 + '@typescript-eslint/types': 8.36.0 + comment-parser: 1.4.1 esquery: 1.6.0 - jsdoc-type-pratt-parser: 4.0.0 + jsdoc-type-pratt-parser: 4.1.0 '@esbuild/aix-ppc64@0.25.5': optional: true + '@esbuild/aix-ppc64@0.25.6': + optional: true + '@esbuild/android-arm64@0.25.5': optional: true + '@esbuild/android-arm64@0.25.6': + optional: true + '@esbuild/android-arm@0.25.5': optional: true + '@esbuild/android-arm@0.25.6': + optional: true + '@esbuild/android-x64@0.25.5': optional: true + '@esbuild/android-x64@0.25.6': + optional: true + '@esbuild/darwin-arm64@0.25.5': optional: true + '@esbuild/darwin-arm64@0.25.6': + optional: true + '@esbuild/darwin-x64@0.25.5': optional: true + '@esbuild/darwin-x64@0.25.6': + optional: true + '@esbuild/freebsd-arm64@0.25.5': optional: true + '@esbuild/freebsd-arm64@0.25.6': + optional: true + '@esbuild/freebsd-x64@0.25.5': optional: true + '@esbuild/freebsd-x64@0.25.6': + optional: true + '@esbuild/linux-arm64@0.25.5': optional: true + '@esbuild/linux-arm64@0.25.6': + optional: true + '@esbuild/linux-arm@0.25.5': optional: true + '@esbuild/linux-arm@0.25.6': + optional: true + '@esbuild/linux-ia32@0.25.5': optional: true + '@esbuild/linux-ia32@0.25.6': + optional: true + '@esbuild/linux-loong64@0.25.5': optional: true + '@esbuild/linux-loong64@0.25.6': + optional: true + '@esbuild/linux-mips64el@0.25.5': optional: true + '@esbuild/linux-mips64el@0.25.6': + optional: true + '@esbuild/linux-ppc64@0.25.5': optional: true + '@esbuild/linux-ppc64@0.25.6': + optional: true + '@esbuild/linux-riscv64@0.25.5': optional: true + '@esbuild/linux-riscv64@0.25.6': + optional: true + '@esbuild/linux-s390x@0.25.5': optional: true + '@esbuild/linux-s390x@0.25.6': + optional: true + '@esbuild/linux-x64@0.25.5': optional: true + '@esbuild/linux-x64@0.25.6': + optional: true + '@esbuild/netbsd-arm64@0.25.5': optional: true + '@esbuild/netbsd-arm64@0.25.6': + optional: true + '@esbuild/netbsd-x64@0.25.5': optional: true + '@esbuild/netbsd-x64@0.25.6': + optional: true + '@esbuild/openbsd-arm64@0.25.5': optional: true + '@esbuild/openbsd-arm64@0.25.6': + optional: true + '@esbuild/openbsd-x64@0.25.5': optional: true + '@esbuild/openbsd-x64@0.25.6': + optional: true + + '@esbuild/openharmony-arm64@0.25.6': + optional: true + '@esbuild/sunos-x64@0.25.5': optional: true + '@esbuild/sunos-x64@0.25.6': + optional: true + '@esbuild/win32-arm64@0.25.5': optional: true + '@esbuild/win32-arm64@0.25.6': + optional: true + '@esbuild/win32-ia32@0.25.5': optional: true + '@esbuild/win32-ia32@0.25.6': + optional: true + '@esbuild/win32-x64@0.25.5': optional: true - '@eslint-community/eslint-utils@4.7.0(eslint@8.57.1)': - dependencies: - eslint: 8.57.1 - eslint-visitor-keys: 3.4.3 + '@esbuild/win32-x64@0.25.6': + optional: true - '@eslint-community/eslint-utils@4.7.0(eslint@9.28.0(jiti@2.4.2))': + '@eslint-community/eslint-utils@4.7.0(eslint@9.31.0(jiti@2.4.2))': dependencies: - eslint: 9.28.0(jiti@2.4.2) + eslint: 9.31.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.20.0': + '@eslint/compat@1.3.1(eslint@9.31.0(jiti@2.4.2))': + optionalDependencies: + eslint: 9.31.0(jiti@2.4.2) + + '@eslint/config-array@0.21.0': dependencies: '@eslint/object-schema': 2.1.6 debug: 4.4.1(supports-color@6.0.0) @@ -15556,31 +18064,21 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.2.2': {} + '@eslint/config-helpers@0.3.0': {} '@eslint/core@0.14.0': dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@2.1.4': + '@eslint/core@0.15.1': dependencies: - ajv: 6.12.6 - debug: 4.4.1(supports-color@6.0.0) - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.2 - import-fresh: 3.3.1 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color + '@types/json-schema': 7.0.15 '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 debug: 4.4.1(supports-color@6.0.0) - espree: 10.3.0 + espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.1 @@ -15590,25 +18088,36 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.57.1': {} + '@eslint/js@9.31.0': {} - '@eslint/js@9.28.0': {} + '@eslint/markdown@6.6.0': + dependencies: + '@eslint/core': 0.14.0 + '@eslint/plugin-kit': 0.3.3 + 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.1': + '@eslint/plugin-kit@0.3.3': dependencies: - '@eslint/core': 0.14.0 + '@eslint/core': 0.15.1 levn: 0.4.1 - '@excalidraw/excalidraw@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@19.1.0))(react@19.1.0)': + '@excalidraw/excalidraw@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)': dependencies: '@braintree/sanitize-url': 6.0.2 '@excalidraw/laser-pointer': 1.3.1 '@excalidraw/mermaid-to-excalidraw': 1.1.2 '@excalidraw/random-username': 1.1.0 - '@radix-ui/react-popover': 1.1.6(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-tabs': 1.0.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-popover': 1.1.6(@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) + '@radix-ui/react-tabs': 1.0.2(react-dom@19.1.0(react@16.14.0))(react@16.14.0) browser-fs-access: 0.29.1 canvas-roundrect-polyfill: 0.0.1 clsx: 1.1.1 @@ -15617,8 +18126,8 @@ snapshots: fractional-indexing: 3.2.0 fuzzy: 0.1.3 image-blob-reduce: 3.0.1 - jotai: 2.11.0(@types/react@19.1.7)(react@19.1.0) - jotai-scope: 0.7.2(jotai@2.11.0(@types/react@19.1.7)(react@19.1.0))(react@19.1.0) + jotai: 2.11.0(@types/react@19.1.7)(react@16.14.0) + jotai-scope: 0.7.2(jotai@2.11.0(@types/react@19.1.7)(react@16.14.0))(react@16.14.0) lodash.debounce: 4.0.8 lodash.throttle: 4.1.1 nanoid: 4.0.2 @@ -15631,11 +18140,11 @@ snapshots: png-chunks-extract: 1.0.0 points-on-curve: 1.0.1 pwacompat: 2.0.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - roughjs: 4.6.4 + react: 16.14.0 + react-dom: 19.1.0(react@16.14.0) + roughjs: 4.6.6 sass: 1.51.0 - tunnel-rat: 0.1.2(@types/react@19.1.7)(react@19.1.0) + tunnel-rat: 0.1.2(@types/react@19.1.7)(react@16.14.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' @@ -15649,7 +18158,7 @@ snapshots: '@excalidraw/mermaid-to-excalidraw@1.1.2': dependencies: '@excalidraw/markdown-to-text': 0.1.2 - mermaid: 10.9.3 + mermaid: 11.8.1 nanoid: 5.1.5 transitivePeerDependencies: - supports-color @@ -15672,200 +18181,200 @@ snapshots: '@floating-ui/core': 1.6.9 '@floating-ui/utils': 0.2.9 - '@floating-ui/react-dom@2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@floating-ui/react-dom@2.1.2(react-dom@19.1.0(react@16.14.0))(react@16.14.0)': dependencies: '@floating-ui/dom': 1.6.13 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + react: 16.14.0 + react-dom: 19.1.0(react@16.14.0) '@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.37.1)(@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.0)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@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.37.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)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@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.37.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)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@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.37.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)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@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.37.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)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@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.37.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)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@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.37.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)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@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.37.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)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@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.37.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)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@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.37.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)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@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.37.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)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@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.37.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)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@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.37.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)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@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.37.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)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@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.37.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)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@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.37.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)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@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.37.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)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@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.37.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)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@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.37.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)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@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.37.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)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@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.37.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)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@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.37.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)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@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.37.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)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@codemirror/view': 6.38.0 '@lezer/highlight': 1.2.1 - '@fullcalendar/core@6.1.17': + '@fullcalendar/core@6.1.18': dependencies: - preact: 10.12.1 + preact: 10.26.9 - '@fullcalendar/daygrid@6.1.17(@fullcalendar/core@6.1.17)': + '@fullcalendar/daygrid@6.1.18(@fullcalendar/core@6.1.18)': dependencies: - '@fullcalendar/core': 6.1.17 + '@fullcalendar/core': 6.1.18 - '@fullcalendar/interaction@6.1.17(@fullcalendar/core@6.1.17)': + '@fullcalendar/interaction@6.1.18(@fullcalendar/core@6.1.18)': dependencies: - '@fullcalendar/core': 6.1.17 + '@fullcalendar/core': 6.1.18 - '@fullcalendar/list@6.1.17(@fullcalendar/core@6.1.17)': + '@fullcalendar/list@6.1.18(@fullcalendar/core@6.1.18)': dependencies: - '@fullcalendar/core': 6.1.17 + '@fullcalendar/core': 6.1.18 - '@fullcalendar/multimonth@6.1.17(@fullcalendar/core@6.1.17)': + '@fullcalendar/multimonth@6.1.18(@fullcalendar/core@6.1.18)': dependencies: - '@fullcalendar/core': 6.1.17 - '@fullcalendar/daygrid': 6.1.17(@fullcalendar/core@6.1.17) + '@fullcalendar/core': 6.1.18 + '@fullcalendar/daygrid': 6.1.18(@fullcalendar/core@6.1.18) - '@fullcalendar/timegrid@6.1.17(@fullcalendar/core@6.1.17)': + '@fullcalendar/timegrid@6.1.18(@fullcalendar/core@6.1.18)': dependencies: - '@fullcalendar/core': 6.1.17 - '@fullcalendar/daygrid': 6.1.17(@fullcalendar/core@6.1.17) + '@fullcalendar/core': 6.1.18 + '@fullcalendar/daygrid': 6.1.18(@fullcalendar/core@6.1.18) '@gar/promisify@1.1.3': {} @@ -15882,18 +18391,8 @@ snapshots: '@humanfs/core': 0.19.1 '@humanwhocodes/retry': 0.3.1 - '@humanwhocodes/config-array@0.13.0': - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.4.1(supports-color@6.0.0) - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/object-schema@2.0.3': {} - '@humanwhocodes/retry@0.3.1': {} '@humanwhocodes/retry@0.4.3': {} @@ -15913,18 +18412,52 @@ snapshots: transitivePeerDependencies: - supports-color - '@inquirer/confirm@5.1.12(@types/node@22.15.30)': + '@inlang/paraglide-js@2.2.0(babel-plugin-macros@3.1.0)': dependencies: - '@inquirer/core': 10.1.13(@types/node@22.15.30) - '@inquirer/type': 3.0.7(@types/node@22.15.30) + '@inlang/recommend-sherlock': 0.2.1 + '@inlang/sdk': 2.4.9(babel-plugin-macros@3.1.0) + commander: 11.1.0 + consola: 3.4.0 + json5: 2.2.3 + unplugin: 2.3.5 + urlpattern-polyfill: 10.1.0 + transitivePeerDependencies: + - babel-plugin-macros + + '@inlang/recommend-sherlock@0.2.1': + dependencies: + comment-json: 4.2.5 + + '@inlang/sdk@2.4.9(babel-plugin-macros@3.1.0)': + dependencies: + '@lix-js/sdk': 0.4.7(babel-plugin-macros@3.1.0) + '@sinclair/typebox': 0.31.28 + kysely: 0.27.6 + sqlite-wasm-kysely: 0.3.0(kysely@0.27.6) + uuid: 10.0.0 + transitivePeerDependencies: + - babel-plugin-macros + + '@inquirer/confirm@5.1.13(@types/node@22.16.3)': + dependencies: + '@inquirer/core': 10.1.14(@types/node@22.16.3) + '@inquirer/type': 3.0.7(@types/node@22.16.3) optionalDependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 optional: true - '@inquirer/core@10.1.13(@types/node@22.15.30)': + '@inquirer/confirm@5.1.13(@types/node@24.0.12)': + dependencies: + '@inquirer/core': 10.1.14(@types/node@24.0.12) + '@inquirer/type': 3.0.7(@types/node@24.0.12) + optionalDependencies: + '@types/node': 24.0.12 + optional: true + + '@inquirer/core@10.1.14(@types/node@22.16.3)': dependencies: '@inquirer/figures': 1.0.12 - '@inquirer/type': 3.0.7(@types/node@22.15.30) + '@inquirer/type': 3.0.7(@types/node@22.16.3) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -15932,15 +18465,34 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 + optional: true + + '@inquirer/core@10.1.14(@types/node@24.0.12)': + dependencies: + '@inquirer/figures': 1.0.12 + '@inquirer/type': 3.0.7(@types/node@24.0.12) + 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': 24.0.12 optional: true '@inquirer/figures@1.0.12': optional: true - '@inquirer/type@3.0.7(@types/node@22.15.30)': + '@inquirer/type@3.0.7(@types/node@22.16.3)': optionalDependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 + optional: true + + '@inquirer/type@3.0.7(@types/node@24.0.12)': + optionalDependencies: + '@types/node': 24.0.12 optional: true '@isaacs/cliui@8.0.2': @@ -15969,7 +18521,7 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.30 + '@types/node': 22.16.3 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -15979,7 +18531,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.30 + '@types/node': 22.16.3 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -15997,7 +18549,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.15.30 + '@types/node': 22.16.3 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -16018,8 +18570,8 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.15.30 + '@jridgewell/trace-mapping': 0.3.29 + '@types/node': 22.16.3 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -16046,7 +18598,7 @@ snapshots: '@jest/source-map@29.6.3': dependencies: - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.29 callsites: 3.1.0 graceful-fs: 4.2.11 @@ -16066,9 +18618,9 @@ snapshots: '@jest/transform@29.7.0': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.29 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 convert-source-map: 2.0.0 @@ -16089,7 +18641,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -16282,32 +18834,47 @@ snapshots: '@jimp/types': 1.6.0 tinycolor2: 1.6.0 + '@jridgewell/gen-mapping@0.3.12': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.4 + '@jridgewell/trace-mapping': 0.3.29 + '@jridgewell/gen-mapping@0.3.8': dependencies: '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.4 '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/resolve-uri@3.1.2': {} '@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 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.29 - '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/sourcemap-codec@1.5.4': {} '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.4 + + '@jridgewell/trace-mapping@0.3.29': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.4 '@jridgewell/trace-mapping@0.3.9': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.4 '@jsdevtools/ono@7.1.3': {} @@ -16318,12 +18885,12 @@ 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 @@ -16384,6 +18951,20 @@ snapshots: '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 + '@lix-js/sdk@0.4.7(babel-plugin-macros@3.1.0)': + dependencies: + '@lix-js/server-protocol-schema': 0.1.1 + dedent: 1.5.1(babel-plugin-macros@3.1.0) + human-id: 4.1.1 + js-sha256: 0.11.1 + kysely: 0.27.6 + sqlite-wasm-kysely: 0.3.0(kysely@0.27.6) + uuid: 10.0.0 + transitivePeerDependencies: + - babel-plugin-macros + + '@lix-js/server-protocol-schema@0.1.1': {} + '@ljharb/resumer@0.0.1': dependencies: '@ljharb/through': 2.3.14 @@ -16425,33 +19006,33 @@ snapshots: '@marijn/find-cluster-break@1.0.2': {} - '@mermaid-js/layout-elk@0.1.7(mermaid@11.6.0)': + '@mermaid-js/layout-elk@0.1.8(mermaid@11.8.1)': dependencies: d3: 7.9.0 elkjs: 0.9.3 - mermaid: 11.6.0 + mermaid: 11.8.1 - '@mermaid-js/parser@0.4.0': + '@mermaid-js/parser@0.6.1': dependencies: langium: 3.3.1 - '@microsoft/api-extractor-model@7.30.6(@types/node@22.15.30)': + '@microsoft/api-extractor-model@7.30.6(@types/node@22.16.3)': dependencies: '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.13.1(@types/node@22.15.30) + '@rushstack/node-core-library': 5.13.1(@types/node@22.16.3) transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.52.8(@types/node@22.15.30)': + '@microsoft/api-extractor@7.52.8(@types/node@22.16.3)': dependencies: - '@microsoft/api-extractor-model': 7.30.6(@types/node@22.15.30) + '@microsoft/api-extractor-model': 7.30.6(@types/node@22.16.3) '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.13.1(@types/node@22.15.30) + '@rushstack/node-core-library': 5.13.1(@types/node@22.16.3) '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.15.3(@types/node@22.15.30) - '@rushstack/ts-command-line': 5.0.1(@types/node@22.15.30) + '@rushstack/terminal': 0.15.3(@types/node@22.16.3) + '@rushstack/ts-command-line': 5.0.1(@types/node@22.16.3) lodash: 4.17.21 minimatch: 3.0.8 resolve: 1.22.10 @@ -16470,9 +19051,9 @@ snapshots: '@microsoft/tsdoc@0.15.1': {} - '@mind-elixir/node-menu@1.0.5(mind-elixir@4.6.0)': + '@mind-elixir/node-menu@5.0.0(mind-elixir@5.0.2)': dependencies: - mind-elixir: 4.6.0 + mind-elixir: 5.0.2 '@mixmark-io/domino@2.2.0': {} @@ -16486,17 +19067,17 @@ 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.4 + '@emnapi/runtime': 1.4.4 + '@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.4 + '@emnapi/runtime': 1.4.4 '@tybys/wasm-util': 0.9.0 '@noble/hashes@1.8.0': {} @@ -16547,28 +19128,28 @@ snapshots: mkdirp: 1.0.4 rimraf: 3.0.2 - '@nx/devkit@21.1.3(nx@21.1.3(@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.2.3(nx@21.2.3(@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)))': dependencies: ejs: 3.1.10 enquirer: 2.3.6 ignore: 5.3.2 minimatch: 9.0.3 - nx: 21.1.3(@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.3(@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)) semver: 7.7.2 tmp: 0.2.3 tslib: 2.8.1 yargs-parser: 21.1.1 - '@nx/esbuild@21.1.3(@babel/traverse@7.27.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.1.3(@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.2.3(@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.6)(nx@21.2.3(@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)))': dependencies: - '@nx/devkit': 21.1.3(nx@21.1.3(@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.1.3(@babel/traverse@7.27.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.1.3(@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.2.3(nx@21.2.3(@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.3(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.3(@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))) 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.6 transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -16578,13 +19159,14 @@ snapshots: - supports-color - verdaccio - '@nx/eslint-plugin@21.1.3(@babel/traverse@7.27.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.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint-config-prettier@10.1.5(eslint@9.28.0(jiti@2.4.2)))(eslint@9.28.0(jiti@2.4.2))(nx@21.1.3(@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.2.3(@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.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint-config-prettier@10.1.5(eslint@9.31.0(jiti@2.4.2)))(eslint@9.31.0(jiti@2.4.2))(nx@21.2.3(@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)': dependencies: - '@nx/devkit': 21.1.3(nx@21.1.3(@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.1.3(@babel/traverse@7.27.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.1.3(@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.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/type-utils': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@nx/devkit': 21.2.3(nx@21.2.3(@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.3(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.3(@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.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) chalk: 4.1.2 confusing-browser-globals: 1.0.11 globals: 15.15.0 @@ -16592,7 +19174,7 @@ snapshots: semver: 7.7.2 tslib: 2.8.1 optionalDependencies: - eslint-config-prettier: 10.1.5(eslint@9.28.0(jiti@2.4.2)) + eslint-config-prettier: 10.1.5(eslint@9.31.0(jiti@2.4.2)) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -16604,14 +19186,14 @@ snapshots: - typescript - verdaccio - '@nx/eslint@21.1.3(@babel/traverse@7.27.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.28.0(jiti@2.4.2))(nx@21.1.3(@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.3(@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.31.0(jiti@2.4.2))(nx@21.2.3(@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)))': dependencies: - '@nx/devkit': 21.1.3(nx@21.1.3(@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.1.3(@babel/traverse@7.27.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.1.3(@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.28.0(jiti@2.4.2) + '@nx/devkit': 21.2.3(nx@21.2.3(@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.3(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.3(@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.31.0(jiti@2.4.2) semver: 7.7.2 tslib: 2.8.1 - typescript: 5.7.3 + typescript: 5.8.3 optionalDependencies: '@zkochan/js-yaml': 0.0.7 transitivePeerDependencies: @@ -16623,14 +19205,14 @@ snapshots: - supports-color - verdaccio - '@nx/express@21.1.3(@babel/traverse@7.27.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.15.30)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.28.0(jiti@2.4.2))(express@5.1.0)(nx@21.1.3(@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.15.30)(typescript@5.8.3))(typescript@5.8.3)': + '@nx/express@21.2.3(@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.3)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.31.0(jiti@2.4.2))(express@4.21.2)(nx@21.2.3(@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.3)(typescript@5.8.3))(typescript@5.8.3)': dependencies: - '@nx/devkit': 21.1.3(nx@21.1.3(@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.1.3(@babel/traverse@7.27.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.1.3(@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.1.3(@babel/traverse@7.27.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.15.30)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.28.0(jiti@2.4.2))(nx@21.1.3(@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.15.30)(typescript@5.8.3))(typescript@5.8.3) + '@nx/devkit': 21.2.3(nx@21.2.3(@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.3(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.3(@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.3(@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.3)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.31.0(jiti@2.4.2))(nx@21.2.3(@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.3)(typescript@5.8.3))(typescript@5.8.3) tslib: 2.8.1 optionalDependencies: - express: 5.1.0 + express: 4.21.2 transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -16647,15 +19229,15 @@ snapshots: - typescript - verdaccio - '@nx/jest@21.1.3(@babel/traverse@7.27.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.15.30)(babel-plugin-macros@3.1.0)(nx@21.1.3(@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.15.30)(typescript@5.8.3))(typescript@5.8.3)': + '@nx/jest@21.2.3(@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.3)(babel-plugin-macros@3.1.0)(nx@21.2.3(@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.3)(typescript@5.8.3))(typescript@5.8.3)': dependencies: '@jest/reporters': 29.7.0 '@jest/test-result': 29.7.0 - '@nx/devkit': 21.1.3(nx@21.1.3(@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.1.3(@babel/traverse@7.27.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.1.3(@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.2.3(nx@21.2.3(@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.3(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.3(@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) identity-obj-proxy: 3.0.0 - jest-config: 29.7.0(@types/node@22.15.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.15.30)(typescript@5.8.3)) + jest-config: 29.7.0(@types/node@22.16.3)(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.3)(typescript@5.8.3)) jest-resolve: 29.7.0 jest-util: 29.7.0 minimatch: 9.0.3 @@ -16678,21 +19260,21 @@ snapshots: - typescript - verdaccio - '@nx/js@21.1.3(@babel/traverse@7.27.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.1.3(@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.3(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.3(@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)))': 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/runtime': 7.27.1 - '@nx/devkit': 21.1.3(nx@21.1.3(@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.1.3(@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)) + '@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.3(nx@21.2.3(@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.3(@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 - 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.27.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 @@ -16717,12 +19299,12 @@ snapshots: - nx - supports-color - '@nx/node@21.1.3(@babel/traverse@7.27.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.15.30)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.28.0(jiti@2.4.2))(nx@21.1.3(@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.15.30)(typescript@5.8.3))(typescript@5.8.3)': + '@nx/node@21.2.3(@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.3)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.31.0(jiti@2.4.2))(nx@21.2.3(@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.3)(typescript@5.8.3))(typescript@5.8.3)': dependencies: - '@nx/devkit': 21.1.3(nx@21.1.3(@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.1.3(@babel/traverse@7.27.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.28.0(jiti@2.4.2))(nx@21.1.3(@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.1.3(@babel/traverse@7.27.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.15.30)(babel-plugin-macros@3.1.0)(nx@21.1.3(@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.15.30)(typescript@5.8.3))(typescript@5.8.3) - '@nx/js': 21.1.3(@babel/traverse@7.27.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.1.3(@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.2.3(nx@21.2.3(@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.3(@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.31.0(jiti@2.4.2))(nx@21.2.3(@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.3(@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.3)(babel-plugin-macros@3.1.0)(nx@21.2.3(@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.3)(typescript@5.8.3))(typescript@5.8.3) + '@nx/js': 21.2.3(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.3(@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))) kill-port: 1.6.1 tcp-port-used: 1.0.2 tslib: 2.8.1 @@ -16742,46 +19324,46 @@ snapshots: - typescript - verdaccio - '@nx/nx-darwin-arm64@21.1.3': + '@nx/nx-darwin-arm64@21.2.3': optional: true - '@nx/nx-darwin-x64@21.1.3': + '@nx/nx-darwin-x64@21.2.3': optional: true - '@nx/nx-freebsd-x64@21.1.3': + '@nx/nx-freebsd-x64@21.2.3': optional: true - '@nx/nx-linux-arm-gnueabihf@21.1.3': + '@nx/nx-linux-arm-gnueabihf@21.2.3': optional: true - '@nx/nx-linux-arm64-gnu@21.1.3': + '@nx/nx-linux-arm64-gnu@21.2.3': optional: true - '@nx/nx-linux-arm64-musl@21.1.3': + '@nx/nx-linux-arm64-musl@21.2.3': optional: true - '@nx/nx-linux-x64-gnu@21.1.3': + '@nx/nx-linux-x64-gnu@21.2.3': optional: true - '@nx/nx-linux-x64-musl@21.1.3': + '@nx/nx-linux-x64-musl@21.2.3': optional: true - '@nx/nx-win32-arm64-msvc@21.1.3': + '@nx/nx-win32-arm64-msvc@21.2.3': optional: true - '@nx/nx-win32-x64-msvc@21.1.3': + '@nx/nx-win32-x64-msvc@21.2.3': optional: true - '@nx/playwright@21.1.3(@babel/traverse@7.27.0)(@playwright/test@1.52.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.28.0(jiti@2.4.2))(nx@21.1.3(@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.2.3(@babel/traverse@7.28.0)(@playwright/test@1.54.1)(@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.31.0(jiti@2.4.2))(nx@21.2.3(@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)': dependencies: - '@nx/devkit': 21.1.3(nx@21.1.3(@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.1.3(@babel/traverse@7.27.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.28.0(jiti@2.4.2))(nx@21.1.3(@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.1.3(@babel/traverse@7.27.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.1.3(@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.2.3(nx@21.2.3(@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.3(@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.31.0(jiti@2.4.2))(nx@21.2.3(@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.3(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.3(@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) minimatch: 9.0.3 tslib: 2.8.1 optionalDependencies: - '@playwright/test': 1.52.0 + '@playwright/test': 1.54.1 transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -16794,10 +19376,10 @@ snapshots: - typescript - verdaccio - '@nx/vite@21.1.3(@babel/traverse@7.27.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.1.3(@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@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0))(vitest@3.2.3)': + '@nx/vite@21.2.3(@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.3(@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.4(@types/node@22.16.3)(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.43.1)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4)': dependencies: - '@nx/devkit': 21.1.3(nx@21.1.3(@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.1.3(@babel/traverse@7.27.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.1.3(@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.2.3(nx@21.2.3(@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.3(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.3(@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) '@swc/helpers': 0.5.17 ajv: 8.17.1 @@ -16805,8 +19387,8 @@ snapshots: picomatch: 4.0.2 semver: 7.7.2 tsconfig-paths: 4.2.0 - vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) - vitest: 3.2.3(@types/debug@4.1.12)(@types/node@22.15.30)(@vitest/ui@3.2.3)(happy-dom@17.6.3)(jiti@2.4.2)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(msw@2.7.5(@types/node@22.15.30)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) + vite: 7.0.4(@types/node@22.16.3)(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.43.1)(tsx@4.20.3)(yaml@2.8.0) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.16.3)(@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.3)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -16817,10 +19399,10 @@ snapshots: - typescript - verdaccio - '@nx/web@21.1.3(@babel/traverse@7.27.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.1.3(@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.2.3(@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.3(@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)))': dependencies: - '@nx/devkit': 21.1.3(nx@21.1.3(@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.1.3(@babel/traverse@7.27.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.1.3(@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.2.3(nx@21.2.3(@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.3(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.3(@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))) detect-port: 1.6.1 http-server: 14.1.1 picocolors: 1.1.1 @@ -16834,13 +19416,13 @@ snapshots: - supports-color - verdaccio - '@nx/workspace@21.1.3(@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.3(@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))': dependencies: - '@nx/devkit': 21.1.3(nx@21.1.3(@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.2.3(nx@21.2.3(@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 chalk: 4.1.2 enquirer: 2.3.6 - nx: 21.1.3(@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.3(@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)) picomatch: 4.0.2 tslib: 2.8.1 yargs-parser: 21.1.1 @@ -16893,7 +19475,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': @@ -16977,9 +19559,9 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@playwright/test@1.52.0': + '@playwright/test@1.54.1': dependencies: - playwright: 1.52.0 + playwright: 1.54.1 '@polka/url@1.0.0-next.29': {} @@ -16989,6 +19571,29 @@ snapshots: dependencies: spacetrim: 0.11.59 + '@protobufjs/aspromise@1.1.2': {} + + '@protobufjs/base64@1.1.2': {} + + '@protobufjs/codegen@2.0.4': {} + + '@protobufjs/eventemitter@1.1.0': {} + + '@protobufjs/fetch@1.1.0': + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + + '@protobufjs/float@1.0.2': {} + + '@protobufjs/inquire@1.1.0': {} + + '@protobufjs/path@1.1.2': {} + + '@protobufjs/pool@1.1.0': {} + + '@protobufjs/utf8@1.1.0': {} + '@puppeteer/browsers@2.10.5': dependencies: debug: 4.4.1(supports-color@6.0.0) @@ -16996,7 +19601,7 @@ snapshots: 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 @@ -17004,307 +19609,307 @@ snapshots: '@radix-ui/primitive@1.0.0': dependencies: - '@babel/runtime': 7.27.1 + '@babel/runtime': 7.27.6 '@radix-ui/primitive@1.1.1': {} - '@radix-ui/react-arrow@1.1.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-arrow@1.1.2(@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)': dependencies: - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@radix-ui/react-primitive': 2.0.2(@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) + react: 16.14.0 + react-dom: 19.1.0(react@16.14.0) optionalDependencies: '@types/react': 19.1.7 '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@radix-ui/react-collection@1.0.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-collection@1.0.1(react-dom@19.1.0(react@16.14.0))(react@16.14.0)': dependencies: - '@babel/runtime': 7.27.1 - '@radix-ui/react-compose-refs': 1.0.0(react@19.1.0) - '@radix-ui/react-context': 1.0.0(react@19.1.0) - '@radix-ui/react-primitive': 1.0.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.0.1(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@babel/runtime': 7.27.6 + '@radix-ui/react-compose-refs': 1.0.0(react@16.14.0) + '@radix-ui/react-context': 1.0.0(react@16.14.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@19.1.0(react@16.14.0))(react@16.14.0) + '@radix-ui/react-slot': 1.0.1(react@16.14.0) + react: 16.14.0 + react-dom: 19.1.0(react@16.14.0) - '@radix-ui/react-compose-refs@1.0.0(react@19.1.0)': + '@radix-ui/react-compose-refs@1.0.0(react@16.14.0)': dependencies: - '@babel/runtime': 7.27.1 - react: 19.1.0 + '@babel/runtime': 7.27.6 + react: 16.14.0 - '@radix-ui/react-compose-refs@1.1.1(@types/react@19.1.7)(react@19.1.0)': + '@radix-ui/react-compose-refs@1.1.1(@types/react@19.1.7)(react@16.14.0)': dependencies: - react: 19.1.0 + react: 16.14.0 optionalDependencies: '@types/react': 19.1.7 - '@radix-ui/react-context@1.0.0(react@19.1.0)': + '@radix-ui/react-context@1.0.0(react@16.14.0)': dependencies: - '@babel/runtime': 7.27.1 - react: 19.1.0 + '@babel/runtime': 7.27.6 + react: 16.14.0 - '@radix-ui/react-context@1.1.1(@types/react@19.1.7)(react@19.1.0)': + '@radix-ui/react-context@1.1.1(@types/react@19.1.7)(react@16.14.0)': dependencies: - react: 19.1.0 + react: 16.14.0 optionalDependencies: '@types/react': 19.1.7 - '@radix-ui/react-direction@1.0.0(react@19.1.0)': + '@radix-ui/react-direction@1.0.0(react@16.14.0)': dependencies: - '@babel/runtime': 7.27.1 - react: 19.1.0 + '@babel/runtime': 7.27.6 + react: 16.14.0 - '@radix-ui/react-dismissable-layer@1.1.5(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-dismissable-layer@1.1.5(@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)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@19.1.7)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.7)(react@16.14.0) + '@radix-ui/react-primitive': 2.0.2(@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) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.1.7)(react@16.14.0) + '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@19.1.7)(react@16.14.0) + react: 16.14.0 + react-dom: 19.1.0(react@16.14.0) optionalDependencies: '@types/react': 19.1.7 '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@radix-ui/react-focus-guards@1.1.1(@types/react@19.1.7)(react@19.1.0)': + '@radix-ui/react-focus-guards@1.1.1(@types/react@19.1.7)(react@16.14.0)': dependencies: - react: 19.1.0 + react: 16.14.0 optionalDependencies: '@types/react': 19.1.7 - '@radix-ui/react-focus-scope@1.1.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-focus-scope@1.1.2(@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)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.1.7)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.7)(react@16.14.0) + '@radix-ui/react-primitive': 2.0.2(@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) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.1.7)(react@16.14.0) + react: 16.14.0 + react-dom: 19.1.0(react@16.14.0) optionalDependencies: '@types/react': 19.1.7 '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@radix-ui/react-id@1.0.0(react@19.1.0)': + '@radix-ui/react-id@1.0.0(react@16.14.0)': dependencies: - '@babel/runtime': 7.27.1 - '@radix-ui/react-use-layout-effect': 1.0.0(react@19.1.0) - react: 19.1.0 + '@babel/runtime': 7.27.6 + '@radix-ui/react-use-layout-effect': 1.0.0(react@16.14.0) + react: 16.14.0 - '@radix-ui/react-id@1.1.0(@types/react@19.1.7)(react@19.1.0)': + '@radix-ui/react-id@1.1.0(@types/react@19.1.7)(react@16.14.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.1.7)(react@19.1.0) - react: 19.1.0 + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.1.7)(react@16.14.0) + react: 16.14.0 optionalDependencies: '@types/react': 19.1.7 - '@radix-ui/react-popover@1.1.6(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-popover@1.1.6(@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)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-context': 1.1.1(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.0(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-popper': 1.2.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-portal': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.1.2(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.7)(react@16.14.0) + '@radix-ui/react-context': 1.1.1(@types/react@19.1.7)(react@16.14.0) + '@radix-ui/react-dismissable-layer': 1.1.5(@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) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.1.7)(react@16.14.0) + '@radix-ui/react-focus-scope': 1.1.2(@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) + '@radix-ui/react-id': 1.1.0(@types/react@19.1.7)(react@16.14.0) + '@radix-ui/react-popper': 1.2.2(@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) + '@radix-ui/react-portal': 1.1.4(@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) + '@radix-ui/react-presence': 1.1.2(@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) + '@radix-ui/react-primitive': 2.0.2(@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) + '@radix-ui/react-slot': 1.1.2(@types/react@19.1.7)(react@16.14.0) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.1.7)(react@16.14.0) aria-hidden: 1.2.4 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - react-remove-scroll: 2.6.3(@types/react@19.1.7)(react@19.1.0) + react: 16.14.0 + react-dom: 19.1.0(react@16.14.0) + react-remove-scroll: 2.6.3(@types/react@19.1.7)(react@16.14.0) optionalDependencies: '@types/react': 19.1.7 '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@radix-ui/react-popper@1.2.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-popper@1.2.2(@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)': dependencies: - '@floating-ui/react-dom': 2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-arrow': 1.1.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-context': 1.1.1(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-use-rect': 1.1.0(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-use-size': 1.1.0(@types/react@19.1.7)(react@19.1.0) + '@floating-ui/react-dom': 2.1.2(react-dom@19.1.0(react@16.14.0))(react@16.14.0) + '@radix-ui/react-arrow': 1.1.2(@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) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.7)(react@16.14.0) + '@radix-ui/react-context': 1.1.1(@types/react@19.1.7)(react@16.14.0) + '@radix-ui/react-primitive': 2.0.2(@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) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.1.7)(react@16.14.0) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.1.7)(react@16.14.0) + '@radix-ui/react-use-rect': 1.1.0(@types/react@19.1.7)(react@16.14.0) + '@radix-ui/react-use-size': 1.1.0(@types/react@19.1.7)(react@16.14.0) '@radix-ui/rect': 1.1.0 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + react: 16.14.0 + react-dom: 19.1.0(react@16.14.0) optionalDependencies: '@types/react': 19.1.7 '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@radix-ui/react-portal@1.1.4(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-portal@1.1.4(@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)': dependencies: - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.1.7)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@radix-ui/react-primitive': 2.0.2(@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) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.1.7)(react@16.14.0) + react: 16.14.0 + react-dom: 19.1.0(react@16.14.0) optionalDependencies: '@types/react': 19.1.7 '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@radix-ui/react-presence@1.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-presence@1.0.0(react-dom@19.1.0(react@16.14.0))(react@16.14.0)': dependencies: - '@babel/runtime': 7.27.1 - '@radix-ui/react-compose-refs': 1.0.0(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.0.0(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@babel/runtime': 7.27.6 + '@radix-ui/react-compose-refs': 1.0.0(react@16.14.0) + '@radix-ui/react-use-layout-effect': 1.0.0(react@16.14.0) + react: 16.14.0 + react-dom: 19.1.0(react@16.14.0) - '@radix-ui/react-presence@1.1.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-presence@1.1.2(@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)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.1.7)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.7)(react@16.14.0) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.1.7)(react@16.14.0) + react: 16.14.0 + react-dom: 19.1.0(react@16.14.0) optionalDependencies: '@types/react': 19.1.7 '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@radix-ui/react-primitive@1.0.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-primitive@1.0.1(react-dom@19.1.0(react@16.14.0))(react@16.14.0)': dependencies: - '@babel/runtime': 7.27.1 - '@radix-ui/react-slot': 1.0.1(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@babel/runtime': 7.27.6 + '@radix-ui/react-slot': 1.0.1(react@16.14.0) + react: 16.14.0 + react-dom: 19.1.0(react@16.14.0) - '@radix-ui/react-primitive@2.0.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-primitive@2.0.2(@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)': dependencies: - '@radix-ui/react-slot': 1.1.2(@types/react@19.1.7)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@radix-ui/react-slot': 1.1.2(@types/react@19.1.7)(react@16.14.0) + react: 16.14.0 + react-dom: 19.1.0(react@16.14.0) optionalDependencies: '@types/react': 19.1.7 '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@radix-ui/react-roving-focus@1.0.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-roving-focus@1.0.2(react-dom@19.1.0(react@16.14.0))(react@16.14.0)': + dependencies: + '@babel/runtime': 7.27.6 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-collection': 1.0.1(react-dom@19.1.0(react@16.14.0))(react@16.14.0) + '@radix-ui/react-compose-refs': 1.0.0(react@16.14.0) + '@radix-ui/react-context': 1.0.0(react@16.14.0) + '@radix-ui/react-direction': 1.0.0(react@16.14.0) + '@radix-ui/react-id': 1.0.0(react@16.14.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@19.1.0(react@16.14.0))(react@16.14.0) + '@radix-ui/react-use-callback-ref': 1.0.0(react@16.14.0) + '@radix-ui/react-use-controllable-state': 1.0.0(react@16.14.0) + react: 16.14.0 + react-dom: 19.1.0(react@16.14.0) + + '@radix-ui/react-slot@1.0.1(react@16.14.0)': + dependencies: + '@babel/runtime': 7.27.6 + '@radix-ui/react-compose-refs': 1.0.0(react@16.14.0) + react: 16.14.0 + + '@radix-ui/react-slot@1.1.2(@types/react@19.1.7)(react@16.14.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.7)(react@16.14.0) + react: 16.14.0 + optionalDependencies: + '@types/react': 19.1.7 + + '@radix-ui/react-tabs@1.0.2(react-dom@19.1.0(react@16.14.0))(react@16.14.0)': dependencies: '@babel/runtime': 7.27.1 '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-collection': 1.0.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.0.0(react@19.1.0) - '@radix-ui/react-context': 1.0.0(react@19.1.0) - '@radix-ui/react-direction': 1.0.0(react@19.1.0) - '@radix-ui/react-id': 1.0.0(react@19.1.0) - '@radix-ui/react-primitive': 1.0.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.0.0(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.0.0(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@radix-ui/react-context': 1.0.0(react@16.14.0) + '@radix-ui/react-direction': 1.0.0(react@16.14.0) + '@radix-ui/react-id': 1.0.0(react@16.14.0) + '@radix-ui/react-presence': 1.0.0(react-dom@19.1.0(react@16.14.0))(react@16.14.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@19.1.0(react@16.14.0))(react@16.14.0) + '@radix-ui/react-roving-focus': 1.0.2(react-dom@19.1.0(react@16.14.0))(react@16.14.0) + '@radix-ui/react-use-controllable-state': 1.0.0(react@16.14.0) + react: 16.14.0 + react-dom: 19.1.0(react@16.14.0) - '@radix-ui/react-slot@1.0.1(react@19.1.0)': + '@radix-ui/react-use-callback-ref@1.0.0(react@16.14.0)': dependencies: - '@babel/runtime': 7.27.1 - '@radix-ui/react-compose-refs': 1.0.0(react@19.1.0) - react: 19.1.0 + '@babel/runtime': 7.27.6 + react: 16.14.0 - '@radix-ui/react-slot@1.1.2(@types/react@19.1.7)(react@19.1.0)': + '@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.1.7)(react@16.14.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.7)(react@19.1.0) - react: 19.1.0 + react: 16.14.0 optionalDependencies: '@types/react': 19.1.7 - '@radix-ui/react-tabs@1.0.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-use-controllable-state@1.0.0(react@16.14.0)': dependencies: - '@babel/runtime': 7.27.1 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-context': 1.0.0(react@19.1.0) - '@radix-ui/react-direction': 1.0.0(react@19.1.0) - '@radix-ui/react-id': 1.0.0(react@19.1.0) - '@radix-ui/react-presence': 1.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 1.0.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-roving-focus': 1.0.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.0.0(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@babel/runtime': 7.27.6 + '@radix-ui/react-use-callback-ref': 1.0.0(react@16.14.0) + react: 16.14.0 - '@radix-ui/react-use-callback-ref@1.0.0(react@19.1.0)': + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.1.7)(react@16.14.0)': dependencies: - '@babel/runtime': 7.27.1 - react: 19.1.0 - - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.1.7)(react@19.1.0)': - dependencies: - react: 19.1.0 + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.1.7)(react@16.14.0) + react: 16.14.0 optionalDependencies: '@types/react': 19.1.7 - '@radix-ui/react-use-controllable-state@1.0.0(react@19.1.0)': + '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@19.1.7)(react@16.14.0)': dependencies: - '@babel/runtime': 7.27.1 - '@radix-ui/react-use-callback-ref': 1.0.0(react@19.1.0) - react: 19.1.0 - - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.1.7)(react@19.1.0)': - dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.1.7)(react@19.1.0) - react: 19.1.0 + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.1.7)(react@16.14.0) + react: 16.14.0 optionalDependencies: '@types/react': 19.1.7 - '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@19.1.7)(react@19.1.0)': + '@radix-ui/react-use-layout-effect@1.0.0(react@16.14.0)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.1.7)(react@19.1.0) - react: 19.1.0 + '@babel/runtime': 7.27.6 + react: 16.14.0 + + '@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.1.7)(react@16.14.0)': + dependencies: + react: 16.14.0 optionalDependencies: '@types/react': 19.1.7 - '@radix-ui/react-use-layout-effect@1.0.0(react@19.1.0)': - dependencies: - '@babel/runtime': 7.27.1 - react: 19.1.0 - - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.1.7)(react@19.1.0)': - dependencies: - react: 19.1.0 - optionalDependencies: - '@types/react': 19.1.7 - - '@radix-ui/react-use-rect@1.1.0(@types/react@19.1.7)(react@19.1.0)': + '@radix-ui/react-use-rect@1.1.0(@types/react@19.1.7)(react@16.14.0)': dependencies: '@radix-ui/rect': 1.1.0 - react: 19.1.0 + react: 16.14.0 optionalDependencies: '@types/react': 19.1.7 - '@radix-ui/react-use-size@1.1.0(@types/react@19.1.7)(react@19.1.0)': + '@radix-ui/react-use-size@1.1.0(@types/react@19.1.7)(react@16.14.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.1.7)(react@19.1.0) - react: 19.1.0 + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.1.7)(react@16.14.0) + react: 16.14.0 optionalDependencies: '@types/react': 19.1.7 '@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.37.1)': + '@replit/codemirror-indentation-markers@6.5.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.0)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@codemirror/view': 6.38.0 - '@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.37.1)(@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.0)(@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.37.1 + '@codemirror/view': 6.38.0 '@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.37.1)': + '@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)': dependencies: '@codemirror/commands': 6.8.1 '@codemirror/language': 6.11.0 '@codemirror/search': 6.5.11 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.37.1 + '@codemirror/view': 6.38.0 '@rollup/plugin-commonjs@25.0.8(rollup@4.40.0)': dependencies: @@ -17365,73 +19970,141 @@ snapshots: '@rollup/pluginutils@5.1.4(rollup@4.40.0)': dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: rollup: 4.40.0 + '@rollup/pluginutils@5.1.4(rollup@4.44.2)': + dependencies: + '@types/estree': 1.0.8 + estree-walker: 2.0.2 + picomatch: 4.0.2 + optionalDependencies: + rollup: 4.44.2 + '@rollup/rollup-android-arm-eabi@4.40.0': optional: true + '@rollup/rollup-android-arm-eabi@4.44.2': + optional: true + '@rollup/rollup-android-arm64@4.40.0': optional: true + '@rollup/rollup-android-arm64@4.44.2': + optional: true + '@rollup/rollup-darwin-arm64@4.40.0': optional: true + '@rollup/rollup-darwin-arm64@4.44.2': + optional: true + '@rollup/rollup-darwin-x64@4.40.0': optional: true + '@rollup/rollup-darwin-x64@4.44.2': + optional: true + '@rollup/rollup-freebsd-arm64@4.40.0': optional: true + '@rollup/rollup-freebsd-arm64@4.44.2': + optional: true + '@rollup/rollup-freebsd-x64@4.40.0': optional: true + '@rollup/rollup-freebsd-x64@4.44.2': + optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.40.0': optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.44.2': + optional: true + '@rollup/rollup-linux-arm-musleabihf@4.40.0': optional: true + '@rollup/rollup-linux-arm-musleabihf@4.44.2': + optional: true + '@rollup/rollup-linux-arm64-gnu@4.40.0': optional: true + '@rollup/rollup-linux-arm64-gnu@4.44.2': + optional: true + '@rollup/rollup-linux-arm64-musl@4.40.0': optional: true + '@rollup/rollup-linux-arm64-musl@4.44.2': + optional: true + '@rollup/rollup-linux-loongarch64-gnu@4.40.0': optional: true + '@rollup/rollup-linux-loongarch64-gnu@4.44.2': + optional: true + '@rollup/rollup-linux-powerpc64le-gnu@4.40.0': optional: true + '@rollup/rollup-linux-powerpc64le-gnu@4.44.2': + optional: true + '@rollup/rollup-linux-riscv64-gnu@4.40.0': optional: true + '@rollup/rollup-linux-riscv64-gnu@4.44.2': + optional: true + '@rollup/rollup-linux-riscv64-musl@4.40.0': optional: true + '@rollup/rollup-linux-riscv64-musl@4.44.2': + optional: true + '@rollup/rollup-linux-s390x-gnu@4.40.0': optional: true + '@rollup/rollup-linux-s390x-gnu@4.44.2': + optional: true + '@rollup/rollup-linux-x64-gnu@4.40.0': optional: true + '@rollup/rollup-linux-x64-gnu@4.44.2': + optional: true + '@rollup/rollup-linux-x64-musl@4.40.0': optional: true + '@rollup/rollup-linux-x64-musl@4.44.2': + optional: true + '@rollup/rollup-win32-arm64-msvc@4.40.0': optional: true + '@rollup/rollup-win32-arm64-msvc@4.44.2': + optional: true + '@rollup/rollup-win32-ia32-msvc@4.40.0': optional: true + '@rollup/rollup-win32-ia32-msvc@4.44.2': + optional: true + '@rollup/rollup-win32-x64-msvc@4.40.0': optional: true - '@rushstack/node-core-library@5.13.1(@types/node@22.15.30)': + '@rollup/rollup-win32-x64-msvc@4.44.2': + optional: true + + '@rushstack/node-core-library@5.13.1(@types/node@22.16.3)': dependencies: ajv: 8.13.0 ajv-draft-04: 1.0.0(ajv@8.13.0) @@ -17442,23 +20115,23 @@ snapshots: resolve: 1.22.10 semver: 7.5.4 optionalDependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@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.15.30)': + '@rushstack/terminal@0.15.3(@types/node@22.16.3)': dependencies: - '@rushstack/node-core-library': 5.13.1(@types/node@22.15.30) + '@rushstack/node-core-library': 5.13.1(@types/node@22.16.3) supports-color: 8.1.1 optionalDependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 - '@rushstack/ts-command-line@5.0.1(@types/node@22.15.30)': + '@rushstack/ts-command-line@5.0.1(@types/node@22.16.3)': dependencies: - '@rushstack/terminal': 0.15.3(@types/node@22.15.30) + '@rushstack/terminal': 0.15.3(@types/node@22.16.3) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 @@ -17477,6 +20150,8 @@ snapshots: '@sinclair/typebox@0.27.8': {} + '@sinclair/typebox@0.31.28': {} + '@sindresorhus/is@4.6.0': {} '@sinonjs/commons@3.0.1': @@ -17487,6 +20162,309 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 + '@smithy/abort-controller@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/config-resolver@4.1.4': + dependencies: + '@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@3.7.0': + dependencies: + '@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@4.0.6': + dependencies: + '@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@4.0.4': + dependencies: + '@aws-crypto/crc32': 5.2.0 + '@smithy/types': 4.3.1 + '@smithy/util-hex-encoding': 4.0.0 + tslib: 2.8.1 + + '@smithy/eventstream-serde-browser@4.0.4': + dependencies: + '@smithy/eventstream-serde-universal': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/eventstream-serde-config-resolver@4.1.2': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/eventstream-serde-node@4.0.4': + dependencies: + '@smithy/eventstream-serde-universal': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/eventstream-serde-universal@4.0.4': + dependencies: + '@smithy/eventstream-codec': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/fetch-http-handler@5.1.0': + dependencies: + '@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/hash-node@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + '@smithy/util-buffer-from': 4.0.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/invalid-dependency@4.0.4': + dependencies: + '@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@4.0.0': + dependencies: + tslib: 2.8.1 + + '@smithy/middleware-content-length@4.0.4': + dependencies: + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/middleware-endpoint@4.1.14': + dependencies: + '@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@4.1.15': + dependencies: + '@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@4.0.8': + dependencies: + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/middleware-stack@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/node-config-provider@4.1.3': + dependencies: + '@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@4.1.0': + dependencies: + '@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@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/protocol-http@5.1.2': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/querystring-builder@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + '@smithy/util-uri-escape': 4.0.0 + tslib: 2.8.1 + + '@smithy/querystring-parser@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/service-error-classification@4.0.6': + dependencies: + '@smithy/types': 4.3.1 + + '@smithy/shared-ini-file-loader@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/signature-v4@5.1.2': + dependencies: + '@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@4.4.6': + dependencies: + '@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@4.3.1': + dependencies: + tslib: 2.8.1 + + '@smithy/url-parser@4.0.4': + dependencies: + '@smithy/querystring-parser': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/util-base64@4.0.0': + dependencies: + '@smithy/util-buffer-from': 4.0.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/util-body-length-browser@4.0.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-body-length-node@4.0.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-buffer-from@2.2.0': + dependencies: + '@smithy/is-array-buffer': 2.2.0 + tslib: 2.8.1 + + '@smithy/util-buffer-from@4.0.0': + dependencies: + '@smithy/is-array-buffer': 4.0.0 + tslib: 2.8.1 + + '@smithy/util-config-provider@4.0.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-defaults-mode-browser@4.0.22': + dependencies: + '@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@4.0.22': + dependencies: + '@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@3.0.6': + dependencies: + '@smithy/node-config-provider': 4.1.3 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/util-hex-encoding@4.0.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-middleware@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/util-retry@4.0.6': + dependencies: + '@smithy/service-error-classification': 4.0.6 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/util-stream@4.2.3': + dependencies: + '@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@4.0.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-utf8@2.3.0': + dependencies: + '@smithy/util-buffer-from': 2.2.0 + tslib: 2.8.1 + + '@smithy/util-utf8@4.0.0': + dependencies: + '@smithy/util-buffer-from': 4.0.0 + tslib: 2.8.1 + + '@socket.io/component-emitter@3.1.2': {} + + '@sqlite.org/sqlite-wasm@3.48.0-build4': {} + '@ssddanbrown/codemirror-lang-smarty@1.0.0': {} '@ssddanbrown/codemirror-lang-twig@1.0.0': @@ -17495,18 +20473,78 @@ snapshots: '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 - '@stylistic/eslint-plugin@4.4.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': + '@stylistic/eslint-plugin@4.4.1(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@typescript-eslint/utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.28.0(jiti@2.4.2) - eslint-visitor-keys: 4.2.0 - espree: 10.3.0 + '@typescript-eslint/utils': 8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.31.0(jiti@2.4.2) + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 estraverse: 5.3.0 picomatch: 4.0.2 transitivePeerDependencies: - supports-color - typescript + '@stylistic/stylelint-plugin@3.1.3(stylelint@16.21.1(typescript@5.8.3))': + dependencies: + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/media-query-list-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + is-plain-object: 5.0.0 + postcss: 8.5.6 + 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) + + '@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.5(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.6)(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.6)(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)))': + dependencies: + '@sveltejs/kit': 2.22.5(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.6)(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.6)(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)) + + '@sveltejs/kit@2.22.5(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.6)(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.6)(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0))': + dependencies: + '@sveltejs/acorn-typescript': 1.0.5(acorn@8.15.0) + '@sveltejs/vite-plugin-svelte': 6.0.0(svelte@5.35.6)(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)) + '@types/cookie': 0.6.0 + acorn: 8.15.0 + cookie: 0.6.0 + devalue: 5.1.1 + esm-env: 1.2.2 + kleur: 4.1.5 + magic-string: 0.30.17 + mrmime: 2.0.1 + sade: 1.8.1 + set-cookie-parser: 2.7.1 + sirv: 3.0.1 + svelte: 5.35.6 + vite: 7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0) + + '@sveltejs/vite-plugin-svelte-inspector@5.0.0(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.6)(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.6)(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0))': + dependencies: + '@sveltejs/vite-plugin-svelte': 6.0.0(svelte@5.35.6)(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)) + debug: 4.4.1(supports-color@6.0.0) + svelte: 5.35.6 + vite: 7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0) + transitivePeerDependencies: + - supports-color + + '@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.6)(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0))': + dependencies: + '@sveltejs/vite-plugin-svelte-inspector': 5.0.0(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.6)(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.6)(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)) + 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.6 + vite: 7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0) + vitefu: 1.1.1(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)) + transitivePeerDependencies: + - supports-color + '@swc-node/core@1.13.3(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)': dependencies: '@swc/core': 1.11.29(@swc/helpers@0.5.17) @@ -17592,14 +20630,95 @@ snapshots: dependencies: '@swc/counter': 0.1.3 + '@symbiotejs/symbiote@1.11.7': {} + '@szmarczak/http-timer@4.0.6': dependencies: defer-to-connect: 2.0.1 + '@tailwindcss/node@4.1.11': + dependencies: + '@ampproject/remapping': 2.3.0 + enhanced-resolve: 5.18.2 + jiti: 2.4.2 + lightningcss: 1.30.1 + magic-string: 0.30.17 + source-map-js: 1.2.1 + tailwindcss: 4.1.11 + + '@tailwindcss/oxide-android-arm64@4.1.11': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.1.11': + optional: true + + '@tailwindcss/oxide-darwin-x64@4.1.11': + optional: true + + '@tailwindcss/oxide-freebsd-x64@4.1.11': + optional: true + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.11': + optional: true + + '@tailwindcss/oxide-linux-arm64-gnu@4.1.11': + optional: true + + '@tailwindcss/oxide-linux-arm64-musl@4.1.11': + optional: true + + '@tailwindcss/oxide-linux-x64-gnu@4.1.11': + optional: true + + '@tailwindcss/oxide-linux-x64-musl@4.1.11': + optional: true + + '@tailwindcss/oxide-wasm32-wasi@4.1.11': + optional: true + + '@tailwindcss/oxide-win32-arm64-msvc@4.1.11': + optional: true + + '@tailwindcss/oxide-win32-x64-msvc@4.1.11': + optional: true + + '@tailwindcss/oxide@4.1.11': + dependencies: + detect-libc: 2.0.4 + tar: 7.4.3 + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.1.11 + '@tailwindcss/oxide-darwin-arm64': 4.1.11 + '@tailwindcss/oxide-darwin-x64': 4.1.11 + '@tailwindcss/oxide-freebsd-x64': 4.1.11 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.11 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.11 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.11 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.11 + '@tailwindcss/oxide-linux-x64-musl': 4.1.11 + '@tailwindcss/oxide-wasm32-wasi': 4.1.11 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.11 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.11 + + '@tailwindcss/typography@0.5.16(tailwindcss@4.1.11)': + dependencies: + lodash.castarray: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + postcss-selector-parser: 6.0.10 + tailwindcss: 4.1.11 + + '@tailwindcss/vite@4.1.11(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0))': + dependencies: + '@tailwindcss/node': 4.1.11 + '@tailwindcss/oxide': 4.1.11 + tailwindcss: 4.1.11 + vite: 7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0) + '@testing-library/dom@10.4.0': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/runtime': 7.27.1 + '@babel/code-frame': 7.27.1 + '@babel/runtime': 7.27.6 '@types/aria-query': 5.0.4 aria-query: 5.3.0 chalk: 4.1.2 @@ -17639,13 +20758,18 @@ snapshots: '@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.15.30 + '@types/node': 22.16.3 optional: true '@types/archiver@6.0.3': @@ -17658,24 +20782,24 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.27.5 - '@babel/types': 7.27.6 + '@babel/parser': 7.28.0 + '@babel/types': 7.28.0 '@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.27.6 + '@babel/types': 7.28.0 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.27.5 - '@babel/types': 7.27.6 + '@babel/parser': 7.28.0 + '@babel/types': 7.28.0 '@types/babel__traverse@7.20.7': dependencies: - '@babel/types': 7.27.6 + '@babel/types': 7.28.0 '@types/better-sqlite3@7.6.13': dependencies: @@ -17684,11 +20808,11 @@ snapshots: '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@types/bonjour@3.5.13': dependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@types/bootstrap@5.2.10': dependencies: @@ -17698,7 +20822,7 @@ snapshots: dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@types/responselike': 1.0.3 '@types/chai@5.2.2': @@ -17722,19 +20846,18 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: - '@types/express-serve-static-core': 5.0.6 - '@types/node': 22.15.30 + '@types/express-serve-static-core': 5.0.7 + '@types/node': 22.16.3 '@types/connect@3.4.38': dependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@types/cookie-parser@1.4.9(@types/express@5.0.3)': dependencies: '@types/express': 5.0.3 - '@types/cookie@0.6.0': - optional: true + '@types/cookie@0.6.0': {} '@types/cookiejar@2.1.5': {} @@ -17878,22 +21001,24 @@ snapshots: '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 9.6.1 - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@types/eslint@9.6.1': dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 '@types/estree@1.0.7': {} + '@types/estree@1.0.8': {} + '@types/express-http-proxy@1.6.6': 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.15.30 + '@types/node': 22.16.3 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 0.17.5 @@ -17905,14 +21030,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': @@ -17922,7 +21047,7 @@ snapshots: '@types/fs-extra@9.0.13': dependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 optional: true '@types/geojson@7946.0.16': {} @@ -17930,11 +21055,15 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 + + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.3 '@types/html@1.0.4': {} @@ -17944,7 +21073,7 @@ snapshots: '@types/http-proxy@1.17.16': dependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@types/ini@4.1.1': {} @@ -17974,17 +21103,17 @@ snapshots: '@types/jsonfile@6.1.4': dependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@types/keyv@3.1.4': dependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@types/leaflet-gpx@1.3.7': dependencies: - '@types/leaflet': 1.9.18 + '@types/leaflet': 1.9.20 - '@types/leaflet@1.9.18': + '@types/leaflet@1.9.20': dependencies: '@types/geojson': 7946.0.16 @@ -17994,20 +21123,18 @@ snapshots: '@types/lodash@4.17.16': {} + '@types/luxon@3.6.2': {} + '@types/mark.js@8.11.12': dependencies: '@types/jquery': 3.5.32 - '@types/marked@4.3.2': {} - - '@types/mdast@3.0.15': + '@types/mdast@4.0.4': dependencies: '@types/unist': 2.0.11 '@types/methods@1.1.4': {} - '@types/mime-types@3.0.0': {} - '@types/mime-types@3.0.1': {} '@types/mime@1.3.5': {} @@ -18016,13 +21143,13 @@ snapshots: '@types/ms@2.1.0': {} - '@types/multer@1.4.13': + '@types/multer@2.0.0': dependencies: '@types/express': 5.0.3 - '@types/node-forge@1.3.11': + '@types/node-forge@1.3.12': dependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@types/node@16.9.1': {} @@ -18030,11 +21157,11 @@ snapshots: dependencies: undici-types: 6.19.8 - '@types/node@22.15.21': + '@types/node@20.19.6': dependencies: undici-types: 6.21.0 - '@types/node@22.15.29': + '@types/node@22.15.21': dependencies: undici-types: 6.21.0 @@ -18042,6 +21169,14 @@ snapshots: dependencies: undici-types: 6.21.0 + '@types/node@22.16.3': + dependencies: + undici-types: 6.21.0 + + '@types/node@24.0.12': + dependencies: + undici-types: 7.8.0 + '@types/parse-json@4.0.2': {} '@types/qs@6.14.0': {} @@ -18051,20 +21186,22 @@ snapshots: '@types/react-dom@19.1.6(@types/react@19.1.7)': dependencies: '@types/react': 19.1.7 + optional: true '@types/react@19.1.7': dependencies: csstype: 3.1.3 + optional: true '@types/readdir-glob@1.1.5': dependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@types/resolve@1.20.2': {} '@types/responselike@1.0.3': dependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@types/retry@0.12.2': {} @@ -18078,17 +21215,15 @@ snapshots: dependencies: '@types/node': 22.15.21 - '@types/semver@7.7.0': {} - '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@types/send@0.17.5': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@types/serve-favicon@2.5.7': dependencies: @@ -18096,7 +21231,7 @@ snapshots: '@types/serve-index@1.9.4': dependencies: - '@types/express': 5.0.3 + '@types/express': 4.17.23 '@types/serve-static@1.15.8': dependencies: @@ -18115,7 +21250,7 @@ snapshots: '@types/sockjs@0.3.36': dependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@types/stack-utils@2.0.3': {} @@ -18130,7 +21265,7 @@ snapshots: dependencies: '@types/cookiejar': 2.1.5 '@types/methods': 1.1.4 - '@types/node': 22.15.30 + '@types/node': 22.16.3 form-data: 4.0.2 '@types/supertest@6.0.3': @@ -18143,13 +21278,9 @@ snapshots: '@types/express': 5.0.3 '@types/serve-static': 1.15.8 - '@types/swagger-ui@3.52.4': {} + '@types/swagger-ui@5.21.1': {} - '@types/tesseract.js@2.0.0(encoding@0.1.13)': - dependencies: - tesseract.js: 6.0.1(encoding@0.1.13) - transitivePeerDependencies: - - encoding + '@types/tabulator-tables@6.2.7': {} '@types/tmp@0.2.6': {} @@ -18162,6 +21293,12 @@ 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': {} '@types/ws@8.18.1': @@ -18180,202 +21317,75 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 optional: true - '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.36.0(@typescript-eslint/parser@8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.4.1(supports-color@6.0.0) - eslint: 8.57.1 + '@typescript-eslint/parser': 8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.36.0 + '@typescript-eslint/type-utils': 8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.36.0 + eslint: 9.31.0(jiti@2.4.2) graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - semver: 7.7.2 - ts-api-utils: 1.4.3(typescript@5.8.3) - optionalDependencies: - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/eslint-plugin@8.34.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': - dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.34.0 - '@typescript-eslint/type-utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.34.0 - eslint: 9.28.0(jiti@2.4.2) - graphemer: 1.4.0 - ignore: 7.0.4 + ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/parser@8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.34.0 - '@typescript-eslint/type-utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.34.0 - eslint: 9.28.0(jiti@2.4.2) - graphemer: 1.4.0 - ignore: 7.0.4 - natural-compare: 1.4.0 + '@typescript-eslint/scope-manager': 8.36.0 + '@typescript-eslint/types': 8.36.0 + '@typescript-eslint/typescript-estree': 8.36.0(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.36.0 + debug: 4.4.1(supports-color@6.0.0) + eslint: 9.31.0(jiti@2.4.2) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.36.0(typescript@5.8.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.36.0(typescript@5.8.3) + '@typescript-eslint/types': 8.36.0 + debug: 4.4.1(supports-color@6.0.0) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.36.0': + dependencies: + '@typescript-eslint/types': 8.36.0 + '@typescript-eslint/visitor-keys': 8.36.0 + + '@typescript-eslint/tsconfig-utils@8.36.0(typescript@5.8.3)': + dependencies: + typescript: 5.8.3 + + '@typescript-eslint/type-utils@8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)': + dependencies: + '@typescript-eslint/typescript-estree': 8.36.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) + debug: 4.4.1(supports-color@6.0.0) + eslint: 9.31.0(jiti@2.4.2) ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/types@8.36.0': {} + + '@typescript-eslint/typescript-estree@8.36.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.4.1(supports-color@6.0.0) - eslint: 8.57.1 - optionalDependencies: - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.33.1 - '@typescript-eslint/types': 8.33.1 - '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.33.1 - debug: 4.4.1(supports-color@6.0.0) - eslint: 9.28.0(jiti@2.4.2) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.34.0 - '@typescript-eslint/types': 8.34.0 - '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.34.0 - debug: 4.4.1(supports-color@6.0.0) - eslint: 9.28.0(jiti@2.4.2) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/project-service@8.33.1(typescript@5.8.3)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.33.1(typescript@5.8.3) - '@typescript-eslint/types': 8.33.1 - debug: 4.4.1(supports-color@6.0.0) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/project-service@8.34.0(typescript@5.8.3)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.34.0(typescript@5.8.3) - '@typescript-eslint/types': 8.34.0 - debug: 4.4.1(supports-color@6.0.0) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@6.21.0': - dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - - '@typescript-eslint/scope-manager@8.33.1': - dependencies: - '@typescript-eslint/types': 8.33.1 - '@typescript-eslint/visitor-keys': 8.33.1 - - '@typescript-eslint/scope-manager@8.34.0': - dependencies: - '@typescript-eslint/types': 8.34.0 - '@typescript-eslint/visitor-keys': 8.34.0 - - '@typescript-eslint/tsconfig-utils@8.33.1(typescript@5.8.3)': - dependencies: - typescript: 5.8.3 - - '@typescript-eslint/tsconfig-utils@8.34.0(typescript@5.8.3)': - dependencies: - typescript: 5.8.3 - - '@typescript-eslint/type-utils@6.21.0(eslint@8.57.1)(typescript@5.8.3)': - dependencies: - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.8.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.8.3) - debug: 4.4.1(supports-color@6.0.0) - eslint: 8.57.1 - ts-api-utils: 1.4.3(typescript@5.8.3) - optionalDependencies: - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/type-utils@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': - dependencies: - '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - debug: 4.4.1(supports-color@6.0.0) - eslint: 9.28.0(jiti@2.4.2) - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/type-utils@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': - dependencies: - '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - debug: 4.4.1(supports-color@6.0.0) - eslint: 9.28.0(jiti@2.4.2) - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@6.21.0': {} - - '@typescript-eslint/types@8.33.1': {} - - '@typescript-eslint/types@8.34.0': {} - - '@typescript-eslint/typescript-estree@6.21.0(typescript@5.8.3)': - dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.4.1(supports-color@6.0.0) - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.7.2 - ts-api-utils: 1.4.3(typescript@5.8.3) - optionalDependencies: - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/typescript-estree@8.33.1(typescript@5.8.3)': - dependencies: - '@typescript-eslint/project-service': 8.33.1(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.33.1(typescript@5.8.3) - '@typescript-eslint/types': 8.33.1 - '@typescript-eslint/visitor-keys': 8.33.1 + '@typescript-eslint/project-service': 8.36.0(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.36.0(typescript@5.8.3) + '@typescript-eslint/types': 8.36.0 + '@typescript-eslint/visitor-keys': 8.36.0 debug: 4.4.1(supports-color@6.0.0) fast-glob: 3.3.3 is-glob: 4.0.3 @@ -18386,96 +21396,106 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.34.0(typescript@5.8.3)': + '@typescript-eslint/utils@8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@typescript-eslint/project-service': 8.34.0(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.34.0(typescript@5.8.3) - '@typescript-eslint/types': 8.34.0 - '@typescript-eslint/visitor-keys': 8.34.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) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0(jiti@2.4.2)) + '@typescript-eslint/scope-manager': 8.36.0 + '@typescript-eslint/types': 8.36.0 + '@typescript-eslint/typescript-estree': 8.36.0(typescript@5.8.3) + eslint: 9.31.0(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@6.21.0(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/visitor-keys@8.36.0': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) - '@types/json-schema': 7.0.15 - '@types/semver': 7.7.0 - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.8.3) - eslint: 8.57.1 - semver: 7.7.2 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/utils@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': - dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.33.1 - '@typescript-eslint/types': 8.33.1 - '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) - eslint: 9.28.0(jiti@2.4.2) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': - dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.34.0 - '@typescript-eslint/types': 8.34.0 - '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) - eslint: 9.28.0(jiti@2.4.2) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/visitor-keys@6.21.0': - dependencies: - '@typescript-eslint/types': 6.21.0 - eslint-visitor-keys: 3.4.3 - - '@typescript-eslint/visitor-keys@8.33.1': - dependencies: - '@typescript-eslint/types': 8.33.1 - eslint-visitor-keys: 4.2.0 - - '@typescript-eslint/visitor-keys@8.34.0': - dependencies: - '@typescript-eslint/types': 8.34.0 - eslint-visitor-keys: 4.2.0 + '@typescript-eslint/types': 8.36.0 + eslint-visitor-keys: 4.2.1 '@ungap/structured-clone@1.3.0': {} - '@vitest/browser@3.2.0(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.15.30)(typescript@5.8.3))(playwright@1.52.0)(utf-8-validate@6.0.5)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0))(vitest@3.2.0)(webdriverio@9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))': + '@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.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) + keyux: 0.7.2 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@uploadcare/image-shrink@6.14.3': {} + + '@uploadcare/upload-client@6.14.3(bufferutil@4.0.9)(utf-8-validate@6.0.5)': + dependencies: + form-data: 4.0.2 + 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.3)(typescript@5.8.3))(playwright@1.54.1)(utf-8-validate@6.0.5)(vite@7.0.4(@types/node@22.16.3)(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.43.1)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4)(webdriverio@9.17.0(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.0(msw@2.7.5(@types/node@22.15.30)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0)) - '@vitest/utils': 3.2.0 + '@vitest/mocker': 3.2.4(msw@2.7.5(@types/node@22.16.3)(typescript@5.8.3))(vite@7.0.4(@types/node@22.16.3)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)) + '@vitest/utils': 3.2.4 magic-string: 0.30.17 sirv: 3.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.0(@types/debug@4.1.12)(@types/node@22.15.30)(@vitest/browser@3.2.0)(@vitest/ui@3.2.0)(happy-dom@17.6.3)(jiti@2.4.2)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(msw@2.7.5(@types/node@22.15.30)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) - ws: 8.18.2(bufferutil@4.0.9)(utf-8-validate@6.0.5) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.16.3)(@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.3)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) optionalDependencies: - playwright: 1.52.0 - webdriverio: 9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) + playwright: 1.54.1 + webdriverio: 9.17.0(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.0.12)(typescript@5.8.3))(playwright@1.54.1)(utf-8-validate@6.0.5)(vite@7.0.0(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4)(webdriverio@9.17.0(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.0.12)(typescript@5.8.3))(vite@7.0.0(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)) + '@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.0.12)(@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@24.0.12)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) + optionalDependencies: + playwright: 1.54.1 + webdriverio: 9.17.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) transitivePeerDependencies: - bufferutil - msw - utf-8-validate - vite - '@vitest/coverage-istanbul@3.2.0(vitest@3.2.0)': + '@vitest/browser@3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@24.0.12)(typescript@5.8.3))(playwright@1.54.1)(utf-8-validate@6.0.5)(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4)(webdriverio@9.17.0(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.0.12)(typescript@5.8.3))(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)) + '@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.0.12)(@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@24.0.12)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) + optionalDependencies: + playwright: 1.54.1 + webdriverio: 9.17.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) + transitivePeerDependencies: + - bufferutil + - msw + - utf-8-validate + - vite + + '@vitest/coverage-istanbul@3.2.4(vitest@3.2.4)': dependencies: '@istanbuljs/schema': 0.1.3 debug: 4.4.1(supports-color@6.0.0) @@ -18487,11 +21507,11 @@ snapshots: magicast: 0.3.5 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.0(@types/debug@4.1.12)(@types/node@22.15.30)(@vitest/browser@3.2.0)(@vitest/ui@3.2.0)(happy-dom@17.6.3)(jiti@2.4.2)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(msw@2.7.5(@types/node@22.15.30)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.0.12)(@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@24.0.12)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@3.2.3(vitest@3.2.3)': + '@vitest/coverage-v8@3.2.4(@vitest/browser@3.2.4)(vitest@3.2.4)': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -18506,116 +21526,92 @@ snapshots: std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.3(@types/debug@4.1.12)(@types/node@22.15.30)(@vitest/ui@3.2.3)(happy-dom@17.6.3)(jiti@2.4.2)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(msw@2.7.5(@types/node@22.15.30)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.16.3)(@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.3)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + optionalDependencies: + '@vitest/browser': 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.16.3)(typescript@5.8.3))(playwright@1.54.1)(utf-8-validate@6.0.5)(vite@7.0.4(@types/node@22.16.3)(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.43.1)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4)(webdriverio@9.17.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)) transitivePeerDependencies: - supports-color - '@vitest/expect@3.2.0': + '@vitest/expect@3.2.4': dependencies: '@types/chai': 5.2.2 - '@vitest/spy': 3.2.0 - '@vitest/utils': 3.2.0 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/expect@3.2.3': + '@vitest/mocker@3.2.4(msw@2.7.5(@types/node@22.16.3)(typescript@5.8.3))(vite@7.0.0(@types/node@22.16.3)(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.43.1)(tsx@4.20.3)(yaml@2.8.0))': dependencies: - '@types/chai': 5.2.2 - '@vitest/spy': 3.2.3 - '@vitest/utils': 3.2.3 - chai: 5.2.0 - tinyrainbow: 2.0.0 - - '@vitest/mocker@3.2.0(msw@2.7.5(@types/node@22.15.30)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0))': - dependencies: - '@vitest/spy': 3.2.0 + '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - msw: 2.7.5(@types/node@22.15.30)(typescript@5.8.3) - vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) + msw: 2.7.5(@types/node@22.16.3)(typescript@5.8.3) + vite: 7.0.0(@types/node@22.16.3)(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.43.1)(tsx@4.20.3)(yaml@2.8.0) - '@vitest/mocker@3.2.3(msw@2.7.5(@types/node@22.15.30)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0))': + '@vitest/mocker@3.2.4(msw@2.7.5(@types/node@22.16.3)(typescript@5.8.3))(vite@7.0.4(@types/node@22.16.3)(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.43.1)(tsx@4.20.3)(yaml@2.8.0))': dependencies: - '@vitest/spy': 3.2.3 + '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - msw: 2.7.5(@types/node@22.15.30)(typescript@5.8.3) - vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) + msw: 2.7.5(@types/node@22.16.3)(typescript@5.8.3) + vite: 7.0.4(@types/node@22.16.3)(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.43.1)(tsx@4.20.3)(yaml@2.8.0) + optional: true - '@vitest/pretty-format@3.2.0': + '@vitest/mocker@3.2.4(msw@2.7.5(@types/node@24.0.12)(typescript@5.8.3))(vite@7.0.0(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0))': + dependencies: + '@vitest/spy': 3.2.4 + estree-walker: 3.0.3 + magic-string: 0.30.17 + optionalDependencies: + msw: 2.7.5(@types/node@24.0.12)(typescript@5.8.3) + vite: 7.0.0(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0) + + '@vitest/mocker@3.2.4(msw@2.7.5(@types/node@24.0.12)(typescript@5.8.3))(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0))': + dependencies: + '@vitest/spy': 3.2.4 + estree-walker: 3.0.3 + magic-string: 0.30.17 + optionalDependencies: + msw: 2.7.5(@types/node@24.0.12)(typescript@5.8.3) + vite: 7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0) + + '@vitest/pretty-format@3.2.4': dependencies: tinyrainbow: 2.0.0 - '@vitest/pretty-format@3.2.3': + '@vitest/runner@3.2.4': dependencies: - tinyrainbow: 2.0.0 - - '@vitest/runner@3.2.0': - dependencies: - '@vitest/utils': 3.2.0 - pathe: 2.0.3 - - '@vitest/runner@3.2.3': - dependencies: - '@vitest/utils': 3.2.3 + '@vitest/utils': 3.2.4 pathe: 2.0.3 strip-literal: 3.0.0 - '@vitest/snapshot@3.2.0': + '@vitest/snapshot@3.2.4': dependencies: - '@vitest/pretty-format': 3.2.0 + '@vitest/pretty-format': 3.2.4 magic-string: 0.30.17 pathe: 2.0.3 - '@vitest/snapshot@3.2.3': - dependencies: - '@vitest/pretty-format': 3.2.3 - magic-string: 0.30.17 - pathe: 2.0.3 - - '@vitest/spy@3.2.0': + '@vitest/spy@3.2.4': dependencies: tinyspy: 4.0.3 - '@vitest/spy@3.2.3': + '@vitest/ui@3.2.4(vitest@3.2.4)': dependencies: - tinyspy: 4.0.3 - - '@vitest/ui@3.2.0(vitest@3.2.0)': - dependencies: - '@vitest/utils': 3.2.0 + '@vitest/utils': 3.2.4 fflate: 0.8.2 flatted: 3.3.3 pathe: 2.0.3 sirv: 3.0.1 tinyglobby: 0.2.14 tinyrainbow: 2.0.0 - vitest: 3.2.0(@types/debug@4.1.12)(@types/node@22.15.30)(@vitest/browser@3.2.0)(@vitest/ui@3.2.0)(happy-dom@17.6.3)(jiti@2.4.2)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(msw@2.7.5(@types/node@22.15.30)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) - optional: true + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.0.12)(@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@24.0.12)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - '@vitest/ui@3.2.3(vitest@3.2.3)': + '@vitest/utils@3.2.4': dependencies: - '@vitest/utils': 3.2.3 - fflate: 0.8.2 - flatted: 3.3.3 - pathe: 2.0.3 - sirv: 3.0.1 - tinyglobby: 0.2.14 - tinyrainbow: 2.0.0 - vitest: 3.2.3(@types/debug@4.1.12)(@types/node@22.15.30)(@vitest/ui@3.2.3)(happy-dom@17.6.3)(jiti@2.4.2)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(msw@2.7.5(@types/node@22.15.30)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) - - '@vitest/utils@3.2.0': - dependencies: - '@vitest/pretty-format': 3.2.0 - loupe: 3.1.3 - tinyrainbow: 2.0.0 - - '@vitest/utils@3.2.3': - dependencies: - '@vitest/pretty-format': 3.2.3 - loupe: 3.1.3 + '@vitest/pretty-format': 3.2.4 + loupe: 3.1.4 tinyrainbow: 2.0.0 '@volar/language-core@2.4.13': @@ -18632,7 +21628,7 @@ snapshots: '@vue/compiler-core@3.5.14': dependencies: - '@babel/parser': 7.27.5 + '@babel/parser': 7.28.0 '@vue/shared': 3.5.14 entities: 4.5.0 estree-walker: 2.0.2 @@ -18663,11 +21659,11 @@ snapshots: '@vue/shared@3.5.14': {} - '@wdio/config@9.15.0': + '@wdio/config@9.17.0': dependencies: - '@wdio/logger': 9.15.0 - '@wdio/types': 9.15.0 - '@wdio/utils': 9.15.0 + '@wdio/logger': 9.16.2 + '@wdio/types': 9.16.2 + '@wdio/utils': 9.17.0 deepmerge-ts: 7.1.5 glob: 10.4.5 import-meta-resolve: 4.1.0 @@ -18675,28 +21671,28 @@ snapshots: - bare-buffer - supports-color - '@wdio/logger@9.15.0': + '@wdio/logger@9.16.2': dependencies: chalk: 5.4.1 loglevel: 1.9.2 loglevel-plugin-prefix: 0.8.4 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.6 - '@wdio/types@9.15.0': + '@wdio/types@9.16.2': dependencies: - '@types/node': 20.17.32 + '@types/node': 20.19.6 - '@wdio/utils@9.15.0': + '@wdio/utils@9.17.0': dependencies: '@puppeteer/browsers': 2.10.5 - '@wdio/logger': 9.15.0 - '@wdio/types': 9.15.0 + '@wdio/logger': 9.16.2 + '@wdio/types': 9.16.2 decamelize: 6.0.0 deepmerge-ts: 7.1.5 edgedriver: 6.1.1 @@ -18704,6 +21700,7 @@ snapshots: 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 @@ -18802,7 +21799,7 @@ snapshots: js-yaml: 3.14.1 tslib: 2.8.1 - '@zip.js/zip.js@2.7.62': {} + '@zip.js/zip.js@2.7.63': {} '@zkochan/js-yaml@0.0.7': dependencies: @@ -18839,6 +21836,10 @@ snapshots: dependencies: acorn: 8.14.1 + acorn-jsx@5.3.2(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + acorn-walk@7.2.0: {} acorn-walk@8.3.4: @@ -18849,6 +21850,8 @@ snapshots: acorn@8.14.1: {} + acorn@8.15.0: {} + address@1.2.2: {} agent-base@6.0.2: @@ -18859,6 +21862,8 @@ snapshots: agent-base@7.1.3: {} + agent-base@7.1.4: {} + agentkeepalive@4.6.0: dependencies: humanize-ms: 1.2.1 @@ -19039,6 +22044,8 @@ snapshots: array-flatten@1.1.1: {} + array-timsort@1.0.3: {} + array-union@2.1.0: {} array.prototype.reduce@1.0.8: @@ -19109,7 +22116,7 @@ snapshots: await-to-js@3.0.0: {} - axios@1.9.0(debug@4.4.1): + axios@1.10.0(debug@4.4.1): dependencies: follow-redirects: 1.15.9(debug@4.4.1) form-data: 4.0.2 @@ -19117,27 +22124,29 @@ snapshots: transitivePeerDependencies: - debug + axobject-query@4.1.0: {} + b4a@1.6.7: {} - babel-jest@29.7.0(@babel/core@7.26.10): + babel-jest@29.7.0(@babel/core@7.28.0): dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.26.10) + babel-preset-jest: 29.6.3(@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/core': 7.28.0 '@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/plugin-syntax-typescript': 7.25.9(@babel/core@7.28.0) + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color @@ -19153,72 +22162,74 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: - '@babel/template': 7.27.0 - '@babel/types': 7.27.6 + '@babel/template': 7.27.2 + '@babel/types': 7.28.0 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.7 babel-plugin-macros@3.1.0: dependencies: - '@babel/runtime': 7.27.1 + '@babel/runtime': 7.27.6 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.27.0): + babel-plugin-transform-typescript-metadata@0.3.2(@babel/core@7.28.0)(@babel/traverse@7.28.0): dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 optionalDependencies: - '@babel/traverse': 7.27.0 + '@babel/traverse': 7.28.0 - babel-preset-current-node-syntax@1.1.0(@babel/core@7.26.10): + babel-preset-current-node-syntax@1.1.0(@babel/core@7.28.0): dependencies: - '@babel/core': 7.26.10 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.10) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.26.10) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.10) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.26.10) - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.10) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.10) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.10) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.10) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.10) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.10) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.10) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.10) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.10) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.10) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.10) + '@babel/core': 7.28.0 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.0) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.0) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.0) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.0) + '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.28.0) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.0) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.0) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.0) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.0) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.0) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.0) + '@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.26.10): + babel-preset-jest@29.6.3(@babel/core@7.28.0): dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.10) + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.28.0) + + bail@2.0.2: {} balanced-match@1.0.2: {} @@ -19227,11 +22238,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: @@ -19242,11 +22256,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: @@ -19266,7 +22280,7 @@ snapshots: batch@0.6.1: {} - better-sqlite3@11.10.0: + better-sqlite3@12.2.0: dependencies: bindings: 1.5.0 prebuild-install: 7.1.3 @@ -19293,8 +22307,6 @@ snapshots: blurhash@2.0.5: {} - bmp-js@0.1.0: {} - bmp-ts@1.0.9: {} body-parser@1.20.3: @@ -19338,10 +22350,12 @@ snapshots: boolean@3.2.0: optional: true - bootstrap@5.3.6(@popperjs/core@2.11.8): + bootstrap@5.3.7(@popperjs/core@2.11.8): dependencies: '@popperjs/core': 2.11.8 + bowser@2.11.0: {} + boxicons@2.1.4: dependencies: '@webcomponents/webcomponentsjs': 2.8.0 @@ -19356,12 +22370,12 @@ snapshots: stream-buffers: 2.2.0 optional: true - brace-expansion@1.1.11: + brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.1: + brace-expansion@2.0.2: dependencies: balanced-match: 1.0.2 @@ -19375,12 +22389,12 @@ snapshots: browser-stdout@1.3.1: {} - browserslist@4.24.4: + browserslist@4.25.1: dependencies: - caniuse-lite: 1.0.30001715 - electron-to-chromium: 1.5.140 + caniuse-lite: 1.0.30001726 + electron-to-chromium: 1.5.179 node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.24.4) + update-browserslist-db: 1.1.3(browserslist@4.25.1) bser@2.1.1: dependencies: @@ -19504,10 +22518,10 @@ snapshots: normalize-url: 6.1.0 responselike: 2.0.1 - cacheable@1.9.0: + cacheable@1.10.1: dependencies: - hookified: 1.9.0 - keyv: 5.3.3 + hookified: 1.10.0 + keyv: 5.3.4 call-bind-apply-helpers@1.0.2: dependencies: @@ -19538,12 +22552,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.30001726 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001715: {} + caniuse-lite@1.0.30001726: {} canvas-color-tracker@1.3.2: dependencies: @@ -19551,13 +22565,15 @@ snapshots: canvas-roundrect-polyfill@0.0.1: {} + ccount@2.0.1: {} + chai@5.2.0: dependencies: assertion-error: 2.0.1 check-error: 2.1.1 deep-eql: 5.0.2 - loupe: 3.1.3 - pathval: 2.0.0 + loupe: 3.1.4 + pathval: 2.0.1 chalk@2.4.2: dependencies: @@ -19579,6 +22595,10 @@ snapshots: 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: {} @@ -19680,69 +22700,110 @@ snapshots: cjs-module-lexer@1.4.3: {} - ckeditor5@45.2.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41): + ckeditor5-collaboration@46.0.0: dependencies: - '@ckeditor/ckeditor5-adapter-ckfinder': 45.2.0 - '@ckeditor/ckeditor5-alignment': 45.2.0 - '@ckeditor/ckeditor5-autoformat': 45.2.0 - '@ckeditor/ckeditor5-autosave': 45.2.0 - '@ckeditor/ckeditor5-basic-styles': 45.2.0 - '@ckeditor/ckeditor5-block-quote': 45.2.0 - '@ckeditor/ckeditor5-bookmark': 45.2.0 - '@ckeditor/ckeditor5-ckbox': 45.2.0 - '@ckeditor/ckeditor5-ckfinder': 45.2.0 - '@ckeditor/ckeditor5-clipboard': 45.2.0 - '@ckeditor/ckeditor5-cloud-services': 45.2.0 - '@ckeditor/ckeditor5-code-block': 45.2.0(patch_hash=2361d8caad7d6b5bddacc3a3b4aa37dbfba260b1c1b22a450413a79c1bb1ce95) - '@ckeditor/ckeditor5-core': 45.2.0 - '@ckeditor/ckeditor5-easy-image': 45.2.0 - '@ckeditor/ckeditor5-editor-balloon': 45.2.0 - '@ckeditor/ckeditor5-editor-classic': 45.2.0 - '@ckeditor/ckeditor5-editor-decoupled': 45.2.0 - '@ckeditor/ckeditor5-editor-inline': 45.2.0 - '@ckeditor/ckeditor5-editor-multi-root': 45.2.0 - '@ckeditor/ckeditor5-emoji': 45.2.0 - '@ckeditor/ckeditor5-engine': 45.2.0 - '@ckeditor/ckeditor5-enter': 45.2.0 - '@ckeditor/ckeditor5-essentials': 45.2.0 - '@ckeditor/ckeditor5-find-and-replace': 45.2.0 - '@ckeditor/ckeditor5-font': 45.2.0 - '@ckeditor/ckeditor5-fullscreen': 45.2.0 - '@ckeditor/ckeditor5-heading': 45.2.0 - '@ckeditor/ckeditor5-highlight': 45.2.0 - '@ckeditor/ckeditor5-horizontal-line': 45.2.0 - '@ckeditor/ckeditor5-html-embed': 45.2.0 - '@ckeditor/ckeditor5-html-support': 45.2.0 - '@ckeditor/ckeditor5-icons': 45.2.0 - '@ckeditor/ckeditor5-image': 45.2.0 - '@ckeditor/ckeditor5-indent': 45.2.0 - '@ckeditor/ckeditor5-language': 45.2.0 - '@ckeditor/ckeditor5-link': 45.2.0 - '@ckeditor/ckeditor5-list': 45.2.0 - '@ckeditor/ckeditor5-markdown-gfm': 45.2.0 - '@ckeditor/ckeditor5-media-embed': 45.2.0 - '@ckeditor/ckeditor5-mention': 45.2.0(patch_hash=5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d) - '@ckeditor/ckeditor5-minimap': 45.2.0 - '@ckeditor/ckeditor5-page-break': 45.2.0 - '@ckeditor/ckeditor5-paragraph': 45.2.0 - '@ckeditor/ckeditor5-paste-from-office': 45.2.0 - '@ckeditor/ckeditor5-remove-format': 45.2.0 - '@ckeditor/ckeditor5-restricted-editing': 45.2.0 - '@ckeditor/ckeditor5-select-all': 45.2.0 - '@ckeditor/ckeditor5-show-blocks': 45.2.0 - '@ckeditor/ckeditor5-source-editing': 45.2.0 - '@ckeditor/ckeditor5-special-characters': 45.2.0 - '@ckeditor/ckeditor5-style': 45.2.0 - '@ckeditor/ckeditor5-table': 45.2.0 - '@ckeditor/ckeditor5-theme-lark': 45.2.0 - '@ckeditor/ckeditor5-typing': 45.2.0 - '@ckeditor/ckeditor5-ui': 45.2.0 - '@ckeditor/ckeditor5-undo': 45.2.0 - '@ckeditor/ckeditor5-upload': 45.2.0 - '@ckeditor/ckeditor5-utils': 45.2.0 - '@ckeditor/ckeditor5-watchdog': 45.2.0 - '@ckeditor/ckeditor5-widget': 45.2.0 - '@ckeditor/ckeditor5-word-count': 45.2.0 + '@ckeditor/ckeditor5-collaboration-core': 46.0.0 + transitivePeerDependencies: + - supports-color + + 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': 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@46.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41): + dependencies: + '@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: {} @@ -19817,8 +22878,15 @@ snapshots: clsx@1.1.1: {} + clsx@2.1.1: {} + co@4.6.0: {} + codemirror-lang-elixir@4.0.0: + dependencies: + '@codemirror/language': 6.11.0 + lezer-elixir: 1.1.2 + codemirror-lang-hcl@0.1.0: dependencies: '@codemirror/language': 6.11.0 @@ -19844,13 +22912,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 @@ -19873,6 +22947,8 @@ snapshots: dependencies: delayed-stream: 1.0.0 + comma-separated-tokens@2.0.3: {} + commander@11.1.0: {} commander@12.1.0: {} @@ -19891,7 +22967,15 @@ snapshots: commander@9.5.0: {} - comment-parser@1.4.0: {} + comment-json@4.2.5: + dependencies: + array-timsort: 1.0.3 + core-util-is: 1.0.3 + esprima: 4.0.1 + has-own-prop: 2.0.0 + repeat-string: 1.6.1 + + comment-parser@1.4.1: {} commondir@1.0.1: {} @@ -19949,6 +23033,8 @@ snapshots: connect-history-api-fallback@2.0.0: {} + consola@3.4.0: {} + console-control-strings@1.1.0: optional: true @@ -19975,6 +23061,8 @@ snapshots: cookie-signature@1.2.2: {} + cookie@0.6.0: {} + cookie@0.7.1: {} cookie@0.7.2: {} @@ -19986,18 +23074,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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)): 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6) core-js-compat@3.41.0: dependencies: - browserslist: 4.24.4 + browserslist: 4.25.1 core-util-is@1.0.3: {} @@ -20090,34 +23178,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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)): 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6) - 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)): 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6) css-select@4.3.0: dependencies: @@ -20198,7 +23290,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 @@ -20232,7 +23324,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 @@ -20264,6 +23356,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.7(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.3(postcss@8.5.6) + postcss-convert-values: 7.0.5(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.5(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.3(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.3(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.3(postcss@8.5.6) + postcss-reduce-transforms: 7.0.1(postcss@8.5.6) + postcss-svgo: 7.0.2(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) @@ -20284,6 +23410,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) @@ -20303,6 +23433,12 @@ snapshots: lilconfig: 3.1.3 postcss: 8.5.3 + cssnano@7.0.7(postcss@8.5.6): + dependencies: + cssnano-preset-default: 7.0.7(postcss@8.5.6) + lilconfig: 3.1.3 + postcss: 8.5.6 + csso@4.2.0: dependencies: css-tree: 1.1.3 @@ -20324,7 +23460,8 @@ snapshots: '@asamuzakjp/css-color': 3.1.4 rrweb-cssom: 0.8.0 - csstype@3.1.3: {} + csstype@3.1.3: + optional: true cytoscape-cose-bilkent@4.1.0(cytoscape@3.31.2): dependencies: @@ -20517,11 +23654,6 @@ snapshots: d3-transition: 3.0.1(d3-selection@3.0.0) d3-zoom: 3.0.0 - dagre-d3-es@7.0.10: - dependencies: - d3: 7.9.0 - lodash-es: 4.17.21 - dagre-d3-es@7.0.11: dependencies: d3: 7.9.0 @@ -20580,6 +23712,10 @@ snapshots: dependencies: ms: 2.1.2 + debug@4.3.7: + dependencies: + ms: 2.1.3 + debug@4.4.1(supports-color@6.0.0): dependencies: ms: 2.1.3 @@ -20600,7 +23736,7 @@ snapshots: decimal.js@10.5.0: {} - decode-named-character-reference@1.1.0: + decode-named-character-reference@1.2.0: dependencies: character-entities: 2.0.2 @@ -20610,6 +23746,10 @@ snapshots: dependencies: mimic-response: 3.1.0 + dedent@1.5.1(babel-plugin-macros@3.1.0): + optionalDependencies: + babel-plugin-macros: 3.1.0 + dedent@1.5.3(babel-plugin-macros@3.1.0): optionalDependencies: babel-plugin-macros: 3.1.0 @@ -20731,6 +23871,12 @@ snapshots: detect-touch-events@2.0.2: {} + devalue@5.1.1: {} + + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + dezalgo@1.0.4: dependencies: asap: 2.0.6 @@ -20809,16 +23955,26 @@ snapshots: dotenv-expand@11.0.7: dependencies: - dotenv: 16.5.0 + dotenv: 16.4.7 dotenv@16.4.7: {} - dotenv@16.5.0: {} + dotenv@17.2.0: {} dotignore@0.1.2: dependencies: minimatch: 3.1.2 + dpdm@3.14.0: + dependencies: + chalk: 4.1.2 + fs-extra: 11.3.0 + glob: 10.4.5 + ora: 5.4.1 + tslib: 2.8.1 + typescript: 5.8.3 + yargs: 17.7.2 + draggabilly@3.0.0: dependencies: get-size: 3.0.0 @@ -20846,8 +24002,8 @@ snapshots: edgedriver@6.1.1: dependencies: - '@wdio/logger': 9.15.0 - '@zip.js/zip.js': 2.7.62 + '@wdio/logger': 9.16.2 + '@zip.js/zip.js': 2.7.63 decamelize: 6.0.0 edge-paths: 3.0.5 fast-xml-parser: 4.5.3 @@ -20951,7 +24107,7 @@ snapshots: transitivePeerDependencies: - supports-color - electron-to-chromium@1.5.140: {} + electron-to-chromium@1.5.179: {} electron-window-state@5.0.3: dependencies: @@ -20971,10 +24127,10 @@ snapshots: - supports-color optional: true - electron@36.4.0: + electron@37.2.1: dependencies: '@electron/get': 2.0.3 - '@types/node': 22.15.29 + '@types/node': 22.16.3 extract-zip: 2.0.1 transitivePeerDependencies: - supports-color @@ -21018,10 +24174,28 @@ snapshots: dependencies: once: 1.4.0 - enhanced-resolve@5.18.1: + 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 + debug: 4.3.7 + engine.io-parser: 5.2.3 + ws: 8.17.1(bufferutil@4.0.9)(utf-8-validate@6.0.5) + xmlhttprequest-ssl: 2.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + engine.io-parser@5.2.3: {} + + enhanced-resolve@5.18.2: dependencies: graceful-fs: 4.2.11 - tapable: 2.2.1 + tapable: 2.2.2 enquirer@2.3.6: dependencies: @@ -21127,7 +24301,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 @@ -21136,20 +24310,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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)): dependencies: - esbuild: 0.25.5 - get-tsconfig: 4.10.0 + esbuild: 0.25.6 + 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6) 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)): dependencies: - esbuild: 0.25.5 - get-tsconfig: 4.10.0 + esbuild: 0.25.6 + 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6) webpack-sources: 1.4.3 esbuild@0.25.5: @@ -21180,6 +24354,35 @@ snapshots: '@esbuild/win32-ia32': 0.25.5 '@esbuild/win32-x64': 0.25.5 + esbuild@0.25.6: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.6 + '@esbuild/android-arm': 0.25.6 + '@esbuild/android-arm64': 0.25.6 + '@esbuild/android-x64': 0.25.6 + '@esbuild/darwin-arm64': 0.25.6 + '@esbuild/darwin-x64': 0.25.6 + '@esbuild/freebsd-arm64': 0.25.6 + '@esbuild/freebsd-x64': 0.25.6 + '@esbuild/linux-arm': 0.25.6 + '@esbuild/linux-arm64': 0.25.6 + '@esbuild/linux-ia32': 0.25.6 + '@esbuild/linux-loong64': 0.25.6 + '@esbuild/linux-mips64el': 0.25.6 + '@esbuild/linux-ppc64': 0.25.6 + '@esbuild/linux-riscv64': 0.25.6 + '@esbuild/linux-s390x': 0.25.6 + '@esbuild/linux-x64': 0.25.6 + '@esbuild/netbsd-arm64': 0.25.6 + '@esbuild/netbsd-x64': 0.25.6 + '@esbuild/openbsd-arm64': 0.25.6 + '@esbuild/openbsd-x64': 0.25.6 + '@esbuild/openharmony-arm64': 0.25.6 + '@esbuild/sunos-x64': 0.25.6 + '@esbuild/win32-arm64': 0.25.6 + '@esbuild/win32-ia32': 0.25.6 + '@esbuild/win32-x64': 0.25.6 + escalade@3.2.0: {} escape-goat@4.0.0: {} @@ -21202,130 +24405,102 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-ckeditor5@10.0.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3): + eslint-config-ckeditor5@12.0.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@eslint/js': 9.28.0 - '@stylistic/eslint-plugin': 4.4.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.28.0(jiti@2.4.2) - eslint-plugin-ckeditor5-rules: 10.0.0 - eslint-plugin-mocha: 11.1.0(eslint@9.28.0(jiti@2.4.2)) - globals: 16.2.0 + '@eslint/js': 9.31.0 + '@eslint/markdown': 6.6.0 + '@stylistic/eslint-plugin': 4.4.1(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.31.0(jiti@2.4.2) + eslint-plugin-ckeditor5-rules: 12.0.0 + eslint-plugin-mocha: 11.1.0(eslint@9.31.0(jiti@2.4.2)) + globals: 16.3.0 typescript: 5.8.3 - typescript-eslint: 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + typescript-eslint: 8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) transitivePeerDependencies: - supports-color - eslint-config-prettier@10.1.5(eslint@9.28.0(jiti@2.4.2)): + eslint-config-prettier@10.1.5(eslint@9.31.0(jiti@2.4.2)): dependencies: - eslint: 9.28.0(jiti@2.4.2) + eslint: 9.31.0(jiti@2.4.2) - eslint-linter-browserify@9.28.0: {} + eslint-linter-browserify@9.31.0: {} - eslint-plugin-ckeditor5-rules@10.0.0: + eslint-plugin-ckeditor5-rules@12.0.0: dependencies: - '@es-joy/jsdoccomment': 0.40.1 - enhanced-resolve: 5.18.1 + '@es-joy/jsdoccomment': 0.50.2 + enhanced-resolve: 5.18.2 fs-extra: 11.3.0 resolve.exports: 2.0.3 upath: 2.0.1 - validate-npm-package-name: 5.0.1 + validate-npm-package-name: 6.0.1 + yaml: 2.8.0 - eslint-plugin-mocha@11.1.0(eslint@9.28.0(jiti@2.4.2)): + eslint-plugin-mocha@11.1.0(eslint@9.31.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) - eslint: 9.28.0(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0(jiti@2.4.2)) + eslint: 9.31.0(jiti@2.4.2) globals: 15.15.0 - eslint-plugin-playwright@2.2.0(eslint@9.28.0(jiti@2.4.2)): + eslint-plugin-playwright@2.2.0(eslint@9.31.0(jiti@2.4.2)): dependencies: - eslint: 9.28.0(jiti@2.4.2) + eslint: 9.31.0(jiti@2.4.2) globals: 13.24.0 + eslint-plugin-svelte@3.10.1(eslint@9.31.0(jiti@2.4.2))(svelte@5.35.6)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.0.12)(typescript@5.8.3)): + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0(jiti@2.4.2)) + '@jridgewell/sourcemap-codec': 1.5.4 + eslint: 9.31.0(jiti@2.4.2) + 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@24.0.12)(typescript@5.8.3)) + postcss-safe-parser: 7.0.1(postcss@8.5.6) + semver: 7.7.2 + svelte-eslint-parser: 1.2.0(svelte@5.35.6) + optionalDependencies: + svelte: 5.35.6 + transitivePeerDependencies: + - ts-node + eslint-scope@5.1.1: dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 - eslint-scope@7.2.2: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-scope@8.3.0: + eslint-scope@8.4.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.2.0: {} + eslint-visitor-keys@4.2.1: {} - eslint@8.57.1: + eslint@9.31.0(jiti@2.4.2): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.1 - '@humanwhocodes/config-array': 0.13.0 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.3.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.1(supports-color@6.0.0) - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.6.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - - eslint@9.28.0(jiti@2.4.2): - dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) - '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.20.0 - '@eslint/config-helpers': 0.2.2 - '@eslint/core': 0.14.0 + '@eslint/config-array': 0.21.0 + '@eslint/config-helpers': 0.3.0 + '@eslint/core': 0.15.1 '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.28.0 - '@eslint/plugin-kit': 0.3.1 + '@eslint/js': 9.31.0 + '@eslint/plugin-kit': 0.3.3 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 debug: 4.4.1(supports-color@6.0.0) escape-string-regexp: 4.0.0 - eslint-scope: 8.3.0 - eslint-visitor-keys: 4.2.0 - espree: 10.3.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -21345,11 +24520,13 @@ snapshots: transitivePeerDependencies: - supports-color - espree@10.3.0: + esm-env@1.2.2: {} + + espree@10.4.0: dependencies: - acorn: 8.14.1 - acorn-jsx: 5.3.2(acorn@8.14.1) - eslint-visitor-keys: 4.2.0 + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 4.2.1 espree@9.6.1: dependencies: @@ -21363,6 +24540,10 @@ snapshots: dependencies: estraverse: 5.3.0 + esrap@2.1.0: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.4 + esrecurse@4.3.0: dependencies: estraverse: 5.3.0 @@ -21375,7 +24556,7 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 esutils@2.0.3: {} @@ -21444,7 +24625,7 @@ snapshots: transitivePeerDependencies: - supports-color - express-rate-limit@7.5.0(express@5.1.0): + express-rate-limit@7.5.1(express@5.1.0): dependencies: express: 5.1.0 @@ -21544,6 +24725,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) @@ -21576,6 +24759,10 @@ snapshots: fast-uri@3.0.6: {} + fast-xml-parser@4.4.1: + dependencies: + strnum: 1.1.2 + fast-xml-parser@4.5.3: dependencies: strnum: 1.1.2 @@ -21586,6 +24773,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 @@ -21602,7 +24793,7 @@ snapshots: optionalDependencies: picomatch: 4.0.2 - fdir@6.4.5(picomatch@4.0.2): + fdir@6.4.6(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 @@ -21617,13 +24808,9 @@ snapshots: dependencies: escape-string-regexp: 1.0.5 - file-entry-cache@10.1.0: + file-entry-cache@10.1.1: dependencies: - flat-cache: 6.1.9 - - file-entry-cache@6.0.1: - dependencies: - flat-cache: 3.2.0 + flat-cache: 6.1.11 file-entry-cache@8.0.0: dependencies: @@ -21713,22 +24900,16 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - flat-cache@3.2.0: - dependencies: - flatted: 3.3.3 - keyv: 4.5.4 - rimraf: 3.0.2 - flat-cache@4.0.1: dependencies: flatted: 3.3.3 keyv: 4.5.4 - flat-cache@6.1.9: + flat-cache@6.1.11: dependencies: - cacheable: 1.9.0 + cacheable: 1.10.1 flatted: 3.3.3 - hookified: 1.9.0 + hookified: 1.10.0 flat@5.0.2: {} @@ -21738,7 +24919,7 @@ snapshots: dependencies: d3-selection: 3.0.0 kapsule: 1.16.3 - preact: 10.26.5 + preact: 10.26.9 flora-colossus@2.0.0: dependencies: @@ -21760,7 +24941,7 @@ snapshots: dependencies: is-callable: 1.2.7 - force-graph@1.49.6: + force-graph@1.50.1: dependencies: '@tweenjs/tween.js': 25.0.0 accessor-fn: 1.5.3 @@ -21797,6 +24978,8 @@ snapshots: es-set-tostringtag: 2.1.0 mime-types: 2.1.35 + format@0.2.2: {} + formdata-polyfill@4.0.10: dependencies: fetch-blob: 3.2.0 @@ -21924,13 +25107,13 @@ snapshots: geckodriver@5.0.0: dependencies: - '@wdio/logger': 9.15.0 - '@zip.js/zip.js': 2.7.62 + '@wdio/logger': 9.16.2 + '@zip.js/zip.js': 2.7.63 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 @@ -21995,11 +25178,11 @@ 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-symbol-description@1.1.0: dependencies: @@ -22009,11 +25192,11 @@ snapshots: get-them-args@1.3.2: {} - get-tsconfig@4.10.0: + get-tsconfig@4.10.1: 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 @@ -22028,6 +25211,8 @@ snapshots: github-from-package@0.0.0: {} + github-slugger@2.0.0: {} + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -22052,7 +25237,7 @@ snapshots: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 3.0.4 + minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 @@ -22116,7 +25301,7 @@ snapshots: globals@15.15.0: {} - globals@16.2.0: {} + globals@16.3.0: {} globalthis@1.0.4: dependencies: @@ -22178,9 +25363,10 @@ snapshots: handle-thing@2.0.1: {} - happy-dom@17.6.3: + happy-dom@18.0.1: dependencies: - webidl-conversions: 7.0.0 + '@types/node': 20.17.32 + '@types/whatwg-mimetype': 3.0.2 whatwg-mimetype: 3.0.0 harmony-reflect@1.6.2: {} @@ -22191,6 +25377,8 @@ snapshots: has-flag@4.0.0: {} + has-own-prop@2.0.0: {} + has-property-descriptors@1.0.2: dependencies: es-define-property: 1.0.1 @@ -22214,6 +25402,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: @@ -22235,7 +25522,7 @@ snapshots: history@4.10.1: dependencies: - '@babel/runtime': 7.27.1 + '@babel/runtime': 7.27.6 loose-envify: 1.4.0 resolve-pathname: 3.0.0 tiny-invariant: 1.3.3 @@ -22244,7 +25531,7 @@ snapshots: hoist-non-react-statics@2.5.5: {} - hookified@1.9.0: {} + hookified@1.10.0: {} hosted-git-info@2.8.9: {} @@ -22275,6 +25562,8 @@ snapshots: html-tags@3.3.1: {} + html-void-elements@3.0.0: {} + html2plaintext@2.1.4: dependencies: cheerio: 1.0.0-rc.10 @@ -22285,7 +25574,7 @@ snapshots: dependencies: concat-stream: 1.6.2 - htmlfy@0.6.7: {} + htmlfy@0.8.1: {} htmlparser2@10.0.0: dependencies: @@ -22420,6 +25709,8 @@ snapshots: transitivePeerDependencies: - supports-color + human-id@4.1.1: {} + humanize-ms@1.2.1: dependencies: ms: 2.1.3 @@ -22434,9 +25725,9 @@ snapshots: transitivePeerDependencies: - encoding - i18next@25.2.1(typescript@5.8.3): + i18next@25.3.2(typescript@5.8.3): dependencies: - '@babel/runtime': 7.27.1 + '@babel/runtime': 7.27.6 optionalDependencies: typescript: 5.8.3 @@ -22452,7 +25743,9 @@ snapshots: dependencies: postcss: 8.5.3 - idb-keyval@6.2.2: {} + icss-utils@5.1.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 identity-obj-proxy@3.0.0: dependencies: @@ -22462,7 +25755,7 @@ snapshots: ignore@5.3.2: {} - ignore@7.0.4: {} + ignore@7.0.5: {} image-blob-reduce@3.0.1: dependencies: @@ -22490,7 +25783,7 @@ snapshots: immutable@4.3.7: {} - immutable@5.1.2: + immutable@5.1.3: optional: true import-fresh@3.3.1: @@ -22706,7 +25999,11 @@ snapshots: is-reference@1.2.1: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 + + is-reference@3.0.3: + dependencies: + '@types/estree': 1.0.8 is-regex@1.1.4: dependencies: @@ -22735,7 +26032,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 @@ -22797,8 +26094,8 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.26.10 - '@babel/parser': 7.27.5 + '@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 @@ -22807,8 +26104,8 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: - '@babel/core': 7.26.10 - '@babel/parser': 7.27.0 + '@babel/core': 7.28.0 + '@babel/parser': 7.28.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.7.2 @@ -22831,7 +26128,7 @@ snapshots: istanbul-lib-source-maps@5.0.6: dependencies: - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.29 debug: 4.4.1(supports-color@6.0.0) istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: @@ -22863,7 +26160,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.30 + '@types/node': 22.16.3 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.3(babel-plugin-macros@3.1.0) @@ -22883,12 +26180,12 @@ snapshots: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@22.15.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.15.30)(typescript@5.8.3)): + jest-config@29.7.0(@types/node@22.16.3)(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.3)(typescript@5.8.3)): dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.0 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.26.10) + babel-jest: 29.7.0(@babel/core@7.28.0) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -22908,8 +26205,8 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.15.30 - ts-node: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.15.30)(typescript@5.8.3) + '@types/node': 22.16.3 + ts-node: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.16.3)(typescript@5.8.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -22938,7 +26235,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.30 + '@types/node': 22.16.3 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -22948,7 +26245,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.15.30 + '@types/node': 22.16.3 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -22974,7 +26271,7 @@ snapshots: jest-message-util@29.7.0: dependencies: - '@babel/code-frame': 7.26.2 + '@babel/code-frame': 7.27.1 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -22987,7 +26284,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.30 + '@types/node': 22.16.3 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -23015,7 +26312,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.30 + '@types/node': 22.16.3 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -23043,7 +26340,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.30 + '@types/node': 22.16.3 chalk: 4.1.2 cjs-module-lexer: 1.4.3 collect-v8-coverage: 1.0.2 @@ -23063,15 +26360,15 @@ snapshots: jest-snapshot@29.7.0: dependencies: - '@babel/core': 7.26.10 - '@babel/generator': 7.27.0 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.10) - '@babel/types': 7.27.6 + '@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-preset-current-node-syntax: 1.1.0(@babel/core@7.26.10) + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.28.0) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -23089,7 +26386,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.30 + '@types/node': 22.16.3 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -23108,7 +26405,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.30 + '@types/node': 22.16.3 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -23117,19 +26414,19 @@ snapshots: jest-worker@26.6.2: dependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 merge-stream: 2.0.0 supports-color: 7.2.0 jest-worker@27.5.1: dependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -23182,15 +26479,15 @@ snapshots: dependencies: '@panva/asn1.js': 1.0.0 - jotai-scope@0.7.2(jotai@2.11.0(@types/react@19.1.7)(react@19.1.0))(react@19.1.0): + jotai-scope@0.7.2(jotai@2.11.0(@types/react@19.1.7)(react@16.14.0))(react@16.14.0): dependencies: - jotai: 2.11.0(@types/react@19.1.7)(react@19.1.0) - react: 19.1.0 + jotai: 2.11.0(@types/react@19.1.7)(react@16.14.0) + react: 16.14.0 - jotai@2.11.0(@types/react@19.1.7)(react@19.1.0): + jotai@2.11.0(@types/react@19.1.7)(react@16.14.0): optionalDependencies: '@types/react': 19.1.7 - react: 19.1.0 + react: 16.14.0 jpeg-js@0.4.4: {} @@ -23202,6 +26499,8 @@ snapshots: jquery@3.7.1: {} + js-sha256@0.11.1: {} + js-tokens@4.0.0: {} js-tokens@9.0.1: {} @@ -23222,7 +26521,7 @@ snapshots: jsbn@1.1.0: {} - jsdoc-type-pratt-parser@4.0.0: {} + jsdoc-type-pratt-parser@4.1.0: {} jsdom@16.7.0(bufferutil@4.0.9)(utf-8-validate@6.0.5): dependencies: @@ -23278,7 +26577,7 @@ snapshots: whatwg-encoding: 3.1.1 whatwg-mimetype: 4.0.0 whatwg-url: 14.2.0 - ws: 8.18.2(bufferutil@4.0.9)(utf-8-validate@6.0.5) + ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) xml-name-validator: 5.0.0 transitivePeerDependencies: - bufferutil @@ -23349,11 +26648,13 @@ snapshots: keyboardevents-areequal@0.2.2: {} + keyux@0.7.2: {} + keyv@4.5.4: dependencies: json-buffer: 3.0.1 - keyv@5.3.3: + keyv@5.3.4: dependencies: '@keyv/serialize': 1.0.3 @@ -23372,10 +26673,12 @@ snapshots: knockout@3.5.1: {} - known-css-properties@0.36.0: {} + known-css-properties@0.37.0: {} kolorist@1.8.0: {} + kysely@0.27.6: {} + langium@3.3.1: dependencies: chevrotain: 11.0.3 @@ -23387,7 +26690,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: {} @@ -23423,10 +26726,60 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 + lezer-elixir@1.1.2: + dependencies: + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + lie@3.3.0: dependencies: immediate: 3.0.6 + lightningcss-darwin-arm64@1.30.1: + optional: true + + lightningcss-darwin-x64@1.30.1: + optional: true + + lightningcss-freebsd-x64@1.30.1: + optional: true + + lightningcss-linux-arm-gnueabihf@1.30.1: + optional: true + + lightningcss-linux-arm64-gnu@1.30.1: + optional: true + + lightningcss-linux-arm64-musl@1.30.1: + optional: true + + lightningcss-linux-x64-gnu@1.30.1: + optional: true + + lightningcss-linux-x64-musl@1.30.1: + optional: true + + lightningcss-win32-arm64-msvc@1.30.1: + optional: true + + lightningcss-win32-x64-msvc@1.30.1: + optional: true + + lightningcss@1.30.1: + dependencies: + detect-libc: 2.0.4 + optionalDependencies: + lightningcss-darwin-arm64: 1.30.1 + lightningcss-darwin-x64: 1.30.1 + lightningcss-freebsd-x64: 1.30.1 + lightningcss-linux-arm-gnueabihf: 1.30.1 + lightningcss-linux-arm64-gnu: 1.30.1 + lightningcss-linux-arm64-musl: 1.30.1 + lightningcss-linux-x64-gnu: 1.30.1 + lightningcss-linux-x64-musl: 1.30.1 + lightningcss-win32-arm64-msvc: 1.30.1 + lightningcss-win32-x64-msvc: 1.30.1 + lilconfig@2.1.0: {} lilconfig@3.1.3: {} @@ -23437,7 +26790,7 @@ snapshots: lines-and-columns@2.0.3: {} - lint-staged@16.1.0: + lint-staged@16.1.2: dependencies: chalk: 5.4.1 commander: 14.0.0 @@ -23497,6 +26850,8 @@ snapshots: type-fest: 4.26.0 userhome: 1.0.1 + locate-character@3.0.0: {} + locate-path@2.0.0: dependencies: p-locate: 2.0.0 @@ -23517,6 +26872,8 @@ snapshots: lodash-es@4.17.21: {} + lodash.castarray@4.4.0: {} + lodash.clonedeep@4.5.0: {} lodash.debounce@4.0.8: {} @@ -23525,6 +26882,8 @@ snapshots: lodash.isequal@4.5.0: {} + lodash.isplainobject@4.0.6: {} + lodash.memoize@4.1.2: {} lodash.merge@4.6.2: {} @@ -23570,11 +26929,15 @@ snapshots: loglevel@1.9.2: {} + long@5.3.2: {} + + longest-streak@3.1.0: {} + loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 - loupe@3.1.3: {} + loupe@3.1.4: {} lowercase-keys@2.0.0: {} @@ -23590,6 +26953,8 @@ snapshots: lru-cache@7.18.3: {} + luxon@3.6.1: {} + lz-string@1.5.0: {} macos-alias@0.2.12: @@ -23599,12 +26964,12 @@ snapshots: magic-string@0.30.17: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.4 magicast@0.3.5: dependencies: - '@babel/parser': 7.27.5 - '@babel/types': 7.27.6 + '@babel/parser': 7.28.0 + '@babel/types': 7.28.0 source-map-js: 1.2.1 make-dir@2.1.0: @@ -23694,9 +27059,11 @@ snapshots: mark.js@8.11.1: {} + markdown-table@3.0.4: {} + marked@15.0.12: {} - marked@4.0.12: {} + marked@16.0.0: {} matcher@3.0.0: dependencies: @@ -23707,26 +27074,135 @@ snapshots: mathml-tag-names@2.1.3: {} - mdast-util-from-markdown@1.3.1: + mdast-util-find-and-replace@3.0.2: dependencies: - '@types/mdast': 3.0.15 - '@types/unist': 2.0.11 - decode-named-character-reference: 1.1.0 - mdast-util-to-string: 3.2.0 - micromark: 3.2.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-decode-string: 1.1.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - unist-util-stringify-position: 3.0.3 - uvu: 0.5.6 + '@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-to-string@3.2.0: + mdast-util-frontmatter@2.0.1: dependencies: - '@types/mdast': 3.0.15 + '@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: {} @@ -23736,6 +27212,16 @@ snapshots: mdn-data@2.12.2: {} + mdsvex@0.12.6(svelte@5.35.6): + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 2.0.11 + prism-svelte: 0.4.7 + prismjs: 1.30.0 + svelte: 5.35.6 + unist-util-visit: 2.0.3 + vfile-message: 2.0.4 + media-typer@0.3.0: {} media-typer@1.1.0: {} @@ -23746,11 +27232,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: {} @@ -23763,36 +27249,11 @@ snapshots: merge2@1.4.1: {} - mermaid@10.9.3: - dependencies: - '@braintree/sanitize-url': 6.0.2 - '@types/d3-scale': 4.0.9 - '@types/d3-scale-chromatic': 3.1.0 - cytoscape: 3.31.2 - cytoscape-cose-bilkent: 4.1.0(cytoscape@3.31.2) - d3: 7.9.0 - d3-sankey: 0.12.3 - dagre-d3-es: 7.0.10 - dayjs: 1.11.13 - dompurify: 3.2.5 - elkjs: 0.9.3 - katex: 0.16.22 - khroma: 2.1.0 - lodash-es: 4.17.21 - mdast-util-from-markdown: 1.3.1 - non-layered-tidy-tree-layout: 2.0.2 - stylis: 4.3.6 - ts-dedent: 2.2.0 - uuid: 9.0.1 - web-worker: 1.5.0 - transitivePeerDependencies: - - supports-color - - mermaid@11.6.0: + mermaid@11.8.1: dependencies: '@braintree/sanitize-url': 7.1.1 '@iconify/utils': 2.3.0 - '@mermaid-js/parser': 0.4.0 + '@mermaid-js/parser': 0.6.1 '@types/d3': 7.4.3 cytoscape: 3.31.2 cytoscape-cose-bilkent: 4.1.0(cytoscape@3.31.2) @@ -23815,136 +27276,201 @@ snapshots: methods@1.1.2: {} - micromark-core-commonmark@1.1.0: + micromark-core-commonmark@2.0.3: dependencies: - decode-named-character-reference: 1.1.0 - micromark-factory-destination: 1.1.0 - micromark-factory-label: 1.1.0 - micromark-factory-space: 1.1.0 - micromark-factory-title: 1.1.0 - micromark-factory-whitespace: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-chunked: 1.1.0 - micromark-util-classify-character: 1.1.0 - micromark-util-html-tag-name: 1.2.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-resolve-all: 1.1.0 - micromark-util-subtokenize: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 + 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-factory-destination@1.1.0: + micromark-extension-frontmatter@2.0.0: dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 + fault: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - micromark-factory-label@1.1.0: + micromark-extension-gfm-autolink-literal@2.1.0: dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 + 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-factory-space@1.1.0: + micromark-extension-gfm-footnote@2.1.0: dependencies: - micromark-util-character: 1.2.0 - micromark-util-types: 1.1.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-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-factory-title@1.1.0: + micromark-extension-gfm-strikethrough@2.1.0: dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 + 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-factory-whitespace@1.1.0: + micromark-extension-gfm-table@2.1.1: dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 + 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-util-character@1.2.0: + micromark-extension-gfm-tagfilter@2.0.0: dependencies: - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 + micromark-util-types: 2.0.2 - micromark-util-chunked@1.1.0: + micromark-extension-gfm-task-list-item@2.1.0: dependencies: - micromark-util-symbol: 1.1.0 + 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-util-classify-character@1.1.0: + micromark-extension-gfm@3.0.0: dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 + 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-util-combine-extensions@1.1.0: + micromark-factory-destination@2.0.1: dependencies: - micromark-util-chunked: 1.1.0 - micromark-util-types: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - micromark-util-decode-numeric-character-reference@1.1.0: + micromark-factory-label@2.0.1: dependencies: - micromark-util-symbol: 1.1.0 + devlop: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - micromark-util-decode-string@1.1.0: + micromark-factory-space@2.0.1: dependencies: - decode-named-character-reference: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-symbol: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.2 - micromark-util-encode@1.1.0: {} - - micromark-util-html-tag-name@1.2.0: {} - - micromark-util-normalize-identifier@1.1.0: + micromark-factory-title@2.0.1: dependencies: - micromark-util-symbol: 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-util-resolve-all@1.1.0: + micromark-factory-whitespace@2.0.1: dependencies: - micromark-util-types: 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-util-sanitize-uri@1.2.0: + micromark-util-character@2.1.1: dependencies: - micromark-util-character: 1.2.0 - micromark-util-encode: 1.1.0 - micromark-util-symbol: 1.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - micromark-util-subtokenize@1.1.0: + micromark-util-chunked@2.0.1: dependencies: - micromark-util-chunked: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 + micromark-util-symbol: 2.0.1 - micromark-util-symbol@1.1.0: {} + 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-types@1.1.0: {} + micromark-util-combine-extensions@2.0.1: + dependencies: + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.2 - micromark@3.2.0: + 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.1.0 - micromark-core-commonmark: 1.1.0 - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-chunked: 1.1.0 - micromark-util-combine-extensions: 1.1.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-encode: 1.1.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-resolve-all: 1.1.0 - micromark-util-sanitize-uri: 1.2.0 - micromark-util-subtokenize: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 + 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 @@ -23979,38 +27505,44 @@ snapshots: mimic-response@3.1.0: {} - mind-elixir@4.6.0: {} + mind-elixir@5.0.2: {} - 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)): 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6) + + mini-css-extract-plugin@2.9.2(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)): + dependencies: + schema-utils: 4.3.2 + tapable: 2.2.2 + webpack: 5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6) minimalistic-assert@1.0.1: {} minimatch@3.0.4: dependencies: - brace-expansion: 1.1.11 + brace-expansion: 1.1.12 minimatch@3.0.8: dependencies: - brace-expansion: 1.1.11 + brace-expansion: 1.1.12 minimatch@3.1.2: dependencies: - brace-expansion: 1.1.11 + brace-expansion: 1.1.12 minimatch@5.1.6: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 2.0.2 minimatch@9.0.3: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 2.0.2 minimatch@9.0.5: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 2.0.2 minimist@1.2.8: {} @@ -24076,6 +27608,8 @@ snapshots: dependencies: minipass: 7.1.2 + mitt@3.0.1: {} + mkdirp-classic@0.5.3: {} mkdirp@0.5.5: @@ -24092,7 +27626,7 @@ snapshots: mlly@1.7.4: dependencies: - acorn: 8.14.1 + acorn: 8.15.0 pathe: 2.0.3 pkg-types: 1.3.1 ufo: 1.6.1 @@ -24168,12 +27702,38 @@ snapshots: ms@2.1.3: {} - msw@2.7.5(@types/node@22.15.30)(typescript@5.8.3): + msw@2.7.5(@types/node@22.16.3)(typescript@5.8.3): 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.12(@types/node@22.15.30) + '@inquirer/confirm': 5.1.13(@types/node@22.16.3) + '@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.8.3 + transitivePeerDependencies: + - '@types/node' + optional: true + + msw@2.7.5(@types/node@24.0.12)(typescript@5.8.3): + 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@24.0.12) '@mswjs/interceptors': 0.37.6 '@open-draft/deferred-promise': 2.2.0 '@open-draft/until': 2.1.0 @@ -24261,6 +27821,10 @@ snapshots: nice-try@1.0.5: {} + node-abi@3.75.0: + dependencies: + semver: 7.7.2 + node-abi@4.9.0: dependencies: semver: 7.7.2 @@ -24333,8 +27897,6 @@ snapshots: node-releases@2.0.19: {} - non-layered-tidy-tree-layout@2.0.2: {} - nopt@5.0.0: dependencies: abbrev: 1.1.1 @@ -24392,13 +27954,13 @@ snapshots: nwsapi@2.2.20: {} - nx@21.1.3(@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.3(@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)): 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.9.0(debug@4.4.1) + axios: 1.10.0(debug@4.4.1) chalk: 4.1.2 cli-cursor: 3.1.0 cli-spinners: 2.6.1 @@ -24430,16 +27992,16 @@ snapshots: yargs: 17.7.2 yargs-parser: 21.1.1 optionalDependencies: - '@nx/nx-darwin-arm64': 21.1.3 - '@nx/nx-darwin-x64': 21.1.3 - '@nx/nx-freebsd-x64': 21.1.3 - '@nx/nx-linux-arm-gnueabihf': 21.1.3 - '@nx/nx-linux-arm64-gnu': 21.1.3 - '@nx/nx-linux-arm64-musl': 21.1.3 - '@nx/nx-linux-x64-gnu': 21.1.3 - '@nx/nx-linux-x64-musl': 21.1.3 - '@nx/nx-win32-arm64-msvc': 21.1.3 - '@nx/nx-win32-x64-msvc': 21.1.3 + '@nx/nx-darwin-arm64': 21.2.3 + '@nx/nx-darwin-x64': 21.2.3 + '@nx/nx-freebsd-x64': 21.2.3 + '@nx/nx-linux-arm-gnueabihf': 21.2.3 + '@nx/nx-linux-arm64-gnu': 21.2.3 + '@nx/nx-linux-arm64-musl': 21.2.3 + '@nx/nx-linux-x64-gnu': 21.2.3 + '@nx/nx-linux-x64-musl': 21.2.3 + '@nx/nx-win32-arm64-msvc': 21.2.3 + '@nx/nx-win32-x64-msvc': 21.2.3 '@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) transitivePeerDependencies: @@ -24516,7 +28078,7 @@ snapshots: open-color@1.9.1: {} - open@10.1.1: + open@10.1.2: dependencies: default-browser: 5.2.1 define-lazy-prop: 3.0.0 @@ -24529,15 +28091,13 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 - openai@5.2.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.24.4): + openai@5.9.0(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.24.4): optionalDependencies: - ws: 8.18.2(bufferutil@4.0.9)(utf-8-validate@6.0.5) + ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) zod: 3.24.4 openapi-types@12.1.3: {} - opencollective-postinstall@2.0.3: {} - opener@1.5.2: {} openid-client@4.9.1: @@ -24676,9 +28236,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 @@ -24735,7 +28295,7 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.26.2 + '@babel/code-frame': 7.27.1 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -24808,7 +28368,7 @@ snapshots: pathe@2.0.3: {} - pathval@2.0.0: {} + pathval@2.0.1: {} pe-library@1.0.1: {} @@ -24863,11 +28423,11 @@ snapshots: exsolve: 1.0.5 pathe: 2.0.3 - playwright-core@1.52.0: {} + playwright-core@1.54.1: {} - playwright@1.52.0: + playwright@1.54.1: dependencies: - playwright-core: 1.52.0 + playwright-core: 1.54.1 optionalDependencies: fsevents: 2.3.2 @@ -24922,6 +28482,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 @@ -24936,7 +28502,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 @@ -24944,7 +28510,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 @@ -24952,30 +28518,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.3(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.5(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 @@ -24989,6 +28569,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 @@ -25001,6 +28586,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 @@ -25013,6 +28602,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 @@ -25025,6 +28618,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 @@ -25032,9 +28629,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 @@ -25044,7 +28641,20 @@ snapshots: camelcase-css: 2.0.1 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-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.0.12)(typescript@5.8.3)): + dependencies: + lilconfig: 2.1.0 + yaml: 1.10.2 + optionalDependencies: + postcss: 8.5.6 + ts-node: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.0.12)(typescript@5.8.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.6)): dependencies: cosmiconfig: 7.1.0 klona: 2.0.6 @@ -25052,16 +28662,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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6) - 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)): + 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6) + + postcss-loader@8.1.1(postcss@8.5.6)(typescript@5.0.4)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)): 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6) transitivePeerDependencies: - typescript @@ -25083,9 +28703,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.5(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 @@ -25093,7 +28719,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 @@ -25101,12 +28727,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.5(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 @@ -25122,6 +28756,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 @@ -25143,27 +28782,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.3(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 @@ -25180,12 +28833,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): @@ -25200,6 +28859,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) @@ -25207,16 +28870,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) @@ -25224,6 +28904,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 @@ -25236,6 +28923,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 @@ -25251,6 +28942,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 @@ -25266,6 +28962,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 @@ -25281,6 +28982,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 @@ -25296,6 +29002,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 @@ -25311,24 +29022,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.3(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 @@ -25345,6 +29067,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 @@ -25360,6 +29087,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) @@ -25378,24 +29110,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.3(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 @@ -25411,11 +29155,25 @@ 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.3): + postcss-safe-parser@7.0.1(postcss@8.5.6): dependencies: - postcss: 8.5.3 + postcss: 8.5.6 + + postcss-scss@4.0.9(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + + postcss-selector-parser@6.0.10: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 postcss-selector-parser@6.1.2: dependencies: @@ -25431,6 +29189,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 @@ -25449,6 +29211,12 @@ snapshots: postcss-value-parser: 4.2.0 svgo: 3.3.2 + postcss-svgo@7.0.2(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + svgo: 3.3.2 + postcss-unique-selectors@5.1.1(postcss@8.5.3): dependencies: postcss: 8.5.3 @@ -25464,6 +29232,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: @@ -25472,13 +29245,17 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postcss@8.5.6: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + postject@1.0.0-alpha.6: dependencies: commander: 9.5.0 - preact@10.12.1: {} - - preact@10.26.5: {} + preact@10.26.9: {} prebuild-install@7.1.3: dependencies: @@ -25488,7 +29265,7 @@ snapshots: minimist: 1.2.8 mkdirp-classic: 0.5.3 napi-build-utils: 2.0.0 - node-abi: 4.9.0 + node-abi: 3.75.0 pump: 3.0.2 rc: 1.2.8 simple-get: 4.0.1 @@ -25509,6 +29286,10 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 + prism-svelte@0.4.7: {} + + prismjs@1.30.0: {} + proc-log@2.0.1: {} proc-log@3.0.0: {} @@ -25534,6 +29315,23 @@ 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 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 22.16.3 + long: 5.3.2 + proxy-addr@2.0.7: dependencies: forwarded: 0.2.0 @@ -25541,7 +29339,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 @@ -25566,6 +29364,11 @@ 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: @@ -25640,11 +29443,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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)): 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6) rc@1.2.8: dependencies: @@ -25661,9 +29464,9 @@ snapshots: react: 16.14.0 scheduler: 0.19.1 - react-dom@19.1.0(react@19.1.0): + react-dom@19.1.0(react@16.14.0): dependencies: - react: 19.1.0 + react: 16.14.0 scheduler: 0.26.0 react-interactive@0.8.3(react@16.14.0): @@ -25681,22 +29484,22 @@ snapshots: react-refresh@0.17.0: {} - react-remove-scroll-bar@2.3.8(@types/react@19.1.7)(react@19.1.0): + react-remove-scroll-bar@2.3.8(@types/react@19.1.7)(react@16.14.0): dependencies: - react: 19.1.0 - react-style-singleton: 2.2.3(@types/react@19.1.7)(react@19.1.0) + react: 16.14.0 + react-style-singleton: 2.2.3(@types/react@19.1.7)(react@16.14.0) tslib: 2.8.1 optionalDependencies: '@types/react': 19.1.7 - react-remove-scroll@2.6.3(@types/react@19.1.7)(react@19.1.0): + react-remove-scroll@2.6.3(@types/react@19.1.7)(react@16.14.0): dependencies: - react: 19.1.0 - react-remove-scroll-bar: 2.3.8(@types/react@19.1.7)(react@19.1.0) - react-style-singleton: 2.2.3(@types/react@19.1.7)(react@19.1.0) + react: 16.14.0 + react-remove-scroll-bar: 2.3.8(@types/react@19.1.7)(react@16.14.0) + react-style-singleton: 2.2.3(@types/react@19.1.7)(react@16.14.0) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.1.7)(react@19.1.0) - use-sidecar: 1.1.3(@types/react@19.1.7)(react@19.1.0) + use-callback-ref: 1.3.3(@types/react@19.1.7)(react@16.14.0) + use-sidecar: 1.1.3(@types/react@19.1.7)(react@16.14.0) optionalDependencies: '@types/react': 19.1.7 @@ -25721,10 +29524,10 @@ snapshots: react: 16.14.0 warning: 4.0.3 - react-style-singleton@2.2.3(@types/react@19.1.7)(react@19.1.0): + react-style-singleton@2.2.3(@types/react@19.1.7)(react@16.14.0): dependencies: get-nonce: 1.0.1 - react: 19.1.0 + react: 16.14.0 tslib: 2.8.1 optionalDependencies: '@types/react': 19.1.7 @@ -25735,8 +29538,6 @@ snapshots: object-assign: 4.1.1 prop-types: 15.8.1 - react@19.1.0: {} - read-binary-file-arch@1.0.6: dependencies: debug: 4.4.1(supports-color@6.0.0) @@ -25825,11 +29626,9 @@ snapshots: regenerate@1.4.2: {} - regenerator-runtime@0.13.11: {} - regenerator-transform@0.15.2: dependencies: - '@babel/runtime': 7.27.1 + '@babel/runtime': 7.27.6 regexp.prototype.flags@1.5.4: dependencies: @@ -25855,8 +29654,72 @@ snapshots: dependencies: jsesc: 3.0.2 - repeat-string@1.6.1: - optional: true + 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: {} @@ -25946,10 +29809,10 @@ snapshots: robust-predicates@3.0.2: {} - rollup-plugin-stats@1.3.9(rollup@4.40.0)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0)): + rollup-plugin-stats@1.4.0(rollup@4.44.2)(vite@7.0.4(@types/node@22.16.3)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)): optionalDependencies: - rollup: 4.40.0 - vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) + rollup: 4.44.2 + vite: 7.0.4(@types/node@22.16.3)(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.43.1)(tsx@4.20.3)(yaml@2.8.0) rollup-plugin-styles@4.0.0(rollup@4.40.0): dependencies: @@ -25978,12 +29841,12 @@ snapshots: '@rollup/pluginutils': 5.1.4(rollup@4.40.0) rollup: 4.40.0 - rollup-plugin-webpack-stats@2.0.7(rollup@4.40.0)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0)): + rollup-plugin-webpack-stats@2.1.0(rollup@4.44.2)(vite@7.0.4(@types/node@22.16.3)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)): dependencies: - rollup-plugin-stats: 1.3.9(rollup@4.40.0)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0)) + rollup-plugin-stats: 1.4.0(rollup@4.44.2)(vite@7.0.4(@types/node@22.16.3)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)) optionalDependencies: - rollup: 4.40.0 - vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) + rollup: 4.44.2 + vite: 7.0.4(@types/node@22.16.3)(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.43.1)(tsx@4.20.3)(yaml@2.8.0) rollup@4.40.0: dependencies: @@ -26011,12 +29874,31 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.40.0 fsevents: 2.3.3 - roughjs@4.6.4: + rollup@4.44.2: dependencies: - hachure-fill: 0.5.2 - path-data-parser: 0.1.0 - points-on-curve: 0.2.0 - points-on-path: 0.2.1 + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.44.2 + '@rollup/rollup-android-arm64': 4.44.2 + '@rollup/rollup-darwin-arm64': 4.44.2 + '@rollup/rollup-darwin-x64': 4.44.2 + '@rollup/rollup-freebsd-arm64': 4.44.2 + '@rollup/rollup-freebsd-x64': 4.44.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.44.2 + '@rollup/rollup-linux-arm-musleabihf': 4.44.2 + '@rollup/rollup-linux-arm64-gnu': 4.44.2 + '@rollup/rollup-linux-arm64-musl': 4.44.2 + '@rollup/rollup-linux-loongarch64-gnu': 4.44.2 + '@rollup/rollup-linux-powerpc64le-gnu': 4.44.2 + '@rollup/rollup-linux-riscv64-gnu': 4.44.2 + '@rollup/rollup-linux-riscv64-musl': 4.44.2 + '@rollup/rollup-linux-s390x-gnu': 4.44.2 + '@rollup/rollup-linux-x64-gnu': 4.44.2 + '@rollup/rollup-linux-x64-musl': 4.44.2 + '@rollup/rollup-win32-arm64-msvc': 4.44.2 + '@rollup/rollup-win32-ia32-msvc': 4.44.2 + '@rollup/rollup-win32-x64-msvc': 4.44.2 + fsevents: 2.3.3 roughjs@4.6.6: dependencies: @@ -26064,8 +29946,6 @@ snapshots: has-symbols: 1.1.0 isarray: 2.0.5 - safe-buffer@5.1.1: {} - safe-buffer@5.1.2: {} safe-buffer@5.2.1: {} @@ -26162,10 +30042,10 @@ snapshots: sass-embedded@1.87.0: dependencies: - '@bufbuild/protobuf': 2.5.2 + '@bufbuild/protobuf': 2.6.0 buffer-builder: 0.2.0 colorjs.io: 0.5.2 - immutable: 5.1.2 + immutable: 5.1.3 rxjs: 7.8.2 supports-color: 8.1.1 sync-child-process: 1.0.2 @@ -26202,7 +30082,7 @@ snapshots: sass@1.87.0: dependencies: chokidar: 4.0.3 - immutable: 5.1.2 + immutable: 5.1.3 source-map-js: 1.2.1 optionalDependencies: '@parcel/watcher': 2.5.1 @@ -26248,7 +30128,7 @@ snapshots: selfsigned@2.4.1: dependencies: - '@types/node-forge': 1.3.11 + '@types/node-forge': 1.3.12 node-forge: 1.3.1 semver-compare@1.0.0: @@ -26317,13 +30197,13 @@ snapshots: dependencies: randombytes: 2.1.0 - serve-favicon@2.5.0: + serve-favicon@2.5.1: dependencies: etag: 1.8.1 fresh: 0.5.2 - ms: 2.1.1 + ms: 2.1.3 parseurl: 1.3.3 - safe-buffer: 5.1.1 + safe-buffer: 5.2.1 serve-index@1.9.1: dependencies: @@ -26357,6 +30237,8 @@ snapshots: set-blocking@2.0.0: {} + set-cookie-parser@2.7.1: {} + set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -26399,7 +30281,7 @@ snapshots: shell-exec@1.0.2: {} - shell-quote@1.8.2: {} + shell-quote@1.8.3: {} shelljs@0.8.5: dependencies: @@ -26483,6 +30365,24 @@ snapshots: smob@1.5.0: {} + socket.io-client@4.7.0(bufferutil@4.0.9)(utf-8-validate@6.0.5): + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.7 + engine.io-client: 6.5.4(bufferutil@4.0.9)(utf-8-validate@6.0.5) + socket.io-parser: 4.2.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + socket.io-parser@4.2.4: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + sockjs@0.3.24: dependencies: faye-websocket: 0.11.4 @@ -26502,15 +30402,15 @@ snapshots: dependencies: agent-base: 6.0.2 debug: 4.4.1(supports-color@6.0.0) - socks: 2.8.4 + 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 @@ -26518,6 +30418,17 @@ 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: @@ -26550,6 +30461,8 @@ snapshots: source-map@0.7.4: {} + space-separated-tokens@2.0.2: {} + spacetrim@0.11.59: {} spdx-correct@3.2.0: @@ -26587,6 +30500,8 @@ snapshots: transitivePeerDependencies: - supports-color + specificity@0.4.1: {} + split-on-first@1.1.0: {} split.js@1.6.5: {} @@ -26597,6 +30512,11 @@ snapshots: sprintf-js@1.1.3: {} + sqlite-wasm-kysely@0.3.0(kysely@0.27.6): + dependencies: + '@sqlite.org/sqlite-wasm': 3.48.0-build4 + kysely: 0.27.6 + sqlite3@5.1.7: dependencies: bindings: 1.5.0 @@ -26658,6 +30578,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 @@ -26730,6 +30658,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 @@ -26780,60 +30713,73 @@ 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)): 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6) - 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)): dependencies: - webpack: 5.99.9(@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.6) style-mod@4.1.2: {} + style-search@0.1.0: {} + stylehacks@5.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@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@10.0.0(stylelint@16.20.0(typescript@5.8.3)): + stylehacks@7.0.5(postcss@8.5.6): dependencies: - stylelint: 16.20.0(typescript@5.8.3) - stylelint-config-recommended: 3.0.0(stylelint@16.20.0(typescript@5.8.3)) - stylelint-plugin-ckeditor5-rules: 10.0.0(stylelint@16.20.0(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.20.0(typescript@5.8.3)): + stylelint-config-ckeditor5@12.0.0(stylelint@16.21.1(typescript@5.8.3)): dependencies: - stylelint: 16.20.0(typescript@5.8.3) - stylelint-config-recommended: 3.0.0(stylelint@16.20.0(typescript@5.8.3)) + '@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: 12.0.0(stylelint@16.21.1(typescript@5.8.3)) - stylelint-config-recommended@3.0.0(stylelint@16.20.0(typescript@5.8.3)): + stylelint-config-ckeditor5@2.0.1(stylelint@16.21.1(typescript@5.8.3)): dependencies: - stylelint: 16.20.0(typescript@5.8.3) + stylelint: 16.21.1(typescript@5.8.3) + stylelint-config-recommended: 3.0.0(stylelint@16.21.1(typescript@5.8.3)) - stylelint-plugin-ckeditor5-rules@10.0.0(stylelint@16.20.0(typescript@5.8.3)): + stylelint-config-recommended@16.0.0(stylelint@16.21.1(typescript@5.8.3)): dependencies: - stylelint: 16.20.0(typescript@5.8.3) + stylelint: 16.21.1(typescript@5.8.3) - stylelint@16.20.0(typescript@5.0.4): + stylelint-config-recommended@3.0.0(stylelint@16.21.1(typescript@5.8.3)): dependencies: - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/media-query-list-parser': 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + stylelint: 16.21.1(typescript@5.8.3) + + stylelint-plugin-ckeditor5-rules@12.0.0(stylelint@16.21.1(typescript@5.8.3)): + dependencies: + stylelint: 16.21.1(typescript@5.8.3) + + stylelint@16.21.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 + '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) '@dual-bundle/import-meta-resolve': 4.1.0 balanced-match: 2.0.0 @@ -26844,23 +30790,23 @@ 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.0 + file-entry-cache: 10.1.1 global-modules: 2.0.0 globby: 11.1.0 globjoin: 0.1.4 html-tags: 3.3.1 - ignore: 7.0.4 + ignore: 7.0.5 imurmurhash: 0.1.4 is-plain-object: 5.0.0 - known-css-properties: 0.36.0 + known-css-properties: 0.37.0 mathml-tag-names: 2.1.3 meow: 13.2.0 micromatch: 4.0.8 normalize-path: 3.0.0 picocolors: 1.1.1 - postcss: 8.5.3 + postcss: 8.5.6 postcss-resolve-nested-selector: 0.1.6 - postcss-safe-parser: 7.0.1(postcss@8.5.3) + postcss-safe-parser: 7.0.1(postcss@8.5.6) postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 resolve-from: 5.0.0 @@ -26873,11 +30819,11 @@ snapshots: - supports-color - typescript - stylelint@16.20.0(typescript@5.8.3): + stylelint@16.21.1(typescript@5.8.3): dependencies: - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/media-query-list-parser': 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) '@dual-bundle/import-meta-resolve': 4.1.0 balanced-match: 2.0.0 @@ -26888,23 +30834,23 @@ 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.0 + file-entry-cache: 10.1.1 global-modules: 2.0.0 globby: 11.1.0 globjoin: 0.1.4 html-tags: 3.3.1 - ignore: 7.0.4 + ignore: 7.0.5 imurmurhash: 0.1.4 is-plain-object: 5.0.0 - known-css-properties: 0.36.0 + known-css-properties: 0.37.0 mathml-tag-names: 2.1.3 meow: 13.2.0 micromatch: 4.0.8 normalize-path: 3.0.0 picocolors: 1.1.1 - postcss: 8.5.3 + postcss: 8.5.6 postcss-resolve-nested-selector: 0.1.6 - postcss-safe-parser: 7.0.1(postcss@8.5.3) + postcss-safe-parser: 7.0.1(postcss@8.5.6) postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 resolve-from: 5.0.0 @@ -26936,13 +30882,17 @@ snapshots: 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.2: dependencies: component-emitter: 1.3.1 cookiejar: 2.1.4 @@ -26956,10 +30906,10 @@ snapshots: transitivePeerDependencies: - supports-color - supertest@7.1.1: + supertest@7.1.3: dependencies: methods: 1.1.2 - superagent: 10.2.1 + superagent: 10.2.2 transitivePeerDependencies: - supports-color @@ -26986,6 +30936,46 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} + svelte-check@4.2.2(picomatch@4.0.2)(svelte@5.35.6)(typescript@5.8.3): + dependencies: + '@jridgewell/trace-mapping': 0.3.29 + chokidar: 4.0.3 + fdir: 6.4.6(picomatch@4.0.2) + picocolors: 1.1.1 + sade: 1.8.1 + svelte: 5.35.6 + typescript: 5.8.3 + transitivePeerDependencies: + - picomatch + + svelte-eslint-parser@1.2.0(svelte@5.35.6): + dependencies: + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + postcss: 8.5.6 + postcss-scss: 4.0.9(postcss@8.5.6) + postcss-selector-parser: 7.1.0 + optionalDependencies: + svelte: 5.35.6 + + svelte@5.35.6: + dependencies: + '@ampproject/remapping': 2.3.0 + '@jridgewell/sourcemap-codec': 1.5.4 + '@sveltejs/acorn-typescript': 1.0.5(acorn@8.15.0) + '@types/estree': 1.0.8 + acorn: 8.15.0 + aria-query: 5.3.2 + axobject-query: 4.1.0 + clsx: 2.1.1 + esm-env: 1.2.2 + esrap: 2.1.0 + is-reference: 3.0.3 + locate-character: 3.0.0 + magic-string: 0.30.17 + zimmerframe: 1.1.2 + svg-pan-zoom@3.6.2: {} svg-tags@1.0.0: {} @@ -27054,7 +31044,11 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 - tapable@2.2.1: {} + tabulator-tables@6.3.1: {} + + tailwindcss@4.1.11: {} + + tapable@2.2.2: {} tape@4.17.0: dependencies: @@ -27082,12 +31076,12 @@ snapshots: pump: 3.0.2 tar-stream: 2.2.0 - tar-fs@3.0.9: + tar-fs@3.1.0: 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 @@ -27095,7 +31089,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 @@ -27137,7 +31131,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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)): dependencies: cacache: 15.3.0 find-cache-dir: 3.3.2 @@ -27147,45 +31141,36 @@ 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6) 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.6)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)): 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6) optionalDependencies: '@swc/core': 1.11.29(@swc/helpers@0.5.17) - esbuild: 0.25.5 + esbuild: 0.25.6 terser@5.39.0: dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.14.1 + acorn: 8.15.0 commander: 2.20.3 source-map-support: 0.5.21 - tesseract.js-core@6.0.0: {} - - tesseract.js@6.0.1(encoding@0.1.13): + terser@5.43.1: dependencies: - bmp-js: 0.1.0 - idb-keyval: 6.2.2 - is-url: 1.2.4 - node-fetch: 2.7.0(encoding@0.1.13) - opencollective-postinstall: 2.0.3 - regenerator-runtime: 0.13.11 - tesseract.js-core: 6.0.0 - wasm-feature-detect: 1.8.0 - zlibjs: 0.3.1 - transitivePeerDependencies: - - encoding + '@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: @@ -27203,8 +31188,6 @@ snapshots: dependencies: b4a: 1.6.7 - text-table@0.2.0: {} - thingies@1.21.0(tslib@2.8.1): dependencies: tslib: 2.8.1 @@ -27242,10 +31225,10 @@ snapshots: tinyglobby@0.2.14: dependencies: - fdir: 6.4.5(picomatch@4.0.2) + fdir: 6.4.6(picomatch@4.0.2) picomatch: 4.0.2 - tinypool@1.1.0: {} + tinypool@1.1.1: {} tinyrainbow@2.0.0: {} @@ -27313,48 +31296,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@1.4.3(typescript@5.8.3): - dependencies: - typescript: 5.8.3 - ts-api-utils@2.1.0(typescript@5.8.3): dependencies: typescript: 5.8.3 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)): 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 typescript: 5.0.4 - webpack: 5.99.9(@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.6) - ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.15.30)(typescript@5.0.4): + ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.16.3)(typescript@5.8.3): 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.15.30 + '@types/node': 22.16.3 + 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 + 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.0.12)(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.0.12 acorn: 8.14.1 acorn-walk: 8.3.4 arg: 4.1.3 @@ -27367,14 +31373,14 @@ 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.15.30)(typescript@5.8.3): + ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.0.12)(typescript@5.8.3): 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.15.30 + '@types/node': 24.0.12 acorn: 8.14.1 acorn-walk: 8.3.4 arg: 4.1.3 @@ -27395,10 +31401,10 @@ snapshots: tslib@2.8.1: {} - tsx@4.19.4: + tsx@4.20.3: dependencies: esbuild: 0.25.5 - get-tsconfig: 4.10.0 + get-tsconfig: 4.10.1 optionalDependencies: fsevents: 2.3.3 @@ -27406,9 +31412,9 @@ snapshots: dependencies: safe-buffer: 5.2.1 - tunnel-rat@0.1.2(@types/react@19.1.7)(react@19.1.0): + tunnel-rat@0.1.2(@types/react@19.1.7)(react@16.14.0): dependencies: - zustand: 4.5.6(@types/react@19.1.7)(react@19.1.0) + zustand: 4.5.6(@types/react@19.1.7)(react@16.14.0) transitivePeerDependencies: - '@types/react' - immer @@ -27424,8 +31430,6 @@ snapshots: - supports-color - utf-8-validate - turndown-plugin-gfm@1.0.2: {} - turndown@7.2.0: dependencies: '@mixmark-io/domino': 2.2.0 @@ -27498,20 +31502,18 @@ snapshots: typedarray@0.0.6: {} - typescript-eslint@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3): + typescript-eslint@8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/parser': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.28.0(jiti@2.4.2) + '@typescript-eslint/eslint-plugin': 8.36.0(@typescript-eslint/parser@8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/parser': 8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.36.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.31.0(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: - supports-color typescript@5.0.4: {} - typescript@5.7.3: {} - typescript@5.8.2: {} typescript@5.8.3: {} @@ -27535,6 +31537,8 @@ snapshots: undici-types@6.21.0: {} + undici-types@7.8.0: {} + undici@6.21.3: {} undici@7.10.0: {} @@ -27558,6 +31562,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 @@ -27586,10 +31600,51 @@ snapshots: dependencies: imurmurhash: 0.1.4 - unist-util-stringify-position@3.0.3: + 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: {} @@ -27601,6 +31656,12 @@ snapshots: unpipe@1.0.0: {} + unplugin@2.3.5: + dependencies: + acorn: 8.15.0 + picomatch: 4.0.2 + webpack-virtual-modules: 0.6.2 + unused-filename@4.0.1: dependencies: escape-string-regexp: 5.0.0 @@ -27608,9 +31669,9 @@ snapshots: upath@2.0.1: {} - update-browserslist-db@1.1.3(browserslist@4.24.4): + update-browserslist-db@1.1.3(browserslist@4.25.1): dependencies: - browserslist: 4.24.4 + browserslist: 4.25.1 escalade: 3.2.0 picocolors: 1.1.1 @@ -27625,26 +31686,26 @@ 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@19.1.0): + use-callback-ref@1.3.3(@types/react@19.1.7)(react@16.14.0): dependencies: - react: 19.1.0 + react: 16.14.0 tslib: 2.8.1 optionalDependencies: '@types/react': 19.1.7 - use-sidecar@1.1.3(@types/react@19.1.7)(react@19.1.0): + use-sidecar@1.1.3(@types/react@19.1.7)(react@16.14.0): dependencies: detect-node-es: 1.1.0 - react: 19.1.0 + react: 16.14.0 tslib: 2.8.1 optionalDependencies: '@types/react': 19.1.7 - use-sync-external-store@1.5.0(react@19.1.0): + use-sync-external-store@1.5.0(react@16.14.0): dependencies: - react: 19.1.0 + react: 16.14.0 userhome@1.0.1: {} @@ -27668,24 +31729,19 @@ snapshots: utils-merge@1.0.1: {} + uuid@10.0.0: {} + uuid@11.1.0: {} uuid@8.3.2: {} uuid@9.0.1: {} - uvu@0.5.6: - dependencies: - dequal: 2.0.3 - diff: 5.2.0 - kleur: 4.1.5 - sade: 1.8.1 - v8-compile-cache-lib@3.0.1: {} v8-to-istanbul@9.3.0: dependencies: - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.29 '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 @@ -27696,6 +31752,8 @@ snapshots: validate-npm-package-name@5.0.1: {} + validate-npm-package-name@6.0.1: {} + validator@13.15.0: {} value-equal@1.0.1: {} @@ -27709,13 +31767,28 @@ snapshots: vary@1.1.2: {} - vite-node@3.2.0(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0): + vfile-message@2.0.4: + dependencies: + '@types/unist': 2.0.11 + unist-util-stringify-position: 2.0.3 + + vfile-message@4.0.2: + dependencies: + '@types/unist': 3.0.3 + 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.16.3)(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.43.1)(tsx@4.20.3)(yaml@2.8.0): 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: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) + vite: 7.0.0(@types/node@22.16.3)(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.43.1)(tsx@4.20.3)(yaml@2.8.0) transitivePeerDependencies: - '@types/node' - jiti @@ -27730,13 +31803,13 @@ snapshots: - tsx - yaml - vite-node@3.2.3(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0): + vite-node@3.2.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0): 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: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) + vite: 7.0.0(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0) transitivePeerDependencies: - '@types/node' - jiti @@ -27751,10 +31824,10 @@ snapshots: - tsx - yaml - vite-plugin-dts@4.5.4(@types/node@22.15.30)(rollup@4.40.0)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0)): + vite-plugin-dts@4.5.4(@types/node@22.16.3)(rollup@4.44.2)(typescript@5.8.3)(vite@7.0.4(@types/node@22.16.3)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)): dependencies: - '@microsoft/api-extractor': 7.52.8(@types/node@22.15.30) - '@rollup/pluginutils': 5.1.4(rollup@4.40.0) + '@microsoft/api-extractor': 7.52.8(@types/node@22.16.3) + '@rollup/pluginutils': 5.1.4(rollup@4.44.2) '@volar/typescript': 2.4.13 '@vue/language-core': 2.2.0(typescript@5.8.3) compare-versions: 6.1.1 @@ -27764,58 +31837,131 @@ snapshots: magic-string: 0.30.17 typescript: 5.8.3 optionalDependencies: - vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) + vite: 7.0.4(@types/node@22.16.3)(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.43.1)(tsx@4.20.3)(yaml@2.8.0) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-static-copy@3.0.0(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0)): + vite-plugin-static-copy@3.1.1(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)): dependencies: chokidar: 3.6.0 fs-extra: 11.3.0 p-map: 7.0.3 picocolors: 1.1.1 - tinyglobby: 0.2.13 - vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) + tinyglobby: 0.2.14 + vite: 7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0) - vite-plugin-svgo@2.0.0(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0)): + vite-plugin-svgo@2.0.0(typescript@5.8.3)(vite@7.0.0(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)): dependencies: svgo: 3.3.2 typescript: 5.8.3 - vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) + vite: 7.0.0(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0) - vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0): + vite-plugin-svgo@2.0.0(typescript@5.8.3)(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)): dependencies: - esbuild: 0.25.5 - fdir: 6.4.4(picomatch@4.0.2) + svgo: 3.3.2 + typescript: 5.8.3 + vite: 7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0) + + vite@7.0.0(@types/node@22.16.3)(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.43.1)(tsx@4.20.3)(yaml@2.8.0): + dependencies: + esbuild: 0.25.6 + fdir: 6.4.6(picomatch@4.0.2) picomatch: 4.0.2 - postcss: 8.5.3 + postcss: 8.5.6 rollup: 4.40.0 - tinyglobby: 0.2.13 + tinyglobby: 0.2.14 optionalDependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 fsevents: 2.3.3 jiti: 2.4.2 less: 4.1.3 + lightningcss: 1.30.1 sass: 1.87.0 sass-embedded: 1.87.0 stylus: 0.64.0 - sugarss: 4.0.1(postcss@8.5.3) - terser: 5.39.0 - tsx: 4.19.4 + terser: 5.43.1 + tsx: 4.20.3 yaml: 2.8.0 - vitest@3.2.0(@types/debug@4.1.12)(@types/node@22.15.30)(@vitest/browser@3.2.0)(@vitest/ui@3.2.0)(happy-dom@17.6.3)(jiti@2.4.2)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(msw@2.7.5(@types/node@22.15.30)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0): + vite@7.0.0(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0): + dependencies: + esbuild: 0.25.6 + 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': 24.0.12 + fsevents: 2.3.3 + jiti: 2.4.2 + less: 4.1.3 + lightningcss: 1.30.1 + sass: 1.87.0 + sass-embedded: 1.87.0 + stylus: 0.64.0 + terser: 5.43.1 + tsx: 4.20.3 + yaml: 2.8.0 + + vite@7.0.4(@types/node@22.16.3)(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.43.1)(tsx@4.20.3)(yaml@2.8.0): + dependencies: + esbuild: 0.25.6 + fdir: 6.4.6(picomatch@4.0.2) + picomatch: 4.0.2 + postcss: 8.5.6 + rollup: 4.44.2 + tinyglobby: 0.2.14 + optionalDependencies: + '@types/node': 22.16.3 + fsevents: 2.3.3 + jiti: 2.4.2 + less: 4.1.3 + lightningcss: 1.30.1 + sass: 1.87.0 + sass-embedded: 1.87.0 + stylus: 0.64.0 + terser: 5.43.1 + tsx: 4.20.3 + yaml: 2.8.0 + + vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0): + dependencies: + esbuild: 0.25.6 + fdir: 6.4.6(picomatch@4.0.2) + picomatch: 4.0.2 + postcss: 8.5.6 + rollup: 4.44.2 + tinyglobby: 0.2.14 + optionalDependencies: + '@types/node': 24.0.12 + fsevents: 2.3.3 + jiti: 2.4.2 + less: 4.1.3 + lightningcss: 1.30.1 + sass: 1.87.0 + sass-embedded: 1.87.0 + stylus: 0.64.0 + terser: 5.43.1 + tsx: 4.20.3 + yaml: 2.8.0 + + vitefu@1.1.1(vite@7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)): + optionalDependencies: + vite: 7.0.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0) + + vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.16.3)(@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.3)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0): dependencies: '@types/chai': 5.2.2 - '@vitest/expect': 3.2.0 - '@vitest/mocker': 3.2.0(msw@2.7.5(@types/node@22.15.30)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0)) - '@vitest/pretty-format': 3.2.0 - '@vitest/runner': 3.2.0 - '@vitest/snapshot': 3.2.0 - '@vitest/spy': 3.2.0 - '@vitest/utils': 3.2.0 + '@vitest/expect': 3.2.4 + '@vitest/mocker': 3.2.4(msw@2.7.5(@types/node@22.16.3)(typescript@5.8.3))(vite@7.0.0(@types/node@22.16.3)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)) + '@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 @@ -27826,17 +31972,17 @@ snapshots: tinybench: 2.9.0 tinyexec: 0.3.2 tinyglobby: 0.2.14 - tinypool: 1.1.0 + tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) - vite-node: 3.2.0(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) + vite: 7.0.0(@types/node@22.16.3)(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.43.1)(tsx@4.20.3)(yaml@2.8.0) + vite-node: 3.2.4(@types/node@22.16.3)(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.43.1)(tsx@4.20.3)(yaml@2.8.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 - '@types/node': 22.15.30 - '@vitest/browser': 3.2.0(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.15.30)(typescript@5.8.3))(playwright@1.52.0)(utf-8-validate@6.0.5)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0))(vitest@3.2.0)(webdriverio@9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)) - '@vitest/ui': 3.2.0(vitest@3.2.0) - happy-dom: 17.6.3 + '@types/node': 22.16.3 + '@vitest/browser': 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.16.3)(typescript@5.8.3))(playwright@1.54.1)(utf-8-validate@6.0.5)(vite@7.0.4(@types/node@22.16.3)(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.43.1)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4)(webdriverio@9.17.0(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 @@ -27852,16 +31998,16 @@ snapshots: - tsx - yaml - vitest@3.2.3(@types/debug@4.1.12)(@types/node@22.15.30)(@vitest/ui@3.2.3)(happy-dom@17.6.3)(jiti@2.4.2)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(msw@2.7.5(@types/node@22.15.30)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.0.12)(@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@24.0.12)(typescript@5.8.3))(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0): dependencies: '@types/chai': 5.2.2 - '@vitest/expect': 3.2.3 - '@vitest/mocker': 3.2.3(msw@2.7.5(@types/node@22.15.30)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0)) - '@vitest/pretty-format': 3.2.3 - '@vitest/runner': 3.2.3 - '@vitest/snapshot': 3.2.3 - '@vitest/spy': 3.2.3 - '@vitest/utils': 3.2.3 + '@vitest/expect': 3.2.4 + '@vitest/mocker': 3.2.4(msw@2.7.5(@types/node@24.0.12)(typescript@5.8.3))(vite@7.0.0(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0)) + '@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 @@ -27872,16 +32018,17 @@ snapshots: tinybench: 2.9.0 tinyexec: 0.3.2 tinyglobby: 0.2.14 - tinypool: 1.1.0 + tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) - vite-node: 3.2.3(@types/node@22.15.30)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) + vite: 7.0.0(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0) + vite-node: 3.2.4(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 - '@types/node': 22.15.30 - '@vitest/ui': 3.2.3(vitest@3.2.3) - happy-dom: 17.6.3 + '@types/node': 24.0.12 + '@vitest/browser': 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@24.0.12)(typescript@5.8.3))(playwright@1.54.1)(utf-8-validate@6.0.5)(vite@7.0.0(@types/node@24.0.12)(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.43.1)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4)(webdriverio@9.17.0(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 @@ -27946,9 +32093,7 @@ snapshots: dependencies: loose-envify: 1.4.0 - wasm-feature-detect@1.8.0: {} - - watchpack@2.4.2: + watchpack@2.4.4: dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 @@ -27961,45 +32106,46 @@ snapshots: dependencies: defaults: 1.0.4 + web-namespaces@2.0.1: {} + web-streams-polyfill@3.3.3: {} - web-worker@1.5.0: {} - - webdriver@9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5): + webdriver@9.17.0(bufferutil@4.0.9)(utf-8-validate@6.0.5): dependencies: - '@types/node': 20.17.32 + '@types/node': 20.19.6 '@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.17.0 + '@wdio/logger': 9.16.2 + '@wdio/protocols': 9.16.2 + '@wdio/types': 9.16.2 + '@wdio/utils': 9.17.0 deepmerge-ts: 7.1.5 + https-proxy-agent: 7.0.6 undici: 6.21.3 - ws: 8.18.2(bufferutil@4.0.9)(utf-8-validate@6.0.5) + ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) transitivePeerDependencies: - bare-buffer - bufferutil - supports-color - utf-8-validate - webdriverio@9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5): + webdriverio@9.17.0(bufferutil@4.0.9)(utf-8-validate@6.0.5): dependencies: - '@types/node': 20.17.32 + '@types/node': 20.19.6 '@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.17.0 + '@wdio/logger': 9.16.2 + '@wdio/protocols': 9.16.2 + '@wdio/repl': 9.16.2 + '@wdio/types': 9.16.2 + '@wdio/utils': 9.17.0 archiver: 7.0.1 aria-query: 5.3.2 cheerio: 1.1.0 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 @@ -28008,8 +32154,8 @@ snapshots: 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) + urlpattern-polyfill: 10.1.0 + webdriver: 9.17.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) transitivePeerDependencies: - bare-buffer - bufferutil @@ -28024,23 +32170,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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)): 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6) - 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)): 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 @@ -28056,17 +32202,17 @@ snapshots: 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.1.2 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)) - ws: 8.18.2(bufferutil@4.0.9)(utf-8-validate@6.0.5) + webpack-dev-middleware: 7.4.2(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)) + 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.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6) transitivePeerDependencies: - bufferutil - debug @@ -28083,20 +32229,22 @@ snapshots: source-list-map: 2.0.1 source-map: 0.6.1 - webpack-sources@3.2.3: {} + webpack-sources@3.3.3: {} - webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5): + webpack-virtual-modules@0.6.2: {} + + webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6): dependencies: '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 '@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 + 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 @@ -28107,10 +32255,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.6)(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.6)) + watchpack: 2.4.4 + webpack-sources: 3.3.3 transitivePeerDependencies: - '@swc/core' - esbuild @@ -28285,7 +32433,12 @@ snapshots: bufferutil: 4.0.9 utf-8-validate: 6.0.5 - ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@6.0.5): + ws@8.17.1(bufferutil@4.0.9)(utf-8-validate@6.0.5): + optionalDependencies: + bufferutil: 4.0.9 + utf-8-validate: 6.0.5 + + ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5): optionalDependencies: bufferutil: 4.0.9 utf-8-validate: 6.0.5 @@ -28312,6 +32465,8 @@ snapshots: xmlchars@2.2.0: {} + xmlhttprequest-ssl@2.0.0: {} + xtend@4.0.2: {} y18n@4.0.3: {} @@ -28421,19 +32576,21 @@ snapshots: optionalDependencies: commander: 9.5.0 + zimmerframe@1.1.2: {} + zip-stream@6.0.1: dependencies: archiver-utils: 5.0.2 compress-commons: 6.0.2 readable-stream: 4.7.0 - zlibjs@0.3.1: {} - zod@3.24.4: {} - zustand@4.5.6(@types/react@19.1.7)(react@19.1.0): + zustand@4.5.6(@types/react@19.1.7)(react@16.14.0): dependencies: - use-sync-external-store: 1.5.0(react@19.1.0) + use-sync-external-store: 1.5.0(react@16.14.0) optionalDependencies: '@types/react': 19.1.7 - react: 19.1.0 + react: 16.14.0 + + zwitch@2.0.4: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index f7e733b59..2c068ac8f 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -2,22 +2,5 @@ packages: - packages/* - apps/* -ignoredBuiltDependencies: -- sqlite3 - -onlyBuiltDependencies: -- '@parcel/watcher' -- '@scarf/scarf' -- bufferutil -- core-js-pure -- esbuild -- nx -- utf-8-validate -- better-sqlite3 -- electron -- electron-winstaller -- fs-xattr -- macos-alias - shamefullyHoist: true nodeLinker: isolated diff --git a/port-discussions.log b/port-discussions.log new file mode 100644 index 000000000..b60fc8eb2 --- /dev/null +++ b/port-discussions.log @@ -0,0 +1,191 @@ +Transferred discussion 2089 to https://github.com/orgs/TriliumNext/discussions/5889 +Transferred discussion 2096 to https://github.com/orgs/TriliumNext/discussions/5890 +Transferred discussion 2109 to https://github.com/orgs/TriliumNext/discussions/5891 +Transferred discussion 2091 to https://github.com/orgs/TriliumNext/discussions/5892 +Transferred discussion 2087 to https://github.com/orgs/TriliumNext/discussions/5893 +Transferred discussion 2074 to https://github.com/orgs/TriliumNext/discussions/5894 +Transferred discussion 2062 to https://github.com/orgs/TriliumNext/discussions/5895 +Transferred discussion 2071 to https://github.com/orgs/TriliumNext/discussions/5896 +Transferred discussion 2063 to https://github.com/orgs/TriliumNext/discussions/5897 +Transferred discussion 2054 to https://github.com/orgs/TriliumNext/discussions/5898 +Transferred discussion 8 to https://github.com/orgs/TriliumNext/discussions/5899 +Transferred discussion 2028 to https://github.com/orgs/TriliumNext/discussions/5900 +Transferred discussion 1793 to https://github.com/orgs/TriliumNext/discussions/5901 +Transferred discussion 2022 to https://github.com/orgs/TriliumNext/discussions/5902 +Transferred discussion 1731 to https://github.com/orgs/TriliumNext/discussions/5903 +Transferred discussion 1981 to https://github.com/orgs/TriliumNext/discussions/5904 +Transferred discussion 2015 to https://github.com/orgs/TriliumNext/discussions/5905 +Transferred discussion 1972 to https://github.com/orgs/TriliumNext/discussions/5906 +Transferred discussion 24 to https://github.com/orgs/TriliumNext/discussions/5907 +Transferred discussion 1967 to https://github.com/orgs/TriliumNext/discussions/5908 +Transferred discussion 1947 to https://github.com/orgs/TriliumNext/discussions/5909 +Transferred discussion 444 to https://github.com/orgs/TriliumNext/discussions/5910 +Transferred discussion 1904 to https://github.com/orgs/TriliumNext/discussions/5911 +Transferred discussion 1907 to https://github.com/orgs/TriliumNext/discussions/5912 +Transferred discussion 1860 to https://github.com/orgs/TriliumNext/discussions/5913 +Transferred discussion 1859 to https://github.com/orgs/TriliumNext/discussions/5914 +Transferred discussion 1814 to https://github.com/orgs/TriliumNext/discussions/5915 +Transferred discussion 1823 to https://github.com/orgs/TriliumNext/discussions/5916 +Transferred discussion 1699 to https://github.com/orgs/TriliumNext/discussions/5917 +Transferred discussion 1760 to https://github.com/orgs/TriliumNext/discussions/5918 +Transferred discussion 1807 to https://github.com/orgs/TriliumNext/discussions/5919 +Transferred discussion 1806 to https://github.com/orgs/TriliumNext/discussions/5920 +Transferred discussion 1800 to https://github.com/orgs/TriliumNext/discussions/5921 +Transferred discussion 1797 to https://github.com/orgs/TriliumNext/discussions/5922 +Transferred discussion 1791 to https://github.com/orgs/TriliumNext/discussions/5923 +Transferred discussion 1774 to https://github.com/orgs/TriliumNext/discussions/5924 +Transferred discussion 1771 to https://github.com/orgs/TriliumNext/discussions/5925 +Transferred discussion 1696 to https://github.com/orgs/TriliumNext/discussions/5926 +Transferred discussion 1736 to https://github.com/orgs/TriliumNext/discussions/5927 +Transferred discussion 1733 to https://github.com/orgs/TriliumNext/discussions/5928 +Transferred discussion 1682 to https://github.com/orgs/TriliumNext/discussions/5929 +Transferred discussion 867 to https://github.com/orgs/TriliumNext/discussions/5930 +Transferred discussion 1593 to https://github.com/orgs/TriliumNext/discussions/5931 +Transferred discussion 1671 to https://github.com/orgs/TriliumNext/discussions/5932 +Transferred discussion 1669 to https://github.com/orgs/TriliumNext/discussions/5933 +Transferred discussion 1654 to https://github.com/orgs/TriliumNext/discussions/5934 +Transferred discussion 1653 to https://github.com/orgs/TriliumNext/discussions/5935 +Transferred discussion 1642 to https://github.com/orgs/TriliumNext/discussions/5936 +Transferred discussion 1638 to https://github.com/orgs/TriliumNext/discussions/5937 +Transferred discussion 1629 to https://github.com/orgs/TriliumNext/discussions/5938 +Transferred discussion 1621 to https://github.com/orgs/TriliumNext/discussions/5939 +Transferred discussion 1565 to https://github.com/orgs/TriliumNext/discussions/5940 +Transferred discussion 1573 to https://github.com/orgs/TriliumNext/discussions/5941 +Transferred discussion 1387 to https://github.com/orgs/TriliumNext/discussions/5942 +Transferred discussion 1548 to https://github.com/orgs/TriliumNext/discussions/5943 +Transferred discussion 1576 to https://github.com/orgs/TriliumNext/discussions/5944 +Transferred discussion 1568 to https://github.com/orgs/TriliumNext/discussions/5945 +Transferred discussion 904 to https://github.com/orgs/TriliumNext/discussions/5946 +Transferred discussion 1386 to https://github.com/orgs/TriliumNext/discussions/5947 +Transferred discussion 1526 to https://github.com/orgs/TriliumNext/discussions/5948 +Transferred discussion 1443 to https://github.com/orgs/TriliumNext/discussions/5949 +Transferred discussion 1529 to https://github.com/orgs/TriliumNext/discussions/5950 +Transferred discussion 1461 to https://github.com/orgs/TriliumNext/discussions/5951 +Transferred discussion 1490 to https://github.com/orgs/TriliumNext/discussions/5952 +Transferred discussion 1497 to https://github.com/orgs/TriliumNext/discussions/5953 +Transferred discussion 1444 to https://github.com/orgs/TriliumNext/discussions/5954 +Transferred discussion 1522 to https://github.com/orgs/TriliumNext/discussions/5955 +Transferred discussion 1385 to https://github.com/orgs/TriliumNext/discussions/5956 +Transferred discussion 1504 to https://github.com/orgs/TriliumNext/discussions/5957 +Transferred discussion 1448 to https://github.com/orgs/TriliumNext/discussions/5958 +Transferred discussion 1491 to https://github.com/orgs/TriliumNext/discussions/5959 +Transferred discussion 1463 to https://github.com/orgs/TriliumNext/discussions/5960 +Transferred discussion 1460 to https://github.com/orgs/TriliumNext/discussions/5961 +Transferred discussion 1449 to https://github.com/orgs/TriliumNext/discussions/5962 +Transferred discussion 1441 to https://github.com/orgs/TriliumNext/discussions/5963 +Transferred discussion 1403 to https://github.com/orgs/TriliumNext/discussions/5964 +Transferred discussion 1426 to https://github.com/orgs/TriliumNext/discussions/5965 +Transferred discussion 1420 to https://github.com/orgs/TriliumNext/discussions/5966 +Transferred discussion 1414 to https://github.com/orgs/TriliumNext/discussions/5967 +Transferred discussion 1417 to https://github.com/orgs/TriliumNext/discussions/5968 +Transferred discussion 1416 to https://github.com/orgs/TriliumNext/discussions/5969 +Transferred discussion 1442 to https://github.com/orgs/TriliumNext/discussions/5970 +Transferred discussion 1334 to https://github.com/orgs/TriliumNext/discussions/5971 +Transferred discussion 1052 to https://github.com/orgs/TriliumNext/discussions/5972 +Transferred discussion 1265 to https://github.com/orgs/TriliumNext/discussions/5973 +Transferred discussion 1318 to https://github.com/orgs/TriliumNext/discussions/5974 +Transferred discussion 1346 to https://github.com/orgs/TriliumNext/discussions/5975 +Transferred discussion 793 to https://github.com/orgs/TriliumNext/discussions/5976 +Transferred discussion 1356 to https://github.com/orgs/TriliumNext/discussions/5977 +Transferred discussion 1290 to https://github.com/orgs/TriliumNext/discussions/5978 +Transferred discussion 1111 to https://github.com/orgs/TriliumNext/discussions/5979 +Transferred discussion 1311 to https://github.com/orgs/TriliumNext/discussions/5980 +Transferred discussion 1317 to https://github.com/orgs/TriliumNext/discussions/5981 +Transferred discussion 1287 to https://github.com/orgs/TriliumNext/discussions/5982 +Transferred discussion 1282 to https://github.com/orgs/TriliumNext/discussions/5983 +Transferred discussion 1279 to https://github.com/orgs/TriliumNext/discussions/5984 +Transferred discussion 1271 to https://github.com/orgs/TriliumNext/discussions/5985 +Transferred discussion 356 to https://github.com/orgs/TriliumNext/discussions/5986 +Transferred discussion 1255 to https://github.com/orgs/TriliumNext/discussions/5987 +Transferred discussion 1210 to https://github.com/orgs/TriliumNext/discussions/5988 +Transferred discussion 1249 to https://github.com/orgs/TriliumNext/discussions/5989 +Transferred discussion 1203 to https://github.com/orgs/TriliumNext/discussions/5990 +Transferred discussion 1116 to https://github.com/orgs/TriliumNext/discussions/5991 +Transferred discussion 827 to https://github.com/orgs/TriliumNext/discussions/5992 +Transferred discussion 1176 to https://github.com/orgs/TriliumNext/discussions/5993 +Transferred discussion 1166 to https://github.com/orgs/TriliumNext/discussions/5994 +Transferred discussion 1079 to https://github.com/orgs/TriliumNext/discussions/5995 +Transferred discussion 1082 to https://github.com/orgs/TriliumNext/discussions/5996 +Transferred discussion 1060 to https://github.com/orgs/TriliumNext/discussions/5997 +Transferred discussion 1085 to https://github.com/orgs/TriliumNext/discussions/5998 +Transferred discussion 360 to https://github.com/orgs/TriliumNext/discussions/5999 +Transferred discussion 442 to https://github.com/orgs/TriliumNext/discussions/6000 +Transferred discussion 981 to https://github.com/orgs/TriliumNext/discussions/6001 +Transferred discussion 975 to https://github.com/orgs/TriliumNext/discussions/6002 +Transferred discussion 1007 to https://github.com/orgs/TriliumNext/discussions/6003 +Transferred discussion 968 to https://github.com/orgs/TriliumNext/discussions/6004 +Transferred discussion 957 to https://github.com/orgs/TriliumNext/discussions/6005 +Transferred discussion 939 to https://github.com/orgs/TriliumNext/discussions/6006 +Transferred discussion 775 to https://github.com/orgs/TriliumNext/discussions/6007 +Transferred discussion 944 to https://github.com/orgs/TriliumNext/discussions/6008 +Transferred discussion 934 to https://github.com/orgs/TriliumNext/discussions/6009 +Transferred discussion 907 to https://github.com/orgs/TriliumNext/discussions/6010 +Transferred discussion 898 to https://github.com/orgs/TriliumNext/discussions/6011 +Transferred discussion 846 to https://github.com/orgs/TriliumNext/discussions/6012 +Transferred discussion 851 to https://github.com/orgs/TriliumNext/discussions/6013 +Transferred discussion 836 to https://github.com/orgs/TriliumNext/discussions/6014 +Transferred discussion 833 to https://github.com/orgs/TriliumNext/discussions/6015 +Transferred discussion 828 to https://github.com/orgs/TriliumNext/discussions/6016 +Transferred discussion 527 to https://github.com/orgs/TriliumNext/discussions/6017 +Transferred discussion 824 to https://github.com/orgs/TriliumNext/discussions/6018 +Transferred discussion 770 to https://github.com/orgs/TriliumNext/discussions/6019 +Transferred discussion 774 to https://github.com/orgs/TriliumNext/discussions/6020 +Transferred discussion 716 to https://github.com/orgs/TriliumNext/discussions/6021 +Transferred discussion 731 to https://github.com/orgs/TriliumNext/discussions/6022 +Transferred discussion 519 to https://github.com/orgs/TriliumNext/discussions/6023 +Transferred discussion 704 to https://github.com/orgs/TriliumNext/discussions/6024 +Transferred discussion 665 to https://github.com/orgs/TriliumNext/discussions/6025 +Transferred discussion 610 to https://github.com/orgs/TriliumNext/discussions/6026 +Transferred discussion 662 to https://github.com/orgs/TriliumNext/discussions/6027 +Transferred discussion 596 to https://github.com/orgs/TriliumNext/discussions/6028 +Transferred discussion 621 to https://github.com/orgs/TriliumNext/discussions/6029 +Transferred discussion 611 to https://github.com/orgs/TriliumNext/discussions/6030 +Transferred discussion 566 to https://github.com/orgs/TriliumNext/discussions/6031 +Transferred discussion 591 to https://github.com/orgs/TriliumNext/discussions/6032 +Transferred discussion 590 to https://github.com/orgs/TriliumNext/discussions/6033 +Transferred discussion 578 to https://github.com/orgs/TriliumNext/discussions/6034 +Transferred discussion 575 to https://github.com/orgs/TriliumNext/discussions/6035 +Transferred discussion 564 to https://github.com/orgs/TriliumNext/discussions/6036 +Transferred discussion 563 to https://github.com/orgs/TriliumNext/discussions/6037 +Transferred discussion 557 to https://github.com/orgs/TriliumNext/discussions/6038 +Transferred discussion 551 to https://github.com/orgs/TriliumNext/discussions/6039 +Transferred discussion 540 to https://github.com/orgs/TriliumNext/discussions/6040 +Transferred discussion 523 to https://github.com/orgs/TriliumNext/discussions/6041 +Transferred discussion 512 to https://github.com/orgs/TriliumNext/discussions/6042 +Transferred discussion 515 to https://github.com/orgs/TriliumNext/discussions/6043 +Transferred discussion 510 to https://github.com/orgs/TriliumNext/discussions/6044 +Transferred discussion 509 to https://github.com/orgs/TriliumNext/discussions/6045 +Transferred discussion 482 to https://github.com/orgs/TriliumNext/discussions/6046 +Transferred discussion 494 to https://github.com/orgs/TriliumNext/discussions/6047 +Transferred discussion 478 to https://github.com/orgs/TriliumNext/discussions/6048 +Transferred discussion 461 to https://github.com/orgs/TriliumNext/discussions/6049 +Transferred discussion 476 to https://github.com/orgs/TriliumNext/discussions/6050 +Transferred discussion 471 to https://github.com/orgs/TriliumNext/discussions/6051 +Transferred discussion 445 to https://github.com/orgs/TriliumNext/discussions/6052 +Transferred discussion 393 to https://github.com/orgs/TriliumNext/discussions/6053 +Transferred discussion 435 to https://github.com/orgs/TriliumNext/discussions/6054 +Transferred discussion 440 to https://github.com/orgs/TriliumNext/discussions/6055 +Transferred discussion 369 to https://github.com/orgs/TriliumNext/discussions/6056 +Transferred discussion 398 to https://github.com/orgs/TriliumNext/discussions/6057 +Transferred discussion 370 to https://github.com/orgs/TriliumNext/discussions/6058 +Transferred discussion 367 to https://github.com/orgs/TriliumNext/discussions/6059 +Transferred discussion 169 to https://github.com/orgs/TriliumNext/discussions/6060 +Transferred discussion 260 to https://github.com/orgs/TriliumNext/discussions/6061 +Transferred discussion 235 to https://github.com/orgs/TriliumNext/discussions/6062 +Transferred discussion 26 to https://github.com/orgs/TriliumNext/discussions/6063 +Transferred discussion 188 to https://github.com/orgs/TriliumNext/discussions/6064 +Transferred discussion 189 to https://github.com/orgs/TriliumNext/discussions/6065 +Transferred discussion 2 to https://github.com/orgs/TriliumNext/discussions/6066 +Transferred discussion 182 to https://github.com/orgs/TriliumNext/discussions/6067 +Transferred discussion 172 to https://github.com/orgs/TriliumNext/discussions/6068 +Transferred discussion 178 to https://github.com/orgs/TriliumNext/discussions/6069 +Transferred discussion 168 to https://github.com/orgs/TriliumNext/discussions/6070 +Transferred discussion 164 to https://github.com/orgs/TriliumNext/discussions/6071 +Transferred discussion 158 to https://github.com/orgs/TriliumNext/discussions/6072 +Transferred discussion 53 to https://github.com/orgs/TriliumNext/discussions/6073 +Transferred discussion 10 to https://github.com/orgs/TriliumNext/discussions/6074 +Transferred discussion 5 to https://github.com/orgs/TriliumNext/discussions/6075 +Transferred discussion 30 to https://github.com/orgs/TriliumNext/discussions/6076 +Transferred discussion 11 to https://github.com/orgs/TriliumNext/discussions/6077 +Transferred discussion 29 to https://github.com/orgs/TriliumNext/discussions/6078 +Transferred discussion 31 to https://github.com/orgs/TriliumNext/discussions/6079 diff --git a/renovate.json b/renovate.json index bf0119855..b9c2cf9ec 100644 --- a/renovate.json +++ b/renovate.json @@ -1,15 +1,53 @@ { - "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "extends": ["config:recommended"], - "schedule": ["before 3am"], - "labels": ["dependencies", "renovate"], - "prHourlyLimit": 0, - "prConcurrentLimit": 0, - "branchConcurrentLimit": 0, - "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 + }, + "bun": { + "enabled": false + }, + "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" + ], + "groupName": "svelte monorepo" + } + ] +} \ No newline at end of file diff --git a/scripts/generate-openapi.ts b/scripts/generate-openapi.ts index 3e1953d9e..d2a074e66 100644 --- a/scripts/generate-openapi.ts +++ b/scripts/generate-openapi.ts @@ -23,10 +23,10 @@ const options = { title: "Trilium Notes - Sync server API", version: packageJson["version"], description: - "This is the internal sync server API used by Trilium Notes / TriliumNext Notes.\n\n_If you're looking for the officially supported External Trilium API, see [here](https://triliumnext.github.io/Docs/Wiki/etapi.html)._\n\nThis page does not yet list all routes. For a full list, see the [route controller](https://github.com/TriliumNext/Notes/blob/v0.91.6/src/routes/routes.ts).", + "This is the internal sync server API used by Trilium Notes.\n\n_If you're looking for the officially supported External Trilium API, see [here](https://triliumnext.github.io/Docs/Wiki/etapi.html)._\n\nThis page does not yet list all routes. For a full list, see the [route controller](https://github.com/TriliumNext/Trilium/blob/v0.91.6/src/routes/routes.ts).", contact: { name: "TriliumNext issue tracker", - url: "https://github.com/TriliumNext/Notes/issues" + url: "https://github.com/TriliumNext/Trilium/issues" }, license: { name: "GNU Free Documentation License 1.3 (or later)", @@ -158,8 +158,8 @@ 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"] - * description: "[Reference list](https://github.com/TriliumNext/Notes/blob/v0.91.6/src/services/note_types.ts)" + * 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 * example: "text/html" diff --git a/scripts/migrate-releases.js b/scripts/migrate-releases.js new file mode 100644 index 000000000..d8ed53796 --- /dev/null +++ b/scripts/migrate-releases.js @@ -0,0 +1,125 @@ +// migrate-releases.js +const fetch = require('node-fetch').default; +const fs = require('fs'); +const path = require('path'); + +const TOKEN = process.env.GITHUB_TOKEN; +const SOURCE_REPO = 'TriliumNext/Notes'; +const DEST_REPO = 'TriliumNext/trilium'; + +if (!TOKEN) { + console.error('Error: Please set your GITHUB_TOKEN environment variable'); + process.exit(1); +} + +const headers = { + Authorization: `token ${TOKEN}`, + Accept: 'application/vnd.github.v3+json', +}; + +async function getReleases(repo) { + let releases = []; + let page = 1; + + while (true) { + console.log("Got fetch", fetch); + const res = await fetch( + `https://api.github.com/repos/${repo}/releases?per_page=100&page=${page}`, + { headers } + ); + if (!res.ok) throw new Error(`Failed to get releases: ${res.status} ${res.statusText}`); + + const data = await res.json(); + if (data.length === 0) break; + + releases = releases.concat(data); + page++; + } + return releases; +} + +async function createRelease(repo, release) { + // Strip id, url etc. fields to prepare payload + const payload = { + tag_name: release.tag_name, + target_commitish: "main", + name: release.name, + body: release.body, + draft: release.draft, + prerelease: release.prerelease, + }; + + const res = await fetch(`https://api.github.com/repos/${repo}/releases`, { + method: 'POST', + headers: { ...headers, 'Content-Type': 'application/json' }, + body: JSON.stringify(payload), + }); + + console.log(`POST to https://api.github.com/repos/${repo}/releases with payload:`, payload); + + if (!res.ok) { + const text = await res.text(); + throw new Error(`Failed to create release: ${res.status} ${res.statusText} - ${text}`); + } + + return await res.json(); +} + +async function downloadAsset(assetUrl, filename) { + const res = await fetch(assetUrl, { headers: { ...headers, Accept: 'application/octet-stream' } }); + if (!res.ok) throw new Error(`Failed to download asset: ${res.status} ${res.statusText}`); + const buffer = await res.buffer(); + fs.writeFileSync(filename, buffer); +} + +async function uploadAsset(uploadUrl, filepath) { + const filename = path.basename(filepath); + const stats = fs.statSync(filepath); + const res = await fetch(`${uploadUrl}?name=${encodeURIComponent(filename)}`, { + method: 'POST', + headers: { + Authorization: `token ${TOKEN}`, + 'Content-Type': 'application/octet-stream', + 'Content-Length': stats.size, + }, + body: fs.createReadStream(filepath), + }); + + if (!res.ok) { + const text = await res.text(); + throw new Error(`Failed to upload asset: ${res.status} ${res.statusText} - ${text}`); + } + + return await res.json(); +} + +async function migrate() { + console.log(`Fetching releases from ${SOURCE_REPO}...`); + const releases = await getReleases(SOURCE_REPO); + console.log(`Found ${releases.length} releases.`); + + releases.sort((a, b) => new Date(a.created_at) - new Date(b.created_at)); + + for (const release of releases) { + console.log(`Migrating release: ${release.name} (${release.tag_name})`); + const newRelease = await createRelease(DEST_REPO, release); + + // Download and upload assets if any + for (const asset of release.assets) { + const tempFile = path.join(__dirname, asset.name); + console.log(`Downloading asset ${asset.name}...`); + await downloadAsset(asset.url, tempFile); + + console.log(`Uploading asset ${asset.name}...`); + await uploadAsset(newRelease.upload_url.replace('{?name,label}', ''), tempFile); + + fs.unlinkSync(tempFile); // Clean up temp file + } + } + console.log('Migration complete!'); +} + +migrate().catch((err) => { + console.error('Migration failed:', err); + process.exit(1); +}); diff --git a/scripts/migrated-issues.txt b/scripts/migrated-issues.txt new file mode 100644 index 000000000..84a631d33 --- /dev/null +++ b/scripts/migrated-issues.txt @@ -0,0 +1,933 @@ +Migrated issue #15 - Port server to ES modules to https://github.com/TriliumNext/trilium/issues/4938 +Migrated issue #17 - Hard-coded links in `backend_script_api.js` to https://github.com/TriliumNext/trilium/issues/4939 +Migrated issue #20 - (Feature request) Syntax highlight for code blocks to https://github.com/TriliumNext/trilium/issues/4940 +Migrated issue #21 - Separate client from server (monolithic style) to https://github.com/TriliumNext/trilium/issues/4941 +Migrated issue #22 - Digital signature of Windows executables to https://github.com/TriliumNext/trilium/issues/4942 +Migrated issue #23 - (Feature request) Add a Windows installer to https://github.com/TriliumNext/trilium/issues/4943 +Migrated issue #32 - Markdown Latex support to https://github.com/TriliumNext/trilium/issues/4944 +Migrated issue #34 - (Organization) Review Feature Requests from Original Trilium Repo and Copy or Link Relevant to https://github.com/TriliumNext/trilium/issues/4945 +Migrated issue #35 - Update to CodeMirror 6 to https://github.com/TriliumNext/trilium/issues/4946 +Migrated issue #37 - Remove uses of `any` in server and client to https://github.com/TriliumNext/trilium/issues/4947 +Migrated issue #38 - (Feature request) Basic CI integration for nightly builds to https://github.com/TriliumNext/trilium/issues/4948 +Migrated issue #46 - Instructions for moving [day notes] for new users to https://github.com/TriliumNext/trilium/issues/4949 +Migrated issue #49 - Bring back unit and integration tests to https://github.com/TriliumNext/trilium/issues/4950 +Migrated issue #50 - Port dump-db and other tools to TypeScript to https://github.com/TriliumNext/trilium/issues/4951 +Migrated issue #51 - Fix Electron build to https://github.com/TriliumNext/trilium/issues/4952 +Migrated issue #52 - (Feature request) Add formatter config to https://github.com/TriliumNext/trilium/issues/4953 +Migrated issue #54 - Open note externally does not work on Flatpak builds to https://github.com/TriliumNext/trilium/issues/4954 +Migrated issue #55 - (Feature request) recognising imported LaTeX formulas to https://github.com/TriliumNext/trilium/issues/4955 +Migrated issue #56 - multi-user support to https://github.com/TriliumNext/trilium/issues/4956 +Migrated issue #57 - End-to-end encryption (database-level) to https://github.com/TriliumNext/trilium/issues/4957 +Migrated issue #61 - Use of ETAPI with curl to https://github.com/TriliumNext/trilium/issues/4958 +Migrated issue #64 - (Bug report) EtapiError Prototype Chain Issue to https://github.com/TriliumNext/trilium/issues/4959 +Migrated issue #68 - (Feature request) Multi-factor authentication to https://github.com/TriliumNext/trilium/issues/4960 +Migrated issue #71 - Upgrade to more recent versions of Electron to https://github.com/TriliumNext/trilium/issues/4961 +Migrated issue #72 - mobile UI improvements / mobile version to https://github.com/TriliumNext/trilium/issues/4962 +Migrated issue #73 - better math support/ LaTeX to https://github.com/TriliumNext/trilium/issues/4963 +Migrated issue #74 - footnotes to https://github.com/TriliumNext/trilium/issues/4964 +Migrated issue #75 - flathub verification to https://github.com/TriliumNext/trilium/issues/4965 +Migrated issue #76 - better PDF reader to https://github.com/TriliumNext/trilium/issues/4966 +Migrated issue #77 - table of contents improvements to https://github.com/TriliumNext/trilium/issues/4967 +Migrated issue #78 - Custom login page background to https://github.com/TriliumNext/trilium/issues/4968 +Migrated issue #79 - Note editors other than CKEditor to https://github.com/TriliumNext/trilium/issues/4969 +Migrated issue #80 - ARM version to https://github.com/TriliumNext/trilium/issues/4970 +Migrated issue #81 - personal usage statistics to https://github.com/TriliumNext/trilium/issues/4971 +Migrated issue #82 - simpler link creation to https://github.com/TriliumNext/trilium/issues/4972 +Migrated issue #83 - text "block" inside Note to https://github.com/TriliumNext/trilium/issues/4973 +Migrated issue #84 - Delta viewer for note revisions to https://github.com/TriliumNext/trilium/issues/4974 +Migrated issue #85 - warn user if script is in wrong enviroment to https://github.com/TriliumNext/trilium/issues/4975 +Migrated issue #86 - open in file manager of Trilium's data directory to https://github.com/TriliumNext/trilium/issues/4976 +Migrated issue #87 - signing application on windows/macos to https://github.com/TriliumNext/trilium/issues/4977 +Migrated issue #88 - Auto-update for desktop app to https://github.com/TriliumNext/trilium/issues/4978 +Migrated issue #89 - Distribute as AppImage to https://github.com/TriliumNext/trilium/issues/4979 +Migrated issue #90 - excel-like functionality for tables/table imporvement to https://github.com/TriliumNext/trilium/issues/4980 +Migrated issue #91 - ability to email a note + rx notes via mail to +Migrated issue #92 - text alignment to https://github.com/TriliumNext/trilium/issues/4981 +Migrated issue #93 - fix/add mac shortcuts to https://github.com/TriliumNext/trilium/issues/4982 +Migrated issue #94 - initial server setup form cannot be sent with enter key to https://github.com/TriliumNext/trilium/issues/4983 +Migrated issue #95 - search does not find inherited attributes to https://github.com/TriliumNext/trilium/issues/4984 +Migrated issue #96 - undo for subtree operations to https://github.com/TriliumNext/trilium/issues/4985 +Migrated issue #97 - Right to left language support to https://github.com/TriliumNext/trilium/issues/4986 +Migrated issue #98 - zadam/trilium#641 trilium cleanup to https://github.com/TriliumNext/trilium/issues/4987 +Migrated issue #99 - Custom URL Scheme / Open note from command line / desktop URL handler to https://github.com/TriliumNext/trilium/issues/4988 +Migrated issue #100 - (Keyboard) shortcuts for more actions to https://github.com/TriliumNext/trilium/issues/4989 +Migrated issue #101 - better handling of large files to https://github.com/TriliumNext/trilium/issues/4990 +Migrated issue #102 - ability to put images side by side to https://github.com/TriliumNext/trilium/issues/4991 +Migrated issue #103 - External link preview to https://github.com/TriliumNext/trilium/issues/4992 +Migrated issue #104 - standardize date formats to https://github.com/TriliumNext/trilium/issues/4993 +Migrated issue #105 - in-app ui for changing data directory to https://github.com/TriliumNext/trilium/issues/4994 +Migrated issue #106 - use different password to protect notes to https://github.com/TriliumNext/trilium/issues/4995 +Migrated issue #107 - Plugin system to https://github.com/TriliumNext/trilium/issues/4996 +Migrated issue #108 - link to Note Block to https://github.com/TriliumNext/trilium/issues/4997 +Migrated issue #109 - Categorize notes in link map (parent/children/other relation) to https://github.com/TriliumNext/trilium/issues/4998 +Migrated issue #110 - jump back to last edit to https://github.com/TriliumNext/trilium/issues/4999 +Migrated issue #111 - divide recent notes into more categories to https://github.com/TriliumNext/trilium/issues/5000 +Migrated issue #112 - audio recorder to +Migrated issue #113 - link file manager folders to https://github.com/TriliumNext/trilium/issues/5001 +Migrated issue #114 - Ability to set logging level / disable file logging to https://github.com/TriliumNext/trilium/issues/5002 +Migrated issue #115 - OCR implementation to https://github.com/TriliumNext/trilium/issues/5003 +Migrated issue #116 - Protocol handler to open desktop app to https://github.com/TriliumNext/trilium/issues/5004 +Migrated issue #117 - markdown export of strikethrough text incorrect to https://github.com/TriliumNext/trilium/issues/5005 +Migrated issue #118 - autocompletion when searching for labels to https://github.com/TriliumNext/trilium/issues/5006 +Migrated issue #119 - sync trilium calendar with external OS calendar to https://github.com/TriliumNext/trilium/issues/5007 +Migrated issue #120 - better visual separation of workspaces to https://github.com/TriliumNext/trilium/issues/5008 +Migrated issue #121 - Collapsable sections/blocks to https://github.com/TriliumNext/trilium/issues/5009 +Migrated issue #122 - Hyperlinks with custom protocols not working to https://github.com/TriliumNext/trilium/issues/5010 +Migrated issue #123 - commenting on note revisions/ manually creating them to https://github.com/TriliumNext/trilium/issues/5011 +Migrated issue #124 - copy button on code blocks to https://github.com/TriliumNext/trilium/issues/5012 +Migrated issue #125 - Relation constraints based on other attributes to https://github.com/TriliumNext/trilium/issues/5013 +Migrated issue #126 - windows installer to https://github.com/TriliumNext/trilium/issues/5014 +Migrated issue #127 - more sponsor options to https://github.com/TriliumNext/trilium/issues/5015 +Migrated issue #128 - Web Clipper doesn't import some code snippets to https://github.com/TriliumNext/trilium/issues/5016 +Migrated issue #129 - markdown syntax improvements to https://github.com/TriliumNext/trilium/issues/5017 +Migrated issue #130 - workspace name in tab title to https://github.com/TriliumNext/trilium/issues/5018 +Migrated issue #131 - similar Notes style is hardcoded to https://github.com/TriliumNext/trilium/issues/5019 +Migrated issue #132 - mindmap note to https://github.com/TriliumNext/trilium/issues/5020 +Migrated issue #133 - Make auto-linking with @ from multi-word name fragments easier to https://github.com/TriliumNext/trilium/issues/5021 +Migrated issue #134 - time relative search terms to link to appropriate day pages to https://github.com/TriliumNext/trilium/issues/5022 +Migrated issue #135 - Option to not expand a subtree when you open a subnote to https://github.com/TriliumNext/trilium/issues/5023 +Migrated issue #136 - link external attachments to https://github.com/TriliumNext/trilium/issues/5024 +Migrated issue #137 - Paragraph toolbar does not scroll with block to https://github.com/TriliumNext/trilium/issues/5025 +Migrated issue #138 - Linting Tool for Codebase to https://github.com/TriliumNext/trilium/issues/5026 +Migrated issue #139 - option to disable the ability to create a new child note with @ to https://github.com/TriliumNext/trilium/issues/5027 +Migrated issue #140 - Option to pin notes, bypassing sort order to https://github.com/TriliumNext/trilium/issues/5028 +Migrated issue #141 - Zen mode to https://github.com/TriliumNext/trilium/issues/5029 +Migrated issue #142 - expiration date for shared notes to https://github.com/TriliumNext/trilium/issues/5030 +Migrated issue #143 - disable sync for certain notes to https://github.com/TriliumNext/trilium/issues/5031 +Migrated issue #144 - High availability sync setup to https://github.com/TriliumNext/trilium/issues/5032 +Migrated issue #145 - toggle aks to delete empty note to https://github.com/TriliumNext/trilium/issues/5033 +Migrated issue #146 - More icon packs to https://github.com/TriliumNext/trilium/issues/5034 +Migrated issue #147 - search and replace Regex to https://github.com/TriliumNext/trilium/issues/5035 +Migrated issue #148 - Annotations on note contents (words, sentences, phrases, blocks/paragraphs) to https://github.com/TriliumNext/trilium/issues/5036 +Migrated issue #149 - save webpage html to note to https://github.com/TriliumNext/trilium/issues/5037 +Migrated issue #150 - add favourite icons to https://github.com/TriliumNext/trilium/issues/5038 +Migrated issue #151 - Special "overview page" showing (all) notes to https://github.com/TriliumNext/trilium/issues/5039 +Migrated issue #152 - Drag-and-drop of file into note content does not work to https://github.com/TriliumNext/trilium/issues/5040 +Migrated issue #153 - better printing options to https://github.com/TriliumNext/trilium/issues/5041 +Migrated issue #154 - Geolocation tags to https://github.com/TriliumNext/trilium/issues/5042 +Migrated issue #156 - Port frontend to TypeScript to https://github.com/TriliumNext/trilium/issues/5043 +Migrated issue #159 - Calendar overview of Note activity (Feature request) to https://github.com/TriliumNext/trilium/issues/5044 +Migrated issue #161 - Relocate the shared note popup to https://github.com/TriliumNext/trilium/issues/5045 +Migrated issue #162 - (Bug report) Search not working correctly to https://github.com/TriliumNext/trilium/issues/5046 +Migrated issue #170 - Migration Guide to https://github.com/TriliumNext/trilium/issues/5047 +Migrated issue #174 - (Feature request) Change Icon for Jump to Note to https://github.com/TriliumNext/trilium/issues/5048 +Migrated issue #176 - (Feature request) Appearance Settings Optional Sync to https://github.com/TriliumNext/trilium/issues/5049 +Migrated issue #181 - (Feature request) Untrusted (Encrypted) Devices like in Syncthing to https://github.com/TriliumNext/trilium/issues/5050 +Migrated issue #183 - Update Readme for initial release to https://github.com/TriliumNext/trilium/issues/5051 +Migrated issue #184 - Port Wiki to https://github.com/TriliumNext/trilium/issues/5052 +Migrated issue #185 - (Feature request) Export to PDF option to https://github.com/TriliumNext/trilium/issues/5053 +Migrated issue #186 - (Feature request) Depth in Note Map to https://github.com/TriliumNext/trilium/issues/5054 +Migrated issue #190 - Create Pull Request Template to https://github.com/TriliumNext/trilium/issues/5055 +Migrated issue #191 - Update TriliumNext/Notes Readme to reference new doc file names. to https://github.com/TriliumNext/trilium/issues/5056 +Migrated issue #193 - Fix formatting to https://github.com/TriliumNext/trilium/issues/5057 +Migrated issue #195 - Use TriliumNext Branding to https://github.com/TriliumNext/trilium/issues/5058 +Migrated issue #197 - Note types not preserved during database seed/import to https://github.com/TriliumNext/trilium/issues/5059 +Migrated issue #202 - Uploading image attachment fails to https://github.com/TriliumNext/trilium/issues/5060 +Migrated issue #204 - Renaming a title to empty generates a toast notification with an SQL error to https://github.com/TriliumNext/trilium/issues/5061 +Migrated issue #207 - Unable to import a PDF file to https://github.com/TriliumNext/trilium/issues/5062 +Migrated issue #210 - Sync failed: Cannot read properties of undefined (reading 'utcDateChanged') to https://github.com/TriliumNext/trilium/issues/5063 +Migrated issue #211 - (Bug report) Searching note content fails to https://github.com/TriliumNext/trilium/issues/5064 +Migrated issue #213 - Investigate flaky `services/search.spec.ts` tests to https://github.com/TriliumNext/trilium/issues/5065 +Migrated issue #214 - Fix `spec/etapi` tests and port to vitest to https://github.com/TriliumNext/trilium/issues/5066 +Migrated issue #216 - Update client dependencies to https://github.com/TriliumNext/trilium/issues/5067 +Migrated issue #217 - Update Electron dependencies to https://github.com/TriliumNext/trilium/issues/5068 +Migrated issue #218 - Update server dependencies to https://github.com/TriliumNext/trilium/issues/5069 +Migrated issue #219 - Update TypeScript dependencies to https://github.com/TriliumNext/trilium/issues/5070 +Migrated issue #220 - Update tooling dependencies to https://github.com/TriliumNext/trilium/issues/5071 +Migrated issue #221 - Investigate unused dependency (open) to https://github.com/TriliumNext/trilium/issues/5072 +Migrated issue #222 - Update `better-sqlite3` to https://github.com/TriliumNext/trilium/issues/5073 +Migrated issue #223 - Update Node.js version to https://github.com/TriliumNext/trilium/issues/5074 +Migrated issue #224 - Remove hard-coded libraries to https://github.com/TriliumNext/trilium/issues/5075 +Migrated issue #226 - Canvas: "Copy image reference to clipboard" no longer working to https://github.com/TriliumNext/trilium/issues/5076 +Migrated issue #229 - Remove hard-coded `better-sqlite3` binaries to https://github.com/TriliumNext/trilium/issues/5077 +Migrated issue #233 - Investigate Flatpak builds to https://github.com/TriliumNext/trilium/issues/5078 +Migrated issue #236 - (Bug report) v0.90 cannot sync to 0.63.7 to https://github.com/TriliumNext/trilium/issues/5079 +Migrated issue #237 - Investigate #titleTemplate for template notes to https://github.com/TriliumNext/trilium/issues/5080 +Migrated issue #238 - (Bug report) v.0.90.0-beta random errors when loading notes to https://github.com/TriliumNext/trilium/issues/5081 +Migrated issue #239 - Update translations of the README file to https://github.com/TriliumNext/trilium/issues/5082 +Migrated issue #244 - Frontend JS code exeution error to https://github.com/TriliumNext/trilium/issues/5083 +Migrated issue #247 - (Feature request) Make first day of week configurable to https://github.com/TriliumNext/trilium/issues/5084 +Migrated issue #249 - Error: EPERM: operation not permitted on Windows to https://github.com/TriliumNext/trilium/issues/5085 +Migrated issue #254 - Investigate Windows additional package managers to https://github.com/TriliumNext/trilium/issues/5086 +Migrated issue #262 - (Feature request) Limit the number of Note Revisions to https://github.com/TriliumNext/trilium/issues/5087 +Migrated issue #263 - (Feature request) Option to remove ALL note revisions from the database to https://github.com/TriliumNext/trilium/issues/5088 +Migrated issue #265 - (Feature request) template-Typed Attributes/Relationships to https://github.com/TriliumNext/trilium/issues/5089 +Migrated issue #266 - (Bug report) Initial sync doesn't finish to https://github.com/TriliumNext/trilium/issues/5090 +Migrated issue #267 - Enable verbatim module syntax to https://github.com/TriliumNext/trilium/issues/5091 +Migrated issue #269 - (Bug report) Electron logo shows in Windows "Installed Apps" to https://github.com/TriliumNext/trilium/issues/5092 +Migrated issue #270 - (Bug report) Update Trilium wiki/repo links to reference TriliumNext wiki/repo to https://github.com/TriliumNext/trilium/issues/5093 +Migrated issue #271 - (Bug report) `Search in Note` feature does not find text inside Internal Trilium Link to https://github.com/TriliumNext/trilium/issues/5094 +Migrated issue #274 - Add support for es6-string-html for IDE highlight to https://github.com/TriliumNext/trilium/issues/5095 +Migrated issue #275 - (Bug report) Delete key inside codeblock jumps to the top of code block and tab key intends starting of line instead of where cursor currently is to https://github.com/TriliumNext/trilium/issues/5096 +Migrated issue #276 - Possibility to hide side bar on Mobile Version to https://github.com/TriliumNext/trilium/issues/5097 +Migrated issue #279 - Windows desktop client sync spins forever to https://github.com/TriliumNext/trilium/issues/5098 +Migrated issue #280 - How to switch servers? to https://github.com/TriliumNext/trilium/issues/5099 +Migrated issue #281 - (Bug report) Error importing zip file to https://github.com/TriliumNext/trilium/issues/5100 +Migrated issue #282 - Can't navigate up on Mermaid diagrams code to https://github.com/TriliumNext/trilium/issues/5101 +Migrated issue #283 - (Feature request) Use mouse wheel to scroll up/down, instead of zoom in/out in mermaid notes to https://github.com/TriliumNext/trilium/issues/5102 +Migrated issue #284 - (Bug report) 0.90.2-beta cannot sync to trilium 0.63.7 server to https://github.com/TriliumNext/trilium/issues/5103 +Migrated issue #286 - Trilium-ckeditor5 Question to https://github.com/TriliumNext/trilium/issues/5104 +Migrated issue #287 - (Bug report) Search doesn't work to https://github.com/TriliumNext/trilium/issues/5105 +Migrated issue #290 - #run=frontendStartup does not work in mobile mode to https://github.com/TriliumNext/trilium/issues/5106 +Migrated issue #293 - Web Clipper needs update to adapt to Chrome manifest V3 to https://github.com/TriliumNext/trilium/issues/5107 +Migrated issue #295 - Deploy to Flathub to https://github.com/TriliumNext/trilium/issues/5108 +Migrated issue #296 - Docker reporting container as not healthy to https://github.com/TriliumNext/trilium/issues/5109 +Migrated issue #297 - Insert Math appears to be broken to https://github.com/TriliumNext/trilium/issues/5110 +Migrated issue #299 - Question: Is there an Docker image at the Moment to https://github.com/TriliumNext/trilium/issues/5111 +Migrated issue #300 - Question: Is there an Docker image at the Moment to https://github.com/TriliumNext/trilium/issues/5112 +Migrated issue #301 - (Bug report) client cannot connect to server to https://github.com/TriliumNext/trilium/issues/5113 +Migrated issue #302 - (Bug report) No docker images available for ARM machines, despite the documentation advertising their availability. to https://github.com/TriliumNext/trilium/issues/5114 +Migrated issue #303 - Blank page after upgrade to https://github.com/TriliumNext/trilium/issues/5115 +Migrated issue #304 - (Bug report) Find/Replace dialog doesn't match theme to https://github.com/TriliumNext/trilium/issues/5116 +Migrated issue #305 - Improve Emoji selection in Special Character selector to https://github.com/TriliumNext/trilium/issues/5117 +Migrated issue #306 - (Bug report) Copying attachment link to clipboard fails to https://github.com/TriliumNext/trilium/issues/5118 +Migrated issue #307 - (Bug report) Similar Notes ribbon item not working to https://github.com/TriliumNext/trilium/issues/5119 +Migrated issue #308 - (Bug report) Error when Duplicating subtree of note that contains broken internal trilium link to https://github.com/TriliumNext/trilium/issues/5120 +Migrated issue #311 - (Bug report) Tray icon is missing on windows to https://github.com/TriliumNext/trilium/issues/5121 +Migrated issue #312 - (Try to) sync app on shutdown to https://github.com/TriliumNext/trilium/issues/5122 +Migrated issue #313 - Update available points to Trilium download instead of TriliumNext to https://github.com/TriliumNext/trilium/issues/5123 +Migrated issue #315 - Add back Alpine build to https://github.com/TriliumNext/trilium/issues/5124 +Migrated issue #318 - Invalid CSRF token on Android phone to https://github.com/TriliumNext/trilium/issues/5125 +Migrated issue #319 - AVIF image compression support to https://github.com/TriliumNext/trilium/issues/5126 +Migrated issue #321 - Link to releases page is wrong to https://github.com/TriliumNext/trilium/issues/5127 +Migrated issue #320 - (Bug report) Link to releases page is wrong to https://github.com/TriliumNext/trilium/issues/5128 +Migrated issue #323 - (Bug report) Wrong web link on the Windows app to update to https://github.com/TriliumNext/trilium/issues/5129 +Migrated issue #329 - (Bug report) Damaged macOS binary build to https://github.com/TriliumNext/trilium/issues/5130 +Migrated issue #331 - (Bug report) v0.90.4 docker does not read USER_UID and USER_GID from environment to https://github.com/TriliumNext/trilium/issues/5131 +Migrated issue #335 - Upgrade bootstrap dependencies to https://github.com/TriliumNext/trilium/issues/5132 +Migrated issue #336 - Upgrade Codemirror dependencies to https://github.com/TriliumNext/trilium/issues/5133 +Migrated issue #337 - Upgrade autocomplete dependencies to https://github.com/TriliumNext/trilium/issues/5134 +Migrated issue #338 - internationalization (i18n) / multiple language support to https://github.com/TriliumNext/trilium/issues/5135 +Migrated issue #339 - Landing page for Trilium Next to https://github.com/TriliumNext/trilium/issues/5136 +Migrated issue #340 - Helm chart to https://github.com/TriliumNext/trilium/issues/5137 +Migrated issue #341 - (Bug report) Excess spacing in lists to https://github.com/TriliumNext/trilium/issues/5138 +Migrated issue #344 - (Bug report) katex is not defined to https://github.com/TriliumNext/trilium/issues/5139 +Migrated issue #345 - Hide Electron-specific settings in the web version to https://github.com/TriliumNext/trilium/issues/5140 +Migrated issue #346 - Disable commands that are irrelevant to the settings pages to https://github.com/TriliumNext/trilium/issues/5141 +Migrated issue #347 - Add an option to follow the system's color scheme to https://github.com/TriliumNext/trilium/issues/5142 +Migrated issue #348 - Add a toggle to promote the current note to a template to https://github.com/TriliumNext/trilium/issues/5143 +Migrated issue #350 - (Bug report) scrollbar-color makes the scrollbar appear natively styled to https://github.com/TriliumNext/trilium/issues/5144 +Migrated issue #354 - Allow alternate icon packs for note icons to https://github.com/TriliumNext/trilium/issues/5145 +Migrated issue #357 - Note creation issues with certain template types to https://github.com/TriliumNext/trilium/issues/5146 +Migrated issue #358 - Issue with note title text box border to https://github.com/TriliumNext/trilium/issues/5147 +Migrated issue #361 - (Feature request) Support images with transparent background to https://github.com/TriliumNext/trilium/issues/5148 +Migrated issue #363 - (Bug report) Closing Backlinks popup removes 'Edit' button when in ReadOnly mode to https://github.com/TriliumNext/trilium/issues/5149 +Migrated issue #364 - (Feature Request) Allowed link protocols to https://github.com/TriliumNext/trilium/issues/5150 +Migrated issue #365 - (Bug report) Focus not set to input field when clicking `Include Note` from Block Editor to https://github.com/TriliumNext/trilium/issues/5151 +Migrated issue #368 - 'A JavaScript error occurred in the main process' when launching Trilium to https://github.com/TriliumNext/trilium/issues/5152 +Migrated issue #371 - (Feature request) Connect ghcr package to the repository to https://github.com/TriliumNext/trilium/issues/5153 +Migrated issue #374 - (Feature request) Calendar Navigation is limited - quicker navigation possible? to https://github.com/TriliumNext/trilium/issues/5154 +Migrated issue #375 - (Bug report) Note Tooltip isn't removed when clicking on internal trilium link in read-only mode to https://github.com/TriliumNext/trilium/issues/5155 +Migrated issue #376 - Note remains in Read-Only mode after #readOnly label is removed to https://github.com/TriliumNext/trilium/issues/5156 +Migrated issue #378 - Migration from older versions of Trilium Notes to https://github.com/TriliumNext/trilium/issues/5157 +Migrated issue #382 - (Feature request) 2FA to https://github.com/TriliumNext/trilium/issues/5158 +Migrated issue #383 - Child notes don't refresh on selecting a different note to https://github.com/TriliumNext/trilium/issues/5159 +Migrated issue #384 - (Bug report) Calendar dropdown won't close if click/right-click other button that open notes from launcher bar to https://github.com/TriliumNext/trilium/issues/5160 +Migrated issue #385 - (Bug report) mindmap: pressing F2 (to rename a node) triggres TN's shortcut (Edit branch prefix) to https://github.com/TriliumNext/trilium/issues/5161 +Migrated issue #386 - (Bug report) crash in Chrome 128 to https://github.com/TriliumNext/trilium/issues/5162 +Migrated issue #387 - (Bug report) mindmap: (other) conflicting shortcuts with the rest of the app to https://github.com/TriliumNext/trilium/issues/5163 +Migrated issue #395 - Notes to https://github.com/TriliumNext/trilium/issues/5164 +Migrated issue #397 - (Feature request) Package for Chocolatey to https://github.com/TriliumNext/trilium/issues/5165 +Migrated issue #400 - (Bug report) No docker images available for AMD64 machines since Aug 30, 2024 to https://github.com/TriliumNext/trilium/issues/5166 +Migrated issue #403 - electron-forge's packing includes too many files in its final asar file to https://github.com/TriliumNext/trilium/issues/5167 +Migrated issue #404 - Is it possible to navigate to a block of text (rather than the Main Title) of another Note by simply following backlink? to https://github.com/TriliumNext/trilium/issues/5168 +Migrated issue #405 - (Bug report) Backend JS notes : Migration warning to https://github.com/TriliumNext/trilium/issues/5169 +Migrated issue #406 - (Bug report) "Create and link new note" context menu moves the link to beginning of parent note to https://github.com/TriliumNext/trilium/issues/5170 +Migrated issue #407 - 0.90.6 en/translation.json not found if Trilium does not run from web root to https://github.com/TriliumNext/trilium/issues/5171 +Migrated issue #408 - (Bug report) Check failed: module->status() == kLinked || module->status() == kEvaluated. to https://github.com/TriliumNext/trilium/issues/5172 +Migrated issue #410 - DRAFTS to https://github.com/TriliumNext/trilium/issues/5173 +Migrated issue #411 - '@' Context menu's auto-completion not showing most relevant but most recent to https://github.com/TriliumNext/trilium/issues/5174 +Migrated issue #412 - Clean up DockerHub images/tags to https://github.com/TriliumNext/trilium/issues/5175 +Migrated issue #413 - (Feature request) Mind map: Zoom via Ctrl+Wheel to https://github.com/TriliumNext/trilium/issues/5176 +Migrated issue #415 - (Bug report) When using Docker, mounting an SMB/CIFS folder to `/home/node/trilium-data` causes core dump to https://github.com/TriliumNext/trilium/issues/5177 +Migrated issue #417 - Clicking an entry in the calendar opens the note twice to https://github.com/TriliumNext/trilium/issues/5178 +Migrated issue #419 - Disable automatic quotes to https://github.com/TriliumNext/trilium/issues/5179 +Migrated issue #420 - Calendar API not working to https://github.com/TriliumNext/trilium/issues/5180 +Migrated issue #422 - Strange boxes in note preview to https://github.com/TriliumNext/trilium/issues/5181 +Migrated issue #433 - "require is not a function" when running a script note to https://github.com/TriliumNext/trilium/issues/5182 +Migrated issue #434 - Inline reference to labels to https://github.com/TriliumNext/trilium/issues/5183 +Migrated issue #436 - MR.SNAKE to https://github.com/TriliumNext/trilium/issues/5184 +Migrated issue #437 - (Feature request) Support /metrics endpoint to https://github.com/TriliumNext/trilium/issues/5185 +Migrated issue #438 - (Feature request) Support configuring `trustedReverseProxy` via environment variables to https://github.com/TriliumNext/trilium/issues/5186 +Migrated issue #439 - (Bug report) Setup page blank to https://github.com/TriliumNext/trilium/issues/5187 +Migrated issue #441 - (Bug report) Searching with orderBy doesn't work with dated attributes to https://github.com/TriliumNext/trilium/issues/5188 +Migrated issue #443 - (Feature request) Resizing Left Panel/TOC is too difficult to https://github.com/TriliumNext/trilium/issues/5189 +Migrated issue #446 - Drag and drop note icon to insert link in note to https://github.com/TriliumNext/trilium/issues/5190 +Migrated issue #453 - Allow scrolling when the cursor is in the margins of a note to https://github.com/TriliumNext/trilium/issues/5191 +Migrated issue #454 - Notes not saving to https://github.com/TriliumNext/trilium/issues/5192 +Migrated issue #455 - (Bug report) Relation popup sometimes shows the content of the incorrect note to https://github.com/TriliumNext/trilium/issues/5193 +Migrated issue #456 - Import md with jpeg: broken jpeg to https://github.com/TriliumNext/trilium/issues/5194 +Migrated issue #457 - (Feature request) internal links to notes in Mermaid Diagrams to https://github.com/TriliumNext/trilium/issues/5195 +Migrated issue #459 - (Feature request) Cursor automatically in text box when embedding note to https://github.com/TriliumNext/trilium/issues/5196 +Migrated issue #460 - Delete Note under a parent note with "Book Type", will return to https://github.com/TriliumNext/trilium/issues/5197 +Migrated issue #462 - (Bug report) Web clipper "save link with a note", cannot see the link in android mobile view to https://github.com/TriliumNext/trilium/issues/5198 +Migrated issue #463 - (Feature request) Export of HTML with [missing note] could have retained names to https://github.com/TriliumNext/trilium/issues/5199 +Migrated issue #467 - (Bug report) mindmap note suddenly show with file note to https://github.com/TriliumNext/trilium/issues/5200 +Migrated issue #468 - (Feature request) Disable text selection in mermaid diagrams? to https://github.com/TriliumNext/trilium/issues/5201 +Migrated issue #470 - Show Docs url under Notes 'About' panel on right side to https://github.com/TriliumNext/trilium/issues/5202 +Migrated issue #474 - (Bug report) Mermaid diagrams rendered out of viewport to https://github.com/TriliumNext/trilium/issues/5203 +Migrated issue #475 - [REQUEST] Please guide on automating export of trillium notes (using api) to save notes to nextcloud or in local directory to https://github.com/TriliumNext/trilium/issues/5204 +Migrated issue #477 - (Feature request) Image zoom functions / gallery view for shared notes to https://github.com/TriliumNext/trilium/issues/5205 +Migrated issue #479 - [PLUGIN ISSUE] Issue Regarding Trilium-chat Plugin to https://github.com/TriliumNext/trilium/issues/5206 +Migrated issue #481 - (Feature request) custom note icon to https://github.com/TriliumNext/trilium/issues/5207 +Migrated issue #483 - (Bug report) Deployment v0.90.7-beta-server does not work, Error message keeps appearing at startup to https://github.com/TriliumNext/trilium/issues/5208 +Migrated issue #485 - There are horizontal lines under all hyperlinks to https://github.com/TriliumNext/trilium/issues/5209 +Migrated issue #486 - 403 POST tree/load - Invalid CSRF token to https://github.com/TriliumNext/trilium/issues/5210 +Migrated issue #487 - Trilium Demo notes branch review and update to https://github.com/TriliumNext/trilium/issues/5211 +Migrated issue #488 - (Feature request) Introduce stable tag on docker hub to https://github.com/TriliumNext/trilium/issues/5212 +Migrated issue #490 - (Bug report) api.runOnBackend error says don't use `async` but it's not used to https://github.com/TriliumNext/trilium/issues/5213 +Migrated issue #492 - (Bug report) Scripts can overwrite files in application install dir to https://github.com/TriliumNext/trilium/issues/5214 +Migrated issue #497 - (Bug report) Wiki refers to trillium.cc for 3rd party hosting, which is no longer actively maintained by Zadam. to https://github.com/TriliumNext/trilium/issues/5215 +Migrated issue #498 - (Feature request) Host a demo instance for new user testing to https://github.com/TriliumNext/trilium/issues/5216 +Migrated issue #499 - (Feature request) Friendly share urls: turn title into shareAlias to https://github.com/TriliumNext/trilium/issues/5217 +Migrated issue #500 - (Bug report) Import of .htm keeps htm in title while html does not to https://github.com/TriliumNext/trilium/issues/5218 +Migrated issue #501 - Add a copy button to the code block to https://github.com/TriliumNext/trilium/issues/5219 +Migrated issue #502 - (Feature request) Add the `#appJs` attribute to load a custom script. to https://github.com/TriliumNext/trilium/issues/5220 +Migrated issue #503 - (Bug report) Promoted boolean attributes no long showing checkbox when the value is true. to https://github.com/TriliumNext/trilium/issues/5221 +Migrated issue #504 - Syntax highlighting in read-only mode code notes to https://github.com/TriliumNext/trilium/issues/5222 +Migrated issue #505 - Error: Router not found for request ... to https://github.com/TriliumNext/trilium/issues/5223 +Migrated issue #506 - (Bug report) widget api.createNewNote Report an error to https://github.com/TriliumNext/trilium/issues/5224 +Migrated issue #507 - (Feature request) Why is there no icon file in the .zip file that is required by desktop? to https://github.com/TriliumNext/trilium/issues/5225 +Migrated issue #508 - (Bug report) Firefox extension shortcuts not able to be configured to https://github.com/TriliumNext/trilium/issues/5226 +Migrated issue #511 - (Bug report) Widget initialization failed to https://github.com/TriliumNext/trilium/issues/5227 +Migrated issue #513 - (Feature request) SOCKS Proxy Support in TriliumNext Desktop App to https://github.com/TriliumNext/trilium/issues/5228 +Migrated issue #514 - (Bug report) Search term is not highlighted in preview search result | Improve search result contrast ratio to https://github.com/TriliumNext/trilium/issues/5229 +Migrated issue #516 - (Bug report) toggleTray: Restore from system tray via custom hotkey does not work to https://github.com/TriliumNext/trilium/issues/5230 +Migrated issue #517 - (Bug report) node.getLabelValues doesn't work in widget. to https://github.com/TriliumNext/trilium/issues/5231 +Migrated issue #518 - (Bug report) Cannot cancel sharing the root note or the root of a workspace when it's hoisted to https://github.com/TriliumNext/trilium/issues/5232 +Migrated issue #521 - Copy and Paste not working, only Text is pasted not Images to https://github.com/TriliumNext/trilium/issues/5233 +Migrated issue #522 - Port issue following certain Windows Updates to https://github.com/TriliumNext/trilium/issues/5234 +Migrated issue #524 - (Feature request) Syntax highlighting code block to https://github.com/TriliumNext/trilium/issues/5235 +Migrated issue #525 - (Bug report) Internal Link: Two Tooltips are displayed to https://github.com/TriliumNext/trilium/issues/5236 +Migrated issue #528 - (Bug report) Canvas note exported to html can't be view due to title name is 13-15 digits long to https://github.com/TriliumNext/trilium/issues/5237 +Migrated issue #529 - (Feature request) Api for image storage and global options for image copying in trilium to https://github.com/TriliumNext/trilium/issues/5238 +Migrated issue #531 - (Feature request) Insert inline images in text notes to https://github.com/TriliumNext/trilium/issues/5239 +Migrated issue #532 - TriliumNext Web-Clipper Release to https://github.com/TriliumNext/trilium/issues/5240 +Migrated issue #535 - (Bug report) keyboard navigation: stuck on or in Journal to https://github.com/TriliumNext/trilium/issues/5241 +Migrated issue #536 - (Feature request) Allow for PNG export of diagrams (Mermaid / Mindmap) to https://github.com/TriliumNext/trilium/issues/5242 +Migrated issue #537 - (Bug report) `search-button` class should not have a border-radius on the right to https://github.com/TriliumNext/trilium/issues/5243 +Migrated issue #539 - (Feature request) choose CKEditor's editor type to https://github.com/TriliumNext/trilium/issues/5244 +Migrated issue #543 - Cannot search for selected text when in ReadOnly mode to https://github.com/TriliumNext/trilium/issues/5245 +Migrated issue #546 - (Bug report) Boolean attributes not rendered correctly in 0.90.8 to https://github.com/TriliumNext/trilium/issues/5246 +Migrated issue #548 - (Feature request) Search/Filter Map View (Notes & Relations) to https://github.com/TriliumNext/trilium/issues/5247 +Migrated issue #550 - (Feature request) Integrate CKEditor Modals into editor UI to https://github.com/TriliumNext/trilium/issues/5248 +Migrated issue #553 - (Bug report) Open image in browser to https://github.com/TriliumNext/trilium/issues/5249 +Migrated issue #556 - (Feature request) Prevent options note title changes to https://github.com/TriliumNext/trilium/issues/5250 +Migrated issue #558 - (Bug report) Always error connecting to sync server after wrong DNS configuration once to https://github.com/TriliumNext/trilium/issues/5251 +Migrated issue #560 - (Bug report) Edit page missing 95% of content in note to https://github.com/TriliumNext/trilium/issues/5252 +Migrated issue #565 - (Feature request) Change note clone icon indicator from star to link icon to https://github.com/TriliumNext/trilium/issues/5253 +Migrated issue #567 - User configurable whitelist of html tags stripped on import to https://github.com/TriliumNext/trilium/issues/5254 +Migrated issue #568 - (Bug report) Double input after spaces on Android to https://github.com/TriliumNext/trilium/issues/5255 +Migrated issue #570 - (Bug report) Two help pages will be opened when the help button is clicked. to https://github.com/TriliumNext/trilium/issues/5256 +Migrated issue #572 - (Bug report) MacOS app verification to https://github.com/TriliumNext/trilium/issues/5257 +Migrated issue #580 - Docker latest tag isn't updating to https://github.com/TriliumNext/trilium/issues/5258 +Migrated issue #581 - (Bug report) Error occurred when create new notes under protected notes to https://github.com/TriliumNext/trilium/issues/5259 +Migrated issue #582 - (Bug report) Toolbar duplication occurs when toggling readability to https://github.com/TriliumNext/trilium/issues/5260 +Migrated issue #583 - (Feature request) Shell( Bash) Syntax Highlight to https://github.com/TriliumNext/trilium/issues/5261 +Migrated issue #584 - (Feature request) Expose a dom parser in the backend script api to https://github.com/TriliumNext/trilium/issues/5262 +Migrated issue #586 - Maximum internal attachment size (Feature request) to https://github.com/TriliumNext/trilium/issues/5263 +Migrated issue #588 - (Bug report) Cannot copy text from included note to https://github.com/TriliumNext/trilium/issues/5264 +Migrated issue #593 - 0 Max content width causes editor issues to https://github.com/TriliumNext/trilium/issues/5265 +Migrated issue #594 - Translations for 0.90.12 to https://github.com/TriliumNext/trilium/issues/5266 +Migrated issue #599 - Document how to use regex search to https://github.com/TriliumNext/trilium/issues/5267 +Migrated issue #602 - (Feature request) Register icon pack in mermaid to https://github.com/TriliumNext/trilium/issues/5268 +Migrated issue #603 - (Bug report) Share icon not visible in note icon picker to https://github.com/TriliumNext/trilium/issues/5269 +Migrated issue #604 - (Bug report) Make "Open New Window" actually open a new window in the web app to https://github.com/TriliumNext/trilium/issues/5270 +Migrated issue #605 - (Feature request) Add icons to tree context menu to https://github.com/TriliumNext/trilium/issues/5271 +Migrated issue #606 - (Feature request) Add box icons to note menu to https://github.com/TriliumNext/trilium/issues/5272 +Migrated issue #608 - (Bug report) The inherited "shareTemplate" attribute does not work to https://github.com/TriliumNext/trilium/issues/5273 +Migrated issue #613 - (Feature request) Replace `(?)` with information icon to https://github.com/TriliumNext/trilium/issues/5274 +Migrated issue #614 - Collapsible Bullets/Lists to https://github.com/TriliumNext/trilium/issues/5275 +Migrated issue #617 - Dependency Dashboard to https://github.com/TriliumNext/trilium/issues/5276 +Migrated issue #619 - (Feature request) Add Options Launcher to https://github.com/TriliumNext/trilium/issues/5277 +Migrated issue #622 - (Feature request) Handle development user Javascript #Widgets more elegantly to https://github.com/TriliumNext/trilium/issues/5278 +Migrated issue #623 - (Bug report) Loss of an irreplacable attachment - user error or bug? to https://github.com/TriliumNext/trilium/issues/5279 +Migrated issue #624 - Dependency Dashboard to https://github.com/TriliumNext/trilium/issues/5280 +Migrated issue #650 - (Feature request) Change `clone` terminology. to https://github.com/TriliumNext/trilium/issues/5281 +Migrated issue #658 - Redirect anonymous bare url to /share page to https://github.com/TriliumNext/trilium/issues/5282 +Migrated issue #660 - (Bug report) after `Open New Window`, external links are opened in pop-up instead of default browser to https://github.com/TriliumNext/trilium/issues/5283 +Migrated issue #664 - (Feature request) Make the Number List section able to contain other types of paragraphs. to https://github.com/TriliumNext/trilium/issues/5284 +Migrated issue #666 - The 'Show Help' and 'About Trillium Notes' menu options are not available in the mobile view. to https://github.com/TriliumNext/trilium/issues/5285 +Migrated issue #668 - (Bug report) Syntax highlight in code blocks only in edit mode to https://github.com/TriliumNext/trilium/issues/5286 +Migrated issue #669 - (Bug report) Text in canvas notes are not searchable by quick search to https://github.com/TriliumNext/trilium/issues/5287 +Migrated issue #671 - (Bug report) Most tree context menu on mobile are broken to https://github.com/TriliumNext/trilium/issues/5288 +Migrated issue #672 - (Bug report) Renaming a Note Doesn't Update Link Text on Internal Links on Share Page to https://github.com/TriliumNext/trilium/issues/5289 +Migrated issue #674 - Menu positioning problem for KDE Breeze theme to https://github.com/TriliumNext/trilium/issues/5290 +Migrated issue #679 - (Feature request) Internal link to sections to https://github.com/TriliumNext/trilium/issues/5291 +Migrated issue #682 - (Feature request) Convert Tree Buttons to a fixed button bar to https://github.com/TriliumNext/trilium/issues/5292 +Migrated issue #683 - (Feature request) Save tree width by pixels (not percent) to https://github.com/TriliumNext/trilium/issues/5293 +Migrated issue #684 - (Bug report) "Insert Child Note" Context Menu Cuts off at bottom of screen, not scrollable to https://github.com/TriliumNext/trilium/issues/5294 +Migrated issue #685 - (Bug report) Keyboard shortcuts in tree context menu are not in line with menu item to https://github.com/TriliumNext/trilium/issues/5295 +Migrated issue #686 - CKEditor Handle doesn't move when tree width is changed to https://github.com/TriliumNext/trilium/issues/5296 +Migrated issue #687 - (Bug report) Header formatting remains in source note after `cut and paste selection to sub-note` to https://github.com/TriliumNext/trilium/issues/5297 +Migrated issue #690 - Consider changing the default port to https://github.com/TriliumNext/trilium/issues/5298 +Migrated issue #691 - Shared link show Adress from Sync Server to https://github.com/TriliumNext/trilium/issues/5299 +Migrated issue #696 - Nix flake to https://github.com/TriliumNext/trilium/issues/5300 +Migrated issue #697 - (Bug report) Greek characters with tonos are not represented correctly to https://github.com/TriliumNext/trilium/issues/5301 +Migrated issue #703 - (Feature request) Option to disable Calendar tree when making a new note to +Migrated issue #705 - (Feature request) Implement MCP (Model Context Protocol) to https://github.com/TriliumNext/trilium/issues/5302 +Migrated issue #706 - Creating human-readable URL aliases without sharing to https://github.com/TriliumNext/trilium/issues/5303 +Migrated issue #707 - (Bug report) Can't unshare note when it's hoisted to https://github.com/TriliumNext/trilium/issues/5304 +Migrated issue #712 - (Feature request) Note Tree Sidebar - Confirmation Dialogue When Dragging and Dropping To Move Note to https://github.com/TriliumNext/trilium/issues/5305 +Migrated issue #713 - (Feature request) Hide `internalLink` from `Jump To Note` dialog to https://github.com/TriliumNext/trilium/issues/5306 +Migrated issue #722 - Github description links to relationmap and link map broken to https://github.com/TriliumNext/trilium/issues/5307 +Migrated issue #723 - (Feature request) please add Mind Elixir plugin @mind-elixir/node-menu,thanks. to https://github.com/TriliumNext/trilium/issues/5308 +Migrated issue #724 - (Feature request) Undo button to +Migrated issue #729 - (Feature request) Display the fixed toolbar on multiple lines to https://github.com/TriliumNext/trilium/issues/5309 +Migrated issue #732 - (Bug report) Attribute "jump to" for internal links not working anymore to https://github.com/TriliumNext/trilium/issues/5310 +Migrated issue #733 - (Feature request) New API method: isMobile() to https://github.com/TriliumNext/trilium/issues/5311 +Migrated issue #734 - (Feature request) Home-assistant addon to +Migrated issue #739 - (Feature request) Code Block language support for Terraform (HCL) to https://github.com/TriliumNext/trilium/issues/5312 +Migrated issue #742 - (Bug report) ENEX import errors to https://github.com/TriliumNext/trilium/issues/5313 +Migrated issue #757 - (Bug report) File type video with emoji in name will break the preview to https://github.com/TriliumNext/trilium/issues/5314 +Migrated issue #764 - desktop app initial sync never stop to https://github.com/TriliumNext/trilium/issues/5315 +Migrated issue #766 - Docker Compose file contains erroneous hint regarding ufw to https://github.com/TriliumNext/trilium/issues/5316 +Migrated issue #768 - (Bug report) Firefox fails to use correct icon set to https://github.com/TriliumNext/trilium/issues/5317 +Migrated issue #771 - (Feature request) Terraform HCL highlight for code notes to https://github.com/TriliumNext/trilium/issues/5318 +Migrated issue #772 - (Bug report) Libraries in Excalidraw are broken to https://github.com/TriliumNext/trilium/issues/5319 +Migrated issue #773 - Add to Winget package repository to https://github.com/TriliumNext/trilium/issues/5320 +Migrated issue #778 - (Bug report) UX: 0.91.1-beta Light-Dark mode under Close Window control to https://github.com/TriliumNext/trilium/issues/5321 +Migrated issue #779 - (Feature request) Auto-show left panel when configuring launchbar to https://github.com/TriliumNext/trilium/issues/5322 +Migrated issue #780 - (Bug report) Button tooltips don't go away after clicking buttons in mobile view to https://github.com/TriliumNext/trilium/issues/5323 +Migrated issue #781 - (Bug report) Tree settings cannot be collapsed on mobile view to https://github.com/TriliumNext/trilium/issues/5324 +Migrated issue #782 - (Bug report) ReadOnly and Backlink buttons conflict with promoted attributes poorly on mobile view to https://github.com/TriliumNext/trilium/issues/5325 +Migrated issue #783 - (Bug report) Calendar overflows off right of view when in mobile view to https://github.com/TriliumNext/trilium/issues/5326 +Migrated issue #784 - (Bug report) Tapping on quick search result in mobile view displays note preview in addition to opening the note to https://github.com/TriliumNext/trilium/issues/5327 +Migrated issue #785 - (Bug report) Advanced tree menu is only accessible in the mobile view via long-press to https://github.com/TriliumNext/trilium/issues/5328 +Migrated issue #788 - (Feature request) Wikify a note to +Migrated issue #790 - Suggestion: Associate HTML label tags with input tags to https://github.com/TriliumNext/trilium/issues/5329 +Migrated issue #794 - Hardcoded English ARIA labels should be localized to https://github.com/TriliumNext/trilium/issues/5330 +Migrated issue #795 - (Bug report) Toolbar tooltips no longer shown to https://github.com/TriliumNext/trilium/issues/5331 +Migrated issue #796 - (Feature request) Improve search result highlighting to https://github.com/TriliumNext/trilium/issues/5332 +Migrated issue #797 - (Bug report) The SUID sandbox helper binary was found, but is not configured correctly to https://github.com/TriliumNext/trilium/issues/5333 +Migrated issue #798 - (Bug report) Cannot arrow down to "full search" when no search results are returned in quick search to https://github.com/TriliumNext/trilium/issues/5334 +Migrated issue #805 - Close to tray to https://github.com/TriliumNext/trilium/issues/5335 +Migrated issue #806 - UX: friendly numbers in settings, like hours or days instead of seconds to https://github.com/TriliumNext/trilium/issues/5336 +Migrated issue #807 - UX: Code blocks: sort mime type by most used to https://github.com/TriliumNext/trilium/issues/5337 +Migrated issue #811 - (Bug report) bêta regressions : pressing Enter not working as expected (at least on Mac) to https://github.com/TriliumNext/trilium/issues/5338 +Migrated issue #812 - (Bug report) Can not toggle notes by clicking on the note's icon in the navigation bar to https://github.com/TriliumNext/trilium/issues/5339 +Migrated issue #817 - Support for ARM server builds to https://github.com/TriliumNext/trilium/issues/5340 +Migrated issue #819 - Duplicate HTML ids for tabs of the same view to https://github.com/TriliumNext/trilium/issues/5341 +Migrated issue #820 - i18n: tags should be translatable as well to https://github.com/TriliumNext/trilium/issues/5342 +Migrated issue #825 - i18n: "Duplicate Subtree" prefix should be translatable to https://github.com/TriliumNext/trilium/issues/5343 +Migrated issue #826 - Request: importing html images as attached instead of external reference to https://github.com/TriliumNext/trilium/issues/5344 +Migrated issue #830 - (Feature Request) Syntax Highlighting for Batch scripts to https://github.com/TriliumNext/trilium/issues/5345 +Migrated issue #831 - (Bug report)【A rather serious issue】 The notes are experiencing automatic snapshot recovery, and the edited content does not have any historical records. to https://github.com/TriliumNext/trilium/issues/5346 +Migrated issue #832 - Other databases to https://github.com/TriliumNext/trilium/issues/5347 +Migrated issue #837 - delete to https://github.com/TriliumNext/trilium/issues/5348 +Migrated issue #838 - (Feature request) keyboard shortcut to save selected web clip to https://github.com/TriliumNext/trilium/issues/5349 +Migrated issue #839 - (Feature request) Save clip with prompt to add meta note to https://github.com/TriliumNext/trilium/issues/5350 +Migrated issue #841 - (Bug report) Importing checkbox related notes will not apply checkbox, instead bulletl ist to https://github.com/TriliumNext/trilium/issues/5351 +Migrated issue #842 - The note icon is not persisted in exported notes to https://github.com/TriliumNext/trilium/issues/5352 +Migrated issue #843 - The syntax highlighting of code blocks is broken for imported notes to https://github.com/TriliumNext/trilium/issues/5353 +Migrated issue #844 - (Bug report) attribute entry tool-tip obscures at-lookup note matches to https://github.com/TriliumNext/trilium/issues/5354 +Migrated issue #848 - (Bug report) sharing: normalize.min.css does not load to +Migrated issue #849 - (Feature request) Import/Merge Another Trilium Database Into Current database to https://github.com/TriliumNext/trilium/issues/5355 +Migrated issue #850 - (Feature request) Make location of trilium-data folder configurable to https://github.com/TriliumNext/trilium/issues/5356 +Migrated issue #854 - Mind Map: Ability to add images as node to https://github.com/TriliumNext/trilium/issues/5357 +Migrated issue #855 - (Feature request) Add a "home" button to launcher? to https://github.com/TriliumNext/trilium/issues/5358 +Migrated issue #856 - i18n: keyboard shortcuts from keyboard_actions service are not translatable to https://github.com/TriliumNext/trilium/issues/5359 +Migrated issue #858 - deps: `csurf` package is deprecated and should be replaced to https://github.com/TriliumNext/trilium/issues/5360 +Migrated issue #863 - (Feature request) UX: image options clarification to https://github.com/TriliumNext/trilium/issues/5361 +Migrated issue #865 - (Feature request) Unify/hide duplicate find dialogs/widgets to https://github.com/TriliumNext/trilium/issues/5362 +Migrated issue #868 - (Feature request) Option to open HTML attachment in browser instead of download to https://github.com/TriliumNext/trilium/issues/5363 +Migrated issue #869 - (Feature request) Move Promoted Attributes to Sidebar to https://github.com/TriliumNext/trilium/issues/5364 +Migrated issue #881 - NotFoundError after trying to paste filepath into note, restart required to https://github.com/TriliumNext/trilium/issues/5365 +Migrated issue #883 - (Bug report) Tapping down arrow on parent node closes tree sidebar to https://github.com/TriliumNext/trilium/issues/5366 +Migrated issue #884 - (Bug report) Launchbar on mobile not acessible most of the time to https://github.com/TriliumNext/trilium/issues/5367 +Migrated issue #885 - (Bug report) Title and 'mobile ribbon' not visible after clicking button to edit 'readOnly' note to https://github.com/TriliumNext/trilium/issues/5368 +Migrated issue #886 - (Bug report) CKEditor paragraph handle is half off screen in mobile view to https://github.com/TriliumNext/trilium/issues/5369 +Migrated issue #894 - (Bug report) Initial sync fails with 'Process exceeded time limit 120000' to https://github.com/TriliumNext/trilium/issues/5370 +Migrated issue #895 - Titles of Settings/Options are renamable to https://github.com/TriliumNext/trilium/issues/5371 +Migrated issue #901 - (Bug report) Completed checkboxes do not print as completed to https://github.com/TriliumNext/trilium/issues/5372 +Migrated issue #905 - Preserve highlighted text's background color when printing to https://github.com/TriliumNext/trilium/issues/5373 +Migrated issue #909 - (Bug report) ERROR: put /api/special-notes/api-script-launcher threw exception: 'disk I/O error', stack: SqliteError: disk I/O error to +Migrated issue #917 - Content query error to https://github.com/TriliumNext/trilium/issues/5374 +Migrated issue #918 - `replaceMathTextWithKatax` method is duplicated in `highlight_list.ts` and `toc.js` to https://github.com/TriliumNext/trilium/issues/5375 +Migrated issue #919 - (Feature request) Add "Open Note" to list of search actions to https://github.com/TriliumNext/trilium/issues/5376 +Migrated issue #920 - (Bug report) Limit search function doesn't work to https://github.com/TriliumNext/trilium/issues/5377 +Migrated issue #921 - Mermaid diagram notes: add link to docs to https://github.com/TriliumNext/trilium/issues/5378 +Migrated issue #922 - (Feature request) Allow hiding of mermaid diagram text to https://github.com/TriliumNext/trilium/issues/5379 +Migrated issue #930 - Make Initial Sync timeout value configurable to https://github.com/TriliumNext/trilium/issues/5380 +Migrated issue #931 - (Bug report) Imported Evernote Enex file overlaps Trilium UI to https://github.com/TriliumNext/trilium/issues/5381 +Migrated issue #943 - Errors occurred when importing .enex files to https://github.com/TriliumNext/trilium/issues/5382 +Migrated issue #948 - Large Code Blocks in Text Notes Break Syntax Highlight to https://github.com/TriliumNext/trilium/issues/5383 +Migrated issue #949 - (Bug report) Syntax Highlight for Certain Languages Don't Work Under Their Own Labels to https://github.com/TriliumNext/trilium/issues/5384 +Migrated issue #950 - csrfMiddleWare is not using TriliumNext defined `error_handlers` to https://github.com/TriliumNext/trilium/issues/5385 +Migrated issue #951 - Electron 31 will be EOL soon to https://github.com/TriliumNext/trilium/issues/5386 +Migrated issue #956 - (Feature request) Could you update the homebrew source to https://github.com/TriliumNext/trilium/issues/5387 +Migrated issue #958 - Search not finding verbatim text in some notes to https://github.com/TriliumNext/trilium/issues/5388 +Migrated issue #959 - (Bug report) "print to pdf" produced pdf file seems malformatted to https://github.com/TriliumNext/trilium/issues/5389 +Migrated issue #962 - Make Text Note Timestamp format adjustable to https://github.com/TriliumNext/trilium/issues/5390 +Migrated issue #964 - (Bug report) Note icon dialog doesn't close if note icon not chosen before moving to another note to https://github.com/TriliumNext/trilium/issues/5391 +Migrated issue #967 - (Bug report) Canvas/Excalidraw note slows down considerably with many images to https://github.com/TriliumNext/trilium/issues/5392 +Migrated issue #969 - (Bug report) tab context menu on mobile is not accessible to https://github.com/TriliumNext/trilium/issues/5393 +Migrated issue #970 - Fixed Formatting Bar covers menubar on mobile when editing a note to https://github.com/TriliumNext/trilium/issues/5394 +Migrated issue #971 - (Bug report) Note Menu opens at bottom of screen on mobile to https://github.com/TriliumNext/trilium/issues/5395 +Migrated issue #972 - (Bug report) Quick Search transparency is a little too much on mobile to https://github.com/TriliumNext/trilium/issues/5396 +Migrated issue #973 - (Bug report) Full Text Search button in quick launch search bar does not work to https://github.com/TriliumNext/trilium/issues/5397 +Migrated issue #974 - (Feature request) Add space between "delete all revisions" and `?` buttons on Note revision dialog to https://github.com/TriliumNext/trilium/issues/5398 +Migrated issue #976 - (Bug report) Context Menu Keyboard Commands wrap to next line to https://github.com/TriliumNext/trilium/issues/5399 +Migrated issue #982 - The system tray icon is not showing up when the application is launched for the first time to https://github.com/TriliumNext/trilium/issues/5400 +Migrated issue #983 - Confusing behaviour when the application is minimized in system tray to https://github.com/TriliumNext/trilium/issues/5401 +Migrated issue #984 - Broken sample note to https://github.com/TriliumNext/trilium/issues/5402 +Migrated issue #985 - Mind map: no intuitive way to exit full-screen mode to https://github.com/TriliumNext/trilium/issues/5403 +Migrated issue #986 - Mind map: the branching side preference is not persisted to https://github.com/TriliumNext/trilium/issues/5404 +Migrated issue #987 - Unable to protect a note immediately after the password is defined to https://github.com/TriliumNext/trilium/issues/5405 +Migrated issue #988 - Code Notes Settings: the "Available MIME Type" list gets corrupted to https://github.com/TriliumNext/trilium/issues/5406 +Migrated issue #989 - Configure Launch Bar: broken context menu commands to https://github.com/TriliumNext/trilium/issues/5407 +Migrated issue #990 - Tree Panel: the preferred width resets under certain conditions to https://github.com/TriliumNext/trilium/issues/5408 +Migrated issue #991 - System Tray Menu: new feature ideas to https://github.com/TriliumNext/trilium/issues/5409 +Migrated issue #992 - Add the ability to create a shell link (shortcut) for a note to https://github.com/TriliumNext/trilium/issues/5410 +Migrated issue #993 - Auto-hide the tab bar and toolbar in full-screen mode to https://github.com/TriliumNext/trilium/issues/5411 +Migrated issue #994 - Constrain the minimum size of the window to https://github.com/TriliumNext/trilium/issues/5412 +Migrated issue #995 - Add support for reduced motion to https://github.com/TriliumNext/trilium/issues/5413 +Migrated issue #996 - Localization: add support to follow the system language to https://github.com/TriliumNext/trilium/issues/5414 +Migrated issue #997 - Add a distinctive icon for the installer on Windows to https://github.com/TriliumNext/trilium/issues/5415 +Migrated issue #1000 - Add a context menu command to quickly archive a note to https://github.com/TriliumNext/trilium/issues/5416 +Migrated issue #1001 - Implement exporting notes to PDF to https://github.com/TriliumNext/trilium/issues/5417 +Migrated issue #1002 - Text Notes: add a way to move up and down text lines via a keyboard shortcut to https://github.com/TriliumNext/trilium/issues/5418 +Migrated issue #1003 - Import Dialog "Safe Import" Tooltip is cut off to https://github.com/TriliumNext/trilium/issues/5419 +Migrated issue #1010 - (Bug report) v0.91.3-beta server version failed to start to https://github.com/TriliumNext/trilium/issues/5420 +Migrated issue #1016 - HTML Import Strips away "valid" h1 tags to https://github.com/TriliumNext/trilium/issues/5421 +Migrated issue #1020 - `generate_documents` dev script seems to hang indefinitely to https://github.com/TriliumNext/trilium/issues/5422 +Migrated issue #1023 - `~child:child:template=...` and deeper child-template not applied automatically to https://github.com/TriliumNext/trilium/issues/5423 +Migrated issue #1024 - Autoformat Code-Block with language to https://github.com/TriliumNext/trilium/issues/5424 +Migrated issue #1025 - Drop down menu for code blocks' language in the top right corner to https://github.com/TriliumNext/trilium/issues/5425 +Migrated issue #1026 - Autoformat inline code when typing between backticks to https://github.com/TriliumNext/trilium/issues/5426 +Migrated issue #1027 - Syntax highlighting not working in read-only notes to https://github.com/TriliumNext/trilium/issues/5427 +Migrated issue #1029 - (Bug report) share.js broken on share pages on v0.91.3-beta to https://github.com/TriliumNext/trilium/issues/5428 +Migrated issue #1044 - imagemin guard for image compression to https://github.com/TriliumNext/trilium/issues/5429 +Migrated issue #1050 - Webpack build in develop takes longer than it did with last beta to https://github.com/TriliumNext/trilium/issues/5430 +Migrated issue #1054 - Text note contents disappeared when switching from "Read-Only" to editable to https://github.com/TriliumNext/trilium/issues/5431 +Migrated issue #1055 - Note properties note.noteSize and note.contentSize doesn't work in "Note Search" to https://github.com/TriliumNext/trilium/issues/5432 +Migrated issue #1058 - Backend Log is not showing on mobile view to https://github.com/TriliumNext/trilium/issues/5433 +Migrated issue #1059 - Use " / " slash command to open formatting toolbar to https://github.com/TriliumNext/trilium/issues/5434 +Migrated issue #1061 - Tick Box & bullet points as HTML objects after migration to https://github.com/TriliumNext/trilium/issues/5435 +Migrated issue #1062 - Map not visible when note is shared. to https://github.com/TriliumNext/trilium/issues/5436 +Migrated issue #1063 - Make geo-map pin note previews clickable to https://github.com/TriliumNext/trilium/issues/5437 +Migrated issue #1064 - Show inline mermaid diagram in share view instead of mermaid diagram code to https://github.com/TriliumNext/trilium/issues/5438 +Migrated issue #1067 - Create tags and show them in the panel to https://github.com/TriliumNext/trilium/issues/5439 +Migrated issue #1072 - XSS Possible in Setup Page to https://github.com/TriliumNext/trilium/issues/5440 +Migrated issue #1078 - Password window remains after opening encrypted notes to https://github.com/TriliumNext/trilium/issues/5441 +Migrated issue #1080 - Protected notes not protected from : deletion, attribute visibility to https://github.com/TriliumNext/trilium/issues/5442 +Migrated issue #1081 - Include attributes in revisions to https://github.com/TriliumNext/trilium/issues/5443 +Migrated issue #1083 - UX: friendly numbers in settings: Zoom factor (percent better than decimal factor) to https://github.com/TriliumNext/trilium/issues/5444 +Migrated issue #1084 - `v0.91.5` does not work. to +Migrated issue #1087 - Shortcut for Clipboard Pasting not working on Mac to https://github.com/TriliumNext/trilium/issues/5445 +Migrated issue #1089 - shareAlias should warn you, if the alias is already used on another shared note to https://github.com/TriliumNext/trilium/issues/5446 +Migrated issue #1090 - Consider deleting unused electron locales from release builds to https://github.com/TriliumNext/trilium/issues/5447 +Migrated issue #1093 - Name of server build artifact to https://github.com/TriliumNext/trilium/issues/5448 +Migrated issue #1094 - Figure out a way to pack eslint via webpack to https://github.com/TriliumNext/trilium/issues/5449 +Migrated issue #1095 - Allow the use of GPX files to show routes on the map to https://github.com/TriliumNext/trilium/issues/5450 +Migrated issue #1096 - The #appThemeBase label does not work (the theme is not displayed in the list as it is with #appTheme). to +Migrated issue #1098 - Request to add polylines or polygons on the geomap note type to https://github.com/TriliumNext/trilium/issues/5451 +Migrated issue #1100 - Pressing Enter to "Add link" does not work anymore to https://github.com/TriliumNext/trilium/issues/5452 +Migrated issue #1102 - Add RPM packages to https://github.com/TriliumNext/trilium/issues/5453 +Migrated issue #1105 - Open Today's Journal Note for the mobile ui to https://github.com/TriliumNext/trilium/issues/5454 +Migrated issue #1107 - Search not working after upgrade to v0.91.5 to https://github.com/TriliumNext/trilium/issues/5455 +Migrated issue #1109 - Add Flatpak packages to https://github.com/TriliumNext/trilium/issues/5456 +Migrated issue #1110 - Protected note password prompt is not removed after starting protected session to https://github.com/TriliumNext/trilium/issues/5457 +Migrated issue #1112 - Jump-To-Note icons are skewed to https://github.com/TriliumNext/trilium/issues/5458 +Migrated issue #1115 - `dump-db` in releases is shipped as TS to https://github.com/TriliumNext/trilium/issues/5459 +Migrated issue #1117 - Protected Note : Password Prompt Still showing after switching to another note. to https://github.com/TriliumNext/trilium/issues/5460 +Migrated issue #1121 - Format bar placement obscures the bottom bar to https://github.com/TriliumNext/trilium/issues/5461 +Migrated issue #1123 - `etapi.openapi.yaml` is not packaged in Desktop builds causing App to crash to https://github.com/TriliumNext/trilium/issues/5462 +Migrated issue #1126 - Add space between note icon and note title in quick search to https://github.com/TriliumNext/trilium/issues/5463 +Migrated issue #1127 - Add Bookmarks launcher to mobile UI to https://github.com/TriliumNext/trilium/issues/5464 +Migrated issue #1128 - Add Calendar to mobile ui available launchers to https://github.com/TriliumNext/trilium/issues/5465 +Migrated issue #1129 - Add `Open Today's Journal Note` to available mobile ui launchers to https://github.com/TriliumNext/trilium/issues/5466 +Migrated issue #1131 - Check if ETAPI OpenAPI spec is up-to-date to https://github.com/TriliumNext/trilium/issues/5467 +Migrated issue #1133 - Open/focus a note from command line / desktop URL handler? to https://github.com/TriliumNext/trilium/issues/5468 +Migrated issue #1136 - UX: friendly numbers in settings: "Notes erasure" and "Attachment erasure" timeout to https://github.com/TriliumNext/trilium/issues/5469 +Migrated issue #1137 - Expose In UI which Settings are Auto-Synced to https://github.com/TriliumNext/trilium/issues/5470 +Migrated issue #1139 - Bug: Note share with password protection doesn't work to +Migrated issue #1142 - TypeScript code files are detected as `video/mp2t` files to https://github.com/TriliumNext/trilium/issues/5471 +Migrated issue #1145 - Check what environmental variables are in use to https://github.com/TriliumNext/trilium/issues/5472 +Migrated issue #1146 - Allow setting session cookie path via config to https://github.com/TriliumNext/trilium/issues/5473 +Migrated issue #1154 - Session Cookies: maxAge does not seem to be correctly set to https://github.com/TriliumNext/trilium/issues/5474 +Migrated issue #1159 - Add keyboard shortcuts for managing splits to https://github.com/TriliumNext/trilium/issues/5475 +Migrated issue #1160 - Add support for `mid:` URI to https://github.com/TriliumNext/trilium/issues/5476 +Migrated issue #1161 - In new 0.91.6 version, "Recent Changes" can't be put into "Mobile Launch Bar" to https://github.com/TriliumNext/trilium/issues/5477 +Migrated issue #1164 - invisible note text to https://github.com/TriliumNext/trilium/issues/5478 +Migrated issue #1165 - Trilium not starting with services to +Migrated issue #1169 - pls support for Chinese handwriting fonts to https://github.com/TriliumNext/trilium/issues/5479 +Migrated issue #1170 - Feature Request: Notification API to https://github.com/TriliumNext/trilium/issues/5480 +Migrated issue #1171 - Feature Request: Selected Note API to https://github.com/TriliumNext/trilium/issues/5481 +Migrated issue #1172 - Option to disable Electron built-in shortcuts (Ctrl+Q etc.) to https://github.com/TriliumNext/trilium/issues/5482 +Migrated issue #1174 - Cleanup Build Scripts to https://github.com/TriliumNext/trilium/issues/5483 +Migrated issue #1175 - Implement namespaces for NPM scripts to https://github.com/TriliumNext/trilium/issues/5484 +Migrated issue #1177 - Numbered bullet is different in Note Revision view to https://github.com/TriliumNext/trilium/issues/5485 +Migrated issue #1180 - Share Feature Enhancement to https://github.com/TriliumNext/trilium/issues/5486 +Migrated issue #1181 - Syntax highlighting in Shared Notes to https://github.com/TriliumNext/trilium/issues/5487 +Migrated issue #1182 - Serving raw files to https://github.com/TriliumNext/trilium/issues/5488 +Migrated issue #1189 - note object is different if trigger by #run=frontendStartup to https://github.com/TriliumNext/trilium/issues/5489 +Migrated issue #1193 - Wrong tree selection on launch (last tab instead of active tab) to https://github.com/TriliumNext/trilium/issues/5490 +Migrated issue #1197 - Export canvas to .excalidraw to https://github.com/TriliumNext/trilium/issues/5491 +Migrated issue #1198 - Context Menu is not accessible via keyboard to https://github.com/TriliumNext/trilium/issues/5492 +Migrated issue #1199 - Context Menu should use `menu` element to https://github.com/TriliumNext/trilium/issues/5493 +Migrated issue #1200 - Context Menu click on Submenu parent should not trigger event/close the context menu to https://github.com/TriliumNext/trilium/issues/5494 +Migrated issue #1202 - Webclipper (firefox and chrome) lost table frame content in TriliumNext version 0.91.6 to https://github.com/TriliumNext/trilium/issues/5495 +Migrated issue #1205 - Internal Links cannot be created with shortcut to https://github.com/TriliumNext/trilium/issues/5496 +Migrated issue #1206 - Undo, permanent delete: add as action for note tree to https://github.com/TriliumNext/trilium/issues/5497 +Migrated issue #1208 - Pasting curl command throws 403 to https://github.com/TriliumNext/trilium/issues/5498 +Migrated issue #1209 - Enabling "Enable background effects" does not properly work with dark themes to https://github.com/TriliumNext/trilium/issues/5499 +Migrated issue #1211 - Add keyboard shortcut for "create new split" to https://github.com/TriliumNext/trilium/issues/5500 +Migrated issue #1212 - UX: friendly numbers in settings: Note revision snapshot interval to https://github.com/TriliumNext/trilium/issues/5501 +Migrated issue #1214 - Build: Windows Zip target missing to https://github.com/TriliumNext/trilium/issues/5502 +Migrated issue #1215 - Documentation: Backend Script API page returns 404 Not Found to https://github.com/TriliumNext/trilium/issues/5503 +Migrated issue #1217 - Import markdown leaves out image to https://github.com/TriliumNext/trilium/issues/5504 +Migrated issue #1218 - Some valid javascript syntax are highlighted as error to https://github.com/TriliumNext/trilium/issues/5505 +Migrated issue #1219 - Add Typescript note type by default to https://github.com/TriliumNext/trilium/issues/5506 +Migrated issue #1221 - Sync not work. to +Migrated issue #1224 - UX: friendly numbers in settings: Protected Session Timeout to https://github.com/TriliumNext/trilium/issues/5507 +Migrated issue #1226 - Check which API endpoints are not protected / publicly accessible to https://github.com/TriliumNext/trilium/issues/5508 +Migrated issue #1233 - Dynamic themes to https://github.com/TriliumNext/trilium/issues/5509 +Migrated issue #1236 - Treat .mdx files as markdown to https://github.com/TriliumNext/trilium/issues/5510 +Migrated issue #1237 - Calculated Content in Templates via Inline Javascript to https://github.com/TriliumNext/trilium/issues/5511 +Migrated issue #1238 - Possibility to export DB Backups to external location to +Migrated issue #1241 - Importing outlook email into TN to https://github.com/TriliumNext/trilium/issues/5512 +Migrated issue #1246 - TriliumNext Home Assistant Addon - almost done, need some support :) to +Migrated issue #1247 - UX: friendly numbers in settings: Sync timeout to https://github.com/TriliumNext/trilium/issues/5513 +Migrated issue #1248 - UX: friendly numbers in settings: Auto read-only size to https://github.com/TriliumNext/trilium/issues/5514 +Migrated issue #1251 - Headings not prefixed with `#` but different numbers of hyphens `-` under to https://github.com/TriliumNext/trilium/issues/5515 +Migrated issue #1256 - flatpak doesn't launch after install, needs no-sandbox to https://github.com/TriliumNext/trilium/issues/5516 +Migrated issue #1259 - Keyboard Shortcuts can be assigned multiple times to https://github.com/TriliumNext/trilium/issues/5517 +Migrated issue #1262 - Fuzzy Search to https://github.com/TriliumNext/trilium/issues/5518 +Migrated issue #1264 - docker-compose installation of TriliumNext fails with trilium-py to +Migrated issue #1266 - support the images from the external image hosting or S3? to https://github.com/TriliumNext/trilium/issues/5519 +Migrated issue #1269 - JSON formating on codenote to +Migrated issue #1278 - The hidden notes hiearchy becomes apparent after importing a note to https://github.com/TriliumNext/trilium/issues/5520 +Migrated issue #1280 - Protected Session Prompt Always Displays。 to https://github.com/TriliumNext/trilium/issues/5521 +Migrated issue #1284 - CI: MacOS build is broken to https://github.com/TriliumNext/trilium/issues/5522 +Migrated issue #1285 - Server: Login fails with `appPath` is not defined to https://github.com/TriliumNext/trilium/issues/5523 +Migrated issue #1293 - Investigate Linting Tool for Codebase to https://github.com/TriliumNext/trilium/issues/5524 +Migrated issue #1301 - Unable to launch desktop client - Permission denied to https://github.com/TriliumNext/trilium/issues/5525 +Migrated issue #1303 - Investigate Creating/Shipping AppArmor Profile to https://github.com/TriliumNext/trilium/issues/5526 +Migrated issue #1308 - Revisions are deleted with their metadata to https://github.com/TriliumNext/trilium/issues/5527 +Migrated issue #1309 - Editing a note causes its attachments opened on separate splits/windows to be re-rendered on each keystroke to https://github.com/TriliumNext/trilium/issues/5528 +Migrated issue #1310 - owned attributes to https://github.com/TriliumNext/trilium/issues/5529 +Migrated issue #1321 - Custom widget position doesn't work to https://github.com/TriliumNext/trilium/issues/5530 +Migrated issue #1323 - Resizable Mermaid Graphics to https://github.com/TriliumNext/trilium/issues/5531 +Migrated issue #1326 - JS frontend parsing error to https://github.com/TriliumNext/trilium/issues/5532 +Migrated issue #1327 - Chinese and numbers at the same time will be used on both sides of the number will have a gap increase to https://github.com/TriliumNext/trilium/issues/5533 +Migrated issue #1329 - Text input lag when running under wayland to https://github.com/TriliumNext/trilium/issues/5534 +Migrated issue #1331 - Refactor Event System to Improve Maintainability and Type Safety to https://github.com/TriliumNext/trilium/issues/5535 +Migrated issue #1333 - Recent Changes not correct. Undelete doc is confusing to https://github.com/TriliumNext/trilium/issues/5536 +Migrated issue #1335 - Search from URL not working to https://github.com/TriliumNext/trilium/issues/5537 +Migrated issue #1336 - One click copy of code blocks into clipboard to https://github.com/TriliumNext/trilium/issues/5538 +Migrated issue #1337 - absurdly thick stroke width in Canvas note type to https://github.com/TriliumNext/trilium/issues/5539 +Migrated issue #1344 - Protected notes persistant password field issue to https://github.com/TriliumNext/trilium/issues/5540 +Migrated issue #1345 - Mermaid diagram notes with customizations cannot be included to https://github.com/TriliumNext/trilium/issues/5541 +Migrated issue #1354 - Read-only notes do not have the same visual arrangement as editable notes. to https://github.com/TriliumNext/trilium/issues/5542 +Migrated issue #1362 - LLM integration to https://github.com/TriliumNext/trilium/issues/5543 +Migrated issue #1363 - Fix Server Build to https://github.com/TriliumNext/trilium/issues/5544 +Migrated issue #1364 - Fancytree assertion failed: only init supported to https://github.com/TriliumNext/trilium/issues/5545 +Migrated issue #1365 - #readOnly should be applied to title and labels (attributes) too to https://github.com/TriliumNext/trilium/issues/5546 +Migrated issue #1370 - Zen Mode: text formatting commands are missing from UI to https://github.com/TriliumNext/trilium/issues/5547 +Migrated issue #1371 - Zen Mode: unable to edit read only notes to https://github.com/TriliumNext/trilium/issues/5548 +Migrated issue #1372 - Zen Mode: use F12 as shortcut key to https://github.com/TriliumNext/trilium/issues/5549 +Migrated issue #1373 - Sync errors may hang the initial setup to https://github.com/TriliumNext/trilium/issues/5550 +Migrated issue #1374 - Restore the existing window (if minimized in System Tray) when a new application instance is launched to https://github.com/TriliumNext/trilium/issues/5551 +Migrated issue #1375 - The "Code" formatting command is missing from the fixed toolbar to https://github.com/TriliumNext/trilium/issues/5552 +Migrated issue #1376 - Launcher: add keyboard navigation for Calendar to https://github.com/TriliumNext/trilium/issues/5553 +Migrated issue #1377 - Note source: disable the ability to change the icon to https://github.com/TriliumNext/trilium/issues/5554 +Migrated issue #1378 - Child note preview: a "broken picture" icon appears for empty canvas notes to https://github.com/TriliumNext/trilium/issues/5555 +Migrated issue #1379 - Note Revisions: inform when the note preview is not supported to https://github.com/TriliumNext/trilium/issues/5556 +Migrated issue #1380 - Docker build: Run update-build-info script to https://github.com/TriliumNext/trilium/issues/5557 +Migrated issue #1383 - How to prevent TriliumNext from automatically converting display formats? to +Migrated issue #1391 - Check if it makes sense to ship static Swagger-UI for ETAPI to https://github.com/TriliumNext/trilium/issues/5558 +Migrated issue #1394 - Enhanced Blockquote Support (Callouts-like System) to https://github.com/TriliumNext/trilium/issues/5559 +Migrated issue #1396 - The "Move to" and "Clone to" commands are no longer working to https://github.com/TriliumNext/trilium/issues/5560 +Migrated issue #1397 - Trilium Next - Home Assistant Addon to +Migrated issue #1400 - Open in new tab by default to +Migrated issue #1401 - task management to https://github.com/TriliumNext/trilium/issues/5561 +Migrated issue #1402 - Pin tab to https://github.com/TriliumNext/trilium/issues/5562 +Migrated issue #1404 - multiple selection to +Migrated issue #1405 - note linking to +Migrated issue #1406 - support mips in syntax highlighting to https://github.com/TriliumNext/trilium/issues/5563 +Migrated issue #1407 - Upper panel improvement to +Migrated issue #1408 - block quote colour to https://github.com/TriliumNext/trilium/issues/5564 +Migrated issue #1409 - Writing does not work correctly to https://github.com/TriliumNext/trilium/issues/5565 +Migrated issue #1410 - Calendar view enhancement to https://github.com/TriliumNext/trilium/issues/5566 +Migrated issue #1411 - two-column layout to +Migrated issue #1412 - Copy code block to https://github.com/TriliumNext/trilium/issues/5567 +Migrated issue #1413 - Build: Copy-Dist - Investigate if missing files will make CI fail to https://github.com/TriliumNext/trilium/issues/5568 +Migrated issue #1418 - Import PDF files into Canvas notes to https://github.com/TriliumNext/trilium/issues/5569 +Migrated issue #1419 - Highlights List/Table of Contents exit button hides when too small to https://github.com/TriliumNext/trilium/issues/5570 +Migrated issue #1429 - Horizontal line selection to +Migrated issue #1431 - Canvas export as image options missing to https://github.com/TriliumNext/trilium/issues/5571 +Migrated issue #1445 - API Function to Raise Window to https://github.com/TriliumNext/trilium/issues/5572 +Migrated issue #1446 - Local sync IP alternative to remote to +Migrated issue #1455 - tsyncserver error gettaddrinfo ENOTFOUND to https://github.com/TriliumNext/trilium/issues/5573 +Migrated issue #1458 - Note source not editable in standard mode nor in protected mode to https://github.com/TriliumNext/trilium/issues/5574 +Migrated issue #1459 - 0.92.4: Add server build to assets to +Migrated issue #1464 - Mind Map: No context menu visible to https://github.com/TriliumNext/trilium/issues/5575 +Migrated issue #1468 - "Info" keyword is not removed from admonition when frame is layed out. to https://github.com/TriliumNext/trilium/issues/5576 +Migrated issue #1479 - When entering Chinese content that includes numbers, text formatting errors occur. to https://github.com/TriliumNext/trilium/issues/5577 +Migrated issue #1488 - two desktop entries in Linux to https://github.com/TriliumNext/trilium/issues/5578 +Migrated issue #1489 - Allow Root note to be #shareRoot to https://github.com/TriliumNext/trilium/issues/5579 +Migrated issue #1496 - Allow Word Wrapping in Backend Log Viewer to https://github.com/TriliumNext/trilium/issues/5580 +Migrated issue #1499 - Server release tarball contains broken symlinks to https://github.com/TriliumNext/trilium/issues/5581 +Migrated issue #1503 - Valid typescript syntax is shown as error to https://github.com/TriliumNext/trilium/issues/5582 +Migrated issue #1505 - Add a template label #rerunScriptsOnTemplateChange to allow execution of template scripts. to https://github.com/TriliumNext/trilium/issues/5583 +Migrated issue #1506 - Children notes are not created when creating a custom-template note from the tree context menu to https://github.com/TriliumNext/trilium/issues/5584 +Migrated issue #1508 - Search Prefix to https://github.com/TriliumNext/trilium/issues/5585 +Migrated issue #1512 - PDF Export has phantom text overlayed to https://github.com/TriliumNext/trilium/issues/5586 +Migrated issue #1513 - On mobile, format bar scrolls when should remain static position above keyboard to https://github.com/TriliumNext/trilium/issues/5587 +Migrated issue #1514 - 'X-Forwarded-For' header to +Migrated issue #1523 - Allow add multiple synchronization servers to https://github.com/TriliumNext/trilium/issues/5588 +Migrated issue #1524 - Admonitions have wrong icon/logo to https://github.com/TriliumNext/trilium/issues/5589 +Migrated issue #1525 - Server .92.4 - Named export 'fileTypeFromBuffer' not found to +Migrated issue #1527 - Table of Content opens in wrong note with "Meta + Left-Click" to https://github.com/TriliumNext/trilium/issues/5590 +Migrated issue #1530 - Code blocks lost when importing Markdown from clipboard to https://github.com/TriliumNext/trilium/issues/5591 +Migrated issue #1531 - CI: Investigate flaky Nightly Release Build for MacOS to https://github.com/TriliumNext/trilium/issues/5592 +Migrated issue #1532 - CI: Nightly builds are missing branch tag in filename to https://github.com/TriliumNext/trilium/issues/5593 +Migrated issue #1536 - How to close too many tabs on mobile? to https://github.com/TriliumNext/trilium/issues/5594 +Migrated issue #1538 - Undo/Redo doesn't work on the Mac to https://github.com/TriliumNext/trilium/issues/5595 +Migrated issue #1542 - Excalidraw: tries to load unknown fonts and fails with 404 to https://github.com/TriliumNext/trilium/issues/5596 +Migrated issue #1543 - Excalidraw: "Failed to use workers for subsetting, falling back to the main thread. " to https://github.com/TriliumNext/trilium/issues/5597 +Migrated issue #1544 - Allow running multiple client instances / connect client to multiple servers to https://github.com/TriliumNext/trilium/issues/5598 +Migrated issue #1545 - The application is crashing after the initial setup dialog to https://github.com/TriliumNext/trilium/issues/5599 +Migrated issue #1547 - Move drawio.js from plugin to core to +Migrated issue #1551 - (Bug report)(0.92.4)The code highlighting in the text is not displayed correctly | 文本中的代码高亮没有正确显示 to https://github.com/TriliumNext/trilium/issues/5600 +Migrated issue #1552 - By dragging to full screen, the window border of the old version will appear. | 通过拖拽全屏,会出现老版本的窗口边框 to https://github.com/TriliumNext/trilium/issues/5601 +Migrated issue #1553 - Run “brew bump-pr” in CI during release to https://github.com/TriliumNext/trilium/issues/5602 +Migrated issue #1554 - The code box in the text cannot be copied from the end to the left. | 文本中的代码框无法从末尾向左复制 to https://github.com/TriliumNext/trilium/issues/5603 +Migrated issue #1555 - Highlights List with Italic text has error when click on it to https://github.com/TriliumNext/trilium/issues/5604 +Migrated issue #1556 - dprint causes build failure on arm v7 to https://github.com/TriliumNext/trilium/issues/5605 +Migrated issue #1558 - Q: How to recognise Obsidian's internal link format - [[Wikilink]] to +Migrated issue #1559 - OpenID Connect support to https://github.com/TriliumNext/trilium/issues/5606 +Migrated issue #1562 - Please give an option to "hide the note hoisting by default" to +Migrated issue #1567 - Message Execution` of JS note to +Migrated issue #1572 - Child Notes - Not showing up under reading pane of parent to https://github.com/TriliumNext/trilium/issues/5607 +Migrated issue #1574 - Avoid dprint ending up in final dist output to https://github.com/TriliumNext/trilium/issues/5608 +Migrated issue #1578 - Add "open in new split" option to JumpTo menu to https://github.com/TriliumNext/trilium/issues/5609 +Migrated issue #1580 - Redirect to login works differently with TOTP enabled to https://github.com/TriliumNext/trilium/issues/5610 +Migrated issue #1582 - Mermaid bugs can crash the frontend to https://github.com/TriliumNext/trilium/issues/5611 +Migrated issue #1587 - PDF export showing title bar buttons to https://github.com/TriliumNext/trilium/issues/5612 +Migrated issue #1594 - Fail to logout to https://github.com/TriliumNext/trilium/issues/5613 +Migrated issue #1596 - Security Issue: TOTP Validation Occurs After Password Verification to https://github.com/TriliumNext/trilium/issues/5614 +Migrated issue #1599 - Clicking below note should focus editor to https://github.com/TriliumNext/trilium/issues/5615 +Migrated issue #1600 - In-APP help is empty on non-English languages to https://github.com/TriliumNext/trilium/issues/5616 +Migrated issue #1601 - Clean up the code formatting to https://github.com/TriliumNext/trilium/issues/5617 +Migrated issue #1609 - Code Syntax Highlighting Not Persisting after navigating back to Note (highlight.js) to https://github.com/TriliumNext/trilium/issues/5618 +Migrated issue #1611 - Check why "typescript" npm package is present in the final dist output's node_modules to https://github.com/TriliumNext/trilium/issues/5619 +Migrated issue #1612 - CI: Build "Server" dist via Nightly as well to https://github.com/TriliumNext/trilium/issues/5620 +Migrated issue #1614 - Customize the format toolbar to https://github.com/TriliumNext/trilium/issues/5621 +Migrated issue #1615 - `Search in note` sometimes can't be opened to https://github.com/TriliumNext/trilium/issues/5622 +Migrated issue #1616 - ARM Signing for Windows to https://github.com/TriliumNext/trilium/issues/5623 +Migrated issue #1618 - Open document with CTRL-click in background will show its TOC in foreground to https://github.com/TriliumNext/trilium/issues/5624 +Migrated issue #1619 - Doc: Broken images in "Creating a custom theme" to https://github.com/TriliumNext/trilium/issues/5625 +Migrated issue #1622 - Include all available templates, even in hoisted notes to https://github.com/TriliumNext/trilium/issues/5626 +Migrated issue #1628 - Investigate webpack packing duplicate leaflet marker icon to https://github.com/TriliumNext/trilium/issues/5627 +Migrated issue #1639 - Issue with left panel to https://github.com/TriliumNext/trilium/issues/5628 +Migrated issue #1640 - Icons in left sidebar not centered or not visible (including fix) to https://github.com/TriliumNext/trilium/issues/5629 +Migrated issue #1641 - Get rid of deprecated methods to https://github.com/TriliumNext/trilium/issues/5630 +Migrated issue #1643 - Internal Note links not working in User Guide to https://github.com/TriliumNext/trilium/issues/5631 +Migrated issue #1645 - Setting cookiePath in config.ini causes crash to https://github.com/TriliumNext/trilium/issues/5632 +Migrated issue #1646 - Launch bar has a right shift except in default theme to https://github.com/TriliumNext/trilium/issues/5633 +Migrated issue #1647 - Quick search not working on horizontal layout to https://github.com/TriliumNext/trilium/issues/5634 +Migrated issue #1648 - Improved tags to https://github.com/TriliumNext/trilium/issues/5635 +Migrated issue #1649 - Export equations into Katex instead of latex to https://github.com/TriliumNext/trilium/issues/5636 +Migrated issue #1651 - v0.92.5-beta -> v0.92.6 mostly-hidden search to https://github.com/TriliumNext/trilium/issues/5637 +Migrated issue #1652 - Add Ctrl + D Shortcut to Select Next Matching Occurrence (Sublime Text Style) to https://github.com/TriliumNext/trilium/issues/5638 +Migrated issue #1656 - Improve todolist plugin , I find a effictive zip can extent trlium. the download url will follow to https://github.com/TriliumNext/trilium/issues/5639 +Migrated issue #1657 - Support for importing ICS (iCalendar) file to https://github.com/TriliumNext/trilium/issues/5640 +Migrated issue #1658 - Add showProtectedDialog() to frontEnd API to https://github.com/TriliumNext/trilium/issues/5641 +Migrated issue #1659 - Web search broken in 0.92.6 update to https://github.com/TriliumNext/trilium/issues/5642 +Migrated issue #1660 - Mobile detection when auth disabled not working to https://github.com/TriliumNext/trilium/issues/5643 +Migrated issue #1667 - Receiving "Error: Option 'redirectBareDomain' doesn't exist" on new installation to https://github.com/TriliumNext/trilium/issues/5644 +Migrated issue #1670 - Export to clipboard to https://github.com/TriliumNext/trilium/issues/5645 +Migrated issue #1676 - Release TAG 0.0.0 ? ^^ to https://github.com/TriliumNext/trilium/issues/5646 +Migrated issue #1677 - Unable to add internal link on mobile version to https://github.com/TriliumNext/trilium/issues/5647 +Migrated issue #1679 - Center Search results under quick search bar to https://github.com/TriliumNext/trilium/issues/5648 +Migrated issue #1680 - Quick search launch bar item does nothing in vertical layout to https://github.com/TriliumNext/trilium/issues/5649 +Migrated issue #1684 - TOTP security enchancement to https://github.com/TriliumNext/trilium/issues/5650 +Migrated issue #1685 - theme unstable when move app to another screen to https://github.com/TriliumNext/trilium/issues/5651 +Migrated issue #1689 - Note background is gray in 0.92.7 (light theme) to https://github.com/TriliumNext/trilium/issues/5652 +Migrated issue #1690 - Node Version? to https://github.com/TriliumNext/trilium/issues/5653 +Migrated issue #1694 - Why can't I see Map-Note properly? to https://github.com/TriliumNext/trilium/issues/5654 +Migrated issue #1695 - The search details to https://github.com/TriliumNext/trilium/issues/5655 +Migrated issue #1697 - Show full note titles in Link Map view to https://github.com/TriliumNext/trilium/issues/5656 +Migrated issue #1701 - Support Bearer Token to https://github.com/TriliumNext/trilium/issues/5657 +Migrated issue #1702 - Saved Search Auto Search on Note Open to https://github.com/TriliumNext/trilium/issues/5658 +Migrated issue #1703 - Have Playwright test against Electron version as well to https://github.com/TriliumNext/trilium/issues/5659 +Migrated issue #1705 - Calendar stops displaying notes after adding a Day Note to https://github.com/TriliumNext/trilium/issues/5660 +Migrated issue #1706 - Add Rate Limiting to TOTP related routes to https://github.com/TriliumNext/trilium/issues/5661 +Migrated issue #1707 - Return correct HTTP status code on failed login attempts instead of 200 to https://github.com/TriliumNext/trilium/issues/5662 +Migrated issue #1709 - config.Session.cookieMaxAge is ignored to https://github.com/TriliumNext/trilium/issues/5663 +Migrated issue #1713 - CSS ChunkLoadError caused by failed MIME type check in V0.92.7 to +Migrated issue #1716 - Allow setting Cross-Origin Resource Sharing (CORS) headers to https://github.com/TriliumNext/trilium/issues/5664 +Migrated issue #1717 - PDF Viewer Obstruction on iOS Mobile Client to https://github.com/TriliumNext/trilium/issues/5665 +Migrated issue #1718 - Sync not possible when 2FA is on to https://github.com/TriliumNext/trilium/issues/5666 +Migrated issue #1720 - Better search with search excerpts? to https://github.com/TriliumNext/trilium/issues/5667 +Migrated issue #1721 - Note selection dialog shows icon class when selecting result with arrow button (jump to note / create link) to https://github.com/TriliumNext/trilium/issues/5668 +Migrated issue #1722 - Add link dialog fails to link if you press enter twice too quickly to https://github.com/TriliumNext/trilium/issues/5669 +Migrated issue #1723 - Option to define default image alignment when pasting document to https://github.com/TriliumNext/trilium/issues/5670 +Migrated issue #1726 - Option to search entire database when a note is hoisted to https://github.com/TriliumNext/trilium/issues/5671 +Migrated issue #1727 - Note ordering doesn't load correctly, only shows up right after moving a note to https://github.com/TriliumNext/trilium/issues/5672 +Migrated issue #1728 - Editor extremely slow with large-ish checkbox trees to https://github.com/TriliumNext/trilium/issues/5673 +Migrated issue #1729 - Data loss due to lack of UI feedback when network connection is down to https://github.com/TriliumNext/trilium/issues/5674 +Migrated issue #1734 - Calendar tooltip is not correctly positioned to https://github.com/TriliumNext/trilium/issues/5675 +Migrated issue #1735 - Update to React 19 when possible to https://github.com/TriliumNext/trilium/issues/5676 +Migrated issue #1737 - Browsing to "/share" on uninitialized setup causes crash to https://github.com/TriliumNext/trilium/issues/5677 +Migrated issue #1745 - Calendar template can't reach the day note when weeknote/quarternote is enabled to https://github.com/TriliumNext/trilium/issues/5678 +Migrated issue #1746 - New Install - All new notes have the text 'Dgfff', and any blank notes have that text as wel. to https://github.com/TriliumNext/trilium/issues/5679 +Migrated issue #1747 - Calendar no longer shows multiple `displayedAttributes` to https://github.com/TriliumNext/trilium/issues/5680 +Migrated issue #1755 - Task manager to https://github.com/TriliumNext/trilium/issues/5681 +Migrated issue #1756 - any markdown text containing $ gets converted into math equations during import to https://github.com/TriliumNext/trilium/issues/5682 +Migrated issue #1761 - Edited notes list automatic updates to Hidden Notes to https://github.com/TriliumNext/trilium/issues/5683 +Migrated issue #1762 - Bring back quick reference help page to https://github.com/TriliumNext/trilium/issues/5684 +Migrated issue #1763 - Search within Help User Guide to https://github.com/TriliumNext/trilium/issues/5685 +Migrated issue #1764 - In-app Help links to public pages to https://github.com/TriliumNext/trilium/issues/5686 +Migrated issue #1772 - GPX load error to https://github.com/TriliumNext/trilium/issues/5687 +Migrated issue #1775 - segfault SEGV directly when the mouse is swiped across the menu bar to https://github.com/TriliumNext/trilium/issues/5688 +Migrated issue #1776 - Integreate `markwhen` as a note type. to https://github.com/TriliumNext/trilium/issues/5689 +Migrated issue #1777 - markdown editor to https://github.com/TriliumNext/trilium/issues/5690 +Migrated issue #1779 - Document link is invalid. to https://github.com/TriliumNext/trilium/issues/5691 +Migrated issue #1780 - codesandbox Sandpack note or plugin? to https://github.com/TriliumNext/trilium/issues/5692 +Migrated issue #1782 - CSS is wrong for dropdown menus by default to https://github.com/TriliumNext/trilium/issues/5693 +Migrated issue #1792 - Day template does not apply to date while enabling both Quarter and Week view. to https://github.com/TriliumNext/trilium/issues/5694 +Migrated issue #1794 - Line Ending import recognition or setting to https://github.com/TriliumNext/trilium/issues/5695 +Migrated issue #1795 - api.getTodayNote() return empty object on v0.93 ? to https://github.com/TriliumNext/trilium/issues/5696 +Migrated issue #1796 - Take photo from camera to https://github.com/TriliumNext/trilium/issues/5697 +Migrated issue #1798 - iframe sandbox allow popups to https://github.com/TriliumNext/trilium/issues/5698 +Migrated issue #1801 - Non critical error on first startup to https://github.com/TriliumNext/trilium/issues/5699 +Migrated issue #1802 - [Low priority] Uncaught error when checking update to https://github.com/TriliumNext/trilium/issues/5700 +Migrated issue #1803 - Configurable tab width in code blocks to https://github.com/TriliumNext/trilium/issues/5701 +Migrated issue #1804 - Animations: auto play none, once, n times, forever to https://github.com/TriliumNext/trilium/issues/5702 +Migrated issue #1805 - Trilium Notes deployed to Google Cloud Run as Docker image resets after short period of inactivity to +Migrated issue #1816 - TriliumNext's read me should focus on what makes it different from the original to https://github.com/TriliumNext/trilium/issues/5703 +Migrated issue #1819 - backlink button is always blocking the main text to https://github.com/TriliumNext/trilium/issues/5704 +Migrated issue #1820 - Improved table formatting - continue formatting to new row to https://github.com/TriliumNext/trilium/issues/5705 +Migrated issue #1821 - Modals/dialogues being presented too high/low which inhibits input (especially on iPad-safari/edge) to https://github.com/TriliumNext/trilium/issues/5706 +Migrated issue #1822 - OneNote import tool to https://github.com/TriliumNext/trilium/issues/5707 +Migrated issue #1824 - image colors become muted on a canvas note when dark theme is enabled to https://github.com/TriliumNext/trilium/issues/5708 +Migrated issue #1825 - Windows signing silently failing to https://github.com/TriliumNext/trilium/issues/5709 +Migrated issue #1826 - Inconsistent Find and Replace Behavior in Large Code Notes to https://github.com/TriliumNext/trilium/issues/5710 +Migrated issue #1848 - AI/LLM features shouldn't be made available (and appear broken) when non-enabled from Options to https://github.com/TriliumNext/trilium/issues/5711 +Migrated issue #1849 - Tooltip z-index is too low? to https://github.com/TriliumNext/trilium/issues/5712 +Migrated issue #1855 - Editable Toolbar to +Migrated issue #1856 - When using a custom theme, the #launcher-container is not scrollable on mobile devices. to https://github.com/TriliumNext/trilium/issues/5713 +Migrated issue #1857 - Syncronization inconsistencies/failures to +Migrated issue #1862 - Error starting TriliumNote server arm64 to https://github.com/TriliumNext/trilium/issues/5714 +Migrated issue #1874 - support NODE_EXTRA_CA_CERTS to https://github.com/TriliumNext/trilium/issues/5715 +Migrated issue #1875 - Title bar and tree panels' background displaying in black to https://github.com/TriliumNext/trilium/issues/5716 +Migrated issue #1877 - Data loss when Note triggers "automatic read-only" threshold to https://github.com/TriliumNext/trilium/issues/5717 +Migrated issue #1890 - Unsupported URL Type "workspace:": workspace:* to +Migrated issue #1894 - Attributes Dialogue Doesn't Display for existing attributes to https://github.com/TriliumNext/trilium/issues/5718 +Migrated issue #1912 - Feature Request: Support for Embedding YouTube Videos via iframe to https://github.com/TriliumNext/trilium/issues/5719 +Migrated issue #1914 - Inserts the internal trilium link in the incorrect position. to https://github.com/TriliumNext/trilium/issues/5720 +Migrated issue #1915 - MP4 audio not playable as preview to https://github.com/TriliumNext/trilium/issues/5721 +Migrated issue #1916 - LanguageTool integration to https://github.com/TriliumNext/trilium/issues/5722 +Migrated issue #1917 - import file size limit 250MB to https://github.com/TriliumNext/trilium/issues/5723 +Migrated issue #1919 - Display text note bookmarks in the right panel. to https://github.com/TriliumNext/trilium/issues/5724 +Migrated issue #1920 - Add TriliumNext to TrueNAS apps to https://github.com/TriliumNext/trilium/issues/5725 +Migrated issue #1934 - Question about file:\\\ embed to https://github.com/TriliumNext/trilium/issues/5726 +Migrated issue #1936 - Table borders to https://github.com/TriliumNext/trilium/issues/5727 +Migrated issue #1944 - Firefox android web-clipper not working to +Migrated issue #1945 - Copy link to note to https://github.com/TriliumNext/trilium/issues/5728 +Migrated issue #1946 - Firewall warning on corporate network to https://github.com/TriliumNext/trilium/issues/5729 +Migrated issue #1965 - Incomplete packaged-server build to https://github.com/TriliumNext/trilium/issues/5730 +Migrated issue #1968 - Feature Request [API]: Add getHoistedNote to Frontend Script API to https://github.com/TriliumNext/trilium/issues/5731 +Migrated issue #1969 - Multiple issues when importing into root note to https://github.com/TriliumNext/trilium/issues/5732 +Migrated issue #1983 - Windows Client Fails to Connect to Sync Server over HTTPS with Self-Signed Certificate to https://github.com/TriliumNext/trilium/issues/5733 +Migrated issue #1993 - Wrong URL when installing PWA when reverse proxied under non-root path to https://github.com/TriliumNext/trilium/issues/5734 +Migrated issue #2000 - Ctrl+F when a dialog is open opens different search dialog to https://github.com/TriliumNext/trilium/issues/5735 +Migrated issue #2002 - Address already in use. Unable to raise Trilium by calling from command line to https://github.com/TriliumNext/trilium/issues/5736 +Migrated issue #2004 - Missing week link when #enableWeekNotes to https://github.com/TriliumNext/trilium/issues/5737 +Migrated issue #2005 - (Feature request) Allow changing note color from tree to https://github.com/TriliumNext/trilium/issues/5738 +Migrated issue #2011 - Looking for advice on video lecture note taking. to https://github.com/TriliumNext/trilium/issues/5739 +Migrated issue #2012 - After reopening the last closed tab, navigation in the right pane panel stops working. to https://github.com/TriliumNext/trilium/issues/5740 +Migrated issue #2013 - The left panel remains fixed to https://github.com/TriliumNext/trilium/issues/5741 +Migrated issue #2017 - External link balloon popup stays visible when switching tabs to https://github.com/TriliumNext/trilium/issues/5742 +Migrated issue #2018 - "Choose note type" dialog not closable by escape key to https://github.com/TriliumNext/trilium/issues/5743 +Migrated issue #2026 - Database view to https://github.com/TriliumNext/trilium/issues/5744 +Migrated issue #2027 - Sorting selected text in notes alphabetically to https://github.com/TriliumNext/trilium/issues/5745 +Migrated issue #2031 - automatic text wrapping within container for canvas. to https://github.com/TriliumNext/trilium/issues/5746 +Migrated issue #2034 - Editable Toolbar to https://github.com/TriliumNext/trilium/issues/5747 +Migrated issue #2052 - linux/arm64/v8 for Docker to https://github.com/TriliumNext/trilium/issues/5748 +Migrated issue #2053 - Migrating from Trilium to +Migrated issue #2057 - Add new async/await functionality to https://github.com/TriliumNext/trilium/issues/5749 +Migrated issue #2058 - Add new async/await functionality to https://github.com/TriliumNext/trilium/issues/5750 +Migrated issue #2060 - Trilium.cc seems fraudulent to +Migrated issue #2070 - Linking to subtitles to https://github.com/TriliumNext/trilium/issues/5751 +Migrated issue #2073 - Help needed: how to use your ckeditor component separately? to +Migrated issue #2084 - Signing issues on Windows to https://github.com/TriliumNext/trilium/issues/5752 +Migrated issue #2085 - GPX track not rendering on geomap note to https://github.com/TriliumNext/trilium/issues/5753 +Migrated issue #2086 - Server creates json cookie file in sessions dir 1 per minute to https://github.com/TriliumNext/trilium/issues/5754 +Migrated issue #2090 - Latest server update breaks desktop app sync. to +Migrated issue #2093 - Unable to start to +Migrated issue #2094 - Latest Docker Image Crashing on Startup to https://github.com/TriliumNext/trilium/issues/5755 +Migrated issue #2095 - Support Note Map Type as Shared Page to https://github.com/TriliumNext/trilium/issues/5756 +Migrated issue #2097 - Desktop application not working on Debian 12 to https://github.com/TriliumNext/trilium/issues/5757 +Migrated issue #2098 - 0.94.0: Unable to access Trilium server not running at root URL to https://github.com/TriliumNext/trilium/issues/5758 +Migrated issue #2099 - 0.94.0: Unable to select text in owned attributes to https://github.com/TriliumNext/trilium/issues/5759 +Migrated issue #2102 - Login Mask double shown when using iOS Browser to https://github.com/TriliumNext/trilium/issues/5760 +Migrated issue #2103 - 0.94.0 Blank interface on startup to https://github.com/TriliumNext/trilium/issues/5761 +Migrated issue #2104 - Chat interface not showing properly in Firefox to https://github.com/TriliumNext/trilium/issues/5762 +Migrated issue #2105 - 0.94.0: error getting day node with ETAPI to https://github.com/TriliumNext/trilium/issues/5763 +Migrated issue #2108 - External links using fragment navigation are wrongly recognized as internal links to https://github.com/TriliumNext/trilium/issues/5764 +Migrated issue #2116 - Web-clipper to https://github.com/TriliumNext/trilium/issues/5765 +Migrated issue #2119 - Sync errors with sync version 35 due to LLM embeddings to https://github.com/TriliumNext/trilium/issues/5766 +Migrated issue #2120 - Copy paste of code is not visible anymore to https://github.com/TriliumNext/trilium/issues/5767 +Migrated issue #2121 - Ask for a "BaseUrl" to https://github.com/TriliumNext/trilium/issues/5768 +Migrated issue #2122 - White Screen after enabling LLM features. to https://github.com/TriliumNext/trilium/issues/5769 +Migrated issue #2124 - Share page images stretched vertically to https://github.com/TriliumNext/trilium/issues/5770 +Migrated issue #2125 - Other AI Moddels to +Migrated issue #2126 - Enhance Sharing Theme to https://github.com/TriliumNext/trilium/issues/5771 +Migrated issue #2128 - “Insert note after” long-press dialog doesn’t create Note to https://github.com/TriliumNext/trilium/issues/5772 +Migrated issue #2135 - Embedding Provider Order. Ollama to https://github.com/TriliumNext/trilium/issues/5773 +Migrated issue #2137 - 用dpanel升级后,启动报错 to https://github.com/TriliumNext/trilium/issues/5774 +Migrated issue #2138 - Strict SQLite tables to https://github.com/TriliumNext/trilium/issues/5775 +Migrated issue #2139 - Content disappears when inserting code block via Markdown formatting to https://github.com/TriliumNext/trilium/issues/5776 +Migrated issue #2142 - Share template falls back to default after updating to v0.94.0. to https://github.com/TriliumNext/trilium/issues/5777 +Migrated issue #2172 - Blank Window and ERR_CONNECTION_REFUSED on M1 macOS to https://github.com/TriliumNext/trilium/issues/5778 +Migrated issue #2173 - Failed to start client 0.94.0 under debian 12. to https://github.com/TriliumNext/trilium/issues/5779 +Migrated issue #2176 - Blank App after Update to v0.94.0 to https://github.com/TriliumNext/trilium/issues/5780 +Migrated issue #2178 - Parts of page content vanish when typing while selected text in code box to https://github.com/TriliumNext/trilium/issues/5781 +Migrated issue #2185 - Javascript GTK error : GTK 2/3 and GTK 4 used, GLIBC_2.38 not found to https://github.com/TriliumNext/trilium/issues/5782 +Migrated issue #2186 - Extend the `CodeMirror` class to preserve customizability with CodeMirror 6 to https://github.com/TriliumNext/trilium/issues/5783 +Migrated issue #2187 - Enhancement: Bookmark URL 1-Click Navigation to https://github.com/TriliumNext/trilium/issues/5784 +Migrated issue #2188 - Unable to select text in notes to https://github.com/TriliumNext/trilium/issues/5785 +Migrated issue #2189 - Regarding inactive members of the organization to https://github.com/TriliumNext/trilium/issues/5786 +Migrated issue #2191 - Text notes: selection gets incomplete when moving multiple lines up/down to https://github.com/TriliumNext/trilium/issues/5787 +Migrated issue #2196 - Web UI Timeout? to https://github.com/TriliumNext/trilium/issues/5788 +Migrated issue #2200 - Llama3.1 doesn't work to https://github.com/TriliumNext/trilium/issues/5789 +Migrated issue #2201 - Can't pull rootless to https://github.com/TriliumNext/trilium/issues/5790 +Migrated issue #2202 - Table with left or right alignment and width != 100% makes the next paragraphs displayed on the side of the table to https://github.com/TriliumNext/trilium/issues/5791 +Migrated issue #2203 - When editing table data in a text note, CKEditor 5 suddenly crashes. to https://github.com/TriliumNext/trilium/issues/5792 +Migrated issue #2207 - AI/LLM feature: allow manual input model names to https://github.com/TriliumNext/trilium/issues/5793 +Migrated issue #2221 - Dedicated mobile app with offline mode to https://github.com/TriliumNext/trilium/issues/5794 +Migrated issue #2233 - Allow dropping image attachments in without shrinking them (seperate from the setting) to https://github.com/TriliumNext/trilium/issues/5795 +Migrated issue #2235 - API Documentation links broken? to https://github.com/TriliumNext/trilium/issues/5796 +Migrated issue #2244 - 0.94.1: HTTP 500 error when opening AI/LLM settings page to https://github.com/TriliumNext/trilium/issues/5797 +Migrated issue #2246 - “Insert note after” long-press dialog doesn’t create Note #2128 to https://github.com/TriliumNext/trilium/issues/5798 +Migrated issue #2250 - Odd Hover Behavior on Links to https://github.com/TriliumNext/trilium/issues/5799 +Migrated issue #2251 - Vertical scroll incorrectly appears when page ends with horizontal line to https://github.com/TriliumNext/trilium/issues/5800 +Migrated issue #2252 - Sync of new CLients successfully, but no data to https://github.com/TriliumNext/trilium/issues/5801 +Migrated issue #2256 - Documentation on Ollama AI/ML integration? to https://github.com/TriliumNext/trilium/issues/5802 +Migrated issue #2257 - JavaScript heap out of memory to https://github.com/TriliumNext/trilium/issues/5803 +Migrated issue #2268 - Fedora42 KDE desktop syncing issues with the app to https://github.com/TriliumNext/trilium/issues/5804 +Migrated issue #2280 - Mermaid notes sluggish to https://github.com/TriliumNext/trilium/issues/5805 +Migrated issue #2294 - Model selection not working until restart to https://github.com/TriliumNext/trilium/issues/5806 +Migrated issue #2296 - Sync issues to https://github.com/TriliumNext/trilium/issues/5807 +Migrated issue #2301 - Double click image to show image fullscreen to https://github.com/TriliumNext/trilium/issues/5808 +Migrated issue #2313 - Tray and Menu Favorites icons wrong after 0.94.1 install ??? to +Migrated issue #2321 - Every empty note has noses content to https://github.com/TriliumNext/trilium/issues/5809 +Migrated issue #2325 - .deb for ARM is not opening to https://github.com/TriliumNext/trilium/issues/5810 +Migrated issue #2328 - 0.95 Synchronization error to https://github.com/TriliumNext/trilium/issues/5811 +Migrated issue #2332 - When editing a note in Linux, middle-clicking a note title in tree pane triggers a paste action to https://github.com/TriliumNext/trilium/issues/5812 +Migrated issue #2333 - Custom icons in shares (+ optional note iconpicker) to https://github.com/TriliumNext/trilium/issues/5813 +Migrated issue #2334 - LLM Tool calls not correctly identified to https://github.com/TriliumNext/trilium/issues/5814 +Migrated issue #2335 - error: 404 Not Found Router not found for request GET //api/setup/status to https://github.com/TriliumNext/trilium/issues/5815 +Migrated issue #2337 - Version .95 won't open on Linux Mint 21.1 to https://github.com/TriliumNext/trilium/issues/5816 +Migrated issue #2339 - Windows V0.95.0 Client Failed to sync with server to https://github.com/TriliumNext/trilium/issues/5817 +Migrated issue #2340 - Converting an attachment to a note breaks links to https://github.com/TriliumNext/trilium/issues/5818 +Migrated issue #2346 - V0.95.0 Custom share theme conflicts with the newly updated Trilium.Rocks share theme to +Migrated issue #2353 - MIME type for the style was rejected for the custom sharing page to https://github.com/TriliumNext/trilium/issues/5819 +Migrated issue #2354 - Option to always show the "Hoist note" button to +Migrated issue #2359 - Where has the AI configuration page gone ? to https://github.com/TriliumNext/trilium/issues/5820 +Migrated issue #2360 - Custom Table of Contents (TOC) Headers to +Migrated issue #2369 - Migrating to Trillium from SilverBullet (wikilinks support) to https://github.com/TriliumNext/trilium/issues/5821 diff --git a/scripts/port-discussions.ts b/scripts/port-discussions.ts new file mode 100644 index 000000000..9b4a83221 --- /dev/null +++ b/scripts/port-discussions.ts @@ -0,0 +1,110 @@ +/** + * @module + * + * Goes through all discussions in the source repository and transfers them to the target repository. + * + * Limitations: + * - Upon encountering a locked discussion, the script will fail. Make sure to unlock discussions before running the script. + */ + +import { type BrowserContext, chromium } from 'playwright'; +import { createWriteStream, existsSync, readFileSync, writeFileSync } from 'fs'; + +const SOURCE_URL = "https://github.com/TriliumNext/Trilium"; +const TARGET_REPOSITORY_ID = 92111509; + +const fsLog = createWriteStream('port-discussions.log', { flags: 'a' }); + +async function login(context: BrowserContext) { + const page = await context.newPage(); + await page.goto('https://github.com/login'); + + console.log("👤 Please log in manually in the opened browser..."); + await page.waitForNavigation({ url: 'https://github.com/' }); // Wait for login + + // Save storage state (cookies, localStorage, etc.) + const storage = await context.storageState(); + writeFileSync('auth.json', JSON.stringify(storage)) + await page.close(); +} + +async function portIssue(issue: string, context: BrowserContext) { + const page = await context.newPage(); + await page.goto(`${SOURCE_URL}/discussions/${issue}`); + + const button = page.locator("#dialog-show-discussion-transfer-conversation"); + await button.click(); + + const modal = page.locator("#discussion-transfer-conversation"); + const modalContent = page.locator("#transfer-candidate-repos"); + await modalContent.waitFor({ state: 'visible' }); + + modalContent.locator(`#transfer_repository_${TARGET_REPOSITORY_ID}`).click(); + const navigationPromise = page.waitForNavigation({ + waitUntil: "domcontentloaded" + }); + + const submitButton = modal.locator(`button[type="submit"]`); + await submitButton.waitFor({ state: 'attached' }); + await submitButton.click(); + + await navigationPromise; + console.log(`✅ Discussion ${issue} has been transferred to the target repository.`); + fsLog.write(`Transferred discussion ${issue} to ${page.url()}\n`); + await page.waitForTimeout(2000); // Wait for a second to ensure the transfer is complete + await page.close(); +} + +async function getFirstPageResults(context: BrowserContext) { + const page = await context.newPage(); + await page.goto(SOURCE_URL + "/discussions"); + + // Wait for the discussions to load + const allDiscussionLinks = (await (page.locator(`a[data-hovercard-type="discussion"]`).all())); + let ids: string[] = []; + for (const link of allDiscussionLinks) { + const url = await link.getAttribute('href'); + const number = url?.match(/\/discussions\/(\d+)/)?.[1]; + ids.push(number); + } + console.log(`Found ${ids.length} discussions.`); + await page.close(); + return ids; +} + +(async () => { + const browser = await chromium.launch({ headless: false }); // show browser + let storageState = undefined; + if (existsSync('auth.json')) { + console.log("🔑 Using existing authentication state..."); + storageState = JSON.parse(readFileSync('auth.json', 'utf-8')); + } + + const context = await browser.newContext({ storageState }); + if (!storageState) { + await login(context); + } + + const travelledIds: string[] = []; + let ids = await getFirstPageResults(context); + + while (ids.length > 0) { + for (const id of ids) { + try { + if (travelledIds.includes(id)) { + console.log(`Discussion ${id} has already been transferred.`); + process.exit(2); + } + + await portIssue(id, context); + travelledIds.push(id); + } catch (error) { + console.error(`❌ Error transferring discussion ${id}:`, error); + process.exit(1); + } + } + + ids = await getFirstPageResults(context); + } + await browser.close(); +})(); diff --git a/scripts/port-issues.ts b/scripts/port-issues.ts new file mode 100644 index 000000000..433087910 --- /dev/null +++ b/scripts/port-issues.ts @@ -0,0 +1,27 @@ +import { spawnSync } from "node:child_process"; +import fs from "node:fs"; + +const result = spawnSync("gh issue list -s all -L 5000 --json number,title", { shell: true }); +if (result.error) { + console.error("Error executing command:", result.error); + process.exit(1); +} +const items = JSON.parse(result.stdout.toString()) as { number: number; title: string }[]; + +const logFile = fs.openSync("issues.txt", "a"); + +for (const item of items.reverse()) { + console.log("Migrating ", item.number); + + const issueContent = spawnSync(`gh issue transfer ${item.number} TriliumNext/trilium`, { shell: true }); + if (issueContent.error) { + console.error(`Error transferring issue #${item.number}:`, issueContent.error); + fs.writeSync(logFile, `Error transferring issue #${item.number}: ${issueContent.error}\n`); + process.exit(1); + } + + const link = issueContent.stdout.toString().trim(); + fs.writeSync(logFile, `Migrated issue #${item.number} - ${item.title} to ${link}\n`); +} + +fs.closeSync(logFile); diff --git a/tsconfig.json b/tsconfig.json index db83e7978..481f2f1b5 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -59,6 +59,12 @@ }, { "path": "./packages/share-theme" + }, + { + "path": "./apps/website" + }, + { + "path": "./apps/desktop-e2e" } ] }