diff --git a/.github/workflows/update-windows-info.yml b/.github/workflows/update-windows-info.yml
index 55ee542..7a6a22b 100644
--- a/.github/workflows/update-windows-info.yml
+++ b/.github/workflows/update-windows-info.yml
@@ -64,7 +64,7 @@ jobs:
Set-Content -Path $DocPath -Value $Content
env:
- AUTOMATION_MARKER: ''
+ AUTOMATION_MARKER: '{/* AUTOMATION MARKER FOR WORKFLOW */}'
- name: Commit and push
id: commit-and-push
run: |
diff --git a/docs/android/access-vault.md b/docs/android/access-vault.mdx
similarity index 94%
rename from docs/android/access-vault.md
rename to docs/android/access-vault.mdx
index 3dc0134..d275077 100644
--- a/docs/android/access-vault.md
+++ b/docs/android/access-vault.mdx
@@ -8,7 +8,7 @@ sidebar_position: 4
This section shows you how to work with a vault like view its content, move files or access it with other applications.
-## Unlock Vault {#unlock-vault}
+## Unlock Vault {/* #unlock-vault */}
If you want to access the data inside a vault, you have to unlock it by selecting it.
@@ -32,7 +32,7 @@ After providing the credentials, the vault gets unlocked and opened.
You're now able to edit the content of the vault.
-## Lock Vault {#lock-vault}
+## Lock Vault {/* #lock-vault */}
To lock an unlocked vault, there are several ways to do this:
@@ -57,7 +57,7 @@ All of the possibilities will result in the locked vault.
The auto-lock timeout specified in the settings will lock the vault if Cryptomator is in background. Furthermore if not changed in settings, the vault gets locked if the screen turns off.
:::
-## View and Edit File {#view-and-edit-file}
+## View and Edit File {/* #view-and-edit-file */}
Start the view and edit process by clicking on a file.
Finish the editing or viewing using the back button of the device until you're back in Cryptomator.
@@ -67,7 +67,7 @@ If the content has changed, the upload process starts.
-## Rename File or Folder {#rename-file-or-folder}
+## Rename File or Folder {/* #rename-file-or-folder */}
To change the name of a specific file or folder in Cryptomator, you select the `V` ① next to the file or folder and choose *Rename* ②.
@@ -83,7 +83,7 @@ Choose a new name and confirm using the `RENAME` button.
-## Move File or Folder {#move-file-or-folder}
+## Move File or Folder {/* #move-file-or-folder */}
To move a file or a folder into another folder, you select the `V` next to the file or folder ① and choose *Move* ②.
@@ -112,7 +112,7 @@ While moving, you can use the ③ button to create a new folder in the current f
-## Delete File or Folder {#delete-file-or-folder}
+## Delete File or Folder {/* #delete-file-or-folder */}
To delete a specific file or folder in Cryptomator, you select the `V` next to the file or folder ① and choose *Delete* ②.
@@ -133,7 +133,7 @@ Confirm the deletion process using the `DELETE` button.
By deleting a folder, all subfolders and files inside are deleted recursively.
:::
-## Export File or Folder {#export-file-or-folder}
+## Export File or Folder {/* #export-file-or-folder */}
To export a specific file or folder in Cryptomator, you select the `V` next to the file or folder ① and choose *Export* ②.
@@ -150,7 +150,7 @@ Choose the target location where the file or folder should be exported to.
-## Share File with Other App {#share-file-with-other-app}
+## Share File with Other App {/* #share-file-with-other-app */}
To share a specific file or folder in Cryptomator with another app, you select the `V` next to the file or folder ① and choose Share ②.
@@ -169,7 +169,7 @@ Choose the target app in which you will use the file or folder.
By sharing a file or folder from Cryptomator with Cryptomator, you can copy content from one vault to another one.
:::
-## Share File with Cryptomator {#share-file-with-cryptomator}
+## Share File with Cryptomator {/* #share-file-with-cryptomator */}
You can share files from another app with Cryptomator.
We use as example the Files app from Android.
@@ -195,7 +195,7 @@ Then the encryption and upload starts.
-## Search in Folder {#search-in-folder}
+## Search in Folder {/* #search-in-folder */}
Search for files or folders within the same folder using the magnifier ①.
@@ -222,13 +222,13 @@ In the settings there are two options that influence the behavior of the search:
For more information, see the Settings chapter.
-## Sort Folder by… {#sort-folder-by}
+## Sort Folder by… {/* #sort-folder-by */}
-## Fast Scroll {#fast-scroll}
+## Fast Scroll {/* #fast-scroll */}
diff --git a/docs/android/cloud-management.md b/docs/android/cloud-management.mdx
similarity index 91%
rename from docs/android/cloud-management.md
rename to docs/android/cloud-management.mdx
index 66dc715..fb13683 100644
--- a/docs/android/cloud-management.md
+++ b/docs/android/cloud-management.mdx
@@ -22,29 +22,29 @@ You can't connect to (for example) two different *Dropbox* accounts.
If the provider requested permission to access your online files you can remove Cryptomator permissions from your online storage account at any time.
Please keep in mind that Cryptomator then cannot connect to your vault anymore.
-## Login Dropbox {#login-dropbox}
+## Login Dropbox {/* #login-dropbox */}
-## Login Google Drive {#login-google-drive}
+## Login Google Drive {/* #login-google-drive */}
-## Login OneDrive {#login-onedrive}
+## Login OneDrive {/* #login-onedrive */}
-## Login WebDAV {#login-webdav}
+## Login WebDAV {/* #login-webdav */}
-Please see [Cloud Services With WebDAV Support](/docs/misc/supported-cloud-services.md#cloud-services-with-webdav-support) for a non-exhaustive list of Cloud Services and information about accessing them with WebDAV.
+Please see [Cloud Services With WebDAV Support](/docs/misc/supported-cloud-services.mdx#cloud-services-with-webdav-support) for a non-exhaustive list of Cloud Services and information about accessing them with WebDAV.
@@ -56,7 +56,7 @@ Please see [Cloud Services With WebDAV Support](/docs/misc/supported-cloud-servi
While creating the WebDAV connection, please make sure to add the root of the accessible storage and don't navigate directly into the vault.
:::
-## Login S3 {#login-s3}
+## Login S3 {/* #login-s3 */}
Generate a key that has permissions "Allow List All Bucket Names". (AWS root users have this by default and [this permission may not be necessary in the future](https://github.com/cryptomator/android/issues/339).)
@@ -66,7 +66,7 @@ Generate a key that has permissions "Allow List All Bucket Names". (AWS root use
-## Login Local Storage {#login-local-storage}
+## Login Local Storage {/* #login-local-storage */}
The following pictures describes how to setup a location to access vaults stored on the internal storage of the device (the same applies for vaults located e.g. on a SD card):
diff --git a/docs/android/index.md b/docs/android/index.mdx
similarity index 100%
rename from docs/android/index.md
rename to docs/android/index.mdx
diff --git a/docs/android/settings.md b/docs/android/settings.mdx
similarity index 89%
rename from docs/android/settings.md
rename to docs/android/settings.mdx
index 49d14ce..d1a650e 100644
--- a/docs/android/settings.md
+++ b/docs/android/settings.mdx
@@ -9,7 +9,7 @@ sidebar_position: 5
You can configure Cryptomator to your needs.
This section provides an overview of the different settings.
-## General Settings {#general-settings}
+## General Settings {/* #general-settings */}
After pressing the three dots ① and clicking on `Settings`, you will find options to customize Cryptomator.
@@ -18,7 +18,7 @@ After pressing the three dots ① and clicking on `Settings`, you will find opti
-### Cloud Services {#cloud-services}
+### Cloud Services {/* #cloud-services */}
This setting lists all Cloud Services. When pressing on a service, the authentication starts or if you're already authenticated, you will be logged out.
@@ -26,7 +26,7 @@ This setting lists all Cloud Services. When pressing on a service, the authentic
-### Fingerprint {#fingerprint}
+### Fingerprint {/* #fingerprint */}
:::note
This setting is only available if your device supports the fingerprint authentication.
@@ -49,7 +49,7 @@ After enabling, you have to unlock the vault using the password.
To have access to the key stored in the keystore, you have to authenticate against the system using the fingerprint.
-### Block App When Obscured {#block-app-when-obscured}
+### Block App When Obscured {/* #block-app-when-obscured */}
Under certain circumstances, Cryptomator for Android may not respond to touches.
@@ -76,7 +76,7 @@ If you see this dialog, some app is able to draw over Cryptomator:
-### Screen Security {#screen-security}
+### Screen Security {/* #screen-security */}
Android provides the possibility to prevent the system and other apps from doing screenshots, screen recordings etc. while Cryptomator is active.
This feature is very important because it prevents other apps from reading data across the screen.
@@ -86,7 +86,7 @@ For some devices, e.g. a Chromebook with a second display or to create a screens
Read more: [FLAG*SECURE](https://developer.android.com/reference/android/view/Display.html#FLAG*SECURE)
-### Style {#style}
+### Style {/* #style */}
You can choose between the following three styles:
@@ -99,7 +99,7 @@ You can choose between the following three styles:
-## Search {#search}
+## Search {/* #search */}
You can use the magnifier inside the cloud node list to search for specific nodes.
Thereby there are two settings:
@@ -109,7 +109,7 @@ Thereby there are two settings:
both are described in the following chapters.
-### Live Search {#live-search}
+### Live Search {/* #live-search */}
If this setting is enabled, the search mode is `live`.
That means, the search starts immediately after entering the search pattern.
@@ -120,7 +120,7 @@ That means, the search starts immediately after entering the search pattern.
If it is disabled, you have to use the magnifier or the enter button in your keyboard to start the search.
-### Search using glob pattern matching {#search-using-glob-pattern-matching}
+### Search using glob pattern matching {/* #search-using-glob-pattern-matching */}
If this setting is enabled, you have to enter a glob pattern into the search bar.
@@ -131,7 +131,7 @@ If this setting is enabled, you have to enter a glob pattern into the search bar
If it is disabled, the beginning of the cloud node names must match the entered text. Upper and lower case is not relevant in this option.
-## Automatic Locking {#automatic-locking}
+## Automatic Locking {/* #automatic-locking */}
If a vault is unlocked and Cryptomator isn't active, the automatic locking timeout is counting down.
After the timeout expires, all vaults get locked.
@@ -145,7 +145,7 @@ You can choose between:
`When screen is disabled` can be deactivated so that the vaults don't get locked when the screen locks.
-## Automatic Photo Upload {#automatic-photo-upload}
+## Automatic Photo Upload {/* #automatic-photo-upload */}
If the `Automatic photo upload` is enabled, all photos taken will be marked for upload and after the specified vault gets unlocked again, the upload starts.
@@ -156,12 +156,12 @@ Which pictures will be tracked, depends on the Android version on your phone:
* Nougat (API level 24 or 7.x) and later: All images which Android adds to the gallery will be uploaded to the vault
* Pre-Nougat: Only the images created with the camera will be uploaded to the vault
-## Cache {#cache}
+## Cache {/* #cache */}
Introduced in version 1.5.0, if enabled, all downloaded files will be cached (encrypted) on the file system. Further downloads will only verify with the server, that the cached file is still the latest version.
If so it will not be downloaded again but directly retrieved from the file system. The cache is implemented using a least recently used mechanism, that means, the oldest entry will be overwritten if the max cache size is reached.
-### Cache Size Per Cloud {#cache-size-per-cloud}
+### Cache Size Per Cloud {/* #cache-size-per-cloud */}
Using this setting, you can specify the total max cache size per Cloud Service.
@@ -178,38 +178,38 @@ You can choose between the following options:
The more memory is given to caching, the greater the convenience factor. However, this memory can be used up to the maximum on the system and is then no longer available.
:::
-### Clear Cache {#clear-cache}
+### Clear Cache {/* #clear-cache */}
This setting will flush all cached files.
-## Support {#support}
+## Support {/* #support */}
If you have problems with the app you can enable the `Debug mode`.
After reproducing the problem, you can disable the `Debug mode` again and `Send log file`.
-## Advanced Settings {#advanced-settings}
+## Advanced Settings {/* #advanced-settings */}
-### Workaround Opening Microsoft Files {#workaround-opening-microsoft-files}
+### Workaround Opening Microsoft Files {/* #workaround-opening-microsoft-files */}
With this setting enabled, files are opened in Microsoft applications with write permission.
Due to a bug in Microsoft apps, the file to be edited must be shared with these apps in a public media folder on the device. After Cryptomator is resumed, the publicly accessible file is deleted again but Cryptomator cannot influence what has happened to this file in the meantime. Make sure that you are aware of this behavior when activating this option. This will only apply to Microsoft file types.
-### Keep Unlocked {#keep-unlocked}
+### Keep Unlocked {/* #keep-unlocked */}
With this setting enabled, all vaults remain unlocked when a file is opened by a third-party application, which can be useful in combination with the "Workaround Opening Microsoft Files".
-### Accelerate Unlock {#accelerate-unlock}
+### Accelerate Unlock {/* #accelerate-unlock */}
Download files to unlock the vault in the background while prompted to enter the password or biometric authentication. Keep it activated unless unlocking the vault does not work.
-## Version {#version}
+## Version {/* #version */}
This setting displays the current version of this app.
The following sub settings are only available, if you're using the APK-Store variant of Cryptomator and not the Google Play Store one.
-### Update Check Interval {#update-check-interval}
+### Update Check Interval {/* #update-check-interval */}
Using the specified interval below, the app checks if the latest version is installed.
@@ -220,6 +220,6 @@ You can choose between the following options:
* Once a month
* Never
-### Check For Updates {#check-for-updates}
+### Check For Updates {/* #check-for-updates */}
This setting displays the timestamp of the latest update check. You can click on this setting to trigger a update check.
diff --git a/docs/android/setup.md b/docs/android/setup.mdx
similarity index 88%
rename from docs/android/setup.md
rename to docs/android/setup.mdx
index a4e79a9..217ef6e 100644
--- a/docs/android/setup.md
+++ b/docs/android/setup.mdx
@@ -16,16 +16,16 @@ You can get Cryptomator for Android on:
No matter which variant of the app you choose: The key functionality of Cryptomator stays the same.
-The variants only differ in terms of the [supported Cloud Services](/docs/misc/supported-cloud-services.md), the way they are downloaded and the way a license is acquired.
+The variants only differ in terms of the [supported Cloud Services](/docs/misc/supported-cloud-services.mdx), the way they are downloaded and the way a license is acquired.
If you have access to the *Google Play Store* on your device, **we recommend using the [Google Play Store variant](#google-play-store) of Cryptomator.**
Otherwise, please keep reading.
-## Differences Between Variants and How to Choose {#differences-between-variants-and-how-to-choose}
+## Differences Between Variants and How to Choose {/* #differences-between-variants-and-how-to-choose */}
While all variants of the Cryptomator for Android app have the same key functionality, you should make sure to pick the perfect variant for you:
-Most users will want to use the [Google Play Store](#google-play-store) or the [APK Store](#apk-store) as installation type. Both variants have access to all [supported Cloud Services](/docs/misc/supported-cloud-services.md) and allow for maximum flexibility. While the *Google Play Store variant* can be purchased and downloaded via its *Google Play Store* page, the *APK Store variant* and the accompanying license must be obtained via our website.
+Most users will want to use the [Google Play Store](#google-play-store) or the [APK Store](#apk-store) as installation type. Both variants have access to all [supported Cloud Services](/docs/misc/supported-cloud-services.mdx) and allow for maximum flexibility. While the *Google Play Store variant* can be purchased and downloaded via its *Google Play Store* page, the *APK Store variant* and the accompanying license must be obtained via our website.
The [Cryptomator F-Droid repo variant](#cryptomator-f-droid-repository) and [Main F-Droid repo variant](#main-f-droid-repository) both **don't** support Google Drive as Cloud Service because Google Drive requires proprietary dependencies which doesn’t fit the spirit of F-Droid. Additionally the *Main F-Droid repo variant* **doesn’t** support **any** Cloud Services that require an API key.
@@ -38,9 +38,9 @@ If you have access to the *Google Play Store* on your device, **we recommend usi
for the best user experience and maximum flexibility.
:::
-To learn more about the supported Cloud Services, please see [Supported Cloud Services](/docs/misc/supported-cloud-services.md).
+To learn more about the supported Cloud Services, please see [Supported Cloud Services](/docs/misc/supported-cloud-services.mdx).
-## Google Play Store {#google-play-store}
+## Google Play Store {/* #google-play-store */}
:::note
You can buy and download the *Google Play Store variant* of Cryptomator here:
@@ -53,7 +53,7 @@ After buying the app using the *Google Play Store,* it can be used with any numb
Sometimes the *Google Play Store* has problems to recognize that the app was already bought and asks you to buy again the app, see this topic to recover from this problem: [On how many devices can the app be installed using Google Play Store?](https://community.cryptomator.org/t/on-how-many-devices-can-the-app-be-installed-using-google-play-store/6129)
-## APK Store {#apk-store}
+## APK Store {/* #apk-store */}
:::note
You can buy a license for the app and download the *APK Store variant* of Cryptomator here:
@@ -64,11 +64,11 @@ The *APK store variant* can be installed from the [APK Store](https://cryptomato
It is possible that the app in which you clicked on the APK is asking for "Install from Unknown Sources" permission, this is normal and must be activated for a short time (it is recommended to remove the permission afterwards).
-This variant does include an automatic updater that periodically checks if there is a newer version of this app, and if so, it can be downloaded and installed directly from within the app. Using the [Update Check Interval](settings.md#update-check-interval) in the Cryptomator settings, you can specify how often the update check is executed.
+This variant does include an automatic updater that periodically checks if there is a newer version of this app, and if so, it can be downloaded and installed directly from within the app. Using the [Update Check Interval](settings.mdx#update-check-interval) in the Cryptomator settings, you can specify how often the update check is executed.
As this variant is not bought using the *Google Play Store* you need to buy a license key from the [APK Store](https://cryptomator.org/android/) on our website. After Cryptomator is installed, you have to enter this key. This can be done by copying and pasting the license into the field when asked for it or by clicking on the link starting with `cryptomator://license/YOUR_LICENSE_KEY`.
-## Cryptomator F-Droid Repository {#cryptomator-f-droid-repository}
+## Cryptomator F-Droid Repository {/* #cryptomator-f-droid-repository */}
:::note
You can buy a license for the *Cryptomator F-Droid repository variant* of Cryptomator here:
@@ -85,7 +85,7 @@ repository to the F-Droid app by opening this link on the device or by scanning
As with the *APK Store variant,* since this app variant is not purchased via the *Google Play Store,* you need to buy a license key from the [APK Store](https://cryptomator.org/android/) on our website. After Cryptomator is installed, you have to enter this key. This can be done by copying and pasting the license into the field when asked for it or by clicking on the link starting with `cryptomator://license/YOUR_LICENSE_KEY`.
-## Main F-Droid Repository {#main-f-droid-repository}
+## Main F-Droid Repository {/* #main-f-droid-repository */}
:::note
You can buy a license for the *Main F-Droid repository variant* of Cryptomator here:
@@ -101,7 +101,7 @@ The *Main F-Droid repository variant* can be installed directly from the [Main F
Unlike all other variants of Cryptomator for Android, this variant has its own package name: `org.cryptomator.lite`. It means that you cannot, intentionally or unintentionally, simply switch between this and the other variants. It requires to setup the app again. The reason we decided to do this is that other Cryptomator variants already exist in some popular F-Droid repositories, and if we hadn’t decided to do this, there could have been an unwanted variant switch.
-## Accrescent {#accrescent}
+## Accrescent {/* #accrescent */}
:::note
You can buy a license for the *Accrescent* variant of Cryptomator here:
@@ -115,11 +115,11 @@ You can download the *Accrescent* variant of Cryptomator here:
As this variant is not bought using the *Google Play Store* you need to buy a license key from the [APK Store](https://cryptomator.org/android/) on our website. After Cryptomator is installed, you have to enter this key. This can be done by copying and pasting the license into the field when asked for it or by clicking on the link starting with `cryptomator://license/YOUR_LICENSE_KEY`.
-## Requirements {#requirements}
+## Requirements {/* #requirements */}
Requires Android 8.0 or later.
-## Update Rollout {#update-rollout}
+## Update Rollout {/* #update-rollout */}
The timing of the update depends on your installed variant:
diff --git a/docs/android/vault-management.md b/docs/android/vault-management.mdx
similarity index 91%
rename from docs/android/vault-management.md
rename to docs/android/vault-management.mdx
index f2cdf24..ae24615 100644
--- a/docs/android/vault-management.md
+++ b/docs/android/vault-management.mdx
@@ -13,7 +13,7 @@ Only Cryptomator can decrypt the vault's contents when you unlock it using your
Cryptomator for Android supports various storage locations including local device storage, Dropbox, Google Drive, OneDrive, and any cloud service that offers WebDAV access.
This allows you to securely access your encrypted files from anywhere while maintaining full control over your data.
-## Create a New Vault {#create-a-new-vault}
+## Create a New Vault {/* #create-a-new-vault */}
To create a new vault, click on the plus sign ① and choose *Create new vault* ② in the next screen.
@@ -32,13 +32,13 @@ Choose between *Dropbox*, *Google Drive*, *OneDrive* (works also with *OneDrive
If your desired provider is not listed and offers WebDAV access, please select *WebDAV* as the storage location of your vault.
-Please see [Cloud Services With WebDAV Support](/docs/misc/supported-cloud-services.md#cloud-services-with-webdav-support) for a non-exhaustive list of Cloud Services and information about accessing them with WebDAV.
+Please see [Cloud Services With WebDAV Support](/docs/misc/supported-cloud-services.mdx#cloud-services-with-webdav-support) for a non-exhaustive list of Cloud Services and information about accessing them with WebDAV.
-If not already done, you have to create the connection between the Cryptomator app and your storage provider account. Please follow the instructions in the [Cloud Management](cloud-management.md) chapter and continue later here.
+If not already done, you have to create the connection between the Cryptomator app and your storage provider account. Please follow the instructions in the [Cloud Management](cloud-management.mdx) chapter and continue later here.
Now that you've established a connection, you'll add the existing vault.
@@ -64,7 +64,7 @@ Basically, you have the whole Unicode for choosing a password including non-prin
:::warning
You have to remember this password at all times because there is **no way to access your data if you forget your password**.
-Choose a [good password](/docs/security/best-practices.md#good-passwords) to make your data secure.
+Choose a [good password](/docs/security/best-practices.mdx#good-passwords) to make your data secure.
:::
After you have confirmed your password, the vault is created.
@@ -75,7 +75,7 @@ You will find it now on the start page of your Cryptomator app, where you can op
-## Add Existing Vaults {#add-existing-vaults}
+## Add Existing Vaults {/* #add-existing-vaults */}
To add an existing vault, click on the plus sign ① and choose *Add existing vault* ② in the next screen.
@@ -90,13 +90,13 @@ Choose between *Dropbox*, *Google Drive*, *OneDrive* (works also with *OneDrive
If your desired provider is not listed and offers WebDAV access, please select *WebDAV* as the storage location of your vault.
-Please see [Cloud Services With WebDAV Support](/docs/misc/supported-cloud-services.md#cloud-services-with-webdav-support) for a non-exhaustive list of Cloud Services and information about accessing them with WebDAV.
+Please see [Cloud Services With WebDAV Support](/docs/misc/supported-cloud-services.mdx#cloud-services-with-webdav-support) for a non-exhaustive list of Cloud Services and information about accessing them with WebDAV.
-If not already done, you have to create the connection between the Cryptomator app and your storage provider account. Please follow the instructions in the [Cloud Management](cloud-management.md) chapter and continue later here.
+If not already done, you have to create the connection between the Cryptomator app and your storage provider account. Please follow the instructions in the [Cloud Management](cloud-management.mdx) chapter and continue later here.
Now that you've established a connection, you'll add the existing vault.
@@ -120,7 +120,7 @@ You will find it now on the start page of your Cryptomator app, where you can op
-## Remove Vaults {#remove-vaults}
+## Remove Vaults {/* #remove-vaults */}
If you want a specific vault to stop being displayed in Cryptomator, you select the `V` next to the vault ① and choose *Remove* ②.
@@ -141,7 +141,7 @@ By removing a vault, it is only removed from the list but not deleted in the clo
You can re-add the vault afterwards.
:::
-## Change Vault Password {#change-vault-password}
+## Change Vault Password {/* #change-vault-password */}
If you want change the password of a specific vault in Cryptomator, you select the `V` next to the vault ① and choose *Change password* ②.
@@ -159,7 +159,7 @@ Basically, you have the whole Unicode for choosing a password including non-prin
:::warning
You have to remember this password at all times because there is **no way to access your data if you forget your password**.
-Choose a [good password](/docs/security/best-practices.md#good-passwords) to make your data secure.
+Choose a [good password](/docs/security/best-practices.mdx#good-passwords) to make your data secure.
:::
Start the process using the `CHANGE PASSWORD` button.
@@ -177,7 +177,7 @@ The actual files will not get re-encrypted, meaning you can not upgrade a weak p
If you like to encrypt your vault files with a new, stronger password, you need to create a new vault and copy the data from the old to the new one. Make sure to wipe all backups of the old vault afterwards.
-## Rename Vault {#rename-vault}
+## Rename Vault {/* #rename-vault */}
If you want to change the name of a specific vault in Cryptomator, you select the `V` next to the vault ① and choose *Rename* ②.
@@ -193,7 +193,7 @@ Choose a new name and confirm using the `RENAME` button.
-## Change Vault Position {#change-vault-position}
+## Change Vault Position {/* #change-vault-position */}
If you want to change the position of a specific vault in the vault list in Cryptomator, long-press on the vault and drag it to the desired position in the pressed state:
diff --git a/docs/desktop/accessing-vaults.md b/docs/desktop/accessing-vaults.mdx
similarity index 83%
rename from docs/desktop/accessing-vaults.md
rename to docs/desktop/accessing-vaults.mdx
index f8ca173..6c71857 100644
--- a/docs/desktop/accessing-vaults.md
+++ b/docs/desktop/accessing-vaults.mdx
@@ -10,7 +10,7 @@ You can only access decrypted files of a vault if you can unlock it. Unlocking a
-## Unlocking a Vault {#unlocking-a-vault}
+## Unlocking a Vault {/* #unlocking-a-vault */}
1. Select the vault you wish to unlock in the vault list.
2. Click on the large `Unlock` button in the vault detail view of the Cryptomator window.
@@ -22,7 +22,7 @@ You can only access decrypted files of a vault if you can unlock it. Unlocking a
:::note
You can store the password in your operating system's keychain by checking the "Remember password" checkbox.
With a saved password, you can unlock your vaults without typing a password on every unlock.
-For more information, see the [Storing Passwords](/docs/desktop/password-and-recovery-key.md#storing-passwords) section.
+For more information, see the [Storing Passwords](/docs/desktop/password-and-recovery-key.mdx#storing-passwords) section.
:::warning
Only store your password in the system's keychain on trusted devices.
@@ -34,16 +34,16 @@ You can close the success window by clicking `Done`, or click `Reveal Vault` to
-## Locking a Vault {#locking-a-vault}
+## Locking a Vault {/* #locking-a-vault */}
To lock a vault, simply click `Lock` and the virtual drive will disappear or render empty. Your files remain encrypted at the vault's location.
-## Manage Files and Folders in Your Vault {#manage-files-and-folders-in-your-vault}
+## Manage Files and Folders in Your Vault {/* #manage-files-and-folders-in-your-vault */}
By default, a vault's content will be accessible via an attached virtual drive on your PC.
So, you can manage files and folders in your unlocked vault just like you do on any other hard drive or USB drive.
-Alternatively, a vault's content can be accessed via a directory or a WebDAV server by changing its [volume type](volume-type.md).
+Alternatively, a vault's content can be accessed via a directory or a WebDAV server by changing its [volume type](volume-type.mdx).
Click on `Reveal Drive` in the Cryptomator window to open the mount location using the default file manager (Windows Explorer, Finder, …).
:::note
@@ -56,17 +56,17 @@ Even though your files are shown unencrypted in the virtual drive, they are not
On Windows, you can choose the drive letter of the virtual drive for each vault using advanced vault options.
:::
-## Locate Encrypted File {#locate-encrypted-file}
+## Locate Encrypted File {/* #locate-encrypted-file */}
-See [Locate Encrypted File](/docs/desktop/encrypted-file-names.md#locate-encrypted-file) in the Encrypted File Names section.
+See [Locate Encrypted File](/docs/desktop/encrypted-file-names.mdx#locate-encrypted-file) in the Encrypted File Names section.
-## File System Case Sensitivity {#file-system-case-sensitivity}
+## File System Case Sensitivity {/* #file-system-case-sensitivity */}
:::warning
Cryptomator virtual drives are always case-sensitive. This means `Document.txt` and `document.txt` are treated as two different files, regardless of your operating system.
:::
-This behavior is required for Cryptomator's deterministic [filename encryption](/docs/security/vault.md#filename-encryption) to work correctly across all platforms. While Linux users are accustomed to case-sensitive file systems, this can cause unexpected behavior on Windows and macOS where the default file systems are case-insensitive.
+This behavior is required for Cryptomator's deterministic [filename encryption](/docs/security/vault.mdx#filename-encryption) to work correctly across all platforms. While Linux users are accustomed to case-sensitive file systems, this can cause unexpected behavior on Windows and macOS where the default file systems are case-insensitive.
On Windows and macOS, this difference means:
diff --git a/docs/desktop/adding-vaults.md b/docs/desktop/adding-vaults.mdx
similarity index 87%
rename from docs/desktop/adding-vaults.md
rename to docs/desktop/adding-vaults.mdx
index 8b0809e..dc1f413 100644
--- a/docs/desktop/adding-vaults.md
+++ b/docs/desktop/adding-vaults.mdx
@@ -10,21 +10,21 @@ You will be presented with three options when adding a vault:
1. [`Create New Vault…`](#create-a-new-vault) - Choose this if you wish to create a new vault.
2. [`Open Existing Vault…`](#open-an-existing-vault) - Choose this if you already have a vault and wish to open it.
-3. [`Recover Existing Vault…`](/docs/desktop/vault-recovery.md#add-recover-vault) - Choose this if you have a vault with missing configuration files that hasn’t yet been added and you want to restore it.
+3. [`Recover Existing Vault…`](/docs/desktop/vault-recovery.mdx#add-recover-vault) - Choose this if you have a vault with missing configuration files that hasn’t yet been added and you want to restore it.
-## Create a New Vault {#create-a-new-vault}
+## Create a New Vault {/* #create-a-new-vault */}
If you chose to create a new vault, the wizard will guide you through a simple 6-step vault creation process.
-### 1. Choose a Name {#choose-a-name}
+### 1. Choose a Name {/* #choose-a-name */}
Start by choosing a name for your vault.
-### 2. Choose a Storage Location {#choose-a-storage-location}
+### 2. Choose a Storage Location {/* #choose-a-storage-location */}
Next, you need to choose a directory on your PC where your vault's encrypted data will be stored.
If you wish to sync the encrypted data to your cloud storage, then choose a cloud-synced directory.
@@ -41,7 +41,7 @@ You might not see the same options, depending on which cloud services are instal
-### 3. Expert Settings {#expert-settings}
+### 3. Expert Settings {/* #expert-settings */}
The **Expert Settings** screen provides advanced configuration options for your vault. These settings are intended for users who require greater control over how their data is encrypted and stored.
@@ -60,7 +60,7 @@ One of the primary expert settings allows you to configure the maximum length of
- **Default Behavior**: Cryptomator automatically shortens file names to comply with filesystem constraints.
- **Custom Configuration**: If specific requirements must be met, you can manually set the maximum allowed length for encrypted file names.
-Refer to [Name Shortening](/docs/security/vault.md#name-shortening) for additional details.
+Refer to [Name Shortening](/docs/security/vault.mdx#name-shortening) for additional details.
@@ -68,9 +68,9 @@ Refer to [Name Shortening](/docs/security/vault.md#name-shortening) for addition
Adjusting the maximum length of encrypted file names may affect compatibility with certain filesystems. Ensure you thoroughly test these settings before enabling them for critical data.
:::
-### 4. Choose a Password {#choose-a-password}
+### 4. Choose a Password {/* #choose-a-password */}
-Now it is time to choose a [strong password](/docs/security/best-practices.md#good-passwords) for your vault.
+Now it is time to choose a [strong password](/docs/security/best-practices.mdx#good-passwords) for your vault.
Cryptomator requires at least 8 characters, but we recommend you to use longer phrases such as pass-sentences.
The bar below the password field will help you estimate the strength of your password.
@@ -81,7 +81,7 @@ Additionally, we recommend sharing passwords only over a secure channel, like PG
:::
:::info
-Be mindful of your keyboard layout when creating passwords. Special characters and dead keys can behave differently across keyboard layouts (e.g., Dutch vs. English). This may cause password entry issues if you switch keyboard layouts later. For more information, see [Keyboard Layouts and Special Characters](/docs/security/best-practices.md#keyboard-layouts-and-special-characters).
+Be mindful of your keyboard layout when creating passwords. Special characters and dead keys can behave differently across keyboard layouts (e.g., Dutch vs. English). This may cause password entry issues if you switch keyboard layouts later. For more information, see [Keyboard Layouts and Special Characters](/docs/security/best-practices.mdx#keyboard-layouts-and-special-characters).
:::
@@ -94,7 +94,7 @@ So, store your password in a secure password manager or just don't forget it.
However, you can reset a vault's password by yourself if you have its *recovery key*.
:::
-### 5. Show Recovery Key (Optional Step) {#show-recovery-key}
+### 5. Show Recovery Key (Optional Step) {/* #show-recovery-key */}
A recovery key allows you to reset your password if you ever forget it.
@@ -108,9 +108,9 @@ Remember, a recovery key is just like your password, its purpose is to gain acce
Keep it as safe as your password.
:::
-For more details, take a look at [how a recovery key works](password-and-recovery-key.md#reset-password).
+For more details, take a look at [how a recovery key works](password-and-recovery-key.mdx#reset-password).
-### 6. Done {#done}
+### 6. Done {/* #done */}
That's it.
You have successfully created a new vault.
@@ -119,7 +119,7 @@ You can now unlock this vault using your password and start adding files into it
-## Open an Existing Vault {#open-an-existing-vault}
+## Open an Existing Vault {/* #open-an-existing-vault */}
To open an existing vault, you need to locate the `masterkey.cryptomator` file of the vault you wish to open.
diff --git a/docs/desktop/admin-config.md b/docs/desktop/admin-config.mdx
similarity index 95%
rename from docs/desktop/admin-config.md
rename to docs/desktop/admin-config.mdx
index 6801c7a..166b1e8 100644
--- a/docs/desktop/admin-config.md
+++ b/docs/desktop/admin-config.mdx
@@ -9,7 +9,7 @@ sidebar_position: 12
The admin configuration allows device or system administrators to define environment properties for Cryptomator so it runs in the desired context for all users on a device.
It is a system-level key-value file that persists across updates.
-## Location of the Admin Configuration {#location-of-admin-configuration}
+## Location of the Admin Configuration {/* #location-of-admin-configuration */}
:::note
Editing the *admin configuration* may require elevated privileges (i.e. admin or root permissions).
@@ -25,7 +25,7 @@ The storage location of the admin configuration file `config.properties` depends
| Linux | `/etc/cryptomator/config.properties` |
-## Editing the Admin Configuration {#editing-the-admin-configuration}
+## Editing the Admin Configuration {/* #editing-the-admin-configuration */}
The admin configuration is a simple, UTF-8 encoded key-value file.
Entries are of the form `property-key=property-value`.
@@ -46,7 +46,7 @@ After creating/editing the file, ensure correct file access permissions!
We recommend read access for all users, **write access only for system/device admins**.
:::
-## Configurable Properties {#configurable-properties}
+## Configurable Properties {/* #configurable-properties */}
The following property keys are supported.
@@ -61,7 +61,7 @@ The following property keys are supported.
| `cryptomator.hub.enableTrustOnFirstUse=[Boolean]` | Whether Cryptomator shall ask the user to trust unknown Hub hosts (`true`) or disallow connection attempts (`false`). A Hub host is considered unknown unless it is well-known (`*.cryptomator.cloud`), listed in `cryptomator.hub.allowedHosts`, or has already been allowed by the user. Defaults to true |
-## Substitutions {#substitutions}
+## Substitutions {/* #substitutions */}
Substitutions are used to dynamically resolve the content of some properties depending on the environment Cryptomator is
started in, e.g. by inserting the path to the user's home folder. They may **only** be used in properties that start
diff --git a/docs/desktop/common-errors.md b/docs/desktop/common-errors.mdx
similarity index 80%
rename from docs/desktop/common-errors.md
rename to docs/desktop/common-errors.mdx
index 1977ffc..95e6710 100644
--- a/docs/desktop/common-errors.md
+++ b/docs/desktop/common-errors.mdx
@@ -7,11 +7,11 @@ sidebar_position: 15
# Common Errors
This page collects errors users frequently run into and their known solutions.
-For general diagnostic steps such as collecting log files or enabling debug mode, see [Troubleshooting](troubleshooting.md).
+For general diagnostic steps such as collecting log files or enabling debug mode, see [Troubleshooting](troubleshooting.mdx).
-## Vault Appears Read-Only on Windows {#read-only-vault-windows}
+## Vault Appears Read-Only on Windows {/* #read-only-vault-windows */}
-**Symptoms:** On Windows with a [WinFsp](volume-type.md#winfsp) volume type, an unlocked vault behaves as if it were read-only. Copying or pasting files fails with "Permission denied", and new files or folders cannot be created or modified inside the vault.
+**Symptoms:** On Windows with a [WinFsp](volume-type.mdx#winfsp) volume type, an unlocked vault behaves as if it were read-only. Copying or pasting files fails with "Permission denied", and new files or folders cannot be created or modified inside the vault.
**Cause:** This occurs on Windows systems where multiple Active Directory or Microsoft Entra accounts are signed in simultaneously. WinFsp cannot map the current Windows user to the owner of the mounted vault, so the operating system rejects all write operations. See [winfsp/winfsp#387](https://github.com/winfsp/winfsp/issues/387#issuecomment-1130260210) for technical background.
diff --git a/docs/desktop/encrypted-file-names.md b/docs/desktop/encrypted-file-names.mdx
similarity index 97%
rename from docs/desktop/encrypted-file-names.md
rename to docs/desktop/encrypted-file-names.mdx
index 9a6f042..e8734f3 100644
--- a/docs/desktop/encrypted-file-names.md
+++ b/docs/desktop/encrypted-file-names.mdx
@@ -20,7 +20,7 @@ The app offers two features to reveal the mapping between the cleartext and the
-## Locate Encrypted File {#locate-encrypted-file}
+## Locate Encrypted File {/* #locate-encrypted-file */}
The Locate Encrypted File feature helps you find the encrypted counterpart of a file from inside the vault. This comes in handy when you want to restore an older version of a file. As Cryptomator encrypts file names and obfuscates directory structures, first locate the encrypted file and then restore an older version of the encrypted file with your third-party app.
@@ -32,7 +32,7 @@ As an alternative for clicking the button, you can directly drag & drop a file o
A file manager window opens showing the encrypted folder and marking the encrypted file inside the vault storage location.
-## Decrypt File Name {#decrypt-file-name}
+## Decrypt File Name {/* #decrypt-file-name */}
The Decrypt File Name feature helps you resolve encrypted file names back to their original cleartext names.
@@ -88,7 +88,7 @@ The actual directory structure of the vault on your hard drive/cloud will look l
└─ vault.cryptomator
```
-This is why you cannot identify files in the vault storage location by name alone without decrypting them first. For more information about the vault encryption scheme read [the specification](/docs/security/vault.md).
+This is why you cannot identify files in the vault storage location by name alone without decrypting them first. For more information about the vault encryption scheme read [the specification](/docs/security/vault.mdx).
## Video Walkthrough
diff --git a/docs/desktop/error-handling.md b/docs/desktop/error-handling.mdx
similarity index 100%
rename from docs/desktop/error-handling.md
rename to docs/desktop/error-handling.mdx
diff --git a/docs/desktop/files-in-use.md b/docs/desktop/files-in-use.mdx
similarity index 86%
rename from docs/desktop/files-in-use.md
rename to docs/desktop/files-in-use.mdx
index decc7c9..89d89ae 100644
--- a/docs/desktop/files-in-use.md
+++ b/docs/desktop/files-in-use.mdx
@@ -7,13 +7,13 @@ sidebar_position: 18
# Files in Use
:::info
-This feature is only available for [Cryptomator Hub](/docs/hub/introduction.md) vaults.
+This feature is only available for [Cryptomator Hub](/docs/hub/introduction.mdx) vaults.
:::
When multiple people work in a shared vault, two users might try to edit the same file at the same time.
The **Files in Use** feature helps prevent accidental overwrites in this situation.
-## When This Feature Applies {#when-this-feature-applies}
+## When This Feature Applies {/* #when-this-feature-applies */}
You can run into concurrent edits when:
@@ -29,14 +29,14 @@ Therefore, it requires either the vault residing on shared storage (for example,
In the latter case, it takes around 10 seconds until the status is synchronized to other devices (depending on the sync app).
:::
-## What You Will See {#what-you-will-see}
+## What You Will See {/* #what-you-will-see */}
If a file is currently in use by someone else, Cryptomator shows a notification in the app.
This means another device or user has an active edit session for that file.
-## What You Can Do {#what-you-can-do}
+## What You Can Do {/* #what-you-can-do */}
In most cases, the best action is to wait until the other person finishes editing and then try again.
@@ -49,12 +49,12 @@ We recommend the following sequence when receiving a "File is in use" notificati
1. Only open a file marked as in use without checking with teammates in exceptional situations.
1. In that case, create a backup copy first to avoid losing edits.
-## Stale Use Status {#stale-use-status}
+## Stale Use Status {/* #stale-use-status */}
The use status is cleared after some time without file updates (around 10 min).
If this happens, access is possible again.
This helps in cases such as device sleep, crashes, or interrupted sessions.
-## Related Topics {#related-topics}
+## Related Topics {/* #related-topics */}
-- [Synchronization Conflicts](/docs/desktop/sync-conflicts.md)
+- [Synchronization Conflicts](/docs/desktop/sync-conflicts.mdx)
diff --git a/docs/desktop/getting-started.md b/docs/desktop/getting-started.mdx
similarity index 85%
rename from docs/desktop/getting-started.md
rename to docs/desktop/getting-started.mdx
index 63c015e..4170e70 100644
--- a/docs/desktop/getting-started.md
+++ b/docs/desktop/getting-started.mdx
@@ -7,12 +7,12 @@ sidebar_position: 2
# Getting Started
You will be greeted with the following screen when you start Cryptomator for the first time.
-You can create new vaults (or add existing ones) using the [`+`](adding-vaults.md) button located at the lower left corner.
+You can create new vaults (or add existing ones) using the [`+`](adding-vaults.mdx) button located at the lower left corner.
-
+*/}
diff --git a/docs/desktop/index.md b/docs/desktop/index.mdx
similarity index 100%
rename from docs/desktop/index.md
rename to docs/desktop/index.mdx
diff --git a/docs/desktop/network.md b/docs/desktop/network.mdx
similarity index 92%
rename from docs/desktop/network.md
rename to docs/desktop/network.mdx
index c6e05b4..8ce5ee7 100644
--- a/docs/desktop/network.md
+++ b/docs/desktop/network.mdx
@@ -9,10 +9,10 @@ sidebar_position: 13
In general, Cryptomator does not require a network connection to function.
If the network connection is present, it is used for optional features, i.e. update checks and searching the error database for solutions.
-The only exception is when unlocking [Cryptomator Hub](/docs/hub/introduction.md) vaults, then a network connection to the hub server is required.
+The only exception is when unlocking [Cryptomator Hub](/docs/hub/introduction.mdx) vaults, then a network connection to the hub server is required.
All network connections to the internet are using HTTPS with at least TLS 1.2.
-## Trust Certificate Management {#trust-certificate-management}
+## Trust Certificate Management {/* #trust-certificate-management */}
Depending on the OS, the required trusted root certificates are loaded from different locations.
@@ -24,7 +24,7 @@ Depending on the OS, the required trusted root certificates are loaded from diff
[^1]: For more information about the location and contained certificates, see [JEP 319](https://openjdk.org/jeps/319).
-## Proxy Server {#proxy-server}
+## Proxy Server {/* #proxy-server */}
The default proxy server differs depending on the operating system:
diff --git a/docs/desktop/password-and-recovery-key.md b/docs/desktop/password-and-recovery-key.mdx
similarity index 93%
rename from docs/desktop/password-and-recovery-key.md
rename to docs/desktop/password-and-recovery-key.mdx
index f88d8d1..601f305 100644
--- a/docs/desktop/password-and-recovery-key.md
+++ b/docs/desktop/password-and-recovery-key.mdx
@@ -9,12 +9,12 @@ sidebar_position: 5
This section explains how to change a password for a vault, show its recovery key, and reset a password.
But, before that, let's understand how Cryptomator encrypts a vault using a password and what a recovery key is.
The security of your vault is only as good as its password because Cryptomator encrypts your vault using a key derived from your password.
-So, [choosing a strong password](/docs/security/best-practices.md#good-passwords) is very important.
+So, [choosing a strong password](/docs/security/best-practices.mdx#good-passwords) is very important.
Additionally, a unique *recovery key* can be derived for each vault while creating its password or later.
A *recovery key* allows you to create a new password if you forget the original one.
Do note that the *recovery key* feature does not break encryption in any way.
-It is a human readable form of your decrypted [masterkey](/docs/security/architecture.md#masterkey) and therefore independent of the current vault password and highly confidential.
+It is a human readable form of your decrypted [masterkey](/docs/security/architecture.mdx#masterkey) and therefore independent of the current vault password and highly confidential.
Keep it as safe as your password.
All actions can be carried out using the `Password` tab under vault options.
@@ -22,7 +22,7 @@ You can access it by selecting a vault, lock it if necessary, and click on `Vaul
-## Change Password {#change-password}
+## Change Password {/* #change-password */}
To change the password of an existing vault, you need to know its current one or have a recovery key (see reset password section).
@@ -31,11 +31,11 @@ Navigate to the `Vault Options` → `Password` tab, and click on `Change Passwor
In the opened window, you will be asked for:
1. The vault's current password.
-2. A new password. We suggest following our guide on choosing a [strong password](/docs/security/best-practices.md#good-passwords).
+2. A new password. We suggest following our guide on choosing a [strong password](/docs/security/best-practices.mdx#good-passwords).
3. Enter the new password again.
:::info
-Be mindful of your keyboard layout when changing passwords. Special characters and dead keys can behave differently across keyboard layouts (e.g., Dutch vs. English). This may cause password entry issues if you switch keyboard layouts later. For more information, see [Keyboard Layouts and Special Characters](/docs/security/best-practices.md#keyboard-layouts-and-special-characters).
+Be mindful of your keyboard layout when changing passwords. Special characters and dead keys can behave differently across keyboard layouts (e.g., Dutch vs. English). This may cause password entry issues if you switch keyboard layouts later. For more information, see [Keyboard Layouts and Special Characters](/docs/security/best-practices.mdx#keyboard-layouts-and-special-characters).
:::
In order to proceed, you must confirm that you understand your action by selecting a checkbox.
@@ -54,7 +54,7 @@ The password is used to derive a [KEK](https://en.wikipedia.org/wiki/Glossary_of
If you like to encrypt your vault files with a new, stronger password, you need to create a new vault and drag the data from the old to the new one. Make sure to wipe all backups of the old vault afterwards.
:::
-## Storing Passwords {#storing-passwords}
+## Storing Passwords {/* #storing-passwords */}
:::info
Storing passwords in a keychain can be convenient, but it also poses a security risk if your device is compromised.
@@ -145,7 +145,7 @@ Available keychains are:
- [Bitwarden plug-in](https://github.com/purejava/cryptomator-bitwarden/wiki) stores the vault passwords in Bitwarden's Secrets Manager.
-## Show Recovery Key {#show-recovery-key}
+## Show Recovery Key {/* #show-recovery-key */}
You can derive a recovery key during vault creation or even later as long as you know your vault's password.
To increase security, Cryptomator does not store the recovery key on your hard drive and always derives it on the fly.
@@ -167,7 +167,7 @@ A new window will open displaying a sequence of words (i.e., the recovery key).
You can copy it to your clipboard and store it in a secure password manager, or print it on paper.
-## Reset Password {#reset-password}
+## Reset Password {/* #reset-password */}
We cannot reset the password of a vault for you in any way. Only you can reset a vault's password, assuming you have its recovery key. Keep it ready before you proceed.
@@ -191,8 +191,8 @@ By design, *only* the correct recovery key is accepted. **A valid but incorrect
:::
Finally, assign a new password to your vault.
-It is the same process as the [vault creation](adding-vaults.md#choose-a-password), except that no new recovery key is generated.
-Again, please choose a [strong password](/docs/security/best-practices.md#good-passwords).
+It is the same process as the [vault creation](adding-vaults.mdx#choose-a-password), except that no new recovery key is generated.
+Again, please choose a [strong password](/docs/security/best-practices.mdx#good-passwords).
Once changed, you can unlock your vault with the new password.
diff --git a/docs/desktop/setup.md b/docs/desktop/setup.mdx
similarity index 90%
rename from docs/desktop/setup.md
rename to docs/desktop/setup.mdx
index 33914b8..8914f34 100644
--- a/docs/desktop/setup.md
+++ b/docs/desktop/setup.mdx
@@ -14,13 +14,13 @@ Ensure that your computer's specifications meet the system requirements required
We maintain archives of all Cryptomator versions along with detailed changelogs on our [GitHub releases page](https://github.com/cryptomator/cryptomator/releases).
:::
-## Install Cryptomator on Windows {#install-cryptomator-on-windows}
+## Install Cryptomator on Windows {/* #install-cryptomator-on-windows */}
1. Download Cryptomator's `.exe` installer for Windows from our [downloads page](https://cryptomator.org/downloads/#win).
2. Launch the `.exe` installer.
3. Follow the on-screen instructions.
-## Install Cryptomator on macOS {#install-cryptomator-on-macos}
+## Install Cryptomator on macOS {/* #install-cryptomator-on-macos */}
1. Download Cryptomator's `.dmg` installer for macOS from our [downloads page](https://cryptomator.org/downloads/#mac).
2. Launch the `.dmg` installer.
@@ -34,7 +34,7 @@ Install *macFUSE* if your Mac comes with an Intel CPU or install *FUSE-T* if you
Change your [Gatekeeper settings](https://support.apple.com/HT202491) if macOS blocks Cryptomator's installation.
:::
-## Install Cryptomator on Linux {#install-cryptomator-on-linux}
+## Install Cryptomator on Linux {/* #install-cryptomator-on-linux */}
Cryptomator is available on Linux via `Flatpak`, `PPA` and `AUR` package managers, and as an AppImage (an `.appimage` file).
diff --git a/docs/desktop/sync-conflicts.md b/docs/desktop/sync-conflicts.mdx
similarity index 97%
rename from docs/desktop/sync-conflicts.md
rename to docs/desktop/sync-conflicts.mdx
index f34823e..e6142c9 100644
--- a/docs/desktop/sync-conflicts.md
+++ b/docs/desktop/sync-conflicts.mdx
@@ -33,7 +33,7 @@ If you conclude that both files are identical, you can delete one copy.
The organization of your files is entirely in your hands.
:::
-## Handling Sync Conflicts {#handling-sync-conflicts}
+## Handling Sync Conflicts {/* #handling-sync-conflicts */}
1. When a sync conflict is detected, Cryptomator will display the conflicted file with a suffix, as shown in the table above.
2. Manually review both the original and conflicted files.
@@ -42,7 +42,7 @@ The organization of your files is entirely in your hands.
By following these steps, you can effectively manage synchronization conflicts and ensure that your data remains consistent across multiple locations.
-## Example {#example}
+## Example {/* #example */}
Suppose you have a file named `projectPlan.doc` in your vault.
In the encrypted vault, this file might be represented with an encrypted name such as `5TyvCyF255sRtfrIv...83ucADQ==.c9r`.
diff --git a/docs/desktop/troubleshooting.md b/docs/desktop/troubleshooting.mdx
similarity index 92%
rename from docs/desktop/troubleshooting.md
rename to docs/desktop/troubleshooting.mdx
index fbcfadc..c391d38 100644
--- a/docs/desktop/troubleshooting.md
+++ b/docs/desktop/troubleshooting.mdx
@@ -8,7 +8,7 @@ sidebar_position: 14
This page contains solutions for common issues you might encounter when using Cryptomator on desktop platforms.
-## Log File Locations {#log-file-locations}
+## Log File Locations {/* #log-file-locations */}
Cryptomator creates log files to help with troubleshooting when issues occur.
The default locations for these log files vary by operating system:
@@ -23,11 +23,11 @@ The log files are named with the pattern `cryptomatorX.log`, where `X` is a numb
The most recent log file is always `cryptomator0.log`.
-## Debug Mode {#debug-mode}
+## Debug Mode {/* #debug-mode */}
Debug mode enables additional diagnostic logging to help troubleshoot issues with Cryptomator. When debug mode is active, the application records more detailed information about its operations in the log files.
-:::warning Privacy Consideration
+:::warning[Privacy Consideration]
With debug mode enabled, _every accessed file and listed directory inside the vault is written in clear text to the log file_. This creates a record of your file and folder names, which may compromise privacy. Only enable debug mode when actively troubleshooting an issue, and remember to disable it afterward.
:::
@@ -40,6 +40,6 @@ Cryptomator will now run in debug mode. The app indicates this by showing a red
The additional debug information is written to your log files.
Once you have reproduced the issue you're investigating, disable debug mode by unchecking the option to return to normal logging levels.
-## Known Issues {#known-issues}
+## Known Issues {/* #known-issues */}
For a list of known issues, please refer to the [Cryptomator Community](https://community.cryptomator.org/c/help/known-issues/16) or [GitHub Issues page](https://github.com/cryptomator/cryptomator/issues).
diff --git a/docs/desktop/vault-events.md b/docs/desktop/vault-events.mdx
similarity index 91%
rename from docs/desktop/vault-events.md
rename to docs/desktop/vault-events.mdx
index 0ebf38f..4eacbf2 100644
--- a/docs/desktop/vault-events.md
+++ b/docs/desktop/vault-events.mdx
@@ -13,7 +13,7 @@ Vault events are not persisted on the hard disk.
They are only stored in memory and are lost when the application is closed.
:::
-## Viewing Events {#viewing-events}
+## Viewing Events {/* #viewing-events */}
All vault events are logged in the event view, which can be accessed from the main window. To open the event view, click the **Bell** icon in the lower-left corner of the main window. If new, unread events are present, the icon displays a small red dot.
@@ -25,11 +25,11 @@ Each vault event shows a title, the number of occurrences in brackets, an affect
When a vault is locked, its events are anonymized for security. Unlock the vault to view detailed event information.
-## Event Types {#event-types}
+## Event Types {/* #event-types */}
Cryptomator generates five types of vault events. Understanding these events helps you maintain vault health and resolve issues quickly.
-### Decryption Failed Event {#decryption-failed-event}
+### Decryption Failed Event {/* #decryption-failed-event */}
Cryptomator cannot decrypt an encrypted file in your vault. This indicates potential file corruption or cryptographic integrity issues.
@@ -42,9 +42,9 @@ Investigate the affected file by ensuring it is properly synced. Compare the fil
When multiple files are affected, the entire vault's integrity may be compromised.
-### Conflict Resolved Event {#conflict-resolved-event}
+### Conflict Resolved Event {/* #conflict-resolved-event */}
-Cryptomator automatically resolved a filename conflict within an encrypted directory. This occurs when two encrypted files have the same base name, with one having an additional suffix. For more information, see [handling sync conflicts](sync-conflicts.md).
+Cryptomator automatically resolved a filename conflict within an encrypted directory. This occurs when two encrypted files have the same base name, with one having an additional suffix. For more information, see [handling sync conflicts](sync-conflicts.mdx).
**When it occurs:**
- Two files with conflicting encrypted names exist in the same directory
@@ -54,7 +54,7 @@ Cryptomator automatically resolved a filename conflict within an encrypted direc
**What to do:**
Verify that both files contain the expected content and manually merge any necessary changes. This is typically the result of sync conflicts between devices.
-### Conflict Resolution Failed Event {#conflict-resolution-failed-event}
+### Conflict Resolution Failed Event {/* #conflict-resolution-failed-event */}
Cryptomator encounters a filename conflict but fails to automatically resolve it. This typically happens when the automatic renaming process cannot complete due to filesystem restrictions or permissions issues.
@@ -67,7 +67,7 @@ Cryptomator encounters a filename conflict but fails to automatically resolve it
**What to do:**
Manual intervention is required. Check file permissions, retry, or free up space in the target directory. Afterward, start the conflict resolution again by listing the decrypted directory.
-### Broken File Node Event {#broken-file-node-event}
+### Broken File Node Event {/* #broken-file-node-event */}
A path within your vault appears to be corrupted because the encrypted directory is missing required identification files. This might be structural damage to the vault's directory hierarchy.
@@ -79,7 +79,7 @@ A path within your vault appears to be corrupted because the encrypted directory
**What to do:**
Ensure the encrypted directory is properly synced. Compare the content of the encrypted directory with what appears in your cloud provider's web interface or on other devices. Restore from backup if other sources show the same (incomplete) directory content. If the directory is still broken, consider deleting it to free the filesystem node.
-### Broken Directory File Event {#broken-directory-file-event}
+### Broken Directory File Event {/* #broken-directory-file-event */}
A *dir.c9r* file is corrupted, either because it's empty when it shouldn't be, or because it exceeds the maximum allowed size of 1000 bytes. Directory files are critical for maintaining the vault's encrypted directory structure.
diff --git a/docs/desktop/vault-management.md b/docs/desktop/vault-management.mdx
similarity index 89%
rename from docs/desktop/vault-management.md
rename to docs/desktop/vault-management.mdx
index 0b31017..3413c4e 100644
--- a/docs/desktop/vault-management.md
+++ b/docs/desktop/vault-management.mdx
@@ -10,7 +10,7 @@ A *vault* is where your files are stored encrypted.
For your operating system or other apps, a vault is a just a normal directory containing some encrypted files.
Only Cryptomator can decrypt the vault's contents when you unlock it using a password.
-## Remove Vaults {#remove-vaults}
+## Remove Vaults {/* #remove-vaults */}
To remove a vault from the vault list, right click on a vault, and click remove.
This is only possible if the vault is locked.
@@ -19,7 +19,7 @@ This is only possible if the vault is locked.
The vault is **not** deleted from your PC by removing it from the list. If you wish to permanently delete your encrypted files, you need to delete the vault directory using the file manager.
:::
-## Reorder Vaults {#reorder-vaults}
+## Reorder Vaults {/* #reorder-vaults */}
You can change the order of the vaults in the list by dragging them.
@@ -28,7 +28,7 @@ You can change the order of the vaults in the list by dragging them.
-## Vault Options {#vault-options}
+## Vault Options {/* #vault-options */}
Each vault has its own settings which can be customized under vault options.
To open a vault's settings, select a vault, lock it, and click on `Vault Options`.
@@ -52,7 +52,7 @@ You can select this option if the vault is unlocked as soon as Cryptomator start
2. Mounting - Settings that manage how and where a vault is mounted.
:::note
-The mount options depend on the selected [volume type](volume-type.md).
+The mount options depend on the selected [volume type](volume-type.mdx).
:::
@@ -61,4 +61,4 @@ The mount options depend on the selected [volume type](volume-type.md).
-Take a look at the [Volume Type](volume-type.md) and [Password And Recovery Key](password-and-recovery-key.md) sections to understand how vault mounting and passwords work.
+Take a look at the [Volume Type](volume-type.mdx) and [Password And Recovery Key](password-and-recovery-key.mdx) sections to understand how vault mounting and passwords work.
diff --git a/docs/desktop/vault-recovery.md b/docs/desktop/vault-recovery.mdx
similarity index 92%
rename from docs/desktop/vault-recovery.md
rename to docs/desktop/vault-recovery.mdx
index 018cbff..2b865c5 100644
--- a/docs/desktop/vault-recovery.md
+++ b/docs/desktop/vault-recovery.mdx
@@ -24,10 +24,10 @@ If the damaged vault has not yet been added to Cryptomator, you start the recove
:::warning
Recovery of missing files is only supported starting with Vault Format 8 (introduced in Cryptomator 1.6.0).
Vaults created with older formats (e.g., Vault Format 7 or earlier) are not compatible with these recovery options.
-For details, see the [Vault Format History](/docs/misc/vault-format-history.md).
+For details, see the [Vault Format History](/docs/misc/vault-format-history.mdx).
:::
-## Recover Masterkey file {#recover-masterkey-file}
+## Recover Masterkey file {/* #recover-masterkey-file */}
If the file `masterkey.cryptomator` is missing from your vault folder, Cryptomator will still recognize the folder as a normal vault.
@@ -40,7 +40,7 @@ In this dialog, you can:
For the latter case, you need the vault recovery key to restore the masterkey file.
You’ll be guided through the recovery process and on success, you can unlock the vault as usual.
-## Recover Vault config file {#recover-vault-config}
+## Recover Vault config file {/* #recover-vault-config */}
If the file `vault.cryptomator` is missing, Cryptomator can recreate it using either your vault password or your recovery key.
@@ -51,7 +51,7 @@ Here you can click `Restore vault config` to start the recovery process.
You either need the Recovery Key or the vault password to restore the vault config file.
You’ll be guided through the process and on success, you can open the vault as usual.
-## Recover Masterkey and Vault config files {#recover-full}
+## Recover Masterkey and Vault config files {/* #recover-full */}
:::note
If the vault is created with Cryptomator Hub, you can’t restore the missing config files yourself.
Please contact the vault owner, who can recreate the configuration file for you.
@@ -66,7 +66,7 @@ Here you can click “Restore vault config” to start the recovery process.
You need the Recovery Key to restore the vault config file.
You’ll be guided through the process and on success, you can open the vault as usual.
-## Add a vault with missing config files and restore them {#add-recover-vault}
+## Add a vault with missing config files and restore them {/* #add-recover-vault */}
If a vault has no configuration files and has not yet been added to Cryptomator, you recover it during the import process.
diff --git a/docs/desktop/volume-type.md b/docs/desktop/volume-type.mdx
similarity index 90%
rename from docs/desktop/volume-type.md
rename to docs/desktop/volume-type.mdx
index d4f42fc..b0654ac 100644
--- a/docs/desktop/volume-type.md
+++ b/docs/desktop/volume-type.mdx
@@ -16,7 +16,7 @@ In general, all volume types Cryptomator offers can be categorized into two cate
1. [WebDAV](#what-is-a-webdav-volume-type)
2. [FUSE](#what-is-a-fuse-volume-type)
-## What Is a WebDAV Volume Type? {#what-is-a-webdav-volume-type}
+## What Is a WebDAV Volume Type? {/* #what-is-a-webdav-volume-type */}
WebDAV is a standardized [communication protocol](https://en.wikipedia.org/wiki/WebDAV) used to perform operations on resources (files, directories/folders) between a client (you) and a server (your local computer).
WebDAV was intended for remote access, but Cryptomator uses it to start a local-only server, which you can use to browse your decrypted files.
@@ -25,7 +25,7 @@ You can tweak WebDAV's settings for each vault by navigating to Cryptomator's `P
WebDAV has widespread support and adequate performance, but its implementation differs between operating systems.
-## What Is a FUSE Volume Type? {#what-is-a-fuse-volume-type}
+## What Is a FUSE Volume Type? {/* #what-is-a-fuse-volume-type */}
Filesystem in Userspace ([FUSE](https://en.wikipedia.org/wiki/Filesystem_in_Userspace)) is a filesystem interface originally developed for Unix operating systems that let non-privileged users create their own file systems without editing kernel code.
Which means, FUSE does not require admin privileges and has good support across all major desktop operating systems.
@@ -34,7 +34,7 @@ FUSE volume type also delivers good performance when working on files.
All FUSE related volume types support custom mount options, but every option must be prefixed with `-o`.
For example, you must enter `-oallow_other` if you want to specify `allow_other` option.
-## Choosing a Volume Type {#choosing-a-volume-type}
+## Choosing a Volume Type {/* #choosing-a-volume-type */}
Cryptomator uses the same volume type for all vaults.
You can select which volume type to use in the preferences.
@@ -48,9 +48,9 @@ A notification will be displayed if a restart is needed.
-## Windows {#windows}
+## Windows {/* #windows */}
-### WinFsp / WinFsp (Local Drive) {#winfsp}
+### WinFsp / WinFsp (Local Drive) {/* #winfsp */}
**Requirements:** Windows, WinFsp installed
@@ -61,10 +61,10 @@ By default, unlocked vaults are mounted to a random drive letter, either as a ne
Info on custom mount options is available at [WinFsp repository](https://github.com/winfsp/winfsp/blob/c61679a35d041d843173fa3b2eba106b5ab7b01f/src/dll/fuse/fuse.c#L628-L654).
:::note
-Vaults mounted to a drive letter are only accessible to the current user. If you want to access the vault as a different/elevated user, you have to use WinFsp (Local Drive) and [mount to a directory](vault-management.md#vault-options).
+Vaults mounted to a drive letter are only accessible to the current user. If you want to access the vault as a different/elevated user, you have to use WinFsp (Local Drive) and [mount to a directory](vault-management.mdx#vault-options).
:::
-### WebDAV (Windows Explorer) {#webdav-windows-explorer}
+### WebDAV (Windows Explorer) {/* #webdav-windows-explorer */}
**Requirements:** Windows
@@ -75,9 +75,9 @@ Using WebDAV on Windows has the following drawbacks:
* The size of transferred files is restricted to a maximum of 4 GB.
* The total space and free space of the network drive are shown to be the same as the total space and free space of the C: drive, which is technically incorrect.
-## macOS {#macos}
+## macOS {/* #macos */}
-### macFUSE {#macfuse}
+### macFUSE {/* #macfuse */}
**Requirements:** macOS, macFUSE installed
@@ -98,7 +98,7 @@ Despite this, macFUSE remains the most stable option due to its maturity.
Furthermore, macFUSE has already released [experimental support for FSKit](https://github.com/macfuse/macfuse/issues/1025#issuecomment-2850724070), which will eventually replace the older VFS API.
:::
-### FUSE-T (Experimental) {#fuse-t}
+### FUSE-T (Experimental) {/* #fuse-t */}
**Requirements:** macOS, FUSE-T installed
@@ -119,7 +119,7 @@ FUSE-T is less mature than macFUSE and some users have reported occasional malfu
Consider using macFUSE if you experience issues.
:::
-### WebDAV (AppleScript) {#webdav-applescript}
+### WebDAV (AppleScript) {/* #webdav-applescript */}
**Requirements:** macOS
@@ -128,9 +128,9 @@ By default, unlocked vaults are mounted to `/Volumes`.
While sufficient for most file operations, the experience may feel less polished due to security warnings about the localhost connection not being secure.
These warnings are expected since no certificate authority will issue TLS certificates for localhost.
-## Linux-Based OS {#linux-based-os}
+## Linux-Based OS {/* #linux-based-os */}
-### FUSE {#fuse}
+### FUSE {/* #fuse */}
**Requirements:** Linux, `fuse3` installed
@@ -141,10 +141,10 @@ By default, unlocked vaults are mounted to `~/.local/share/Cryptomator/mnt`, but
Info on custom mount options is available at [man page for mount.fuse](https://man7.org/linux/man-pages/man8/mount.fuse3.8.html).
:::note
-`allow_root` and `allow_other` cannot be used as [custom mount flags](vault-management.md#vault-options) without enabling (uncommenting) `user_allow_other` option in **/etc/fuse.conf** configuration file.
+`allow_root` and `allow_other` cannot be used as [custom mount flags](vault-management.mdx#vault-options) without enabling (uncommenting) `user_allow_other` option in **/etc/fuse.conf** configuration file.
:::
-### WebDAV (gio) {#webdav-gio}
+### WebDAV (gio) {/* #webdav-gio */}
**Requirements:** Linux, `gio` installed
@@ -152,9 +152,9 @@ Due to the wide variety of Linux distributions, Cryptomator only supports system
You can unlock your vault without `gio` using [WebDAV (HTTP Address)](#webdav-http-address), but support across distributions is not guaranteed.
Also, it's up to yourself to figure out how to integrate WebDAV share with your distro.
-## OS-Independent {#os-independent}
+## OS-Independent {/* #os-independent */}
-### WebDAV (HTTP Address) {#webdav-http-address}
+### WebDAV (HTTP Address) {/* #webdav-http-address */}
**Requirements:** None - Works on all OS.
diff --git a/docs/hub/access-vault.md b/docs/hub/access-vault.mdx
similarity index 78%
rename from docs/hub/access-vault.md
rename to docs/hub/access-vault.mdx
index d350a3e..d8d1fbc 100644
--- a/docs/hub/access-vault.md
+++ b/docs/hub/access-vault.mdx
@@ -13,25 +13,25 @@ You can download the version for your OS from [cryptomator.org](https://cryptoma
This section describes exemplarily how to unlock a vault in the Desktop app.
Android and iOS work analogously.
-As described in [open an existing vault](/docs/desktop/adding-vaults.md#open-an-existing-vault), you should have already added the vault to the vault list, e.g., by selecting the `vault.cryptomator` file.
+As described in [open an existing vault](/docs/desktop/adding-vaults.mdx#open-an-existing-vault), you should have already added the vault to the vault list, e.g., by selecting the `vault.cryptomator` file.
-## Unlocking a Vault {#unlocking-a-vault}
+## Unlocking a Vault {/* #unlocking-a-vault */}
-### 1. Click Unlock {#click-unlock}
+### 1. Click Unlock {/* #click-unlock */}
To unlock the vault, click on the large `Unlock` button in the center of Cryptomator's main window.
-### 2. Authenticate {#authenticate}
+### 2. Authenticate {/* #authenticate */}
Cryptomator should open your default browser for authentication. If you're not already logged in, you need to provide your user credentials, e.g., by entering your username and password or by inserting your key when WebAuthn is enabled.
-### 3. Register Device {#register-device}
+### 3. Register Device {/* #register-device */}
-If you just did setup your account, a vault owner needs to grant you access for the requested vault as described [here](vault-management.md#update-permissions). Retry unlocking the vault after the vault owner granted you access.
+If you just did setup your account, a vault owner needs to grant you access for the requested vault as described [here](vault-management.mdx#update-permissions). Retry unlocking the vault after the vault owner granted you access.
@@ -45,11 +45,11 @@ Hub
-Enter a name for the device to identify it later on and the [Account Key](your-account.md#account-key) which was generated during the account setup. You can also find it in the [account settings](your-account.md#profile-page).
+Enter a name for the device to identify it later on and the [Account Key](your-account.mdx#account-key) which was generated during the account setup. You can also find it in the [account settings](your-account.mdx#profile-page).
After that, you will see a confirmation dialog, unlock the vault again.
-### 4. Vault Unlocked {#vault-unlocked}
+### 4. Vault Unlocked {/* #vault-unlocked */}
You are all set up and an unlock should be successful from now on. You can then reveal the vault's contents as usual.
diff --git a/docs/hub/admin.md b/docs/hub/admin.mdx
similarity index 73%
rename from docs/hub/admin.md
rename to docs/hub/admin.mdx
index 6e711f3..0ed3037 100644
--- a/docs/hub/admin.md
+++ b/docs/hub/admin.mdx
@@ -6,7 +6,7 @@ sidebar_position: 8
# Admin
-## License {#license}
+## License {/* #license */}
Every Cryptomator Hub instance requires a license.
The license is bound to the instance and cannot be transferred to another instance.
@@ -15,7 +15,7 @@ As an Hub administrator, you can view license information in the administration
-### What Is a Seat? {#what-is-a-seat}
+### What Is a Seat? {/* #what-is-a-seat */}
A regular license contains a fixed number of *seats*.
A *seat* is taken for every user, which is assigned to at least one, not-archived vault.
@@ -23,17 +23,17 @@ Note that:
* If a user is not assigned to any vault, it *does not occupy* a seat.
* If a user is assigned to multiple vaults, it only *occupies one* seat.
-* If [a user is created or imported to Hub](user-group-management.md), it does not occupy a seat.
+* If [a user is created or imported to Hub](user-group-management.mdx), it does not occupy a seat.
:::note
Enterprise licenses can have an unlimited number of seats. Visit [cryptomator.org](https://cryptomator.org/for-teams/) for more information.
:::
-### Community License {#community-license}
+### Community License {/* #community-license */}
When you deploy Cryptomator Hub by yourself, it comes with a community license with life-long validity and 5 seats.
-### Updating Your License {#updating-your-license}
+### Updating Your License {/* #updating-your-license */}
If the community license is not sufficient for your needs, you can upgrade it to a paid license.
You can also upgrade an already existing, paid license.
@@ -41,7 +41,7 @@ To do so, click on the button in the lower right corner of the administration ar
It will redirect you to the Cryptomator Hub license store.
After the purchase, you will be automatically redirected back to your Hub instance.
-## Audit Logs {#audit-logs}
+## Audit Logs {/* #audit-logs */}
The Audit Logs provide an overview of security-related events within Cryptomator Hub.
These logs allow administrators to track important account and vault-related actions.
@@ -50,55 +50,55 @@ These logs allow administrators to track important account and vault-related act
Audit Logs are not available with a Community License.
:::
-### Event Types {#event-types}
+### Event Types {/* #event-types */}
The following events are logged:
-#### Device {#event-type-device}
+#### Device {/* #event-type-device */}
-- **Register Device** - A user [registered a new device](access-vault.md#register-device). This can be, e.g., a Cryptomator app (desktop/mobile) to unlock a vault or a web browser to access Cryptomator Hub.
-- **Remove Device** – A user [removed a device](your-account.md#authorized-devices).
+- **Register Device** - A user [registered a new device](access-vault.mdx#register-device). This can be, e.g., a Cryptomator app (desktop/mobile) to unlock a vault or a web browser to access Cryptomator Hub.
+- **Remove Device** – A user [removed a device](your-account.mdx#authorized-devices).
-#### Web of Trust {#event-type-web-of-trust}
+#### Web of Trust {/* #event-type-web-of-trust */}
-- **Signed Identity** – A user [signed the identity of another user](vault-management.md#web-of-trust).
-- **Update Wot Setting** – A user updated [Web-of-Trust settings](vault-management.md#web-of-trust), e.g., the `wot_max_depth`.
+- **Signed Identity** – A user [signed the identity of another user](vault-management.mdx#web-of-trust).
+- **Update Wot Setting** – A user updated [Web-of-Trust settings](vault-management.mdx#web-of-trust), e.g., the `wot_max_depth`.
-#### Vault {#event-type-vault}
+#### Vault {/* #event-type-vault */}
-- **Add Vault Member** – A vault owner [added a member to a vault](vault-management.md#share-a-vault). This only adds the member but does not derive the vault key for the new member.
-- **Create Vault** – A user [created a vault](vault-management.md#create-a-vault).
-- **Grant Vault Access** – A user [derived the vault key for the new member](vault-management.md#update-permissions).
-- **Retrieve Vault Key** – A user retrieved a vault key. This happens when a user [unlocks a vault](access-vault.md#unlocking-a-vault) but also, e.g., when an owner manages the vault. The IP address and device information are optional for legacy reasons.
+- **Add Vault Member** – A vault owner [added a member to a vault](vault-management.mdx#share-a-vault). This only adds the member but does not derive the vault key for the new member.
+- **Create Vault** – A user [created a vault](vault-management.mdx#create-a-vault).
+- **Grant Vault Access** – A user [derived the vault key for the new member](vault-management.mdx#update-permissions).
+- **Retrieve Vault Key** – A user retrieved a vault key. This happens when a user [unlocks a vault](access-vault.mdx#unlocking-a-vault) but also, e.g., when an owner manages the vault. The IP address and device information are optional for legacy reasons.
- **Remove Vault Member** – A vault owner removed a member from a vault.
-- **Update Vault Member** – A vault owner [changed a member's role](vault-management.md#change-ownership) (owner or user).
-- **Update Vault** – A vault owner [updated the vault metadata](vault-management.md#edit-vault-metadata). This includes the vault name or description.
+- **Update Vault Member** – A vault owner [changed a member's role](vault-management.mdx#change-ownership) (owner or user).
+- **Update Vault** – A vault owner [updated the vault metadata](vault-management.mdx#edit-vault-metadata). This includes the vault name or description.
-#### Account {#event-type-account}
+#### Account {/* #event-type-account */}
-- **Account Key Changed** – A user [re-generated the account key](your-account.md#regenerate-account-key). This also logs `User Keys Change` because changing the account key also changes parts of the user keys.
-- **Reset User Account** – A user [reset their account](your-account.md#reset-account).
-- **User Keys Change** – A user changed their keys. This happens when, e.g., the user [finished the account setup](your-account.md#account-setup) or when the `Account Key Changed`.
+- **Account Key Changed** – A user [re-generated the account key](your-account.mdx#regenerate-account-key). This also logs `User Keys Change` because changing the account key also changes parts of the user keys.
+- **Reset User Account** – A user [reset their account](your-account.mdx#reset-account).
+- **User Keys Change** – A user changed their keys. This happens when, e.g., the user [finished the account setup](your-account.mdx#account-setup) or when the `Account Key Changed`.
-#### Emergency Access (Enterprise Only) {#event-type-emergency-access}
+#### Emergency Access (Enterprise Only) {/* #event-type-emergency-access */}
- **Emergency Access Setup** – A vault owner set up or updated the Emergency Access configuration for a vault (e.g. by assigning council members in Vault Details).
- **Emergency Access Settings Updated** – An admin changed the [global Emergency Access settings](#emergency-access).
-- **Emergency Access Recovery Started** – A council member [started](emergency-access.md#starting-a-recovery-process) an Emergency Access recovery process.
-- **Emergency Access Recovery Approved** – A council member [approved](emergency-access.md#approve-a-recovery-process) a running recovery process.
-- **Emergency Access Recovery Completed** – A council member [completed](emergency-access.md#complete-a-recovery-process) a recovery process.
-- **Emergency Access Recovery Aborted** – A council member [aborted](emergency-access.md#abort-a-recovery-process) a running recovery process.
+- **Emergency Access Recovery Started** – A council member [started](emergency-access.mdx#starting-a-recovery-process) an Emergency Access recovery process.
+- **Emergency Access Recovery Approved** – A council member [approved](emergency-access.mdx#approve-a-recovery-process) a running recovery process.
+- **Emergency Access Recovery Completed** – A council member [completed](emergency-access.mdx#complete-a-recovery-process) a recovery process.
+- **Emergency Access Recovery Aborted** – A council member [aborted](emergency-access.mdx#abort-a-recovery-process) a running recovery process.
:::note
When a council member starts a recovery process, both `Emergency Access Recovery Started` and `Emergency Access Recovery Approved` are logged.
:::
-#### Legacy {#event-type-legacy}
+#### Legacy {/* #event-type-legacy */}
- **Claim Vault Ownership** – A user claimed vault ownership. This event is logged when a vault created with hub pre 1.3.0 is claimed by the vault creator using the `Vault Admin Password`.
-### Audit Log Table View {#audit-log-table-view}
+### Audit Log Table View {/* #audit-log-table-view */}
The logs are displayed in a structured table containing the following columns:
@@ -108,7 +108,7 @@ The logs are displayed in a structured table containing the following columns:
-### Filtering Audit Logs {#filtering-audit-logs}
+### Filtering Audit Logs {/* #filtering-audit-logs */}
To refine the displayed logs, a filtering function is available:
@@ -119,9 +119,9 @@ To refine the displayed logs, a filtering function is available:
-## Web of Trust {#web-of-trust}
+## Web of Trust {/* #web-of-trust */}
-The Web of Trust (WoT) feature in Cryptomator Hub helps users verify each other's identity by signing the [User Key Pair](/docs/security/hub.md#user-key-pair) with their private keys using ECDSA.
+The Web of Trust (WoT) feature in Cryptomator Hub helps users verify each other's identity by signing the [User Key Pair](/docs/security/hub.mdx#user-key-pair) with their private keys using ECDSA.
First, the trusting user needs to verify the trustee by entering the first characters of the trustee's public key fingerprint. Once signed, the proof is uploaded to Hub, where others can check its authenticity.
WoT also supports transitive trust, meaning if Alice trusts Bob, and Bob trusts Charlie, then Alice implicitly trusts Charlie. This forms a trust chain, allowing users to establish indirect trust relationships.
@@ -142,22 +142,22 @@ With the **Fingerprint Verification Preciseness** property, the minimum length o
* The minimum value, 0, means the fingerprint of the trustee is fully shown without any input needed.
:::note
-If a user resets their account, their [User Key Pair](/docs/security/hub.md#user-key-pair) is regenerated, invalidating all previously established trust relationships regarding this user.
+If a user resets their account, their [User Key Pair](/docs/security/hub.mdx#user-key-pair) is regenerated, invalidating all previously established trust relationships regarding this user.
Additionally, any existing trust chains that included the user will be broken, requiring re-verification to restore trust.
:::
-## Emergency Access {#emergency-access}
+## Emergency Access {/* #emergency-access */}
-:::info Early Access
+:::info[Early Access]
Emergency Access is currently in **early access** and will be fully available in version 1.5.0.
:::
-:::info Enterprise Feature
+:::info[Enterprise Feature]
Visit [cryptomator.org](https://cryptomator.org/hub/) for more information about Enterprise features.
:::
-This configuration defines default [Emergency Access](emergency-access.md) values for new or updated vaults.
+This configuration defines default [Emergency Access](emergency-access.mdx) values for new or updated vaults.
diff --git a/docs/hub/deployment.md b/docs/hub/deployment.mdx
similarity index 96%
rename from docs/hub/deployment.md
rename to docs/hub/deployment.mdx
index 40a8c38..ee78e06 100644
--- a/docs/hub/deployment.md
+++ b/docs/hub/deployment.mdx
@@ -12,7 +12,7 @@ Cryptomator Hub can be deployed to a Kubernetes cluster or a Docker host. The fo
Cryptomator Hub is also offered as a hosted solution, including 99.5%-uptime guarantee and regular backups! Visit [cryptomator.org](https://cryptomator.org/for-teams/) for more information.
:::
-## Summary {#summary}
+## Summary {/* #summary */}
1. Decide, on which web addresses you want to deploy Hub and Keycloak
1. Set up DNS and TLS termination
@@ -20,20 +20,20 @@ Cryptomator Hub is also offered as a hosted solution, including 99.5%-uptime gua
1. Customize the template if needed (e.g., adjust the Ingress settings) and deploy the software stack to your cluster
Afterwards you're done.
-You can now login to Cryptomator Hub and start [creating vaults](vault-management.md) or [add users](user-group-management.md).
+You can now login to Cryptomator Hub and start [creating vaults](vault-management.mdx) or [add users](user-group-management.mdx).
-## Hardware Requirements {#hardware-requirements}
+## Hardware Requirements {/* #hardware-requirements */}
Currently, we are evaluating the system requirements for Cryptomator Hub. If you can provide data, please send us an email to hub@cryptomator.org.
-## Setup Wizard {#setup-wizard}
+## Setup Wizard {/* #setup-wizard */}
To get started, use the [Setup Wizard](https://cryptomator.org/hub/self-hosted/) to generate the necessary configuration files.
Cryptomator Hub depends on [Keycloak](https://www.keycloak.org/), an open-source identity and access management solution.
In the Setup Wizard, you will have the option to choose between deploying Keycloak alongside Hub or specifying an URL to an existing Keycloak installation.
-## Reverse Proxy {#reverse-proxy}
+## Reverse Proxy {/* #reverse-proxy */}
Cryptomator Hub must be used behind a reverse proxy such as Traefik or Nginx. In the [Setup Wizard](https://cryptomator.org/hub/self-hosted/) you can already add rules for some reverse proxies like Traefik. As mentioned there, you will still need a running Traefik deployment.
@@ -114,7 +114,7 @@ Before running this deployment
Troubleshooting: If you encounter problems, check the log files in `logs/traffik.log` and `logs/access.log`. Make sure you entered `srv` as `Public Network` in the Setup Wizard of Hub.
-## Backup {#backup}
+## Backup {/* #backup */}
Cryptomator Hub and Keycloak both write to the connected Postgres database. So the best and easiest way is to backup it cyclically using e.g. a Cron Job. Depending on your deployment, here is a sample command that you can run on the host system to backup the entire databases to a file using the Postgres container, which you than could import in a similar way:
diff --git a/docs/hub/early-access.md b/docs/hub/early-access.mdx
similarity index 100%
rename from docs/hub/early-access.md
rename to docs/hub/early-access.mdx
diff --git a/docs/hub/emergency-access.md b/docs/hub/emergency-access.mdx
similarity index 94%
rename from docs/hub/emergency-access.md
rename to docs/hub/emergency-access.mdx
index 378517d..a7138cd 100644
--- a/docs/hub/emergency-access.md
+++ b/docs/hub/emergency-access.mdx
@@ -6,11 +6,11 @@ sidebar_position: 9
# Emergency Access
-:::info Early Access
+:::info[Early Access]
This feature is currently in **early access** and will be fully available in version 1.5.0.
:::
-:::info Enterprise Feature
+:::info[Enterprise Feature]
Visit [cryptomator.org](https://cryptomator.org/hub/) for more information about Enterprise features.
:::
@@ -24,8 +24,8 @@ Technically, this is implemented using key splitting based on **[Shamir's Secret
The feature can be activated for new and existing vaults:
* **New vaults:** During vault creation, use the `Define Emergency Access Conditions` step.
- For the full workflow, see [Vault Management](vault-management.md#create-a-vault).
-* **Existing vaults:** Open `Vault Details` and [configure Emergency Access](vault-management.md#emergency-access-council).
+ For the full workflow, see [Vault Management](vault-management.mdx#create-a-vault).
+* **Existing vaults:** Open `Vault Details` and [configure Emergency Access](vault-management.mdx#emergency-access-council).
## Starting a Recovery Process
@@ -49,7 +49,7 @@ Use this quick guide to choose the right process:
| Give vault access to different users (owners/members) | `Choose Vault Members` |
| Remove access from specific users | `Choose Vault Members` |
| Replace council members who approve emergency operations | `Change Emergency Access Council` |
-| Change how many council approvals are required (threshold) | Configurable in the [admin settings](admin.md#emergency-access) |
+| Change how many council approvals are required (threshold) | Configurable in the [admin settings](admin.mdx#emergency-access) |
:::note
Starting a process automatically approves the process.
@@ -69,7 +69,7 @@ Users that are no longer part of the vault are shown as `Removed`.
The `Change Emergency Access Council` process allows you to select a new council.
-The minimum required number of members is configured in the [Admin settings](admin.md#emergency-access).
+The minimum required number of members is configured in the [Admin settings](admin.mdx#emergency-access).
@@ -138,4 +138,4 @@ The following warning states can appear in the Emergency Access list:
## Audit Log Events
-See [Emergency Access Audit Log events](admin.md#event-type-emergency-access).
+See [Emergency Access Audit Log events](admin.mdx#event-type-emergency-access).
diff --git a/docs/hub/index.md b/docs/hub/index.mdx
similarity index 100%
rename from docs/hub/index.md
rename to docs/hub/index.mdx
diff --git a/docs/hub/introduction.md b/docs/hub/introduction.mdx
similarity index 55%
rename from docs/hub/introduction.md
rename to docs/hub/introduction.mdx
index 8bcb0ca..e6e5102 100644
--- a/docs/hub/introduction.md
+++ b/docs/hub/introduction.mdx
@@ -17,12 +17,12 @@ If you are…
…an **administrator**:
-* [User & Group management](user-group-management.md) - how to manage users and groups.
-* [License](admin.md#license) - how to manage your Hub license.
-* [Deployment](deployment.md) - how to deploy Cryptomator Hub.
+* [User & Group management](user-group-management.mdx) - how to manage users and groups.
+* [License](admin.mdx#license) - how to manage your Hub license.
+* [Deployment](deployment.mdx) - how to deploy Cryptomator Hub.
…a **user**:
-* [Your Account](your-account.md) - how to manage your own account.
-* [Managing Vaults](vault-management.md) - how to manage vaults.
-* [Working with Vaults](access-vault.md) - how to use Hub vaults with Cryptomator apps to encrypt your data.
+* [Your Account](your-account.mdx) - how to manage your own account.
+* [Managing Vaults](vault-management.mdx) - how to manage vaults.
+* [Working with Vaults](access-vault.mdx) - how to use Hub vaults with Cryptomator apps to encrypt your data.
diff --git a/docs/hub/user-group-management.md b/docs/hub/user-group-management.mdx
similarity index 88%
rename from docs/hub/user-group-management.md
rename to docs/hub/user-group-management.mdx
index a9d90bf..53dd79e 100644
--- a/docs/hub/user-group-management.md
+++ b/docs/hub/user-group-management.mdx
@@ -6,7 +6,7 @@ sidebar_position: 3
# User & Group Management
-:::info Early Access
+:::info[Early Access]
This feature is currently in **early access** and will be fully available in version 1.5.0.
:::
@@ -14,9 +14,9 @@ Users and groups are managed directly in the Cryptomator Hub admin interface. As
Access the user and group management from the navigation bar in the admin area.
-## User Management {#user-management}
+## User Management {/* #user-management */}
-### User List {#user-list}
+### User List {/* #user-list */}
The user list displays all users in your Hub instance. You can search for users by name or email and see key metrics for each user:
@@ -26,7 +26,7 @@ The user list displays all users in your Hub instance. You can search for users
-### Create User {#create-user}
+### Create User {/* #create-user */}
To create a new user, click the "Create User" button in the user list. Fill in the following fields:
@@ -40,9 +40,9 @@ To create a new user, click the "Create User" button in the user list. Fill in t
-After creation, the user can log in with their credentials and complete the [account setup](your-account.md#account-setup).
+After creation, the user can log in with their credentials and complete the [account setup](your-account.mdx#account-setup).
-### Edit User {#edit-user}
+### Edit User {/* #edit-user */}
To edit a user, navigate to the user's detail page and click "Edit". You can modify:
@@ -57,7 +57,7 @@ To edit a user, navigate to the user's detail page and click "Edit". You can mod
Username cannot be changed after user creation.
:::
-### Delete User {#delete-user}
+### Delete User {/* #delete-user */}
To delete a user, you can either click the delete button in the user list or navigate to the user's detail page and click on the options button next to the "Edit" button, then select "Delete". A confirmation dialog will appear. Deleting a user will:
@@ -69,22 +69,22 @@ To delete a user, you can either click the delete button in the user list or nav
This action cannot be undone.
:::
-### User Details {#user-details}
+### User Details {/* #user-details */}
The user detail page shows comprehensive information about a user:
- **Groups**: All groups the user is a member of
- **Accessible Vaults**: Vaults the user has access to (directly or through group membership)
- **Devices**: All registered devices of the user
-- **Legacy Devices**: Devices registered with older Hub versions (see [Legacy Devices](your-account.md#legacy-devices))
+- **Legacy Devices**: Devices registered with older Hub versions (see [Legacy Devices](your-account.mdx#legacy-devices))
-## Group Management {#group-management}
+## Group Management {/* #group-management */}
Groups allow you to organize users and grant vault access to multiple users at once.
-### Group List {#group-list}
+### Group List {/* #group-list */}
The group list displays all groups with:
@@ -93,7 +93,7 @@ The group list displays all groups with:
-### Create Group {#create-group}
+### Create Group {/* #create-group */}
To create a new group, click the "Create Group" button. Fill in:
@@ -102,11 +102,11 @@ To create a new group, click the "Create Group" button. Fill in:
-### Edit Group {#edit-group}
+### Edit Group {/* #edit-group */}
To edit a group, navigate to the group's detail page and click "Edit". You can modify the group name and profile picture URL.
-### Delete Group {#delete-group}
+### Delete Group {/* #delete-group */}
To delete a group, you can either click the delete button in the group list or navigate to the group's detail page and click on the options button next to the "Edit" button, then select "Delete". A confirmation dialog will appear. Deleting a group will:
@@ -117,7 +117,7 @@ To delete a group, you can either click the delete button in the group list or n
This action cannot be undone.
:::
-### Group Details {#group-details}
+### Group Details {/* #group-details */}
The group detail page shows:
@@ -126,7 +126,7 @@ The group detail page shows:
-### Manage Group Members {#manage-group-members}
+### Manage Group Members {/* #manage-group-members */}
From the group detail page, you can:
@@ -139,7 +139,7 @@ From the group detail page, you can:
Subgroups are not supported at this time.
:::
-## Roles {#roles}
+## Roles {/* #roles */}
There are three roles in Cryptomator Hub:
@@ -151,11 +151,11 @@ There are three roles in Cryptomator Hub:
Roles are assigned when creating or editing a user. The `user` role is assigned by default to all users.
-### Create Vault Role {#create-vault-role}
+### Create Vault Role {/* #create-vault-role */}
By default, only users with the `admin` role can create vaults. To allow other users to create vaults, assign the `create-vault` role to them when creating or editing the user.
-## User Avatars {#user-avatars}
+## User Avatars {/* #user-avatars */}
Users can have profile pictures displayed throughout Hub (e.g., in vault member lists). As an administrator, you can set the profile picture URL when creating or editing a user.
@@ -163,9 +163,9 @@ The avatar can be provided as a URL to an image (e.g., `https://example.com/avat
If no profile picture is set, a generated avatar based on the user's name will be displayed.
-## External Identity Management {#enterprise-external-iam}
+## External Identity Management {/* #enterprise-external-iam */}
-:::info Enterprise Feature
+:::info[Enterprise Feature]
Connecting external identity and access management (IAM) solutions is available as an Enterprise feature.
Visit [cryptomator.org](https://cryptomator.org/hub/) for more information about Enterprise features.
diff --git a/docs/hub/vault-management.md b/docs/hub/vault-management.mdx
similarity index 80%
rename from docs/hub/vault-management.md
rename to docs/hub/vault-management.mdx
index b52329b..8340cff 100644
--- a/docs/hub/vault-management.md
+++ b/docs/hub/vault-management.mdx
@@ -11,7 +11,7 @@ In Hub, every vault contains a key to encrypt and decrypt your data stored in th
Hub manages access to the vaults, it does not store any encrypted user data.
This section describes how to manage vaults in Cryptomator Hub.
-## Vault List {#vault-list}
+## Vault List {/* #vault-list */}
The vault list is the main page of Cryptomator Hub.
Here, all vaults which are shared with you, are listed.
@@ -25,7 +25,7 @@ Alternatively, you can also access the list by clicking on the `Vaults` tab in t
* As an admin of the Hub instance, you can see all vaults, but you can only access those that you have been granted access to.
:::
-:::note Emergency Access Status in Vault List (Enterprise only, early access)
+:::note[Emergency Access Status in Vault List (Enterprise only, early access)]
In the `Vault List`, owners can see the Emergency Access status directly via badges:
* `Council missing`: No council is configured for the vault
@@ -33,10 +33,10 @@ In the `Vault List`, owners can see the Emergency Access status directly via bad
* `Insufficient Emergency Access`: No fault tolerance in the council
:::
-## Create a Vault {#create-a-vault}
+## Create a Vault {/* #create-a-vault */}
:::note
-Creating vaults require the `create-vault` role. [Here](user-group-management.md#roles) you can read more about roles.
+Creating vaults require the `create-vault` role. [Here](user-group-management.mdx#roles) you can read more about roles.
:::
To create a vault in Hub, navigate to the vault list and click on the `Create Vault` button in the top right corner.
@@ -45,18 +45,18 @@ Fill out the form and continue the process by clicking the `Next` button in the
-If the [Emergency Access](emergency-access.md) feature is enabled, the following step appears:
+If the [Emergency Access](emergency-access.mdx) feature is enabled, the following step appears:
Here, the conditions for Emergency Access are defined for the new vault.
If the administrator allows custom council selection, you can adjust the default council.
Select the council members who should participate in emergency recovery and review the example recovery scenario.
Click `Next` to continue to the recovery key step.
-:::info Early Access
+:::info[Early Access]
Emergency Access is currently in **early access** and will be fully available in version 1.5.0.
:::
-:::info Enterprise Feature
+:::info[Enterprise Feature]
Visit [cryptomator.org](https://cryptomator.org/hub/) for more information about Enterprise features.
:::
@@ -65,14 +65,14 @@ Visit [cryptomator.org](https://cryptomator.org/hub/) for more information about
In the next step, the vault *recovery key* is displayed.
-It can [restore access to the vault data](vault-recovery.md) in case of an emergency, e.g. if Cryptomator Hub is down.
+It can [restore access to the vault data](vault-recovery.mdx) in case of an emergency, e.g. if Cryptomator Hub is down.
Store it at a safe location, tick the checkbox and complete the setup by clicking the `Create Vault` button at the bottom
:::warning
The recovery key is **highly confidential**.
-It is a human readable form of the vault [masterkey](/docs/security/architecture.md#masterkey), which is used to encrypt your data and independent of the key management in Cryptomator Hub.
+It is a human readable form of the vault [masterkey](/docs/security/architecture.mdx#masterkey), which is used to encrypt your data and independent of the key management in Cryptomator Hub.
:::
When the setup is finished, you have the opportunity to download the initial vault template and place it in your desired cloud storage location.
@@ -81,7 +81,7 @@ If you skip this step, you can download the template [later](#download-vault-tem
-## Vault Details {#vault-details}
+## Vault Details {/* #vault-details */}
The vault details page shows metadata of a vault (e.g. creation date) and contains the management section of the vault (e.g. grant a user access).
To open it, navigate to the vault list and click on entry in the list.
@@ -95,7 +95,7 @@ With the owner role, you have access to the following sections:
-### Manage Vault {#manage-vault}
+### Manage Vault {/* #manage-vault */}
To add a user, grant devices access, or view the members list, you need to have the vault owner role.
Open the [vault details](#vault-details) page to manage a vault.
@@ -109,31 +109,31 @@ Open the [vault details](#vault-details) page to manage a vault.
* `Fix Emergency Access Council` button (and only visible if necessary)
* `Archive Vault` button
-### Share a Vault {#share-a-vault}
+### Share a Vault {/* #share-a-vault */}
If a user should have access to this vault, you need to share it with the user.
Click in the search field of the `Shared with` section, select it from the results list and click the `Add` button.
-### Change Ownership {#change-ownership}
+### Change Ownership {/* #change-ownership */}
To change user's ownership of a vault, click on the three dots next to the user's details in the [Share a vault](#share-a-vault) section of the [vault details](#vault-details).
-### Update Permissions {#update-permissions}
+### Update Permissions {/* #update-permissions */}
-If members of the vault have finished the [first login](your-account.md#account-setup) or reset user accounts, a vault owner must explicitly grant access to these users.
+If members of the vault have finished the [first login](your-account.mdx#account-setup) or reset user accounts, a vault owner must explicitly grant access to these users.
Only then, the user can unlock the vault with its device.
As a vault owner, you can see that an update is necessary when the `Update Permissions` button is clickable.
-### Edit Vault Metadata {#edit-vault-metadata}
+### Edit Vault Metadata {/* #edit-vault-metadata */}
To edit the vault metadata, click on the `Edit Vault Metadata` button in the [vault details](#vault-details). It opens a form where you can change the vault name and description.
-### Download Vault Template {#download-vault-template}
+### Download Vault Template {/* #download-vault-template */}
To download the vault template, click on the `Download Vault Template` button in the [vault details](#vault-details). It downloads the vault template to your local device. You can place it in your desired cloud storage location and unlock it with [Cryptomator](https://cryptomator.org/downloads/). You can do that if you skipped the download vault template step during the vault creation.
@@ -141,29 +141,29 @@ To download the vault template, click on the `Download Vault Template` button in
Download the vault template only once! If you download it multiple times, you will have multiple vault templates in your cloud storage location. This can lead to confusion.
:::
-### Show Recovery Key {#show-recovery-key}
+### Show Recovery Key {/* #show-recovery-key */}
-To show the vault recovery key, click on the `Show Recovery Key` button in the [vault details](#vault-details). It shows the same recovery key shown during vault creation. You can use it to [restore access to the vault data](vault-recovery.md) in case of an emergency, e.g. if Cryptomator Hub is down. Store it at a safe location.
+To show the vault recovery key, click on the `Show Recovery Key` button in the [vault details](#vault-details). It shows the same recovery key shown during vault creation. You can use it to [restore access to the vault data](vault-recovery.mdx) in case of an emergency, e.g. if Cryptomator Hub is down. Store it at a safe location.
-### Setup/Fix Emergency Access Council {#emergency-access-council}
+### Setup/Fix Emergency Access Council {/* #emergency-access-council */}
-:::info Early Access
+:::info[Early Access]
Emergency Access is currently in **early access** and will be fully available in version 1.5.0.
:::
-:::info Enterprise Feature
+:::info[Enterprise Feature]
Visit [cryptomator.org](https://cryptomator.org/hub/) for more information about Enterprise features.
:::
-To configure [Emergency Access](emergency-access.md) for a vault, click `Setup Emergency Access Council` in the [vault details](#vault-details). If Emergency Access is already configured but needs correction, click `Fix Emergency Access Council`. This opens a dialog where you define the council members and confirm with `Grant`.
+To configure [Emergency Access](emergency-access.mdx) for a vault, click `Setup Emergency Access Council` in the [vault details](#vault-details). If Emergency Access is already configured but needs correction, click `Fix Emergency Access Council`. This opens a dialog where you define the council members and confirm with `Grant`.
-### Archive Vault {#archive-vault}
+### Archive Vault {/* #archive-vault */}
To archive the vault, click on the `Archive Vault` button in the [vault details](#vault-details). It archives the vault and removes it from the "accessible" vault list.
You can unarchive it by clicking on the `Owned by me` tab in the navigation bar, select the vault and clicking on the `Reactive Vault` button.
-## Web of Trust {#web-of-trust}
+## Web of Trust {/* #web-of-trust */}
Cryptomator Hub uses a Web of Trust (WoT) to verify the identity of users during vault sharing.
@@ -190,14 +190,14 @@ The verification process is logged in the audit log with event type `Signed Iden
`signature still valid` means that the `identity` has still the same key. If the user account gets reset after verification, this message changes to `was valid; signed key changed by now` and the user needs to get verified again.
-You can read more details about Web of Trust and how to configure its settings in the [Admin section of Hub](admin.md#web-of-trust).
+You can read more details about Web of Trust and how to configure its settings in the [Admin section of Hub](admin.mdx#web-of-trust).
-## Import a Vault {#import-a-vault}
+## Import a Vault {/* #import-a-vault */}
If you have a existing, password-based Cryptomator vault and want to switch to centralized, password-less user access management, you can import the vault in Cryptomator Hub.
-For a successful import, the [recovery key](/docs/desktop/password-and-recovery-key.md#show-recovery-key) of the vault and write access to its storage location is needed
+For a successful import, the [recovery key](/docs/desktop/password-and-recovery-key.mdx#show-recovery-key) of the vault and write access to its storage location is needed
The import is done via the Hub vault recovery feature.
-Follow the [vault online recovery guide](vault-recovery.md#online-recovery) and use the recovery key of the password-based vault in the process.
+Follow the [vault online recovery guide](vault-recovery.mdx#online-recovery) and use the recovery key of the password-based vault in the process.
Don't forget to replace the vault config file `vault.cryptomator` at the vault storage location at the end.
Finally, to ensure that the vault cannot be unlocked with its old password anymore, remove the file `masterkey.cryptomator` and all backup files (ending with `.bkup`).
diff --git a/docs/hub/vault-recovery.md b/docs/hub/vault-recovery.mdx
similarity index 95%
rename from docs/hub/vault-recovery.md
rename to docs/hub/vault-recovery.mdx
index af767f1..9e6bce2 100644
--- a/docs/hub/vault-recovery.md
+++ b/docs/hub/vault-recovery.mdx
@@ -13,7 +13,7 @@ Cryptomator Hub vaults can be recovered in two different ways:
1. [Online Recovery](#online-recovery) - Reestablishes Hub controlled access management for a vault in case the vault admin password got lost
2. [Offline Recovery](#offline-recovery) - Restores vault data access of a hub managed vault in case of a disaster (e.g. Cryptomator Hub is down and immediate data access is needed)
-## Online Recovery {#online-recovery}
+## Online Recovery {/* #online-recovery */}
This recovery method should be used, if the vault admin password got lost.
In the process, a new Hub vault with the same key material as the "to-be-recovered" vault is created.
@@ -49,7 +49,7 @@ If successful, a new vault has been created. Proceed as follows:
Afterwards, you can manage vault data access over the newly created vault in Hub.
You will need to regrant permission to the vault members, and then the vault can be unlocked by the team.
-## Offline Recovery {#offline-recovery}
+## Offline Recovery {/* #offline-recovery */}
This recovery method should only be used in an emergency, i.e. immediate data access is needed but Cryptomator Hub not reachable.
In the process, the authentication needed to unlock the vault is changed from Hub- to password-based by creating/changing vault configuration files.
@@ -75,7 +75,7 @@ Enter the recovery key for the vault you want to restore. If you enter a recover
-In the next step choose a [good password](/docs/security/best-practices.md#good-passwords) used for unlocking the vault.
+In the next step choose a [good password](/docs/security/best-practices.mdx#good-passwords) used for unlocking the vault.
Cryptomator requires at least 8 characters but we recommend you to use a longer phrases such as pass-sentences.
The bar below the password field estimates the strength of your password.
@@ -91,7 +91,7 @@ After the conversion, when unlocking the vault, you are prompted for a password
-## Reversing Offline Conversion {#reversing-offline-conversion}
+## Reversing Offline Conversion {/* #reversing-offline-conversion */}
You can reverse the offline conversion.
In order to do that, remove the following files:
diff --git a/docs/hub/your-account.md b/docs/hub/your-account.mdx
similarity index 90%
rename from docs/hub/your-account.md
rename to docs/hub/your-account.mdx
index 342e5e0..f274bc9 100644
--- a/docs/hub/your-account.md
+++ b/docs/hub/your-account.mdx
@@ -11,7 +11,7 @@ The account is used to authenticate your identity and to manage your trusted dev
If you don't have an account, contact your local administrator to create one for you.
-## Account Key {#account-key}
+## Account Key {/* #account-key */}
Every account has a private *Account Key*.
The Account Key is used for authorizing browsers or apps which try to connect to Hub.
@@ -23,7 +23,7 @@ You can view your account key in your [profile](#profile-page) on trusted browse
If you lose your account key, you have two options: If you have access to an authorized browser, you can view it on the [profile page](#profile-page) or otherwise, you can [reset your account](#reset-account).
:::
-## Account Setup {#account-setup}
+## Account Setup {/* #account-setup */}
The very first time you log in to Cryptomator Hub, you're asked to set up your account.
This is a one-time process that takes just a minute.
@@ -39,7 +39,7 @@ You can revoke the trust at any time in your profile.
After storing your account key securely, tick the checkbox and finish the setup.
You are now logged in to Hub and can start using it.
-## Profile Page {#profile-page}
+## Profile Page {/* #profile-page */}
On the profile page, you can manage your account.
It shows your account key and fingerprint, lists your trusted devices and more.
@@ -48,7 +48,7 @@ You can open it by clicking on your profile icon in the top right corner and sel
-### Change Language {#change-language}
+### Change Language {/* #change-language */}
You can change the language of Cryptomator Hub to match your preference.
The language selection is available in the profile settings.
@@ -58,13 +58,13 @@ We are continuously working on adding more languages.
If you're interested, you can contribute translations via Crowdin:
[Cryptomator Hub on Crowdin](https://crowdin.com/project/cryptomator).
-### Regenerate Account Key {#regenerate-account-key}
+### Regenerate Account Key {/* #regenerate-account-key */}
If you suspect that your old Account Key has been compromised, you can regenerate it.
You will then only be able to add new devices with the new Account Key.
Your existing devices will remain trusted.
-### Authorized Devices {#authorized-devices}
+### Authorized Devices {/* #authorized-devices */}
A device is authorized if it has been authenticated with your Account Key.
Only on authorized devices you can log in to Hub and open vaults.
@@ -86,7 +86,7 @@ This will log out the device and revoke access to all shared vaults.
Periodically review your devices and promptly remove unused and unknown ones.
:::
-### Legacy Devices {#legacy-devices}
+### Legacy Devices {/* #legacy-devices */}
This section lists devices that have been authorized with an older version of Cryptomator Hub. It is only visible if you have any legacy devices.
Legacy devices where created before the introduction of the current user key system and will be removed from your account within one of the next major updates of Hub.
@@ -98,12 +98,12 @@ If you have any legacy device
1. check if you still use them, if so, update the client version on this device which migrates it to the new format
2. if you don't use them anymore, remove them to revoke access of this device to your accessible vaults
-### User Key Fingerprint {#user-key-fingerprint}
+### User Key Fingerprint {/* #user-key-fingerprint */}
-The fingerprint can be used to verify the identity of the user, for example when [updating the permissions](vault-management.md#update-permissions) of a vault.
+The fingerprint can be used to verify the identity of the user, for example when [updating the permissions](vault-management.mdx#update-permissions) of a vault.
It will only change if you [reset your account](#reset-account).
-## Reset Account {#reset-account}
+## Reset Account {/* #reset-account */}
If you lose your account key and can't access any trusted browser, you can reset your account when logging in from a new device.
All already authorized devices will be removed and access to shared vaults will be revoked.
After the reset, you can log in to Hub from a new browser and set up your account again.
diff --git a/docs/ios/access-vault.md b/docs/ios/access-vault.mdx
similarity index 92%
rename from docs/ios/access-vault.md
rename to docs/ios/access-vault.mdx
index 446108d..62ef4ea 100644
--- a/docs/ios/access-vault.md
+++ b/docs/ios/access-vault.mdx
@@ -8,7 +8,7 @@ sidebar_position: 4
Cryptomator for iOS is fully integrated into the Files app of iOS. In order to access your encrypted data, you have to use the Files app.
-## Enable Cryptomator in Files App {#enable-cryptomator-in-files-app}
+## Enable Cryptomator in Files App {/* #enable-cryptomator-in-files-app */}
In order for Cryptomator to be listed in the Files app under "Locations", you may have to enable Cryptomator first. Open the Files app and then:
diff --git a/docs/ios/cloud-management.md b/docs/ios/cloud-management.mdx
similarity index 82%
rename from docs/ios/cloud-management.md
rename to docs/ios/cloud-management.mdx
index 4d1d85b..7e35827 100644
--- a/docs/ios/cloud-management.md
+++ b/docs/ios/cloud-management.mdx
@@ -6,9 +6,9 @@ sidebar_position: 2
# Cloud Management
-## WebDAV {#webdav}
+## WebDAV {/* #webdav */}
-Please see [Cloud Services With WebDAV Support](/docs/misc/supported-cloud-services.md#cloud-services-with-webdav-support) for a non-exhaustive list of Cloud Services and information about accessing them with WebDAV.
+Please see [Cloud Services With WebDAV Support](/docs/misc/supported-cloud-services.mdx#cloud-services-with-webdav-support) for a non-exhaustive list of Cloud Services and information about accessing them with WebDAV.
:::note
While creating the WebDAV connection, please make sure to add the root of the accessible storage and don't navigate directly into the vault.
@@ -18,11 +18,11 @@ If you encounter the `Request method not supported by the target resource.` erro
To resolve this:
1. Verify you're using the correct WebDAV URL for your cloud service
-2. Check the [list of supported cloud services](/docs/misc/supported-cloud-services.md#cloud-services-with-webdav-support) for the correct WebDAV URLs
+2. Check the [list of supported cloud services](/docs/misc/supported-cloud-services.mdx#cloud-services-with-webdav-support) for the correct WebDAV URLs
3. Ensure your cloud provider has WebDAV enabled (some require enabling it in account settings)
4. If using 2FA, you might need to generate an app-specific password for WebDAV access
-## Other File Provider {#other-file-provider}
+## Other File Provider {/* #other-file-provider */}
This option allows you to add a vault from any supported [file provider](https://developer.apple.com/documentation/fileprovider/). Default implementations by Apple are iCloud Drive and On My iPhone/iPad. Inside the Files app, you can also add custom connections to SMB-compatible servers.
diff --git a/docs/ios/index.md b/docs/ios/index.mdx
similarity index 100%
rename from docs/ios/index.md
rename to docs/ios/index.mdx
diff --git a/docs/ios/settings.md b/docs/ios/settings.mdx
similarity index 92%
rename from docs/ios/settings.md
rename to docs/ios/settings.mdx
index 6e62447..8657f26 100644
--- a/docs/ios/settings.md
+++ b/docs/ios/settings.mdx
@@ -8,6 +8,6 @@ sidebar_position: 5
You can configure Cryptomator to your needs. Access the settings by tapping the gear icon in the top left corner.
-## Support {#support}
+## Support {/* #support */}
If you have problems with the app, you can enable `Debug Mode`. After reproducing the problem, you should disable `Debug Mode` again and then `Send Log File`.
diff --git a/docs/ios/setup.md b/docs/ios/setup.mdx
similarity index 93%
rename from docs/ios/setup.md
rename to docs/ios/setup.mdx
index 7159bb4..32ad5d0 100644
--- a/docs/ios/setup.md
+++ b/docs/ios/setup.mdx
@@ -10,12 +10,12 @@ You can get Cryptomator for iOS on the [App Store](https://apps.apple.com/app/cr
Cryptomator is available for free with in-app purchases. The free version gives you read-only access to your vaults. With the in-app purchase, you can unlock the full version to gain write access to your vaults. You can also try out the full version free for 30 days.
-## Full Version {#full-version}
+## Full Version {/* #full-version */}
A full version of Cryptomator without in-app purchases is available on the [App Store](https://apps.apple.com/app/cryptomator-full-version/id1665616242) as well. This version is unlisted and only available via the direct link.
The "Full Version" is basically the same as Cryptomator with the in-app purchase "Full Version" unlocked. This app is available for interested parties using Apple School Manager or Apple Business Manager that are unable to buy in-app purchases. Or if you want to gift the app to your friends or family.
-## Requirements {#requirements}
+## Requirements {/* #requirements */}
Requires iOS 14.0 or later. Compatible with iPhone, iPad, and iPod touch.
diff --git a/docs/ios/shortcuts-guide.md b/docs/ios/shortcuts-guide.mdx
similarity index 97%
rename from docs/ios/shortcuts-guide.md
rename to docs/ios/shortcuts-guide.mdx
index 3e702d9..1eb9b97 100644
--- a/docs/ios/shortcuts-guide.md
+++ b/docs/ios/shortcuts-guide.mdx
@@ -8,11 +8,11 @@ sidebar_position: 6
The Shortcuts integration of Cryptomator allows you to build different automations in the [Shortcuts app](https://support.apple.com/guide/shortcuts/welcome/ios). With that, you can automate recurring tasks quickly and easily.
-For a shortcut to run smoothly, the vault must be unlocked during the execution of the shortcut. For automations, you should set the unlock duration to "Indefinite" in the [settings of your vault](vault-management.md#unlock-duration).
+For a shortcut to run smoothly, the vault must be unlocked during the execution of the shortcut. For automations, you should set the unlock duration to "Indefinite" in the [settings of your vault](vault-management.mdx#unlock-duration).
In addition, you should know that some Cryptomator shortcut actions build on each other. For example, the "Save File" action requires a folder inside a vault as an input, which can be obtained using the "Get Folder" action.
-## Automatic Photo Upload {#automatic-photo-upload}
+## Automatic Photo Upload {/* #automatic-photo-upload */}
With Cryptomator's integration in Shortcuts, you can build an action to automatically upload your photos to a Cryptomator vault. You can either follow these step-by-step instructions or use the following shortcut to get started:
@@ -58,7 +58,7 @@ Congratulations, you have just created your first shortcut with Cryptomator acti
2. Executing a shortcut with a lot of photos (>1,000) can take much longer than executing it with 2x500 photos. To our knowledge, this seems to be a limitation of the Shortcuts app. Therefore, try to limit the number of photos using the available filters. One possible filter is to consider only the photos of the last 2-7 days for a shortcut that is executed daily.
-## Photo to PDF (Advanced Example) {#photo-to-pdf}
+## Photo to PDF (Advanced Example) {/* #photo-to-pdf */}
Another example, inspired by community member JB, is to convert the latest photo to a PDF and save it in a vault under a chosen path. This example is a bit more advanced, but it shows how you can combine different actions to create a more complex automation. You can either follow these step-by-step instructions or use the following shortcut to get started:
diff --git a/docs/ios/vault-management.md b/docs/ios/vault-management.mdx
similarity index 96%
rename from docs/ios/vault-management.md
rename to docs/ios/vault-management.mdx
index 385a82b..5e70f80 100644
--- a/docs/ios/vault-management.md
+++ b/docs/ios/vault-management.mdx
@@ -6,7 +6,7 @@ sidebar_position: 3
# Vault Management
-## Unlock Duration {#unlock-duration}
+## Unlock Duration {/* #unlock-duration */}
With the vault setting "Unlock Duration", you can specify for how long you want your vault to stay unlocked when idle. The following options are:
@@ -30,7 +30,7 @@ E.g., if you choose "1 Hour" and Cryptomator gets terminated by iOS within that
If you choose the "Indefinite" option, your vault will be kept unlocked until you have manually locked it.
-## Security Considerations {#security-considerations}
+## Security Considerations {/* #security-considerations */}
Cryptomator balances security and usability by storing certain credentials in the iOS Keychain to enable convenient features like biometric authentication and reduced password prompts. Here's how it works:
diff --git a/docs/misc/contribute.md b/docs/misc/contribute.mdx
similarity index 94%
rename from docs/misc/contribute.md
rename to docs/misc/contribute.mdx
index 2f7d355..6d274aa 100644
--- a/docs/misc/contribute.md
+++ b/docs/misc/contribute.mdx
@@ -6,7 +6,7 @@ sidebar_position: 1
# Contribute
-## How Can You Help Us? {#how-can-you-help-us}
+## How Can You Help Us? {/* #how-can-you-help-us */}
Cryptomator is an open-source project and wouldn't be possible without contributions from users who support the idea.
@@ -20,7 +20,7 @@ There are several ways you can help us:
* By becoming a [sponsor](https://cryptomator.org/sponsors/),
* Or by [donating](https://cryptomator.org/donate/) to the maintainers.
-## Before You Start {#before-you-start}
+## Before You Start {/* #before-you-start */}
If you plan to help, please stick to our [Code of Conduct](https://github.com/cryptomator/cryptomator/blob/develop/.github/CODE_OF_CONDUCT.md).
diff --git a/docs/misc/index.md b/docs/misc/index.mdx
similarity index 100%
rename from docs/misc/index.md
rename to docs/misc/index.mdx
diff --git a/docs/misc/manual-migration.md b/docs/misc/manual-migration.mdx
similarity index 100%
rename from docs/misc/manual-migration.md
rename to docs/misc/manual-migration.mdx
diff --git a/docs/misc/supported-cloud-services.md b/docs/misc/supported-cloud-services.mdx
similarity index 88%
rename from docs/misc/supported-cloud-services.md
rename to docs/misc/supported-cloud-services.mdx
index 939e409..623c49a 100644
--- a/docs/misc/supported-cloud-services.md
+++ b/docs/misc/supported-cloud-services.mdx
@@ -24,7 +24,7 @@ If possible, *we therefore recommend that you access your data using the native
The following sections will provide you with an overview of [natively supported Cloud Services](#natively-supported-cloud-services), as well as information about [selected Cloud Services with WebDAV support](#cloud-services-with-webdav-support) and a list of [incompatible Cloud Services](#incompatible-cloud-services).
-## Natively Supported Cloud Services (Recommended) {#natively-supported-cloud-services}
+## Natively Supported Cloud Services (Recommended) {/* #natively-supported-cloud-services */}
The following Cloud Services are natively supported by Cryptomator for Android and/or Cryptomator for iOS.
@@ -41,19 +41,19 @@ The following Cloud Services are natively supported by Cryptomator for Android a
| Spaces provided by other apps [^file-providers] | ✅ | ✅ |
| WebDAV [^webdav-list] | ✅ | ✅ |
-[^android-recommendation]: **We recommend using the** [**Google Play Store variant**](/docs/android/setup.md#google-play-store) **of Cryptomator for Android users** for the best experience. Please see [here](/docs/android/setup.md#differences-between-variants-and-how-to-choose) for more information about the different Cryptomator for Android variants and the reasoning behind those.
+[^android-recommendation]: **We recommend using the** [**Google Play Store variant**](/docs/android/setup.mdx#google-play-store) **of Cryptomator for Android users** for the best experience. Please see [here](/docs/android/setup.mdx#differences-between-variants-and-how-to-choose) for more information about the different Cryptomator for Android variants and the reasoning behind those.
-[^no-fdroid-main]: Not supported by the [Main F-Droid repo variant](/docs/android/setup.md#main-f-droid-repository) because this Cloud Service requires an API key.
+[^no-fdroid-main]: Not supported by the [Main F-Droid repo variant](/docs/android/setup.mdx#main-f-droid-repository) because this Cloud Service requires an API key.
-[^no-fdroid-cryptomator]: Not supported by the [Cryptomator F-Droid repo variant](/docs/android/setup.md#cryptomator-f-droid-repository) because this Cloud Service requires proprietary dependencies.
+[^no-fdroid-cryptomator]: Not supported by the [Cryptomator F-Droid repo variant](/docs/android/setup.mdx#cryptomator-f-droid-repository) because this Cloud Service requires proprietary dependencies.
-[^no-accrescent]: Not supported by the [Accrescent variant](/docs/android/setup.md#accrescent) because this Cloud Service requires proprietary dependencies.
+[^no-accrescent]: Not supported by the [Accrescent variant](/docs/android/setup.mdx#accrescent) because this Cloud Service requires proprietary dependencies.
[^file-providers]: Some Android and iOS apps integrate into the operating system's file manager with their own storage spaces to allow seamless access to their files via so called "File Providers." Cryptomator generally supports saving vaults in those spaces, but is dependent on those apps explicitly supporting access by other apps like Cryptomator. For more technical information about this see [here](https://github.com/cryptomator/android/issues/553) for Android and [here](https://github.com/cryptomator/ios/issues/51) for iOS.
[^webdav-list]: Please see [Cloud Services with WebDAV support](#cloud-services-with-webdav-support) for a non-exhaustive list of Cloud Services and information about accessing them with WebDAV.
-## Cloud Services With WebDAV Support {#cloud-services-with-webdav-support}
+## Cloud Services With WebDAV Support {/* #cloud-services-with-webdav-support */}
The following *non-exhaustive* table lays out information about Cloud Services that can be accessed using WebDAV by both Cryptomator for Android and Cryptomator for iOS.
@@ -110,7 +110,7 @@ The following *non-exhaustive* table lays out information about Cloud Services t
[^yandex]: Yandex.Disk: WebDAV requires an app-specific password when 2FA is enabled.
-## Incompatible Cloud Services {#incompatible-cloud-services}
+## Incompatible Cloud Services {/* #incompatible-cloud-services */}
The Cloud Services listed in the following *non-exhaustive* table can currently **not** be used natively or via WebDAV.
diff --git a/docs/misc/vault-format-history.md b/docs/misc/vault-format-history.mdx
similarity index 96%
rename from docs/misc/vault-format-history.md
rename to docs/misc/vault-format-history.mdx
index 3bb30ed..8f1f354 100644
--- a/docs/misc/vault-format-history.md
+++ b/docs/misc/vault-format-history.mdx
@@ -6,10 +6,10 @@ sidebar_position: 3
# Vault Format History
-Cryptomator vaults need to adhere to a structure and format (as described in [Security Architecture](/docs/security/architecture.md)) that may change over time.
+Cryptomator vaults need to adhere to a structure and format (as described in [Security Architecture](/docs/security/architecture.mdx)) that may change over time.
In order to identify the correct format, the masterkey file contains a version number, which represents the vault format.
-## Format 8 {#format-8}
+## Format 8 {/* #format-8 */}
Introduced in Cryptomator 1.6.0 on 2021-10-19.
The following changes are:
@@ -17,7 +17,7 @@ The following changes are:
* Decoupled vault configuration from key derivation by introducing new vault configuration file named `vault.cryptomator`. It is a JWT containing basic information about the vault and specification what key to use.
* `version` inside `masterkey.cryptomator` is now deprecated.
-## Format 7 {#format-7}
+## Format 7 {/* #format-7 */}
Introduced in Cryptomator 1.5.0 on 2020-04-16.
The following changes are:
@@ -59,14 +59,14 @@ This is an example of the vault structure:
└─ masterkey.cryptomator.DFD9B248.bkup
```
-## Format 6 {#format-6}
+## Format 6 {/* #format-6 */}
Introduced in Cryptomator 1.3.0 on 2017-07-01.
The following changes are:
* Password is normalized in NFC.
-## Format 5 {#format-5}
+## Format 5 {/* #format-5 */}
Introduced in Cryptomator 1.2.0 on 2016-09-19.
The following changes are:
@@ -77,7 +77,7 @@ File sizes can be determined in `O(1)` instead of having to read and decrypt the
This allows showing file sizes in the directory listing without having to download each file first.
The file size in the header is now unused and filled with `0xFFFFFFFFFFFFFFFF`.
-## Format 4 {#format-4}
+## Format 4 {/* #format-4 */}
Introduced in Cryptomator 1.1.1 on 2016-07-08.
The following changes are:
@@ -107,7 +107,7 @@ This is an example of the vault structure:
└─ masterkey.cryptomator.bkup
```
-## Format 3 {#format-3}
+## Format 3 {/* #format-3 */}
Introduced in Cryptomator 1.0.0 on 2016-03-09.
diff --git a/docs/security/architecture.md b/docs/security/architecture.mdx
similarity index 94%
rename from docs/security/architecture.md
rename to docs/security/architecture.mdx
index 67f4770..c308a98 100644
--- a/docs/security/architecture.md
+++ b/docs/security/architecture.mdx
@@ -6,7 +6,7 @@ sidebar_position: 2
# Security Architecture
-## Virtual Filesystem {#virtual-filesystem}
+## Virtual Filesystem {/* #virtual-filesystem */}
Cryptomator provides a virtual drive. Add, edit, remove files as you're used to with just any disk drive.
@@ -20,7 +20,7 @@ WebDAV is an HTTP-based protocol and Cryptomator acts as a WebDAV server accepti
Whenever your file manager accesses files through this virtual drive, Cryptomator will process this request via the following layers.
-## Vault Configuration {#vault-configuration}
+## Vault Configuration {/* #vault-configuration */}
Every vault must have a vault configuration file named `vault.cryptomator` in the root directory of the vault.
It is a JWT containing basic information about the vault and specification what key to use.
@@ -60,7 +60,7 @@ When opening a vault, the following steps have to be followed:
3. Verify the JWT signature using the concatenation of encryption masterkey and MAC masterkey.
4. Make sure `format` and `cipherCombo` are supported.
-## Masterkey {#masterkey}
+## Masterkey {/* #masterkey */}
Each vault has its own 256 bit encryption as well as MAC masterkey used for encryption of file specific keys and file authentication, respectively.
@@ -72,9 +72,9 @@ All key material is generated by a CSPRNG (Cryptographically secure pseudorandom
These keys are themselves protected and can be retrieved using, either of the following methods, depending on the use case:
-### Using Cryptomator Hub {#using-cryptomator-hub}
+### Using Cryptomator Hub {/* #using-cryptomator-hub */}
-When using [Cryptomator Hub](/docs/hub/access-vault.md), the encrypted raw masterkey can be retrieved from a the server component.
+When using [Cryptomator Hub](/docs/hub/access-vault.mdx), the encrypted raw masterkey can be retrieved from a the server component.
:::note
If a vault is managed by Cryptomator Hub, the `vault.cryptomator`'s `kid` field will point to the resource URI of said vault on the corresponding Hub instance, prefixed by `hub+`.
@@ -109,7 +109,7 @@ The JWE's decrypted payload holds a single value, which can then be consumed by
}
```
-### Masterkey File {#masterkey-file}
+### Masterkey File {/* #masterkey-file */}
Alternatively, for normal password-protected vaults, Cryptomator will derive a 32byte long KEK (Key-encryption key) via [scrypt](https://tools.ietf.org/html/rfc7914) (non-parallel), encrypt both masterkeys using [AES Key Wrap (RFC 3394)](https://tools.ietf.org/html/rfc3394), and store the results together with the key derivation parameters in a JSON file:
diff --git a/docs/security/best-practices.md b/docs/security/best-practices.mdx
similarity index 93%
rename from docs/security/best-practices.md
rename to docs/security/best-practices.mdx
index 0561772..39819a8 100644
--- a/docs/security/best-practices.md
+++ b/docs/security/best-practices.mdx
@@ -6,7 +6,7 @@ sidebar_position: 5
# Best Practices
-## Sharing of Vaults {#sharing-of-vaults}
+## Sharing of Vaults {/* #sharing-of-vaults */}
When sharing your vault or working in a team, we strongly recommend using [Cryptomator Hub](https://cryptomator.org/for-teams/).
It adds access management for your vaults and allows you to unlock vaults with your own account.
@@ -22,7 +22,7 @@ Only share your vaults with people you trust.
If you share a vault with others, do not communicate the vault password on an insecure channel.
Tell the password in person, use encrypted email or messengers or other similar secure means.
-## Good Passwords {#good-passwords}
+## Good Passwords {/* #good-passwords */}
Bad passwords can be cracked easily when using computers.
Plenty of recommendations exist for secure passwords.
@@ -38,7 +38,7 @@ Thus, we recommend using a password manager to generate and store the passwords.
By doing so, you only have to remember a few or a single secure password.
Otherwise, we recommend using at least 10 characters, ideally [use sentences instead of words](https://xkcd.com/936/).
-### Keyboard Layouts and Special Characters {#keyboard-layouts-and-special-characters}
+### Keyboard Layouts and Special Characters {/* #keyboard-layouts-and-special-characters */}
Be aware that keyboard layout differences can affect password entry. When creating a password, consider these important points:
@@ -53,7 +53,7 @@ To avoid issues:
* If you must use different keyboard layouts, document which layout was used when creating the password.
* Consider using alphanumeric characters and basic symbols that remain consistent across keyboard layouts.
-## Backup Strategy {#backup-strategy}
+## Backup Strategy {/* #backup-strategy */}
Cryptomator is not a backup solution.
Its primary and only purpose is client-side encryption.
diff --git a/docs/security/hub.md b/docs/security/hub.mdx
similarity index 89%
rename from docs/security/hub.md
rename to docs/security/hub.mdx
index f3d10a0..4399b7b 100644
--- a/docs/security/hub.md
+++ b/docs/security/hub.mdx
@@ -8,7 +8,7 @@ sidebar_position: 3
Cryptomator Hub facilitates asymmetric encryption to allow sharing the key material used in Cryptomator vaults between multiple parties.
-## Zero-Knowledge Data Flow {#zero-knowledge-data-flow}
+## Zero-Knowledge Data Flow {/* #zero-knowledge-data-flow */}
The following diagram illustrates how Cryptomator Hub maintains zero-knowledge encryption throughout the entire data flow between users sharing a vault. This architecture ensures that neither Cryptomator Hub nor your cloud storage provider ever has access to your unencrypted data.
@@ -16,17 +16,17 @@ The following diagram illustrates how Cryptomator Hub maintains zero-knowledge e
-In this architecture, each component plays a specific role while maintaining the zero-knowledge principle. User devices handle all encryption and decryption operations locally within their [virtual file systems](architecture.md#virtual-filesystem). The encrypted vault data resides in your chosen [cloud storage provider](/docs/misc/supported-cloud-services.md), where it remains indecipherable without the proper keys.
+In this architecture, each component plays a specific role while maintaining the zero-knowledge principle. User devices handle all encryption and decryption operations locally within their [virtual file systems](architecture.mdx#virtual-filesystem). The encrypted vault data resides in your chosen [cloud storage provider](/docs/misc/supported-cloud-services.mdx), where it remains indecipherable without the proper keys.
-Cryptomator Hub acts solely as a key broker, managing encrypted [access tokens](#unlock-procedure) through the [User](#user-key-pair) and [Device](#device-key-pair) Key Pairs described below. The Hub never has access to [vault keys](architecture.md#masterkey) in cleartext, ensuring that even a compromised Hub instance cannot decrypt vault contents.
+Cryptomator Hub acts solely as a key broker, managing encrypted [access tokens](#unlock-procedure) through the [User](#user-key-pair) and [Device](#device-key-pair) Key Pairs described below. The Hub never has access to [vault keys](architecture.mdx#masterkey) in cleartext, ensuring that even a compromised Hub instance cannot decrypt vault contents.
Keycloak handles authentication through your existing identity provider, verifying user identities before granting access to encrypted vault keys. This separation of authentication from key management adds an additional security layer while enabling seamless integration with your organization's existing infrastructure.
-## Key Types {#key-types}
+## Key Types {/* #key-types */}
Cryptomator Hub facilitates different keys types. Here is an overview of these types and how they are interconnected:
-### User Key Pair {#user-key-pair}
+### User Key Pair {/* #user-key-pair */}
During first login, every user will generate a new EC key pair. The private key is then encrypted using both the [Account Key](#account-key) as well as the [Device Key](#device-key-pair) of every single device owned by this user.
@@ -34,7 +34,7 @@ The purpose of the user key is to access secrets that have been shared with this
If users wish to rotate their keys, e.g. when a device may be compromised, they can simply re-roll the key pair, re-encrypt secrets that they whish to keep access to and delete the old key pair.
-### Device Key Pair {#device-key-pair}
+### Device Key Pair {/* #device-key-pair */}
Every device requires a key pair, which is generated on first use. The private key is securely stored on-device and not intended to ever leave it. For example,
on web browsers the private key is [non-extractable](https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/generateKey#extractable) and stored in the browser's IndexedDB.
@@ -49,7 +49,7 @@ The sole purpose of the device key is to decrypt the [User Key](#user-key-pair),
Users can invalidate devices by simply deleting the device-specific JWE and rotating their user key.
-### Account Key {#account-key}
+### Account Key {/* #account-key */}
When users attempt to access their account from a new device, there is no device-specific JWE yet. Instead they can then use the Account Key to decrypt the [User Key](#user-key-pair). The Account Key acts as a password to derive a key for a [PBES2-encrypted JWE](https://datatracker.ietf.org/doc/html/rfc7518.html#section-4.8).
@@ -64,7 +64,7 @@ The Account Key itself is stored as an [ECDH-ES-encrypted JWE](https://datatrack
view it from any authorized device. Regardless it should be securely stored independently.
:::
-## Unlock Procedure {#unlock-procedure}
+## Unlock Procedure {/* #unlock-procedure */}
Vault keys are shared with users via their [User Key Pairs](#user-key-pair). Each user self-manages their devices. The [Device Key Pair](#device-key-pair) is required to decrypt the user's private key, which in turn decrypts the vault access token.
@@ -72,7 +72,7 @@ Vault keys are shared with users via their [User Key Pairs](#user-key-pair). Eac
-### Unlock Flow {#unlock-flow}
+### Unlock Flow {/* #unlock-flow */}
The unlock procedure consists of two distinct steps that establish a key hierarchy between devices, users, and vaults:
@@ -81,7 +81,7 @@ The unlock procedure consists of two distinct steps that establish a key hierarc
This creates a cryptographic chain: Device Private Key → User Private Key → Vault Key. The intermediary user key layer allows vault keys to be encrypted once per user rather than once per device. When users add new devices, only a new device-specific JWE of the user key needs to be created, eliminating the need to re-encrypt all vault keys.
-### Access States {#access-states}
+### Access States {/* #access-states */}
When retrieving the vault access token from `/api/vaults/{vaultId}/access-token`:
diff --git a/docs/security/index.md b/docs/security/index.mdx
similarity index 100%
rename from docs/security/index.md
rename to docs/security/index.mdx
diff --git a/docs/security/security-target.md b/docs/security/security-target.mdx
similarity index 88%
rename from docs/security/security-target.md
rename to docs/security/security-target.mdx
index 155c736..7d9f052 100644
--- a/docs/security/security-target.md
+++ b/docs/security/security-target.mdx
@@ -8,7 +8,7 @@ sidebar_position: 1
Cryptomator was designed to solve privacy issues when saving files to cloud storages.
-## What Cryptomator Is {#what-cryptomator-is}
+## What Cryptomator Is {/* #what-cryptomator-is */}
Cryptomator is a client-side encryption tool for cloud storage services.
@@ -16,7 +16,7 @@ The risk that the cloud provider or third parties access the data stored in the
Only people who know the vault password are able to read the files in the vault or change the file contents undetected.
This is true for file contents as well as for filenames.
-## What Cryptomator Encrypts {#what-cryptomator-encrypts}
+## What Cryptomator Encrypts {/* #what-cryptomator-encrypts */}
Cryptomator encrypts:
@@ -24,9 +24,9 @@ Cryptomator encrypts:
* file and folder names, and
* the directory structure is obfuscated.
-For technical details on how these elements are encrypted, see [Vault Cryptography](vault.md).
+For technical details on how these elements are encrypted, see [Vault Cryptography](vault.mdx).
-## What Cryptomator Is Not {#what-cryptomator-is-not}
+## What Cryptomator Is Not {/* #what-cryptomator-is-not */}
In addition, you have to keep in mind what Cryptomator is not.
@@ -42,7 +42,7 @@ Cryptomator is not a [steganography tool](https://en.wikipedia.org/wiki/Steganog
To protect against such risks, other methods, like complete disk encryption, immediate installation of system and software updates, and the use of applicable antivirus software, is required.
-## What Cryptomator Does Not Encrypt {#what-cryptomator-does-not-encrypt}
+## What Cryptomator Does Not Encrypt {/* #what-cryptomator-does-not-encrypt */}
To allow a working synchronization with the cloud, there are some metadata that Cryptomator does not encrypt.
These are:
@@ -51,9 +51,9 @@ These are:
* number of files and folders in a vault and in the folders, and
* size of the stored files.
-## Accepted Risks {#accepted-risks}
+## Accepted Risks {/* #accepted-risks */}
-### Filename Swapping Within Same Directory {#filename-swapping-within-same-directory}
+### Filename Swapping Within Same Directory {/* #filename-swapping-within-same-directory */}
An attacker with write access to your cloud storage could swap encrypted filenames within the same directory. While the contents of the files remain secure and any tampering with file contents would be detected, the swapped filenames would not be detected.
diff --git a/docs/security/vault.md b/docs/security/vault.mdx
similarity index 96%
rename from docs/security/vault.md
rename to docs/security/vault.mdx
index 708e59b..8a84ee6 100644
--- a/docs/security/vault.md
+++ b/docs/security/vault.mdx
@@ -6,7 +6,7 @@ sidebar_position: 4
# Vault Cryptography
-## File Header Encryption {#file-header-encryption}
+## File Header Encryption {/* #file-header-encryption */}
The file header stores certain metadata, which is needed for file content encryption.
It consists of 68 bytes.
@@ -29,7 +29,7 @@ ciphertextPayload, tag := aesGcm(cleartextPayload, encryptionMasterKey, headerNo
*Random per file change
-## File Content Encryption {#file-content-encryption}
+## File Content Encryption {/* #file-content-encryption */}
This is where your actual file contents get encrypted.
@@ -60,7 +60,7 @@ ciphertextFileContent := join(ciphertextChunks[])
*Random per chunk change
-## Directory IDs {#directory-ids}
+## Directory IDs {/* #directory-ids */}
Each directory has a unique ID that is required during filename encryption.
For historical reasons, the directory ID is a string, even though any byte sequence would do the job.
@@ -88,7 +88,7 @@ dirPath := vaultRoot + '/d/' + substr(dirIdHash, 0, 2) + '/' + substr(dirIdHash,
Regardless of the hierarchy of cleartext paths, ciphertext directories are always stored in a flattened structure.
All directories will therefore effectively be siblings (or cousins, to be precise).
-## Filename Encryption {#filename-encryption}
+## Filename Encryption {/* #filename-encryption */}
The cleartext name of a file gets encoded using UTF-8 in [Normalization Form C](https://unicode.org/reports/tr15/#Norm*Forms) to get a unique binary representation.
@@ -144,7 +144,7 @@ Becomes a ciphertext directory structure like this:
└─ vault.cryptomator
```
-## Name Shortening {#name-shortening}
+## Name Shortening {/* #name-shortening */}
:::note
This layer doesn't provide any additional security.
@@ -201,7 +201,7 @@ A vault containing several nodes with very long names might result in a cipherte
└─ vault.cryptomator
```
-## Backup Directory IDs {#backup-directory-ids}
+## Backup Directory IDs {/* #backup-directory-ids */}
:::note
This layer is optional and not required for a complete implementation of the Cryptomator Encryption Scheme.
@@ -211,7 +211,7 @@ Its sole purpose is to increase data recoverability in case of missing or damage
By obfuscating the hierarchy of cleartext paths using `dir.c9r` files, which contain [directory IDs](#directory-ids), the directory structure is more vulnerable to problems like incomplete synchronization or bit rotting.
-When a directory file is missing or damaged, the `dirPath` cannot be computed, which effectively makes the directory content inaccessible in the [virtual filesystem](architecture.md#virtual-filesystem).
+When a directory file is missing or damaged, the `dirPath` cannot be computed, which effectively makes the directory content inaccessible in the [virtual filesystem](architecture.mdx#virtual-filesystem).
In theory, the contents of the encrypted content of these files can be recovered.
But since the [filename encryption](#filename-encryption) is dependent on the directory ID of the parent folder, which is only stored in the directory file, names of all items (files, directories, or symlinks) are lost.
diff --git a/docs/security/verify-installers.md b/docs/security/verify-installers.mdx
similarity index 92%
rename from docs/security/verify-installers.md
rename to docs/security/verify-installers.mdx
index 9bd86d5..2bf1bed 100644
--- a/docs/security/verify-installers.md
+++ b/docs/security/verify-installers.mdx
@@ -8,7 +8,7 @@ sidebar_position: 6
If you are not sure whether an alleged Cryptomator installer is legitimate, you can verify its authenticity and integrity.
-## GPG Signature {#gpg-signature}
+## GPG Signature {/* #gpg-signature */}
All Cryptomator release artifacts include a `.asc` signature file that you can use to verify authenticity and integrity using GPG. This method works on Windows, Linux, and macOS (with GPG installed). Download both the installer and the corresponding `.asc` signature file, then verify in the following steps:
@@ -26,7 +26,7 @@ If shown, you can ignore the following warning:
`gpg: WARNING: This key is not certified with a trusted signature!`
-## Windows (exe, msi) {#windows}
+## Windows (exe, msi) {/* #windows */}
Our Windows installers are signed using a code signing certificate. You can verify the signature in three simple steps:
@@ -37,7 +37,7 @@ Our Windows installers are signed using a code signing certificate. You can veri
Get-AuthenticodeSignature -FilePath "~\Downloads\Cryptomator-*.exe"
```
3. Verify that the output includes:
- - Column `SignerCertificate` with value `20F30D7C5B1AB3ACAFA4AB27874ACBC4B47B0697`(*)
+ - Column `SignerCertificate` with value {/* AUTOMATION MARKER FOR WORKFLOW */}`20F30D7C5B1AB3ACAFA4AB27874ACBC4B47B0697`(*)
- Column `Status` with value `Valid`
- no errors
@@ -59,13 +59,13 @@ You can also inspect the certificate manually:
-### Certificate thumbprints for all Cryptomator versions {#windows-all-versions}
+### Certificate thumbprints for all Cryptomator versions {/* #windows-all-versions */}
Every Cryptomator installer is signed with a certificate. A certificate is identified by its thumbprint. The signing certificate changed over time and the following table shows for each version the certificate thumbprint:
| Version(s) | Certificate Thumbprint |
|---------------------|--------------------------------------------|
-| 1.19.2 | `20F30D7C5B1AB3ACAFA4AB27874ACBC4B47B0697` |
+| 1.19.2 | `20F30D7C5B1AB3ACAFA4AB27874ACBC4B47B0697`{/* AUTOMATION MARKER FOR WORKFLOW */} |
| 1.19.1 | `BB0EEBF8E92E4584DF4B6AE4F9577B60BEB5DF4C` |
| 1.19.0 | `14524B1F8A3A1CA8B24B769C7C6DC92851120B22` |
| 1.18.1 | `53FA929F6D50D5E2AE59A7C9A9750D373AFF7D40` |
@@ -76,7 +76,7 @@ Every Cryptomator installer is signed with a certificate. A certificate is ident
-## macOS (app) {#macos}
+## macOS (app) {/* #macos */}
On macOS, you can verify the code signature of the Cryptomator app using the built-in `codesign` utility. This verification confirms the app's authenticity and integrity:
diff --git a/docusaurus.config.ts b/docusaurus.config.ts
index c8b2745..c2d3395 100644
--- a/docusaurus.config.ts
+++ b/docusaurus.config.ts
@@ -12,6 +12,7 @@ const config: Config = {
// Future flags, see https://docusaurus.io/docs/api/docusaurus-config#future
future: {
v4: true, // Improve compatibility with the upcoming Docusaurus v4
+ faster: true,
},
url: process.env.SITE_URL || 'https://docs.cryptomator.org',
diff --git a/package-lock.json b/package-lock.json
index c5ff981..f9c20e3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,9 +8,10 @@
"name": "docs",
"version": "0.0.0",
"dependencies": {
- "@docusaurus/core": "3.9.2",
- "@docusaurus/plugin-client-redirects": "^3.9.2",
- "@docusaurus/preset-classic": "3.9.2",
+ "@docusaurus/core": "^3.10.0",
+ "@docusaurus/faster": "^3.10.0",
+ "@docusaurus/plugin-client-redirects": "^3.10.0",
+ "@docusaurus/preset-classic": "^3.10.0",
"@easyops-cn/docusaurus-search-local": "^0.55.1",
"@mdx-js/react": "^3.1.1",
"@signalwire/docusaurus-plugin-llms-txt": "^1.2.2",
@@ -20,9 +21,9 @@
"react-dom": "^19.2.4"
},
"devDependencies": {
- "@docusaurus/module-type-aliases": "3.9.2",
- "@docusaurus/tsconfig": "3.9.2",
- "@docusaurus/types": "3.9.2",
+ "@docusaurus/module-type-aliases": "^3.10.0",
+ "@docusaurus/tsconfig": "^3.10.0",
+ "@docusaurus/types": "^3.10.0",
"typescript": "~5.9.3"
},
"engines": {
@@ -30,46 +31,46 @@
}
},
"node_modules/@algolia/abtesting": {
- "version": "1.15.2",
- "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.15.2.tgz",
- "integrity": "sha512-rF7vRVE61E0QORw8e2NNdnttcl3jmFMWS9B4hhdga12COe+lMa26bQLfcBn/Nbp9/AF/8gXdaRCPsVns3CnjsA==",
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.17.0.tgz",
+ "integrity": "sha512-nuhHZdTiCtRzJEe9VSNzyqE9cOQMt01UWBzymFnjbgwrxxZpbGHQde6Oa/y9zyspTCjbUtb7Q5HQek1CLiLyeg==",
"license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.49.2",
- "@algolia/requester-browser-xhr": "5.49.2",
- "@algolia/requester-fetch": "5.49.2",
- "@algolia/requester-node-http": "5.49.2"
+ "@algolia/client-common": "5.51.0",
+ "@algolia/requester-browser-xhr": "5.51.0",
+ "@algolia/requester-fetch": "5.51.0",
+ "@algolia/requester-node-http": "5.51.0"
},
"engines": {
"node": ">= 14.0.0"
}
},
"node_modules/@algolia/autocomplete-core": {
- "version": "1.19.2",
- "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.19.2.tgz",
- "integrity": "sha512-mKv7RyuAzXvwmq+0XRK8HqZXt9iZ5Kkm2huLjgn5JoCPtDy+oh9yxUMfDDaVCw0oyzZ1isdJBc7l9nuCyyR7Nw==",
+ "version": "1.19.8",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.19.8.tgz",
+ "integrity": "sha512-3YEorYg44niXcm7gkft3nXYItHd44e8tmh4D33CTszPgP0QWkaLEaFywiNyJBo7UL/mqObA/G9RYuU7R8tN1IA==",
"license": "MIT",
"dependencies": {
- "@algolia/autocomplete-plugin-algolia-insights": "1.19.2",
- "@algolia/autocomplete-shared": "1.19.2"
+ "@algolia/autocomplete-plugin-algolia-insights": "1.19.8",
+ "@algolia/autocomplete-shared": "1.19.8"
}
},
"node_modules/@algolia/autocomplete-plugin-algolia-insights": {
- "version": "1.19.2",
- "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.19.2.tgz",
- "integrity": "sha512-TjxbcC/r4vwmnZaPwrHtkXNeqvlpdyR+oR9Wi2XyfORkiGkLTVhX2j+O9SaCCINbKoDfc+c2PB8NjfOnz7+oKg==",
+ "version": "1.19.8",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.19.8.tgz",
+ "integrity": "sha512-ZvJWO8ZZJDpc1LNM2TTBdmQsZBLMR4rU5iNR2OYvEeFBiaf/0ESnRSSLQbryarJY4SVxtoz6A2ZtDMNM+iQEAA==",
"license": "MIT",
"dependencies": {
- "@algolia/autocomplete-shared": "1.19.2"
+ "@algolia/autocomplete-shared": "1.19.8"
},
"peerDependencies": {
"search-insights": ">= 1 < 3"
}
},
"node_modules/@algolia/autocomplete-shared": {
- "version": "1.19.2",
- "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.19.2.tgz",
- "integrity": "sha512-jEazxZTVD2nLrC+wYlVHQgpBoBB5KPStrJxLzsIFl6Kqd1AlG9sIAGl39V5tECLpIQzB3Qa2T6ZPJ1ChkwMK/w==",
+ "version": "1.19.8",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.19.8.tgz",
+ "integrity": "sha512-h5hf2t8ejF6vlOgvLaZzQbWs5SyH2z4PAWygNAvvD/2RI29hdQ54ldUGwqVuj9Srs+n8XUKTPUqb7fvhBhQrnQ==",
"license": "MIT",
"peerDependencies": {
"@algolia/client-search": ">= 4.9.1 < 6",
@@ -77,99 +78,99 @@
}
},
"node_modules/@algolia/client-abtesting": {
- "version": "5.49.2",
- "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.49.2.tgz",
- "integrity": "sha512-XyvKCm0RRmovMI/ChaAVjTwpZhXdbgt3iZofK914HeEHLqD1MUFFVLz7M0+Ou7F56UkHXwRbpHwb9xBDNopprQ==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.51.0.tgz",
+ "integrity": "sha512-PKrKlIla1U2J7mFcIQn6N3pWP4oySmkxShnbbDsj/H7818gKbET5KsUwsVoNjWIxHKTJMCTcQ7ekAJ8Ea23NMg==",
"license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.49.2",
- "@algolia/requester-browser-xhr": "5.49.2",
- "@algolia/requester-fetch": "5.49.2",
- "@algolia/requester-node-http": "5.49.2"
+ "@algolia/client-common": "5.51.0",
+ "@algolia/requester-browser-xhr": "5.51.0",
+ "@algolia/requester-fetch": "5.51.0",
+ "@algolia/requester-node-http": "5.51.0"
},
"engines": {
"node": ">= 14.0.0"
}
},
"node_modules/@algolia/client-analytics": {
- "version": "5.49.2",
- "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.49.2.tgz",
- "integrity": "sha512-jq/3qvtmj3NijZlhq7A1B0Cl41GfaBpjJxcwukGsYds6aMSCWrEAJ9pUqw/C9B3hAmILYKl7Ljz3N9SFvekD3Q==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.51.0.tgz",
+ "integrity": "sha512-U+HCY1K16Km91pIRL1kN6bW6BbGFAF/WhkRSCx4wyl1aFpbrlhSFQs/dAwWbmyBiHWwVWhl7stWHQ1pum5EfMw==",
"license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.49.2",
- "@algolia/requester-browser-xhr": "5.49.2",
- "@algolia/requester-fetch": "5.49.2",
- "@algolia/requester-node-http": "5.49.2"
+ "@algolia/client-common": "5.51.0",
+ "@algolia/requester-browser-xhr": "5.51.0",
+ "@algolia/requester-fetch": "5.51.0",
+ "@algolia/requester-node-http": "5.51.0"
},
"engines": {
"node": ">= 14.0.0"
}
},
"node_modules/@algolia/client-common": {
- "version": "5.49.2",
- "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.49.2.tgz",
- "integrity": "sha512-bn0biLequn3epobCfjUqCxlIlurLr4RHu7RaE4trgN+RDcUq6HCVC3/yqq1hwbNYpVtulnTOJzcaxYlSr1fnuw==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.51.0.tgz",
+ "integrity": "sha512-YPJ3dEuZLCRp846Az94t6Z2gwSNRazP+SmBco7p6SCa4fYrtIE820PDXYZshbNrj2Z8Qfbmv7BQ1Lecl5L3G/w==",
"license": "MIT",
"engines": {
"node": ">= 14.0.0"
}
},
"node_modules/@algolia/client-insights": {
- "version": "5.49.2",
- "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.49.2.tgz",
- "integrity": "sha512-z14wfFs1T3eeYbCArC8pvntAWsPo9f6hnUGoj8IoRUJTwgJiiySECkm8bmmV47/x0oGHfsVn3kBdjMX0yq0sNA==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.51.0.tgz",
+ "integrity": "sha512-/gEwLlR7fQ7YjOW+ADRZ0NxLDtpTC61FSzlZ01Gdl1kTJfU0Rq3Y/TYqwxGxlQGcUiXtGzrpjxXWh3Y0TZD6NA==",
"license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.49.2",
- "@algolia/requester-browser-xhr": "5.49.2",
- "@algolia/requester-fetch": "5.49.2",
- "@algolia/requester-node-http": "5.49.2"
+ "@algolia/client-common": "5.51.0",
+ "@algolia/requester-browser-xhr": "5.51.0",
+ "@algolia/requester-fetch": "5.51.0",
+ "@algolia/requester-node-http": "5.51.0"
},
"engines": {
"node": ">= 14.0.0"
}
},
"node_modules/@algolia/client-personalization": {
- "version": "5.49.2",
- "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.49.2.tgz",
- "integrity": "sha512-GpRf7yuuAX93+Qt0JGEJZwgtL0MFdjFO9n7dn8s2pA9mTjzl0Sc5+uTk1VPbIAuf7xhCP9Mve+URGb6J+EYxgA==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.51.0.tgz",
+ "integrity": "sha512-nRwUN1Y2cKyOAFZyIBagkEfZSIhP05nWhT4Rjwl84lcjECssYggftrAODrZ4leakXxSGjhxs/AdaAFEIBqwVFA==",
"license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.49.2",
- "@algolia/requester-browser-xhr": "5.49.2",
- "@algolia/requester-fetch": "5.49.2",
- "@algolia/requester-node-http": "5.49.2"
+ "@algolia/client-common": "5.51.0",
+ "@algolia/requester-browser-xhr": "5.51.0",
+ "@algolia/requester-fetch": "5.51.0",
+ "@algolia/requester-node-http": "5.51.0"
},
"engines": {
"node": ">= 14.0.0"
}
},
"node_modules/@algolia/client-query-suggestions": {
- "version": "5.49.2",
- "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.49.2.tgz",
- "integrity": "sha512-HZwApmNkp0DiAjZcLYdQLddcG4Agb88OkojiAHGgcm5DVXobT5uSZ9lmyrbw/tmQBJwgu2CNw4zTyXoIB7YbPA==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.51.0.tgz",
+ "integrity": "sha512-pybzYCG7VoQKppo+z5iZOKpW8XqtFxhsAIRgEaNboCnfypKukiBHJAwB+pmr7vMZXBsOHwklGYWwCG82e8qshA==",
"license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.49.2",
- "@algolia/requester-browser-xhr": "5.49.2",
- "@algolia/requester-fetch": "5.49.2",
- "@algolia/requester-node-http": "5.49.2"
+ "@algolia/client-common": "5.51.0",
+ "@algolia/requester-browser-xhr": "5.51.0",
+ "@algolia/requester-fetch": "5.51.0",
+ "@algolia/requester-node-http": "5.51.0"
},
"engines": {
"node": ">= 14.0.0"
}
},
"node_modules/@algolia/client-search": {
- "version": "5.49.2",
- "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.49.2.tgz",
- "integrity": "sha512-y1IOpG6OSmTpGg/CT0YBb/EAhR2nsC18QWp9Jy8HO9iGySpcwaTvs5kHa17daP3BMTwWyaX9/1tDTDQshZzXdg==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.51.0.tgz",
+ "integrity": "sha512-DWVIlj6RqcvdhwP0gBU9OpOQPnHdcAk9jlT+z8rsNb2+liWv4eUlfQZ7saGBraFsnygEHD3PtdppIHvqwBAb5w==",
"license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.49.2",
- "@algolia/requester-browser-xhr": "5.49.2",
- "@algolia/requester-fetch": "5.49.2",
- "@algolia/requester-node-http": "5.49.2"
+ "@algolia/client-common": "5.51.0",
+ "@algolia/requester-browser-xhr": "5.51.0",
+ "@algolia/requester-fetch": "5.51.0",
+ "@algolia/requester-node-http": "5.51.0"
},
"engines": {
"node": ">= 14.0.0"
@@ -182,81 +183,81 @@
"license": "MIT"
},
"node_modules/@algolia/ingestion": {
- "version": "1.49.2",
- "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.49.2.tgz",
- "integrity": "sha512-YYJRjaZ2bqk923HxE4um7j/Cm3/xoSkF2HC2ZweOF8cXL3sqnlndSUYmCaxHFjNPWLaSHk2IfssX6J/tdKTULw==",
+ "version": "1.51.0",
+ "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.51.0.tgz",
+ "integrity": "sha512-bA25s12iUDJi/X8M7tWlPRT8GeOhls/yDbdoUqinz27lNqsOlcM1UrAxIKdIZ6lm3sXit+ewPIz1pS2x6rXu8g==",
"license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.49.2",
- "@algolia/requester-browser-xhr": "5.49.2",
- "@algolia/requester-fetch": "5.49.2",
- "@algolia/requester-node-http": "5.49.2"
+ "@algolia/client-common": "5.51.0",
+ "@algolia/requester-browser-xhr": "5.51.0",
+ "@algolia/requester-fetch": "5.51.0",
+ "@algolia/requester-node-http": "5.51.0"
},
"engines": {
"node": ">= 14.0.0"
}
},
"node_modules/@algolia/monitoring": {
- "version": "1.49.2",
- "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.49.2.tgz",
- "integrity": "sha512-9WgH+Dha39EQQyGKCHlGYnxW/7W19DIrEbCEbnzwAMpGAv1yTWCHMPXHxYa+LcL3eCp2V/5idD1zHNlIKmHRHg==",
+ "version": "1.51.0",
+ "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.51.0.tgz",
+ "integrity": "sha512-zj+RcE5e0NE0/ew6oEOTgOplPHry+w2oi7h0Y87lhdq4E0d7xLS31KVB8kKfCGkrG7AYtZvrcyvLOKS5d0no4Q==",
"license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.49.2",
- "@algolia/requester-browser-xhr": "5.49.2",
- "@algolia/requester-fetch": "5.49.2",
- "@algolia/requester-node-http": "5.49.2"
+ "@algolia/client-common": "5.51.0",
+ "@algolia/requester-browser-xhr": "5.51.0",
+ "@algolia/requester-fetch": "5.51.0",
+ "@algolia/requester-node-http": "5.51.0"
},
"engines": {
"node": ">= 14.0.0"
}
},
"node_modules/@algolia/recommend": {
- "version": "5.49.2",
- "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.49.2.tgz",
- "integrity": "sha512-K7Gp5u+JtVYgaVpBxF5rGiM+Ia8SsMdcAJMTDV93rwh00DKNllC19o1g+PwrDjDvyXNrnTEbofzbTs2GLfFyKA==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.51.0.tgz",
+ "integrity": "sha512-/HDgccfye1Rq3bPxaSCsvSEBHzSMmtpM9ZRGRtAuC62Cv+ql/76IWnxjGTDXtqIJ+/j7ZlFYAzq9fkp95wF2SQ==",
"license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.49.2",
- "@algolia/requester-browser-xhr": "5.49.2",
- "@algolia/requester-fetch": "5.49.2",
- "@algolia/requester-node-http": "5.49.2"
+ "@algolia/client-common": "5.51.0",
+ "@algolia/requester-browser-xhr": "5.51.0",
+ "@algolia/requester-fetch": "5.51.0",
+ "@algolia/requester-node-http": "5.51.0"
},
"engines": {
"node": ">= 14.0.0"
}
},
"node_modules/@algolia/requester-browser-xhr": {
- "version": "5.49.2",
- "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.49.2.tgz",
- "integrity": "sha512-3UhYCcWX6fbtN8ABcxZlhaQEwXFh3CsFtARyyadQShHMPe3mJV9Wel4FpJTa+seugRkbezFz0tt6aPTZSYTBuA==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.51.0.tgz",
+ "integrity": "sha512-nJdW+WBwGlXWMJbxxB7/AJPvNq0lLJSudXmIQCJbmH8jsOXQhRpAtoCD4ceLyJKv3ze9JbQu4Gqu5JDLckuFcw==",
"license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.49.2"
+ "@algolia/client-common": "5.51.0"
},
"engines": {
"node": ">= 14.0.0"
}
},
"node_modules/@algolia/requester-fetch": {
- "version": "5.49.2",
- "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.49.2.tgz",
- "integrity": "sha512-G94VKSGbsr+WjsDDOBe5QDQ82QYgxvpxRGJfCHZBnYKYsy/jv9qGIDb93biza+LJWizQBUtDj7bZzp3QZyzhPQ==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.51.0.tgz",
+ "integrity": "sha512-bsBgRI/1h1mjS3eCyfGau78yGZVmiDLmT1aU6dMnk75/T0SgKqnSKNpQ53xKoDYVChGDcNnpHXWpoUSo8MH1+w==",
"license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.49.2"
+ "@algolia/client-common": "5.51.0"
},
"engines": {
"node": ">= 14.0.0"
}
},
"node_modules/@algolia/requester-node-http": {
- "version": "5.49.2",
- "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.49.2.tgz",
- "integrity": "sha512-UuihBGHafG/ENsrcTGAn5rsOffrCIRuHMOsD85fZGLEY92ate+BMTUqxz60dv5zerh8ZumN4bRm8eW2z9L11jA==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.51.0.tgz",
+ "integrity": "sha512-zPrIDVPpmKWgrjmWOqpqrhqAhNjvVkjoj+mqw2NBPxEOuKNzP0H+Qz5NJLLTOepBVj1UFedFaF3AUgxLsB9ukQ==",
"license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.49.2"
+ "@algolia/client-common": "5.51.0"
},
"engines": {
"node": ">= 14.0.0"
@@ -434,9 +435,9 @@
}
},
"node_modules/@babel/helper-define-polyfill-provider": {
- "version": "0.6.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.7.tgz",
- "integrity": "sha512-6Fqi8MtQ/PweQ9xvux65emkLQ83uB+qAVtfHkC9UodyHMIZdxNI01HjLCLUtybElp2KY2XNE0nOgyP1E1vXw9w==",
+ "version": "0.6.8",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz",
+ "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==",
"license": "MIT",
"dependencies": {
"@babel/helper-compilation-targets": "^7.28.6",
@@ -611,22 +612,22 @@
}
},
"node_modules/@babel/helpers": {
- "version": "7.28.6",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz",
- "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==",
+ "version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz",
+ "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==",
"license": "MIT",
"dependencies": {
"@babel/template": "^7.28.6",
- "@babel/types": "^7.28.6"
+ "@babel/types": "^7.29.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/parser": {
- "version": "7.29.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz",
- "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==",
+ "version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz",
+ "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==",
"license": "MIT",
"dependencies": {
"@babel/types": "^7.29.0"
@@ -1751,9 +1752,9 @@
}
},
"node_modules/@babel/preset-env": {
- "version": "7.29.0",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.0.tgz",
- "integrity": "sha512-fNEdfc0yi16lt6IZo2Qxk3knHVdfMYX33czNb4v8yWhemoBhibCpQK/uYHtSKIiO+p/zd3+8fYVXhQdOVV608w==",
+ "version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.2.tgz",
+ "integrity": "sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw==",
"license": "MIT",
"dependencies": {
"@babel/compat-data": "^7.29.0",
@@ -1835,12 +1836,12 @@
}
},
"node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": {
- "version": "0.14.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.1.tgz",
- "integrity": "sha512-ENp89vM9Pw4kv/koBb5N2f9bDZsR0hpf3BdPMOg/pkS3pwO4dzNnQZVXtBbeyAadgm865DmQG2jMMLqmZXvuCw==",
+ "version": "0.14.2",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz",
+ "integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==",
"license": "MIT",
"dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.6.7",
+ "@babel/helper-define-polyfill-provider": "^0.6.8",
"core-js-compat": "^3.48.0"
},
"peerDependencies": {
@@ -1918,18 +1919,6 @@
"node": ">=6.9.0"
}
},
- "node_modules/@babel/runtime-corejs3": {
- "version": "7.29.0",
- "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.29.0.tgz",
- "integrity": "sha512-TgUkdp71C9pIbBcHudc+gXZnihEDOjUAmXO1VO4HHGES7QLZcShR0stfKIxLSNIYx2fqhmJChOjm/wkF8wv4gA==",
- "license": "MIT",
- "dependencies": {
- "core-js-pure": "^3.48.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
"node_modules/@babel/template": {
"version": "7.28.6",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
@@ -1975,6 +1964,12 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@colordx/core": {
+ "version": "5.4.3",
+ "resolved": "https://registry.npmjs.org/@colordx/core/-/core-5.4.3.tgz",
+ "integrity": "sha512-kIxYSfA5T8HXjav55UaaH/o/cKivF6jCCGIb8eqtcsfI46wsvlSiT8jMDyrl779qLec3c2c2oHBZo4oAhvbjrQ==",
+ "license": "MIT"
+ },
"node_modules/@colors/colors": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
@@ -3311,9 +3306,9 @@
}
},
"node_modules/@docsearch/core": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/@docsearch/core/-/core-4.6.0.tgz",
- "integrity": "sha512-IqG3oSd529jVRQ4dWZQKwZwQLVd//bWJTz2HiL0LkiHrI4U/vLrBasKB7lwQB/69nBAcCgs3TmudxTZSLH/ZQg==",
+ "version": "4.6.3",
+ "resolved": "https://registry.npmjs.org/@docsearch/core/-/core-4.6.3.tgz",
+ "integrity": "sha512-rUOujwIpxJRgD7+kicVsI3D5sqBvdiRTquzWBpTEXZs8ZXfGbfzpus5HqumaNYTppN2HvH8E2yNuRwYdHJeOlA==",
"license": "MIT",
"peerDependencies": {
"@types/react": ">= 16.8.0 < 20.0.0",
@@ -3333,20 +3328,20 @@
}
},
"node_modules/@docsearch/css": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-4.6.0.tgz",
- "integrity": "sha512-YlcAimkXclvqta47g47efzCM5CFxDwv2ClkDfEs/fC/Ak0OxPH2b3czwa4o8O1TRBf+ujFF2RiUwszz2fPVNJQ==",
+ "version": "4.6.3",
+ "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-4.6.3.tgz",
+ "integrity": "sha512-nlOwcXcsNAptQl4vlL4MA78qNJKO0Qlds5GuBjCoePgkebTXLSf8Qt1oyZ3YBshYupKXG9VRGEsk1zr23d+bzQ==",
"license": "MIT"
},
"node_modules/@docsearch/react": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-4.6.0.tgz",
- "integrity": "sha512-j8H5B4ArGxBPBWvw3X0J0Rm/Pjv2JDa2rV5OE0DLTp5oiBCptIJ/YlNOhZxuzbO2nwge+o3Z52nJRi3hryK9cA==",
+ "version": "4.6.3",
+ "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-4.6.3.tgz",
+ "integrity": "sha512-Bg2wdDsoQVlNCcEKuEJAU04tvHCqgx8rIu+uIoM4pRtcx3TBKJuXutJik3LTA8LRc9YEyHkrYUrmcC0D7BYf+g==",
"license": "MIT",
"dependencies": {
"@algolia/autocomplete-core": "1.19.2",
- "@docsearch/core": "4.6.0",
- "@docsearch/css": "4.6.0"
+ "@docsearch/core": "4.6.3",
+ "@docsearch/css": "4.6.3"
},
"peerDependencies": {
"@types/react": ">= 16.8.0 < 20.0.0",
@@ -3369,10 +3364,42 @@
}
}
},
+ "node_modules/@docsearch/react/node_modules/@algolia/autocomplete-core": {
+ "version": "1.19.2",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.19.2.tgz",
+ "integrity": "sha512-mKv7RyuAzXvwmq+0XRK8HqZXt9iZ5Kkm2huLjgn5JoCPtDy+oh9yxUMfDDaVCw0oyzZ1isdJBc7l9nuCyyR7Nw==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/autocomplete-plugin-algolia-insights": "1.19.2",
+ "@algolia/autocomplete-shared": "1.19.2"
+ }
+ },
+ "node_modules/@docsearch/react/node_modules/@algolia/autocomplete-plugin-algolia-insights": {
+ "version": "1.19.2",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.19.2.tgz",
+ "integrity": "sha512-TjxbcC/r4vwmnZaPwrHtkXNeqvlpdyR+oR9Wi2XyfORkiGkLTVhX2j+O9SaCCINbKoDfc+c2PB8NjfOnz7+oKg==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/autocomplete-shared": "1.19.2"
+ },
+ "peerDependencies": {
+ "search-insights": ">= 1 < 3"
+ }
+ },
+ "node_modules/@docsearch/react/node_modules/@algolia/autocomplete-shared": {
+ "version": "1.19.2",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.19.2.tgz",
+ "integrity": "sha512-jEazxZTVD2nLrC+wYlVHQgpBoBB5KPStrJxLzsIFl6Kqd1AlG9sIAGl39V5tECLpIQzB3Qa2T6ZPJ1ChkwMK/w==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@algolia/client-search": ">= 4.9.1 < 6",
+ "algoliasearch": ">= 4.9.1 < 6"
+ }
+ },
"node_modules/@docusaurus/babel": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.9.2.tgz",
- "integrity": "sha512-GEANdi/SgER+L7Japs25YiGil/AUDnFFHaCGPBbundxoWtCkA2lmy7/tFmgED4y1htAy6Oi4wkJEQdGssnw9MA==",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.10.0.tgz",
+ "integrity": "sha512-mqCJhCZNZUDg0zgDEaPTM4DnRsisa24HdqTy/qn/MQlbwhTb4WVaZg6ZyX6yIVKqTz8fS1hBMgM+98z+BeJJDg==",
"license": "MIT",
"dependencies": {
"@babel/core": "^7.25.9",
@@ -3383,10 +3410,9 @@
"@babel/preset-react": "^7.25.9",
"@babel/preset-typescript": "^7.25.9",
"@babel/runtime": "^7.25.9",
- "@babel/runtime-corejs3": "^7.25.9",
"@babel/traverse": "^7.25.9",
- "@docusaurus/logger": "3.9.2",
- "@docusaurus/utils": "3.9.2",
+ "@docusaurus/logger": "3.10.0",
+ "@docusaurus/utils": "3.10.0",
"babel-plugin-dynamic-import-node": "^2.3.3",
"fs-extra": "^11.1.1",
"tslib": "^2.6.0"
@@ -3396,17 +3422,17 @@
}
},
"node_modules/@docusaurus/bundler": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.9.2.tgz",
- "integrity": "sha512-ZOVi6GYgTcsZcUzjblpzk3wH1Fya2VNpd5jtHoCCFcJlMQ1EYXZetfAnRHLcyiFeBABaI1ltTYbOBtH/gahGVA==",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.10.0.tgz",
+ "integrity": "sha512-iONUGZGgp+lAkw/cJZH6irONcF4p8+278IsdRlq8lYhxGjkoNUs0w7F4gVXBYSNChq5KG5/JleTSsdJySShxow==",
"license": "MIT",
"dependencies": {
"@babel/core": "^7.25.9",
- "@docusaurus/babel": "3.9.2",
- "@docusaurus/cssnano-preset": "3.9.2",
- "@docusaurus/logger": "3.9.2",
- "@docusaurus/types": "3.9.2",
- "@docusaurus/utils": "3.9.2",
+ "@docusaurus/babel": "3.10.0",
+ "@docusaurus/cssnano-preset": "3.10.0",
+ "@docusaurus/logger": "3.10.0",
+ "@docusaurus/types": "3.10.0",
+ "@docusaurus/utils": "3.10.0",
"babel-loader": "^9.2.1",
"clean-css": "^5.3.3",
"copy-webpack-plugin": "^11.0.0",
@@ -3439,18 +3465,18 @@
}
},
"node_modules/@docusaurus/core": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.9.2.tgz",
- "integrity": "sha512-HbjwKeC+pHUFBfLMNzuSjqFE/58+rLVKmOU3lxQrpsxLBOGosYco/Q0GduBb0/jEMRiyEqjNT/01rRdOMWq5pw==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/babel": "3.9.2",
- "@docusaurus/bundler": "3.9.2",
- "@docusaurus/logger": "3.9.2",
- "@docusaurus/mdx-loader": "3.9.2",
- "@docusaurus/utils": "3.9.2",
- "@docusaurus/utils-common": "3.9.2",
- "@docusaurus/utils-validation": "3.9.2",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.10.0.tgz",
+ "integrity": "sha512-mgLdQsO8xppnQZc3LPi+Mf+PkPeyxJeIx11AXAq/14fsaMefInQiMEZUUmrc7J+956G/f7MwE7tn8KZgi3iRcA==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/babel": "3.10.0",
+ "@docusaurus/bundler": "3.10.0",
+ "@docusaurus/logger": "3.10.0",
+ "@docusaurus/mdx-loader": "3.10.0",
+ "@docusaurus/utils": "3.10.0",
+ "@docusaurus/utils-common": "3.10.0",
+ "@docusaurus/utils-validation": "3.10.0",
"boxen": "^6.2.1",
"chalk": "^4.1.2",
"chokidar": "^3.5.3",
@@ -3462,7 +3488,7 @@
"escape-html": "^1.0.3",
"eta": "^2.2.0",
"eval": "^0.1.8",
- "execa": "5.1.1",
+ "execa": "^5.1.1",
"fs-extra": "^11.1.1",
"html-tags": "^3.3.1",
"html-webpack-plugin": "^5.6.0",
@@ -3473,12 +3499,12 @@
"prompts": "^2.4.2",
"react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0",
"react-loadable": "npm:@docusaurus/react-loadable@6.0.0",
- "react-loadable-ssr-addon-v5-slorber": "^1.0.1",
+ "react-loadable-ssr-addon-v5-slorber": "^1.0.3",
"react-router": "^5.3.4",
"react-router-config": "^5.1.1",
"react-router-dom": "^5.3.4",
"semver": "^7.5.4",
- "serve-handler": "^6.1.6",
+ "serve-handler": "^6.1.7",
"tinypool": "^1.0.2",
"tslib": "^2.6.0",
"update-notifier": "^6.0.2",
@@ -3494,15 +3520,21 @@
"node": ">=20.0"
},
"peerDependencies": {
+ "@docusaurus/faster": "*",
"@mdx-js/react": "^3.0.0",
"react": "^18.0.0 || ^19.0.0",
"react-dom": "^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@docusaurus/faster": {
+ "optional": true
+ }
}
},
"node_modules/@docusaurus/cssnano-preset": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.9.2.tgz",
- "integrity": "sha512-8gBKup94aGttRduABsj7bpPFTX7kbwu+xh3K9NMCF5K4bWBqTFYW+REKHF6iBVDHRJ4grZdIPbvkiHd/XNKRMQ==",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.10.0.tgz",
+ "integrity": "sha512-qzSshTO1DB3TYW+dPUal5KHM7XPc5YQfzF3Kdb2NDACJUyGbNcFtw3tGkCJlYwhNCRKbZcmwraKUS1i5dcHdGg==",
"license": "MIT",
"dependencies": {
"cssnano-preset-advanced": "^6.1.2",
@@ -3514,10 +3546,34 @@
"node": ">=20.0"
}
},
+ "node_modules/@docusaurus/faster": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/faster/-/faster-3.10.0.tgz",
+ "integrity": "sha512-GNPtVH14ISjHfSwnHu3KiFGf86ICmJSQDeSv/QaanpBgiZGOtgZaslnC5q8WiguxM1EVkwcGxPuD8BXF4eggKw==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/types": "3.10.0",
+ "@rspack/core": "^1.7.10",
+ "@swc/core": "^1.7.39",
+ "@swc/html": "^1.13.5",
+ "browserslist": "^4.24.2",
+ "lightningcss": "^1.27.0",
+ "semver": "^7.5.4",
+ "swc-loader": "^0.2.6",
+ "tslib": "^2.6.0",
+ "webpack": "^5.95.0"
+ },
+ "engines": {
+ "node": ">=20.0"
+ },
+ "peerDependencies": {
+ "@docusaurus/types": "*"
+ }
+ },
"node_modules/@docusaurus/logger": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.9.2.tgz",
- "integrity": "sha512-/SVCc57ByARzGSU60c50rMyQlBuMIJCjcsJlkphxY6B0GV4UH3tcA1994N8fFfbJ9kX3jIBe/xg3XP5qBtGDbA==",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.10.0.tgz",
+ "integrity": "sha512-9jrZzFuBH1LDRlZ7cznAhCLmAZ3HSDqgwdrSSZdGHq9SPUOQgXXu8mnxe2ZRB9NS1PCpMTIOVUqDtZPIhMafZg==",
"license": "MIT",
"dependencies": {
"chalk": "^4.1.2",
@@ -3528,14 +3584,14 @@
}
},
"node_modules/@docusaurus/mdx-loader": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.9.2.tgz",
- "integrity": "sha512-wiYoGwF9gdd6rev62xDU8AAM8JuLI/hlwOtCzMmYcspEkzecKrP8J8X+KpYnTlACBUUtXNJpSoCwFWJhLRevzQ==",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.10.0.tgz",
+ "integrity": "sha512-mQQV97080AH4PYNs087l202NMDqRopZA4mg5W76ZZyTFrmWhJ3mHg+8A+drJVENxw5/Q+wHMHLgsx+9z1nEs0A==",
"license": "MIT",
"dependencies": {
- "@docusaurus/logger": "3.9.2",
- "@docusaurus/utils": "3.9.2",
- "@docusaurus/utils-validation": "3.9.2",
+ "@docusaurus/logger": "3.10.0",
+ "@docusaurus/utils": "3.10.0",
+ "@docusaurus/utils-validation": "3.10.0",
"@mdx-js/mdx": "^3.0.0",
"@slorber/remark-comment": "^1.0.0",
"escape-html": "^1.0.3",
@@ -3567,12 +3623,12 @@
}
},
"node_modules/@docusaurus/module-type-aliases": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.9.2.tgz",
- "integrity": "sha512-8qVe2QA9hVLzvnxP46ysuofJUIc/yYQ82tvA/rBTrnpXtCjNSFLxEZfd5U8cYZuJIVlkPxamsIgwd5tGZXfvew==",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.10.0.tgz",
+ "integrity": "sha512-/1O0Zg8w3DFrYX/I6Fbss7OJrtZw1QoyjDhegiFNHVi9A9Y0gQ3jUAytVxF6ywpAWpLyLxch8nN8H/V3XfzdJQ==",
"license": "MIT",
"dependencies": {
- "@docusaurus/types": "3.9.2",
+ "@docusaurus/types": "3.10.0",
"@types/history": "^4.7.11",
"@types/react": "*",
"@types/react-router-config": "*",
@@ -3586,16 +3642,16 @@
}
},
"node_modules/@docusaurus/plugin-client-redirects": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-3.9.2.tgz",
- "integrity": "sha512-lUgMArI9vyOYMzLRBUILcg9vcPTCyyI2aiuXq/4npcMVqOr6GfmwtmBYWSbNMlIUM0147smm4WhpXD0KFboffw==",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-3.10.0.tgz",
+ "integrity": "sha512-P+VLoLoZTc74so8+IbsaPZ33/mkf2BWL1CYXQpPRkl0v1QVCN2CgfsZY/8QtbYjQnx2upXUnv45abDhNcSggNw==",
"license": "MIT",
"dependencies": {
- "@docusaurus/core": "3.9.2",
- "@docusaurus/logger": "3.9.2",
- "@docusaurus/utils": "3.9.2",
- "@docusaurus/utils-common": "3.9.2",
- "@docusaurus/utils-validation": "3.9.2",
+ "@docusaurus/core": "3.10.0",
+ "@docusaurus/logger": "3.10.0",
+ "@docusaurus/utils": "3.10.0",
+ "@docusaurus/utils-common": "3.10.0",
+ "@docusaurus/utils-validation": "3.10.0",
"eta": "^2.2.0",
"fs-extra": "^11.1.1",
"lodash": "^4.17.21",
@@ -3610,20 +3666,21 @@
}
},
"node_modules/@docusaurus/plugin-content-blog": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.9.2.tgz",
- "integrity": "sha512-3I2HXy3L1QcjLJLGAoTvoBnpOwa6DPUa3Q0dMK19UTY9mhPkKQg/DYhAGTiBUKcTR0f08iw7kLPqOhIgdV3eVQ==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/core": "3.9.2",
- "@docusaurus/logger": "3.9.2",
- "@docusaurus/mdx-loader": "3.9.2",
- "@docusaurus/theme-common": "3.9.2",
- "@docusaurus/types": "3.9.2",
- "@docusaurus/utils": "3.9.2",
- "@docusaurus/utils-common": "3.9.2",
- "@docusaurus/utils-validation": "3.9.2",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.10.0.tgz",
+ "integrity": "sha512-RuTz68DhB7CL96QO5UsFbciD7GPYq6QV+YMfF9V0+N4ZgLhJIBgpVAr8GobrKF6NRe5cyWWETU5z5T834piG9g==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/core": "3.10.0",
+ "@docusaurus/logger": "3.10.0",
+ "@docusaurus/mdx-loader": "3.10.0",
+ "@docusaurus/theme-common": "3.10.0",
+ "@docusaurus/types": "3.10.0",
+ "@docusaurus/utils": "3.10.0",
+ "@docusaurus/utils-common": "3.10.0",
+ "@docusaurus/utils-validation": "3.10.0",
"cheerio": "1.0.0-rc.12",
+ "combine-promises": "^1.1.0",
"feed": "^4.2.2",
"fs-extra": "^11.1.1",
"lodash": "^4.17.21",
@@ -3644,20 +3701,20 @@
}
},
"node_modules/@docusaurus/plugin-content-docs": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.9.2.tgz",
- "integrity": "sha512-C5wZsGuKTY8jEYsqdxhhFOe1ZDjH0uIYJ9T/jebHwkyxqnr4wW0jTkB72OMqNjsoQRcb0JN3PcSeTwFlVgzCZg==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/core": "3.9.2",
- "@docusaurus/logger": "3.9.2",
- "@docusaurus/mdx-loader": "3.9.2",
- "@docusaurus/module-type-aliases": "3.9.2",
- "@docusaurus/theme-common": "3.9.2",
- "@docusaurus/types": "3.9.2",
- "@docusaurus/utils": "3.9.2",
- "@docusaurus/utils-common": "3.9.2",
- "@docusaurus/utils-validation": "3.9.2",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.10.0.tgz",
+ "integrity": "sha512-9BjHhf15ct8Z7TThTC0xRndKDVvMKmVsAGAN7W9FpNRzfMdScOGcXtLmcCWtJGvAezjOJIm6CxOYCy3Io5+RnQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/core": "3.10.0",
+ "@docusaurus/logger": "3.10.0",
+ "@docusaurus/mdx-loader": "3.10.0",
+ "@docusaurus/module-type-aliases": "3.10.0",
+ "@docusaurus/theme-common": "3.10.0",
+ "@docusaurus/types": "3.10.0",
+ "@docusaurus/utils": "3.10.0",
+ "@docusaurus/utils-common": "3.10.0",
+ "@docusaurus/utils-validation": "3.10.0",
"@types/react-router-config": "^5.0.7",
"combine-promises": "^1.1.0",
"fs-extra": "^11.1.1",
@@ -3677,16 +3734,16 @@
}
},
"node_modules/@docusaurus/plugin-content-pages": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.9.2.tgz",
- "integrity": "sha512-s4849w/p4noXUrGpPUF0BPqIAfdAe76BLaRGAGKZ1gTDNiGxGcpsLcwJ9OTi1/V8A+AzvsmI9pkjie2zjIQZKA==",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.10.0.tgz",
+ "integrity": "sha512-5amX8kEJI+nIGtuLVjYk59Y5utEJ3CHETFOPEE4cooIRLA4xM4iBsA6zFgu4ljcopeYwvBzFEWf5g2I6Yb9SkA==",
"license": "MIT",
"dependencies": {
- "@docusaurus/core": "3.9.2",
- "@docusaurus/mdx-loader": "3.9.2",
- "@docusaurus/types": "3.9.2",
- "@docusaurus/utils": "3.9.2",
- "@docusaurus/utils-validation": "3.9.2",
+ "@docusaurus/core": "3.10.0",
+ "@docusaurus/mdx-loader": "3.10.0",
+ "@docusaurus/types": "3.10.0",
+ "@docusaurus/utils": "3.10.0",
+ "@docusaurus/utils-validation": "3.10.0",
"fs-extra": "^11.1.1",
"tslib": "^2.6.0",
"webpack": "^5.88.1"
@@ -3700,15 +3757,15 @@
}
},
"node_modules/@docusaurus/plugin-css-cascade-layers": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-css-cascade-layers/-/plugin-css-cascade-layers-3.9.2.tgz",
- "integrity": "sha512-w1s3+Ss+eOQbscGM4cfIFBlVg/QKxyYgj26k5AnakuHkKxH6004ZtuLe5awMBotIYF2bbGDoDhpgQ4r/kcj4rQ==",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-css-cascade-layers/-/plugin-css-cascade-layers-3.10.0.tgz",
+ "integrity": "sha512-6q1vtt5FJcg5osgkHeM1euErECNqEZ5Z1j69yiNx2luEBIso+nxCkS9nqj8w+MK5X7rvKEToGhFfOFWncs51pQ==",
"license": "MIT",
"dependencies": {
- "@docusaurus/core": "3.9.2",
- "@docusaurus/types": "3.9.2",
- "@docusaurus/utils": "3.9.2",
- "@docusaurus/utils-validation": "3.9.2",
+ "@docusaurus/core": "3.10.0",
+ "@docusaurus/types": "3.10.0",
+ "@docusaurus/utils": "3.10.0",
+ "@docusaurus/utils-validation": "3.10.0",
"tslib": "^2.6.0"
},
"engines": {
@@ -3716,14 +3773,14 @@
}
},
"node_modules/@docusaurus/plugin-debug": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.9.2.tgz",
- "integrity": "sha512-j7a5hWuAFxyQAkilZwhsQ/b3T7FfHZ+0dub6j/GxKNFJp2h9qk/P1Bp7vrGASnvA9KNQBBL1ZXTe7jlh4VdPdA==",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.10.0.tgz",
+ "integrity": "sha512-XcljKN+G+nmmK69uQA1d9BlYU3ZftG3T3zpK8/7Hf/wrOlV7TA4Ampdrdwkg0jElKdKAoSnPhCO0/U3bQGsVQQ==",
"license": "MIT",
"dependencies": {
- "@docusaurus/core": "3.9.2",
- "@docusaurus/types": "3.9.2",
- "@docusaurus/utils": "3.9.2",
+ "@docusaurus/core": "3.10.0",
+ "@docusaurus/types": "3.10.0",
+ "@docusaurus/utils": "3.10.0",
"fs-extra": "^11.1.1",
"react-json-view-lite": "^2.3.0",
"tslib": "^2.6.0"
@@ -3737,14 +3794,14 @@
}
},
"node_modules/@docusaurus/plugin-google-analytics": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.9.2.tgz",
- "integrity": "sha512-mAwwQJ1Us9jL/lVjXtErXto4p4/iaLlweC54yDUK1a97WfkC6Z2k5/769JsFgwOwOP+n5mUQGACXOEQ0XDuVUw==",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.10.0.tgz",
+ "integrity": "sha512-hTEoodatpBZnUat5nFExbuTGA1lhWGy7vZGuTew5Q3QDtGKFpSJLYmZJhdTjvCFwv1+qQ67hgAVlKdJOB8TXow==",
"license": "MIT",
"dependencies": {
- "@docusaurus/core": "3.9.2",
- "@docusaurus/types": "3.9.2",
- "@docusaurus/utils-validation": "3.9.2",
+ "@docusaurus/core": "3.10.0",
+ "@docusaurus/types": "3.10.0",
+ "@docusaurus/utils-validation": "3.10.0",
"tslib": "^2.6.0"
},
"engines": {
@@ -3756,15 +3813,15 @@
}
},
"node_modules/@docusaurus/plugin-google-gtag": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.9.2.tgz",
- "integrity": "sha512-YJ4lDCphabBtw19ooSlc1MnxtYGpjFV9rEdzjLsUnBCeis2djUyCozZaFhCg6NGEwOn7HDDyMh0yzcdRpnuIvA==",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.10.0.tgz",
+ "integrity": "sha512-iB/Zzjv/eelJRbdULZqzWCbgMgJ7ht4ONVjXtN3+BI/muil6S87gQ1OJyPwlXD+ELdKkitC7bWv5eJdYOZLhrQ==",
"license": "MIT",
"dependencies": {
- "@docusaurus/core": "3.9.2",
- "@docusaurus/types": "3.9.2",
- "@docusaurus/utils-validation": "3.9.2",
- "@types/gtag.js": "^0.0.12",
+ "@docusaurus/core": "3.10.0",
+ "@docusaurus/types": "3.10.0",
+ "@docusaurus/utils-validation": "3.10.0",
+ "@types/gtag.js": "^0.0.20",
"tslib": "^2.6.0"
},
"engines": {
@@ -3776,14 +3833,14 @@
}
},
"node_modules/@docusaurus/plugin-google-tag-manager": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.9.2.tgz",
- "integrity": "sha512-LJtIrkZN/tuHD8NqDAW1Tnw0ekOwRTfobWPsdO15YxcicBo2ykKF0/D6n0vVBfd3srwr9Z6rzrIWYrMzBGrvNw==",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.10.0.tgz",
+ "integrity": "sha512-FEjZxqKgLHa+Wez/EgKxRwvArNCWIScfyEQD95rot7jkxp6nonjI5XIbGfO/iYhM5Qinwe8aIEQHP2KZtpqVuA==",
"license": "MIT",
"dependencies": {
- "@docusaurus/core": "3.9.2",
- "@docusaurus/types": "3.9.2",
- "@docusaurus/utils-validation": "3.9.2",
+ "@docusaurus/core": "3.10.0",
+ "@docusaurus/types": "3.10.0",
+ "@docusaurus/utils-validation": "3.10.0",
"tslib": "^2.6.0"
},
"engines": {
@@ -3795,17 +3852,17 @@
}
},
"node_modules/@docusaurus/plugin-sitemap": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.9.2.tgz",
- "integrity": "sha512-WLh7ymgDXjG8oPoM/T4/zUP7KcSuFYRZAUTl8vR6VzYkfc18GBM4xLhcT+AKOwun6kBivYKUJf+vlqYJkm+RHw==",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.10.0.tgz",
+ "integrity": "sha512-DVTSLjB97hIjmayGnGcBfognCeI7ZuUKgEnU7Oz81JYqXtVg94mVTthDjq3QHTylYNeCUbkaW8VF0FDLcc8pPw==",
"license": "MIT",
"dependencies": {
- "@docusaurus/core": "3.9.2",
- "@docusaurus/logger": "3.9.2",
- "@docusaurus/types": "3.9.2",
- "@docusaurus/utils": "3.9.2",
- "@docusaurus/utils-common": "3.9.2",
- "@docusaurus/utils-validation": "3.9.2",
+ "@docusaurus/core": "3.10.0",
+ "@docusaurus/logger": "3.10.0",
+ "@docusaurus/types": "3.10.0",
+ "@docusaurus/utils": "3.10.0",
+ "@docusaurus/utils-common": "3.10.0",
+ "@docusaurus/utils-validation": "3.10.0",
"fs-extra": "^11.1.1",
"sitemap": "^7.1.1",
"tslib": "^2.6.0"
@@ -3819,15 +3876,15 @@
}
},
"node_modules/@docusaurus/plugin-svgr": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-svgr/-/plugin-svgr-3.9.2.tgz",
- "integrity": "sha512-n+1DE+5b3Lnf27TgVU5jM1d4x5tUh2oW5LTsBxJX4PsAPV0JGcmI6p3yLYtEY0LRVEIJh+8RsdQmRE66wSV8mw==",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-svgr/-/plugin-svgr-3.10.0.tgz",
+ "integrity": "sha512-lNljBESaETZqVBMPqkrGchr+UPT1eZzEPLmJhz8I76BxbjqgsUnRvrq6lQJ9sYjgmgX52KB7kkgczqd2yzoswQ==",
"license": "MIT",
"dependencies": {
- "@docusaurus/core": "3.9.2",
- "@docusaurus/types": "3.9.2",
- "@docusaurus/utils": "3.9.2",
- "@docusaurus/utils-validation": "3.9.2",
+ "@docusaurus/core": "3.10.0",
+ "@docusaurus/types": "3.10.0",
+ "@docusaurus/utils": "3.10.0",
+ "@docusaurus/utils-validation": "3.10.0",
"@svgr/core": "8.1.0",
"@svgr/webpack": "^8.1.0",
"tslib": "^2.6.0",
@@ -3842,26 +3899,26 @@
}
},
"node_modules/@docusaurus/preset-classic": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.9.2.tgz",
- "integrity": "sha512-IgyYO2Gvaigi21LuDIe+nvmN/dfGXAiMcV/murFqcpjnZc7jxFAxW+9LEjdPt61uZLxG4ByW/oUmX/DDK9t/8w==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/core": "3.9.2",
- "@docusaurus/plugin-content-blog": "3.9.2",
- "@docusaurus/plugin-content-docs": "3.9.2",
- "@docusaurus/plugin-content-pages": "3.9.2",
- "@docusaurus/plugin-css-cascade-layers": "3.9.2",
- "@docusaurus/plugin-debug": "3.9.2",
- "@docusaurus/plugin-google-analytics": "3.9.2",
- "@docusaurus/plugin-google-gtag": "3.9.2",
- "@docusaurus/plugin-google-tag-manager": "3.9.2",
- "@docusaurus/plugin-sitemap": "3.9.2",
- "@docusaurus/plugin-svgr": "3.9.2",
- "@docusaurus/theme-classic": "3.9.2",
- "@docusaurus/theme-common": "3.9.2",
- "@docusaurus/theme-search-algolia": "3.9.2",
- "@docusaurus/types": "3.9.2"
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.10.0.tgz",
+ "integrity": "sha512-kw/Ye02Hc6xP1OdTswy8yxQEHg0fdPpyWAQRxr5b2x3h7LlG2Zgbb5BDFROnXDDMpUxB7YejlocJIE5HIEfpNA==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/core": "3.10.0",
+ "@docusaurus/plugin-content-blog": "3.10.0",
+ "@docusaurus/plugin-content-docs": "3.10.0",
+ "@docusaurus/plugin-content-pages": "3.10.0",
+ "@docusaurus/plugin-css-cascade-layers": "3.10.0",
+ "@docusaurus/plugin-debug": "3.10.0",
+ "@docusaurus/plugin-google-analytics": "3.10.0",
+ "@docusaurus/plugin-google-gtag": "3.10.0",
+ "@docusaurus/plugin-google-tag-manager": "3.10.0",
+ "@docusaurus/plugin-sitemap": "3.10.0",
+ "@docusaurus/plugin-svgr": "3.10.0",
+ "@docusaurus/theme-classic": "3.10.0",
+ "@docusaurus/theme-common": "3.10.0",
+ "@docusaurus/theme-search-algolia": "3.10.0",
+ "@docusaurus/types": "3.10.0"
},
"engines": {
"node": ">=20.0"
@@ -3872,26 +3929,27 @@
}
},
"node_modules/@docusaurus/theme-classic": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.9.2.tgz",
- "integrity": "sha512-IGUsArG5hhekXd7RDb11v94ycpJpFdJPkLnt10fFQWOVxAtq5/D7hT6lzc2fhyQKaaCE62qVajOMKL7OiAFAIA==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/core": "3.9.2",
- "@docusaurus/logger": "3.9.2",
- "@docusaurus/mdx-loader": "3.9.2",
- "@docusaurus/module-type-aliases": "3.9.2",
- "@docusaurus/plugin-content-blog": "3.9.2",
- "@docusaurus/plugin-content-docs": "3.9.2",
- "@docusaurus/plugin-content-pages": "3.9.2",
- "@docusaurus/theme-common": "3.9.2",
- "@docusaurus/theme-translations": "3.9.2",
- "@docusaurus/types": "3.9.2",
- "@docusaurus/utils": "3.9.2",
- "@docusaurus/utils-common": "3.9.2",
- "@docusaurus/utils-validation": "3.9.2",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.10.0.tgz",
+ "integrity": "sha512-9msCAsRdN+UG+RwPwCFb0uKy4tGoPh5YfBozXeGUtIeAgsMdn6f3G/oY861luZ3t8S2ET8S9Y/1GnpJAGWytww==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/core": "3.10.0",
+ "@docusaurus/logger": "3.10.0",
+ "@docusaurus/mdx-loader": "3.10.0",
+ "@docusaurus/module-type-aliases": "3.10.0",
+ "@docusaurus/plugin-content-blog": "3.10.0",
+ "@docusaurus/plugin-content-docs": "3.10.0",
+ "@docusaurus/plugin-content-pages": "3.10.0",
+ "@docusaurus/theme-common": "3.10.0",
+ "@docusaurus/theme-translations": "3.10.0",
+ "@docusaurus/types": "3.10.0",
+ "@docusaurus/utils": "3.10.0",
+ "@docusaurus/utils-common": "3.10.0",
+ "@docusaurus/utils-validation": "3.10.0",
"@mdx-js/react": "^3.0.0",
"clsx": "^2.0.0",
+ "copy-text-to-clipboard": "^3.2.0",
"infima": "0.2.0-alpha.45",
"lodash": "^4.17.21",
"nprogress": "^0.2.0",
@@ -3912,15 +3970,15 @@
}
},
"node_modules/@docusaurus/theme-common": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.9.2.tgz",
- "integrity": "sha512-6c4DAbR6n6nPbnZhY2V3tzpnKnGL+6aOsLvFL26VRqhlczli9eWG0VDUNoCQEPnGwDMhPS42UhSAnz5pThm5Ag==",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.10.0.tgz",
+ "integrity": "sha512-Dkp1YXKn16ByCJAdIjbDIOpVb4Z66MsVD694/ilX1vAAHaVEMrVsf/NPd9VgreyFx08rJ9GqV1MtzsbTcU73Kg==",
"license": "MIT",
"dependencies": {
- "@docusaurus/mdx-loader": "3.9.2",
- "@docusaurus/module-type-aliases": "3.9.2",
- "@docusaurus/utils": "3.9.2",
- "@docusaurus/utils-common": "3.9.2",
+ "@docusaurus/mdx-loader": "3.10.0",
+ "@docusaurus/module-type-aliases": "3.10.0",
+ "@docusaurus/utils": "3.10.0",
+ "@docusaurus/utils-common": "3.10.0",
"@types/history": "^4.7.11",
"@types/react": "*",
"@types/react-router-config": "*",
@@ -3940,19 +3998,20 @@
}
},
"node_modules/@docusaurus/theme-search-algolia": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.9.2.tgz",
- "integrity": "sha512-GBDSFNwjnh5/LdkxCKQHkgO2pIMX1447BxYUBG2wBiajS21uj64a+gH/qlbQjDLxmGrbrllBrtJkUHxIsiwRnw==",
- "license": "MIT",
- "dependencies": {
- "@docsearch/react": "^3.9.0 || ^4.1.0",
- "@docusaurus/core": "3.9.2",
- "@docusaurus/logger": "3.9.2",
- "@docusaurus/plugin-content-docs": "3.9.2",
- "@docusaurus/theme-common": "3.9.2",
- "@docusaurus/theme-translations": "3.9.2",
- "@docusaurus/utils": "3.9.2",
- "@docusaurus/utils-validation": "3.9.2",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.10.0.tgz",
+ "integrity": "sha512-f5FPKI08e3JRG63vR/o4qeuUVHUHzFzM0nnF+AkB67soAZgNsKJRf2qmUZvlQkGwlV+QFkKe4D0ANMh1jToU3g==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/autocomplete-core": "^1.19.2",
+ "@docsearch/react": "^3.9.0 || ^4.3.2",
+ "@docusaurus/core": "3.10.0",
+ "@docusaurus/logger": "3.10.0",
+ "@docusaurus/plugin-content-docs": "3.10.0",
+ "@docusaurus/theme-common": "3.10.0",
+ "@docusaurus/theme-translations": "3.10.0",
+ "@docusaurus/utils": "3.10.0",
+ "@docusaurus/utils-validation": "3.10.0",
"algoliasearch": "^5.37.0",
"algoliasearch-helper": "^3.26.0",
"clsx": "^2.0.0",
@@ -3971,9 +4030,9 @@
}
},
"node_modules/@docusaurus/theme-translations": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.9.2.tgz",
- "integrity": "sha512-vIryvpP18ON9T9rjgMRFLr2xJVDpw1rtagEGf8Ccce4CkTrvM/fRB8N2nyWYOW5u3DdjkwKw5fBa+3tbn9P4PA==",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.10.0.tgz",
+ "integrity": "sha512-L9IbFLwTc5+XdgH45iQYufLn0SVZd6BUNelDbKIFlH+E4hhjuj/XHWAFMX/w2K59rfy8wak9McOaei7BSUfRPA==",
"license": "MIT",
"dependencies": {
"fs-extra": "^11.1.1",
@@ -3984,16 +4043,16 @@
}
},
"node_modules/@docusaurus/tsconfig": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/tsconfig/-/tsconfig-3.9.2.tgz",
- "integrity": "sha512-j6/Fp4Rlpxsc632cnRnl5HpOWeb6ZKssDj6/XzzAzVGXXfm9Eptx3rxCC+fDzySn9fHTS+CWJjPineCR1bB5WQ==",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/tsconfig/-/tsconfig-3.10.0.tgz",
+ "integrity": "sha512-TXdC3WXuPrdQAexLvjUJfnYf3YKEgEqAs5nK0Q88pRBCW7t7oN4ILvWYb3A5Z1wlSXyXGWW/mCUmLEhdWsjnDQ==",
"dev": true,
"license": "MIT"
},
"node_modules/@docusaurus/types": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.9.2.tgz",
- "integrity": "sha512-Ux1JUNswg+EfUEmajJjyhIohKceitY/yzjRUpu04WXgvVz+fbhVC0p+R0JhvEu4ytw8zIAys2hrdpQPBHRIa8Q==",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.10.0.tgz",
+ "integrity": "sha512-F0dOt3FOoO20rRaFK7whGFQZ3ggyrWEdQc/c8/UiRuzhtg4y1w9FspXH5zpCT07uMnJKBPGh+qNazbNlCQqvSw==",
"license": "MIT",
"dependencies": {
"@mdx-js/mdx": "^3.0.0",
@@ -4027,16 +4086,16 @@
}
},
"node_modules/@docusaurus/utils": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.9.2.tgz",
- "integrity": "sha512-lBSBiRruFurFKXr5Hbsl2thmGweAPmddhF3jb99U4EMDA5L+e5Y1rAkOS07Nvrup7HUMBDrCV45meaxZnt28nQ==",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.10.0.tgz",
+ "integrity": "sha512-T3B0WTigsIthe0D4LQa2k+7bJY+c3WS+Wq2JhcznOSpn1lSN64yNtHQXboCj3QnUs1EuAZszQG1SHKu5w5ZrlA==",
"license": "MIT",
"dependencies": {
- "@docusaurus/logger": "3.9.2",
- "@docusaurus/types": "3.9.2",
- "@docusaurus/utils-common": "3.9.2",
+ "@docusaurus/logger": "3.10.0",
+ "@docusaurus/types": "3.10.0",
+ "@docusaurus/utils-common": "3.10.0",
"escape-string-regexp": "^4.0.0",
- "execa": "5.1.1",
+ "execa": "^5.1.1",
"file-loader": "^6.2.0",
"fs-extra": "^11.1.1",
"github-slugger": "^1.5.0",
@@ -4059,12 +4118,12 @@
}
},
"node_modules/@docusaurus/utils-common": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.9.2.tgz",
- "integrity": "sha512-I53UC1QctruA6SWLvbjbhCpAw7+X7PePoe5pYcwTOEXD/PxeP8LnECAhTHHwWCblyUX5bMi4QLRkxvyZ+IT8Aw==",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.10.0.tgz",
+ "integrity": "sha512-JyL7sb9QVDgYvudIS81Dv0lsWm7le0vGZSDwsztxWam1SPBqrnkvBy9UYL/amh6pbybkyYTd3CMTkO24oMlCSw==",
"license": "MIT",
"dependencies": {
- "@docusaurus/types": "3.9.2",
+ "@docusaurus/types": "3.10.0",
"tslib": "^2.6.0"
},
"engines": {
@@ -4072,14 +4131,14 @@
}
},
"node_modules/@docusaurus/utils-validation": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.9.2.tgz",
- "integrity": "sha512-l7yk3X5VnNmATbwijJkexdhulNsQaNDwoagiwujXoxFbWLcxHQqNQ+c/IAlzrfMMOfa/8xSBZ7KEKDesE/2J7A==",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.10.0.tgz",
+ "integrity": "sha512-c+6n2+ZPOJtWWc8Bb/EYdpSDfjYEScdCu9fB/SNjOmSCf1IdVnGf2T53o0tsz0gDRtCL90tifTL0JE/oMuP1Mw==",
"license": "MIT",
"dependencies": {
- "@docusaurus/logger": "3.9.2",
- "@docusaurus/utils": "3.9.2",
- "@docusaurus/utils-common": "3.9.2",
+ "@docusaurus/logger": "3.10.0",
+ "@docusaurus/utils": "3.10.0",
+ "@docusaurus/utils-common": "3.10.0",
"fs-extra": "^11.2.0",
"joi": "^17.9.2",
"js-yaml": "^4.1.0",
@@ -4822,6 +4881,59 @@
"react": ">=16"
}
},
+ "node_modules/@module-federation/error-codes": {
+ "version": "0.22.0",
+ "resolved": "https://registry.npmjs.org/@module-federation/error-codes/-/error-codes-0.22.0.tgz",
+ "integrity": "sha512-xF9SjnEy7vTdx+xekjPCV5cIHOGCkdn3pIxo9vU7gEZMIw0SvAEdsy6Uh17xaCpm8V0FWvR0SZoK9Ik6jGOaug==",
+ "license": "MIT"
+ },
+ "node_modules/@module-federation/runtime": {
+ "version": "0.22.0",
+ "resolved": "https://registry.npmjs.org/@module-federation/runtime/-/runtime-0.22.0.tgz",
+ "integrity": "sha512-38g5iPju2tPC3KHMPxRKmy4k4onNp6ypFPS1eKGsNLUkXgHsPMBFqAjDw96iEcjri91BrahG4XcdyKi97xZzlA==",
+ "license": "MIT",
+ "dependencies": {
+ "@module-federation/error-codes": "0.22.0",
+ "@module-federation/runtime-core": "0.22.0",
+ "@module-federation/sdk": "0.22.0"
+ }
+ },
+ "node_modules/@module-federation/runtime-core": {
+ "version": "0.22.0",
+ "resolved": "https://registry.npmjs.org/@module-federation/runtime-core/-/runtime-core-0.22.0.tgz",
+ "integrity": "sha512-GR1TcD6/s7zqItfhC87zAp30PqzvceoeDGYTgF3Vx2TXvsfDrhP6Qw9T4vudDQL3uJRne6t7CzdT29YyVxlgIA==",
+ "license": "MIT",
+ "dependencies": {
+ "@module-federation/error-codes": "0.22.0",
+ "@module-federation/sdk": "0.22.0"
+ }
+ },
+ "node_modules/@module-federation/runtime-tools": {
+ "version": "0.22.0",
+ "resolved": "https://registry.npmjs.org/@module-federation/runtime-tools/-/runtime-tools-0.22.0.tgz",
+ "integrity": "sha512-4ScUJ/aUfEernb+4PbLdhM/c60VHl698Gn1gY21m9vyC1Ucn69fPCA1y2EwcCB7IItseRMoNhdcWQnzt/OPCNA==",
+ "license": "MIT",
+ "dependencies": {
+ "@module-federation/runtime": "0.22.0",
+ "@module-federation/webpack-bundler-runtime": "0.22.0"
+ }
+ },
+ "node_modules/@module-federation/sdk": {
+ "version": "0.22.0",
+ "resolved": "https://registry.npmjs.org/@module-federation/sdk/-/sdk-0.22.0.tgz",
+ "integrity": "sha512-x4aFNBKn2KVQRuNVC5A7SnrSCSqyfIWmm1DvubjbO9iKFe7ith5niw8dqSFBekYBg2Fwy+eMg4sEFNVvCAdo6g==",
+ "license": "MIT"
+ },
+ "node_modules/@module-federation/webpack-bundler-runtime": {
+ "version": "0.22.0",
+ "resolved": "https://registry.npmjs.org/@module-federation/webpack-bundler-runtime/-/webpack-bundler-runtime-0.22.0.tgz",
+ "integrity": "sha512-aM8gCqXu+/4wBmJtVeMeeMN5guw3chf+2i6HajKtQv7SJfxV/f4IyNQJUeUQu9HfiAZHjqtMV5Lvq/Lvh8LdyA==",
+ "license": "MIT",
+ "dependencies": {
+ "@module-federation/runtime": "0.22.0",
+ "@module-federation/sdk": "0.22.0"
+ }
+ },
"node_modules/@napi-rs/wasm-runtime": {
"version": "0.2.12",
"resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz",
@@ -5329,6 +5441,206 @@
"integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==",
"license": "MIT"
},
+ "node_modules/@rspack/binding": {
+ "version": "1.7.11",
+ "resolved": "https://registry.npmjs.org/@rspack/binding/-/binding-1.7.11.tgz",
+ "integrity": "sha512-2MGdy2s2HimsDT444Bp5XnALzNRxuBNc7y0JzyuqKbHBywd4x2NeXyhWXXoxufaCFu5PBc9Qq9jyfjW2Aeh06Q==",
+ "license": "MIT",
+ "optionalDependencies": {
+ "@rspack/binding-darwin-arm64": "1.7.11",
+ "@rspack/binding-darwin-x64": "1.7.11",
+ "@rspack/binding-linux-arm64-gnu": "1.7.11",
+ "@rspack/binding-linux-arm64-musl": "1.7.11",
+ "@rspack/binding-linux-x64-gnu": "1.7.11",
+ "@rspack/binding-linux-x64-musl": "1.7.11",
+ "@rspack/binding-wasm32-wasi": "1.7.11",
+ "@rspack/binding-win32-arm64-msvc": "1.7.11",
+ "@rspack/binding-win32-ia32-msvc": "1.7.11",
+ "@rspack/binding-win32-x64-msvc": "1.7.11"
+ }
+ },
+ "node_modules/@rspack/binding-darwin-arm64": {
+ "version": "1.7.11",
+ "resolved": "https://registry.npmjs.org/@rspack/binding-darwin-arm64/-/binding-darwin-arm64-1.7.11.tgz",
+ "integrity": "sha512-oduECiZVqbO5zlVw+q7Vy65sJFth99fWPTyucwvLJJtJkPL5n17Uiql2cYP6Ijn0pkqtf1SXgK8WjiKLG5bIig==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rspack/binding-darwin-x64": {
+ "version": "1.7.11",
+ "resolved": "https://registry.npmjs.org/@rspack/binding-darwin-x64/-/binding-darwin-x64-1.7.11.tgz",
+ "integrity": "sha512-a1+TtTE9ap6RalgFi7FGIgkJP6O4Vy6ctv+9WGJy53E4kuqHR0RygzaiVxCI/GMc/vBT9vY23hyrpWb3d1vtXA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rspack/binding-linux-arm64-gnu": {
+ "version": "1.7.11",
+ "resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.7.11.tgz",
+ "integrity": "sha512-P0QrGRPbTWu6RKWfN0bDtbnEps3rXH0MWIMreZABoUrVmNQKtXR6e73J3ub6a+di5s2+K0M2LJ9Bh2/H4UsDUA==",
+ "cpu": [
+ "arm64"
+ ],
+ "libc": [
+ "glibc"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rspack/binding-linux-arm64-musl": {
+ "version": "1.7.11",
+ "resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.7.11.tgz",
+ "integrity": "sha512-6ky7R43VMjWwmx3Yx7Jl7faLBBMAgMDt+/bN35RgwjiPgsIByz65EwytUVuW9rikB43BGHvA/eqlnjLrUzNBqw==",
+ "cpu": [
+ "arm64"
+ ],
+ "libc": [
+ "musl"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rspack/binding-linux-x64-gnu": {
+ "version": "1.7.11",
+ "resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.7.11.tgz",
+ "integrity": "sha512-cuOJMfCOvb2Wgsry5enXJ3iT1FGUjdPqtGUBVupQlEG4ntSYsQ2PtF4wIDVasR3wdxC5nQbipOrDiN/u6fYsdQ==",
+ "cpu": [
+ "x64"
+ ],
+ "libc": [
+ "glibc"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rspack/binding-linux-x64-musl": {
+ "version": "1.7.11",
+ "resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-1.7.11.tgz",
+ "integrity": "sha512-CoK37hva4AmHGh3VCsQXmGr40L36m1/AdnN5LEjUX6kx5rEH7/1nEBN6Ii72pejqDVvk9anEROmPDiPw10tpFg==",
+ "cpu": [
+ "x64"
+ ],
+ "libc": [
+ "musl"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rspack/binding-wasm32-wasi": {
+ "version": "1.7.11",
+ "resolved": "https://registry.npmjs.org/@rspack/binding-wasm32-wasi/-/binding-wasm32-wasi-1.7.11.tgz",
+ "integrity": "sha512-OtrmnPUVJMxjNa3eDMfHyPdtlLRmmp/aIm0fQHlAOATbZvlGm12q7rhPW5BXTu1yh+1rQ1/uqvz+SzKEZXuJaQ==",
+ "cpu": [
+ "wasm32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@napi-rs/wasm-runtime": "1.0.7"
+ }
+ },
+ "node_modules/@rspack/binding-wasm32-wasi/node_modules/@napi-rs/wasm-runtime": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.0.7.tgz",
+ "integrity": "sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/core": "^1.5.0",
+ "@emnapi/runtime": "^1.5.0",
+ "@tybys/wasm-util": "^0.10.1"
+ }
+ },
+ "node_modules/@rspack/binding-win32-arm64-msvc": {
+ "version": "1.7.11",
+ "resolved": "https://registry.npmjs.org/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.7.11.tgz",
+ "integrity": "sha512-lObFW6e5lCWNgTBNwT//yiEDbsxm9QG4BYUojqeXxothuzJ/L6ibXz6+gLMvbOvLGV3nKgkXmx8GvT9WDKR0mA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rspack/binding-win32-ia32-msvc": {
+ "version": "1.7.11",
+ "resolved": "https://registry.npmjs.org/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.7.11.tgz",
+ "integrity": "sha512-0pYGnZd8PPqNR68zQ8skamqNAXEA1sUfXuAdYcknIIRq2wsbiwFzIc0Pov1cIfHYab37G7sSIPBiOUdOWF5Ivw==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rspack/binding-win32-x64-msvc": {
+ "version": "1.7.11",
+ "resolved": "https://registry.npmjs.org/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.7.11.tgz",
+ "integrity": "sha512-EeQXayoQk/uBkI3pdoXfQBXNIUrADq56L3s/DFyM2pJeUDrWmhfIw2UFIGkYPTMSCo8F2JcdcGM32FGJrSnU0Q==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rspack/core": {
+ "version": "1.7.11",
+ "resolved": "https://registry.npmjs.org/@rspack/core/-/core-1.7.11.tgz",
+ "integrity": "sha512-rsD9b+Khmot5DwCMiB3cqTQo53ioPG3M/A7BySu8+0+RS7GCxKm+Z+mtsjtG/vsu4Tn2tcqCdZtA3pgLoJB+ew==",
+ "license": "MIT",
+ "dependencies": {
+ "@module-federation/runtime-tools": "0.22.0",
+ "@rspack/binding": "1.7.11",
+ "@rspack/lite-tapable": "1.1.0"
+ },
+ "engines": {
+ "node": ">=18.12.0"
+ },
+ "peerDependencies": {
+ "@swc/helpers": ">=0.5.1"
+ },
+ "peerDependenciesMeta": {
+ "@swc/helpers": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rspack/lite-tapable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@rspack/lite-tapable/-/lite-tapable-1.1.0.tgz",
+ "integrity": "sha512-E2B0JhYFmVAwdDiG14+DW0Di4Ze4Jg10Pc4/lILUrd5DRCaklduz2OvJ5HYQ6G+hd+WTzqQb3QnDNfK4yvAFYw==",
+ "license": "MIT"
+ },
"node_modules/@sideway/address": {
"version": "4.1.5",
"resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz",
@@ -5389,9 +5701,9 @@
}
},
"node_modules/@sinclair/typebox": {
- "version": "0.34.48",
- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.48.tgz",
- "integrity": "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==",
+ "version": "0.34.49",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.49.tgz",
+ "integrity": "sha512-brySQQs7Jtn0joV8Xh9ZV/hZb9Ozb0pmazDIASBkYKCjXrXU3mpcFahmK/z4YDhGkQvP9mWJbVyahdtU5wQA+A==",
"license": "MIT"
},
"node_modules/@sindresorhus/is": {
@@ -5674,21 +5986,522 @@
"url": "https://github.com/sponsors/gregberge"
}
},
- "node_modules/@szmarczak/http-timer": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz",
- "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==",
- "license": "MIT",
+ "node_modules/@swc/core": {
+ "version": "1.15.32",
+ "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.15.32.tgz",
+ "integrity": "sha512-/eWL0n43D64QWEUHLtTE+jDqjkJhyidjkDhv6f0uJohOUAhywxQ9wXYp845DNNds0JpCdI4Uo0a9bl+vbXf+ew==",
+ "hasInstallScript": true,
+ "license": "Apache-2.0",
"dependencies": {
- "defer-to-connect": "^2.0.1"
+ "@swc/counter": "^0.1.3",
+ "@swc/types": "^0.1.26"
},
"engines": {
- "node": ">=14.16"
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/swc"
+ },
+ "optionalDependencies": {
+ "@swc/core-darwin-arm64": "1.15.32",
+ "@swc/core-darwin-x64": "1.15.32",
+ "@swc/core-linux-arm-gnueabihf": "1.15.32",
+ "@swc/core-linux-arm64-gnu": "1.15.32",
+ "@swc/core-linux-arm64-musl": "1.15.32",
+ "@swc/core-linux-ppc64-gnu": "1.15.32",
+ "@swc/core-linux-s390x-gnu": "1.15.32",
+ "@swc/core-linux-x64-gnu": "1.15.32",
+ "@swc/core-linux-x64-musl": "1.15.32",
+ "@swc/core-win32-arm64-msvc": "1.15.32",
+ "@swc/core-win32-ia32-msvc": "1.15.32",
+ "@swc/core-win32-x64-msvc": "1.15.32"
+ },
+ "peerDependencies": {
+ "@swc/helpers": ">=0.5.17"
+ },
+ "peerDependenciesMeta": {
+ "@swc/helpers": {
+ "optional": true
+ }
}
},
- "node_modules/@tybys/wasm-util": {
- "version": "0.10.1",
- "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz",
+ "node_modules/@swc/core-darwin-arm64": {
+ "version": "1.15.32",
+ "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.15.32.tgz",
+ "integrity": "sha512-/YWMvJDPu+AAwuUsM2G+DNQ/7zhodURGzdQyewEqcvgklAdDHs3LwQmLLnyn6SJl8DT8UOxkbzK+D1PmPeelRg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-darwin-x64": {
+ "version": "1.15.32",
+ "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.15.32.tgz",
+ "integrity": "sha512-KOTXJXdAhWL+hZ77MYP3z+4pcMFaQhQ74yqyN1uz093q0YnbxpqMtYpPISbYvMHzVRNNx5kN+9RZAXEaadhWVA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-linux-arm-gnueabihf": {
+ "version": "1.15.32",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.32.tgz",
+ "integrity": "sha512-oOoxLweljlc0A4X8ybsgxV7cVaYTwBOg2iMDJcFR3Sr48C+lsv9VzSmqdK/IVIXF4W4GjLc3VqTAdSMXlfVLuQ==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-linux-arm64-gnu": {
+ "version": "1.15.32",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.32.tgz",
+ "integrity": "sha512-oDzEkdl6D6BAWdMtU5KGO7y3HR5fJcvByNLyEk9+ugj8nP5Ovb7P4kBcStBXc4MPExFGQryehiINMlmY8HlclA==",
+ "cpu": [
+ "arm64"
+ ],
+ "libc": [
+ "glibc"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-linux-arm64-musl": {
+ "version": "1.15.32",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.32.tgz",
+ "integrity": "sha512-omcqjoZP/b8D8PuczVoRwJieC6ibj7qIxTftNYokz4/aSmKFHvsd7nIFfPk5ZvtzncbH4AY7+Dkr/Lp2gWxYeA==",
+ "cpu": [
+ "arm64"
+ ],
+ "libc": [
+ "musl"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-linux-ppc64-gnu": {
+ "version": "1.15.32",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-ppc64-gnu/-/core-linux-ppc64-gnu-1.15.32.tgz",
+ "integrity": "sha512-KGkTMyz/Tbn3PBNu0AVZ4GTDFKnICrYcTiNPZq8DrvK42pnFsf3GNDrIG9E5AtQlTmC0YigkWKmu0eMcfTrmgA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "libc": [
+ "glibc"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-linux-s390x-gnu": {
+ "version": "1.15.32",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-s390x-gnu/-/core-linux-s390x-gnu-1.15.32.tgz",
+ "integrity": "sha512-G3Aa4tVS/3OGZBkoNIwUF9F6RAy+Osb4GOlo62SinLmDiErz/ykmM7KH0wkz6l9kM8jJq1HyAM6atJTUEbBk7g==",
+ "cpu": [
+ "s390x"
+ ],
+ "libc": [
+ "glibc"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-linux-x64-gnu": {
+ "version": "1.15.32",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.32.tgz",
+ "integrity": "sha512-ERsjfGcj6CBmj3vJnGDO8m8rTvw6RqMcWo1dogOtNx3/+/0+NNpJiXDobJrr1GwInI/BHAEkvSFIH6d2LqPcUQ==",
+ "cpu": [
+ "x64"
+ ],
+ "libc": [
+ "glibc"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-linux-x64-musl": {
+ "version": "1.15.32",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.32.tgz",
+ "integrity": "sha512-N4Ggahe/8SUbTX50P6EdhbW9YWcgbZVb52R4cq6MK+zsoMjRq7rGvV5ztA05QnbaCYqMYx8rTY7KAIA3Crdo4Q==",
+ "cpu": [
+ "x64"
+ ],
+ "libc": [
+ "musl"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-win32-arm64-msvc": {
+ "version": "1.15.32",
+ "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.32.tgz",
+ "integrity": "sha512-01yN0o9jvo8xBTP12aPK2wW8b41jmOlGbDDlAnoynotc4pO6xA0zby9f1z6j++qXDpGBttLySq1omgVrlQKYcw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-win32-ia32-msvc": {
+ "version": "1.15.32",
+ "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.32.tgz",
+ "integrity": "sha512-fLagI9XZYNpTcmlqAcp3KBtmj7E19WCmYD80Jxj1Kn5tGNa7yxNLd3NNdWxuZGUPl5iC0/KqZru7g08gF6Fsrw==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-win32-x64-msvc": {
+ "version": "1.15.32",
+ "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.32.tgz",
+ "integrity": "sha512-gbc2bQ/T2CiR+w0OvcVKwLOFAcPZBvmWmolbwpg1E8UrpeC03DGtyMUApOHNXNYWA3SHFrYXCQtosrcMza1YFg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/counter": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz",
+ "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/@swc/html": {
+ "version": "1.15.32",
+ "resolved": "https://registry.npmjs.org/@swc/html/-/html-1.15.32.tgz",
+ "integrity": "sha512-Mv37uFfZQt7j89U3KJPqeQt6vl5Bxk7aqOrNDKWRAmrQOJ+lYJKq4hmYWW6Rk3wdGw03SlEfK3RmnzCN9gsqAA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@swc/counter": "^0.1.3"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "optionalDependencies": {
+ "@swc/html-darwin-arm64": "1.15.32",
+ "@swc/html-darwin-x64": "1.15.32",
+ "@swc/html-linux-arm-gnueabihf": "1.15.32",
+ "@swc/html-linux-arm64-gnu": "1.15.32",
+ "@swc/html-linux-arm64-musl": "1.15.32",
+ "@swc/html-linux-ppc64-gnu": "1.15.32",
+ "@swc/html-linux-s390x-gnu": "1.15.32",
+ "@swc/html-linux-x64-gnu": "1.15.32",
+ "@swc/html-linux-x64-musl": "1.15.32",
+ "@swc/html-win32-arm64-msvc": "1.15.32",
+ "@swc/html-win32-ia32-msvc": "1.15.32",
+ "@swc/html-win32-x64-msvc": "1.15.32"
+ }
+ },
+ "node_modules/@swc/html-darwin-arm64": {
+ "version": "1.15.32",
+ "resolved": "https://registry.npmjs.org/@swc/html-darwin-arm64/-/html-darwin-arm64-1.15.32.tgz",
+ "integrity": "sha512-WgY386nwyz24cTJ+Nztd4cKvfPJexLYAzurSYDmuYxS3HihWoTFZWMDomTfM8yr2UCi8SwW+zTNAWxJxUaKESg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/html-darwin-x64": {
+ "version": "1.15.32",
+ "resolved": "https://registry.npmjs.org/@swc/html-darwin-x64/-/html-darwin-x64-1.15.32.tgz",
+ "integrity": "sha512-uge7XExmbPREWO+2dZQvAbeiAvUlR+3TxxgYETJw39f8Nlclc3rWXaievpO3iRPbg1s8BsZ9fGGhoN7yYrwUwg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/html-linux-arm-gnueabihf": {
+ "version": "1.15.32",
+ "resolved": "https://registry.npmjs.org/@swc/html-linux-arm-gnueabihf/-/html-linux-arm-gnueabihf-1.15.32.tgz",
+ "integrity": "sha512-EuserzRHqXX6R6KScuBn+U3IX9ll3j4+sHM2Y3J/vIH7TbQ5IrvCFuu8w7El5R9j0ByCWvsDa2QdiLCQtsmFlw==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/html-linux-arm64-gnu": {
+ "version": "1.15.32",
+ "resolved": "https://registry.npmjs.org/@swc/html-linux-arm64-gnu/-/html-linux-arm64-gnu-1.15.32.tgz",
+ "integrity": "sha512-gvlByySjNDWX2FUIGVBWOhd00rySz0AOydQpuXCK0ldYbFVMby9oXbp2JVmE5UsB6J4YZqZh4ajmmqCGvFHi4Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "libc": [
+ "glibc"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/html-linux-arm64-musl": {
+ "version": "1.15.32",
+ "resolved": "https://registry.npmjs.org/@swc/html-linux-arm64-musl/-/html-linux-arm64-musl-1.15.32.tgz",
+ "integrity": "sha512-iTrXjSeVwhHp+w7I5srCSpG9prebj+j/lmWalljNXGagTuVmtEWdH/EDvtSq1JfJyKQ6KRKyeB3Qg6yGHhjr+Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "libc": [
+ "musl"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/html-linux-ppc64-gnu": {
+ "version": "1.15.32",
+ "resolved": "https://registry.npmjs.org/@swc/html-linux-ppc64-gnu/-/html-linux-ppc64-gnu-1.15.32.tgz",
+ "integrity": "sha512-sh6yGlZk7YqaQ4XisqEe0tBSTy0WcwmEnMEq9EG6mIU16PCGTbROHMfTw0W81jtvUyjqtCQC9axbSJLAW3zIeA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "libc": [
+ "glibc"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/html-linux-s390x-gnu": {
+ "version": "1.15.32",
+ "resolved": "https://registry.npmjs.org/@swc/html-linux-s390x-gnu/-/html-linux-s390x-gnu-1.15.32.tgz",
+ "integrity": "sha512-zBavh0QnsvjM9QMPmtOqMaUGSLr5tdj2gxEx4xXzOXBFkUKKRA+qEfx6LdTzIbrqqtK5Xf6CPBPT9kzhDLuaCA==",
+ "cpu": [
+ "s390x"
+ ],
+ "libc": [
+ "glibc"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/html-linux-x64-gnu": {
+ "version": "1.15.32",
+ "resolved": "https://registry.npmjs.org/@swc/html-linux-x64-gnu/-/html-linux-x64-gnu-1.15.32.tgz",
+ "integrity": "sha512-IveuScZfAwDZEBs6pTvdG/MwGyMPuxp74l9ngp2PbUboVBIfUS894kATBaBuSBYXajZ4v4wqv01PGM81rUhGQg==",
+ "cpu": [
+ "x64"
+ ],
+ "libc": [
+ "glibc"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/html-linux-x64-musl": {
+ "version": "1.15.32",
+ "resolved": "https://registry.npmjs.org/@swc/html-linux-x64-musl/-/html-linux-x64-musl-1.15.32.tgz",
+ "integrity": "sha512-wRXdcS0eaYU1Pm15gNGmVM7fsJ/xCxy3BnfNH52MC/ObgCIzBcFl3Yjn6yr6nkqNtDZyEt8IlQFQno5zEEvIpw==",
+ "cpu": [
+ "x64"
+ ],
+ "libc": [
+ "musl"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/html-win32-arm64-msvc": {
+ "version": "1.15.32",
+ "resolved": "https://registry.npmjs.org/@swc/html-win32-arm64-msvc/-/html-win32-arm64-msvc-1.15.32.tgz",
+ "integrity": "sha512-GzQQkdi4kC5ZjKloTQXgsI9FNQYb3z1mmF9ZbVDykdRgzKnqWGbx/gwTcWUhiurI9KsyL1t95PmOnU11Jw/mqg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/html-win32-ia32-msvc": {
+ "version": "1.15.32",
+ "resolved": "https://registry.npmjs.org/@swc/html-win32-ia32-msvc/-/html-win32-ia32-msvc-1.15.32.tgz",
+ "integrity": "sha512-BJqmiTbCWcd1hG9nLEktIASTv0SD91cIKHdt8Zza7AvSjH+BmDX0AW8krVDsJpXWQEtWEYzroe9rweNOMSVfjQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/html-win32-x64-msvc": {
+ "version": "1.15.32",
+ "resolved": "https://registry.npmjs.org/@swc/html-win32-x64-msvc/-/html-win32-x64-msvc-1.15.32.tgz",
+ "integrity": "sha512-8uOl327V1nCISIILtpQWrY8dl4JFo8UK5TCFcpMJ8ldt4wggr7cPnvkp2bJkT/pL7djjrDJQZ2BpNfu62M2zWA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/types": {
+ "version": "0.1.26",
+ "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.26.tgz",
+ "integrity": "sha512-lyMwd7WGgG79RS7EERZV3T8wMdmPq3xwyg+1nmAM64kIhx5yl+juO2PYIHb7vTiPgPCj8LYjsNV2T5wiQHUEaw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@swc/counter": "^0.1.3"
+ }
+ },
+ "node_modules/@szmarczak/http-timer": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz",
+ "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==",
+ "license": "MIT",
+ "dependencies": {
+ "defer-to-connect": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=14.16"
+ }
+ },
+ "node_modules/@tybys/wasm-util": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz",
"integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==",
"license": "MIT",
"optional": true,
@@ -5803,9 +6616,9 @@
}
},
"node_modules/@types/gtag.js": {
- "version": "0.0.12",
- "resolved": "https://registry.npmjs.org/@types/gtag.js/-/gtag.js-0.0.12.tgz",
- "integrity": "sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==",
+ "version": "0.0.20",
+ "resolved": "https://registry.npmjs.org/@types/gtag.js/-/gtag.js-0.0.20.tgz",
+ "integrity": "sha512-wwAbk3SA2QeU67unN7zPxjEHmPmlXwZXZvQEpbEUQuMCRGgKyE1m6XDuTUA9b6pCGb/GqJmdfMOY5LuDjJSbbg==",
"license": "MIT"
},
"node_modules/@types/hast": {
@@ -6388,34 +7201,34 @@
}
},
"node_modules/algoliasearch": {
- "version": "5.49.2",
- "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.49.2.tgz",
- "integrity": "sha512-1K0wtDaRONwfhL4h8bbJ9qTjmY6rhGgRvvagXkMBsAOMNr+3Q2SffHECh9DIuNVrMA1JwA0zCwhyepgBZVakng==",
- "license": "MIT",
- "dependencies": {
- "@algolia/abtesting": "1.15.2",
- "@algolia/client-abtesting": "5.49.2",
- "@algolia/client-analytics": "5.49.2",
- "@algolia/client-common": "5.49.2",
- "@algolia/client-insights": "5.49.2",
- "@algolia/client-personalization": "5.49.2",
- "@algolia/client-query-suggestions": "5.49.2",
- "@algolia/client-search": "5.49.2",
- "@algolia/ingestion": "1.49.2",
- "@algolia/monitoring": "1.49.2",
- "@algolia/recommend": "5.49.2",
- "@algolia/requester-browser-xhr": "5.49.2",
- "@algolia/requester-fetch": "5.49.2",
- "@algolia/requester-node-http": "5.49.2"
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.51.0.tgz",
+ "integrity": "sha512-u3XS8HaTzt5YN90KPsOXMRjYJUMVD1dtr6yi4NXQluMbZ5IjQNBu1MEabdAxFhYtEuexqomPMSmRIhQJUd3QSg==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/abtesting": "1.17.0",
+ "@algolia/client-abtesting": "5.51.0",
+ "@algolia/client-analytics": "5.51.0",
+ "@algolia/client-common": "5.51.0",
+ "@algolia/client-insights": "5.51.0",
+ "@algolia/client-personalization": "5.51.0",
+ "@algolia/client-query-suggestions": "5.51.0",
+ "@algolia/client-search": "5.51.0",
+ "@algolia/ingestion": "1.51.0",
+ "@algolia/monitoring": "1.51.0",
+ "@algolia/recommend": "5.51.0",
+ "@algolia/requester-browser-xhr": "5.51.0",
+ "@algolia/requester-fetch": "5.51.0",
+ "@algolia/requester-node-http": "5.51.0"
},
"engines": {
"node": ">= 14.0.0"
}
},
"node_modules/algoliasearch-helper": {
- "version": "3.28.0",
- "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.28.0.tgz",
- "integrity": "sha512-GBN0xsxGggaCPElZq24QzMdfphrjIiV2xA+hRXE4/UMpN3nsF2WrM8q+x80OGvGpJWtB7F+4Hq5eSfWwuejXrg==",
+ "version": "3.28.1",
+ "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.28.1.tgz",
+ "integrity": "sha512-6iXpbkkrAI5HFpCWXlNmIDSBuoN/U1XnEvb2yJAoWfqrZ+DrybI7MQ5P5mthFaprmocq+zbi6HxnR28xnZAYBw==",
"license": "MIT",
"dependencies": {
"@algolia/events": "^4.0.1"
@@ -6580,9 +7393,9 @@
}
},
"node_modules/autoprefixer": {
- "version": "10.4.27",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.27.tgz",
- "integrity": "sha512-NP9APE+tO+LuJGn7/9+cohklunJsXWiaWEfV3si4Gi/XHDwVNgkwr1J3RQYFIvPy76GmJ9/bW8vyoU1LcxwKHA==",
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.5.0.tgz",
+ "integrity": "sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong==",
"funding": [
{
"type": "opencollective",
@@ -6599,8 +7412,8 @@
],
"license": "MIT",
"dependencies": {
- "browserslist": "^4.28.1",
- "caniuse-lite": "^1.0.30001774",
+ "browserslist": "^4.28.2",
+ "caniuse-lite": "^1.0.30001787",
"fraction.js": "^5.3.4",
"picocolors": "^1.1.1",
"postcss-value-parser": "^4.2.0"
@@ -6642,13 +7455,13 @@
}
},
"node_modules/babel-plugin-polyfill-corejs2": {
- "version": "0.4.16",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.16.tgz",
- "integrity": "sha512-xaVwwSfebXf0ooE11BJovZYKhFjIvQo7TsyVpETuIeH2JHv0k/T6Y5j22pPTvqYqmpkxdlPAJlyJ0tfOJAoMxw==",
+ "version": "0.4.17",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz",
+ "integrity": "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==",
"license": "MIT",
"dependencies": {
"@babel/compat-data": "^7.28.6",
- "@babel/helper-define-polyfill-provider": "^0.6.7",
+ "@babel/helper-define-polyfill-provider": "^0.6.8",
"semver": "^6.3.1"
},
"peerDependencies": {
@@ -6678,12 +7491,12 @@
}
},
"node_modules/babel-plugin-polyfill-regenerator": {
- "version": "0.6.7",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.7.tgz",
- "integrity": "sha512-OTYbUlSwXhNgr4g6efMZgsO8//jA61P7ZbRX3iTT53VON8l+WQS8IAUEVo4a4cWknrg2W8Cj4gQhRYNCJ8GkAA==",
+ "version": "0.6.8",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz",
+ "integrity": "sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==",
"license": "MIT",
"dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.6.7"
+ "@babel/helper-define-polyfill-provider": "^0.6.8"
},
"peerDependencies": {
"@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
@@ -6706,9 +7519,9 @@
"license": "MIT"
},
"node_modules/baseline-browser-mapping": {
- "version": "2.10.0",
- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.0.tgz",
- "integrity": "sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==",
+ "version": "2.10.23",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.23.tgz",
+ "integrity": "sha512-xwVXGqevyKPsiuQdLj+dZMVjidjJV508TBqexND5HrF89cGdCYCJFB3qhcxRHSeMctdCfbR1jrxBajhDy7o29g==",
"license": "Apache-2.0",
"bin": {
"baseline-browser-mapping": "dist/cli.cjs"
@@ -6863,9 +7676,9 @@
}
},
"node_modules/browserslist": {
- "version": "4.28.1",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz",
- "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==",
+ "version": "4.28.2",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz",
+ "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==",
"funding": [
{
"type": "opencollective",
@@ -6882,11 +7695,11 @@
],
"license": "MIT",
"dependencies": {
- "baseline-browser-mapping": "^2.9.0",
- "caniuse-lite": "^1.0.30001759",
- "electron-to-chromium": "^1.5.263",
- "node-releases": "^2.0.27",
- "update-browserslist-db": "^1.2.0"
+ "baseline-browser-mapping": "^2.10.12",
+ "caniuse-lite": "^1.0.30001782",
+ "electron-to-chromium": "^1.5.328",
+ "node-releases": "^2.0.36",
+ "update-browserslist-db": "^1.2.3"
},
"bin": {
"browserslist": "cli.js"
@@ -6962,14 +7775,14 @@
}
},
"node_modules/call-bind": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
- "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz",
+ "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==",
"license": "MIT",
"dependencies": {
- "call-bind-apply-helpers": "^1.0.0",
- "es-define-property": "^1.0.0",
- "get-intrinsic": "^1.2.4",
+ "call-bind-apply-helpers": "^1.0.2",
+ "es-define-property": "^1.0.1",
+ "get-intrinsic": "^1.3.0",
"set-function-length": "^1.2.2"
},
"engines": {
@@ -7052,9 +7865,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001778",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001778.tgz",
- "integrity": "sha512-PN7uxFL+ExFJO61aVmP1aIEG4i9whQd4eoSCebav62UwDyp5OHh06zN4jqKSMePVgxHifCw1QJxdRkA1Pisekg==",
+ "version": "1.0.30001791",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001791.tgz",
+ "integrity": "sha512-yk0l/YSrOnFZk3UROpDLQD9+kC1l4meK/wed583AXrzoarMGJcbRi2Q4RaUYbKxYAsZ8sWmaSa/DsLmdBeI1vQ==",
"funding": [
{
"type": "opencollective",
@@ -7573,6 +8386,18 @@
"integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==",
"license": "MIT"
},
+ "node_modules/copy-text-to-clipboard": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.2.tgz",
+ "integrity": "sha512-T6SqyLd1iLuqPA90J5N4cTalrtovCySh58iiZDGJ6FGznbclKh4UI+FGacQSgFzwKG77W7XT5gwbVEbd9cIH1A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/copy-webpack-plugin": {
"version": "14.0.0",
"resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-14.0.0.tgz",
@@ -7620,24 +8445,13 @@
}
},
"node_modules/core-js-compat": {
- "version": "3.48.0",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.48.0.tgz",
- "integrity": "sha512-OM4cAF3D6VtH/WkLtWvyNC56EZVXsZdU3iqaMG2B4WvYrlqU831pc4UtG5yp0sE9z8Y02wVN7PjW5Zf9Gt0f1Q==",
+ "version": "3.49.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz",
+ "integrity": "sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==",
"license": "MIT",
"dependencies": {
- "browserslist": "^4.28.1"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/core-js"
- }
- },
- "node_modules/core-js-pure": {
- "version": "3.48.0",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.48.0.tgz",
- "integrity": "sha512-1slJgk89tWC51HQ1AEqG+s2VuwpTRr8ocu4n20QUcH1v9lAN0RXen0Q0AABa/DK1I7RrNWLucplOHMx8hfTGTw==",
- "hasInstallScript": true,
- "license": "MIT",
+ "browserslist": "^4.28.1"
+ },
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/core-js"
@@ -7755,9 +8569,9 @@
}
},
"node_modules/css-declaration-sorter": {
- "version": "7.3.1",
- "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.3.1.tgz",
- "integrity": "sha512-gz6x+KkgNCjxq3Var03pRYLhyNfwhkKF1g/yoLgDNtFvVu0/fOLV9C8fFEZRjACp/XQLumjAYo7JVjzH3wLbxA==",
+ "version": "7.4.0",
+ "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.4.0.tgz",
+ "integrity": "sha512-LTuzjPoyA2vMGKKcaOqKSp7Ub2eGrNfKiZH4LpezxpNrsICGCSFvsQOI29psISxNZtaXibkC2CXzrQ5enMeGGw==",
"license": "ISC",
"engines": {
"node": "^14 || ^16 || >=18"
@@ -7930,12 +8744,12 @@
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/cssnano": {
- "version": "7.1.3",
- "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-7.1.3.tgz",
- "integrity": "sha512-mLFHQAzyapMVFLiJIn7Ef4C2UCEvtlTlbyILR6B5ZsUAV3D/Pa761R5uC1YPhyBkRd3eqaDm2ncaNrD7R4mTRg==",
+ "version": "7.1.7",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-7.1.7.tgz",
+ "integrity": "sha512-N5LGn/OlhMxDTvKACwUPMzT34SSj1b022pvUAE/Vh6r2WD1aUCbc+QNIP/JjX9VVxebdJWZQ3352Lt4oF7dQ/g==",
"license": "MIT",
"dependencies": {
- "cssnano-preset-default": "^7.0.11",
+ "cssnano-preset-default": "^7.0.15",
"lilconfig": "^3.1.3"
},
"engines": {
@@ -7946,63 +8760,63 @@
"url": "https://opencollective.com/cssnano"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/cssnano-preset-default": {
- "version": "7.0.11",
- "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-7.0.11.tgz",
- "integrity": "sha512-waWlAMuCakP7//UCY+JPrQS1z0OSLeOXk2sKWJximKWGupVxre50bzPlvpbUwZIDylhf/ptf0Pk+Yf7C+hoa3g==",
+ "version": "7.0.15",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-7.0.15.tgz",
+ "integrity": "sha512-60kx7lJ40//HA85cIfQXSOJFby2D2V1pOMNHVCxue3KFWCjRzmiQyL9OvI+NAhwUlaojOfF9eK3nGvrJLCBUfQ==",
"license": "MIT",
"dependencies": {
- "browserslist": "^4.28.1",
+ "browserslist": "^4.28.2",
"css-declaration-sorter": "^7.2.0",
- "cssnano-utils": "^5.0.1",
+ "cssnano-utils": "^5.0.2",
"postcss-calc": "^10.1.1",
- "postcss-colormin": "^7.0.6",
- "postcss-convert-values": "^7.0.9",
- "postcss-discard-comments": "^7.0.6",
- "postcss-discard-duplicates": "^7.0.2",
- "postcss-discard-empty": "^7.0.1",
- "postcss-discard-overridden": "^7.0.1",
- "postcss-merge-longhand": "^7.0.5",
- "postcss-merge-rules": "^7.0.8",
- "postcss-minify-font-values": "^7.0.1",
- "postcss-minify-gradients": "^7.0.1",
- "postcss-minify-params": "^7.0.6",
- "postcss-minify-selectors": "^7.0.6",
- "postcss-normalize-charset": "^7.0.1",
- "postcss-normalize-display-values": "^7.0.1",
- "postcss-normalize-positions": "^7.0.1",
- "postcss-normalize-repeat-style": "^7.0.1",
- "postcss-normalize-string": "^7.0.1",
- "postcss-normalize-timing-functions": "^7.0.1",
- "postcss-normalize-unicode": "^7.0.6",
- "postcss-normalize-url": "^7.0.1",
- "postcss-normalize-whitespace": "^7.0.1",
- "postcss-ordered-values": "^7.0.2",
- "postcss-reduce-initial": "^7.0.6",
- "postcss-reduce-transforms": "^7.0.1",
- "postcss-svgo": "^7.1.1",
- "postcss-unique-selectors": "^7.0.5"
+ "postcss-colormin": "^7.0.9",
+ "postcss-convert-values": "^7.0.11",
+ "postcss-discard-comments": "^7.0.7",
+ "postcss-discard-duplicates": "^7.0.3",
+ "postcss-discard-empty": "^7.0.2",
+ "postcss-discard-overridden": "^7.0.2",
+ "postcss-merge-longhand": "^7.0.6",
+ "postcss-merge-rules": "^7.0.10",
+ "postcss-minify-font-values": "^7.0.2",
+ "postcss-minify-gradients": "^7.0.4",
+ "postcss-minify-params": "^7.0.8",
+ "postcss-minify-selectors": "^7.1.0",
+ "postcss-normalize-charset": "^7.0.2",
+ "postcss-normalize-display-values": "^7.0.2",
+ "postcss-normalize-positions": "^7.0.3",
+ "postcss-normalize-repeat-style": "^7.0.3",
+ "postcss-normalize-string": "^7.0.2",
+ "postcss-normalize-timing-functions": "^7.0.2",
+ "postcss-normalize-unicode": "^7.0.8",
+ "postcss-normalize-url": "^7.0.2",
+ "postcss-normalize-whitespace": "^7.0.2",
+ "postcss-ordered-values": "^7.0.3",
+ "postcss-reduce-initial": "^7.0.8",
+ "postcss-reduce-transforms": "^7.0.2",
+ "postcss-svgo": "^7.1.2",
+ "postcss-unique-selectors": "^7.0.6"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/cssnano-utils": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-5.0.1.tgz",
- "integrity": "sha512-ZIP71eQgG9JwjVZsTPSqhc6GHgEr53uJ7tK5///VfyWj6Xp2DBmixWHqJgPno+PqATzn48pL42ww9x5SSGmhZg==",
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-5.0.2.tgz",
+ "integrity": "sha512-kt41WLK7FLKfePzPi645Y+/NtW/nNM7Su6nlNUfJyRNW3JcuU3JU7+cWJc+JexTeZ8dRBvFufefdG2XpXkIo0A==",
"license": "MIT",
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/mdn-data": {
@@ -8028,43 +8842,43 @@
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/postcss-colormin": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-7.0.6.tgz",
- "integrity": "sha512-oXM2mdx6IBTRm39797QguYzVEWzbdlFiMNfq88fCCN1Wepw3CYmJ/1/Ifa/KjWo+j5ZURDl2NTldLJIw51IeNQ==",
+ "version": "7.0.9",
+ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-7.0.9.tgz",
+ "integrity": "sha512-EZpoUlmbXQUpe+g4ZaGM2kjGlHrQ7Bjzb3xHcNrC9ysI1tGoib6DAYvxg6aB7MGxsjgLF+Qx/jwZQkJ5cKDvXA==",
"license": "MIT",
"dependencies": {
- "browserslist": "^4.28.1",
+ "@colordx/core": "^5.2.0",
+ "browserslist": "^4.28.2",
"caniuse-api": "^3.0.0",
- "colord": "^2.9.3",
"postcss-value-parser": "^4.2.0"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/postcss-convert-values": {
- "version": "7.0.9",
- "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-7.0.9.tgz",
- "integrity": "sha512-l6uATQATZaCa0bckHV+r6dLXfWtUBKXxO3jK+AtxxJJtgMPD+VhhPCCx51I4/5w8U5uHV67g3w7PXj+V3wlMlg==",
+ "version": "7.0.11",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-7.0.11.tgz",
+ "integrity": "sha512-H+s7P0f9jJylSysAHs3/5MhAx7GthDO05uw1h56L2xyEqpiLTFLEqBNw3PUYzD5p/AKwWaigCXf6FGELpOw9lw==",
"license": "MIT",
"dependencies": {
- "browserslist": "^4.28.1",
+ "browserslist": "^4.28.2",
"postcss-value-parser": "^4.2.0"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/postcss-discard-comments": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-7.0.6.tgz",
- "integrity": "sha512-Sq+Fzj1Eg5/CPf1ERb0wS1Im5cvE2gDXCE+si4HCn1sf+jpQZxDI4DXEp8t77B/ImzDceWE2ebJQFXdqZ6GRJw==",
+ "version": "7.0.7",
+ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-7.0.7.tgz",
+ "integrity": "sha512-FJhE3fSte7HaRNL4iwD8LTG9vWqj3puxXIdig6LfrFqc1TJRUhY4kXOkeTXZZfTXYny+k+SO7fd2fymj1wduJg==",
"license": "MIT",
"dependencies": {
"postcss-selector-parser": "^7.1.1"
@@ -8073,83 +8887,83 @@
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/postcss-discard-duplicates": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.2.tgz",
- "integrity": "sha512-eTonaQvPZ/3i1ASDHOKkYwAybiM45zFIc7KXils4mQmHLqIswXD9XNOKEVxtTFnsmwYzF66u4LMgSr0abDlh5w==",
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.3.tgz",
+ "integrity": "sha512-9cRxXwhEM/aNZon1qZyToX4NmjbFbxOGbww+0CnbYFDbbPRGZ8jg4IbM8UlA+CzkXxM35itxyaHKNqBBg/RTDg==",
"license": "MIT",
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/postcss-discard-empty": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-7.0.1.tgz",
- "integrity": "sha512-cFrJKZvcg/uxB6Ijr4l6qmn3pXQBna9zyrPC+sK0zjbkDUZew+6xDltSF7OeB7rAtzaaMVYSdbod+sZOCWnMOg==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-7.0.2.tgz",
+ "integrity": "sha512-NZFouOmOwtngJVgkNeI1LtkzFdYqIurxgy4wq3qNvIiXFURTZ3b/K7q3dP3QitlWQ5imHDQL0qSorItQhoxb1g==",
"license": "MIT",
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/postcss-discard-overridden": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-7.0.1.tgz",
- "integrity": "sha512-7c3MMjjSZ/qYrx3uc1940GSOzN1Iqjtlqe8uoSg+qdVPYyRb0TILSqqmtlSFuE4mTDECwsm397Ya7iXGzfF7lg==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-7.0.2.tgz",
+ "integrity": "sha512-Ym01X4v6U3sY8X0P1J9P+RTar+7JyLTOzDrxKSeaArFsLmkVu4KcAKPBWDYRIyZ/q4jwpSPnOnekeSSqXSXKUw==",
"license": "MIT",
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/postcss-merge-longhand": {
- "version": "7.0.5",
- "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-7.0.5.tgz",
- "integrity": "sha512-Kpu5v4Ys6QI59FxmxtNB/iHUVDn9Y9sYw66D6+SZoIk4QTz1prC4aYkhIESu+ieG1iylod1f8MILMs1Em3mmIw==",
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-7.0.6.tgz",
+ "integrity": "sha512-lDsWeKRsssX/9vKFpingoRiuvGajtOGCJhs1kyaTJ5fzaVzs0aPPYe38UZ/ukMFEA5iuRIjQJHIkH2niYO3ubQ==",
"license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0",
- "stylehacks": "^7.0.5"
+ "stylehacks": "^7.0.10"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/postcss-merge-rules": {
- "version": "7.0.8",
- "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-7.0.8.tgz",
- "integrity": "sha512-BOR1iAM8jnr7zoQSlpeBmCsWV5Uudi/+5j7k05D0O/WP3+OFMPD86c1j/20xiuRtyt45bhxw/7hnhZNhW2mNFA==",
+ "version": "7.0.10",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-7.0.10.tgz",
+ "integrity": "sha512-UXYKxkg8Cy1so/evF7AE/25PNXZb3E0SrvjdbtbGf+MW+doLenKqRLQzz6YZW469ktiXK2MVLFWtel/DftCV0Q==",
"license": "MIT",
"dependencies": {
- "browserslist": "^4.28.1",
+ "browserslist": "^4.28.2",
"caniuse-api": "^3.0.0",
- "cssnano-utils": "^5.0.1",
+ "cssnano-utils": "^5.0.2",
"postcss-selector-parser": "^7.1.1"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/postcss-minify-font-values": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-7.0.1.tgz",
- "integrity": "sha512-2m1uiuJeTplll+tq4ENOQSzB8LRnSUChBv7oSyFLsJRtUgAAJGP6LLz0/8lkinTgxrmJSPOEhgY1bMXOQ4ZXhQ==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-7.0.2.tgz",
+ "integrity": "sha512-Z82NUmnvhPrvMUaHfkaAVBmWQq9F8Dox4Dy0LiwbaTxfmDUWLQtS+0WCgKViwdWCPPajiY9YzoQftgqKdXkM5g==",
"license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0"
@@ -8158,49 +8972,51 @@
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/postcss-minify-gradients": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-7.0.1.tgz",
- "integrity": "sha512-X9JjaysZJwlqNkJbUDgOclyG3jZEpAMOfof6PUZjPnPrePnPG62pS17CjdM32uT1Uq1jFvNSff9l7kNbmMSL2A==",
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-7.0.4.tgz",
+ "integrity": "sha512-g8MNeNyN+lbwKy8DCtJ6zU6awBL0InBsSOaKmgZ1MdRLVItLQUNFNAzzzBnOp4qowOcyyB6GetTlQ0/0UNXvag==",
"license": "MIT",
"dependencies": {
- "colord": "^2.9.3",
- "cssnano-utils": "^5.0.1",
+ "@colordx/core": "^5.2.0",
+ "cssnano-utils": "^5.0.2",
"postcss-value-parser": "^4.2.0"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/postcss-minify-params": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-7.0.6.tgz",
- "integrity": "sha512-YOn02gC68JijlaXVuKvFSCvQOhTpblkcfDre2hb/Aaa58r2BIaK4AtE/cyZf2wV7YKAG+UlP9DT+By0ry1E4VQ==",
+ "version": "7.0.8",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-7.0.8.tgz",
+ "integrity": "sha512-DIUKM5DZGTmxN7KFKT+rxt0FdPDmRrdK/k3n3+6Po+N/QYn06juwagHcfOVBG0CfCHwcnI612GAUCZc3eT+ZEg==",
"license": "MIT",
"dependencies": {
- "browserslist": "^4.28.1",
- "cssnano-utils": "^5.0.1",
+ "browserslist": "^4.28.2",
+ "cssnano-utils": "^5.0.2",
"postcss-value-parser": "^4.2.0"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/postcss-minify-selectors": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-7.0.6.tgz",
- "integrity": "sha512-lIbC0jy3AAwDxEgciZlBullDiMBeBCT+fz5G8RcA9MWqh/hfUkpOI3vNDUNEZHgokaoiv0juB9Y8fGcON7rU/A==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-7.1.0.tgz",
+ "integrity": "sha512-HYl/6I0aL+UvpA10t65BSa7h+tVjBgE6oRI5N/3ylX3vtwvlDL67G3FT3vYDPnTksxr0riiyJcT0tBtyRVoloA==",
"license": "MIT",
"dependencies": {
+ "browserslist": "^4.28.1",
+ "caniuse-api": "^3.0.0",
"cssesc": "^3.0.0",
"postcss-selector-parser": "^7.1.1"
},
@@ -8208,25 +9024,25 @@
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/postcss-normalize-charset": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-7.0.1.tgz",
- "integrity": "sha512-sn413ofhSQHlZFae//m9FTOfkmiZ+YQXsbosqOWRiVQncU2BA3daX3n0VF3cG6rGLSFVc5Di/yns0dFfh8NFgQ==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-7.0.2.tgz",
+ "integrity": "sha512-YoINoiR4YKlzfB95Y93b0DSxWy7FLw+1SADIaznMHb88AKizpzfF80tolmiDEbYr1UM4r4Hw+NZq37SwT5f3uw==",
"license": "MIT",
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/postcss-normalize-display-values": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.1.tgz",
- "integrity": "sha512-E5nnB26XjSYz/mGITm6JgiDpAbVuAkzXwLzRZtts19jHDUBFxZ0BkXAehy0uimrOjYJbocby4FVswA/5noOxrQ==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.2.tgz",
+ "integrity": "sha512-wu/NTSjnp8sX5TnEHVPN+eScjAtRs18ELtEduG+Ek3GxjeUDUT+VAA3PJjVIXBcVIk6fiLYFj2iKH0q99S3T2Q==",
"license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0"
@@ -8235,13 +9051,13 @@
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/postcss-normalize-positions": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-7.0.1.tgz",
- "integrity": "sha512-pB/SzrIP2l50ZIYu+yQZyMNmnAcwyYb9R1fVWPRxm4zcUFCY2ign7rcntGFuMXDdd9L2pPNUgoODDk91PzRZuQ==",
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-7.0.3.tgz",
+ "integrity": "sha512-1CJI++oA3yK/fQlPUcEngUfcSWS08Pkt9fK+jVgL53mmtHDBHi0YiuB0m3D9BXwZjmfvCc2GQmFqCAF/CVcPzQ==",
"license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0"
@@ -8250,13 +9066,13 @@
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/postcss-normalize-repeat-style": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.1.tgz",
- "integrity": "sha512-NsSQJ8zj8TIDiF0ig44Byo3Jk9e4gNt9x2VIlJudnQQ5DhWAHJPF4Tr1ITwyHio2BUi/I6Iv0HRO7beHYOloYQ==",
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.3.tgz",
+ "integrity": "sha512-RvImJ2Ml4LZSx31qC2C8LDiz65IgBNATtwEr9r3Aue+D0cCGbj4rjNojb/uGpEm4QxnOTzFqMvaDYuKiT1Cmpg==",
"license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0"
@@ -8265,13 +9081,13 @@
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/postcss-normalize-string": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-7.0.1.tgz",
- "integrity": "sha512-QByrI7hAhsoze992kpbMlJSbZ8FuCEc1OT9EFbZ6HldXNpsdpZr+YXC5di3UEv0+jeZlHbZcoCADgb7a+lPmmQ==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-7.0.2.tgz",
+ "integrity": "sha512-FqtrUh2BU2MnVeLeWBbJ2rwOjuDnA91XvoImc1BbgMWIxdxiPTaquflBHsmFBA3xh3pC3wPZO9W5MaIc7wU/Xw==",
"license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0"
@@ -8280,13 +9096,13 @@
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/postcss-normalize-timing-functions": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.1.tgz",
- "integrity": "sha512-bHifyuuSNdKKsnNJ0s8fmfLMlvsQwYVxIoUBnowIVl2ZAdrkYQNGVB4RxjfpvkMjipqvbz0u7feBZybkl/6NJg==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.2.tgz",
+ "integrity": "sha512-5H5fpXBnMACEXzn7k9RP7qWZ1eWg8cuZkUuFygStY7icOj+UucwMWXeMmdkF/iITvTVa7fP85tdRCJeznpdFfQ==",
"license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0"
@@ -8295,29 +9111,29 @@
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/postcss-normalize-unicode": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.6.tgz",
- "integrity": "sha512-z6bwTV84YW6ZvvNoaNLuzRW4/uWxDKYI1iIDrzk6D2YTL7hICApy+Q1LP6vBEsljX8FM7YSuV9qI79XESd4ddQ==",
+ "version": "7.0.8",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.8.tgz",
+ "integrity": "sha512-imCM3cwK3hvlAG4z1AzYM24m8BPA3/Jk/S71wfbn2I6+E2b+UwFaGvlNqydihXTSl3OFPeQXztqCzg+NGeSibQ==",
"license": "MIT",
"dependencies": {
- "browserslist": "^4.28.1",
+ "browserslist": "^4.28.2",
"postcss-value-parser": "^4.2.0"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/postcss-normalize-url": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-7.0.1.tgz",
- "integrity": "sha512-sUcD2cWtyK1AOL/82Fwy1aIVm/wwj5SdZkgZ3QiUzSzQQofrbq15jWJ3BA7Z+yVRwamCjJgZJN0I9IS7c6tgeQ==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-7.0.2.tgz",
+ "integrity": "sha512-bLnNY7t76NLRb9QQyCVmCN4qwoHxiq6vABH/CXav9wTuR6dNGHGQ72AyO/+h2quWxZk3l7BqxNL1vtDi9H6y1g==",
"license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0"
@@ -8326,13 +9142,13 @@
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/postcss-normalize-whitespace": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.1.tgz",
- "integrity": "sha512-vsbgFHMFQrJBJKrUFJNZ2pgBeBkC2IvvoHjz1to0/0Xk7sII24T0qFOiJzG6Fu3zJoq/0yI4rKWi7WhApW+EFA==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.2.tgz",
+ "integrity": "sha512-TNSVkuhkeOhl36WruQlflxOb7HweoeZowSusNpfsM1+ZvqJ24Mc+xksu05ecMQxlu+0zgI8pyznO2EWqDCQbLA==",
"license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0"
@@ -8341,45 +9157,45 @@
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/postcss-ordered-values": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-7.0.2.tgz",
- "integrity": "sha512-AMJjt1ECBffF7CEON/Y0rekRLS6KsePU6PRP08UqYW4UGFRnTXNrByUzYK1h8AC7UWTZdQ9O3Oq9kFIhm0SFEw==",
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-7.0.3.tgz",
+ "integrity": "sha512-FTt6R9RF7NAYfpOHa2XFPm89FVuo5GiIbcfwOXFy1MYF38BeiNW9ke8ybw9Pk62eEsUlRVVbxHWA3B7ERYqOOA==",
"license": "MIT",
"dependencies": {
- "cssnano-utils": "^5.0.1",
+ "cssnano-utils": "^5.0.2",
"postcss-value-parser": "^4.2.0"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/postcss-reduce-initial": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-7.0.6.tgz",
- "integrity": "sha512-G6ZyK68AmrPdMB6wyeA37ejnnRG2S8xinJrZJnOv+IaRKf6koPAVbQsiC7MfkmXaGmF1UO+QCijb27wfpxuRNg==",
+ "version": "7.0.8",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-7.0.8.tgz",
+ "integrity": "sha512-VeVRmbgpgTZuRcDQdqnsB4iYTeS2dBRV07UdwK6V3x61F1xTQ2pgIzHBIR4rQYRlXRNKBTGYYhEL1eNA7w9vaQ==",
"license": "MIT",
"dependencies": {
- "browserslist": "^4.28.1",
+ "browserslist": "^4.28.2",
"caniuse-api": "^3.0.0"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/postcss-reduce-transforms": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.1.tgz",
- "integrity": "sha512-MhyEbfrm+Mlp/36hvZ9mT9DaO7dbncU0CvWI8V93LRkY6IYlu38OPg3FObnuKTUxJ4qA8HpurdQOo5CyqqO76g==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.2.tgz",
+ "integrity": "sha512-OV5P9hMnf7kEkeXVXyS5ESqxbIls7a3TqFymUAV5JICO/9YCBEU+QQhQjZiDHaLwFdV7/CL481kVeBUk5FdY3w==",
"license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0"
@@ -8388,7 +9204,7 @@
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/postcss-selector-parser": {
@@ -8405,9 +9221,9 @@
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/postcss-svgo": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-7.1.1.tgz",
- "integrity": "sha512-zU9H9oEDrUFKa0JB7w+IYL7Qs9ey1mZyjhbf0KLxwJDdDRtoPvCmaEfknzqfHj44QS9VD6c5sJnBAVYTLRg/Sg==",
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-7.1.2.tgz",
+ "integrity": "sha512-ixExc8m+/68yuSYQzV/1DgtTup/7nI2dN9eiDS5GMRUzeCH4q9UcqeZPwcSVhdf8ay9fRwXDUHwcY5/XzQSszQ==",
"license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0",
@@ -8417,13 +9233,13 @@
"node": "^18.12.0 || ^20.9.0 || >= 18"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/postcss-unique-selectors": {
- "version": "7.0.5",
- "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-7.0.5.tgz",
- "integrity": "sha512-3QoYmEt4qg/rUWDn6Tc8+ZVPmbp4G1hXDtCNWDx0st8SjtCbRcxRXDDM1QrEiXGG3A45zscSJFb4QH90LViyxg==",
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-7.0.6.tgz",
+ "integrity": "sha512-cDxnYw1QuBMW5w3svZ0BlYF0IA4Amr+1JoTLXzu6vDFPNwohN2QU+sPZNx15b930LR7ce+/600h28/cYoxO9vw==",
"license": "MIT",
"dependencies": {
"postcss-selector-parser": "^7.1.1"
@@ -8432,23 +9248,23 @@
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/stylehacks": {
- "version": "7.0.8",
- "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-7.0.8.tgz",
- "integrity": "sha512-I3f053GBLIiS5Fg6OMFhq/c+yW+5Hc2+1fgq7gElDMMSqwlRb3tBf2ef6ucLStYRpId4q//bQO1FjcyNyy4yDQ==",
+ "version": "7.0.10",
+ "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-7.0.10.tgz",
+ "integrity": "sha512-sRJ7klmhe/Fl5woJcbJUa2qP1Ueffsl1CQI4ePvqXLkZmcIuAt09aP9uT/FOFPqXh9Rh8M5UkgEnwTdTKn/Aag==",
"license": "MIT",
"dependencies": {
- "browserslist": "^4.28.1",
+ "browserslist": "^4.28.2",
"postcss-selector-parser": "^7.1.1"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.32"
+ "postcss": "^8.5.10"
}
},
"node_modules/css-minimizer-webpack-plugin/node_modules/svgo": {
@@ -8908,6 +9724,15 @@
"npm": "1.2.8000 || >= 1.4.16"
}
},
+ "node_modules/detect-libc": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
+ "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/detect-node": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
@@ -9112,9 +9937,9 @@
"license": "MIT"
},
"node_modules/electron-to-chromium": {
- "version": "1.5.313",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.313.tgz",
- "integrity": "sha512-QBMrTWEf00GXZmJyx2lbYD45jpI3TUFnNIzJ5BBc8piGUDwMPa1GV6HJWTZVvY/eiN3fSopl7NRbgGp9sZ9LTA==",
+ "version": "1.5.344",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.344.tgz",
+ "integrity": "sha512-4MxfbmNDm+KPh066EZy+eUnkcDPcZ35wNmOWzFuh/ijvHsve6kbLTLURy88uCNK5FbpN+yk2nQY6BYh1GEt+wg==",
"license": "ISC"
},
"node_modules/emoji-regex": {
@@ -11581,9 +12406,9 @@
}
},
"node_modules/jest-util/node_modules/picomatch": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
- "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
"license": "MIT",
"engines": {
"node": ">=12"
@@ -11787,6 +12612,267 @@
"node": ">=6"
}
},
+ "node_modules/lightningcss": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz",
+ "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==",
+ "license": "MPL-2.0",
+ "dependencies": {
+ "detect-libc": "^2.0.3"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "lightningcss-android-arm64": "1.32.0",
+ "lightningcss-darwin-arm64": "1.32.0",
+ "lightningcss-darwin-x64": "1.32.0",
+ "lightningcss-freebsd-x64": "1.32.0",
+ "lightningcss-linux-arm-gnueabihf": "1.32.0",
+ "lightningcss-linux-arm64-gnu": "1.32.0",
+ "lightningcss-linux-arm64-musl": "1.32.0",
+ "lightningcss-linux-x64-gnu": "1.32.0",
+ "lightningcss-linux-x64-musl": "1.32.0",
+ "lightningcss-win32-arm64-msvc": "1.32.0",
+ "lightningcss-win32-x64-msvc": "1.32.0"
+ }
+ },
+ "node_modules/lightningcss-android-arm64": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz",
+ "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-darwin-arm64": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz",
+ "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-darwin-x64": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz",
+ "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-freebsd-x64": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz",
+ "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm-gnueabihf": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz",
+ "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-gnu": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz",
+ "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "libc": [
+ "glibc"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-musl": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz",
+ "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==",
+ "cpu": [
+ "arm64"
+ ],
+ "libc": [
+ "musl"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-gnu": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz",
+ "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==",
+ "cpu": [
+ "x64"
+ ],
+ "libc": [
+ "glibc"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-musl": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz",
+ "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==",
+ "cpu": [
+ "x64"
+ ],
+ "libc": [
+ "musl"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-win32-arm64-msvc": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz",
+ "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-win32-x64-msvc": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz",
+ "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
"node_modules/lilconfig": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
@@ -14303,9 +15389,9 @@
}
},
"node_modules/mini-css-extract-plugin": {
- "version": "2.10.1",
- "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.10.1.tgz",
- "integrity": "sha512-k7G3Y5QOegl380tXmZ68foBRRjE9Ljavx835ObdvmZjQ639izvZD8CS7BkWw1qKPPzHsGL/JDhl0uyU1zc2rJw==",
+ "version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.10.2.tgz",
+ "integrity": "sha512-AOSS0IdEB95ayVkxn5oGzNQwqAi2J0Jb/kKm43t7H73s8+f5873g0yuj0PNvK4dO75mu5DHg4nlgp4k6Kga8eg==",
"license": "MIT",
"dependencies": {
"schema-utils": "^4.0.0",
@@ -14513,9 +15599,9 @@
}
},
"node_modules/null-loader/node_modules/ajv": {
- "version": "6.14.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz",
- "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==",
+ "version": "6.15.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz",
+ "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==",
"license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.1",
@@ -15043,9 +16129,9 @@
}
},
"node_modules/postcss": {
- "version": "8.5.8",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz",
- "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==",
+ "version": "8.5.12",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.12.tgz",
+ "integrity": "sha512-W62t/Se6rA0Az3DfCL0AqJwXuKwBeYg6nOaIgzP+xZ7N5BFCI7DYi1qs6ygUYT6rvfi6t9k65UMLJC+PHZpDAA==",
"funding": [
{
"type": "opencollective",
@@ -16843,9 +17929,9 @@
}
},
"node_modules/react-loadable-ssr-addon-v5-slorber": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz",
- "integrity": "sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.3.tgz",
+ "integrity": "sha512-GXfh9VLwB5ERaCsU6RULh7tkemeX15aNh6wuMEBtfdyMa7fFG8TXrhXlx1SoEK2Ty/l6XIkzzYIQmyaWW3JgdQ==",
"license": "MIT",
"dependencies": {
"@babel/runtime": "^7.10.3"
@@ -17077,9 +18163,9 @@
"license": "MIT"
},
"node_modules/regjsparser": {
- "version": "0.13.0",
- "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz",
- "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==",
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.1.tgz",
+ "integrity": "sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==",
"license": "BSD-2-Clause",
"dependencies": {
"jsesc": "~3.1.0"
@@ -17434,11 +18520,12 @@
"license": "MIT"
},
"node_modules/resolve": {
- "version": "1.22.11",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
- "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
+ "version": "1.22.12",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz",
+ "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==",
"license": "MIT",
"dependencies": {
+ "es-errors": "^1.3.0",
"is-core-module": "^2.16.1",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
@@ -17588,9 +18675,9 @@
"license": "MIT"
},
"node_modules/sax": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.5.0.tgz",
- "integrity": "sha512-21IYA3Q5cQf089Z6tgaUTr7lDAyzoTPx5HRtbhsME8Udispad8dC/+sziTNugOEx54ilvatQ9YCzl4KQLPcRHA==",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz",
+ "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==",
"license": "BlueOak-1.0.0",
"engines": {
"node": ">=11.0.0"
@@ -17742,9 +18829,9 @@
}
},
"node_modules/serialize-javascript": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.4.tgz",
- "integrity": "sha512-DuGdB+Po43Q5Jxwpzt1lhyFSYKryqoNjQSA9M92tyw0lyHIOur+XCalOUe0KTJpyqzT8+fQ5A0Jf7vCx/NKmIg==",
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.5.tgz",
+ "integrity": "sha512-F4LcB0UqUl1zErq+1nYEEzSHJnIwb3AF2XWB94b+afhrekOUijwooAYqFyRbjYkm2PAKBabx6oYv/xDxNi8IBw==",
"license": "BSD-3-Clause",
"engines": {
"node": ">=20.0.0"
@@ -18457,6 +19544,19 @@
"node": ">= 10"
}
},
+ "node_modules/swc-loader": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/swc-loader/-/swc-loader-0.2.7.tgz",
+ "integrity": "sha512-nwYWw3Fh9ame3Rtm7StS9SBLpHRRnYcK7bnpF3UKZmesAK0gw2/ADvlURFAINmPvKtDLzp+GBiP9yLoEjg6S9w==",
+ "license": "MIT",
+ "dependencies": {
+ "@swc/counter": "^0.1.3"
+ },
+ "peerDependencies": {
+ "@swc/core": "^1.2.147",
+ "webpack": ">=2"
+ }
+ },
"node_modules/tapable": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz",
@@ -18591,13 +19691,13 @@
"license": "MIT"
},
"node_modules/tinyglobby": {
- "version": "0.2.15",
- "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
- "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
+ "version": "0.2.16",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz",
+ "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==",
"license": "MIT",
"dependencies": {
"fdir": "^6.5.0",
- "picomatch": "^4.0.3"
+ "picomatch": "^4.0.4"
},
"engines": {
"node": ">=12.0.0"
@@ -18624,9 +19724,9 @@
}
},
"node_modules/tinyglobby/node_modules/picomatch": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
- "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
"license": "MIT",
"engines": {
"node": ">=12"
diff --git a/package.json b/package.json
index 2377abf..2fd17c8 100644
--- a/package.json
+++ b/package.json
@@ -15,9 +15,10 @@
"typecheck": "tsc"
},
"dependencies": {
- "@docusaurus/core": "3.9.2",
- "@docusaurus/plugin-client-redirects": "^3.9.2",
- "@docusaurus/preset-classic": "3.9.2",
+ "@docusaurus/core": "^3.10.0",
+ "@docusaurus/faster": "^3.10.0",
+ "@docusaurus/plugin-client-redirects": "^3.10.0",
+ "@docusaurus/preset-classic": "^3.10.0",
"@easyops-cn/docusaurus-search-local": "^0.55.1",
"@mdx-js/react": "^3.1.1",
"@signalwire/docusaurus-plugin-llms-txt": "^1.2.2",
@@ -27,9 +28,9 @@
"react-dom": "^19.2.4"
},
"devDependencies": {
- "@docusaurus/module-type-aliases": "3.9.2",
- "@docusaurus/tsconfig": "3.9.2",
- "@docusaurus/types": "3.9.2",
+ "@docusaurus/module-type-aliases": "^3.10.0",
+ "@docusaurus/tsconfig": "^3.10.0",
+ "@docusaurus/types": "^3.10.0",
"typescript": "~5.9.3"
},
"overrides": {