diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index 6a95043dd..3dc2ea9fe 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -30,7 +30,9 @@
"dbaeumer.vscode-eslint",
"unifiedjs.vscode-mdx",
"bradlc.vscode-tailwindcss",
- "TakumiI.markdowntable"
+ "TakumiI.markdowntable",
+ "YoavBls.pretty-ts-errors",
+ "bowlerr.sqlite-intelliview-vscode"
]
}
},
diff --git a/.github/workflows/testAndSanity.yml b/.github/workflows/testAndSanity.yml
index 5a5783bb0..43844df54 100644
--- a/.github/workflows/testAndSanity.yml
+++ b/.github/workflows/testAndSanity.yml
@@ -18,11 +18,16 @@ jobs:
name: Tests / Build / Sanity Run
runs-on: ubuntu-latest
steps:
- - name: Check out the repo
+ - name: Check out the repo (gha)
+ if: ${{ !env.ACT }}
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2
with:
ref: ${{ inputs.ref }}
persist-credentials: false
+
+ - name: Check out the repo (act)
+ if: ${{ env.ACT }}
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2
- name: Use Node.js
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f #6.3.0
with:
diff --git a/.gitignore b/.gitignore
index 2b5fa3b0d..ae6e1cbb2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -151,7 +151,10 @@ tmp-*
*storybook.log
storybook-static
-lib
+
+*.db
+*.db.*
+*.db-*lib
*.db
*.db.*
*.db-*lib
\ No newline at end of file
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
new file mode 100644
index 000000000..5d9bb71af
--- /dev/null
+++ b/.vscode/extensions.json
@@ -0,0 +1,6 @@
+{
+ "recommendations": [
+ "sanjulaganepola.github-local-actions",
+ "github.vscode-github-actions"
+ ]
+}
\ No newline at end of file
diff --git a/docsite/docs/configuration/configuration.mdx b/docsite/docs/configuration/configuration.mdx
index 13ce858ac..9ffb49417 100644
--- a/docsite/docs/configuration/configuration.mdx
+++ b/docsite/docs/configuration/configuration.mdx
@@ -245,11 +245,8 @@ WARN : [App] [Sources] [spotify Secrets] Matched: None | Unmatched: SPOTIFY_SECR
-## Application Options
-These options affect multi-scrobbler's behavior and are not specific to any source/client.
-
-### Base URL
+## Base URL
Defines the URL that is used to generate default redirect URLs for authentication on [spotify](/configuration/sources/spotify) and [lastfm](/configuration/clients/lastfm) -- as well as some logging hints.
@@ -280,185 +277,82 @@ Useful when running with [docker](../installation/installation.mdx#docker) so th
-### Caching
-
-Multi-scrobbler caches some activities to persist important data across restarts, reduce external API calls, and make some actions faster.
-
-All of the activities below are **always** cached **in-memory** with an optional, configurable [**secondary** store](#secondary-caching-configuration) for persistence.
-
-
-
-
-**Queued** and **Failed** Scrobbles are cached so that any un-scrobbled data you have is persisted across restarts of multi-scrobbler.
-
-:::tip
-
-By default, this data use a [Secondary](#secondary-caching-configuration) [File](./?cacheType=file#secondary-caching-configuration) store, configured for you automatically.
-
-If you have configured a [persisted volume/bind mount](/installation?dockerSetting=storage#recommended-settings) for configuration (`/config` is mounted in [docker compose](/quickstart#create-docker-compose-file)) then you are already done. If you are not persisting this directory then you should consider setting up [Valkey Cache](./?cacheType=valkey#secondary-caching-configuration) for this.
-
-:::
-
-##### Configuration
-
-Use any [Secondary Cache](#secondary-caching-configuration), the config examples below show the default values:
-
-
-
-
-| Environmental Variable | Required? | Default | Description |
-| :--------------------- | --------- | --------- | --------------------- |
-| `CACHE_SCROBBLE` | No | `file` | The cache type to use |
-| `CACHE_SCROBBLE_CONN` | No | `/config` | |
+## Caching
-
+Multi-scrobbler implements caching to persist important data across restarts, reduce external API calls, and make some actions faster.
-
+A default **in-memory** cache store is used so that you always benefit from some caching. An optional, [**secondary** store](#secondary-caching) can be configured for greater caching capabilities.
-```json5 title="config.json"
-{
- "cache": {
- "scrobble": {
- "provider": "file",
- "connection": "/config"
- }
- },
- // ...
-}
-```
-
-
+
-
+
-
Authentication sessions/tokens/etc... are cached for quicker requests and for persistence across restarts.
-
-:::tip
-
-By default, this data use a [Secondary](#secondary-caching-configuration) [File](./?cacheType=file#secondary-caching-configuration) store, configured for you automatically.
-
-If you have configured a [persisted volume/bind mount](/installation?dockerSetting=storage#recommended-settings) for configuration (`/config` is mounted in [docker compose](/quickstart#create-docker-compose-file)) then you are already done. If you are not persisting this directory then you should consider setting up [Valkey Cache](./?cacheType=valkey#secondary-caching-configuration) for this.
-
-:::
-
-##### Configuration
-
-Use any [Secondary Cache](#secondary-caching-configuration), the config examples below show the default values:
-
-
-
-
-| Environmental Variable | Required? | Default | Description |
-| :--------------------- | --------- | --------- | --------------------- |
-| `CACHE_AUTH` | No | `file` | The cache type to use |
-| `CACHE_AUTH_CONN` | No | `/config` | |
-
-
-
-
-```json5 title="config.json"
-{
- "cache": {
- "auth": {
- "provider": "file",
- "connection": "/config"
- }
- },
- // ...
-}
-```
-
-
-
+
+The results of [transform rules](/configuration/transforms) are cached so that if a scrobble with identical data (track/artists/album) is identified and it has the same set of transform rules then the cached transform results can be applied.
-
API Calls to external (metadata) services used to [Enhance Scrobbles](/configuration/transforms), like calls to [Musicbrainz](/configuration/transforms/musicbrainz), can be cached to avoid duplicate calls and speed up scrobble transformations.
-
-By default, these calls are only cached in memory. If you wish for cached calls to be persisted across restarts then setup [Valkey Cache](./?cacheType=valkey#secondary-caching-configuration).
-
-##### Configuration
-
-Use any [Secondary Cache](#secondary-caching-configuration), the config examples below show the default values:
-
-
-
-
-| Environmental Variable | Required? | Default | Description |
-| :--------------------- | --------- | ------- | --------------------- |
-| `CACHE_METADATA` | No | | The cache type to use |
-| `CACHE_METADATA_CONN` | No | | |
-
-
-
-
-
-```json5 title="config.json"
-{
- "cache": {
- "metadata": {
- "provider": "valkey",
- "connection": "yourConnectionStringHere"
- }
- },
- // ...
-}
-```
-
-
+
-#### Secondary Caching Configuration
+
-The type of cache used, and its connection properties, can be configured through **ENV** or **AIO** config.
+Auth caching defaults to a **file** that is stored in the `CONFIG_DIR` directory using the pre-defined file name `ms-auth.cache`.
-
+This provides automatic persistence across restarts for long-lived auth data/credentials if you have configured a [persisted volume/bind mount](/installation?dockerSetting=storage#recommended-settings) for configuration (`/config` is mounted in [docker compose](/quickstart#create-docker-compose-file)).
-
+If you wish to use the [secondary store](#secondary-caching) for caching Auth you must explicitly configure it. This is because valkey can potentially be *ephemeral* if you do not provide a volume for its data directory.
-**File** cache is stored in the `CONFIG_DIR` directory using the pre-defined file name `ms-[cacheName].cache`.
+To explicitly configure auth to use the secondary store:
-
-Example
-
-| Environmental Variable | Required? | Default | Description |
-| :--------------------- | --------- | --------- | ------------------------------------------------------------ |
-| `CACHE_SCROBBLE` | No | `file` | The cache type to use |
-| `CACHE_SCROBBLE_CONN` | No | `/config` | The directory, within the container, to store the cache file |
+```yaml title="compose.yaml"
+services:
+ multi-scrobbler:
+ # ...
+ environment:
+ // highlight-start
+ - CACHE_AUTH=valkey
+ // highlight-end
+ # ...
+```
-Example
-
```json5 title="config.json"
{
"cache": {
- "scrobble": {
- "provider": "file",
- "connection": "/config"
+ "auth": {
+ "provider": "valkey"
}
},
// ...
}
```
-
-
-
-
+
+
+### Secondary Caching Store {#secondary-caching}
+
+Using a secondary store enables:
-[**Valkey**](https://valkey.io/) is an open-source fork of Redis.
+* persistence of cached data across restarts
+* a larger store (more data is saved)
+* a longer time-to-live in the store (cached data is fetchable for a longer period)
+
+These benefits are particularly beneficial when using [transforms](/configuration/transforms) like Musicbrainz and it is **strongly recommended** for these scenarios.
+
+Currently, Multi-scrobbler only supports [**Valkey**](https://valkey.io/), an open-source fork of Redis, as a secondary store.
@@ -466,11 +360,13 @@ Example
A valkey container can be added to the [multi-scrobbler docker compose stack](/installation?runType=docker-compose#docker):
+
+
+
```yaml title="docker-compose.yml"
services:
multi-scrobbler:
# ...
- # adding everything below
// highlight-start
valkey:
image: valkey/valkey
@@ -483,6 +379,25 @@ volumes:
// highlight-end
```
+
+
+
+```yaml title="docker-compose.yml"
+services:
+ multi-scrobbler:
+ # ...
+ // highlight-start
+ valkey:
+ image: valkey/valkey
+ volumes:
+ - ./valkeyData:/data
+ // highlight-end
+```
+
+
+
+
+
Use `redis://valkey:6379` as the connection string in the configurations below.
@@ -497,12 +412,16 @@ redis://HOST_IP:HOST_PORT
-Example
-
-| Environmental Variable | Required? | Default | Description |
-| :--------------------- | --------- | -------- | ------------------------------------------------------------------- |
-| `CACHE_METADATA` | Yes | `valkey` | The cache type to use |
-| `CACHE_METADATA_CONN` | Yes | | The host/IP and port to connect to EX: `redis://192.168.0.120:6379` |
+```yaml title="compose.yaml"
+services:
+ multi-scrobbler:
+ # ...
+ environment:
+ // highlight-start
+ - CACHE_VALKEY=redis://192.168.0.120:6379
+ // highlight-end
+ # ...
+```
@@ -513,10 +432,7 @@ Example
```json5 title="config.json"
{
"cache": {
- "metadata": {
- "provider": "valkey",
- "connection": "redis://192.168.0.120:6379"
- }
+ "valkey": "redis://192.168.0.120:6379"
},
// ...
}
@@ -524,12 +440,9 @@ Example
-
-
-
-### Debug Mode
+## Debug Mode
Turning on Debug Mode will
@@ -550,7 +463,7 @@ To set debug mode either add it to [AIO `config.json`](./?configType=aio#configu
or set the [ENV](./?configType=env#configuration-types) `DEBUG_MODE=true`
-### Disable Web
+## Disable Web
If you do not need the dashboard and/or ingress sources, or have security concerns about ingress and cannot control your hosting environment, the web server and API can be disabled.
diff --git a/docsite/docs/configuration/sources/lastfm-endpoint.mdx b/docsite/docs/configuration/sources/lastfm-endpoint.mdx
index bf99c8705..6359d922b 100644
--- a/docsite/docs/configuration/sources/lastfm-endpoint.mdx
+++ b/docsite/docs/configuration/sources/lastfm-endpoint.mdx
@@ -41,6 +41,6 @@ http://localhost:9078/api/lastfm/mySlug
| Environmental Variable | Required? | Default | Description |
| :--------------------- | :-------- | ------- | ------------------------------------------------------------------------------------------------------------------ |
- | `LFMENDPOINT_ENABLE` | No | | Use LFM Endpoint as a Source without any other configuration. Only required if slug/token are not provided as ENVs |
+ | `LFM_ENABLE` | No | | Use LFM Endpoint as a Source without any other configuration. Only required if slug/token are not provided as ENVs |
| `LFM_SLUG` | No | | (Optional) The URL suffix to use for accepting LFM scrobbles |
\ No newline at end of file
diff --git a/docsite/docs/configuration/sources/listenbrainz-endpoint.mdx b/docsite/docs/configuration/sources/listenbrainz-endpoint.mdx
index ce44dc3c4..976b84bde 100644
--- a/docsite/docs/configuration/sources/listenbrainz-endpoint.mdx
+++ b/docsite/docs/configuration/sources/listenbrainz-endpoint.mdx
@@ -111,7 +111,7 @@ To troubleshoot any errors, and assuming you are using Home Assistant, view the
| Environmental Variable | Required? | Default | Description |
| :--------------------- | :-------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
- | `LZENDPOINT_ENABLE` | No | | Use LZ Endpoint as a Source without any other configuration. Only required if slug/token are not provided as ENVs |
+ | `LZE_ENABLE` | No | | Use LZ Endpoint as a Source without any other configuration. Only required if slug/token are not provided as ENVs |
| `LZE_TOKEN` | No | | LZ "Authentication Token" you provided to the scrobbling application |
| `LZE_SLUG` | No | | (Optional) The URL suffix to use for accepting LZ scrobbles |
| `LZE_USERNAME` | No | | (Optional) A fake username that will be returned for token validation and on now-playing responses. If none is provided the Source's name is used instead. |
diff --git a/docsite/docs/configuration/transforms/transforms.mdx b/docsite/docs/configuration/transforms/transforms.mdx
index be1a3bcaf..b5780c691 100644
--- a/docsite/docs/configuration/transforms/transforms.mdx
+++ b/docsite/docs/configuration/transforms/transforms.mdx
@@ -591,7 +591,7 @@ The output shows the diff between the previous stage (or original Play) and the
MS uses [caching](/configuration/#caching) to reduce the number of API calls needed for stages like [Musicbrainz](/configuration/transforms/musicbrainz) and to speed up all transforms by caching steps and results. However, the default caching strategy uses a small cache size and very short [TTLs](https://en.wikipedia.org/wiki/Time_to_live) because it is *in-memory*.
-**If you are using any Transform stages you should configure [secondary caching with Valkey for Metadata](/configuration/?cacheType=valkey&cachedThings=metadata#secondary-caching-configuration)** to increase the cache size and lifetime of cached items. This will also reduce memory usage in MS.
+**If you are using any Transform stages you should configure [secondary caching](/configuration#secondary-caching)** to increase the cache size and lifetime of cached items. This will also reduce memory usage in MS.
diff --git a/docsite/docs/installation/installation.mdx b/docsite/docs/installation/installation.mdx
index 83f6f9bbd..93a292960 100644
--- a/docsite/docs/installation/installation.mdx
+++ b/docsite/docs/installation/installation.mdx
@@ -132,7 +132,7 @@ services:
-**Optionally**, add a [Valkey](https://valkey.io/) service to your stack for [secondary caching](/configuration/?cacheType=valkey#secondary-caching-configuration) to take advantage of faster performance and reduced memory usage.
+**Optionally**, add a [Valkey](https://valkey.io/) service to your stack for [secondary caching](/configuration#secondary-caching) to take advantage of faster performance and reduced memory usage.
```yaml title="docker-compose.yml"
services:
@@ -142,8 +142,7 @@ services:
environment:
# ...
// highlight-start
- CACHE_METADATA=valkey
- CACHE_METADATA_CONN=redis://valkey:6379
+ CACHE_VALKEY=redis://valkey:6379
// highlight-end
# ...
diff --git a/docsite/docs/quickstart.mdx b/docsite/docs/quickstart.mdx
index 140d106e5..f38abac6a 100644
--- a/docsite/docs/quickstart.mdx
+++ b/docsite/docs/quickstart.mdx
@@ -336,7 +336,7 @@ Visit `http://192.168.0.100:9078` to see the dashboard where
## Next Steps
* See more advanced docker options as well as other install methods in the [**Installation**](/installation#docker) docs
- * Setup [secondary caching](/configuration/?cacheType=valkey#secondary-caching-configuration) with [valkey](/installation?dockerSetting=caching#recommended-settings) for increased performance and reduced memory usage
+ * Setup [secondary caching](/configuration#secondary-caching) with [valkey](/installation?dockerSetting=caching#recommended-settings) for increased performance and reduced memory usage
* Review the [**Configuration**](/configuration) docs
* Learn about how to configure multi-scrobbler using files for more complicated Source/Client scenarios
* See all available [**Sources**](/configuration/sources) and [**Clients**](/configuration/clients) alongside configuration examples
diff --git a/docsite/docs/updating/updating.mdx b/docsite/docs/updating/updating.mdx
index 74aec3763..81b1563a9 100644
--- a/docsite/docs/updating/updating.mdx
+++ b/docsite/docs/updating/updating.mdx
@@ -10,11 +10,37 @@ import CodeBlock from '@theme/CodeBlock';
## Updating
-Currently, multi-scrobbler does not have any databases or dependencies that require additional interaction when updating.
+The majority of Multi-scrobbler updates can be completed without any manual intervention. This is **guaranteed** for [patch version updates](#versioning).
-Any **breaking changes** will be related to [configuration](/configuration) that has been deprecated/changed, or tooling that usually only affects [Local Installations.](/installation#local-installation)
+Regardless, it is recommended to consult the [**Github Release Notes**](https://github.com/FoxxMD/multi-scrobbler/releases) before any upgrades. The release notes contain all changelogs as well as most **breaking changes**/notices.
-These changes, and how to update configs accordingly, are detailed in [**Github Release Notes**](https://github.com/FoxxMD/multi-scrobbler/releases). It is recommended to check this page before upgrading [minor or major versions.](#versioning)
+The [**Upgrade Path** docs](/updating/upgrade-path) contain information for upgrading through **required versions** or in-depth migration guides. Check this section before upgrading any [minor versions](#versioning).
+
+### Database
+
+Multi-scrobbler depends on a SQLite database (`ms.db`) that is created on first run and stored in the [`CONFIG_DIR`](/installation/?dockerSetting=storage#recommended-settings).
+
+If any database migrations are required for an update then your database is **automatically backed up** before migration occurs. The backup file is created in the same directory.
+
+You can manually make a backup of this database by making a copy of `ms.db` and any similarly named files like `ms.db-journal`.
+
+:::tip
+
+If upgrading a [minor version](#versioning) you may want to make a backup for extra safety.
+
+:::
+
+### Configuration
+
+[Minor versions](#versioning) may have **breaking changes** related to [configuration](/configuration). Consult the [**Github Release Notes**](https://github.com/FoxxMD/multi-scrobbler/releases) and [Upgrade Paths](/updating/upgrade-path) before upgrading.
+
+
+## Update Instructions
+
+Assuming:
+
+* upgrade(s) are only [patch versions](#versioning) and the [Release Notes](https://github.com/FoxxMD/multi-scrobbler/releases) do not contain any other guidance or
+* you have checked the release notes, upgrade paths docs, and completed all migration steps for the specific version upgrade
diff --git a/docsite/docs/updating/upgrade-path/0140.mdx b/docsite/docs/updating/upgrade-path/0140.mdx
new file mode 100644
index 000000000..2d32a7105
--- /dev/null
+++ b/docsite/docs/updating/upgrade-path/0140.mdx
@@ -0,0 +1,218 @@
+---
+sidebar_position: 1
+title: From < 0.14.0
+description: Upgrading to 0.14.0
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+import CodeBlock from '@theme/CodeBlock';
+import RequiredUpgrade from "@site/src/components/snippets/_upgrade-required.mdx"
+
+
+
+## Source/Client IDs
+
+MS `0.14.0` introduces a database for persisting Plays/Scrobbles, queues, and other data **associated with a Source/Client**.
+
+To make this association atomic a Source/Client **ID** is now configurable. This ID is what MS will use to identify the Source/Client in your **config** with the Source/Client in the **database**.
+
+This ID needs to be unique to the client or source type it is used on IE:
+
+* two [Koito Clients](/configuration/clients/koito/) cannot both have the ID `myKoitoID`
+* it is recommended that the ID be *globally* unique among all sources/clients, but it's not required
+
+### Configuring IDs
+
+
+
+
+
+For each Source/Client in your environmental variables, add a key with the suffix `_ID` and the ID value. EX
+
+```yaml title="compose.yaml"
+services:
+ multi-scrobbler:
+ # ...
+ environment:
+ - KOTIO_TOKEN=...
+ # ...more koito config
+ // highlight-start
+ - KOITO_ID=myKoitoID
+ // highlight-end
+
+ - JELLYFIN_URL=...
+ # ...more jellyin config
+ // highlight-start
+ - JELLYFIN_ID=myJellyfinID
+ // highlight-end
+```
+
+
+
+
+Add an `id` to the top-level for each Source/Client configuration, next to `data`:
+
+```json title="koito.json"
+[
+ {
+ "name": "koito-source",
+ "configureAs": "source",
+ // highlight-start
+ "id": "myKoitoID",
+ // highlight-end
+ "data": {
+ "token": "029b081ba-9156-4pe7-88e5-3be671f5ea2b",
+ "username": "admin",
+ "url": "http://192.168.0.100:4110"
+ }
+ }
+]
+```
+
+
+
+
+Add an `id` to the top-level for each Source/Client configuration, next to `data`:
+
+```json title="koito.json"
+[
+ {
+ "name": "koito-source",
+ "configureAs": "source",
+ "type": "koito",
+ // highlight-start
+ "id": "myKoitoID",
+ // highlight-end
+ "data": {
+ "token": "029b081ba-9156-4pe7-88e5-3be671f5ea2b",
+ "username": "admin",
+ "url": "http://192.168.0.100:4110"
+ }
+ }
+]
+```
+
+
+
+
+:::note[Default ID]
+
+If you do not add an ID then Multi-Scrobbler will automatically use the **name** of the Source/Client as the ID. The name is shown in the Dashboard.
+
+If you decide to add an ID later you must use the name as the ID in order to keep Plays/Scobbles associated with the same config.
+
+:::
+
+## Cached Scrobble Migration
+
+:::tip
+
+Before upgrading, if your MS dashboard shows 0 queued/failed for all [Scrobble Clients](/configuration/clients) then you can **ignore this step.**
+
+:::
+
+MS `0.14.0` introduces a database for persisting Plays/Scrobbles, queues, and other data. Prior to `0.14.0`, queued/failed scrobbles were stored in a cache **file** inside your [`CONFIG_DIR`](/installation/?dockerSetting=storage#recommended-settings) named `ms-scrobble.cache`.
+
+When a [Client](/configuration/clients) is created and **enabled** in `0.14.0` it will attempt to automatically migrate scrobbles from this cache into the database.
+
+* You can see progress/results for this process by filtering logs for `[Cached Scrobble Migration]`
+* If the process fails MS will attempt to migrate failed scrobbles, again, the next time it is started
+* Your cached scrobbles **are not deleted** in either the success or failure outcome
+ * If the process succeeds then MS knows to ignore the cache on subsequent startups
+
+:::note
+
+This process only occurs for Clients that are **enabled.**
+
+* If you are using ENV for config then your Clients are automatically enabled
+* If you are using File/AIO make sure that the `enable` property is either `true` or not present in your Client configs
+
+Even if your Client does not start successfully (EX due to authentication) you should still enable and start **all** Clients in order to get all scrobbled migrated.
+
+:::
+
+## Cache Configuration
+
+In `0.14.0` [Cache](/configuration#caching) has been simplified with much of the required configuration being removed.
+
+:::tip
+
+This only applies to users who have `cache` in their [AIO Config](/configuration/?configType=aio#configuration-types) `config.json` or are using `CACHE_*` [ENV Config](/configuration/?configType=env#configuration-types)
+
+If you do not have any of the above [Cache](/configuration#caching) configuration defined then you can **ignore this step.**
+
+:::
+
+#### Scrobble Caching Removed
+
+[Scrobble caching has removed and replaced by the new database.](#cached-scrobble-migration)
+
+* Remove any ENV Config starting with `CACHE_SCROBBLE`
+* Remove `cache.scrobble` from the AIO Config
+
+#### Metadata Config Simplified
+
+Metadata caching remains the same but the config has been simplified. If you were using [Valkey for caching](/configuration/#secondary-caching) update your config:
+
+
+
+
+
+* Remove `CACHE_METADATA`
+* Rename `CACHE_METADATA_CONN` to [`CACHE_VALKEY`](/configuration/#secondary-caching)
+
+
+
+
+Remove `cache.metadata` and add a new string key `valkey` to the `cache` object, containing your valkey connection string:
+
+```diff
+ "cache": {
++ "valkey": "redis://valkey:6379"
+- "metadata": {
+- "provider": "valkey",
+- "connection": "redis://valkey:6379"
+- }
+ }
+```
+
+
+
+
+
+#### Auth Config Simplified
+
+Auth caching remains the same but the config has been simplified. The connection option for Auth is no longer configurable. You may specify provider as either `file` (default, uses `CONFIG_DIR`) or `valkey`. If you want to use Valkey for auth it will use the same config as Metadata.
+
+
+
+
+
+* Remove `CACHE_AUTH_CONN`
+* Add [`CACHE_VALKEY`](/configuration/#secondary-caching) (if using valkey)
+
+
+
+
+Remove the `connection` property from the `auth` object. If using `file` the entire `auth` object can be removed.
+
+```diff
+ "cache": {
++ "valkey": "redis://valkey:6379",
+ "auth": {
+ "provider": "valkey",
+- "connection": "redis://valkey:6379"
+ }
+ }
+```
+
+
+
+
+### Renamed ENV Keys
+
+In an effort to standard ENV prefixes some ENV keys have been renamed:
+
+* `LZENDPOINT_ENABLE` => `LZE_ENABLE`
+* `LFMENDPOINT_ENABLE` => `LFM_ENABLE`
\ No newline at end of file
diff --git a/docsite/docs/updating/upgrade-path/_category_.json b/docsite/docs/updating/upgrade-path/_category_.json
new file mode 100644
index 000000000..ab29ac513
--- /dev/null
+++ b/docsite/docs/updating/upgrade-path/_category_.json
@@ -0,0 +1,7 @@
+{
+ "label": "Upgrade Path",
+ "link": {
+ "type": "doc",
+ "id": "updating/upgrade-path/upgrade-path"
+ }
+}
diff --git a/docsite/docs/updating/upgrade-path/upgrade-path.mdx b/docsite/docs/updating/upgrade-path/upgrade-path.mdx
new file mode 100644
index 000000000..8f3505b6e
--- /dev/null
+++ b/docsite/docs/updating/upgrade-path/upgrade-path.mdx
@@ -0,0 +1,39 @@
+---
+sidebar_position: 1
+title: Upgrade Path
+description: Updating Multi-Scrobbler
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+import CodeBlock from '@theme/CodeBlock';
+
+The majority of changes are detailed in [**Github Release Notes**](https://github.com/FoxxMD/multi-scrobbler/releases), including *most* breaking changes. You should consult the release notes for each version you will be updating through/to.
+
+Upgrade paths for specific version, detailed here, are reserved for:
+
+
+
+
+
+:::warning[Required Upgrade]
+
+Versions you **must** upgrade to **before** upgrading to a newer version. Likely due to the codebase containing functionality to upgrade persistent data that cannot be migrating across multiple versions.
+
+:::
+
+
+
+
+
+:::note[Optional Upgrade]
+
+(Breaking) Changes to configuration/data that require more detail or formatting than is feasible in Github release notes. These upgrades may be skipped.
+
+:::
+
+
+
+
+
+The type of upgrade is shown at the top of each page with the same colored callout shown above.
\ No newline at end of file
diff --git a/docsite/package-lock.json b/docsite/package-lock.json
index 311e9803a..63b625687 100644
--- a/docsite/package-lock.json
+++ b/docsite/package-lock.json
@@ -12266,9 +12266,10 @@
}
},
"node_modules/hast-util-to-jsx-runtime": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.2.tgz",
- "integrity": "sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==",
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz",
+ "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==",
+ "license": "MIT",
"dependencies": {
"@types/estree": "^1.0.0",
"@types/hast": "^3.0.0",
@@ -12280,9 +12281,9 @@
"mdast-util-mdx-expression": "^2.0.0",
"mdast-util-mdx-jsx": "^3.0.0",
"mdast-util-mdxjs-esm": "^2.0.0",
- "property-information": "^6.0.0",
+ "property-information": "^7.0.0",
"space-separated-tokens": "^2.0.0",
- "style-to-object": "^1.0.0",
+ "style-to-js": "^1.0.0",
"unist-util-position": "^5.0.0",
"vfile-message": "^4.0.0"
},
@@ -12291,6 +12292,16 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/hast-util-to-jsx-runtime/node_modules/property-information": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz",
+ "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/hast-util-to-parse5": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz",
@@ -12883,9 +12894,10 @@
}
},
"node_modules/inline-style-parser": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz",
- "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q=="
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.7.tgz",
+ "integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==",
+ "license": "MIT"
},
"node_modules/invariant": {
"version": "2.2.4",
@@ -20835,12 +20847,22 @@
"integrity": "sha512-i/n8VsZydrugj3Iuzll8+x/00GH2vnYsk1eomD8QiRrSAeW6ItbCQDtfXCeJHd0iwiNagqjQkvpvREEPtW3IoQ==",
"license": "MIT"
},
+ "node_modules/style-to-js": {
+ "version": "1.1.21",
+ "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz",
+ "integrity": "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==",
+ "license": "MIT",
+ "dependencies": {
+ "style-to-object": "1.0.14"
+ }
+ },
"node_modules/style-to-object": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz",
- "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==",
+ "version": "1.0.14",
+ "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.14.tgz",
+ "integrity": "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==",
+ "license": "MIT",
"dependencies": {
- "inline-style-parser": "0.2.4"
+ "inline-style-parser": "0.2.7"
}
},
"node_modules/stylehacks": {
diff --git a/docsite/package.json b/docsite/package.json
index 4637cf351..8640608fa 100644
--- a/docsite/package.json
+++ b/docsite/package.json
@@ -66,6 +66,7 @@
},
"overrides": {
"lodash": "4.18.1",
- "satori": "0.25.0"
+ "satori": "0.25.0",
+ "hast-util-to-jsx-runtime": "2.3.6"
}
}
diff --git a/docsite/src/components/AdmonitionDetails.tsx b/docsite/src/components/AdmonitionDetails.tsx
index fa098547f..5f3352e97 100644
--- a/docsite/src/components/AdmonitionDetails.tsx
+++ b/docsite/src/components/AdmonitionDetails.tsx
@@ -5,9 +5,10 @@ import IconDanger from '@theme/Admonition/Icon/Danger';
import IconTip from '@theme/Admonition/Icon/Tip';
import IconNote from '@theme/Admonition/Icon/Note';
import { ReactElement } from 'react';
+import AdmonitionIconImportant from './ImportantIcon';
export interface DetailsAdmoProps extends DetailProps {
- type?: 'warning' | 'danger' | 'note' | 'tip'
+ type?: 'warning' | 'danger' | 'note' | 'tip' | 'important'
}
const DetailsAdmo = (props: DetailsAdmoProps) => {
@@ -32,6 +33,10 @@ const DetailsAdmo = (props: DetailsAdmoProps) => {
cn = 'alert--success';
icon =
break;
+ case 'important':
+ cn = 'alert--important';
+ icon = ;
+ break;
}
const iconWrapper = icon === undefined ? null : {icon};
diff --git a/docsite/src/components/ImportantIcon.tsx b/docsite/src/components/ImportantIcon.tsx
new file mode 100644
index 000000000..b37786787
--- /dev/null
+++ b/docsite/src/components/ImportantIcon.tsx
@@ -0,0 +1,13 @@
+import type { Props } from '@theme/Admonition/Icon/Info';
+
+export default function AdmonitionIconImportant(props: Props) {
+ // based on https://icon-sets.iconify.design/zondicons/exclamation-outline/
+ return (
+
+ );
+}
\ No newline at end of file
diff --git a/docsite/src/components/snippets/_upgrade-optional.mdx b/docsite/src/components/snippets/_upgrade-optional.mdx
new file mode 100644
index 000000000..e69de29bb
diff --git a/docsite/src/components/snippets/_upgrade-required.mdx b/docsite/src/components/snippets/_upgrade-required.mdx
new file mode 100644
index 000000000..657519f96
--- /dev/null
+++ b/docsite/src/components/snippets/_upgrade-required.mdx
@@ -0,0 +1,15 @@
+:::warning[Required Upgrade]
+
+You **MUST** upgrade to this version **before** upgrading Multi-Scrobbler to a newer version.
+
+This version contains functionality to migrate your data from **{props.before}** that newer versions depend on.
+
+
+
+Upgrade Process Example
+
+* Upgrade Multi-Scrobbler {props.old} to {props.current}
+* **After** upgrading, you can optionally upgrade to > {props.current}
+
+
+:::
\ No newline at end of file
diff --git a/docsite/src/css/custom.css b/docsite/src/css/custom.css
index 25603721f..46485615b 100644
--- a/docsite/src/css/custom.css
+++ b/docsite/src/css/custom.css
@@ -13,6 +13,7 @@
--ifm-color-primary-light: #33925d;
--ifm-color-primary-lighter: #359962;
--ifm-color-primary-lightest: #3cad6e;
+ --ifm-color-important-contrast-background: #bb91ff;
--ifm-code-font-size: 95%;
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1);
}
@@ -26,6 +27,7 @@
--ifm-color-primary-light: #29d5b0;
--ifm-color-primary-lighter: #32d8b4;
--ifm-color-primary-lightest: #4fddbf;
+ --ifm-color-important-contrast-background: #5a3795;
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
}
@@ -59,6 +61,10 @@ details[class^='details_'].alert--info {
--ifm-alert-background-color: var(--ifm-color-secondary-contrast-background);
--ifm-alert-foreground-color: var(--ifm-color-secondary-contrast-foreground);
}
+ &.alert--important {
+ --ifm-alert-background-color: var(--ifm-color-important-contrast-background);
+ --ifm-alert-foreground-color: var(--ifm-color-secondary-contrast-foreground);
+ }
> summary {
--docusaurus-details-decoration-color: currentColor;
diff --git a/docsite/tsconfig.client.json b/docsite/tsconfig.client.json
index 419accc50..9f2723ee5 100644
--- a/docsite/tsconfig.client.json
+++ b/docsite/tsconfig.client.json
@@ -14,5 +14,5 @@
"baseUrl": "./docs",
"lib": ["DOM"]
},
- "include": ["src/socialCard/ImageRenderers.tsx"]
+ "include": ["src/socialCard/ImageRenderers.tsx", "types"]
}
\ No newline at end of file
diff --git a/docsite/types/global.d.ts b/docsite/types/global.d.ts
new file mode 100644
index 000000000..934754d19
--- /dev/null
+++ b/docsite/types/global.d.ts
@@ -0,0 +1,27 @@
+import * as React from 'react'
+
+/**
+ * React 19 removed the JSX namespace
+ * https://react.dev/blog/2024/04/25/react-19-upgrade-guide#the-jsx-namespace-in-typescript
+ * and any packages that still use it will produce ts warnings/errors
+ *
+ * this can be bypassed by using tsconfig's compilerOptions.skipLibCheck: true
+ * but that is not super great for detecting actual issues with third party libraries before compile time
+ *
+ * Some of the below may be fixed by upgrading docusaurus to 3.10.x but for now:
+ *
+ * * hast-util-to-jsx-runtime version had to be overriden to use a newer package to fix NS issue
+ * * packages below have no newer version with fixed NS so we just provide global overrides to re-export React as JSX NS
+ *
+ */
+
+// https://github.com/mdx-js/mdx/issues/2487#issuecomment-3462720757
+declare module 'mdx/types.js' {
+ export import JSX = React.JSX
+}
+
+declare module 'react-helmet-async' {
+ export import JSX = React.JSX
+}
+
+export {}
\ No newline at end of file
diff --git a/drizzle.config.ts b/drizzle.config.ts
new file mode 100644
index 000000000..bb1c4171b
--- /dev/null
+++ b/drizzle.config.ts
@@ -0,0 +1,13 @@
+import 'dotenv/config';
+import { defineConfig } from 'drizzle-kit';
+import { configDir, projectDir } from './src/backend/common/index.js';
+import * as path from 'path';
+
+export default defineConfig({
+ schema: path.resolve(projectDir, 'src/backend/common/database/drizzle/schema'),
+ out: path.resolve(projectDir, 'src/backend/common/database/drizzle/migrations'),
+ dialect: 'sqlite',
+ dbCredentials: {
+ url: path.resolve(configDir, 'ms.db'),
+ },
+});
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 28d54273d..282309045 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -47,6 +47,7 @@
"dbus-ts": "^0.0.7",
"discord.js": "^14.26.0",
"dotenv": "^10.0.0",
+ "drizzle-orm": "^1.0.0-rc.2-c5a84d1",
"express": "^5.2.1",
"express-session": "^1.19.0",
"fast-equals": "^6.0.0",
@@ -71,6 +72,7 @@
"mpc-js": "^2.1.1",
"musicbrainz-api": "^0.27.0",
"nanoid": "^3.3.1",
+ "neotraverse": "^0.6.18",
"node-object-hash": "^3.1.1",
"normalize-url": "^8.0.1",
"ntfy": "^1.15.2",
@@ -84,6 +86,7 @@
"round-robin-js": "^3.0.10",
"serialize-error": "^13.0.1",
"spotify-web-api-node": "^5.0.2",
+ "sqlite-up": "^0.5.0",
"superagent": "^8.0.9",
"toad-scheduler": "^3.0.0",
"tough-cookie": "^5.1.2",
@@ -99,21 +102,20 @@
},
"devDependencies": {
"@chakra-ui/react": "^3.34.0",
- "@chromatic-com/storybook": "^5.0.1",
- "@curvenote/ansi-to-react": "^7.0.0",
+ "@chromatic-com/storybook": "^5.1.2",
"@dbus-types/notifications": "^0.0.5",
"@emotion/react": "^11.14.0",
- "@eslint/js": "^8.56.0",
+ "@eslint/js": "^10.0.1",
"@faker-js/faker": "^9.0.1",
"@fortawesome/fontawesome-svg-core": "^6.7.2",
"@fortawesome/free-solid-svg-icons": "^6.7.2",
"@fortawesome/react-fontawesome": "^0.2.6",
"@gr2m/net-interceptor": "^1.0.0",
- "@react-nano/use-event-source": "^0.13.0",
- "@reduxjs/toolkit": "^1.9.7",
- "@storybook/addon-a11y": "10.1.11",
- "@storybook/addon-docs": "10.1.11",
- "@storybook/react-vite": "10.1.11",
+ "@react-nano/use-event-source": "^0.16.0",
+ "@reduxjs/toolkit": "^2.11.2",
+ "@storybook/addon-a11y": "^10.3.6",
+ "@storybook/addon-docs": "^10.3.6",
+ "@storybook/react-vite": "^10.3.6",
"@tailwindcss/vite": "^4.2.2",
"@tsconfig/node18": "^1.0.1",
"@types/chai": "^4.3.0",
@@ -129,50 +131,52 @@
"@types/jest": "^27.5.2",
"@types/jscodeshift": "^0.11.6",
"@types/mocha": "^9.1.0",
- "@types/node": "^20.19.2",
+ "@types/node": "^24.12.2",
"@types/object-hash": "^3.0.0",
"@types/passport": "^1.0.12",
- "@types/react": "^18.2.18",
- "@types/react-dom": "^18.2.7",
+ "@types/react": "^19.2.14",
+ "@types/react-dom": "^19.2.3",
"@types/react-window": "^1.8.5",
"@types/sinon": "^21.0.0",
"@types/spotify-web-api-node": "^5.0.7",
"@types/superagent": "^8.1.9",
"@types/xml2js": "^0.4.11",
- "@vitejs/plugin-react": "^4.2.1",
+ "@vitejs/plugin-react": "^6.0.1",
+ "ansi-to-react": "^6.2.6",
"autoprefixer": "^10.4.27",
"chai": "^4.3.6",
"chai-as-promised": "^8.0.2",
"clsx": "^2.1.1",
- "eslint": "^8.56.0",
+ "drizzle-kit": "^1.0.0-rc.2-c5a84d1",
+ "eslint": "^10.3.0",
"eslint-plugin-prefer-arrow-functions": "^3.2.4",
- "eslint-plugin-storybook": "10.1.11",
+ "eslint-plugin-storybook": "^10.3.6",
"git-cliff": "^2.12.0",
"jsondiffpatch-react": "^1.0.8",
"mocha": "^10.3.0",
"mockdate": "^3.0.5",
"msw": "^2.12.10",
- "neotraverse": "^0.6.18",
"next-themes": "^0.4.6",
"nodemon": "^3.0.3",
"playwright": "^1.58.2",
- "react": "^18.3.1",
- "react-dom": "^18.3.1",
+ "react": "^19.2.6",
+ "react-dom": "^19.2.6",
"react-error-boundary": "^6.1.1",
"react-icons": "^5.6.0",
- "react-redux": "^8.1.3",
- "react-router-dom": "^6.30.3",
+ "react-redux": "^9.2.0",
+ "react-router-dom": "^7.15.0",
"react-virtuoso": "^4.18.4",
"sass": "^1.99.0",
"shiki": "^4.0.2",
"sinon": "^21.0.2",
- "storybook": "10.2.0",
+ "storybook": "^10.3.6",
"tailwindcss": "^4.2.2",
- "ts-essentials": "^10.1.1",
- "typescript": "^5.9.3",
- "typescript-eslint": "^7.0.1",
- "vite": "^5.4.21",
- "with-local-tmp-dir": "^6.0.0"
+ "tinyexec": "^1.1.1",
+ "ts-essentials": "^10.2.0",
+ "typescript": "^6.0.3",
+ "typescript-eslint": "^8.59.3",
+ "vite": "^8.0.12",
+ "with-local-tmp-dir": "^7.0.1"
},
"engines": {
"node": ">=24.14.0",
@@ -181,11 +185,15 @@
},
"node_modules/@adobe/css-tools": {
"version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.0.tgz",
+ "integrity": "sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ==",
"dev": true,
"license": "MIT"
},
"node_modules/@ark-ui/react": {
"version": "5.34.1",
+ "resolved": "https://registry.npmjs.org/@ark-ui/react/-/react-5.34.1.tgz",
+ "integrity": "sha512-RJlXCvsHzbK9LVxUVtaSD5pyF1PL8IUR1rHHkf0H0Sa397l6kOFE4EH7MCSj3pDumj2NsmKDVeVgfkfG0KCuEw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -262,32 +270,44 @@
},
"node_modules/@astronautlabs/mdns": {
"version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/@astronautlabs/mdns/-/mdns-1.0.10.tgz",
+ "integrity": "sha512-9bVdQ15Tbzpor1z/bteaemC9NvRDZgMD4Cfbu1/r/6Zv6fCBXvIJJoJ6Dh/BMvTlAiT2Xewm36i0VWRnZ4yw6A==",
"license": "MIT"
},
"node_modules/@atcute/identity": {
- "version": "1.1.1",
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/@atcute/identity/-/identity-1.1.5.tgz",
+ "integrity": "sha512-5i9nl1UVnBDPCumUwrLNl4BZpGvQ/XABEXbjhiw3PQwRUfpQA8FqByDGxXy2gWpFDrNvQ9yVuOoNsjzxJgjjVA==",
"license": "0BSD",
"peer": true,
"dependencies": {
- "@atcute/lexicons": "^1.2.2",
+ "@atcute/lexicons": "^1.3.1",
"@badrap/valita": "^0.4.6"
+ },
+ "peerDependencies": {
+ "@atcute/lexicons": "^1.0.0"
}
},
"node_modules/@atcute/identity-resolver": {
- "version": "1.1.4",
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@atcute/identity-resolver/-/identity-resolver-1.2.3.tgz",
+ "integrity": "sha512-q891zLUMtgoD60y5Pv2YmTg4wIf4ipFuIhZlIuQTTB7qM9sGxmBbe2quzTRCTl3pnsLEmTz7l+3Dszgoutsp5w==",
"license": "0BSD",
"peer": true,
"dependencies": {
- "@atcute/lexicons": "^1.2.2",
- "@atcute/util-fetch": "^1.0.3",
+ "@atcute/lexicons": "^1.3.1",
+ "@atcute/util-fetch": "^1.0.5",
"@badrap/valita": "^0.4.6"
},
"peerDependencies": {
- "@atcute/identity": "^1.0.0"
+ "@atcute/identity": "^1.0.0",
+ "@atcute/lexicons": "^1.0.0"
}
},
"node_modules/@atcute/identity-resolver-node": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@atcute/identity-resolver-node/-/identity-resolver-node-1.0.3.tgz",
+ "integrity": "sha512-RPH5M4ZRayKRcGnJWUOPVhN5WSYURXXZxKzgVT9lj/WZCH6ij2Vg3P3Eva7GGs0SG1ytnX1XVBTMoIk8nF/SLQ==",
"license": "0BSD",
"dependencies": {
"@atcute/lexicons": "^1.2.2"
@@ -298,23 +318,46 @@
}
},
"node_modules/@atcute/lexicons": {
- "version": "1.2.2",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@atcute/lexicons/-/lexicons-1.3.1.tgz",
+ "integrity": "sha512-2JVxDmHt+QwsUoPyVYWIN7ZLRLfLx4GeJxKFjA9ofStuby9hCMv7Q4GAPIXuJD8wPv8vrnhr1yRNQhiJX+bthw==",
"license": "0BSD",
"dependencies": {
- "@standard-schema/spec": "^1.0.0",
+ "@atcute/uint8array": "^1.1.1",
+ "@atcute/util-text": "^1.3.1",
+ "@standard-schema/spec": "^1.1.0",
"esm-env": "^1.2.2"
}
},
+ "node_modules/@atcute/uint8array": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@atcute/uint8array/-/uint8array-1.1.2.tgz",
+ "integrity": "sha512-n+lutnbN9mKzSjSVdfsYfzJ40u2971H+iLSL46D6d7zcrA4delxusf/ftGFvj5oGW03OioaFgQOy3Lqa3JmTeA==",
+ "license": "0BSD"
+ },
"node_modules/@atcute/util-fetch": {
- "version": "1.0.3",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@atcute/util-fetch/-/util-fetch-1.0.5.tgz",
+ "integrity": "sha512-qjHj01BGxjSjIFdPiAjSARnodJIIyKxnCMMEcXMESo9TAyND6XZQqrie5fia+LlYWVXdpsTds8uFQwc9jdKTig==",
"license": "0BSD",
"peer": true,
"dependencies": {
"@badrap/valita": "^0.4.6"
}
},
+ "node_modules/@atcute/util-text": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@atcute/util-text/-/util-text-1.3.1.tgz",
+ "integrity": "sha512-MRgJXkx67znuBXuoAYCJkBZyd3OApL7zZlNf5kXhuoCXcdiu1nblRDycYTADSkym4epBSQWxh26kmI9sewaq6A==",
+ "license": "0BSD",
+ "dependencies": {
+ "unicode-segmenter": "^0.14.5"
+ }
+ },
"node_modules/@atproto-labs/did-resolver": {
"version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/@atproto-labs/did-resolver/-/did-resolver-0.2.2.tgz",
+ "integrity": "sha512-ca2B7xR43tVoQ8XxBvha58DXwIH8cIyKQl6lpOKGkPUrJuFoO4iCLlDiSDi2Ueh+yE1rMDPP/qveHdajgDX3WQ==",
"license": "MIT",
"dependencies": {
"@atproto-labs/fetch": "0.2.3",
@@ -327,6 +370,8 @@
},
"node_modules/@atproto-labs/fetch": {
"version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@atproto-labs/fetch/-/fetch-0.2.3.tgz",
+ "integrity": "sha512-NZtbJOCbxKUFRFKMpamT38PUQMY0hX0p7TG5AEYOPhZKZEP7dHZ1K2s1aB8MdVH0qxmqX7nQleNrrvLf09Zfdw==",
"license": "MIT",
"dependencies": {
"@atproto-labs/pipe": "0.1.1"
@@ -334,6 +379,8 @@
},
"node_modules/@atproto-labs/fetch-node": {
"version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@atproto-labs/fetch-node/-/fetch-node-0.2.0.tgz",
+ "integrity": "sha512-Krq09nH/aeoiU2s9xdHA0FjTEFWG9B5FFenipv1iRixCcPc7V3DhTNDawxG9gI8Ny0k4dBVS9WTRN/IDzBx86Q==",
"license": "MIT",
"dependencies": {
"@atproto-labs/fetch": "0.2.3",
@@ -347,6 +394,8 @@
},
"node_modules/@atproto-labs/fetch-node/node_modules/ipaddr.js": {
"version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz",
+ "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==",
"license": "MIT",
"engines": {
"node": ">= 10"
@@ -354,6 +403,8 @@
},
"node_modules/@atproto-labs/fetch-node/node_modules/undici": {
"version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-6.24.1.tgz",
+ "integrity": "sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==",
"license": "MIT",
"engines": {
"node": ">=18.17"
@@ -361,6 +412,8 @@
},
"node_modules/@atproto-labs/handle-resolver": {
"version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@atproto-labs/handle-resolver/-/handle-resolver-0.3.2.tgz",
+ "integrity": "sha512-KIerCzh3qb+zZoqWbIvTlvBY0XPq0r56kwViaJY/LTe/3oPO2JaqlYKS/F4dByWBhHK6YoUOJ0sWrh6PMJl40A==",
"license": "MIT",
"dependencies": {
"@atproto-labs/simple-store": "0.3.0",
@@ -371,6 +424,8 @@
},
"node_modules/@atproto-labs/handle-resolver-node": {
"version": "0.1.21",
+ "resolved": "https://registry.npmjs.org/@atproto-labs/handle-resolver-node/-/handle-resolver-node-0.1.21.tgz",
+ "integrity": "sha512-fuJy5Px5pGF3lJX/ATdurbT8tbmaFWtf+PPxAQDFy7ot2no3t+iaAgymhyxYymrssOuWs6BwOP8tyF3VrfdwtQ==",
"license": "MIT",
"dependencies": {
"@atproto-labs/fetch-node": "0.2.0",
@@ -383,6 +438,8 @@
},
"node_modules/@atproto-labs/identity-resolver": {
"version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@atproto-labs/identity-resolver/-/identity-resolver-0.3.2.tgz",
+ "integrity": "sha512-MYxO9pe0WsFyi5HFdKAwqIqHfiF2kBPoVhAIuH/4PYHzGr799ED47xLhNMxR3ZUYrJm5+TQzWXypGZ0Btw1Ffw==",
"license": "MIT",
"dependencies": {
"@atproto-labs/did-resolver": "0.2.2",
@@ -391,14 +448,20 @@
},
"node_modules/@atproto-labs/pipe": {
"version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@atproto-labs/pipe/-/pipe-0.1.1.tgz",
+ "integrity": "sha512-hdNw2oUs2B6BN1lp+32pF7cp8EMKuIN5Qok2Vvv/aOpG/3tNSJ9YkvfI0k6Zd188LeDDYRUpYpxcoFIcGH/FNg==",
"license": "MIT"
},
"node_modules/@atproto-labs/simple-store": {
"version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@atproto-labs/simple-store/-/simple-store-0.3.0.tgz",
+ "integrity": "sha512-nOb6ONKBRJHRlukW1sVawUkBqReLlLx6hT35VS3imaNPwiXDxLnTK7lxw3Lrl9k5yugSBDQAkZAq3MPTEFSUBQ==",
"license": "MIT"
},
"node_modules/@atproto-labs/simple-store-memory": {
"version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/@atproto-labs/simple-store-memory/-/simple-store-memory-0.1.4.tgz",
+ "integrity": "sha512-3mKY4dP8I7yKPFj9VKpYyCRzGJOi5CEpOLPlRhoJyLmgs3J4RzDrjn323Oakjz2Aj2JzRU/AIvWRAZVhpYNJHw==",
"license": "MIT",
"dependencies": {
"@atproto-labs/simple-store": "0.3.0",
@@ -407,10 +470,14 @@
},
"node_modules/@atproto-labs/simple-store-memory/node_modules/lru-cache": {
"version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
"license": "ISC"
},
"node_modules/@atproto/api": {
"version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/@atproto/api/-/api-0.18.0.tgz",
+ "integrity": "sha512-2GxKPhhvMocDjRU7VpNj+cvCdmCHVAmRwyfNgRLMrJtPZvrosFoi9VATX+7eKN0FZvYvy8KdLSkCcpP2owH3IA==",
"license": "MIT",
"dependencies": {
"@atproto/common-web": "^0.4.3",
@@ -425,6 +492,8 @@
},
"node_modules/@atproto/common-web": {
"version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/@atproto/common-web/-/common-web-0.4.3.tgz",
+ "integrity": "sha512-nRDINmSe4VycJzPo6fP/hEltBcULFxt9Kw7fQk6405FyAWZiTluYHlXOnU7GkQfeUK44OENG1qFTBcmCJ7e8pg==",
"license": "MIT",
"dependencies": {
"graphemer": "^1.4.0",
@@ -435,6 +504,8 @@
},
"node_modules/@atproto/did": {
"version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/@atproto/did/-/did-0.2.1.tgz",
+ "integrity": "sha512-1i5BTU2GnBaaeYWhxUOnuEKFVq9euT5+dQPFabHpa927BlJ54PmLGyBBaOI7/NbLmN5HWwBa18SBkMpg3jGZRA==",
"license": "MIT",
"dependencies": {
"zod": "^3.23.8"
@@ -442,6 +513,8 @@
},
"node_modules/@atproto/jwk": {
"version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/@atproto/jwk/-/jwk-0.6.0.tgz",
+ "integrity": "sha512-bDoJPvt7TrQVi/rBfBrSSpGykhtIriKxeYCYQTiPRKFfyRhbgpElF0wPXADjIswnbzZdOwbY63az4E/CFVT3Tw==",
"license": "MIT",
"dependencies": {
"multiformats": "^9.9.0",
@@ -450,6 +523,8 @@
},
"node_modules/@atproto/jwk-jose": {
"version": "0.1.11",
+ "resolved": "https://registry.npmjs.org/@atproto/jwk-jose/-/jwk-jose-0.1.11.tgz",
+ "integrity": "sha512-i4Fnr2sTBYmMmHXl7NJh8GrCH+tDQEVWrcDMDnV5DjJfkgT17wIqvojIw9SNbSL4Uf0OtfEv6AgG0A+mgh8b5Q==",
"license": "MIT",
"dependencies": {
"@atproto/jwk": "0.6.0",
@@ -458,6 +533,8 @@
},
"node_modules/@atproto/jwk-webcrypto": {
"version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@atproto/jwk-webcrypto/-/jwk-webcrypto-0.2.0.tgz",
+ "integrity": "sha512-UmgRrrEAkWvxwhlwe30UmDOdTEFidlIzBC7C3cCbeJMcBN1x8B3KH+crXrsTqfWQBG58mXgt8wgSK3Kxs2LhFg==",
"license": "MIT",
"dependencies": {
"@atproto/jwk": "0.6.0",
@@ -467,6 +544,8 @@
},
"node_modules/@atproto/lexicon": {
"version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/@atproto/lexicon/-/lexicon-0.5.1.tgz",
+ "integrity": "sha512-y8AEtYmfgVl4fqFxqXAeGvhesiGkxiy3CWoJIfsFDDdTlZUC8DFnZrYhcqkIop3OlCkkljvpSJi1hbeC1tbi8A==",
"license": "MIT",
"dependencies": {
"@atproto/common-web": "^0.4.3",
@@ -478,6 +557,8 @@
},
"node_modules/@atproto/oauth-client": {
"version": "0.5.8",
+ "resolved": "https://registry.npmjs.org/@atproto/oauth-client/-/oauth-client-0.5.8.tgz",
+ "integrity": "sha512-7YEym6d97+Dd73qGdkQTXi5La8xvCQxwRUDzzlR/NVAARa9a4YP7MCmqBJVeP2anT0By+DSAPyPDLTsxcjIcCg==",
"license": "MIT",
"dependencies": {
"@atproto-labs/did-resolver": "0.2.2",
@@ -497,6 +578,8 @@
},
"node_modules/@atproto/oauth-client-node": {
"version": "0.3.10",
+ "resolved": "https://registry.npmjs.org/@atproto/oauth-client-node/-/oauth-client-node-0.3.10.tgz",
+ "integrity": "sha512-6khKlJqu1Ed5rt3rzcTD5hymB6JUjKdOHWYXwiphw4inkAIo6GxLCighI4eGOqZorYk2j8ueeTNB6KsgH0kcRw==",
"license": "MIT",
"dependencies": {
"@atproto-labs/did-resolver": "0.2.2",
@@ -515,6 +598,8 @@
},
"node_modules/@atproto/oauth-types": {
"version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@atproto/oauth-types/-/oauth-types-0.5.0.tgz",
+ "integrity": "sha512-33xz7HcXhbl+XRqbIMVu3GE02iK1nKe2oMWENASsfZEYbCz2b9ZOarOFuwi7g4LKqpGowGp0iRKsQHFcq4SDaQ==",
"license": "MIT",
"dependencies": {
"@atproto/did": "0.2.1",
@@ -524,10 +609,14 @@
},
"node_modules/@atproto/syntax": {
"version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/@atproto/syntax/-/syntax-0.4.1.tgz",
+ "integrity": "sha512-CJdImtLAiFO+0z3BWTtxwk6aY5w4t8orHTMVJgkf++QRJWTxPbIFko/0hrkADB7n2EruDxDSeAgfUGehpH6ngw==",
"license": "MIT"
},
"node_modules/@atproto/xrpc": {
"version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/@atproto/xrpc/-/xrpc-0.7.5.tgz",
+ "integrity": "sha512-MUYNn5d2hv8yVegRL0ccHvTHAVj5JSnW07bkbiaz96UH45lvYNRVwt44z+yYVnb0/mvBzyD3/ZQ55TRGt7fHkA==",
"license": "MIT",
"dependencies": {
"@atproto/lexicon": "^0.5.1",
@@ -536,6 +625,8 @@
},
"node_modules/@babel/code-frame": {
"version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz",
+ "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -548,7 +639,9 @@
}
},
"node_modules/@babel/compat-data": {
- "version": "7.29.0",
+ "version": "7.29.3",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.3.tgz",
+ "integrity": "sha512-LIVqM46zQWZhj17qA8wb4nW/ixr2y1Nw+r1etiAWgRM6U1IqP+LNhL1yg440jYZR72jCWcWbLWzIosH+uP1fqg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -557,6 +650,8 @@
},
"node_modules/@babel/core": {
"version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz",
+ "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -586,6 +681,8 @@
},
"node_modules/@babel/generator": {
"version": "7.29.1",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz",
+ "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -601,6 +698,8 @@
},
"node_modules/@babel/helper-compilation-targets": {
"version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz",
+ "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -616,6 +715,8 @@
},
"node_modules/@babel/helper-globals": {
"version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
+ "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -624,6 +725,8 @@
},
"node_modules/@babel/helper-module-imports": {
"version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz",
+ "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -636,6 +739,8 @@
},
"node_modules/@babel/helper-module-transforms": {
"version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz",
+ "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -650,16 +755,10 @@
"@babel/core": "^7.0.0"
}
},
- "node_modules/@babel/helper-plugin-utils": {
- "version": "7.25.9",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
"node_modules/@babel/helper-string-parser": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
+ "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -668,6 +767,8 @@
},
"node_modules/@babel/helper-validator-identifier": {
"version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
+ "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -676,6 +777,8 @@
},
"node_modules/@babel/helper-validator-option": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
+ "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -684,6 +787,8 @@
},
"node_modules/@babel/helpers": {
"version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz",
+ "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -696,6 +801,8 @@
},
"node_modules/@babel/parser": {
"version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz",
+ "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -708,36 +815,10 @@
"node": ">=6.0.0"
}
},
- "node_modules/@babel/plugin-transform-react-jsx-self": {
- "version": "7.25.9",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-react-jsx-source": {
- "version": "7.25.9",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
"node_modules/@babel/runtime": {
"version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz",
+ "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -749,6 +830,8 @@
},
"node_modules/@babel/template": {
"version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
+ "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -762,6 +845,8 @@
},
"node_modules/@babel/traverse": {
"version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz",
+ "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -779,6 +864,8 @@
},
"node_modules/@babel/types": {
"version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz",
+ "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -791,6 +878,8 @@
},
"node_modules/@badrap/valita": {
"version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/@badrap/valita/-/valita-0.4.6.tgz",
+ "integrity": "sha512-4kdqcjyxo/8RQ8ayjms47HCWZIF5981oE5nIenbfThKDxWXtEHKipAOWlflpPJzZx9y/JWYQkp18Awr7VuepFg==",
"license": "MIT",
"peer": true,
"engines": {
@@ -799,6 +888,8 @@
},
"node_modules/@bufbuild/protobuf": {
"version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.2.1.tgz",
+ "integrity": "sha512-gdWzq7eX017a1kZCU/bP/sbk4e0GZ6idjsXOcMrQwODCb/rx985fHJJ8+hCu79KpuG7PfZh7bo3BBjPH37JuZw==",
"license": "(Apache-2.0 AND BSD-3-Clause)"
},
"node_modules/@chakra-ui/react": {
@@ -823,7 +914,9 @@
}
},
"node_modules/@chromatic-com/storybook": {
- "version": "5.0.1",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/@chromatic-com/storybook/-/storybook-5.1.2.tgz",
+ "integrity": "sha512-H/hgvwC3E+OtseP2OT2QYUJH2VfnzT6wM3pWOkaNV6g7QI+VUdWJbeJ3o2jFqvEPQNqzhQKWDOlvM4lu+7is6g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -838,11 +931,13 @@
"yarn": ">=1.22.18"
},
"peerDependencies": {
- "storybook": "^0.0.0-0 || ^10.1.0 || ^10.1.0-0 || ^10.2.0-0 || ^10.3.0-0"
+ "storybook": "^0.0.0-0 || ^10.1.0 || ^10.1.0-0 || ^10.2.0-0 || ^10.3.0-0 || ^10.4.0-0"
}
},
"node_modules/@chromatic-com/storybook/node_modules/ansi-regex": {
"version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
+ "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -854,6 +949,8 @@
},
"node_modules/@chromatic-com/storybook/node_modules/strip-ansi": {
"version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz",
+ "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -866,34 +963,22 @@
"url": "https://github.com/chalk/strip-ansi?sponsor=1"
}
},
- "node_modules/@curvenote/ansi-to-react": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/@curvenote/ansi-to-react/-/ansi-to-react-7.0.0.tgz",
- "integrity": "sha512-+m4V86QPmaZ7udMp7Yg81A31dLBGO8gglkPGWPzUJNxLCSyOrJ04pQmdZQelNBEA7MSGz8wf+6RHcuEaujdhHw==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "anser": "^2.1.1",
- "escape-carriage": "^1.3.1"
- },
- "engines": {
- "node": ">=16"
- },
- "peerDependencies": {
- "react": "^16.3.2 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.3.2 || ^17.0.0 || ^18.0.0"
- }
- },
"node_modules/@datastructures-js/heap": {
"version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/@datastructures-js/heap/-/heap-4.3.7.tgz",
+ "integrity": "sha512-Dx4un7Uj0dVxkfoq4RkpzsY2OrvNJgQYZ3n3UlGdl88RxxdHd7oTi21/l3zoxUUe0sXFuNUrfmWqlHzqnoN6Ug==",
"license": "MIT"
},
"node_modules/@datastructures-js/linked-list": {
"version": "5.2.5",
+ "resolved": "https://registry.npmjs.org/@datastructures-js/linked-list/-/linked-list-5.2.5.tgz",
+ "integrity": "sha512-YhlkDh7yMOaJ2bGgmrwvyF3vCrMELo2ERTiRxFMMkQF6+5n6expCBoseHtMIwe8fHJu1bzT7IaEHRU58hBoMUQ==",
"license": "MIT"
},
"node_modules/@datastructures-js/priority-queue": {
"version": "6.3.5",
+ "resolved": "https://registry.npmjs.org/@datastructures-js/priority-queue/-/priority-queue-6.3.5.tgz",
+ "integrity": "sha512-NmdmvLnkUyG67W6Iy8tP+865ILq5VDyZh90c8lHMOkYYydUNzOV0QNPCRAuj4AoHSm/V2DeuYvDKnvALaCwLvA==",
"license": "MIT",
"dependencies": {
"@datastructures-js/heap": "^4.3.7"
@@ -901,10 +986,14 @@
},
"node_modules/@dbus-types/dbus": {
"version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/@dbus-types/dbus/-/dbus-0.0.4.tgz",
+ "integrity": "sha512-KRD48WayYXEmFfVyR4zrCpZ5tviBSU2NXddMOQ4AW1zPfLtEkg7gvVvZUL1/DlThUoFwMC+RRR+EK0yGtZq3Jw==",
"license": "MIT"
},
"node_modules/@dbus-types/notifications": {
"version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/@dbus-types/notifications/-/notifications-0.0.5.tgz",
+ "integrity": "sha512-wDGzHeRcqmga2tGrCw+tNj33Q69HUguILygkrje2QeBlBiwZJbBmCuz3RHamMbATkulVtewvUr79QWRZlNHUww==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -913,6 +1002,8 @@
},
"node_modules/@discordjs/builders": {
"version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-1.14.1.tgz",
+ "integrity": "sha512-gSKkhXLqs96TCzk66VZuHHl8z2bQMJFGwrXC0f33ngK+FLNau4hU1PYny3DNJfNdSH+gVMzE85/d5FQ2BpcNwQ==",
"license": "Apache-2.0",
"dependencies": {
"@discordjs/formatters": "^0.6.2",
@@ -932,6 +1023,8 @@
},
"node_modules/@discordjs/collection": {
"version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-1.5.3.tgz",
+ "integrity": "sha512-SVb428OMd3WO1paV3rm6tSjM4wC+Kecaa1EUGX7vc6/fddvw/6lg90z4QtCqm21zvVe92vMMDt9+DkIvjXImQQ==",
"license": "Apache-2.0",
"engines": {
"node": ">=16.11.0"
@@ -939,6 +1032,8 @@
},
"node_modules/@discordjs/formatters": {
"version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/@discordjs/formatters/-/formatters-0.6.2.tgz",
+ "integrity": "sha512-y4UPwWhH6vChKRkGdMB4odasUbHOUwy7KL+OVwF86PvT6QVOwElx+TiI1/6kcmcEe+g5YRXJFiXSXUdabqZOvQ==",
"license": "Apache-2.0",
"dependencies": {
"discord-api-types": "^0.38.33"
@@ -952,6 +1047,8 @@
},
"node_modules/@discordjs/rest": {
"version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/@discordjs/rest/-/rest-2.6.1.tgz",
+ "integrity": "sha512-wwQdgjeaoYFiaG+atbqx6aJDpqW7JHAo0HrQkBTbYzM3/PJ3GweQIpgElNcGZ26DCUOXMyawYd0YF7vtr+fZXg==",
"license": "Apache-2.0",
"dependencies": {
"@discordjs/collection": "^2.1.1",
@@ -973,6 +1070,8 @@
},
"node_modules/@discordjs/rest/node_modules/@discordjs/collection": {
"version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-2.1.1.tgz",
+ "integrity": "sha512-LiSusze9Tc7qF03sLCujF5iZp7K+vRNEDBZ86FT9aQAv3vxMLihUvKvpsCWiQ2DJq1tVckopKm1rxomgNUc9hg==",
"license": "Apache-2.0",
"engines": {
"node": ">=18"
@@ -983,6 +1082,8 @@
},
"node_modules/@discordjs/rest/node_modules/@sapphire/snowflake": {
"version": "3.5.5",
+ "resolved": "https://registry.npmjs.org/@sapphire/snowflake/-/snowflake-3.5.5.tgz",
+ "integrity": "sha512-xzvBr1Q1c4lCe7i6sRnrofxeO1QTP/LKQ6A6qy0iB4x5yfiSfARMEQEghojzTNALDTcv8En04qYNIco9/K9eZQ==",
"license": "MIT",
"engines": {
"node": ">=v14.0.0",
@@ -991,6 +1092,8 @@
},
"node_modules/@discordjs/rest/node_modules/undici": {
"version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-6.24.1.tgz",
+ "integrity": "sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==",
"license": "MIT",
"engines": {
"node": ">=18.17"
@@ -998,6 +1101,8 @@
},
"node_modules/@discordjs/util": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@discordjs/util/-/util-1.2.0.tgz",
+ "integrity": "sha512-3LKP7F2+atl9vJFhaBjn4nOaSWahZ/yWjOvA4e5pnXkt2qyXRCHLxoBQy81GFtLGCq7K9lPm9R517M1U+/90Qg==",
"license": "Apache-2.0",
"dependencies": {
"discord-api-types": "^0.38.33"
@@ -1011,6 +1116,8 @@
},
"node_modules/@discordjs/ws": {
"version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@discordjs/ws/-/ws-1.2.3.tgz",
+ "integrity": "sha512-wPlQDxEmlDg5IxhJPuxXr3Vy9AjYq5xCvFWGJyD7w7Np8ZGu+Mc+97LCoEc/+AYCo2IDpKioiH0/c/mj5ZR9Uw==",
"license": "Apache-2.0",
"dependencies": {
"@discordjs/collection": "^2.1.0",
@@ -1032,6 +1139,8 @@
},
"node_modules/@discordjs/ws/node_modules/@discordjs/collection": {
"version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-2.1.1.tgz",
+ "integrity": "sha512-LiSusze9Tc7qF03sLCujF5iZp7K+vRNEDBZ86FT9aQAv3vxMLihUvKvpsCWiQ2DJq1tVckopKm1rxomgNUc9hg==",
"license": "Apache-2.0",
"engines": {
"node": ">=18"
@@ -1042,6 +1151,8 @@
},
"node_modules/@discordjs/ws/node_modules/@types/ws": {
"version": "8.18.1",
+ "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz",
+ "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==",
"license": "MIT",
"dependencies": {
"@types/node": "*"
@@ -1049,14 +1160,27 @@
},
"node_modules/@dmsnell/diff-match-patch": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@dmsnell/diff-match-patch/-/diff-match-patch-1.1.0.tgz",
+ "integrity": "sha512-yejLPmM5pjsGvxS9gXablUSbInW7H976c/FJ4iQxWIm7/38xBySRemTPDe34lhg1gVLbJntX0+sH0jYfU+PN9A==",
"license": "Apache-2.0"
},
"node_modules/@donedeal0/superdiff": {
"version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@donedeal0/superdiff/-/superdiff-1.1.3.tgz",
+ "integrity": "sha512-lp316jRb+OCCm8KbzidppWCKteISwgpWU6sxzzDI+PJtflfX87h/AHVQdcqY1f3/za2S869KliJbtJZuan1H2Q==",
"license": "ISC"
},
+ "node_modules/@drizzle-team/brocli": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/@drizzle-team/brocli/-/brocli-0.11.0.tgz",
+ "integrity": "sha512-hD3pekGiPg0WPCCGAZmusBBJsDqGUR66Y452YgQsZOnkdQ7ViEPKuyP4huUGEZQefp8g34RRodXYmJ2TbCH+tg==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
"node_modules/@dword-design/chdir": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@dword-design/chdir/-/chdir-4.0.0.tgz",
+ "integrity": "sha512-Lw0SDZbeMnsGwBwZNeazDh5RL9oVXsEVD9M3S2hOrgQTNq3LwCs7ndxO72exOGqC+OVQBt8OFQ08gsUOX7mdCQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -1066,8 +1190,44 @@
"url": "https://github.com/sponsors/dword-design"
}
},
+ "node_modules/@emnapi/core": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz",
+ "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/wasi-threads": "1.2.1",
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@emnapi/runtime": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz",
+ "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@emnapi/wasi-threads": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz",
+ "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
"node_modules/@emotion/babel-plugin": {
"version": "11.13.5",
+ "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz",
+ "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1086,11 +1246,15 @@
},
"node_modules/@emotion/babel-plugin/node_modules/convert-source-map": {
"version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
+ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
"dev": true,
"license": "MIT"
},
"node_modules/@emotion/babel-plugin/node_modules/source-map": {
"version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
"dev": true,
"license": "BSD-3-Clause",
"engines": {
@@ -1099,6 +1263,8 @@
},
"node_modules/@emotion/cache": {
"version": "11.14.0",
+ "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz",
+ "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1111,11 +1277,15 @@
},
"node_modules/@emotion/hash": {
"version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz",
+ "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==",
"dev": true,
"license": "MIT"
},
"node_modules/@emotion/is-prop-valid": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.4.0.tgz",
+ "integrity": "sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1124,6 +1294,8 @@
},
"node_modules/@emotion/memoize": {
"version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz",
+ "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==",
"dev": true,
"license": "MIT"
},
@@ -1154,6 +1326,8 @@
},
"node_modules/@emotion/serialize": {
"version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz",
+ "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1166,16 +1340,22 @@
},
"node_modules/@emotion/sheet": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz",
+ "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==",
"dev": true,
"license": "MIT"
},
"node_modules/@emotion/unitless": {
"version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz",
+ "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==",
"dev": true,
"license": "MIT"
},
"node_modules/@emotion/use-insertion-effect-with-fallbacks": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz",
+ "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==",
"dev": true,
"license": "MIT",
"peerDependencies": {
@@ -1184,11 +1364,15 @@
},
"node_modules/@emotion/utils": {
"version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz",
+ "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==",
"dev": true,
"license": "MIT"
},
"node_modules/@emotion/weak-memoize": {
"version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz",
+ "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==",
"dev": true,
"license": "MIT"
},
@@ -1610,6 +1794,8 @@
},
"node_modules/@eslint-community/eslint-utils": {
"version": "4.9.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz",
+ "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1626,94 +1812,150 @@
}
},
"node_modules/@eslint-community/regexpp": {
- "version": "4.12.1",
+ "version": "4.12.2",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz",
+ "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==",
"dev": true,
"license": "MIT",
"engines": {
"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
}
},
- "node_modules/@eslint/eslintrc": {
- "version": "2.1.4",
+ "node_modules/@eslint/config-array": {
+ "version": "0.23.5",
+ "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.5.tgz",
+ "integrity": "sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==",
"dev": true,
- "license": "MIT",
+ "license": "Apache-2.0",
"dependencies": {
- "ajv": "^6.12.4",
- "debug": "^4.3.2",
- "espree": "^9.6.0",
- "globals": "^13.19.0",
- "ignore": "^5.2.0",
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "minimatch": "^3.1.2",
- "strip-json-comments": "^3.1.1"
+ "@eslint/object-schema": "^3.0.5",
+ "debug": "^4.3.1",
+ "minimatch": "^10.2.4"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
+ "node": "^20.19.0 || ^22.13.0 || >=24"
}
},
- "node_modules/@eslint/eslintrc/node_modules/ajv": {
- "version": "6.14.0",
+ "node_modules/@eslint/config-array/node_modules/balanced-match": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
+ "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "18 || 20 || >=22"
+ }
+ },
+ "node_modules/@eslint/config-array/node_modules/brace-expansion": {
+ "version": "5.0.6",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz",
+ "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
+ "balanced-match": "^4.0.2"
},
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
+ "engines": {
+ "node": "18 || 20 || >=22"
}
},
- "node_modules/@eslint/eslintrc/node_modules/globals": {
- "version": "13.24.0",
+ "node_modules/@eslint/config-array/node_modules/minimatch": {
+ "version": "10.2.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz",
+ "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==",
"dev": true,
- "license": "MIT",
+ "license": "BlueOak-1.0.0",
"dependencies": {
- "type-fest": "^0.20.2"
+ "brace-expansion": "^5.0.5"
},
"engines": {
- "node": ">=8"
+ "node": "18 || 20 || >=22"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": {
- "version": "0.4.1",
+ "node_modules/@eslint/config-helpers": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.5.tgz",
+ "integrity": "sha512-eIJYKTCECbP/nsKaaruF6LW967mtbQbsw4JTtSVkUQc9MneSkbrgPJAbKl9nWr0ZeowV8BfsarBmPpBzGelA2w==",
"dev": true,
- "license": "MIT"
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@eslint/core": "^1.2.1"
+ },
+ "engines": {
+ "node": "^20.19.0 || ^22.13.0 || >=24"
+ }
},
- "node_modules/@eslint/eslintrc/node_modules/type-fest": {
- "version": "0.20.2",
+ "node_modules/@eslint/core": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.2.1.tgz",
+ "integrity": "sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==",
"dev": true,
- "license": "(MIT OR CC0-1.0)",
- "engines": {
- "node": ">=10"
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@types/json-schema": "^7.0.15"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "engines": {
+ "node": "^20.19.0 || ^22.13.0 || >=24"
}
},
"node_modules/@eslint/js": {
- "version": "8.57.1",
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-10.0.1.tgz",
+ "integrity": "sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==",
"dev": true,
"license": "MIT",
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^20.19.0 || ^22.13.0 || >=24"
+ },
+ "funding": {
+ "url": "https://eslint.org/donate"
+ },
+ "peerDependencies": {
+ "eslint": "^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "eslint": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@eslint/object-schema": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.5.tgz",
+ "integrity": "sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^20.19.0 || ^22.13.0 || >=24"
+ }
+ },
+ "node_modules/@eslint/plugin-kit": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.1.tgz",
+ "integrity": "sha512-rZAP3aVgB9ds9KOeUSL+zZ21hPmo8dh6fnIFwRQj5EAZl9gzR7wxYbYXYysAM8CTqGmUGyp2S4kUdV17MnGuWQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@eslint/core": "^1.2.1",
+ "levn": "^0.4.1"
+ },
+ "engines": {
+ "node": "^20.19.0 || ^22.13.0 || >=24"
}
},
"node_modules/@ewanc26/tid": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@ewanc26/tid/-/tid-1.0.2.tgz",
+ "integrity": "sha512-d5zESrFEcEUSH3V2LomGwo1Lz+q0mUWyvkKS3jvbpeanQpRM4zM17ZauuCDzKMjJ+mFM6laVAMIpNgbVcyyPVA==",
"license": "AGPL-3.0-only"
},
"node_modules/@faker-js/faker": {
"version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-9.1.0.tgz",
+ "integrity": "sha512-GJvX9iM9PBtKScJVlXQ0tWpihK3i0pha/XAhzQa1hPK/ILLa1Wq3I63Ij7lRtqTwmdTxRCyrUhLC5Sly9SLbug==",
"dev": true,
"funding": [
{
@@ -1729,6 +1971,8 @@
},
"node_modules/@floating-ui/core": {
"version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.5.tgz",
+ "integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1737,6 +1981,8 @@
},
"node_modules/@floating-ui/dom": {
"version": "1.7.6",
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.6.tgz",
+ "integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1746,6 +1992,8 @@
},
"node_modules/@floating-ui/utils": {
"version": "0.2.11",
+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.11.tgz",
+ "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==",
"dev": true,
"license": "MIT"
},
@@ -1802,6 +2050,8 @@
},
"node_modules/@foxxmd/chromecast-client": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@foxxmd/chromecast-client/-/chromecast-client-1.0.4.tgz",
+ "integrity": "sha512-mSpAhbuPrZv/RKXRKJFK7tu6UND9FQiTBWeZqxbdTmb2O8qt45uKyp5qavC9O9UJ2V+l9NJODOnlT2AzDmcu/w==",
"license": "MIT",
"dependencies": {
"castv2": "^0.1.10",
@@ -1812,6 +2062,8 @@
},
"node_modules/@foxxmd/get-version": {
"version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/@foxxmd/get-version/-/get-version-0.0.3.tgz",
+ "integrity": "sha512-mAfRIHgqPXf/k25VQkoBao0fO6AHZij3DCmLRRMIDrhibH8QnkUD9kyA/rcbqoI/LdUOr7b/EAM1nSfSzh6d5Q==",
"license": "MIT",
"dependencies": {
"@types/debug": "^4.1.12",
@@ -1825,6 +2077,8 @@
},
"node_modules/@foxxmd/logging": {
"version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/@foxxmd/logging/-/logging-0.2.6.tgz",
+ "integrity": "sha512-x3+aAfU6fsfpMhCJbzHFXTzGZ8OqzbEUmZIHJsqimXNFuObSM/P439Si6b+20bDu6ftR2m/qrsvVDVONzT+XUg==",
"license": "MIT",
"dependencies": {
"pino": "^9.2.0",
@@ -1840,6 +2094,8 @@
},
"node_modules/@foxxmd/redact-string": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/@foxxmd/redact-string/-/redact-string-0.1.2.tgz",
+ "integrity": "sha512-/YTLauymSs2AdlxtwWE86uk3kwQB0v/r7KzFRlnCojPjIdVzbiGxDPYuRxwfYY9hEg/8lRa47MbaYN2v4BqgTw==",
"license": "MIT",
"engines": {
"node": ">=16.20.0",
@@ -1848,6 +2104,8 @@
},
"node_modules/@foxxmd/regex-buddy-core": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/@foxxmd/regex-buddy-core/-/regex-buddy-core-0.1.2.tgz",
+ "integrity": "sha512-I9U5zrL3w6SzJQf1P08VWe6/a1oPWx0O2osK1LeEVexbXrshkJXJgR6KcyyYggCePNB4P7NHl/oNJPOhjuzLUg==",
"license": "MIT",
"dependencies": {
"@stdlib/regexp-regexp": "^0.2.1",
@@ -1860,6 +2118,8 @@
},
"node_modules/@foxxmd/string-sameness": {
"version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@foxxmd/string-sameness/-/string-sameness-0.4.0.tgz",
+ "integrity": "sha512-6O2A+VpmUYiQMtFVfBQHtrbinN7JqRKwUUgBDpAR7nVrYtjFCJSsj8DC2rFLiY81bW9o7FRU6SIuVOoRfBW2pw==",
"license": "MIT",
"dependencies": {
"dice-coefficient": "^2.1.1",
@@ -1872,6 +2132,8 @@
},
"node_modules/@gr2m/net-interceptor": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@gr2m/net-interceptor/-/net-interceptor-1.0.0.tgz",
+ "integrity": "sha512-qLTp3npmB5SDiEIh1Jg1v8a09dlnfYV1kcSyLmsyucvZBT89nM+6L1QdlrCC/W1cTvdTpvI+Vleit94UVX7/Cg==",
"dev": true,
"engines": {
"node": ">= 14"
@@ -1879,30 +2141,61 @@
},
"node_modules/@homebridge/long": {
"version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/@homebridge/long/-/long-5.2.1.tgz",
+ "integrity": "sha512-i5Df8R63XNPCn+Nj1OgAoRdw9e+jHUQb3CNUbvJneI2iu3j4+OtzQj+5PA1Ce+747NR1SPqZSvyvD483dOT3AA==",
"license": "Apache-2.0"
},
"node_modules/@homebridge/put": {
"version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/@homebridge/put/-/put-0.0.8.tgz",
+ "integrity": "sha512-mwxLHHqKebOmOSU0tsPEWQSBHGApPhuaqtNpCe7U+AMdsduweANiu64E9SXXUtdpyTjsOpgSMLhD1+kbLHD2gA==",
"license": "MIT/X11",
"engines": {
"node": ">=0.3.0"
}
},
- "node_modules/@humanwhocodes/config-array": {
- "version": "0.13.0",
+ "node_modules/@humanfs/core": {
+ "version": "0.19.2",
+ "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz",
+ "integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@humanwhocodes/object-schema": "^2.0.3",
- "debug": "^4.3.1",
- "minimatch": "^3.0.5"
+ "@humanfs/types": "^0.15.0"
+ },
+ "engines": {
+ "node": ">=18.18.0"
+ }
+ },
+ "node_modules/@humanfs/node": {
+ "version": "0.16.8",
+ "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz",
+ "integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@humanfs/core": "^0.19.2",
+ "@humanfs/types": "^0.15.0",
+ "@humanwhocodes/retry": "^0.4.0"
},
"engines": {
- "node": ">=10.10.0"
+ "node": ">=18.18.0"
+ }
+ },
+ "node_modules/@humanfs/types": {
+ "version": "0.15.0",
+ "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz",
+ "integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=18.18.0"
}
},
"node_modules/@humanwhocodes/module-importer": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -1913,13 +2206,24 @@
"url": "https://github.com/sponsors/nzakas"
}
},
- "node_modules/@humanwhocodes/object-schema": {
- "version": "2.0.3",
+ "node_modules/@humanwhocodes/retry": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz",
+ "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==",
"dev": true,
- "license": "BSD-3-Clause"
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=18.18"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
},
"node_modules/@inquirer/confirm": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.0.1.tgz",
+ "integrity": "sha512-6ycMm7k7NUApiMGfVc32yIPp28iPKxhGRMqoNDiUjq2RyTAkbs5Fx0TdzBqhabcKvniDdAAvHCmsRjnNfTsogw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1935,6 +2239,8 @@
},
"node_modules/@inquirer/core": {
"version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.0.1.tgz",
+ "integrity": "sha512-KKTgjViBQUi3AAssqjUFMnMO3CM3qwCHvePV9EW+zTKGKafFGFF01sc1yOIYjLJ7QU52G/FbzKc+c01WLzXmVQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1954,11 +2260,15 @@
},
"node_modules/@inquirer/core/node_modules/emoji-regex": {
"version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true,
"license": "MIT"
},
"node_modules/@inquirer/core/node_modules/string-width": {
"version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1972,6 +2282,8 @@
},
"node_modules/@inquirer/core/node_modules/wrap-ansi": {
"version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1985,6 +2297,8 @@
},
"node_modules/@inquirer/figures": {
"version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.7.tgz",
+ "integrity": "sha512-m+Trk77mp54Zma6xLkLuY+mvanPxlE4A7yNKs2HBiyZ4UkVs28Mv5c/pgWrHeInx+USHeX/WEPzjrWrcJiQgjw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -1993,6 +2307,8 @@
},
"node_modules/@inquirer/type": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.0.tgz",
+ "integrity": "sha512-YYykfbw/lefC7yKj7nanzQXILM7r3suIvyFlCcMskc99axmsSewXWkAfXKwMbgxL76iAFVmRwmYdwNZNc8gjog==",
"dev": true,
"license": "MIT",
"engines": {
@@ -2004,6 +2320,8 @@
},
"node_modules/@internationalized/date": {
"version": "3.11.0",
+ "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.11.0.tgz",
+ "integrity": "sha512-BOx5huLAWhicM9/ZFs84CzP+V3gBW6vlpM02yzsdYC7TGlZJX1OJiEEHcSayF00Z+3jLlm4w79amvSt6RqKN3Q==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -2012,6 +2330,8 @@
},
"node_modules/@internationalized/number": {
"version": "3.6.5",
+ "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.6.5.tgz",
+ "integrity": "sha512-6hY4Kl4HPBvtfS62asS/R22JzNNy8vi/Ssev7x6EobfCp+9QIB2hKvI2EtbdJ0VSQacxVNtqhE/NmF/NZ0gm6g==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -2020,10 +2340,14 @@
},
"node_modules/@iovalkey/commands": {
"version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@iovalkey/commands/-/commands-0.1.0.tgz",
+ "integrity": "sha512-/B9W4qKSSITDii5nkBCHyPkIkAi+ealUtr1oqBJsLxjSRLka4pxun2VvMNSmcwgAMxgXtQfl0qRv7TE+udPJzg==",
"license": "MIT"
},
"node_modules/@isaacs/cliui": {
"version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
"license": "ISC",
"dependencies": {
"string-width": "^5.1.2",
@@ -2039,6 +2363,8 @@
},
"node_modules/@isaacs/cliui/node_modules/ansi-regex": {
"version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
"license": "MIT",
"engines": {
"node": ">=12"
@@ -2049,6 +2375,8 @@
},
"node_modules/@isaacs/cliui/node_modules/strip-ansi": {
"version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
"license": "MIT",
"dependencies": {
"ansi-regex": "^6.0.1"
@@ -2062,13 +2390,17 @@
},
"node_modules/@jellyfin/sdk": {
"version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.11.0.tgz",
+ "integrity": "sha512-WmM4as9ptqH+CvC2YsUefNWQDmu2aWIamwAoj7h2BFR6l019pcRFG5FT22egwbdizR6DfdpmsoAWB4x9QCzcEQ==",
"license": "MPL-2.0",
"peerDependencies": {
"axios": "^1.3.4"
}
},
"node_modules/@joshwooding/vite-plugin-react-docgen-typescript": {
- "version": "0.6.4",
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/@joshwooding/vite-plugin-react-docgen-typescript/-/vite-plugin-react-docgen-typescript-0.7.0.tgz",
+ "integrity": "sha512-qvsTEwEFefhdirGOPnu9Wp6ChfIwy2dBCRuETU3uE+4cC+PFoxMSiiEhxk4lOluA34eARHA0OxqsEUYDqRMgeQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2077,7 +2409,7 @@
},
"peerDependencies": {
"typescript": ">= 4.3.x",
- "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0"
+ "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
},
"peerDependenciesMeta": {
"typescript": {
@@ -2087,6 +2419,8 @@
},
"node_modules/@joshwooding/vite-plugin-react-docgen-typescript/node_modules/balanced-match": {
"version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
+ "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -2094,7 +2428,9 @@
}
},
"node_modules/@joshwooding/vite-plugin-react-docgen-typescript/node_modules/brace-expansion": {
- "version": "5.0.5",
+ "version": "5.0.6",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz",
+ "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2106,6 +2442,8 @@
},
"node_modules/@joshwooding/vite-plugin-react-docgen-typescript/node_modules/glob": {
"version": "13.0.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz",
+ "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==",
"dev": true,
"license": "BlueOak-1.0.0",
"dependencies": {
@@ -2122,6 +2460,8 @@
},
"node_modules/@joshwooding/vite-plugin-react-docgen-typescript/node_modules/minimatch": {
"version": "10.2.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz",
+ "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==",
"dev": true,
"license": "BlueOak-1.0.0",
"dependencies": {
@@ -2136,6 +2476,8 @@
},
"node_modules/@jridgewell/gen-mapping": {
"version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
+ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2145,6 +2487,8 @@
},
"node_modules/@jridgewell/remapping": {
"version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
+ "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2154,6 +2498,8 @@
},
"node_modules/@jridgewell/resolve-uri": {
"version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -2162,11 +2508,15 @@
},
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
"dev": true,
"license": "MIT"
},
"node_modules/@jridgewell/trace-mapping": {
"version": "0.3.31",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
+ "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2174,16 +2524,35 @@
"@jridgewell/sourcemap-codec": "^1.4.14"
}
},
+ "node_modules/@js-temporal/polyfill": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/@js-temporal/polyfill/-/polyfill-0.5.1.tgz",
+ "integrity": "sha512-hloP58zRVCRSpgDxmqCWJNlizAlUgJFqG2ypq79DCvyv9tHjRYMDOcPFjzfl/A1/YxDvRCZz8wvZvmapQnKwFQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "jsbi": "^4.3.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
"node_modules/@kenyip/backoff-strategies": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@kenyip/backoff-strategies/-/backoff-strategies-1.0.4.tgz",
+ "integrity": "sha512-vduQZw2ctS3kIuSnCSSRiE4J90Y8WShR9xVG+e1lvFWksU2aTxjdkArcQqJ+XLm22JS380OZmrIPY1U06TAsng==",
"license": "MIT"
},
"node_modules/@keyv/serialize": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.0.tgz",
+ "integrity": "sha512-RlDgexML7Z63Q8BSaqhXdCYNBy/JQnqYIwxofUrNLGCblOMHp+xux2Q8nLMLlPpgHQPoU0Do8Z6btCpRBEqZ8g==",
"license": "MIT"
},
"node_modules/@keyv/valkey": {
"version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@keyv/valkey/-/valkey-1.0.8.tgz",
+ "integrity": "sha512-V2GziCVL5xpeVKrOo0EztKErQ+N9ZQ+a1ROPoxCU7AQ/aSIa7oRaQZzN2kOOFG6upTKLYeiUFz2q5vjacMEeIg==",
"license": "MIT",
"dependencies": {
"iovalkey": "^0.3.3"
@@ -2194,12 +2563,16 @@
},
"node_modules/@lukehagar/plexjs": {
"version": "0.39.0",
+ "resolved": "https://registry.npmjs.org/@lukehagar/plexjs/-/plexjs-0.39.0.tgz",
+ "integrity": "sha512-BXNHTh1Z9K0bb5qFKgYZv7gOC9+wYzOsatp/+DRGShGhp40bH0lTShzD6acKjqlIvqi2Pm7UJnF8+yBipE9Qmg==",
"peerDependencies": {
"zod": ">= 3"
}
},
"node_modules/@mdx-js/react": {
"version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.1.tgz",
+ "integrity": "sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2216,6 +2589,8 @@
},
"node_modules/@mswjs/interceptors": {
"version": "0.41.3",
+ "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.41.3.tgz",
+ "integrity": "sha512-cXu86tF4VQVfwz8W1SPbhoRyHJkti6mjH/XJIxp40jhO4j2k1m4KYrEykxqWPkFF3vrK4rgQppBh//AwyGSXPA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2230,13 +2605,36 @@
"node": ">=18"
}
},
+ "node_modules/@napi-rs/wasm-runtime": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz",
+ "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@tybys/wasm-util": "^0.10.1"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/Brooooooklyn"
+ },
+ "peerDependencies": {
+ "@emnapi/core": "^1.7.1",
+ "@emnapi/runtime": "^1.7.1"
+ }
+ },
"node_modules/@neoconfetti/react": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@neoconfetti/react/-/react-1.0.0.tgz",
+ "integrity": "sha512-klcSooChXXOzIm+SE5IISIAn3bYzYfPjbX7D7HoqZL84oAfgREeSg5vSIaSFH+DaGzzvImTyWe1OyrJ67vik4A==",
"dev": true,
"license": "MIT"
},
"node_modules/@noble/hashes": {
"version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz",
+ "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==",
"license": "MIT",
"engines": {
"node": "^14.21.3 || >=16"
@@ -2245,45 +2643,17 @@
"url": "https://paulmillr.com/funding/"
}
},
- "node_modules/@nodelib/fs.scandir": {
- "version": "2.1.5",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.stat": {
- "version": "2.0.5",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.walk": {
- "version": "1.2.8",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
"node_modules/@open-draft/deferred-promise": {
"version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz",
+ "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==",
"dev": true,
"license": "MIT"
},
"node_modules/@open-draft/logger": {
"version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@open-draft/logger/-/logger-0.3.0.tgz",
+ "integrity": "sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2293,23 +2663,41 @@
},
"node_modules/@open-draft/until": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz",
+ "integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==",
"dev": true,
"license": "MIT"
},
"node_modules/@opentelemetry/api": {
"version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz",
+ "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==",
"license": "Apache-2.0",
"engines": {
"node": ">=8.0.0"
}
},
+ "node_modules/@oxc-project/types": {
+ "version": "0.129.0",
+ "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.129.0.tgz",
+ "integrity": "sha512-3oz8m3FGdr2nDXVqmFUw7jolKliC4MoyXYIG2c7gpjBnzUWQpUGIYcXYKxTdTi+N2jusvt610ckTMkxdwHkYEg==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/Boshen"
+ }
+ },
"node_modules/@pandacss/is-valid-prop": {
"version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@pandacss/is-valid-prop/-/is-valid-prop-1.9.0.tgz",
+ "integrity": "sha512-AZvpXWGyjbHc8TC+YVloQ31Z2c4j2xMvYj6UfVxuZdB5w4c9+4N8wy5R7I/XswNh8e4cfUlkvsEGDXjhJRgypw==",
"dev": true,
"license": "MIT"
},
"node_modules/@paralleldrive/cuid2": {
"version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/@paralleldrive/cuid2/-/cuid2-2.3.1.tgz",
+ "integrity": "sha512-XO7cAxhnTZl0Yggq6jOgjiOHhbgcO4NqFqwSmQpjK3b6TEE6Uj/jfSk6wzYyemh3+I0sHirKSetjQwn5cZktFw==",
"license": "MIT",
"dependencies": {
"@noble/hashes": "^1.1.5"
@@ -2317,6 +2705,8 @@
},
"node_modules/@parcel/watcher": {
"version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.1.tgz",
+ "integrity": "sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==",
"dev": true,
"license": "MIT",
"optional": true,
@@ -2440,9 +2830,6 @@
"arm"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -2464,9 +2851,6 @@
"arm64"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -2488,9 +2872,6 @@
"arm64"
],
"dev": true,
- "libc": [
- "musl"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -2506,6 +2887,8 @@
},
"node_modules/@parcel/watcher-linux-x64-glibc": {
"version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz",
+ "integrity": "sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==",
"cpu": [
"x64"
],
@@ -2525,6 +2908,8 @@
},
"node_modules/@parcel/watcher-linux-x64-musl": {
"version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz",
+ "integrity": "sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==",
"cpu": [
"x64"
],
@@ -2607,6 +2992,8 @@
},
"node_modules/@pkgjs/parseargs": {
"version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
"license": "MIT",
"optional": true,
"engines": {
@@ -2615,22 +3002,32 @@
},
"node_modules/@protobufjs/aspromise": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
+ "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==",
"license": "BSD-3-Clause"
},
"node_modules/@protobufjs/base64": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
+ "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==",
"license": "BSD-3-Clause"
},
"node_modules/@protobufjs/codegen": {
"version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
+ "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==",
"license": "BSD-3-Clause"
},
"node_modules/@protobufjs/eventemitter": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
+ "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==",
"license": "BSD-3-Clause"
},
"node_modules/@protobufjs/fetch": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
+ "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==",
"license": "BSD-3-Clause",
"dependencies": {
"@protobufjs/aspromise": "^1.1.1",
@@ -2639,49 +3036,61 @@
},
"node_modules/@protobufjs/float": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
+ "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==",
"license": "BSD-3-Clause"
},
"node_modules/@protobufjs/inquire": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
+ "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==",
"license": "BSD-3-Clause"
},
"node_modules/@protobufjs/path": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
+ "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==",
"license": "BSD-3-Clause"
},
"node_modules/@protobufjs/pool": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
+ "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==",
"license": "BSD-3-Clause"
},
"node_modules/@protobufjs/utf8": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
+ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==",
"license": "BSD-3-Clause"
},
"node_modules/@react-nano/use-event-source": {
- "version": "0.13.0",
- "resolved": "https://registry.npmjs.org/@react-nano/use-event-source/-/use-event-source-0.13.0.tgz",
- "integrity": "sha512-RzeoLepE/EnZTUkdIuZc1Odoswcfsu9bcTaoSqFhWkJ7j41T8COxcHatUHytJMiKKr+J7hpuAFoDGATshU98nQ==",
+ "version": "0.16.0",
+ "resolved": "https://registry.npmjs.org/@react-nano/use-event-source/-/use-event-source-0.16.0.tgz",
+ "integrity": "sha512-XiflYfULRrUjWS1s1gGFBIbdsU56RVIbFT/9KnZwydlnUzQiRm6SVMHZI83g0fXnZpmS3Xh09WFZAfK7l36NGA==",
"dev": true,
"license": "Zlib",
"peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ "react": "^17.0.0 || ^18.0.0 || ^19.0.0"
}
},
"node_modules/@reduxjs/toolkit": {
- "version": "1.9.7",
- "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.7.tgz",
- "integrity": "sha512-t7v8ZPxhhKgOKtU+uyJT13lu4vL7az5aFi4IdoDs/eS548edn2M8Ik9h8fxgvMjGoAUVFSt6ZC1P5cWmQ014QQ==",
+ "version": "2.11.2",
+ "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.11.2.tgz",
+ "integrity": "sha512-Kd6kAHTA6/nUpp8mySPqj3en3dm0tdMIgbttnQ1xFMVpufoj+ADi8pXLBsd4xzTRHQa7t/Jv8W5UnCuW4kuWMQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "immer": "^9.0.21",
- "redux": "^4.2.1",
- "redux-thunk": "^2.4.2",
- "reselect": "^4.1.8"
+ "@standard-schema/spec": "^1.0.0",
+ "@standard-schema/utils": "^0.3.0",
+ "immer": "^11.0.0",
+ "redux": "^5.0.1",
+ "redux-thunk": "^3.1.0",
+ "reselect": "^5.1.0"
},
"peerDependencies": {
- "react": "^16.9.0 || ^17.0.0 || ^18",
- "react-redux": "^7.2.1 || ^8.0.2"
+ "react": "^16.9.0 || ^17.0.0 || ^18 || ^19",
+ "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0"
},
"peerDependenciesMeta": {
"react": {
@@ -2692,64 +3101,10 @@
}
}
},
- "node_modules/@remix-run/router": {
- "version": "1.23.2",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/@rollup/pluginutils": {
- "version": "5.3.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "estree-walker": "^2.0.2",
- "picomatch": "^4.0.2"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
- },
- "peerDependenciesMeta": {
- "rollup": {
- "optional": true
- }
- }
- },
- "node_modules/@rollup/pluginutils/node_modules/picomatch": {
- "version": "4.0.4",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.60.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.1.tgz",
- "integrity": "sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ]
- },
- "node_modules/@rollup/rollup-android-arm64": {
- "version": "4.60.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.1.tgz",
- "integrity": "sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA==",
+ "node_modules/@rolldown/binding-android-arm64": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0.tgz",
+ "integrity": "sha512-TWMZnRLMe63C2Lhyicviu7ZHaU4kxa6PS3rofvc9GmcvptzNN11BcfQ4Sl7MwTOsisQoa2keB/EBdNCAnUo8vA==",
"cpu": [
"arm64"
],
@@ -2758,12 +3113,15 @@
"optional": true,
"os": [
"android"
- ]
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
},
- "node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.60.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.1.tgz",
- "integrity": "sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw==",
+ "node_modules/@rolldown/binding-darwin-arm64": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0.tgz",
+ "integrity": "sha512-6XcD+8k0gPVItNagEw78/qqcBDwKcwDYS8V2hRmVsfUSIrd8cWe/CBvRDI5toqFyPfj+FJr6t8U6Xj2P2prEew==",
"cpu": [
"arm64"
],
@@ -2772,12 +3130,15 @@
"optional": true,
"os": [
"darwin"
- ]
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
},
- "node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.60.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.1.tgz",
- "integrity": "sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew==",
+ "node_modules/@rolldown/binding-darwin-x64": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0.tgz",
+ "integrity": "sha512-iN/tWVXRQDWvmZlKdceP1Dwug9GDpEymhb9p4xnEe6zvCg5lFmzVljl+1qR1NVx3yfGpr2Na+CuLmv5IU8uzfQ==",
"cpu": [
"x64"
],
@@ -2786,26 +3147,15 @@
"optional": true,
"os": [
"darwin"
- ]
- },
- "node_modules/@rollup/rollup-freebsd-arm64": {
- "version": "4.60.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.1.tgz",
- "integrity": "sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w==",
- "cpu": [
- "arm64"
],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ]
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
},
- "node_modules/@rollup/rollup-freebsd-x64": {
- "version": "4.60.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.1.tgz",
- "integrity": "sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g==",
+ "node_modules/@rolldown/binding-freebsd-x64": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0.tgz",
+ "integrity": "sha512-jjQMDvvwSOuhOwMszD/klSOjyWMM3zI64hWTj9KT5x4MxRbZAf+7vLQ6qouRhtsLVFHr3f0ILaJAfgENPiQdAQ==",
"cpu": [
"x64"
],
@@ -2814,197 +3164,100 @@
"optional": true,
"os": [
"freebsd"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.60.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.1.tgz",
- "integrity": "sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "libc": [
- "glibc"
],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
},
- "node_modules/@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.60.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.1.tgz",
- "integrity": "sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg==",
+ "node_modules/@rolldown/binding-linux-arm-gnueabihf": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0.tgz",
+ "integrity": "sha512-d//Dtg2x6/m3mbV64yUGNnDGNZaDGRpDLLNGerHQUVObuNaIQaaDp25yUiqGXtHEXX+NP2d0wAlmKgpYgIAJ2A==",
"cpu": [
"arm"
],
"dev": true,
- "libc": [
- "musl"
- ],
"license": "MIT",
"optional": true,
"os": [
"linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.60.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.1.tgz",
- "integrity": "sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "glibc"
],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
},
- "node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.60.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.1.tgz",
- "integrity": "sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA==",
+ "node_modules/@rolldown/binding-linux-arm64-gnu": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0.tgz",
+ "integrity": "sha512-n7Ofp0mx+aB2cC+Sdy5YtMnXtY9lchnHbY+3Yt0uq9JsWQExf4f5Whu0tK0R8Jdc9S6RchTHjIFY7uc92puOVQ==",
"cpu": [
"arm64"
],
"dev": true,
- "libc": [
- "musl"
- ],
"license": "MIT",
"optional": true,
"os": [
"linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-loong64-gnu": {
- "version": "4.60.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.1.tgz",
- "integrity": "sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "libc": [
- "glibc"
],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
},
- "node_modules/@rollup/rollup-linux-loong64-musl": {
- "version": "4.60.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.1.tgz",
- "integrity": "sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw==",
+ "node_modules/@rolldown/binding-linux-arm64-musl": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0.tgz",
+ "integrity": "sha512-EIVjy2cgd7uuMMo94FVkBp7F6DhcZAUwNURkSG3RwUmvAXR6s0ISxM81U+IydcZByPG0pZIHsf1b6kTxoFDgJA==",
"cpu": [
- "loong64"
+ "arm64"
],
"dev": true,
- "libc": [
- "musl"
- ],
"license": "MIT",
"optional": true,
"os": [
"linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-ppc64-gnu": {
- "version": "4.60.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.1.tgz",
- "integrity": "sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "libc": [
- "glibc"
],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
},
- "node_modules/@rollup/rollup-linux-ppc64-musl": {
- "version": "4.60.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.1.tgz",
- "integrity": "sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg==",
+ "node_modules/@rolldown/binding-linux-ppc64-gnu": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0.tgz",
+ "integrity": "sha512-JEwwOPcwTLAcpDQlqSmjEmfs63xJnSiUNIGvLcDLUHCWK4XowpS/7c7tUsUH6uT/ct6bMUTdXKfI8967FYj6mg==",
"cpu": [
"ppc64"
],
"dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.60.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.1.tgz",
- "integrity": "sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
"linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-riscv64-musl": {
- "version": "4.60.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.1.tgz",
- "integrity": "sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg==",
- "cpu": [
- "riscv64"
],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
},
- "node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.60.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.1.tgz",
- "integrity": "sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ==",
+ "node_modules/@rolldown/binding-linux-s390x-gnu": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0.tgz",
+ "integrity": "sha512-0wjCFhLrihtAubnT9iA0N++0pSV0z5Hg7tNGdNJ4RFaINceHadoF+kiFGyY1qSSNVIAZtLotG8Ju1bgDPkjnFA==",
"cpu": [
"s390x"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
"linux"
- ]
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
},
- "node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.60.1",
+ "node_modules/@rolldown/binding-linux-x64-gnu": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0.tgz",
+ "integrity": "sha512-Dfn7iak9BcMMePxcoJfpSbWqnEyrp/dRF63/8qW/eHBdOZov6x5aShLLEYGYdIeSJ6vMLK/XCVB+lGIxm41bQA==",
"cpu": [
"x64"
],
@@ -3013,10 +3266,15 @@
"optional": true,
"os": [
"linux"
- ]
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
},
- "node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.60.1",
+ "node_modules/@rolldown/binding-linux-x64-musl": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0.tgz",
+ "integrity": "sha512-5/utzzDmD/pD/bmuaUcbTf/sZYy0aztwIVlfpoW1fTjCZ0BaPOMVWGZL1zvgxyi7ZIVYWlxKONHmSbHuiOh8Jw==",
"cpu": [
"x64"
],
@@ -3025,26 +3283,15 @@
"optional": true,
"os": [
"linux"
- ]
- },
- "node_modules/@rollup/rollup-openbsd-x64": {
- "version": "4.60.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.1.tgz",
- "integrity": "sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw==",
- "cpu": [
- "x64"
],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ]
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
},
- "node_modules/@rollup/rollup-openharmony-arm64": {
- "version": "4.60.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.1.tgz",
- "integrity": "sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA==",
+ "node_modules/@rolldown/binding-openharmony-arm64": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0.tgz",
+ "integrity": "sha512-ouJs8VcUomfLfpbUECqFMRqdV4x6aeAK3MA4m6vTrJJjKyWTV5KnxZx7Jd9G+GlDaQQxubcba00x16OyJ1meig==",
"cpu": [
"arm64"
],
@@ -3053,40 +3300,51 @@
"optional": true,
"os": [
"openharmony"
- ]
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
},
- "node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.60.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.1.tgz",
- "integrity": "sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g==",
+ "node_modules/@rolldown/binding-wasm32-wasi": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0.tgz",
+ "integrity": "sha512-E+oHKGiDA+lsKMmFtffDDw91EryDT7uJocrIuCHqhm6bCTM6xFK+3gaCkYOHfPwQr0cCNarSM2xaELoQDz9jJg==",
"cpu": [
- "arm64"
+ "wasm32"
],
"dev": true,
"license": "MIT",
"optional": true,
- "os": [
- "win32"
- ]
+ "dependencies": {
+ "@emnapi/core": "1.10.0",
+ "@emnapi/runtime": "1.10.0",
+ "@napi-rs/wasm-runtime": "^1.1.4"
+ },
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
},
- "node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.60.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.1.tgz",
- "integrity": "sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg==",
+ "node_modules/@rolldown/binding-win32-arm64-msvc": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0.tgz",
+ "integrity": "sha512-yYK02n8Rngo+gbm1y6G0+7jk1sJ/2Wt7K0me0Y7k/ErBpyf+LJ2gFpqWVTcRV1rUepBlQRmpgWkTQCiiwrK0Ow==",
"cpu": [
- "ia32"
+ "arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
- ]
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
},
- "node_modules/@rollup/rollup-win32-x64-gnu": {
- "version": "4.60.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.1.tgz",
- "integrity": "sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg==",
+ "node_modules/@rolldown/binding-win32-x64-msvc": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0.tgz",
+ "integrity": "sha512-14bpChMahXRRXiTwahSl+zzHPW6qQTXtkMuJBFlbo+pqSAews2d4BdCSHfrJ/MBsCZtpmTafsY+1QhBzitcmdg==",
"cpu": [
"x64"
],
@@ -3095,24 +3353,58 @@
"optional": true,
"os": [
"win32"
- ]
- },
- "node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.60.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.1.tgz",
- "integrity": "sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ==",
- "cpu": [
- "x64"
],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/pluginutils": {
+ "version": "1.0.0-rc.7",
+ "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.7.tgz",
+ "integrity": "sha512-qujRfC8sFVInYSPPMLQByRh7zhwkGFS4+tyMQ83srV1qrxL4g8E2tyxVVyxd0+8QeBM1mIk9KbWxkegRr76XzA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@rollup/pluginutils": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz",
+ "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "estree-walker": "^2.0.2",
+ "picomatch": "^4.0.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rollup/pluginutils/node_modules/picomatch": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
},
"node_modules/@sapphire/async-queue": {
"version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.5.5.tgz",
+ "integrity": "sha512-cvGzxbba6sav2zZkH8GPf2oGk9yYoD5qrNWdu9fRehifgnFZJMV+nuy2nON2roRO4yQQ+v7MK/Pktl/HgfsUXg==",
"license": "MIT",
"engines": {
"node": ">=v14.0.0",
@@ -3121,6 +3413,8 @@
},
"node_modules/@sapphire/shapeshift": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-4.0.0.tgz",
+ "integrity": "sha512-d9dUmWVA7MMiKobL3VpLF8P2aeanRTu6ypG2OIaEv/ZHH/SUQ2iHOVyi5wAPjQ+HmnMuL0whK9ez8I/raWbtIg==",
"license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.3",
@@ -3132,6 +3426,8 @@
},
"node_modules/@sapphire/snowflake": {
"version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/@sapphire/snowflake/-/snowflake-3.5.3.tgz",
+ "integrity": "sha512-jjmJywLAFoWeBi1W7994zZyiNWPIiqRRNAmSERxyg93xRGzNYvGjlZ0gR6x0F4gPRi2+0O6S71kOZYyr3cxaIQ==",
"license": "MIT",
"engines": {
"node": ">=v14.0.0",
@@ -3140,11 +3436,15 @@
},
"node_modules/@sec-ant/readable-stream": {
"version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz",
+ "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==",
"dev": true,
"license": "MIT"
},
"node_modules/@shikijs/core": {
"version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-4.0.2.tgz",
+ "integrity": "sha512-hxT0YF4ExEqB8G/qFdtJvpmHXBYJ2lWW7qTHDarVkIudPFE6iCIrqdgWxGn5s+ppkGXI0aEGlibI0PAyzP3zlw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3160,6 +3460,8 @@
},
"node_modules/@shikijs/engine-javascript": {
"version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-4.0.2.tgz",
+ "integrity": "sha512-7PW0Nm49DcoUIQEXlJhNNBHyoGMjalRETTCcjMqEaMoJRLljy1Bi/EGV3/qLBgLKQejdspiiYuHGQW6dX94Nag==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3173,6 +3475,8 @@
},
"node_modules/@shikijs/engine-oniguruma": {
"version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-4.0.2.tgz",
+ "integrity": "sha512-UpCB9Y2sUKlS9z8juFSKz7ZtysmeXCgnRF0dlhXBkmQnek7lAToPte8DkxmEYGNTMii72zU/lyXiCB6StuZeJg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3185,6 +3489,8 @@
},
"node_modules/@shikijs/langs": {
"version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-4.0.2.tgz",
+ "integrity": "sha512-KaXby5dvoeuZzN0rYQiPMjFoUrz4hgwIE+D6Du9owcHcl6/g16/yT5BQxSW5cGt2MZBz6Hl0YuRqf12omRfUUg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3196,6 +3502,8 @@
},
"node_modules/@shikijs/primitive": {
"version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@shikijs/primitive/-/primitive-4.0.2.tgz",
+ "integrity": "sha512-M6UMPrSa3fN5ayeJwFVl9qWofl273wtK1VG8ySDZ1mQBfhCpdd8nEx7nPZ/tk7k+TYcpqBZzj/AnwxT9lO+HJw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3209,6 +3517,8 @@
},
"node_modules/@shikijs/themes": {
"version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-4.0.2.tgz",
+ "integrity": "sha512-mjCafwt8lJJaVSsQvNVrJumbnnj1RI8jbUKrPKgE6E3OvQKxnuRoBaYC51H4IGHePsGN/QtALglWBU7DoKDFnA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3220,6 +3530,8 @@
},
"node_modules/@shikijs/types": {
"version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-4.0.2.tgz",
+ "integrity": "sha512-qzbeRooUTPnLE+sHD/Z8DStmaDgnbbc/pMrU203950aRqjX/6AFHeDYT+j00y2lPdz0ywJKx7o/7qnqTivtlXg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3232,11 +3544,15 @@
},
"node_modules/@shikijs/vscode-textmate": {
"version": "10.0.2",
+ "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz",
+ "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==",
"dev": true,
"license": "MIT"
},
"node_modules/@sindresorhus/is": {
"version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-2.1.1.tgz",
+ "integrity": "sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==",
"license": "MIT",
"engines": {
"node": ">=10"
@@ -3247,6 +3563,8 @@
},
"node_modules/@sindresorhus/merge-streams": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz",
+ "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3258,6 +3576,8 @@
},
"node_modules/@sinonjs/commons": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
+ "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -3266,6 +3586,8 @@
},
"node_modules/@sinonjs/commons/node_modules/type-detect": {
"version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3274,6 +3596,8 @@
},
"node_modules/@sinonjs/fake-timers": {
"version": "15.1.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-15.1.1.tgz",
+ "integrity": "sha512-cO5W33JgAPbOh07tvZjUOJ7oWhtaqGHiZw+11DPbyqh2kHTBc3eF/CjJDeQ4205RLQsX6rxCuYOroFQwl7JDRw==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -3282,6 +3606,8 @@
},
"node_modules/@sinonjs/samsam": {
"version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-9.0.2.tgz",
+ "integrity": "sha512-H/JSxa4GNKZuuU41E3b8Y3tbSEx8y4uq4UH1C56ONQac16HblReJomIvv3Ud7ANQHQmkeSowY49Ij972e/pGxQ==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -3291,10 +3617,21 @@
},
"node_modules/@standard-schema/spec": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz",
+ "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==",
+ "license": "MIT"
+ },
+ "node_modules/@standard-schema/utils": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz",
+ "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==",
+ "dev": true,
"license": "MIT"
},
"node_modules/@stdlib/error-tools-fmtprodmsg": {
"version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/@stdlib/error-tools-fmtprodmsg/-/error-tools-fmtprodmsg-0.2.2.tgz",
+ "integrity": "sha512-2IliQfTes4WV5odPidZFGD5eYDswZrPXob7oOu95Q69ERqImo8WzSwnG2EDbHPyOyYCewuMfM5Ha6Ggf+u944Q==",
"license": "Apache-2.0",
"os": [
"aix",
@@ -3318,6 +3655,8 @@
},
"node_modules/@stdlib/regexp-regexp": {
"version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/@stdlib/regexp-regexp/-/regexp-regexp-0.2.2.tgz",
+ "integrity": "sha512-LlWqVH7wou4rJ2vovmn8ZZf4Z5/sMYxGQkmUcURvdCDMSL4pt91uPMi9I2hLECcIYXLiKUD87VSR56Y5luaafg==",
"license": "Apache-2.0",
"os": [
"aix",
@@ -3344,6 +3683,8 @@
},
"node_modules/@stdlib/string-base-format-interpolate": {
"version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/@stdlib/string-base-format-interpolate/-/string-base-format-interpolate-0.2.2.tgz",
+ "integrity": "sha512-i9nU9rAB2+o/RR66TS9iQ8x+YzeUDL1SGiAo6GY3hP6Umz5Dx9Qp/v8T69gWVsb4a1YSclz5+YeCWaFgwvPjKA==",
"license": "Apache-2.0",
"os": [
"aix",
@@ -3367,6 +3708,8 @@
},
"node_modules/@stdlib/string-base-format-tokenize": {
"version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/@stdlib/string-base-format-tokenize/-/string-base-format-tokenize-0.2.2.tgz",
+ "integrity": "sha512-kXq2015i+LJjqth5dN+hYnvJXBSzRm8w0ABWB5tYAsIuQTpQK+mSo2muM8JBEFEnqUHAwpUsu2qNTK/9o8lsJg==",
"license": "Apache-2.0",
"os": [
"aix",
@@ -3390,6 +3733,8 @@
},
"node_modules/@stdlib/string-format": {
"version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/@stdlib/string-format/-/string-format-0.2.2.tgz",
+ "integrity": "sha512-GUa50uxgMAtoItsxTbMmwkyhIwrCxCrsjzk3nAbLnt/1Kt1EWOWMwsALqZdD6K4V/xSJ4ns6PZur3W6w+vKk9g==",
"license": "Apache-2.0",
"os": [
"aix",
@@ -3417,6 +3762,8 @@
},
"node_modules/@stdlib/utils-define-nonenumerable-read-only-property": {
"version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/@stdlib/utils-define-nonenumerable-read-only-property/-/utils-define-nonenumerable-read-only-property-0.2.2.tgz",
+ "integrity": "sha512-V3mpAesJemLYDKG376CsmoczWPE/4LKsp8xBvUxCt5CLNAx3J/1W39iZQyA5q6nY1RStGinGn1/dYZwa8ig0Uw==",
"license": "Apache-2.0",
"os": [
"aix",
@@ -3443,6 +3790,8 @@
},
"node_modules/@stdlib/utils-define-property": {
"version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/@stdlib/utils-define-property/-/utils-define-property-0.2.4.tgz",
+ "integrity": "sha512-XlMdz7xwuw/sqXc9LbsV8XunCzZXjbZPC+OAdf4t4PBw4ZRwGzlTI6WED+f4PYR5Tp9F1cHgLPyMYCIBfA2zRg==",
"license": "Apache-2.0",
"os": [
"aix",
@@ -3469,7 +3818,9 @@
}
},
"node_modules/@storybook/addon-a11y": {
- "version": "10.1.11",
+ "version": "10.3.6",
+ "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-10.3.6.tgz",
+ "integrity": "sha512-cbwXIT5CeHZ9AFbTKQ6YB7Ct6TAl/kKOgALbvzzVtFfRvm51JYygGaiJaB7PbPWn9wgJP2olJcFt+erlEc6cRw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3481,18 +3832,20 @@
"url": "https://opencollective.com/storybook"
},
"peerDependencies": {
- "storybook": "^10.1.11"
+ "storybook": "^10.3.6"
}
},
"node_modules/@storybook/addon-docs": {
- "version": "10.1.11",
+ "version": "10.3.6",
+ "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-10.3.6.tgz",
+ "integrity": "sha512-TvIdADVPtauxW0LzXIpIv7X6GxwetorhyNh+6+7MHC27XSBCWVxxRUwL63YeLlHTuXsIk0quG3b1xgwVRzWOJA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@mdx-js/react": "^3.0.0",
- "@storybook/csf-plugin": "10.1.11",
- "@storybook/icons": "^2.0.0",
- "@storybook/react-dom-shim": "10.1.11",
+ "@storybook/csf-plugin": "10.3.6",
+ "@storybook/icons": "^2.0.1",
+ "@storybook/react-dom-shim": "10.3.6",
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
"ts-dedent": "^2.0.0"
@@ -3502,16 +3855,17 @@
"url": "https://opencollective.com/storybook"
},
"peerDependencies": {
- "storybook": "^10.1.11"
+ "storybook": "^10.3.6"
}
},
"node_modules/@storybook/builder-vite": {
- "version": "10.1.11",
+ "version": "10.3.6",
+ "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-10.3.6.tgz",
+ "integrity": "sha512-gpvR/sE4BcrFtmQZ+Ker7zD23oQzoVeqD9nF6cK6yzY+Q0svJXyX2EPmFG4y+EwygD5/vNzDpP84gGMut8VRwg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@storybook/csf-plugin": "10.1.11",
- "@vitest/mocker": "3.2.4",
+ "@storybook/csf-plugin": "10.3.6",
"ts-dedent": "^2.0.0"
},
"funding": {
@@ -3519,12 +3873,14 @@
"url": "https://opencollective.com/storybook"
},
"peerDependencies": {
- "storybook": "^10.1.11",
- "vite": "^5.0.0 || ^6.0.0 || ^7.0.0"
+ "storybook": "^10.3.6",
+ "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
"node_modules/@storybook/csf-plugin": {
- "version": "10.1.11",
+ "version": "10.3.6",
+ "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-10.3.6.tgz",
+ "integrity": "sha512-9kBf7VRdRqTSIYo+rPtVn5yjYYyK8kP2QhEYx3oiXvfwy4RexmbJnhk/tXa/lNiTqukA1TqaWQ2+5MqF4fu6YQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3537,7 +3893,7 @@
"peerDependencies": {
"esbuild": "*",
"rollup": "*",
- "storybook": "^10.1.11",
+ "storybook": "^10.3.6",
"vite": "*",
"webpack": "*"
},
@@ -3558,11 +3914,15 @@
},
"node_modules/@storybook/global": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@storybook/global/-/global-5.0.0.tgz",
+ "integrity": "sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==",
"dev": true,
"license": "MIT"
},
"node_modules/@storybook/icons": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-2.0.1.tgz",
+ "integrity": "sha512-/smVjw88yK3CKsiuR71vNgWQ9+NuY2L+e8X7IMrFjexjm6ZR8ULrV2DRkTA61aV6ryefslzHEGDInGpnNeIocg==",
"dev": true,
"license": "MIT",
"peerDependencies": {
@@ -3571,13 +3931,16 @@
}
},
"node_modules/@storybook/react": {
- "version": "10.1.11",
+ "version": "10.3.6",
+ "resolved": "https://registry.npmjs.org/@storybook/react/-/react-10.3.6.tgz",
+ "integrity": "sha512-oZQZ6xayWe5IdHmFUTL0TL8rX/gpNNh9gWhT2vzW5eeUvlkVG/RBKdsja6Ndrk2s1D9vcnwiI6r6CNXy3IEEmg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@storybook/global": "^5.0.0",
- "@storybook/react-dom-shim": "10.1.11",
- "react-docgen": "^8.0.2"
+ "@storybook/react-dom-shim": "10.3.6",
+ "react-docgen": "^8.0.2",
+ "react-docgen-typescript": "^2.2.2"
},
"funding": {
"type": "opencollective",
@@ -3586,7 +3949,7 @@
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
- "storybook": "^10.1.11",
+ "storybook": "^10.3.6",
"typescript": ">= 4.9.x"
},
"peerDependenciesMeta": {
@@ -3596,7 +3959,9 @@
}
},
"node_modules/@storybook/react-dom-shim": {
- "version": "10.1.11",
+ "version": "10.3.6",
+ "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-10.3.6.tgz",
+ "integrity": "sha512-/Tu1gPu+Fw+zOnAGmxRmOD30FX3a04LxcTAKflEtdpmtIMVR5bA3qpjy+f5YhoyDCecbXyKmL1OeIU2FIIZHqQ==",
"dev": true,
"license": "MIT",
"funding": {
@@ -3606,18 +3971,20 @@
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
- "storybook": "^10.1.11"
+ "storybook": "^10.3.6"
}
},
"node_modules/@storybook/react-vite": {
- "version": "10.1.11",
+ "version": "10.3.6",
+ "resolved": "https://registry.npmjs.org/@storybook/react-vite/-/react-vite-10.3.6.tgz",
+ "integrity": "sha512-tySQRc+8q7V2NkylQMNJjDV8zXy6tkxb8oDqw/DIhHhI9Xn77MTKVZ8Cihbo5NMm7HYTB6xDKr6wqdSMgdufYQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@joshwooding/vite-plugin-react-docgen-typescript": "^0.6.3",
+ "@joshwooding/vite-plugin-react-docgen-typescript": "^0.7.0",
"@rollup/pluginutils": "^5.0.2",
- "@storybook/builder-vite": "10.1.11",
- "@storybook/react": "10.1.11",
+ "@storybook/builder-vite": "10.3.6",
+ "@storybook/react": "10.3.6",
"empathic": "^2.0.0",
"magic-string": "^0.30.0",
"react-docgen": "^8.0.0",
@@ -3631,12 +3998,14 @@
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
- "storybook": "^10.1.11",
- "vite": "^5.0.0 || ^6.0.0 || ^7.0.0"
+ "storybook": "^10.3.6",
+ "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
"node_modules/@supercharge/promise-pool": {
"version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@supercharge/promise-pool/-/promise-pool-3.2.0.tgz",
+ "integrity": "sha512-pj0cAALblTZBPtMltWOlZTQSLT07jIaFNeM8TWoJD1cQMgDB9mcMlVMoetiB35OzNJpqQ2b+QEtwiR9f20mADg==",
"license": "MIT",
"engines": {
"node": ">=8"
@@ -3644,6 +4013,8 @@
},
"node_modules/@svrooij/sonos": {
"version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@svrooij/sonos/-/sonos-2.5.0.tgz",
+ "integrity": "sha512-QcRJRo9aILj5/6ikebQsGZL9kqGP9Er6XyWJG5akHI0XIALMk/kLyXVrAnYZ2jef3Hj2GCCHCqCNkbAIqCZ53Q==",
"license": "MIT",
"dependencies": {
"debug": "4.3.1",
@@ -3656,6 +4027,8 @@
},
"node_modules/@svrooij/sonos/node_modules/debug": {
"version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"license": "MIT",
"dependencies": {
"ms": "2.1.2"
@@ -3671,10 +4044,14 @@
},
"node_modules/@svrooij/sonos/node_modules/ms": {
"version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"license": "MIT"
},
"node_modules/@swc/helpers": {
"version": "0.5.19",
+ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.19.tgz",
+ "integrity": "sha512-QamiFeIK3txNjgUTNppE6MiG3p7TdninpZu0E0PbqVh1a9FNLT2FRhisaa4NcaX52XVhA5l7Pk58Ft7Sqi/2sA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -3683,6 +4060,8 @@
},
"node_modules/@szmarczak/http-timer": {
"version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz",
+ "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==",
"license": "MIT",
"dependencies": {
"defer-to-connect": "^2.0.0"
@@ -3824,9 +4203,6 @@
"arm64"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -3844,9 +4220,6 @@
"arm64"
],
"dev": true,
- "libc": [
- "musl"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -3864,9 +4237,6 @@
"x64"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -3884,9 +4254,6 @@
"x64"
],
"dev": true,
- "libc": [
- "musl"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -3926,6 +4293,70 @@
"node": ">=14.0.0"
}
},
+ "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/core": {
+ "version": "1.8.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/wasi-threads": "1.1.0",
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/runtime": {
+ "version": "1.8.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/wasi-threads": {
+ "version": "1.1.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@napi-rs/wasm-runtime": {
+ "version": "1.1.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/core": "^1.7.1",
+ "@emnapi/runtime": "^1.7.1",
+ "@tybys/wasm-util": "^0.10.1"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/Brooooooklyn"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@tybys/wasm-util": {
+ "version": "0.10.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/tslib": {
+ "version": "2.8.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "0BSD",
+ "optional": true
+ },
"node_modules/@tailwindcss/oxide-win32-arm64-msvc": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.2.tgz",
@@ -3976,7 +4407,9 @@
}
},
"node_modules/@testing-library/dom": {
- "version": "10.4.0",
+ "version": "10.4.1",
+ "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz",
+ "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==",
"dev": true,
"license": "MIT",
"peer": true,
@@ -3985,9 +4418,9 @@
"@babel/runtime": "^7.12.5",
"@types/aria-query": "^5.0.1",
"aria-query": "5.3.0",
- "chalk": "^4.1.0",
"dom-accessibility-api": "^0.5.9",
"lz-string": "^1.5.0",
+ "picocolors": "1.1.1",
"pretty-format": "^27.0.2"
},
"engines": {
@@ -3996,17 +4429,34 @@
},
"node_modules/@tsconfig/node18": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node18/-/node18-1.0.3.tgz",
+ "integrity": "sha512-RbwvSJQsuN9TB04AQbGULYfOGE/RnSFk/FLQ5b0NmDf5Kx2q/lABZbHQPKCO1vZ6Fiwkplu+yb9pGdLy1iGseQ==",
"dev": true,
"license": "MIT"
},
+ "node_modules/@tybys/wasm-util": {
+ "version": "0.10.2",
+ "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz",
+ "integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
"node_modules/@types/aria-query": {
"version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz",
+ "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==",
"dev": true,
"license": "MIT",
"peer": true
},
"node_modules/@types/babel__core": {
"version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
+ "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4018,7 +4468,9 @@
}
},
"node_modules/@types/babel__generator": {
- "version": "7.6.8",
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz",
+ "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4027,6 +4479,8 @@
},
"node_modules/@types/babel__template": {
"version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
+ "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4036,6 +4490,8 @@
},
"node_modules/@types/babel__traverse": {
"version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz",
+ "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4044,6 +4500,8 @@
},
"node_modules/@types/body-parser": {
"version": "1.19.5",
+ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz",
+ "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4053,6 +4511,8 @@
},
"node_modules/@types/cacheable-request": {
"version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz",
+ "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==",
"license": "MIT",
"dependencies": {
"@types/http-cache-semantics": "*",
@@ -4063,11 +4523,15 @@
},
"node_modules/@types/chai": {
"version": "4.3.20",
+ "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz",
+ "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/chai-as-promised": {
"version": "7.1.8",
+ "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz",
+ "integrity": "sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4076,16 +4540,22 @@
},
"node_modules/@types/clone": {
"version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@types/clone/-/clone-2.1.4.tgz",
+ "integrity": "sha512-NKRWaEGaVGVLnGLB2GazvDaZnyweW9FJLLFL5LhywGJB3aqGMT9R/EUoJoSRP4nzofYnZysuDmrEJtJdAqUOtQ==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/common-tags": {
"version": "1.8.4",
+ "resolved": "https://registry.npmjs.org/@types/common-tags/-/common-tags-1.8.4.tgz",
+ "integrity": "sha512-S+1hLDJPjWNDhcGxsxEbepzaxWqURP/o+3cP4aa2w7yBXgdcmKGQtZzP8JbyfOd0m+33nh+8+kvxYE2UJtBDkg==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/concat-stream": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-2.0.3.tgz",
+ "integrity": "sha512-3qe4oQAPNwVNwK4C9c8u+VJqv9kez+2MR4qJpoPFfXtgxxif1QbFusvXzK0/Wra2VX07smostI2VMmJNSpZjuQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4094,6 +4564,8 @@
},
"node_modules/@types/connect": {
"version": "3.4.38",
+ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
+ "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
"license": "MIT",
"dependencies": {
"@types/node": "*"
@@ -4101,11 +4573,15 @@
},
"node_modules/@types/cookiejar": {
"version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.5.tgz",
+ "integrity": "sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/cors": {
"version": "2.8.17",
+ "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz",
+ "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4114,6 +4590,8 @@
},
"node_modules/@types/debug": {
"version": "4.1.12",
+ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz",
+ "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
"license": "MIT",
"dependencies": {
"@types/ms": "*"
@@ -4121,16 +4599,29 @@
},
"node_modules/@types/deep-eql": {
"version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz",
+ "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/doctrine": {
"version": "0.0.9",
+ "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.9.tgz",
+ "integrity": "sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/esrecurse": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz",
+ "integrity": "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/estree": {
"version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
+ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
"dev": true,
"license": "MIT"
},
@@ -4171,6 +4662,8 @@
},
"node_modules/@types/formidable": {
"version": "3.4.5",
+ "resolved": "https://registry.npmjs.org/@types/formidable/-/formidable-3.4.5.tgz",
+ "integrity": "sha512-s7YPsNVfnsng5L8sKnG/Gbb2tiwwJTY1conOkJzTMRvJAlLFW1nEua+ADsJQu8N1c0oTHx9+d5nqg10WuT9gHQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4179,6 +4672,8 @@
},
"node_modules/@types/fs-extra": {
"version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.4.tgz",
+ "integrity": "sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4188,23 +4683,18 @@
},
"node_modules/@types/hast": {
"version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
+ "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/unist": "*"
}
},
- "node_modules/@types/hoist-non-react-statics": {
- "version": "3.3.5",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/react": "*",
- "hoist-non-react-statics": "^3.3.0"
- }
- },
"node_modules/@types/http-cache-semantics": {
"version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz",
+ "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==",
"license": "MIT"
},
"node_modules/@types/http-errors": {
@@ -4216,6 +4706,8 @@
},
"node_modules/@types/jest": {
"version": "27.5.2",
+ "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.2.tgz",
+ "integrity": "sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4225,6 +4717,8 @@
},
"node_modules/@types/jscodeshift": {
"version": "0.11.11",
+ "resolved": "https://registry.npmjs.org/@types/jscodeshift/-/jscodeshift-0.11.11.tgz",
+ "integrity": "sha512-d7CAfFGOupj5qCDqMODXxNz2/NwCv/Lha78ZFbnr6qpk3K98iSB8I+ig9ERE2+EeYML352VMRsjPyOpeA+04eQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4234,10 +4728,14 @@
},
"node_modules/@types/json-schema": {
"version": "7.0.15",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
"license": "MIT"
},
"node_modules/@types/jsonfile": {
"version": "6.1.4",
+ "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.4.tgz",
+ "integrity": "sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4246,6 +4744,8 @@
},
"node_modules/@types/keyv": {
"version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz",
+ "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==",
"license": "MIT",
"dependencies": {
"@types/node": "*"
@@ -4253,10 +4753,14 @@
},
"node_modules/@types/long": {
"version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz",
+ "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==",
"license": "MIT"
},
"node_modules/@types/mdast": {
"version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
+ "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4265,87 +4769,109 @@
},
"node_modules/@types/mdx": {
"version": "2.0.13",
+ "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz",
+ "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/methods": {
"version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@types/methods/-/methods-1.1.4.tgz",
+ "integrity": "sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/mime": {
"version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
+ "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/mocha": {
"version": "9.1.1",
+ "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz",
+ "integrity": "sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/ms": {
"version": "0.7.34",
+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz",
+ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==",
"license": "MIT"
},
"node_modules/@types/node": {
- "version": "20.19.37",
+ "version": "24.12.2",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-24.12.2.tgz",
+ "integrity": "sha512-A1sre26ke7HDIuY/M23nd9gfB+nrmhtYyMINbjI1zHJxYteKR6qSMX56FsmjMcDb3SMcjJg5BiRRgOCC/yBD0g==",
"license": "MIT",
"dependencies": {
- "undici-types": "~6.21.0"
+ "undici-types": "~7.16.0"
}
},
"node_modules/@types/object-hash": {
"version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@types/object-hash/-/object-hash-3.0.6.tgz",
+ "integrity": "sha512-fOBV8C1FIu2ELinoILQ+ApxcUKz4ngq+IWUYrxSGjXzzjUALijilampwkMgEtJ+h2njAW3pi853QpzNVCHB73w==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/parse-json": {
"version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz",
+ "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/passport": {
"version": "1.0.17",
+ "resolved": "https://registry.npmjs.org/@types/passport/-/passport-1.0.17.tgz",
+ "integrity": "sha512-aciLyx+wDwT2t2/kJGJR2AEeBz0nJU4WuRX04Wu9Dqc5lSUtwu0WERPHYsLhF9PtseiAMPBGNUOtFjxZ56prsg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/express": "*"
}
},
- "node_modules/@types/prop-types": {
- "version": "15.7.13",
- "dev": true,
- "license": "MIT"
- },
"node_modules/@types/qs": {
"version": "6.9.16",
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.16.tgz",
+ "integrity": "sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/range-parser": {
"version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
+ "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/react": {
- "version": "18.3.12",
+ "version": "19.2.14",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz",
+ "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@types/prop-types": "*",
- "csstype": "^3.0.2"
+ "csstype": "^3.2.2"
}
},
"node_modules/@types/react-dom": {
- "version": "18.3.1",
+ "version": "19.2.3",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz",
+ "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "@types/react": "*"
+ "peerDependencies": {
+ "@types/react": "^19.2.0"
}
},
"node_modules/@types/react-window": {
"version": "1.8.8",
+ "resolved": "https://registry.npmjs.org/@types/react-window/-/react-window-1.8.8.tgz",
+ "integrity": "sha512-8Ls660bHR1AUA2kuRvVG9D/4XpRC6wjAaPT9dil7Ckc76eP9TKWZwwmgfq8Q1LANX3QNDnoU4Zp48A3w+zK69Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4354,23 +4880,24 @@
},
"node_modules/@types/resolve": {
"version": "1.20.6",
+ "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.6.tgz",
+ "integrity": "sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/responselike": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz",
+ "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==",
"license": "MIT",
"dependencies": {
"@types/node": "*"
}
},
- "node_modules/@types/retry": {
- "version": "0.12.2",
- "dev": true,
- "license": "MIT"
- },
"node_modules/@types/send": {
"version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz",
+ "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4391,6 +4918,8 @@
},
"node_modules/@types/sinon": {
"version": "21.0.0",
+ "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-21.0.0.tgz",
+ "integrity": "sha512-+oHKZ0lTI+WVLxx1IbJDNmReQaIsQJjN2e7UUrJHEeByG7bFeKJYsv1E75JxTQ9QKJDp21bAa/0W2Xo4srsDnw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4399,16 +4928,22 @@
},
"node_modules/@types/sinonjs__fake-timers": {
"version": "15.0.1",
+ "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-15.0.1.tgz",
+ "integrity": "sha512-Ko2tjWJq8oozHzHV+reuvS5KYIRAokHnGbDwGh/J64LntgpbuylF74ipEL24HCyRjf9FOlBiBHWBR1RlVKsI1w==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/spotify-api": {
"version": "0.0.25",
+ "resolved": "https://registry.npmjs.org/@types/spotify-api/-/spotify-api-0.0.25.tgz",
+ "integrity": "sha512-okhoy0U9fPWtwqCfbDyW8VxamhqvXE0gXIVeMOh5HcvEFQvWW2X0VsvdiX/OyiGQpZbZiOJXIGrbnIPfK0AIpA==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/spotify-web-api-node": {
"version": "5.0.11",
+ "resolved": "https://registry.npmjs.org/@types/spotify-web-api-node/-/spotify-web-api-node-5.0.11.tgz",
+ "integrity": "sha512-RS3IkSqH9geC61e8qd+Oy7giOTtiY7ywm0Z4bu5uYuc7XuOcLfDwKjmle85IbpTEdazeCgmIbo8nMLg7WDVvgw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4417,11 +4952,15 @@
},
"node_modules/@types/statuses": {
"version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/statuses/-/statuses-2.0.6.tgz",
+ "integrity": "sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/superagent": {
"version": "8.1.9",
+ "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-8.1.9.tgz",
+ "integrity": "sha512-pTVjI73witn+9ILmoJdajHGW2jkSaOzhiFYF1Rd3EQ94kymLqB9PjD9ISg7WaALC7+dCHT0FGe9T2LktLq/3GQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4433,16 +4972,22 @@
},
"node_modules/@types/unist": {
"version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/use-sync-external-store": {
- "version": "0.0.3",
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz",
+ "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/ws": {
"version": "7.4.7",
+ "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz",
+ "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==",
"license": "MIT",
"dependencies": {
"@types/node": "*"
@@ -4450,6 +4995,8 @@
},
"node_modules/@types/xml2js": {
"version": "0.4.14",
+ "resolved": "https://registry.npmjs.org/@types/xml2js/-/xml2js-0.4.14.tgz",
+ "integrity": "sha512-4YnrRemBShWRO2QjvUin8ESA41rH+9nQGLUGZV/1IDhi3SL9OhdpNC/MrulTWuptXKwhx/aDxE7toV0f/ypIXQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4457,71 +5004,55 @@
}
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "7.18.0",
+ "version": "8.59.3",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.59.3.tgz",
+ "integrity": "sha512-PwFvSKsXGShKGW6n5bZOhGHEcCZXM8HofLK9fNsEwZXzFRjoY+XT1Vsf1zgyXdwTr0ZYz1/2tkZ0DBTT9jZjhw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "7.18.0",
- "@typescript-eslint/type-utils": "7.18.0",
- "@typescript-eslint/utils": "7.18.0",
- "@typescript-eslint/visitor-keys": "7.18.0",
- "graphemer": "^1.4.0",
- "ignore": "^5.3.1",
+ "@eslint-community/regexpp": "^4.12.2",
+ "@typescript-eslint/scope-manager": "8.59.3",
+ "@typescript-eslint/type-utils": "8.59.3",
+ "@typescript-eslint/utils": "8.59.3",
+ "@typescript-eslint/visitor-keys": "8.59.3",
+ "ignore": "^7.0.5",
"natural-compare": "^1.4.0",
- "ts-api-utils": "^1.3.0"
+ "ts-api-utils": "^2.5.0"
},
"engines": {
- "node": "^18.18.0 || >=20.0.0"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "@typescript-eslint/parser": "^7.0.0",
- "eslint": "^8.56.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "@typescript-eslint/parser": "^8.59.3",
+ "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
+ "typescript": ">=4.8.4 <6.1.0"
}
},
- "node_modules/@typescript-eslint/parser": {
- "version": "7.18.0",
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": {
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
+ "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
"dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "@typescript-eslint/scope-manager": "7.18.0",
- "@typescript-eslint/types": "7.18.0",
- "@typescript-eslint/typescript-estree": "7.18.0",
- "@typescript-eslint/visitor-keys": "7.18.0",
- "debug": "^4.3.4"
- },
+ "license": "MIT",
"engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.56.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "node": ">= 4"
}
},
- "node_modules/@typescript-eslint/project-service": {
- "version": "8.57.1",
+ "node_modules/@typescript-eslint/parser": {
+ "version": "8.59.3",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.59.3.tgz",
+ "integrity": "sha512-HPwA+hVkfcriajbNvTmZv4VRauibay+cWArYUYq7u7W7PmGShMxbPxLvrwDme55a6d5alG3nrYfhyJ/G28XlLg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/tsconfig-utils": "^8.57.1",
- "@typescript-eslint/types": "^8.57.1",
+ "@typescript-eslint/scope-manager": "8.59.3",
+ "@typescript-eslint/types": "8.59.3",
+ "@typescript-eslint/typescript-estree": "8.59.3",
+ "@typescript-eslint/visitor-keys": "8.59.3",
"debug": "^4.4.3"
},
"engines": {
@@ -4532,31 +5063,44 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "typescript": ">=4.8.4 <6.0.0"
+ "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
+ "typescript": ">=4.8.4 <6.1.0"
}
},
- "node_modules/@typescript-eslint/project-service/node_modules/@typescript-eslint/types": {
- "version": "8.57.1",
+ "node_modules/@typescript-eslint/project-service": {
+ "version": "8.59.3",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.59.3.tgz",
+ "integrity": "sha512-ECiUWa/KYRGDFUqTNehaRgzDshnJfkTABJxVemHk4ko22gcr0ukloKjWvyQ64g8YCV/UI47kN1dbmjf/GaQYng==",
"dev": true,
"license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/tsconfig-utils": "^8.59.3",
+ "@typescript-eslint/types": "^8.59.3",
+ "debug": "^4.4.3"
+ },
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.8.4 <6.1.0"
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "7.18.0",
+ "version": "8.59.3",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.59.3.tgz",
+ "integrity": "sha512-t2LvZnoEfzKtnPjgeEu41xw5gxq9mQVfYy4OoZ4Vlt0sk3JwxmhCca/AR7DwOiHrjWgjAj6as4AhRLKSDfvZIA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "7.18.0",
- "@typescript-eslint/visitor-keys": "7.18.0"
+ "@typescript-eslint/types": "8.59.3",
+ "@typescript-eslint/visitor-keys": "8.59.3"
},
"engines": {
- "node": "^18.18.0 || >=20.0.0"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"type": "opencollective",
@@ -4564,7 +5108,9 @@
}
},
"node_modules/@typescript-eslint/tsconfig-utils": {
- "version": "8.57.1",
+ "version": "8.59.3",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.59.3.tgz",
+ "integrity": "sha512-PcIJHjmaREXLgIAIzLnSY9VucEzz8FKXsRgFa1DmdGCK/5tJpW03TKJF01Q6VZd1lLdz2sIKPWaDUZN9dp//dw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4575,41 +5121,42 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "typescript": ">=4.8.4 <6.0.0"
+ "typescript": ">=4.8.4 <6.1.0"
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "7.18.0",
+ "version": "8.59.3",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.59.3.tgz",
+ "integrity": "sha512-g71d8QD8UaiHGvrJwyIS1hCX5r63w6Jll+4VEYhEAHXTDIqX1JgxhTAbEHtKntL9kuc4jRo7/GWw5xfCepSccQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/typescript-estree": "7.18.0",
- "@typescript-eslint/utils": "7.18.0",
- "debug": "^4.3.4",
- "ts-api-utils": "^1.3.0"
+ "@typescript-eslint/types": "8.59.3",
+ "@typescript-eslint/typescript-estree": "8.59.3",
+ "@typescript-eslint/utils": "8.59.3",
+ "debug": "^4.4.3",
+ "ts-api-utils": "^2.5.0"
},
"engines": {
- "node": "^18.18.0 || >=20.0.0"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "eslint": "^8.56.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
+ "typescript": ">=4.8.4 <6.1.0"
}
},
"node_modules/@typescript-eslint/types": {
- "version": "7.18.0",
+ "version": "8.59.3",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.59.3.tgz",
+ "integrity": "sha512-ePFoH0g4ludssdRFqqDxQePCxU4WQyRa9+XVwjm7yLn0FKhMeoetC+qBEEI1Eyb1pGSDveTIT09Bvw2WhlGayg==",
"dev": true,
"license": "MIT",
"engines": {
- "node": "^18.18.0 || >=20.0.0"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"type": "opencollective",
@@ -4617,56 +5164,76 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "7.18.0",
+ "version": "8.59.3",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.59.3.tgz",
+ "integrity": "sha512-CbRjVRAf7Lr9Kr8RopKcbY45p2VfmmHrm0ygOCYFi7oU8q19m0Fs/6iHS7kNOmwpp+ob07ZVcAqlxUod9lYdmg==",
"dev": true,
- "license": "BSD-2-Clause",
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "7.18.0",
- "@typescript-eslint/visitor-keys": "7.18.0",
- "debug": "^4.3.4",
- "globby": "^11.1.0",
- "is-glob": "^4.0.3",
- "minimatch": "^9.0.4",
- "semver": "^7.6.0",
- "ts-api-utils": "^1.3.0"
+ "@typescript-eslint/project-service": "8.59.3",
+ "@typescript-eslint/tsconfig-utils": "8.59.3",
+ "@typescript-eslint/types": "8.59.3",
+ "@typescript-eslint/visitor-keys": "8.59.3",
+ "debug": "^4.4.3",
+ "minimatch": "^10.2.2",
+ "semver": "^7.7.3",
+ "tinyglobby": "^0.2.15",
+ "ts-api-utils": "^2.5.0"
},
"engines": {
- "node": "^18.18.0 || >=20.0.0"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "peerDependencies": {
+ "typescript": ">=4.8.4 <6.1.0"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
+ "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "18 || 20 || >=22"
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
- "version": "2.0.3",
+ "version": "5.0.6",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz",
+ "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "balanced-match": "^1.0.0"
+ "balanced-match": "^4.0.2"
+ },
+ "engines": {
+ "node": "18 || 20 || >=22"
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
- "version": "9.0.9",
+ "version": "10.2.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz",
+ "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==",
"dev": true,
- "license": "ISC",
+ "license": "BlueOak-1.0.0",
"dependencies": {
- "brace-expansion": "^2.0.2"
+ "brace-expansion": "^5.0.5"
},
"engines": {
- "node": ">=16 || 14 >=14.17"
+ "node": "18 || 20 || >=22"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
- "version": "7.6.3",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.0.tgz",
+ "integrity": "sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==",
"dev": true,
"license": "ISC",
"bin": {
@@ -4677,67 +5244,97 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "7.18.0",
+ "version": "8.59.3",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.59.3.tgz",
+ "integrity": "sha512-JAvT14goBzRzzzZyqq3P9BLArIxTtQURUtFgQ/V7FO+eU+Gg6ES+5ymOPP1wRxXcxAYeivCk4uS3jCKWI1K8Zg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@eslint-community/eslint-utils": "^4.4.0",
- "@typescript-eslint/scope-manager": "7.18.0",
- "@typescript-eslint/types": "7.18.0",
- "@typescript-eslint/typescript-estree": "7.18.0"
+ "@eslint-community/eslint-utils": "^4.9.1",
+ "@typescript-eslint/scope-manager": "8.59.3",
+ "@typescript-eslint/types": "8.59.3",
+ "@typescript-eslint/typescript-estree": "8.59.3"
},
"engines": {
- "node": "^18.18.0 || >=20.0.0"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "eslint": "^8.56.0"
+ "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
+ "typescript": ">=4.8.4 <6.1.0"
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "7.18.0",
+ "version": "8.59.3",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.59.3.tgz",
+ "integrity": "sha512-f1UQF7ggd42YiwI5wGrRaPsa+P0CINBlrkLPmGfpq/u/I/oVtecoEIfFR9ag/oa1sLOsRNZ6xehf6qMZhQGBDg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "7.18.0",
- "eslint-visitor-keys": "^3.4.3"
+ "@typescript-eslint/types": "8.59.3",
+ "eslint-visitor-keys": "^5.0.0"
},
"engines": {
- "node": "^18.18.0 || >=20.0.0"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
}
},
+ "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz",
+ "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^20.19.0 || ^22.13.0 || >=24"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
"node_modules/@ungap/structured-clone": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
"dev": true,
"license": "ISC"
},
"node_modules/@vitejs/plugin-react": {
- "version": "4.3.3",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.1.tgz",
+ "integrity": "sha512-l9X/E3cDb+xY3SWzlG1MOGt2usfEHGMNIaegaUGFsLkb3RCn/k8/TOXBcab+OndDI4TBtktT8/9BwwW8Vi9KUQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/core": "^7.25.2",
- "@babel/plugin-transform-react-jsx-self": "^7.24.7",
- "@babel/plugin-transform-react-jsx-source": "^7.24.7",
- "@types/babel__core": "^7.20.5",
- "react-refresh": "^0.14.2"
+ "@rolldown/pluginutils": "1.0.0-rc.7"
},
"engines": {
- "node": "^14.18.0 || >=16.0.0"
+ "node": "^20.19.0 || >=22.12.0"
},
"peerDependencies": {
- "vite": "^4.2.0 || ^5.0.0"
+ "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0",
+ "babel-plugin-react-compiler": "^1.0.0",
+ "vite": "^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@rolldown/plugin-babel": {
+ "optional": true
+ },
+ "babel-plugin-react-compiler": {
+ "optional": true
+ }
}
},
"node_modules/@vitest/expect": {
"version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz",
+ "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4753,6 +5350,8 @@
},
"node_modules/@vitest/expect/node_modules/@types/chai": {
"version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz",
+ "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4762,6 +5361,8 @@
},
"node_modules/@vitest/expect/node_modules/@vitest/pretty-format": {
"version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz",
+ "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4773,6 +5374,8 @@
},
"node_modules/@vitest/expect/node_modules/@vitest/utils": {
"version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz",
+ "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4786,6 +5389,8 @@
},
"node_modules/@vitest/expect/node_modules/assertion-error": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
+ "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4794,6 +5399,8 @@
},
"node_modules/@vitest/expect/node_modules/chai": {
"version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz",
+ "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4809,6 +5416,8 @@
},
"node_modules/@vitest/expect/node_modules/check-error": {
"version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz",
+ "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4817,6 +5426,8 @@
},
"node_modules/@vitest/expect/node_modules/deep-eql": {
"version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz",
+ "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4825,11 +5436,15 @@
},
"node_modules/@vitest/expect/node_modules/loupe": {
"version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz",
+ "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==",
"dev": true,
"license": "MIT"
},
"node_modules/@vitest/expect/node_modules/pathval": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz",
+ "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4838,47 +5453,18 @@
},
"node_modules/@vitest/expect/node_modules/tinyrainbow": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz",
+ "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=14.0.0"
}
},
- "node_modules/@vitest/mocker": {
- "version": "3.2.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vitest/spy": "3.2.4",
- "estree-walker": "^3.0.3",
- "magic-string": "^0.30.17"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- },
- "peerDependencies": {
- "msw": "^2.4.9",
- "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0"
- },
- "peerDependenciesMeta": {
- "msw": {
- "optional": true
- },
- "vite": {
- "optional": true
- }
- }
- },
- "node_modules/@vitest/mocker/node_modules/estree-walker": {
- "version": "3.0.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0"
- }
- },
"node_modules/@vitest/spy": {
"version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz",
+ "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4890,14 +5476,25 @@
},
"node_modules/@vladfrangu/async_event_emitter": {
"version": "2.4.7",
+ "resolved": "https://registry.npmjs.org/@vladfrangu/async_event_emitter/-/async_event_emitter-2.4.7.tgz",
+ "integrity": "sha512-Xfe6rpCTxSxfbswi/W/Pz7zp1WWSNn4A0eW4mLkQUewCrXXtMj31lCg+iQyTkh/CkusZSq9eDflu7tjEDXUY6g==",
"license": "MIT",
"engines": {
"node": ">=v14.0.0",
"npm": ">=7.0.0"
}
},
+ "node_modules/@webcontainer/env": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@webcontainer/env/-/env-1.1.1.tgz",
+ "integrity": "sha512-6aN99yL695Hi9SuIk1oC88l9o0gmxL1nGWWQ/kNy81HigJ0FoaoTXpytCj6ItzgyCEwA9kF1wixsTuv5cjsgng==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@xhayper/discord-rpc": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@xhayper/discord-rpc/-/discord-rpc-1.3.0.tgz",
+ "integrity": "sha512-0NmUTiODl7u3UEjmO6y0Syp3dmgVLAt2EHrH4QKTQcXRwtF8Wl7Eipdn/GSSZ8HkDwxQFvcDGJMxT9VWB0pH8g==",
"license": "ISC",
"dependencies": {
"@discordjs/rest": "^2.5.1",
@@ -4911,10 +5508,14 @@
},
"node_modules/@yarnpkg/lockfile": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz",
+ "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==",
"license": "BSD-2-Clause"
},
"node_modules/@zag-js/accordion": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/accordion/-/accordion-1.35.3.tgz",
+ "integrity": "sha512-wmw6yo5Zr6ShiKGTc5ICEOJCurWAOSGubIpGISiHi3cZ4tlxKF/vpATIUT3eq8xzdB56YK57yKCujs/WmwqqoA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4927,11 +5528,15 @@
},
"node_modules/@zag-js/anatomy": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/anatomy/-/anatomy-1.35.3.tgz",
+ "integrity": "sha512-oqU9iLNNylrtJMBX5Xu4DsxnPNvtZLiobryv2oNtsDI1mi1Fca/XHghQC9K5aYT0qNsmHj1M3W5WAWTaOtPLkQ==",
"dev": true,
"license": "MIT"
},
"node_modules/@zag-js/angle-slider": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/angle-slider/-/angle-slider-1.35.3.tgz",
+ "integrity": "sha512-HXRlmsbNEJSBT53fq9XQKL/vwZWwJC3nprskI7s4f/jy8a4uXPTlv7N7zuBYjew+ScTMzZah6fLWzUztBehmSg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4945,6 +5550,8 @@
},
"node_modules/@zag-js/aria-hidden": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/aria-hidden/-/aria-hidden-1.35.3.tgz",
+ "integrity": "sha512-dk5POebn10WneQfLrEgbTzwolaXWpCSHL6F3jCTinW9IbOx7BXghzJD21iU5Iun+y9CorqJPW3p7LplYNUMO5Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4953,6 +5560,8 @@
},
"node_modules/@zag-js/async-list": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/async-list/-/async-list-1.35.3.tgz",
+ "integrity": "sha512-SXX3wGzLK/maKS1PJ3XfLIGWbu0022f/OhcFsT1PbiHnoFZTH7h2fBhirrCBfy2TYFQ6r5uxgjkhPUNkuaeYnA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4962,6 +5571,8 @@
},
"node_modules/@zag-js/auto-resize": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/auto-resize/-/auto-resize-1.35.3.tgz",
+ "integrity": "sha512-ufG8HSqzLd9h5rnos8aumj8iORlRskeR/gbpJu1NHrnHBWIrpuXm6KJJR2oZhTFY1BUMMk8eYIBA2QkVuiJzWA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4970,6 +5581,8 @@
},
"node_modules/@zag-js/avatar": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/avatar/-/avatar-1.35.3.tgz",
+ "integrity": "sha512-lbQ2Q4Va8AAScKULOHw2tCQez+0JRYGHSMFq6i+dJmeT3dlSgRanm69ra6K2po6hM9E4v6pRe+xOVE+9QMDnuA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4982,6 +5595,8 @@
},
"node_modules/@zag-js/carousel": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/carousel/-/carousel-1.35.3.tgz",
+ "integrity": "sha512-F+b8HzUeZfB+xUkAkLG4r0Ubui8pj7pSgZhi26ZiWgsM7tsd7cD+xRMXkvPEITN5Fd5QCe3KlVBuE00w5byjmg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4995,6 +5610,8 @@
},
"node_modules/@zag-js/cascade-select": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/cascade-select/-/cascade-select-1.35.3.tgz",
+ "integrity": "sha512-Nifdx77hEuAdXqr1wpZSPjLXqygRhq/WvnPjGhCeSqFPpy62uT4JZ3avyjUZ4I0UhvIpkleUcXtFwQ3cSMh4ww==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5012,6 +5629,8 @@
},
"node_modules/@zag-js/checkbox": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/checkbox/-/checkbox-1.35.3.tgz",
+ "integrity": "sha512-8XBt/Wg2zSQWqV2ZFqZBQUjYRkOYHA2O3IEi0VVYtds3S1n7Pu/HqkZT5qDw+E/SY2+X9Uyx4hO7h2XrlsiZQQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5025,6 +5644,8 @@
},
"node_modules/@zag-js/clipboard": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/clipboard/-/clipboard-1.35.3.tgz",
+ "integrity": "sha512-obTwynBpp6c17fLHe5tg//FQ497QsyCEry+K3bTdlrivWW200wvfHxZ6RKVbKwDAwhH+ye0bI1xkYAId8j7sdA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5037,6 +5658,8 @@
},
"node_modules/@zag-js/collapsible": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/collapsible/-/collapsible-1.35.3.tgz",
+ "integrity": "sha512-IweG8JOBCerJwLO6QzTZGEMlsYUmQfQSeD0jniFguMM8vcunvGVSrM+AaL8pDbmXd+snXokaGyJpGO3vzMW6Fw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5049,6 +5672,8 @@
},
"node_modules/@zag-js/collection": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/collection/-/collection-1.35.3.tgz",
+ "integrity": "sha512-BYoWJ4b7ma2PgiuQbRSnP603f2DlK6se5JtViUHTamZScLLLWnWHuQ6zFa1KS5kiIkbb7CFM6/bJ3WNYLch8Ig==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5057,6 +5682,8 @@
},
"node_modules/@zag-js/color-picker": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/color-picker/-/color-picker-1.35.3.tgz",
+ "integrity": "sha512-i9roSgtqeA1b4Q+jWqnxjXB//BQXMP5m1FQ4YcZVq/0yT14A53JIknchuqrh3wC3yPsJMXFqCoKg+NET2+OVig==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5072,6 +5699,8 @@
},
"node_modules/@zag-js/color-utils": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/color-utils/-/color-utils-1.35.3.tgz",
+ "integrity": "sha512-vxkEVgz4YdSbdaPvjiRI1VsJAdwzu/dUNvzqOaiVcPDrHr/FFgmUbv0SOFjnfSb2QWGI8EDEMn02RW9ym+BzGw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5080,6 +5709,8 @@
},
"node_modules/@zag-js/combobox": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/combobox/-/combobox-1.35.3.tgz",
+ "integrity": "sha512-s1qmttTGJTMjlDakL+uvWSEggpafKr1vhOeZCh8j+N4eFt9bLAwaffjuh/1JzWBvzovw7WoMVkizdTXPlN8oYg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5097,6 +5728,8 @@
},
"node_modules/@zag-js/core": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/core/-/core-1.35.3.tgz",
+ "integrity": "sha512-fGAHyqOYSEFmo52t7wI4dvbFfLyJmUlyf7wknsiUlzUHlrn3yv5PAZYZ2TibpOD1hwXIp4AoCjbiIPPZBxirZw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5106,6 +5739,8 @@
},
"node_modules/@zag-js/date-picker": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/date-picker/-/date-picker-1.35.3.tgz",
+ "integrity": "sha512-4G10h6pzzLbd84SE2CKtqi6Z9wEBhSyx4GRSxxy3tsf5wAxnz4anRFat9CGwn2YVUYcUJpD+umYgBMPt6zGDnA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5125,6 +5760,8 @@
},
"node_modules/@zag-js/date-utils": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/date-utils/-/date-utils-1.35.3.tgz",
+ "integrity": "sha512-1co0FPpZ6nO5dN8sZtECkMYaf+3E5zu0KSIJZpZiXb4TgsZMDyHu7K7IsiKFHk9qmhuF6AdPpNxBju91pSXMFg==",
"dev": true,
"license": "MIT",
"peerDependencies": {
@@ -5133,6 +5770,8 @@
},
"node_modules/@zag-js/dialog": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/dialog/-/dialog-1.35.3.tgz",
+ "integrity": "sha512-byosV+aBHH5LoFKnjEgC7WdqJid7bP9UhgWLSC7+IXbxrif9Czg1YVp6ZlQM6Nx6uD1vnty4touI3P7D7CTKcw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5149,6 +5788,8 @@
},
"node_modules/@zag-js/dismissable": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/dismissable/-/dismissable-1.35.3.tgz",
+ "integrity": "sha512-XPk+lqmsZp2Z1yMb5K1yj/e7Sobv4D7zK66B1GS97lk9Xzz8vuSgsimcLy0p7RXQl3KL6H5L69inSuQa2exybQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5159,6 +5800,8 @@
},
"node_modules/@zag-js/dom-query": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/dom-query/-/dom-query-1.35.3.tgz",
+ "integrity": "sha512-1RbFZoT4CjlHN9TUNse1++ZVOyKo45ktucTIT349o6HMsoWWKmTJDPvFkMBbmu/qY6XXn4dT+LJEp4bL3DR+Qw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5167,6 +5810,8 @@
},
"node_modules/@zag-js/drawer": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/drawer/-/drawer-1.35.3.tgz",
+ "integrity": "sha512-DN5bwa7bDCDaUSbNzFxMc2U/WmbLcXvPSQjyOpKI6CC3VbW2kKaOnjJ5qQG+W5YBO0FpmJBtaxRV7lke4sZH2w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5183,6 +5828,8 @@
},
"node_modules/@zag-js/editable": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/editable/-/editable-1.35.3.tgz",
+ "integrity": "sha512-HcjeacS61vQXfNT9IalZj/+oS45yW5bIDO2NjJWV7zNe5AG29NCceUnvBhy+hrUKPnKcjfDocdW5rCL+Lvs/CQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5196,6 +5843,8 @@
},
"node_modules/@zag-js/file-upload": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/file-upload/-/file-upload-1.35.3.tgz",
+ "integrity": "sha512-oIYwnDct4ERo2mfmcxsBIJnlmpzjrzYx82SQsXWD3NGKx3cgdh2lwBX+ebItaLH1jkgzBa3z0TWxc6rfvcUXbw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5210,6 +5859,8 @@
},
"node_modules/@zag-js/file-utils": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/file-utils/-/file-utils-1.35.3.tgz",
+ "integrity": "sha512-Tb05RCzx4swc156hd4jLiO7z+Gxg/HQ+JCds03jgTbrFJAz2D56YaMeI7gSDc1m4Xre3nyqQpSo9AeX5nzbE/w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5218,6 +5869,8 @@
},
"node_modules/@zag-js/floating-panel": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/floating-panel/-/floating-panel-1.35.3.tgz",
+ "integrity": "sha512-nTZypcS0X46Oo1kpCQTnP5UlzjhypOAj3B4dq2z/3bAOC0TntYTnFkj8PbEJtExk7364xfMyxfgZOiv7Aqq01w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5233,6 +5886,8 @@
},
"node_modules/@zag-js/focus-trap": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/focus-trap/-/focus-trap-1.35.3.tgz",
+ "integrity": "sha512-evErLlGFdDVCI8xipNS5k0rAvO+KFRA9g273bbfWAL1+mT54mcB/XHa85nC3QpPgMNrSh+6LUNq9fapyOGoyYg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5241,6 +5896,8 @@
},
"node_modules/@zag-js/focus-visible": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/focus-visible/-/focus-visible-1.35.3.tgz",
+ "integrity": "sha512-g4F8PRGIoFoKBrHiQ1HQh5AjCS7brFRXHvpbDNb9+T11FGlF5Turb+6OVRoNV8MmiuqMltO2I28l36YsGc//uQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5249,11 +5906,15 @@
},
"node_modules/@zag-js/highlight-word": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/highlight-word/-/highlight-word-1.35.3.tgz",
+ "integrity": "sha512-K+mvEBbf3SUFjQeMeJQYb3cjri3x6sPaPhcKWayalelSLB/StWEGqcpmz+a6uUYrCUAK5kEi3Hn0YLGfn0GOig==",
"dev": true,
"license": "MIT"
},
"node_modules/@zag-js/hover-card": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/hover-card/-/hover-card-1.35.3.tgz",
+ "integrity": "sha512-xVoKOtvrnzhYzciZ1csgiV76IQ4DRtx1lsJeFSrfg5MH0kYWeC/pcmm3yCd2+Qh/45J7DbSXeZneqxpyiF5Vvw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5268,6 +5929,8 @@
},
"node_modules/@zag-js/i18n-utils": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/i18n-utils/-/i18n-utils-1.35.3.tgz",
+ "integrity": "sha512-k7UcNxbnC2jvGwCoHYAkFD3ZaRSMQNVHfuy8TujZQ+ci3IJovwgWLveZoRfFbXHkTLfhmbpE2tFXBdpwOVZutg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5276,6 +5939,8 @@
},
"node_modules/@zag-js/image-cropper": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/image-cropper/-/image-cropper-1.35.3.tgz",
+ "integrity": "sha512-1PH6bg8JAQESHzNqjka2TJ0QGNBGBAO6rb7AZ+9CaCCLw0pIzbUJhqPMkwd9GhdWGKGP+e7wFitnjcT4W5Js8g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5288,6 +5953,8 @@
},
"node_modules/@zag-js/interact-outside": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/interact-outside/-/interact-outside-1.35.3.tgz",
+ "integrity": "sha512-tOcuo/IztzpU7UKXtjVrLZtXzzcbhP4n2WynKwDRkTkq3mRCp61xXJp1csIBycI3JHm/CMeAEcPdRIioxIT/Zw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5297,11 +5964,15 @@
},
"node_modules/@zag-js/json-tree-utils": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/json-tree-utils/-/json-tree-utils-1.35.3.tgz",
+ "integrity": "sha512-nOv2dPJf+1mxsobYiSlYt96hR1MK7iHKG1iDLoO5wLggS6GQA3ix1BerHJK0zdehoEZ71R45el5ghCG1HB9VzQ==",
"dev": true,
"license": "MIT"
},
"node_modules/@zag-js/listbox": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/listbox/-/listbox-1.35.3.tgz",
+ "integrity": "sha512-FE6FOuBr6aWtOb8U8oDvAvcUzD6JKLXAe8WngiLFG+b2yyW4nlaz2AcKRG1bjjB066UMxMo9/+2p4D0Kf5Id1Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5316,11 +5987,15 @@
},
"node_modules/@zag-js/live-region": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/live-region/-/live-region-1.35.3.tgz",
+ "integrity": "sha512-64rWcfggYpyr2Fn4pdrB/lljMgm3quwn9is+vdDN85Vv3WShKWoz08T4njidm0hwcIbzas0bRqQYWDLLsAoSJQ==",
"dev": true,
"license": "MIT"
},
"node_modules/@zag-js/marquee": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/marquee/-/marquee-1.35.3.tgz",
+ "integrity": "sha512-bKZVpmAJWPDORP7WOWnS+65W5ZQBQmRs8zvV33ZfCpFbkXjhRiqKSzIj223/VOc2NEDjyWagz2vioAxrFYVzww==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5333,6 +6008,8 @@
},
"node_modules/@zag-js/menu": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/menu/-/menu-1.35.3.tgz",
+ "integrity": "sha512-KyY0EZXkIU57Mjt+Lg+pupiePk3LcnQcB3Gl05Vva61bNjBjdKV71qwCQru/OxPZEwYgPo46L7TDIb56kfK/VQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5349,6 +6026,8 @@
},
"node_modules/@zag-js/navigation-menu": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/navigation-menu/-/navigation-menu-1.35.3.tgz",
+ "integrity": "sha512-8cCHx0X/KjEpr2BaMOxJS5LiA6fs/CNqVTF/sTTgZAv7Dm+MH0yNuKm4kpPvcLaVeBpVE09bnyCHrNKzZes+Fw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5362,6 +6041,8 @@
},
"node_modules/@zag-js/number-input": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/number-input/-/number-input-1.35.3.tgz",
+ "integrity": "sha512-uqawVybAcLcefVEHMVONuAA5kDSDPP5TsROr5PnAyFlhM1iD85+r3KAfCueoDX5w2X4ibbu9o2tdV6zTFKD/nQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5375,6 +6056,8 @@
},
"node_modules/@zag-js/pagination": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/pagination/-/pagination-1.35.3.tgz",
+ "integrity": "sha512-fKm4s5KAd12RiCI/EDmmGKjPQ+i2qS/UsJPdMe65yb/4mY5OibwV2zyHcVeFsOD4gBZpnU6kYlDAGSttmLWLlQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5387,6 +6070,8 @@
},
"node_modules/@zag-js/password-input": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/password-input/-/password-input-1.35.3.tgz",
+ "integrity": "sha512-etd0gm6ELAm3y+cFhPU+TYm8khm9cL5Mg5m2DcZxu1Mqpj7JY0LsXZ8SFOdCZgTIHuMEhKBiYfnuyMAd4CJztA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5399,6 +6084,8 @@
},
"node_modules/@zag-js/pin-input": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/pin-input/-/pin-input-1.35.3.tgz",
+ "integrity": "sha512-ZFt+WIHMdVlSg29BrQLFq5ijabiUO3tXMhoKhjjzTSe/tLqfNeu3UxFB6y/FYpn8+Cvn6xwvhu3lgnORYmI0zQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5411,6 +6098,8 @@
},
"node_modules/@zag-js/popover": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/popover/-/popover-1.35.3.tgz",
+ "integrity": "sha512-+MIEENPsbKPxzoNuDI/C5d5ZN9uxnfZ+MBDc5C5XSgjjg9FcvMXClNq7IFM1aZi24peRXg9cMNf//lApVRT37w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5428,6 +6117,8 @@
},
"node_modules/@zag-js/popper": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/popper/-/popper-1.35.3.tgz",
+ "integrity": "sha512-gpB7Xn9WtlfrUsIVbSgNQGDwgNOL/cSGt0Id3wEQKArmqVC704EWtPvXzOMMybBEdm8YW2hQrXuo+o66abI1Sg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5438,6 +6129,8 @@
},
"node_modules/@zag-js/presence": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/presence/-/presence-1.35.3.tgz",
+ "integrity": "sha512-ev5E7+U9IZAGvEaflpdVLHaZl8ZaQMhGB3ypd0yKhPwXeM51obV8w3+5HjzTqHPl8TKuoHWL31YaiUBd5EuS6w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5448,6 +6141,8 @@
},
"node_modules/@zag-js/progress": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/progress/-/progress-1.35.3.tgz",
+ "integrity": "sha512-u0GxQN1AfXMAgzYOUMxKQA12DyuAP0svh2S//KvOorTSv7d5hAa8nZXi2cEv5abYsyfKJ6/bc1Z56byzW1jVZw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5460,6 +6155,8 @@
},
"node_modules/@zag-js/qr-code": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/qr-code/-/qr-code-1.35.3.tgz",
+ "integrity": "sha512-t0Ehwogr49vTNtWyNdQU2tYex7uJyfAn7N/5LgD7FXw8aa+RBMWZWlqjCUvHqJ929tVMrn+LIrQnZCcwNunalA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5474,6 +6171,8 @@
},
"node_modules/@zag-js/radio-group": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/radio-group/-/radio-group-1.35.3.tgz",
+ "integrity": "sha512-kOzocjqWk3dXuRfyfsHwfw63Z99NHbc7rvVUutSsfXANXi+DFYZHuqdPUwMt+29LfaL15XTOfuGV+yUXDCgQHQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5487,6 +6186,8 @@
},
"node_modules/@zag-js/rating-group": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/rating-group/-/rating-group-1.35.3.tgz",
+ "integrity": "sha512-BmhJZdbaTnd3nFWMY+nR+HF952UhWXfaXXxiBWptSLMBfAYImQTWBMrLgTHCSnVfmFATj4Gb7xQe79FQU8T5fA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5499,6 +6200,8 @@
},
"node_modules/@zag-js/react": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/react/-/react-1.35.3.tgz",
+ "integrity": "sha512-x2PxYUCQ6OgOpUdmSkG5tbL9JWVqYRh42r4V2UeAdMh0MRwjAJtxjvAy50DZ8Sfia5o4UGdZMXJyDY2O7Pdhyw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5514,11 +6217,15 @@
},
"node_modules/@zag-js/rect-utils": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/rect-utils/-/rect-utils-1.35.3.tgz",
+ "integrity": "sha512-mt/oD3RXdyaX6ZPSd8BO13vvPBJ7QpVWieubE3O0WM3OPhU7ykDMRp/tR7cYMQrzUm04GlY9pbkmSSw2uABxlA==",
"dev": true,
"license": "MIT"
},
"node_modules/@zag-js/remove-scroll": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/remove-scroll/-/remove-scroll-1.35.3.tgz",
+ "integrity": "sha512-e59z9SbEpPiw0qwNQa2cB5/h30ZCLREaHsCw1TKTANFhwg7v85k9Lq1H/G/49li1CAjmiaOU9BNGlDvbzpNETQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5527,6 +6234,8 @@
},
"node_modules/@zag-js/scroll-area": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/scroll-area/-/scroll-area-1.35.3.tgz",
+ "integrity": "sha512-IQwdUws/AckRIHK1z/wHdHurnOeGd8h8Dmspfh3VT7NkwTnxeJ4SW9di9smuD+d25eXkJRuX5zGEDHAyx2IaPQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5539,6 +6248,8 @@
},
"node_modules/@zag-js/scroll-snap": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/scroll-snap/-/scroll-snap-1.35.3.tgz",
+ "integrity": "sha512-NVa2yRm2DQnF6hTV9k7Xz7l8YCZBagZTiqSwNvWKUulKD1csjt2fpBxvUt2cK+1iQnLOey2ydhs7MMsAnXPbJA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5547,6 +6258,8 @@
},
"node_modules/@zag-js/select": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/select/-/select-1.35.3.tgz",
+ "integrity": "sha512-ztszGHWvlbBDE0YT5LYPH+sMd6VH1ct5pH/M9VSzIUO6C5PARkW0NwSVQ1rCQJMj4sfvSE1gC1/r7urRzqEcUQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5563,6 +6276,8 @@
},
"node_modules/@zag-js/signature-pad": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/signature-pad/-/signature-pad-1.35.3.tgz",
+ "integrity": "sha512-jvtxxzAQ8fre11zWUh6HflG4Ycr5z83Wba4pONRJbUE/vNgkJQ7yJgfyUl1QTlkn8Arfg2Zwoxu9GIq80HLZWg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5576,6 +6291,8 @@
},
"node_modules/@zag-js/slider": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/slider/-/slider-1.35.3.tgz",
+ "integrity": "sha512-Th142JO4Fqla5AWhGrTW6CQicwvTw87PdVpur/WotQ7brlZIww5HipzEMh5eQJSWfwpKD4PI2bYK9V/ZE/mpXA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5588,6 +6305,8 @@
},
"node_modules/@zag-js/splitter": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/splitter/-/splitter-1.35.3.tgz",
+ "integrity": "sha512-IsIbRwzjr5amGANEDsZDSToaSn8wHUWvS2l0XHmf3BiiguVApaZgQTlfqthVQC9hBHMOaGIXIW1CFUOrQYkvUQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5600,6 +6319,8 @@
},
"node_modules/@zag-js/steps": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/steps/-/steps-1.35.3.tgz",
+ "integrity": "sha512-TYIrqV+v9/ULhvrTRBtQFFvJQPPTWOmjFXxlIxDwozek5R4dCIyeUYt1/ChJEc2mNETocbfDVSTxRO1dwCFpwQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5612,6 +6333,8 @@
},
"node_modules/@zag-js/store": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/store/-/store-1.35.3.tgz",
+ "integrity": "sha512-7kEV4T/20DU36UIfVMzuDlLhWSSEy/vabmpiB700tcdD9BBBODTiSg3ZeljW17dQbvE545vZOFEjVf/cQ5LVGA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5620,6 +6343,8 @@
},
"node_modules/@zag-js/switch": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/switch/-/switch-1.35.3.tgz",
+ "integrity": "sha512-EP/2cJ46sd+6C5x5+89jn/9NOpM05CRESYB4RMhOnTe/WFtcS4IpiYtVHFhikdXkvJoibm67O2EHep2Pm/Xj4w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5633,6 +6358,8 @@
},
"node_modules/@zag-js/tabs": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/tabs/-/tabs-1.35.3.tgz",
+ "integrity": "sha512-lZKlDmxE25miCikj9QZCCnL02SVV2K14KZy5bn7+XDgrWlfSNTpNTj8r5E3zGlSgio5pkTGou57ASqS7WaPDWg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5645,6 +6372,8 @@
},
"node_modules/@zag-js/tags-input": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/tags-input/-/tags-input-1.35.3.tgz",
+ "integrity": "sha512-HqyoQ3DZFhByOGnDShFfxi6u0bIf7aSVTlwmAvcL+b2ZhyU6/wIMGc4WJE7BMx1NYWM/jNLHedvGExAI8R0kXQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5660,6 +6389,8 @@
},
"node_modules/@zag-js/timer": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/timer/-/timer-1.35.3.tgz",
+ "integrity": "sha512-edmgitbRgsq+msxvVB4wc17Q5d5k63zMWaLJnWjUdDGAgEtM6/HNxwGb3riv46S2U3RgYxaaHTNZ/M7EE5mvYw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5672,6 +6403,8 @@
},
"node_modules/@zag-js/toast": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/toast/-/toast-1.35.3.tgz",
+ "integrity": "sha512-whlR791GHdnMD21nNPsl2Dbql8+qu1wBZl75QzwYrjR8FlKjp8bhr3gXKzQEddcBXe9GPEFGvUs4iCyXsuTbpg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5685,6 +6418,8 @@
},
"node_modules/@zag-js/toggle": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/toggle/-/toggle-1.35.3.tgz",
+ "integrity": "sha512-aFfHKuR4sKzglhkmWLA+0RTNPs9dfeqwtc96qljawGYfAYWJXkEPYK9dFfVa+arZ7L84xBi24QSLiTg7LGSFLw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5697,6 +6432,8 @@
},
"node_modules/@zag-js/toggle-group": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/toggle-group/-/toggle-group-1.35.3.tgz",
+ "integrity": "sha512-Gn6JHzkQ4tlttjZcE0ZjIdxYkFeVp9VHrcMVizjJTkGZRmQ+kPZ5G/wOsZhIrvLX3Dw6Y0NkuBcP+jDHz/o3TA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5709,6 +6446,8 @@
},
"node_modules/@zag-js/tooltip": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/tooltip/-/tooltip-1.35.3.tgz",
+ "integrity": "sha512-/pImDGYl79MfLdvEphj3rSvNdj2tLW4GwGEncgdLM/GKwQiEUjfi/9EJOfLYP23M4lOOnoW7orehJ9xeaXOAkA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5723,6 +6462,8 @@
},
"node_modules/@zag-js/tour": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/tour/-/tour-1.35.3.tgz",
+ "integrity": "sha512-DI2aCXmZaE9KcPZDs9itc2BO7ixLApJ/yVRfM69pXwVOrucdSeDDNPFkfbhj5XwB+9VjjZEkqWFHKntRIyPl5g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5739,6 +6480,8 @@
},
"node_modules/@zag-js/tree-view": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/tree-view/-/tree-view-1.35.3.tgz",
+ "integrity": "sha512-DbHaLxSNa1goE3o3IsXxEdzp8P5dvmkk1rVWgNUUIhpA+44idEjSSNXJkHPl18Mk5blqSMVjK1EX91oqai01Vw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5752,6 +6495,8 @@
},
"node_modules/@zag-js/types": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/types/-/types-1.35.3.tgz",
+ "integrity": "sha512-Fnm3AMs1lfb55hlkip/eJeWHOjFB3gSi1JkZlkkdltG2l7y/zsHkumPSe6jIKy+DRRIFKRCyXVTatbPN27bO3w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5760,11 +6505,15 @@
},
"node_modules/@zag-js/utils": {
"version": "1.35.3",
+ "resolved": "https://registry.npmjs.org/@zag-js/utils/-/utils-1.35.3.tgz",
+ "integrity": "sha512-LHcC+9y6TFhDsIz9I3koYxONl2JFfx5yQDzc6ZEQO2cqzXedRcN0R9IPqNGCX7JuhGt14ctDkVCm1JWGP2J6Wg==",
"dev": true,
"license": "MIT"
},
"node_modules/abort-controller": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
+ "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
"license": "MIT",
"dependencies": {
"event-target-shim": "^5.0.0"
@@ -5819,6 +6568,8 @@
},
"node_modules/acorn": {
"version": "8.16.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz",
+ "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
"license": "MIT",
"bin": {
"acorn": "bin/acorn"
@@ -5829,6 +6580,8 @@
},
"node_modules/acorn-jsx": {
"version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
"dev": true,
"license": "MIT",
"peerDependencies": {
@@ -5837,6 +6590,8 @@
},
"node_modules/address": {
"version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz",
+ "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==",
"license": "MIT",
"engines": {
"node": ">= 10.0.0"
@@ -5844,6 +6599,8 @@
},
"node_modules/agent-base": {
"version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz",
+ "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==",
"license": "MIT",
"engines": {
"node": ">= 14"
@@ -5851,6 +6608,8 @@
},
"node_modules/ajv": {
"version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
+ "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
"license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.3",
@@ -5865,6 +6624,8 @@
},
"node_modules/ajv-formats": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz",
+ "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==",
"license": "MIT",
"dependencies": {
"ajv": "^8.0.0"
@@ -5879,12 +6640,16 @@
}
},
"node_modules/anser": {
- "version": "2.3.0",
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/anser/-/anser-2.3.5.tgz",
+ "integrity": "sha512-vcZjxvvVoxTeR5XBNJB38oTu/7eDCZlwdz32N1eNgpyPF7j/Z7Idf+CUwQOkKKpJ7RJyjxgLHCM7vdIK0iCNMQ==",
"dev": true,
"license": "MIT"
},
"node_modules/ansi-colors": {
"version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
+ "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -5893,6 +6658,8 @@
},
"node_modules/ansi-escapes": {
"version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5907,6 +6674,8 @@
},
"node_modules/ansi-escapes/node_modules/type-fest": {
"version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
"dev": true,
"license": "(MIT OR CC0-1.0)",
"engines": {
@@ -5918,6 +6687,8 @@
},
"node_modules/ansi-regex": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"license": "MIT",
"engines": {
"node": ">=8"
@@ -5925,6 +6696,8 @@
},
"node_modules/ansi-styles": {
"version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
@@ -5936,8 +6709,26 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
+ "node_modules/ansi-to-react": {
+ "version": "6.2.6",
+ "resolved": "https://registry.npmjs.org/ansi-to-react/-/ansi-to-react-6.2.6.tgz",
+ "integrity": "sha512-Eqi0iaMK5OZ3jsVFxWvU2B74UZBnGuHlkflKMX6wTOeH+luy9KE2O0gUkc2PxhIP1R4IO0xohv62UMFInQOSeg==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "anser": "^2.3.2",
+ "escape-carriage": "^1.3.1",
+ "linkify-it": "^3.0.3"
+ },
+ "peerDependencies": {
+ "react": "^16.3.2 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.3.2 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
"node_modules/anymatch": {
"version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -5950,31 +6741,31 @@
},
"node_modules/argparse": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
"dev": true,
"license": "Python-2.0"
},
"node_modules/aria-query": {
"version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
+ "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"dequal": "^2.0.3"
}
},
- "node_modules/array-union": {
- "version": "2.1.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/asap": {
"version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==",
"license": "MIT"
},
"node_modules/assertion-error": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -5983,6 +6774,8 @@
},
"node_modules/ast-types": {
"version": "0.14.2",
+ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz",
+ "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5994,10 +6787,14 @@
},
"node_modules/asynckit": {
"version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
"license": "MIT"
},
"node_modules/atomic-sleep": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz",
+ "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==",
"license": "MIT",
"engines": {
"node": ">=8.0.0"
@@ -6042,6 +6839,8 @@
},
"node_modules/avahi-browse": {
"version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/avahi-browse/-/avahi-browse-1.1.4.tgz",
+ "integrity": "sha512-Ga/GFmaULwyN61aRX703ZZv0kAMhLcuNpUe+T/WZJa7/xvhlh0YBJe1eQcsRE1xLKgrVK0XJgkQyDpoKksczHg==",
"license": "ISC",
"dependencies": {
"debug": "^3.1.0",
@@ -6050,6 +6849,8 @@
},
"node_modules/avahi-browse/node_modules/debug": {
"version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"license": "MIT",
"dependencies": {
"ms": "^2.1.1"
@@ -6057,10 +6858,14 @@
},
"node_modules/await-lock": {
"version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/await-lock/-/await-lock-2.2.2.tgz",
+ "integrity": "sha512-aDczADvlvTGajTDjcjpJMqRkOF6Qdz3YbPZm/PyW6tKPkx2hlYBzxMhEywM/tU72HrVZjgl5VCdRuMlA7pZ8Gw==",
"license": "MIT"
},
"node_modules/axe-core": {
"version": "4.11.1",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.11.1.tgz",
+ "integrity": "sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A==",
"dev": true,
"license": "MPL-2.0",
"engines": {
@@ -6068,17 +6873,21 @@
}
},
"node_modules/axios": {
- "version": "1.14.0",
+ "version": "1.16.0",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.16.0.tgz",
+ "integrity": "sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w==",
"license": "MIT",
"peer": true,
"dependencies": {
- "follow-redirects": "^1.15.11",
+ "follow-redirects": "^1.16.0",
"form-data": "^4.0.5",
"proxy-from-env": "^2.1.0"
}
},
"node_modules/axios/node_modules/form-data": {
"version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
+ "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
"license": "MIT",
"peer": true,
"dependencies": {
@@ -6094,6 +6903,8 @@
},
"node_modules/babel-plugin-macros": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz",
+ "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6108,10 +6919,14 @@
},
"node_modules/balanced-match": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"license": "MIT"
},
"node_modules/base64-arraybuffer-es6": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/base64-arraybuffer-es6/-/base64-arraybuffer-es6-3.1.0.tgz",
+ "integrity": "sha512-QKKtftiSrKjilihGNLXxnrb9LJj7rnEdB1cYAqVpekFy0tisDklAf1RAgvpm0HsGYx9sv7FUbgpsrfwTyCPVLg==",
"license": "MIT",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -6119,6 +6934,8 @@
},
"node_modules/base64-js": {
"version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
"funding": [
{
"type": "github",
@@ -6137,6 +6954,8 @@
},
"node_modules/base64url": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz",
+ "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==",
"license": "MIT",
"engines": {
"node": ">=6.0.0"
@@ -6157,6 +6976,8 @@
},
"node_modules/better-sse": {
"version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/better-sse/-/better-sse-0.8.0.tgz",
+ "integrity": "sha512-ymOse8R0L+R2S1W85yOGkkc+yTzAmo52S4erjxPyBVwpqjpS+X228BG7hDwgKsGV/D51YhCYd+eaDwJ+sL5JhA==",
"license": "MIT",
"engines": {
"node": ">=12",
@@ -6165,6 +6986,8 @@
},
"node_modules/bignumber.js": {
"version": "9.1.2",
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz",
+ "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==",
"license": "MIT",
"engines": {
"node": "*"
@@ -6172,6 +6995,8 @@
},
"node_modules/binary-extensions": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6183,10 +7008,14 @@
},
"node_modules/bintrees": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.2.tgz",
+ "integrity": "sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==",
"license": "MIT"
},
"node_modules/body-parser": {
"version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz",
+ "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==",
"license": "MIT",
"dependencies": {
"bytes": "^3.1.2",
@@ -6209,6 +7038,8 @@
},
"node_modules/brace-expansion": {
"version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
+ "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6218,6 +7049,8 @@
},
"node_modules/braces": {
"version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"license": "MIT",
"dependencies": {
"fill-range": "^7.1.1"
@@ -6228,6 +7061,8 @@
},
"node_modules/browser-stdout": {
"version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
+ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
"dev": true,
"license": "ISC"
},
@@ -6267,6 +7102,8 @@
},
"node_modules/buffer": {
"version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
"funding": [
{
"type": "github",
@@ -6289,14 +7126,20 @@
},
"node_modules/buffer-equal-constant-time": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
+ "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==",
"license": "BSD-3-Clause"
},
"node_modules/buffer-from": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
"license": "MIT"
},
"node_modules/bundle-name": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz",
+ "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6311,6 +7154,8 @@
},
"node_modules/bytes": {
"version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
"license": "MIT",
"engines": {
"node": ">= 0.8"
@@ -6318,6 +7163,8 @@
},
"node_modules/cacheable": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-1.10.4.tgz",
+ "integrity": "sha512-Gd7ccIUkZ9TE2odLQVS+PDjIvQCdJKUlLdJRVvZu0aipj07Qfx+XIej7hhDrKGGoIxV5m5fT/kOJNJPQhQneRg==",
"license": "MIT",
"dependencies": {
"hookified": "^1.11.0",
@@ -6326,6 +7173,8 @@
},
"node_modules/cacheable-lookup": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz",
+ "integrity": "sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==",
"license": "MIT",
"dependencies": {
"@types/keyv": "^3.1.1",
@@ -6337,6 +7186,8 @@
},
"node_modules/cacheable-lookup/node_modules/keyv": {
"version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
"license": "MIT",
"dependencies": {
"json-buffer": "3.0.1"
@@ -6344,6 +7195,8 @@
},
"node_modules/cacheable-request": {
"version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz",
+ "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==",
"license": "MIT",
"dependencies": {
"clone-response": "^1.0.2",
@@ -6360,6 +7213,8 @@
},
"node_modules/cacheable-request/node_modules/keyv": {
"version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
"license": "MIT",
"dependencies": {
"json-buffer": "3.0.1"
@@ -6367,6 +7222,8 @@
},
"node_modules/cacheable-request/node_modules/normalize-url": {
"version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
+ "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==",
"license": "MIT",
"engines": {
"node": ">=10"
@@ -6377,6 +7234,8 @@
},
"node_modules/call-bind": {
"version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
+ "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
"license": "MIT",
"dependencies": {
"es-define-property": "^1.0.0",
@@ -6394,6 +7253,8 @@
},
"node_modules/call-bind-apply-helpers": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
@@ -6405,6 +7266,8 @@
},
"node_modules/call-bound": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
+ "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.2",
@@ -6419,6 +7282,8 @@
},
"node_modules/callsites": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6448,6 +7313,8 @@
},
"node_modules/castv2": {
"version": "0.1.10",
+ "resolved": "https://registry.npmjs.org/castv2/-/castv2-0.1.10.tgz",
+ "integrity": "sha512-3QWevHrjT22KdF08Y2a217IYCDQDP7vEJaY4n0lPBeC5UBYbMFMadDfVTsaQwq7wqsEgYUHElPGm3EO1ey+TNw==",
"license": "MIT",
"dependencies": {
"debug": "^4.1.1",
@@ -6456,6 +7323,8 @@
},
"node_modules/ccount": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
+ "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==",
"dev": true,
"license": "MIT",
"funding": {
@@ -6465,6 +7334,8 @@
},
"node_modules/centra": {
"version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/centra/-/centra-2.7.0.tgz",
+ "integrity": "sha512-PbFMgMSrmgx6uxCdm57RUos9Tc3fclMvhLSATYN39XsDV29B89zZ3KA89jmY0vwSGazyU+uerqwa6t+KaodPcg==",
"license": "MIT",
"dependencies": {
"follow-redirects": "^1.15.6"
@@ -6472,6 +7343,8 @@
},
"node_modules/chai": {
"version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz",
+ "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6512,6 +7385,8 @@
},
"node_modules/chalk": {
"version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
@@ -6526,6 +7401,8 @@
},
"node_modules/character-entities-html4": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
+ "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==",
"dev": true,
"license": "MIT",
"funding": {
@@ -6535,6 +7412,8 @@
},
"node_modules/character-entities-legacy": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
+ "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
"dev": true,
"license": "MIT",
"funding": {
@@ -6544,6 +7423,8 @@
},
"node_modules/check-error": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz",
+ "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6555,6 +7436,8 @@
},
"node_modules/chokidar": {
"version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6578,6 +7461,8 @@
},
"node_modules/chokidar/node_modules/glob-parent": {
"version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -6589,6 +7474,8 @@
},
"node_modules/chromatic": {
"version": "13.3.5",
+ "resolved": "https://registry.npmjs.org/chromatic/-/chromatic-13.3.5.tgz",
+ "integrity": "sha512-MzPhxpl838qJUo0A55osCF2ifwPbjcIPeElr1d4SHcjnHoIcg7l1syJDrAYK/a+PcCBrOGi06jPNpQAln5hWgw==",
"dev": true,
"license": "MIT",
"bin": {
@@ -6611,6 +7498,8 @@
},
"node_modules/ci-info": {
"version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
"funding": [
{
"type": "github",
@@ -6624,6 +7513,8 @@
},
"node_modules/cli-width": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz",
+ "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==",
"dev": true,
"license": "ISC",
"engines": {
@@ -6632,6 +7523,8 @@
},
"node_modules/cliui": {
"version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -6642,11 +7535,15 @@
},
"node_modules/cliui/node_modules/emoji-regex": {
"version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true,
"license": "MIT"
},
"node_modules/cliui/node_modules/string-width": {
"version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6660,6 +7557,8 @@
},
"node_modules/cliui/node_modules/wrap-ansi": {
"version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6676,6 +7575,8 @@
},
"node_modules/clone": {
"version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==",
"license": "MIT",
"engines": {
"node": ">=0.8"
@@ -6683,6 +7584,8 @@
},
"node_modules/clone-response": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz",
+ "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==",
"license": "MIT",
"dependencies": {
"mimic-response": "^1.0.0"
@@ -6693,6 +7596,8 @@
},
"node_modules/clone-response/node_modules/mimic-response": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
"license": "MIT",
"engines": {
"node": ">=4"
@@ -6710,6 +7615,8 @@
},
"node_modules/cluster-key-slot": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz",
+ "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==",
"license": "Apache-2.0",
"engines": {
"node": ">=0.10.0"
@@ -6717,10 +7624,14 @@
},
"node_modules/codec-parser": {
"version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/codec-parser/-/codec-parser-2.5.0.tgz",
+ "integrity": "sha512-Ru9t80fV8B0ZiixQl8xhMTLru+dzuis/KQld32/x5T/+3LwZb0/YvQdSKytX9JqCnRdiupvAvyYJINKrXieziQ==",
"license": "LGPL-3.0-or-later"
},
"node_modules/color-convert": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
@@ -6731,14 +7642,20 @@
},
"node_modules/color-name": {
"version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"license": "MIT"
},
"node_modules/colorette": {
"version": "2.0.20",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
+ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
"license": "MIT"
},
"node_modules/combined-stream": {
"version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"license": "MIT",
"dependencies": {
"delayed-stream": "~1.0.0"
@@ -6749,6 +7666,8 @@
},
"node_modules/comma-separated-tokens": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
+ "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
"dev": true,
"license": "MIT",
"funding": {
@@ -6758,10 +7677,14 @@
},
"node_modules/commander": {
"version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
"license": "MIT"
},
"node_modules/common-tags": {
"version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz",
+ "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==",
"license": "MIT",
"engines": {
"node": ">=4.0.0"
@@ -6769,10 +7692,14 @@
},
"node_modules/compare-versions": {
"version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-4.1.4.tgz",
+ "integrity": "sha512-FemMreK9xNyL8gQevsdRMrvO4lFCkQP7qbuktn1q8ndcNk1+0mz7lgE7b/sNvbhVgY4w6tMN1FDp6aADjqw2rw==",
"license": "MIT"
},
"node_modules/component-emitter": {
"version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz",
+ "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -6780,11 +7707,15 @@
},
"node_modules/concat-map": {
"version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"dev": true,
"license": "MIT"
},
"node_modules/concat-stream": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
+ "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
"engines": [
"node >= 6.0"
],
@@ -6811,6 +7742,8 @@
},
"node_modules/content-type": {
"version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -6818,11 +7751,15 @@
},
"node_modules/convert-source-map": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
"dev": true,
"license": "MIT"
},
"node_modules/cookie": {
"version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
+ "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -6839,10 +7776,14 @@
},
"node_modules/cookiejar": {
"version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz",
+ "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==",
"license": "MIT"
},
"node_modules/core-js": {
"version": "3.46.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.46.0.tgz",
+ "integrity": "sha512-vDMm9B0xnqqZ8uSBpZ8sNtRtOdmfShrvT6h2TuQGLs0Is+cR0DYbj/KWP6ALVNbWPpqA/qPLoOuppJN07humpA==",
"hasInstallScript": true,
"license": "MIT",
"funding": {
@@ -6852,6 +7793,8 @@
},
"node_modules/cors": {
"version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
"license": "MIT",
"dependencies": {
"object-assign": "^4",
@@ -6863,6 +7806,8 @@
},
"node_modules/cosmiconfig": {
"version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
+ "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6878,6 +7823,8 @@
},
"node_modules/cosmiconfig/node_modules/yaml": {
"version": "1.10.3",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz",
+ "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==",
"dev": true,
"license": "ISC",
"engines": {
@@ -6886,6 +7833,8 @@
},
"node_modules/croner": {
"version": "7.0.8",
+ "resolved": "https://registry.npmjs.org/croner/-/croner-7.0.8.tgz",
+ "integrity": "sha512-4E27J9ZQV9prM9ggU18QGPYPMSblbA9JuGv4Ff3Gk6supX4RszNGQxBgiFBL6wb/L9HuSMpFbQpduMiDRo+z5Q==",
"license": "MIT",
"engines": {
"node": ">=6.0"
@@ -6893,6 +7842,8 @@
},
"node_modules/cross-spawn": {
"version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
"license": "MIT",
"dependencies": {
"path-key": "^3.1.0",
@@ -6905,16 +7856,22 @@
},
"node_modules/css.escape": {
"version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz",
+ "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==",
"dev": true,
"license": "MIT"
},
"node_modules/csstype": {
"version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
+ "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
"dev": true,
"license": "MIT"
},
"node_modules/date-fns": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz",
+ "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==",
"license": "MIT",
"funding": {
"type": "github",
@@ -6923,6 +7880,8 @@
},
"node_modules/dateformat": {
"version": "4.6.3",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz",
+ "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==",
"license": "MIT",
"engines": {
"node": "*"
@@ -6930,10 +7889,14 @@
},
"node_modules/dayjs": {
"version": "1.11.13",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz",
+ "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==",
"license": "MIT"
},
"node_modules/dbus-ts": {
"version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/dbus-ts/-/dbus-ts-0.0.7.tgz",
+ "integrity": "sha512-2Iig5znVcrIMSAgTxy5DcUm2mIkgbFGP01YUSxSakkzQzrx+OH24LMIiopDAEWS8LR6V3/eVywO72us438eX0Q==",
"license": "MIT",
"dependencies": {
"@dbus-types/dbus": "^0.0.4",
@@ -6944,6 +7907,8 @@
},
"node_modules/dbus-ts/node_modules/xml2js": {
"version": "0.4.23",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
+ "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==",
"license": "MIT",
"dependencies": {
"sax": ">=0.6.0",
@@ -6955,6 +7920,8 @@
},
"node_modules/debug": {
"version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
"license": "MIT",
"dependencies": {
"ms": "^2.1.3"
@@ -6970,6 +7937,8 @@
},
"node_modules/decompress-response": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-5.0.0.tgz",
+ "integrity": "sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==",
"license": "MIT",
"dependencies": {
"mimic-response": "^2.0.0"
@@ -6980,6 +7949,8 @@
},
"node_modules/deep-eql": {
"version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz",
+ "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6991,11 +7962,15 @@
},
"node_modules/deep-is": {
"version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
"dev": true,
"license": "MIT"
},
"node_modules/default-browser": {
"version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz",
+ "integrity": "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7011,6 +7986,8 @@
},
"node_modules/default-browser-id": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz",
+ "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7022,6 +7999,8 @@
},
"node_modules/defer-to-connect": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
+ "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==",
"license": "MIT",
"engines": {
"node": ">=10"
@@ -7029,6 +8008,8 @@
},
"node_modules/define-data-property": {
"version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
"license": "MIT",
"dependencies": {
"es-define-property": "^1.0.0",
@@ -7044,6 +8025,8 @@
},
"node_modules/define-lazy-prop": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
+ "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7055,6 +8038,8 @@
},
"node_modules/delay": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz",
+ "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==",
"license": "MIT",
"engines": {
"node": ">=10"
@@ -7065,6 +8050,8 @@
},
"node_modules/delayed-stream": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"license": "MIT",
"engines": {
"node": ">=0.4.0"
@@ -7072,6 +8059,8 @@
},
"node_modules/denque": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz",
+ "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==",
"license": "Apache-2.0",
"engines": {
"node": ">=0.10"
@@ -7079,6 +8068,8 @@
},
"node_modules/depd": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
"license": "MIT",
"engines": {
"node": ">= 0.8"
@@ -7086,6 +8077,8 @@
},
"node_modules/dequal": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
+ "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7094,6 +8087,8 @@
},
"node_modules/destroy": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
"license": "MIT",
"engines": {
"node": ">= 0.8",
@@ -7102,6 +8097,8 @@
},
"node_modules/detect-libc": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
"dev": true,
"license": "Apache-2.0",
"optional": true,
@@ -7114,6 +8111,8 @@
},
"node_modules/devlop": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz",
+ "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7126,6 +8125,8 @@
},
"node_modules/dezalgo": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz",
+ "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==",
"license": "ISC",
"dependencies": {
"asap": "^2.0.0",
@@ -7134,6 +8135,8 @@
},
"node_modules/dice-coefficient": {
"version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/dice-coefficient/-/dice-coefficient-2.1.1.tgz",
+ "integrity": "sha512-vPTcHmOQAuGvU6eyBtj7QCBwDJh2I7QpbBU51lbgfv7592KjBl6dm0baRBSh9ekt2X91MNAz7OpJrXCIUtDzlw==",
"license": "MIT",
"dependencies": {
"n-gram": "^2.0.0"
@@ -7148,6 +8151,8 @@
},
"node_modules/diff": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz",
+ "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==",
"dev": true,
"license": "BSD-3-Clause",
"engines": {
@@ -7156,30 +8161,25 @@
},
"node_modules/diff-match-patch": {
"version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz",
+ "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==",
"dev": true,
"license": "Apache-2.0"
},
"node_modules/diff-sequences": {
"version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz",
+ "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==",
"dev": true,
"license": "MIT",
"engines": {
"node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/dir-glob": {
- "version": "3.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "path-type": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/discord-api-types": {
"version": "0.38.43",
+ "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.38.43.tgz",
+ "integrity": "sha512-sSoBf/nK6m7BGtw65mi+QBuvEWaHE8MMziFLqWL+gT6ME/BLg34dRSVKS3Husx40uU06bvxUc3/X+D9Y6/zAbw==",
"license": "MIT",
"workspaces": [
"scripts/actions/documentation"
@@ -7187,6 +8187,8 @@
},
"node_modules/discord.js": {
"version": "14.26.0",
+ "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-14.26.0.tgz",
+ "integrity": "sha512-I+5dmdg7WnjIOEXspX6mJ4jLgblhZV6QpQcC3U2JjrFWnHCKDpoLkhV46SBP8k9QePs3YWJOvndVutUARRO0AQ==",
"license": "Apache-2.0",
"dependencies": {
"@discordjs/builders": "^1.14.0",
@@ -7212,6 +8214,8 @@
},
"node_modules/discord.js/node_modules/undici": {
"version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-6.24.1.tgz",
+ "integrity": "sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==",
"license": "MIT",
"engines": {
"node": ">=18.17"
@@ -7219,6 +8223,8 @@
},
"node_modules/doctrine": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -7230,39 +8236,710 @@
},
"node_modules/dom-accessibility-api": {
"version": "0.5.16",
+ "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz",
+ "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==",
"dev": true,
"license": "MIT",
"peer": true
},
"node_modules/dotenv": {
"version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz",
+ "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==",
"license": "BSD-2-Clause",
"engines": {
"node": ">=10"
}
},
- "node_modules/dunder-proto": {
- "version": "1.0.1",
+ "node_modules/drizzle-kit": {
+ "version": "1.0.0-rc.2-e38a2ba",
+ "resolved": "https://registry.npmjs.org/drizzle-kit/-/drizzle-kit-1.0.0-rc.2-e38a2ba.tgz",
+ "integrity": "sha512-2A+OcNPBBVHe9QKZRkOE8C0PsH9x10QlZqYicEJTh+XDnNBL9tdMTTJ4eSjHG8CBegXnUy4h3WmsRcgO1S8eOA==",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "call-bind-apply-helpers": "^1.0.1",
- "es-errors": "^1.3.0",
- "gopd": "^1.2.0"
+ "@drizzle-team/brocli": "^0.11.0",
+ "@js-temporal/polyfill": "^0.5.1",
+ "esbuild": "^0.25.10",
+ "get-tsconfig": "^4.13.6",
+ "jiti": "^2.6.1"
},
+ "bin": {
+ "drizzle-kit": "bin.cjs"
+ }
+ },
+ "node_modules/drizzle-kit/node_modules/@esbuild/aix-ppc64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz",
+ "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "aix"
+ ],
"engines": {
- "node": ">= 0.4"
+ "node": ">=18"
}
},
- "node_modules/duplexer3": {
+ "node_modules/drizzle-kit/node_modules/@esbuild/android-arm": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz",
+ "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/drizzle-kit/node_modules/@esbuild/android-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz",
+ "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/drizzle-kit/node_modules/@esbuild/android-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz",
+ "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/drizzle-kit/node_modules/@esbuild/darwin-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz",
+ "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/drizzle-kit/node_modules/@esbuild/darwin-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz",
+ "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/drizzle-kit/node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz",
+ "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/drizzle-kit/node_modules/@esbuild/freebsd-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz",
+ "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/drizzle-kit/node_modules/@esbuild/linux-arm": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz",
+ "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/drizzle-kit/node_modules/@esbuild/linux-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz",
+ "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/drizzle-kit/node_modules/@esbuild/linux-ia32": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz",
+ "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/drizzle-kit/node_modules/@esbuild/linux-loong64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz",
+ "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/drizzle-kit/node_modules/@esbuild/linux-mips64el": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz",
+ "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/drizzle-kit/node_modules/@esbuild/linux-ppc64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz",
+ "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/drizzle-kit/node_modules/@esbuild/linux-riscv64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz",
+ "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/drizzle-kit/node_modules/@esbuild/linux-s390x": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz",
+ "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/drizzle-kit/node_modules/@esbuild/linux-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz",
+ "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/drizzle-kit/node_modules/@esbuild/netbsd-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz",
+ "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/drizzle-kit/node_modules/@esbuild/netbsd-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz",
+ "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/drizzle-kit/node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz",
+ "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/drizzle-kit/node_modules/@esbuild/openbsd-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz",
+ "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/drizzle-kit/node_modules/@esbuild/openharmony-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz",
+ "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/drizzle-kit/node_modules/@esbuild/sunos-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz",
+ "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/drizzle-kit/node_modules/@esbuild/win32-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz",
+ "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/drizzle-kit/node_modules/@esbuild/win32-ia32": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz",
+ "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/drizzle-kit/node_modules/@esbuild/win32-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz",
+ "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/drizzle-kit/node_modules/esbuild": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz",
+ "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.25.12",
+ "@esbuild/android-arm": "0.25.12",
+ "@esbuild/android-arm64": "0.25.12",
+ "@esbuild/android-x64": "0.25.12",
+ "@esbuild/darwin-arm64": "0.25.12",
+ "@esbuild/darwin-x64": "0.25.12",
+ "@esbuild/freebsd-arm64": "0.25.12",
+ "@esbuild/freebsd-x64": "0.25.12",
+ "@esbuild/linux-arm": "0.25.12",
+ "@esbuild/linux-arm64": "0.25.12",
+ "@esbuild/linux-ia32": "0.25.12",
+ "@esbuild/linux-loong64": "0.25.12",
+ "@esbuild/linux-mips64el": "0.25.12",
+ "@esbuild/linux-ppc64": "0.25.12",
+ "@esbuild/linux-riscv64": "0.25.12",
+ "@esbuild/linux-s390x": "0.25.12",
+ "@esbuild/linux-x64": "0.25.12",
+ "@esbuild/netbsd-arm64": "0.25.12",
+ "@esbuild/netbsd-x64": "0.25.12",
+ "@esbuild/openbsd-arm64": "0.25.12",
+ "@esbuild/openbsd-x64": "0.25.12",
+ "@esbuild/openharmony-arm64": "0.25.12",
+ "@esbuild/sunos-x64": "0.25.12",
+ "@esbuild/win32-arm64": "0.25.12",
+ "@esbuild/win32-ia32": "0.25.12",
+ "@esbuild/win32-x64": "0.25.12"
+ }
+ },
+ "node_modules/drizzle-orm": {
+ "version": "1.0.0-rc.2-e38a2ba",
+ "resolved": "https://registry.npmjs.org/drizzle-orm/-/drizzle-orm-1.0.0-rc.2-e38a2ba.tgz",
+ "integrity": "sha512-m+S4nvYsgBhUPPjRWEPb9dybO2WcZXs+L6h2ziWOmFnjIgQ2jiDIKVQUuaCMGyKBFISxS6kjfMAJ1zzeQqWSFw==",
+ "license": "Apache-2.0",
+ "peerDependencies": {
+ "@aws-sdk/client-rds-data": ">=3",
+ "@cloudflare/workers-types": ">=4",
+ "@effect/sql-pg": ">=4.0.0-beta.58 || >=4.0.0",
+ "@electric-sql/pglite": ">=0.2.0",
+ "@libsql/client": ">=0.10.0",
+ "@libsql/client-wasm": ">=0.10.0",
+ "@neondatabase/serverless": ">=0.10.0",
+ "@op-engineering/op-sqlite": ">=2",
+ "@opentelemetry/api": "^1.4.1",
+ "@planetscale/database": ">=1.13",
+ "@sinclair/typebox": ">=0.34.8",
+ "@sqlitecloud/drivers": ">=1.0.653",
+ "@tidbcloud/serverless": "*",
+ "@tursodatabase/database": ">=0.2.1",
+ "@tursodatabase/database-common": ">=0.2.1",
+ "@tursodatabase/database-wasm": ">=0.2.1",
+ "@types/better-sqlite3": "*",
+ "@types/mssql": "^9.1.4",
+ "@types/pg": "*",
+ "@types/sql.js": "*",
+ "@upstash/redis": ">=1.34.7",
+ "@vercel/postgres": ">=0.8.0",
+ "@xata.io/client": "*",
+ "arktype": ">=2.0.0",
+ "better-sqlite3": ">=9.3.0",
+ "bun-types": "*",
+ "effect": ">=4.0.0-beta.58 || >=4.0.0",
+ "expo-sqlite": ">=14.0.0",
+ "mssql": "^11.0.1",
+ "mysql2": ">=2",
+ "pg": ">=8",
+ "postgres": ">=3",
+ "sql.js": ">=1",
+ "sqlite3": ">=5",
+ "typebox": ">=1.0.0",
+ "valibot": ">=1.0.0-beta.7",
+ "zod": "^3.25.0 || ^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@aws-sdk/client-rds-data": {
+ "optional": true
+ },
+ "@cloudflare/workers-types": {
+ "optional": true
+ },
+ "@effect/sql-pg": {
+ "optional": true
+ },
+ "@electric-sql/pglite": {
+ "optional": true
+ },
+ "@libsql/client": {
+ "optional": true
+ },
+ "@libsql/client-wasm": {
+ "optional": true
+ },
+ "@neondatabase/serverless": {
+ "optional": true
+ },
+ "@op-engineering/op-sqlite": {
+ "optional": true
+ },
+ "@opentelemetry/api": {
+ "optional": true
+ },
+ "@planetscale/database": {
+ "optional": true
+ },
+ "@sinclair/typebox": {
+ "optional": true
+ },
+ "@sqlitecloud/drivers": {
+ "optional": true
+ },
+ "@tidbcloud/serverless": {
+ "optional": true
+ },
+ "@tursodatabase/database": {
+ "optional": true
+ },
+ "@tursodatabase/database-common": {
+ "optional": true
+ },
+ "@tursodatabase/database-wasm": {
+ "optional": true
+ },
+ "@types/better-sqlite3": {
+ "optional": true
+ },
+ "@types/mssql": {
+ "optional": true
+ },
+ "@types/pg": {
+ "optional": true
+ },
+ "@types/sql.js": {
+ "optional": true
+ },
+ "@upstash/redis": {
+ "optional": true
+ },
+ "@vercel/postgres": {
+ "optional": true
+ },
+ "@xata.io/client": {
+ "optional": true
+ },
+ "arktype": {
+ "optional": true
+ },
+ "better-sqlite3": {
+ "optional": true
+ },
+ "bun-types": {
+ "optional": true
+ },
+ "effect": {
+ "optional": true
+ },
+ "expo-sqlite": {
+ "optional": true
+ },
+ "mssql": {
+ "optional": true
+ },
+ "mysql2": {
+ "optional": true
+ },
+ "pg": {
+ "optional": true
+ },
+ "postgres": {
+ "optional": true
+ },
+ "sql.js": {
+ "optional": true
+ },
+ "sqlite3": {
+ "optional": true
+ },
+ "typebox": {
+ "optional": true
+ },
+ "valibot": {
+ "optional": true
+ },
+ "zod": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/dunder-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.2.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/duplexer3": {
"version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz",
+ "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==",
"license": "BSD-3-Clause"
},
"node_modules/eastasianwidth": {
"version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
"license": "MIT"
},
"node_modules/ecdsa-sig-formatter": {
"version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
+ "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
"license": "Apache-2.0",
"dependencies": {
"safe-buffer": "^5.0.1"
@@ -7270,6 +8947,8 @@
},
"node_modules/ee-first": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
"license": "MIT"
},
"node_modules/electron-to-chromium": {
@@ -7281,10 +8960,14 @@
},
"node_modules/emoji-regex": {
"version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
"license": "MIT"
},
"node_modules/empathic": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/empathic/-/empathic-2.0.0.tgz",
+ "integrity": "sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7293,6 +8976,8 @@
},
"node_modules/encodeurl": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
"license": "MIT",
"engines": {
"node": ">= 0.8"
@@ -7300,6 +8985,8 @@
},
"node_modules/end-of-stream": {
"version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
"license": "MIT",
"dependencies": {
"once": "^1.4.0"
@@ -7321,6 +9008,8 @@
},
"node_modules/error-ex": {
"version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz",
+ "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7329,6 +9018,8 @@
},
"node_modules/es-define-property": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -7336,6 +9027,8 @@
},
"node_modules/es-errors": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -7343,6 +9036,8 @@
},
"node_modules/es-object-atoms": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
+ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0"
@@ -7353,6 +9048,8 @@
},
"node_modules/es-set-tostringtag": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
+ "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
@@ -7366,10 +9063,14 @@
},
"node_modules/es6-promise": {
"version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
+ "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
"license": "MIT"
},
"node_modules/es6-promisify": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
+ "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==",
"license": "MIT",
"dependencies": {
"es6-promise": "^4.0.3"
@@ -7418,6 +9119,8 @@
},
"node_modules/escalade": {
"version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7426,15 +9129,21 @@
},
"node_modules/escape-carriage": {
"version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/escape-carriage/-/escape-carriage-1.3.1.tgz",
+ "integrity": "sha512-GwBr6yViW3ttx1kb7/Oh+gKQ1/TrhYwxKqVmg5gS+BK+Qe2KrOa/Vh7w3HPBvgGf0LfcDGoY9I6NHKoA5Hozhw==",
"dev": true,
"license": "MIT"
},
"node_modules/escape-html": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
"license": "MIT"
},
"node_modules/escape-string-regexp": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7445,61 +9154,65 @@
}
},
"node_modules/eslint": {
- "version": "8.57.1",
+ "version": "10.3.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.3.0.tgz",
+ "integrity": "sha512-XbEXaRva5cF0ZQB8w6MluHA0kZZfV2DuCMJ3ozyEOHLwDpZX2Lmm/7Pp0xdJmI0GL1W05VH5VwIFHEm1Vcw2gw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.6.1",
- "@eslint/eslintrc": "^2.1.4",
- "@eslint/js": "8.57.1",
- "@humanwhocodes/config-array": "^0.13.0",
+ "@eslint-community/eslint-utils": "^4.8.0",
+ "@eslint-community/regexpp": "^4.12.2",
+ "@eslint/config-array": "^0.23.5",
+ "@eslint/config-helpers": "^0.5.5",
+ "@eslint/core": "^1.2.1",
+ "@eslint/plugin-kit": "^0.7.1",
+ "@humanfs/node": "^0.16.6",
"@humanwhocodes/module-importer": "^1.0.1",
- "@nodelib/fs.walk": "^1.2.8",
- "@ungap/structured-clone": "^1.2.0",
- "ajv": "^6.12.4",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.2",
+ "@humanwhocodes/retry": "^0.4.2",
+ "@types/estree": "^1.0.6",
+ "ajv": "^6.14.0",
+ "cross-spawn": "^7.0.6",
"debug": "^4.3.2",
- "doctrine": "^3.0.0",
"escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.2.2",
- "eslint-visitor-keys": "^3.4.3",
- "espree": "^9.6.1",
- "esquery": "^1.4.2",
+ "eslint-scope": "^9.1.2",
+ "eslint-visitor-keys": "^5.0.1",
+ "espree": "^11.2.0",
+ "esquery": "^1.7.0",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^6.0.1",
+ "file-entry-cache": "^8.0.0",
"find-up": "^5.0.0",
"glob-parent": "^6.0.2",
- "globals": "^13.19.0",
- "graphemer": "^1.4.0",
"ignore": "^5.2.0",
"imurmurhash": "^0.1.4",
"is-glob": "^4.0.0",
- "is-path-inside": "^3.0.3",
- "js-yaml": "^4.1.0",
"json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.4.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.1.2",
+ "minimatch": "^10.2.4",
"natural-compare": "^1.4.0",
- "optionator": "^0.9.3",
- "strip-ansi": "^6.0.1",
- "text-table": "^0.2.0"
+ "optionator": "^0.9.3"
},
"bin": {
"eslint": "bin/eslint.js"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^20.19.0 || ^22.13.0 || >=24"
},
"funding": {
- "url": "https://opencollective.com/eslint"
+ "url": "https://eslint.org/donate"
+ },
+ "peerDependencies": {
+ "jiti": "*"
+ },
+ "peerDependenciesMeta": {
+ "jiti": {
+ "optional": true
+ }
}
},
"node_modules/eslint-plugin-prefer-arrow-functions": {
"version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prefer-arrow-functions/-/eslint-plugin-prefer-arrow-functions-3.4.1.tgz",
+ "integrity": "sha512-c8NP0E8xpkRqDq2eDSRr+wA4jwkwOEVNnZx4YY3O0V9M7OhtKdQIj5zmzIXwu+ueURmbwYrnz65sEoLLoIVZpg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7510,185 +9223,33 @@
}
},
"node_modules/eslint-plugin-storybook": {
- "version": "10.1.11",
+ "version": "10.3.6",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-10.3.6.tgz",
+ "integrity": "sha512-8udrL+Rmp5LFaZvgRe4J226X1MYls25bWCyHuzR5X8s2qbFTryX+wKC+o/0Ato4A1AvwnDg8OOMPc6yWJ9JpcA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/utils": "^8.8.1"
+ "@typescript-eslint/utils": "^8.48.0"
},
"peerDependencies": {
"eslint": ">=8",
- "storybook": "^10.1.11"
- }
- },
- "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/scope-manager": {
- "version": "8.57.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/types": "8.57.1",
- "@typescript-eslint/visitor-keys": "8.57.1"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/types": {
- "version": "8.57.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.57.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/project-service": "8.57.1",
- "@typescript-eslint/tsconfig-utils": "8.57.1",
- "@typescript-eslint/types": "8.57.1",
- "@typescript-eslint/visitor-keys": "8.57.1",
- "debug": "^4.4.3",
- "minimatch": "^10.2.2",
- "semver": "^7.7.3",
- "tinyglobby": "^0.2.15",
- "ts-api-utils": "^2.4.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "typescript": ">=4.8.4 <6.0.0"
- }
- },
- "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/utils": {
- "version": "8.57.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.9.1",
- "@typescript-eslint/scope-manager": "8.57.1",
- "@typescript-eslint/types": "8.57.1",
- "@typescript-eslint/typescript-estree": "8.57.1"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
- "typescript": ">=4.8.4 <6.0.0"
- }
- },
- "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.57.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/types": "8.57.1",
- "eslint-visitor-keys": "^5.0.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/eslint-plugin-storybook/node_modules/balanced-match": {
- "version": "4.0.4",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "18 || 20 || >=22"
- }
- },
- "node_modules/eslint-plugin-storybook/node_modules/brace-expansion": {
- "version": "5.0.5",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^4.0.2"
- },
- "engines": {
- "node": "18 || 20 || >=22"
- }
- },
- "node_modules/eslint-plugin-storybook/node_modules/eslint-visitor-keys": {
- "version": "5.0.1",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": "^20.19.0 || ^22.13.0 || >=24"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint-plugin-storybook/node_modules/minimatch": {
- "version": "10.2.5",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "brace-expansion": "^5.0.5"
- },
- "engines": {
- "node": "18 || 20 || >=22"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/eslint-plugin-storybook/node_modules/semver": {
- "version": "7.7.4",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/eslint-plugin-storybook/node_modules/ts-api-utils": {
- "version": "2.4.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18.12"
- },
- "peerDependencies": {
- "typescript": ">=4.8.4"
+ "storybook": "^10.3.6"
}
},
"node_modules/eslint-scope": {
- "version": "7.2.2",
+ "version": "9.1.2",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz",
+ "integrity": "sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
+ "@types/esrecurse": "^4.3.1",
+ "@types/estree": "^1.0.8",
"esrecurse": "^4.3.0",
"estraverse": "^5.2.0"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^20.19.0 || ^22.13.0 || >=24"
},
"funding": {
"url": "https://opencollective.com/eslint"
@@ -7696,6 +9257,8 @@
},
"node_modules/eslint-visitor-keys": {
"version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -7707,6 +9270,8 @@
},
"node_modules/eslint/node_modules/ajv": {
"version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz",
+ "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7720,51 +9285,97 @@
"url": "https://github.com/sponsors/epoberezkin"
}
},
- "node_modules/eslint/node_modules/globals": {
- "version": "13.24.0",
+ "node_modules/eslint/node_modules/balanced-match": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
+ "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "18 || 20 || >=22"
+ }
+ },
+ "node_modules/eslint/node_modules/brace-expansion": {
+ "version": "5.0.6",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz",
+ "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "type-fest": "^0.20.2"
+ "balanced-match": "^4.0.2"
},
"engines": {
- "node": ">=8"
+ "node": "18 || 20 || >=22"
+ }
+ },
+ "node_modules/eslint/node_modules/eslint-visitor-keys": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz",
+ "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^20.19.0 || ^22.13.0 || >=24"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://opencollective.com/eslint"
}
},
"node_modules/eslint/node_modules/json-schema-traverse": {
"version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true,
"license": "MIT"
},
- "node_modules/eslint/node_modules/type-fest": {
- "version": "0.20.2",
+ "node_modules/eslint/node_modules/minimatch": {
+ "version": "10.2.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz",
+ "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==",
"dev": true,
- "license": "(MIT OR CC0-1.0)",
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "brace-expansion": "^5.0.5"
+ },
"engines": {
- "node": ">=10"
+ "node": "18 || 20 || >=22"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/esm-env": {
"version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz",
+ "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==",
"license": "MIT"
},
"node_modules/espree": {
- "version": "9.6.1",
+ "version": "11.2.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz",
+ "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
- "acorn": "^8.9.0",
+ "acorn": "^8.16.0",
"acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.4.1"
+ "eslint-visitor-keys": "^5.0.1"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^20.19.0 || ^22.13.0 || >=24"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/espree/node_modules/eslint-visitor-keys": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz",
+ "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^20.19.0 || ^22.13.0 || >=24"
},
"funding": {
"url": "https://opencollective.com/eslint"
@@ -7772,6 +9383,8 @@
},
"node_modules/esprima": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true,
"license": "BSD-2-Clause",
"bin": {
@@ -7783,7 +9396,9 @@
}
},
"node_modules/esquery": {
- "version": "1.6.0",
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz",
+ "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -7795,6 +9410,8 @@
},
"node_modules/esrecurse": {
"version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
@@ -7806,6 +9423,8 @@
},
"node_modules/estraverse": {
"version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
"dev": true,
"license": "BSD-2-Clause",
"engines": {
@@ -7814,11 +9433,15 @@
},
"node_modules/estree-walker": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
"dev": true,
"license": "MIT"
},
"node_modules/esutils": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
"dev": true,
"license": "BSD-2-Clause",
"engines": {
@@ -7827,6 +9450,8 @@
},
"node_modules/etag": {
"version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -7834,6 +9459,8 @@
},
"node_modules/event-target-shim": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
+ "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
"license": "MIT",
"engines": {
"node": ">=6"
@@ -7847,6 +9474,8 @@
},
"node_modules/events": {
"version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
"license": "MIT",
"engines": {
"node": ">=0.8.x"
@@ -7854,6 +9483,8 @@
},
"node_modules/execa": {
"version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-9.6.1.tgz",
+ "integrity": "sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7879,6 +9510,8 @@
},
"node_modules/execa/node_modules/get-stream": {
"version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz",
+ "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7894,6 +9527,8 @@
},
"node_modules/execa/node_modules/is-plain-obj": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
+ "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7905,6 +9540,8 @@
},
"node_modules/execa/node_modules/is-stream": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz",
+ "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7959,6 +9596,8 @@
},
"node_modules/express-session": {
"version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.19.0.tgz",
+ "integrity": "sha512-0csaMkGq+vaiZTmSMMGkfdCOabYv192VbytFypcvI0MANrp+4i/7yEkJ0sbAEhycQjntaKGzYfjfXQyVb7BHMA==",
"license": "MIT",
"dependencies": {
"cookie": "~0.7.2",
@@ -7980,10 +9619,14 @@
},
"node_modules/express-session/node_modules/cookie-signature": {
"version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz",
+ "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==",
"license": "MIT"
},
"node_modules/express-session/node_modules/debug": {
"version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"license": "MIT",
"dependencies": {
"ms": "2.0.0"
@@ -7991,6 +9634,8 @@
},
"node_modules/express-session/node_modules/ms": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"license": "MIT"
},
"node_modules/express-static-gzip": {
@@ -8084,20 +9729,28 @@
},
"node_modules/extend": {
"version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
"license": "MIT"
},
"node_modules/eyes": {
"version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
+ "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==",
"engines": {
"node": "> 0.1.90"
}
},
"node_modules/fast-copy": {
"version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.2.tgz",
+ "integrity": "sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==",
"license": "MIT"
},
"node_modules/fast-deep-equal": {
"version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
"license": "MIT"
},
"node_modules/fast-equals": {
@@ -8109,44 +9762,24 @@
"node": ">=6.0.0"
}
},
- "node_modules/fast-glob": {
- "version": "3.3.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.4"
- },
- "engines": {
- "node": ">=8.6.0"
- }
- },
- "node_modules/fast-glob/node_modules/glob-parent": {
- "version": "5.1.2",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/fast-json-stable-stringify": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
"dev": true,
"license": "MIT"
},
"node_modules/fast-levenshtein": {
"version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
"dev": true,
"license": "MIT"
},
"node_modules/fast-redact": {
"version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz",
+ "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==",
"license": "MIT",
"engines": {
"node": ">=6"
@@ -8154,14 +9787,20 @@
},
"node_modules/fast-safe-stringify": {
"version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
+ "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==",
"license": "MIT"
},
"node_modules/fast-uri": {
"version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz",
+ "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==",
"license": "BSD-3-Clause"
},
"node_modules/fast-xml-parser": {
"version": "3.19.0",
+ "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz",
+ "integrity": "sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg==",
"license": "MIT",
"bin": {
"xml2js": "cli.js"
@@ -8171,16 +9810,10 @@
"url": "https://paypal.me/naturalintelligence"
}
},
- "node_modules/fastq": {
- "version": "1.17.1",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "reusify": "^1.0.4"
- }
- },
"node_modules/figures": {
"version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz",
+ "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8195,6 +9828,8 @@
},
"node_modules/figures/node_modules/is-unicode-supported": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz",
+ "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -8205,31 +9840,36 @@
}
},
"node_modules/file-entry-cache": {
- "version": "6.0.1",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
+ "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "flat-cache": "^3.0.4"
+ "flat-cache": "^4.0.0"
},
"engines": {
- "node": "^10.12.0 || >=12.0.0"
+ "node": ">=16.0.0"
}
},
"node_modules/file-entry-cache/node_modules/flat-cache": {
- "version": "3.2.0",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
+ "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==",
"dev": true,
"license": "MIT",
"dependencies": {
"flatted": "^3.2.9",
- "keyv": "^4.5.3",
- "rimraf": "^3.0.2"
+ "keyv": "^4.5.4"
},
"engines": {
- "node": "^10.12.0 || >=12.0.0"
+ "node": ">=16"
}
},
"node_modules/file-entry-cache/node_modules/keyv": {
"version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8238,6 +9878,8 @@
},
"node_modules/filesize": {
"version": "10.1.6",
+ "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.1.6.tgz",
+ "integrity": "sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==",
"dev": true,
"license": "BSD-3-Clause",
"engines": {
@@ -8246,6 +9888,8 @@
},
"node_modules/fill-range": {
"version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"license": "MIT",
"dependencies": {
"to-regex-range": "^5.0.1"
@@ -8277,11 +9921,15 @@
},
"node_modules/find-root": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
+ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==",
"dev": true,
"license": "MIT"
},
"node_modules/find-up": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8297,6 +9945,8 @@
},
"node_modules/find-yarn-workspace-root": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz",
+ "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==",
"license": "Apache-2.0",
"dependencies": {
"micromatch": "^4.0.2"
@@ -8304,6 +9954,8 @@
},
"node_modules/fixed-size-list": {
"version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/fixed-size-list/-/fixed-size-list-0.3.0.tgz",
+ "integrity": "sha512-c6I8wEE4ZtjKz35BaodH7yWuWmcaUVQwgBeNcI3LxJu79YH+ezHvf1oS9VkgJmyVy5eQ8Wh6jNVcj2rB4rgVgA==",
"license": "MIT",
"dependencies": {
"mitt": "^1.2.0"
@@ -8311,6 +9963,8 @@
},
"node_modules/flat": {
"version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
+ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
"dev": true,
"license": "BSD-3-Clause",
"bin": {
@@ -8319,6 +9973,8 @@
},
"node_modules/flat-cache": {
"version": "6.1.13",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.13.tgz",
+ "integrity": "sha512-gmtS2PaUjSPa4zjObEIn4WWliKyZzYljgxODBfxugpK6q6HU9ClXzgCJ+nlcPKY9Bt090ypTOLIFWkV0jbKFjw==",
"license": "MIT",
"dependencies": {
"cacheable": "^1.10.4",
@@ -8328,10 +9984,14 @@
},
"node_modules/flatted": {
"version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz",
+ "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==",
"license": "ISC"
},
"node_modules/follow-redirects": {
- "version": "1.15.11",
+ "version": "1.16.0",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz",
+ "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==",
"funding": [
{
"type": "individual",
@@ -8350,6 +10010,8 @@
},
"node_modules/foreground-child": {
"version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz",
+ "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
"license": "ISC",
"dependencies": {
"cross-spawn": "^7.0.6",
@@ -8364,6 +10026,8 @@
},
"node_modules/form-data": {
"version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
+ "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
"license": "MIT",
"dependencies": {
"asynckit": "^0.4.0",
@@ -8378,6 +10042,8 @@
},
"node_modules/formidable": {
"version": "3.5.4",
+ "resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.4.tgz",
+ "integrity": "sha512-YikH+7CUTOtP44ZTnUhR7Ic2UASBPOqmaRkRKxRbywPTe5VxF7RRCck4af9wutiZ/QKM5nME9Bie2fFaPz5Gug==",
"license": "MIT",
"dependencies": {
"@paralleldrive/cuid2": "^2.2.2",
@@ -8393,6 +10059,8 @@
},
"node_modules/forwarded": {
"version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -8414,6 +10082,8 @@
},
"node_modules/fresh": {
"version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -8421,6 +10091,8 @@
},
"node_modules/fs-extra": {
"version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
"license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
@@ -8433,6 +10105,8 @@
},
"node_modules/fs.realpath": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
"dev": true,
"license": "ISC"
},
@@ -8452,6 +10126,8 @@
},
"node_modules/function-bind": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -8459,6 +10135,8 @@
},
"node_modules/gaxios": {
"version": "6.7.1",
+ "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz",
+ "integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==",
"license": "Apache-2.0",
"dependencies": {
"extend": "^3.0.2",
@@ -8473,6 +10151,8 @@
},
"node_modules/gaxios/node_modules/uuid": {
"version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
+ "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
"funding": [
"https://github.com/sponsors/broofa",
"https://github.com/sponsors/ctavan"
@@ -8484,6 +10164,8 @@
},
"node_modules/gcp-metadata": {
"version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.0.tgz",
+ "integrity": "sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==",
"license": "Apache-2.0",
"dependencies": {
"gaxios": "^6.0.0",
@@ -8495,6 +10177,8 @@
},
"node_modules/gensync": {
"version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -8503,6 +10187,8 @@
},
"node_modules/get-caller-file": {
"version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"dev": true,
"license": "ISC",
"engines": {
@@ -8511,6 +10197,8 @@
},
"node_modules/get-func-name": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz",
+ "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -8519,6 +10207,8 @@
},
"node_modules/get-intrinsic": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
+ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.2",
@@ -8541,6 +10231,8 @@
},
"node_modules/get-proto": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
"license": "MIT",
"dependencies": {
"dunder-proto": "^1.0.1",
@@ -8552,6 +10244,8 @@
},
"node_modules/get-stream": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
"license": "MIT",
"dependencies": {
"pump": "^3.0.0"
@@ -8564,7 +10258,9 @@
}
},
"node_modules/get-tsconfig": {
- "version": "4.8.1",
+ "version": "4.14.0",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.0.tgz",
+ "integrity": "sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==",
"license": "MIT",
"dependencies": {
"resolve-pkg-maps": "^1.0.0"
@@ -8575,6 +10271,8 @@
},
"node_modules/git-cliff": {
"version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/git-cliff/-/git-cliff-2.12.0.tgz",
+ "integrity": "sha512-kjTm5439LsvMs/xRxndWBUetrA4aQfLE8DTbR/ER5H7fGn7ioeFG9YNAK1V7dpTtNi6k2uKYY4f3EvT8J1d+1Q==",
"dev": true,
"license": "MIT OR Apache-2.0",
"dependencies": {
@@ -8639,6 +10337,8 @@
},
"node_modules/git-cliff-linux-x64": {
"version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/git-cliff-linux-x64/-/git-cliff-linux-x64-2.12.0.tgz",
+ "integrity": "sha512-abidFG6dH2N5hPUF245/kRYdwViP11Pz7ZwIW/a86CJLZ/WSE7dJt0f2cUIkxTcFSsp11OwuLc5k1hAbwmiIRw==",
"cpu": [
"x64"
],
@@ -8679,10 +10379,14 @@
},
"node_modules/git-last-commit": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/git-last-commit/-/git-last-commit-1.0.1.tgz",
+ "integrity": "sha512-FDSgeMqa7GnJDxt/q0AbrxbfeTyxp4ImxEw1e4nw6NUHA5FMhFUq33dTXI4Xdgcj1VQ1q5QLWF6WxFrJ8KCBOg==",
"license": "MIT"
},
"node_modules/glob": {
"version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz",
+ "integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==",
"license": "BlueOak-1.0.0",
"dependencies": {
"foreground-child": "^3.3.1",
@@ -8704,6 +10408,8 @@
},
"node_modules/glob-parent": {
"version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -8715,6 +10421,8 @@
},
"node_modules/glob/node_modules/balanced-match": {
"version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
+ "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
"license": "MIT",
"engines": {
"node": "18 || 20 || >=22"
@@ -8722,6 +10430,8 @@
},
"node_modules/glob/node_modules/brace-expansion": {
"version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz",
+ "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==",
"license": "MIT",
"dependencies": {
"balanced-match": "^4.0.2"
@@ -8732,6 +10442,8 @@
},
"node_modules/glob/node_modules/minimatch": {
"version": "10.2.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz",
+ "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==",
"license": "BlueOak-1.0.0",
"dependencies": {
"brace-expansion": "^5.0.5"
@@ -8743,35 +10455,10 @@
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/globby": {
- "version": "11.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.9",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/globby/node_modules/slash": {
- "version": "3.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/google-auth-library": {
"version": "9.15.0",
+ "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.15.0.tgz",
+ "integrity": "sha512-7ccSEJFDFO7exFbO6NRyC+xH8/mZ1GZGG2xxx9iHxZWcjUjJpjWxIMw3cofAKcueZ6DATiukmmprD7yavQHOyQ==",
"license": "Apache-2.0",
"dependencies": {
"base64-js": "^1.3.0",
@@ -8787,6 +10474,8 @@
},
"node_modules/gopd": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -8797,6 +10486,8 @@
},
"node_modules/got": {
"version": "10.7.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-10.7.0.tgz",
+ "integrity": "sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==",
"license": "MIT",
"dependencies": {
"@sindresorhus/is": "^2.0.0",
@@ -8824,6 +10515,8 @@
},
"node_modules/gotify": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/gotify/-/gotify-1.1.0.tgz",
+ "integrity": "sha512-f3PUh08i+1JCJuzv9CRYuIx1QOb9DoWXRvWaPttgiZEG7XtetDQVv6S9cr6suPNKkZI4ry8dqdU2qdb9AiPinw==",
"license": "Apache-2.0",
"dependencies": {
"got": "10.7.0"
@@ -8831,14 +10524,20 @@
},
"node_modules/graceful-fs": {
"version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
"license": "ISC"
},
"node_modules/graphemer": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
"license": "MIT"
},
"node_modules/graphql": {
"version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.13.1.tgz",
+ "integrity": "sha512-gGgrVCoDKlIZ8fIqXBBb0pPKqDgki0Z/FSKNiQzSGj2uEYHr1tq5wmBegGwJx6QB5S5cM0khSBpi/JFHMCvsmQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -8847,6 +10546,8 @@
},
"node_modules/gtoken": {
"version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz",
+ "integrity": "sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==",
"license": "MIT",
"dependencies": {
"gaxios": "^6.0.0",
@@ -8858,10 +10559,14 @@
},
"node_modules/guid-typescript": {
"version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/guid-typescript/-/guid-typescript-1.0.9.tgz",
+ "integrity": "sha512-Y8T4vYhEfwJOTbouREvG+3XDsjr8E3kIr7uf+JZ0BYloFsttiHU0WfvANVsR7TxNUJa/WpCnw/Ino/p+DeBhBQ==",
"license": "ISC"
},
"node_modules/has-flag": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"license": "MIT",
"engines": {
"node": ">=8"
@@ -8869,6 +10574,8 @@
},
"node_modules/has-property-descriptors": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
"license": "MIT",
"dependencies": {
"es-define-property": "^1.0.0"
@@ -8879,6 +10586,8 @@
},
"node_modules/has-symbols": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -8889,6 +10598,8 @@
},
"node_modules/has-tostringtag": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
"license": "MIT",
"dependencies": {
"has-symbols": "^1.0.3"
@@ -8902,6 +10613,8 @@
},
"node_modules/hasown": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
"license": "MIT",
"dependencies": {
"function-bind": "^1.1.2"
@@ -8912,6 +10625,8 @@
},
"node_modules/hast-util-to-html": {
"version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz",
+ "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8934,6 +10649,8 @@
},
"node_modules/hast-util-whitespace": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz",
+ "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8946,6 +10663,8 @@
},
"node_modules/he": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
"dev": true,
"license": "MIT",
"bin": {
@@ -8954,15 +10673,21 @@
},
"node_modules/headers-polyfill": {
"version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-4.0.3.tgz",
+ "integrity": "sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==",
"dev": true,
"license": "MIT"
},
"node_modules/help-me": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/help-me/-/help-me-5.0.0.tgz",
+ "integrity": "sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==",
"license": "MIT"
},
"node_modules/hoist-non-react-statics": {
"version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
+ "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -8971,15 +10696,21 @@
},
"node_modules/hoist-non-react-statics/node_modules/react-is": {
"version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"dev": true,
"license": "MIT"
},
"node_modules/hookified": {
"version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.12.0.tgz",
+ "integrity": "sha512-hMr1Y9TCLshScrBbV2QxJ9BROddxZ12MX9KsCtuGGy/3SmmN5H1PllKerrVlSotur9dlE8hmUKAOSa3WDzsZmQ==",
"license": "MIT"
},
"node_modules/html-entities": {
"version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz",
+ "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==",
"funding": [
{
"type": "github",
@@ -8994,6 +10725,8 @@
},
"node_modules/html-void-elements": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz",
+ "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==",
"dev": true,
"license": "MIT",
"funding": {
@@ -9003,10 +10736,14 @@
},
"node_modules/http-cache-semantics": {
"version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
+ "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==",
"license": "BSD-2-Clause"
},
"node_modules/http-cookie-agent": {
"version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/http-cookie-agent/-/http-cookie-agent-7.0.1.tgz",
+ "integrity": "sha512-lZHFZUdPTw64PdksQac5xbUd4NWjUbyDYnvR//2sbLpcC4UqEUW0x/6O+rDntVzJzJ07QvhtL5XZSC+c5EK+IQ==",
"license": "MIT",
"dependencies": {
"agent-base": "^7.1.3"
@@ -9029,6 +10766,8 @@
},
"node_modules/http-errors": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
+ "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
"license": "MIT",
"dependencies": {
"depd": "~2.0.0",
@@ -9047,10 +10786,14 @@
},
"node_modules/http-status-codes": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.3.0.tgz",
+ "integrity": "sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==",
"license": "MIT"
},
"node_modules/https-proxy-agent": {
"version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz",
+ "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==",
"license": "MIT",
"dependencies": {
"agent-base": "^7.0.2",
@@ -9062,6 +10805,8 @@
},
"node_modules/human-signals": {
"version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.1.tgz",
+ "integrity": "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -9070,6 +10815,8 @@
},
"node_modules/icecast-metadata-js": {
"version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/icecast-metadata-js/-/icecast-metadata-js-1.2.9.tgz",
+ "integrity": "sha512-8YqPrJ4AjM64O28xF9TSUUFczxnTKwXwnIPmZKRxdbaZb6hn0nP+ke1OGNA+UsIfLpNRW4acDDBkIkbynYVQig==",
"license": "LGPL-3.0-or-later",
"dependencies": {
"codec-parser": "2.5.0"
@@ -9081,6 +10828,8 @@
},
"node_modules/icecast-metadata-stats": {
"version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/icecast-metadata-stats/-/icecast-metadata-stats-0.1.12.tgz",
+ "integrity": "sha512-qywYIIvxjAmZIFNUXMVZ/IgIJh87z0W6oOmJ5htPw3SUauXcYoY6rRexvzN5Ibct8hXsqoTcB+k8m6Wa53bfJg==",
"license": "LGPL-3.0-or-later",
"dependencies": {
"icecast-metadata-js": "1.2.9"
@@ -9095,6 +10844,8 @@
},
"node_modules/iconv-lite": {
"version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz",
+ "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==",
"license": "MIT",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3.0.0"
@@ -9109,6 +10860,8 @@
},
"node_modules/ieee754": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
"funding": [
{
"type": "github",
@@ -9127,6 +10880,8 @@
},
"node_modules/ignore": {
"version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9135,11 +10890,15 @@
},
"node_modules/ignore-by-default": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
+ "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==",
"dev": true,
"license": "ISC"
},
"node_modules/immer": {
- "version": "9.0.21",
+ "version": "11.1.8",
+ "resolved": "https://registry.npmjs.org/immer/-/immer-11.1.8.tgz",
+ "integrity": "sha512-/tbkHMW7y10Lx6i1crLjD4/OhNkRG+Fo7byZHtah0547nIeXYcpIXaUh0IAQY6gO5459qpGGYapcEOHtFXkIuA==",
"dev": true,
"license": "MIT",
"funding": {
@@ -9149,11 +10908,15 @@
},
"node_modules/immutable": {
"version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.5.tgz",
+ "integrity": "sha512-t7xcm2siw+hlUM68I+UEOK+z84RzmN59as9DZ7P1l0994DKUWV7UXBMQZVxaoMSRQ+PBZbHCOoBt7a2wxOMt+A==",
"dev": true,
"license": "MIT"
},
"node_modules/import-fresh": {
"version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9169,6 +10932,8 @@
},
"node_modules/imurmurhash": {
"version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9177,6 +10942,8 @@
},
"node_modules/indent-string": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9185,6 +10952,8 @@
},
"node_modules/inflight": {
"version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -9194,10 +10963,14 @@
},
"node_modules/inherits": {
"version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"license": "ISC"
},
"node_modules/iovalkey": {
"version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/iovalkey/-/iovalkey-0.3.3.tgz",
+ "integrity": "sha512-4rTJX6Q5wTYEvxboXi8DsEiUo+OvqJGtLYOSGm37KpdRXsG5XJjbVtYKGJpPSWP+QT7rWscA4vsrdmzbEbenpw==",
"license": "MIT",
"dependencies": {
"@iovalkey/commands": "^0.1.0",
@@ -9216,6 +10989,8 @@
},
"node_modules/ipaddr.js": {
"version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
"license": "MIT",
"engines": {
"node": ">= 0.10"
@@ -9223,11 +10998,15 @@
},
"node_modules/is-arrayish": {
"version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
"dev": true,
"license": "MIT"
},
"node_modules/is-binary-path": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9239,6 +11018,8 @@
},
"node_modules/is-core-module": {
"version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
+ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9253,6 +11034,8 @@
},
"node_modules/is-docker": {
"version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
"license": "MIT",
"bin": {
"is-docker": "cli.js"
@@ -9266,6 +11049,8 @@
},
"node_modules/is-error-instance": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/is-error-instance/-/is-error-instance-3.0.1.tgz",
+ "integrity": "sha512-nEw1ptjtbmXRkHOFrLvpHywsv+jMUZdtqI2BAC/XxMd24vUY5gXhvOprH0Bh4xA2gqQCQsEkr7aaxsgvxYRjnQ==",
"license": "MIT",
"engines": {
"node": ">=18.18.0"
@@ -9273,6 +11058,8 @@
},
"node_modules/is-extglob": {
"version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9281,6 +11068,8 @@
},
"node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"license": "MIT",
"engines": {
"node": ">=8"
@@ -9288,6 +11077,8 @@
},
"node_modules/is-glob": {
"version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9299,6 +11090,8 @@
},
"node_modules/is-inside-container": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
+ "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9316,6 +11109,8 @@
},
"node_modules/is-inside-container/node_modules/is-docker": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
+ "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
"dev": true,
"license": "MIT",
"bin": {
@@ -9330,6 +11125,8 @@
},
"node_modules/is-network-error": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz",
+ "integrity": "sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==",
"license": "MIT",
"engines": {
"node": ">=16"
@@ -9340,26 +11137,24 @@
},
"node_modules/is-node-process": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz",
+ "integrity": "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==",
"dev": true,
"license": "MIT"
},
"node_modules/is-number": {
"version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"license": "MIT",
"engines": {
"node": ">=0.12.0"
}
},
- "node_modules/is-path-inside": {
- "version": "3.0.3",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/is-plain-obj": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9374,6 +11169,8 @@
},
"node_modules/is-stream": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
"license": "MIT",
"engines": {
"node": ">=8"
@@ -9384,6 +11181,8 @@
},
"node_modules/is-unicode-supported": {
"version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9395,6 +11194,8 @@
},
"node_modules/is-wsl": {
"version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
"license": "MIT",
"dependencies": {
"is-docker": "^2.0.0"
@@ -9405,18 +11206,26 @@
},
"node_modules/isarray": {
"version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
"license": "MIT"
},
"node_modules/isexe": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
"license": "ISC"
},
"node_modules/iso-datestring-validator": {
"version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/iso-datestring-validator/-/iso-datestring-validator-2.2.2.tgz",
+ "integrity": "sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA==",
"license": "MIT"
},
"node_modules/iso-websocket": {
"version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/iso-websocket/-/iso-websocket-0.3.0.tgz",
+ "integrity": "sha512-RCzPkKMtX36F1FnoII4TO42aQF+ypGgtNuIamR2TwM+9a8JGBbxkxOcFf1WJKsSAh8sv1HXSjR+Lu+jGz/6oVA==",
"license": "MIT",
"dependencies": {
"debug": "^4.3.5",
@@ -9428,6 +11237,8 @@
},
"node_modules/isomorphic-ws": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz",
+ "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==",
"license": "MIT",
"peerDependencies": {
"ws": "*"
@@ -9435,6 +11246,8 @@
},
"node_modules/iti": {
"version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/iti/-/iti-0.7.0.tgz",
+ "integrity": "sha512-ERAkSZdhgrYCKF7zqX7PEGjWpjvotP858ACtpRhXssOo+vdYPD97UUn+/Tzif7oKiabdefQ4NzDETXGHZhZ7dA==",
"license": "MIT",
"dependencies": {
"utility-types": "^3.10.0"
@@ -9445,6 +11258,8 @@
},
"node_modules/jackspeak": {
"version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.2.3.tgz",
+ "integrity": "sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==",
"license": "BlueOak-1.0.0",
"dependencies": {
"@isaacs/cliui": "^9.0.0"
@@ -9458,6 +11273,8 @@
},
"node_modules/jackspeak/node_modules/@isaacs/cliui": {
"version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-9.0.0.tgz",
+ "integrity": "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==",
"license": "BlueOak-1.0.0",
"engines": {
"node": ">=18"
@@ -9465,6 +11282,8 @@
},
"node_modules/jayson": {
"version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/jayson/-/jayson-3.7.0.tgz",
+ "integrity": "sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ==",
"license": "MIT",
"dependencies": {
"@types/connect": "^3.4.33",
@@ -9490,10 +11309,14 @@
},
"node_modules/jayson/node_modules/@types/node": {
"version": "12.20.55",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
+ "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==",
"license": "MIT"
},
"node_modules/jayson/node_modules/ws": {
"version": "7.5.10",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
+ "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
"license": "MIT",
"engines": {
"node": ">=8.3.0"
@@ -9513,6 +11336,8 @@
},
"node_modules/jest-get-type": {
"version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz",
+ "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9521,6 +11346,8 @@
},
"node_modules/jest-matcher-utils": {
"version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz",
+ "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9535,6 +11362,8 @@
},
"node_modules/jest-matcher-utils/node_modules/jest-diff": {
"version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz",
+ "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9549,6 +11378,8 @@
},
"node_modules/jintr": {
"version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/jintr/-/jintr-3.3.1.tgz",
+ "integrity": "sha512-nnOzyhf0SLpbWuZ270Omwbj5LcXUkTcZkVnK8/veJXtSZOiATM5gMZMdmzN75FmTyj+NVgrGaPdH12zIJ24oIA==",
"funding": [
"https://github.com/sponsors/LuanRT"
],
@@ -9569,6 +11400,8 @@
},
"node_modules/jose": {
"version": "5.10.0",
+ "resolved": "https://registry.npmjs.org/jose/-/jose-5.10.0.tgz",
+ "integrity": "sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/panva"
@@ -9576,6 +11409,8 @@
},
"node_modules/joycon": {
"version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz",
+ "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==",
"license": "MIT",
"engines": {
"node": ">=10"
@@ -9583,11 +11418,15 @@
},
"node_modules/js-tokens": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"dev": true,
"license": "MIT"
},
"node_modules/js-yaml": {
"version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9597,8 +11436,17 @@
"js-yaml": "bin/js-yaml.js"
}
},
+ "node_modules/jsbi": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/jsbi/-/jsbi-4.3.2.tgz",
+ "integrity": "sha512-9fqMSQbhJykSeii05nxKl4m6Eqn2P6rOlYiS+C5Dr/HPIU/7yZxu5qzbs40tgaFORiw2Amd0mirjxatXYMkIew==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
"node_modules/jsesc": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
+ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
"dev": true,
"license": "MIT",
"bin": {
@@ -9610,6 +11458,8 @@
},
"node_modules/json-bigint": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz",
+ "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==",
"license": "MIT",
"dependencies": {
"bignumber.js": "^9.0.0"
@@ -9617,23 +11467,33 @@
},
"node_modules/json-buffer": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
"license": "MIT"
},
"node_modules/json-diff-ts": {
"version": "5.0.0-alpha.2",
+ "resolved": "https://registry.npmjs.org/json-diff-ts/-/json-diff-ts-5.0.0-alpha.2.tgz",
+ "integrity": "sha512-7AI6rZNrvqW3Bkmm9Wsq6985MeC8KkK68mgtW7z3aq39QBGMcoyClrbAXlUr6yQ0VbafVtAM+f5b4bAwlxVSAg==",
"license": "MIT"
},
"node_modules/json-parse-even-better-errors": {
"version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
"dev": true,
"license": "MIT"
},
"node_modules/json-schema-traverse": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"license": "MIT"
},
"node_modules/json-stable-stringify": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz",
+ "integrity": "sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==",
"license": "MIT",
"dependencies": {
"call-bind": "^1.0.5",
@@ -9650,15 +11510,21 @@
},
"node_modules/json-stable-stringify-without-jsonify": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
"dev": true,
"license": "MIT"
},
"node_modules/json-stringify-safe": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
"license": "ISC"
},
"node_modules/json5": {
"version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"license": "MIT",
"bin": {
"json5": "lib/cli.js"
@@ -9669,6 +11535,8 @@
},
"node_modules/jsondiffpatch": {
"version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/jsondiffpatch/-/jsondiffpatch-0.7.3.tgz",
+ "integrity": "sha512-zd4dqFiXSYyant2WgSXAZ9+yYqilNVvragVNkNRn2IFZKgjyULNrKRznqN4Zon0MkLueCg+3QaPVCnDAVP20OQ==",
"license": "MIT",
"dependencies": {
"@dmsnell/diff-match-patch": "^1.1.0"
@@ -9697,6 +11565,8 @@
},
"node_modules/jsondiffpatch-react/node_modules/ansi-styles": {
"version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9708,6 +11578,8 @@
},
"node_modules/jsondiffpatch-react/node_modules/chalk": {
"version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9721,6 +11593,8 @@
},
"node_modules/jsondiffpatch-react/node_modules/color-convert": {
"version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9729,11 +11603,15 @@
},
"node_modules/jsondiffpatch-react/node_modules/color-name": {
"version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
"dev": true,
"license": "MIT"
},
"node_modules/jsondiffpatch-react/node_modules/escape-string-regexp": {
"version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9742,6 +11620,8 @@
},
"node_modules/jsondiffpatch-react/node_modules/has-flag": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9750,6 +11630,8 @@
},
"node_modules/jsondiffpatch-react/node_modules/jsondiffpatch": {
"version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/jsondiffpatch/-/jsondiffpatch-0.4.1.tgz",
+ "integrity": "sha512-t0etAxTUk1w5MYdNOkZBZ8rvYYN5iL+2dHCCx/DpkFm/bW28M6y5nUS83D4XdZiHy35Fpaw6LBb+F88fHZnVCw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9765,6 +11647,8 @@
},
"node_modules/jsondiffpatch-react/node_modules/supports-color": {
"version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9776,6 +11660,8 @@
},
"node_modules/jsonfile": {
"version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"license": "MIT",
"dependencies": {
"universalify": "^2.0.0"
@@ -9786,6 +11672,8 @@
},
"node_modules/jsonify": {
"version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz",
+ "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==",
"license": "Public Domain",
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -9793,6 +11681,8 @@
},
"node_modules/jsonparse": {
"version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
+ "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==",
"engines": [
"node >= 0.2.0"
],
@@ -9800,6 +11690,8 @@
},
"node_modules/jsonschema": {
"version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz",
+ "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==",
"license": "MIT",
"engines": {
"node": "*"
@@ -9807,6 +11699,8 @@
},
"node_modules/JSONStream": {
"version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
+ "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
"license": "(MIT OR Apache-2.0)",
"dependencies": {
"jsonparse": "^1.2.0",
@@ -9821,6 +11715,8 @@
},
"node_modules/jsontoxml": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/jsontoxml/-/jsontoxml-1.0.1.tgz",
+ "integrity": "sha512-dtKGq0K8EWQBRqcAaePSgKR4Hyjfsz/LkurHSV3Cxk4H+h2fWDeaN2jzABz+ZmOJylgXS7FGeWmbZ6jgYUMdJQ==",
"license": "MIT",
"engines": {
"node": ">=0.2.0"
@@ -9828,6 +11724,8 @@
},
"node_modules/jwa": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz",
+ "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==",
"license": "MIT",
"dependencies": {
"buffer-equal-constant-time": "^1.0.1",
@@ -9837,6 +11735,8 @@
},
"node_modules/jws": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz",
+ "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==",
"license": "MIT",
"dependencies": {
"jwa": "^2.0.1",
@@ -9845,6 +11745,8 @@
},
"node_modules/keyv": {
"version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.5.0.tgz",
+ "integrity": "sha512-QG7qR2tijh1ftOvClut4YKKg1iW6cx3GZsKoGyJPxHkGWK9oJhG9P3j5deP0QQOGDowBMVQFaP+Vm4NpGYvmIQ==",
"license": "MIT",
"dependencies": {
"@keyv/serialize": "^1.1.0"
@@ -9852,6 +11754,8 @@
},
"node_modules/klaw-sync": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz",
+ "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==",
"license": "MIT",
"dependencies": {
"graceful-fs": "^4.1.11"
@@ -9859,6 +11763,8 @@
},
"node_modules/kodi-api": {
"version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/kodi-api/-/kodi-api-0.2.1.tgz",
+ "integrity": "sha512-FcPJyisjyYZCvtGRLaO/s+gwGgZMdDrowan5/axI43PDB5fxE8OyrLpiwMrSDJ1Fs0ImaSO8UEoeGP9zcKstrQ==",
"license": "ISC",
"dependencies": {
"jayson": "^3.4.4",
@@ -9869,6 +11775,8 @@
},
"node_modules/lastfm-ts-api": {
"version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/lastfm-ts-api/-/lastfm-ts-api-2.6.0.tgz",
+ "integrity": "sha512-Kr4B4/LlEHumvmnzLawXGRQAzn2ApsQ/n+locPyDpGIQgJg/oK9OSAVTS1d47D00NLnZCNoa/+9YB/bkeXL46Q==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/scriptex"
@@ -9876,6 +11784,8 @@
},
"node_modules/leven": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
"license": "MIT",
"engines": {
"node": ">=6"
@@ -9883,6 +11793,8 @@
},
"node_modules/levn": {
"version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10036,9 +11948,6 @@
"arm64"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MPL-2.0",
"optional": true,
"os": [
@@ -10060,9 +11969,6 @@
"arm64"
],
"dev": true,
- "libc": [
- "musl"
- ],
"license": "MPL-2.0",
"optional": true,
"os": [
@@ -10084,9 +11990,6 @@
"x64"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MPL-2.0",
"optional": true,
"os": [
@@ -10108,9 +12011,6 @@
"x64"
],
"dev": true,
- "libc": [
- "musl"
- ],
"license": "MPL-2.0",
"optional": true,
"os": [
@@ -10168,6 +12068,8 @@
},
"node_modules/lightningcss/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==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -10176,11 +12078,25 @@
},
"node_modules/lines-and-columns": {
"version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
"dev": true,
"license": "MIT"
},
+ "node_modules/linkify-it": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz",
+ "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "uc.micro": "^1.0.1"
+ }
+ },
"node_modules/locate-path": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10195,27 +12111,32 @@
},
"node_modules/lodash": {
"version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.0.tgz",
+ "integrity": "sha512-l1mfj2atMqndAHI3ls7XqPxEjV2J9ZkcNyHpoZA3r2T1LLwDB69jgkMWh71YKwhBbK0G2f4WSn05ahmQXVxupA==",
"license": "MIT"
},
"node_modules/lodash.defaults": {
"version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
+ "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==",
"license": "MIT"
},
"node_modules/lodash.isarguments": {
"version": "3.1.0",
- "license": "MIT"
- },
- "node_modules/lodash.merge": {
- "version": "4.6.2",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
+ "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==",
"license": "MIT"
},
"node_modules/lodash.snakecase": {
"version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz",
+ "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==",
"license": "MIT"
},
"node_modules/log-symbols": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10231,10 +12152,14 @@
},
"node_modules/long": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
+ "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==",
"license": "Apache-2.0"
},
"node_modules/loose-envify": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10246,6 +12171,8 @@
},
"node_modules/loupe": {
"version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz",
+ "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10254,6 +12181,8 @@
},
"node_modules/lowercase-keys": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
"license": "MIT",
"engines": {
"node": ">=8"
@@ -10261,6 +12190,8 @@
},
"node_modules/lru-cache": {
"version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -10269,6 +12200,8 @@
},
"node_modules/lz-string": {
"version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz",
+ "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==",
"dev": true,
"license": "MIT",
"peer": true,
@@ -10278,10 +12211,14 @@
},
"node_modules/magic-bytes.js": {
"version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/magic-bytes.js/-/magic-bytes.js-1.13.0.tgz",
+ "integrity": "sha512-afO2mnxW7GDTXMm5/AoN1WuOcdoKhtgXjIvHmobqTD1grNplhGdv3PFOyjCVmrnOZBIT/gD/koDKpYG+0mvHcg==",
"license": "MIT"
},
"node_modules/magic-string": {
"version": "0.30.21",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
+ "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10290,6 +12227,8 @@
},
"node_modules/math-intrinsics": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -10297,6 +12236,8 @@
},
"node_modules/mdast-util-to-hast": {
"version": "13.2.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz",
+ "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10338,6 +12279,8 @@
},
"node_modules/merge-error-cause": {
"version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/merge-error-cause/-/merge-error-cause-5.0.2.tgz",
+ "integrity": "sha512-pToOGIivcb/Vz4lJ3faWGbS92+41YW9QOESpuValOci1xP5hT6bQMiw/Pse7PHYsKSPusNT7zMFwDgqzt2lHXw==",
"license": "MIT",
"dependencies": {
"normalize-exception": "^4.0.1",
@@ -10349,16 +12292,10 @@
"node": ">=18.18.0"
}
},
- "node_modules/merge2": {
- "version": "1.4.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
"node_modules/methods": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -10366,6 +12303,8 @@
},
"node_modules/micromark-util-character": {
"version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
+ "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
"dev": true,
"funding": [
{
@@ -10385,6 +12324,8 @@
},
"node_modules/micromark-util-encode": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz",
+ "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==",
"dev": true,
"funding": [
{
@@ -10400,6 +12341,8 @@
},
"node_modules/micromark-util-sanitize-uri": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz",
+ "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==",
"dev": true,
"funding": [
{
@@ -10420,6 +12363,8 @@
},
"node_modules/micromark-util-symbol": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
"dev": true,
"funding": [
{
@@ -10435,6 +12380,8 @@
},
"node_modules/micromark-util-types": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz",
+ "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==",
"dev": true,
"funding": [
{
@@ -10450,6 +12397,8 @@
},
"node_modules/micromatch": {
"version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"license": "MIT",
"dependencies": {
"braces": "^3.0.3",
@@ -10461,6 +12410,8 @@
},
"node_modules/mime": {
"version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
"license": "MIT",
"bin": {
"mime": "cli.js"
@@ -10471,6 +12422,8 @@
},
"node_modules/mime-db": {
"version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -10478,6 +12431,8 @@
},
"node_modules/mime-types": {
"version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"license": "MIT",
"dependencies": {
"mime-db": "1.52.0"
@@ -10488,6 +12443,8 @@
},
"node_modules/mimic-response": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz",
+ "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==",
"license": "MIT",
"engines": {
"node": ">=8"
@@ -10498,6 +12455,8 @@
},
"node_modules/min-indent": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
+ "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -10506,6 +12465,8 @@
},
"node_modules/minimatch": {
"version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -10517,6 +12478,8 @@
},
"node_modules/minimist": {
"version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -10524,6 +12487,8 @@
},
"node_modules/minipass": {
"version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz",
+ "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==",
"license": "BlueOak-1.0.0",
"engines": {
"node": ">=16 || 14 >=14.17"
@@ -10531,10 +12496,14 @@
},
"node_modules/mitt": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz",
+ "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==",
"license": "MIT"
},
"node_modules/mocha": {
"version": "10.8.2",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz",
+ "integrity": "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10569,6 +12538,8 @@
},
"node_modules/mocha/node_modules/brace-expansion": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
+ "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10577,6 +12548,8 @@
},
"node_modules/mocha/node_modules/glob": {
"version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
+ "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -10595,6 +12568,8 @@
},
"node_modules/mocha/node_modules/minimatch": {
"version": "5.1.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz",
+ "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -10606,6 +12581,8 @@
},
"node_modules/mocha/node_modules/supports-color": {
"version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10620,11 +12597,15 @@
},
"node_modules/mockdate": {
"version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/mockdate/-/mockdate-3.0.5.tgz",
+ "integrity": "sha512-iniQP4rj1FhBdBYS/+eQv7j1tadJ9lJtdzgOpvsOHng/GbcDh2Fhdeq+ZRldrPYdXvCyfFUmFeEwEGXZB5I/AQ==",
"dev": true,
"license": "MIT"
},
"node_modules/mopidy": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/mopidy/-/mopidy-1.3.0.tgz",
+ "integrity": "sha512-wBk5XKXpZY5tMedeWtiS8mZlwOu5RZYibNe5TW85dQMovN4ZW0gl6SPNAwfqiwQ9YiCDOQwwEQ6CnPNPab6QYA==",
"license": "Apache-2.0",
"dependencies": {
"isomorphic-ws": "^4.0.1",
@@ -10636,6 +12617,8 @@
},
"node_modules/mopidy/node_modules/ws": {
"version": "7.5.10",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
+ "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
"license": "MIT",
"engines": {
"node": ">=8.3.0"
@@ -10667,10 +12650,14 @@
},
"node_modules/ms": {
"version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"license": "MIT"
},
"node_modules/msw": {
"version": "2.12.10",
+ "resolved": "https://registry.npmjs.org/msw/-/msw-2.12.10.tgz",
+ "integrity": "sha512-G3VUymSE0/iegFnuipujpwyTM2GuZAKXNeerUSrG2+Eg391wW63xFs5ixWsK9MWzr1AGoSkYGmyAzNgbR3+urw==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
@@ -10714,6 +12701,8 @@
},
"node_modules/msw/node_modules/cliui": {
"version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -10727,6 +12716,8 @@
},
"node_modules/msw/node_modules/cookie": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz",
+ "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -10739,16 +12730,22 @@
},
"node_modules/msw/node_modules/emoji-regex": {
"version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true,
"license": "MIT"
},
"node_modules/msw/node_modules/path-to-regexp": {
"version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz",
+ "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==",
"dev": true,
"license": "MIT"
},
"node_modules/msw/node_modules/string-width": {
"version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10762,6 +12759,8 @@
},
"node_modules/msw/node_modules/tldts": {
"version": "7.0.25",
+ "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.25.tgz",
+ "integrity": "sha512-keinCnPbwXEUG3ilrWQZU+CqcTTzHq9m2HhoUP2l7Xmi8l1LuijAXLpAJ5zRW+ifKTNscs4NdCkfkDCBYm352w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10773,11 +12772,15 @@
},
"node_modules/msw/node_modules/tldts-core": {
"version": "7.0.25",
+ "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.25.tgz",
+ "integrity": "sha512-ZjCZK0rppSBu7rjHYDYsEaMOIbbT+nWF57hKkv4IUmZWBNrBWBOjIElc0mKRgLM8bm7x/BBlof6t2gi/Oq/Asw==",
"dev": true,
"license": "MIT"
},
"node_modules/msw/node_modules/tough-cookie": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.0.tgz",
+ "integrity": "sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -10789,6 +12792,8 @@
},
"node_modules/msw/node_modules/type-fest": {
"version": "5.4.4",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.4.4.tgz",
+ "integrity": "sha512-JnTrzGu+zPV3aXIUhnyWJj4z/wigMsdYajGLIYakqyOW1nPllzXEJee0QQbHj+CTIQtXGlAjuK0UY+2xTyjVAw==",
"dev": true,
"license": "(MIT OR CC0-1.0)",
"dependencies": {
@@ -10803,6 +12808,8 @@
},
"node_modules/msw/node_modules/wrap-ansi": {
"version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10819,6 +12826,8 @@
},
"node_modules/msw/node_modules/yargs": {
"version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10836,6 +12845,8 @@
},
"node_modules/msw/node_modules/yargs-parser": {
"version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
"dev": true,
"license": "ISC",
"engines": {
@@ -10844,6 +12855,8 @@
},
"node_modules/multiformats": {
"version": "9.9.0",
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz",
+ "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==",
"license": "(Apache-2.0 AND MIT)"
},
"node_modules/musicbrainz-api": {
@@ -10867,6 +12880,8 @@
},
"node_modules/musicbrainz-api/node_modules/uuid": {
"version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-13.0.0.tgz",
+ "integrity": "sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==",
"funding": [
"https://github.com/sponsors/broofa",
"https://github.com/sponsors/ctavan"
@@ -10878,6 +12893,8 @@
},
"node_modules/mute-stream": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz",
+ "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==",
"dev": true,
"license": "ISC",
"engines": {
@@ -10886,6 +12903,8 @@
},
"node_modules/n-gram": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/n-gram/-/n-gram-2.0.2.tgz",
+ "integrity": "sha512-S24aGsn+HLBxUGVAUFOwGpKs7LBcG4RudKU//eWzt/mQ97/NMKQxDWHyHx63UNWk/OOdihgmzoETn1tf5nQDzQ==",
"license": "MIT",
"funding": {
"type": "github",
@@ -10894,6 +12913,8 @@
},
"node_modules/nanoid": {
"version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
"funding": [
{
"type": "github",
@@ -10910,6 +12931,8 @@
},
"node_modules/natural-compare": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
"dev": true,
"license": "MIT"
},
@@ -10924,7 +12947,8 @@
},
"node_modules/neotraverse": {
"version": "0.6.18",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-0.6.18.tgz",
+ "integrity": "sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==",
"license": "MIT",
"engines": {
"node": ">= 10"
@@ -10943,12 +12967,16 @@
},
"node_modules/node-addon-api": {
"version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
+ "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
"dev": true,
"license": "MIT",
"optional": true
},
"node_modules/node-fetch": {
"version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
"license": "MIT",
"dependencies": {
"whatwg-url": "^5.0.0"
@@ -10967,6 +12995,8 @@
},
"node_modules/node-object-hash": {
"version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-3.1.1.tgz",
+ "integrity": "sha512-A32kRGjXtwQ+uSa3GrXiCl8HVFY0Jy6IiKFO7UjagAKSaOOrruxB2Qf/w7TP5QtNfB3uOiHTu3cjhp8k/C0PCg==",
"license": "MIT",
"engines": {
"node": ">=16",
@@ -10982,6 +13012,8 @@
},
"node_modules/nodemon": {
"version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.7.tgz",
+ "integrity": "sha512-hLj7fuMow6f0lbB0cD14Lz2xNjwsyruH251Pk4t/yIitCFJbmY1myuLlHm/q06aST4jg6EgAh74PIBBrRqpVAQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11009,6 +13041,8 @@
},
"node_modules/nodemon/node_modules/has-flag": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -11017,6 +13051,8 @@
},
"node_modules/nodemon/node_modules/semver": {
"version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
"dev": true,
"license": "ISC",
"bin": {
@@ -11028,6 +13064,8 @@
},
"node_modules/nodemon/node_modules/supports-color": {
"version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11039,6 +13077,8 @@
},
"node_modules/non-error": {
"version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/non-error/-/non-error-0.1.0.tgz",
+ "integrity": "sha512-TMB1uHiGsHRGv1uYclfhivcnf0/PdFp2pNqRxXjncaAsjYMoisaQJI+SSZCqRq+VliwRTC8tsMQfmrWjDMhkPQ==",
"license": "MIT",
"engines": {
"node": ">=20"
@@ -11049,6 +13089,8 @@
},
"node_modules/normalize-exception": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/normalize-exception/-/normalize-exception-4.0.1.tgz",
+ "integrity": "sha512-2fUwKMZLYvHIHZN4a6Bt2FYEea6mDwQcTVCffRvQ1bJHndQRRrNhq8+WQiLolOzJ7bJl59SCURGSwCLvQv/X7w==",
"license": "MIT",
"dependencies": {
"is-error-instance": "^3.0.1",
@@ -11060,6 +13102,8 @@
},
"node_modules/normalize-exception/node_modules/is-plain-obj": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
+ "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
"license": "MIT",
"engines": {
"node": ">=12"
@@ -11070,6 +13114,8 @@
},
"node_modules/normalize-path": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -11077,6 +13123,8 @@
},
"node_modules/normalize-url": {
"version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz",
+ "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==",
"license": "MIT",
"engines": {
"node": ">=14.16"
@@ -11087,6 +13135,8 @@
},
"node_modules/npm-run-path": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz",
+ "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11102,6 +13152,8 @@
},
"node_modules/npm-run-path/node_modules/path-key": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -11113,6 +13165,8 @@
},
"node_modules/ntfy": {
"version": "1.15.2",
+ "resolved": "https://registry.npmjs.org/ntfy/-/ntfy-1.15.2.tgz",
+ "integrity": "sha512-ENsbpC5OGh91b/fFVd27eT7/PN34qwRoI0LX0a7igI1l9pb5Qjt2fWJJO/vJSdcf4iWjsdUAq5ZuzZfTL7iaeQ==",
"license": "GPL-3.0",
"engines": {
"node": ">= 21"
@@ -11120,10 +13174,14 @@
},
"node_modules/oauth": {
"version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.10.0.tgz",
+ "integrity": "sha512-1orQ9MT1vHFGQxhuy7E/0gECD3fd2fCC+PIX+/jgmU/gI3EpRocXtmtvxCO5x3WZ443FLTLFWNDjl5MPJf9u+Q==",
"license": "MIT"
},
"node_modules/object-assign": {
"version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -11131,6 +13189,8 @@
},
"node_modules/object-inspect": {
"version": "1.13.4",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
+ "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -11141,6 +13201,8 @@
},
"node_modules/object-keys": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -11148,6 +13210,8 @@
},
"node_modules/on-exit-leak-free": {
"version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz",
+ "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==",
"license": "MIT",
"engines": {
"node": ">=14.0.0"
@@ -11155,6 +13219,8 @@
},
"node_modules/on-finished": {
"version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
"license": "MIT",
"dependencies": {
"ee-first": "1.1.1"
@@ -11165,6 +13231,8 @@
},
"node_modules/on-headers": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz",
+ "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==",
"license": "MIT",
"engines": {
"node": ">= 0.8"
@@ -11172,6 +13240,8 @@
},
"node_modules/once": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"license": "ISC",
"dependencies": {
"wrappy": "1"
@@ -11179,11 +13249,15 @@
},
"node_modules/oniguruma-parser": {
"version": "0.12.1",
+ "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.1.tgz",
+ "integrity": "sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==",
"dev": true,
"license": "MIT"
},
"node_modules/oniguruma-to-es": {
"version": "4.3.5",
+ "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.5.tgz",
+ "integrity": "sha512-Zjygswjpsewa0NLTsiizVuMQZbp0MDyM6lIt66OxsF21npUDlzpHi1Mgb/qhQdkb+dWFTzJmFbEWdvZgRho8eQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11194,6 +13268,8 @@
},
"node_modules/open": {
"version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
+ "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
"license": "MIT",
"dependencies": {
"is-docker": "^2.0.0",
@@ -11208,6 +13284,8 @@
},
"node_modules/optionator": {
"version": "0.9.4",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
+ "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11224,11 +13302,15 @@
},
"node_modules/outvariant": {
"version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.3.tgz",
+ "integrity": "sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==",
"dev": true,
"license": "MIT"
},
"node_modules/p-cancelable": {
"version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz",
+ "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==",
"license": "MIT",
"engines": {
"node": ">=8"
@@ -11236,6 +13318,8 @@
},
"node_modules/p-event": {
"version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz",
+ "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==",
"license": "MIT",
"dependencies": {
"p-timeout": "^3.1.0"
@@ -11249,6 +13333,8 @@
},
"node_modules/p-finally": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==",
"license": "MIT",
"engines": {
"node": ">=4"
@@ -11256,6 +13342,8 @@
},
"node_modules/p-limit": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11270,6 +13358,8 @@
},
"node_modules/p-locate": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11284,6 +13374,8 @@
},
"node_modules/p-map": {
"version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.4.tgz",
+ "integrity": "sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==",
"license": "MIT",
"engines": {
"node": ">=18"
@@ -11294,6 +13386,8 @@
},
"node_modules/p-retry": {
"version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-7.1.1.tgz",
+ "integrity": "sha512-J5ApzjyRkkf601HpEeykoiCvzHQjWxPAHhyjFcEUP2SWq0+35NKh8TLhpLw+Dkq5TZBFvUM6UigdE9hIVYTl5w==",
"license": "MIT",
"dependencies": {
"is-network-error": "^1.1.0"
@@ -11307,6 +13401,8 @@
},
"node_modules/p-timeout": {
"version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz",
+ "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==",
"license": "MIT",
"dependencies": {
"p-finally": "^1.0.0"
@@ -11317,10 +13413,14 @@
},
"node_modules/package-json-from-dist": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
+ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
"license": "BlueOak-1.0.0"
},
"node_modules/parent-module": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11332,6 +13432,8 @@
},
"node_modules/parse-json": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11349,6 +13451,8 @@
},
"node_modules/parse-ms": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz",
+ "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -11360,6 +13464,8 @@
},
"node_modules/parseurl": {
"version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
"license": "MIT",
"engines": {
"node": ">= 0.8"
@@ -11367,6 +13473,8 @@
},
"node_modules/passport": {
"version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/passport/-/passport-0.6.0.tgz",
+ "integrity": "sha512-0fe+p3ZnrWRW74fe8+SvCyf4a3Pb2/h7gFkQ8yTJpAO50gDzlfjZUZTO1k5Eg9kUct22OxHLqDZoKUWRHOh9ug==",
"license": "MIT",
"dependencies": {
"passport-strategy": "1.x.x",
@@ -11383,6 +13491,8 @@
},
"node_modules/passport-deezer": {
"version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/passport-deezer/-/passport-deezer-0.2.0.tgz",
+ "integrity": "sha512-VNNkKc4ccpAsPFTu85mBkdtUGpipJbIohfC+ZUlDP8gkJKH/bPe7myz/Va+pKWSQ1LHsEHwo5Ljw1aARp6M+cA==",
"license": "MIT",
"dependencies": {
"passport-oauth2": "^1.1.2"
@@ -11390,6 +13500,8 @@
},
"node_modules/passport-oauth2": {
"version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/passport-oauth2/-/passport-oauth2-1.8.0.tgz",
+ "integrity": "sha512-cjsQbOrXIDE4P8nNb3FQRCCmJJ/utnFKEz2NX209f7KOHPoX18gF7gBzBbLLsj2/je4KrgiwLLGjf0lm9rtTBA==",
"license": "MIT",
"dependencies": {
"base64url": "3.x.x",
@@ -11408,12 +13520,16 @@
},
"node_modules/passport-strategy": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz",
+ "integrity": "sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA==",
"engines": {
"node": ">= 0.4.0"
}
},
"node_modules/patch-package": {
"version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-8.0.1.tgz",
+ "integrity": "sha512-VsKRIA8f5uqHQ7NGhwIna6Bx6D9s/1iXlA1hthBVBEbkq+t4kXD0HHt+rJhf/Z+Ci0F/HCB2hvn0qLdLG+Qxlw==",
"license": "MIT",
"dependencies": {
"@yarnpkg/lockfile": "^1.1.0",
@@ -11441,6 +13557,8 @@
},
"node_modules/patch-package/node_modules/semver": {
"version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
@@ -11451,22 +13569,18 @@
},
"node_modules/path-exists": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/path-is-absolute": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/path-key": {
"version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
"license": "MIT",
"engines": {
"node": ">=8"
@@ -11474,11 +13588,15 @@
},
"node_modules/path-parse": {
"version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
"dev": true,
"license": "MIT"
},
"node_modules/path-scurry": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz",
+ "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==",
"license": "BlueOak-1.0.0",
"dependencies": {
"lru-cache": "^11.0.0",
@@ -11493,6 +13611,8 @@
},
"node_modules/path-scurry/node_modules/lru-cache": {
"version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.1.tgz",
+ "integrity": "sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==",
"license": "ISC",
"engines": {
"node": "20 || >=22"
@@ -11510,6 +13630,8 @@
},
"node_modules/path-type": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -11518,6 +13640,8 @@
},
"node_modules/pathval": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
+ "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -11525,15 +13649,21 @@
}
},
"node_modules/pause": {
- "version": "0.0.1"
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz",
+ "integrity": "sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg=="
},
"node_modules/perfect-freehand": {
"version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/perfect-freehand/-/perfect-freehand-1.2.3.tgz",
+ "integrity": "sha512-bHZSfqDHGNlPpgH2yxXgPHlQSPpEbo+qg7li0M78J9vNAi2yjwLeA4x79BEQhX44lEWpCLSFCeRZwpw0niiXPA==",
"dev": true,
"license": "MIT"
},
"node_modules/phin": {
"version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/phin/-/phin-3.7.1.tgz",
+ "integrity": "sha512-GEazpTWwTZaEQ9RhL7Nyz0WwqilbqgLahDM3D0hxWwmVDI52nXEybHqiN6/elwpkJBhcuj+WbBu+QfT0uhPGfQ==",
"license": "MIT",
"dependencies": {
"centra": "^2.7.0"
@@ -11544,10 +13674,14 @@
},
"node_modules/picocolors": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
"license": "ISC"
},
"node_modules/picomatch": {
"version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",
+ "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",
"license": "MIT",
"engines": {
"node": ">=8.6"
@@ -11558,6 +13692,8 @@
},
"node_modules/pino": {
"version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/pino/-/pino-9.5.0.tgz",
+ "integrity": "sha512-xSEmD4pLnV54t0NOUN16yCl7RIB1c5UUOse5HSyEXtBp+FgFQyPeDutc+Q2ZO7/22vImV7VfEjH/1zV2QuqvYw==",
"license": "MIT",
"dependencies": {
"atomic-sleep": "^1.0.0",
@@ -11578,6 +13714,8 @@
},
"node_modules/pino-abstract-transport": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz",
+ "integrity": "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==",
"license": "MIT",
"dependencies": {
"readable-stream": "^4.0.0",
@@ -11586,6 +13724,8 @@
},
"node_modules/pino-abstract-transport/node_modules/readable-stream": {
"version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz",
+ "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==",
"license": "MIT",
"dependencies": {
"abort-controller": "^3.0.0",
@@ -11600,6 +13740,8 @@
},
"node_modules/pino-pretty": {
"version": "11.3.0",
+ "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-11.3.0.tgz",
+ "integrity": "sha512-oXwn7ICywaZPHmu3epHGU2oJX4nPmKvHvB/bwrJHlGcbEWaVcotkpyVHMKLKmiVryWYByNp0jpgAcXpFJDXJzA==",
"license": "MIT",
"dependencies": {
"colorette": "^2.0.7",
@@ -11623,6 +13765,8 @@
},
"node_modules/pino-pretty/node_modules/pino-abstract-transport": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz",
+ "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==",
"license": "MIT",
"dependencies": {
"split2": "^4.0.0"
@@ -11630,6 +13774,8 @@
},
"node_modules/pino-pretty/node_modules/readable-stream": {
"version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz",
+ "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==",
"license": "MIT",
"dependencies": {
"abort-controller": "^3.0.0",
@@ -11644,6 +13790,8 @@
},
"node_modules/pino-roll": {
"version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/pino-roll/-/pino-roll-2.2.0.tgz",
+ "integrity": "sha512-PSigcOfIQHcPIRcQFuDFe5RVD37waq9T3No8lqPr4CdIaSa9pshUOPVCO1C1mmb3VQ1n5VXUGuKSNk6yDMUi6w==",
"license": "MIT",
"dependencies": {
"date-fns": "^4.1.0",
@@ -11652,10 +13800,14 @@
},
"node_modules/pino-std-serializers": {
"version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz",
+ "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==",
"license": "MIT"
},
"node_modules/pino/node_modules/pino-abstract-transport": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz",
+ "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==",
"license": "MIT",
"dependencies": {
"split2": "^4.0.0"
@@ -11663,6 +13815,8 @@
},
"node_modules/playwright": {
"version": "1.58.2",
+ "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.58.2.tgz",
+ "integrity": "sha512-vA30H8Nvkq/cPBnNw4Q8TWz1EJyqgpuinBcHET0YVJVFldr8JDNiU9LaWAE1KqSkRYazuaBhTpB5ZzShOezQ6A==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -11680,6 +13834,8 @@
},
"node_modules/playwright-core": {
"version": "1.58.2",
+ "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.58.2.tgz",
+ "integrity": "sha512-yZkEtftgwS8CsfYo7nm0KE8jsvm6i/PTgVtB8DL726wNf6H2IMsDuxCpJj59KDaxCtSnrWan2AeDqM7JBaultg==",
"dev": true,
"license": "Apache-2.0",
"bin": {
@@ -11705,7 +13861,9 @@
}
},
"node_modules/postcss": {
- "version": "8.5.8",
+ "version": "8.5.14",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.14.tgz",
+ "integrity": "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==",
"dev": true,
"funding": [
{
@@ -11733,11 +13891,15 @@
},
"node_modules/postcss-value-parser": {
"version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
"dev": true,
"license": "MIT"
},
"node_modules/prelude-ls": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
"dev": true,
"license": "MIT",
"engines": {
@@ -11746,6 +13908,8 @@
},
"node_modules/pretty-format": {
"version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz",
+ "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11759,6 +13923,8 @@
},
"node_modules/pretty-format/node_modules/ansi-styles": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -11770,6 +13936,8 @@
},
"node_modules/pretty-ms": {
"version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.3.0.tgz",
+ "integrity": "sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11784,6 +13952,8 @@
},
"node_modules/process": {
"version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
"license": "MIT",
"engines": {
"node": ">= 0.6.0"
@@ -11791,10 +13961,14 @@
},
"node_modules/process-warning": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-4.0.0.tgz",
+ "integrity": "sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==",
"license": "MIT"
},
"node_modules/prom-client": {
"version": "15.1.3",
+ "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-15.1.3.tgz",
+ "integrity": "sha512-6ZiOBfCywsD4k1BN9IX0uZhF+tJkV8q8llP64G5Hajs4JOeVLPCwpPVcpXy3BwYiUGgyJzsJJQeOIv7+hDSq8g==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/api": "^1.4.0",
@@ -11806,6 +13980,8 @@
},
"node_modules/prop-types": {
"version": "15.8.1",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11816,11 +13992,15 @@
},
"node_modules/prop-types/node_modules/react-is": {
"version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"dev": true,
"license": "MIT"
},
"node_modules/property-information": {
"version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz",
+ "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==",
"dev": true,
"license": "MIT",
"funding": {
@@ -11830,6 +14010,8 @@
},
"node_modules/protobufjs": {
"version": "6.11.4",
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.4.tgz",
+ "integrity": "sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==",
"hasInstallScript": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -11854,6 +14036,8 @@
},
"node_modules/proxy-addr": {
"version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
"license": "MIT",
"dependencies": {
"forwarded": "0.2.0",
@@ -11865,11 +14049,15 @@
},
"node_modules/proxy-compare": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-3.0.1.tgz",
+ "integrity": "sha512-V9plBAt3qjMlS1+nC8771KNf6oJ12gExvaxnNzN/9yVRLdTv/lc+oJlnSzrdYDAvBfTStPCoiaCOTmTs0adv7Q==",
"dev": true,
"license": "MIT"
},
"node_modules/proxy-from-env": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz",
+ "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==",
"license": "MIT",
"peer": true,
"engines": {
@@ -11878,6 +14066,8 @@
},
"node_modules/proxy-memoize": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/proxy-memoize/-/proxy-memoize-3.0.1.tgz",
+ "integrity": "sha512-VDdG/VYtOgdGkWJx7y0o7p+zArSf2383Isci8C+BP3YXgMYDoPd3cCBjw0JdWb6YBb9sFiOPbAADDVTPJnh+9g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11886,11 +14076,15 @@
},
"node_modules/pstree.remy": {
"version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
+ "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==",
"dev": true,
"license": "MIT"
},
"node_modules/pump": {
"version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
+ "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==",
"license": "MIT",
"dependencies": {
"end-of-stream": "^1.1.0",
@@ -11899,6 +14093,8 @@
},
"node_modules/punycode": {
"version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
"license": "MIT",
"engines": {
"node": ">=6"
@@ -11906,6 +14102,8 @@
},
"node_modules/qs": {
"version": "6.15.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.0.tgz",
+ "integrity": "sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==",
"license": "BSD-3-Clause",
"dependencies": {
"side-channel": "^1.1.0"
@@ -11917,31 +14115,16 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/queue-microtask": {
- "version": "1.2.3",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
"node_modules/quick-format-unescaped": {
"version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz",
+ "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==",
"license": "MIT"
},
"node_modules/random-bytes": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
+ "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==",
"license": "MIT",
"engines": {
"node": ">= 0.8"
@@ -11949,6 +14132,8 @@
},
"node_modules/randombytes": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11957,6 +14142,8 @@
},
"node_modules/range-parser": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -11973,6 +14160,8 @@
},
"node_modules/raw-body": {
"version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz",
+ "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==",
"license": "MIT",
"dependencies": {
"bytes": "~3.1.2",
@@ -11985,20 +14174,19 @@
}
},
"node_modules/react": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
- "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
+ "version": "19.2.6",
+ "resolved": "https://registry.npmjs.org/react/-/react-19.2.6.tgz",
+ "integrity": "sha512-sfWGGfavi0xr8Pg0sVsyHMAOziVYKgPLNrS7ig+ivMNb3wbCBw3KxtflsGBAwD3gYQlE/AEZsTLgToRrSCjb0Q==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0"
- },
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/react-docgen": {
"version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-8.0.3.tgz",
+ "integrity": "sha512-aEZ9qP+/M+58x2qgfSFEWH1BxLyHe5+qkLNJOZQb5iGS017jpbRnoKhNRrXPeA6RfBrZO5wZrT9DMC1UqE1f1w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -12019,6 +14207,8 @@
},
"node_modules/react-docgen-typescript": {
"version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-2.4.0.tgz",
+ "integrity": "sha512-ZtAp5XTO5HRzQctjPU0ybY0RRCQO19X/8fxn3w7y2VVTUbGHDKULPTL4ky3vB05euSgG5NpALhEhDPvQ56wvXg==",
"dev": true,
"license": "MIT",
"peerDependencies": {
@@ -12027,6 +14217,8 @@
},
"node_modules/react-docgen/node_modules/strip-indent": {
"version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.1.1.tgz",
+ "integrity": "sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -12037,17 +14229,16 @@
}
},
"node_modules/react-dom": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
- "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
+ "version": "19.2.6",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.6.tgz",
+ "integrity": "sha512-0prMI+hvBbPjsWnxDLxlCGyM8PN6UuWjEUCYmZhO67xIV9Xasa/r/vDnq+Xyq4Lo27g8QSbO5YzARu0D1Sps3g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "loose-envify": "^1.1.0",
- "scheduler": "^0.23.2"
+ "scheduler": "^0.27.0"
},
"peerDependencies": {
- "react": "^18.3.1"
+ "react": "^19.2.6"
}
},
"node_modules/react-error-boundary": {
@@ -12072,92 +14263,87 @@
},
"node_modules/react-is": {
"version": "17.0.2",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
+ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
"dev": true,
"license": "MIT"
},
"node_modules/react-redux": {
- "version": "8.1.3",
- "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.1.3.tgz",
- "integrity": "sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw==",
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz",
+ "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/runtime": "^7.12.1",
- "@types/hoist-non-react-statics": "^3.3.1",
- "@types/use-sync-external-store": "^0.0.3",
- "hoist-non-react-statics": "^3.3.2",
- "react-is": "^18.0.0",
- "use-sync-external-store": "^1.0.0"
+ "@types/use-sync-external-store": "^0.0.6",
+ "use-sync-external-store": "^1.4.0"
},
"peerDependencies": {
- "@types/react": "^16.8 || ^17.0 || ^18.0",
- "@types/react-dom": "^16.8 || ^17.0 || ^18.0",
- "react": "^16.8 || ^17.0 || ^18.0",
- "react-dom": "^16.8 || ^17.0 || ^18.0",
- "react-native": ">=0.59",
- "redux": "^4 || ^5.0.0-beta.0"
+ "@types/react": "^18.2.25 || ^19",
+ "react": "^18.0 || ^19",
+ "redux": "^5.0.0"
},
"peerDependenciesMeta": {
"@types/react": {
"optional": true
},
- "@types/react-dom": {
- "optional": true
- },
- "react-dom": {
- "optional": true
- },
- "react-native": {
- "optional": true
- },
"redux": {
"optional": true
}
}
},
- "node_modules/react-redux/node_modules/react-is": {
- "version": "18.3.1",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/react-refresh": {
- "version": "0.14.2",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/react-router": {
- "version": "6.30.3",
+ "version": "7.15.0",
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.15.0.tgz",
+ "integrity": "sha512-HW9vYwuM8f4yx66Izy8xfrzCM+SBJluoZcCbww9A1TySax11S5Vgw6fi3ZjMONw9J4gQwngL7PzkyIpJJpJ7RQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@remix-run/router": "1.23.2"
+ "cookie": "^1.0.1",
+ "set-cookie-parser": "^2.6.0"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=20.0.0"
},
"peerDependencies": {
- "react": ">=16.8"
+ "react": ">=18",
+ "react-dom": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "react-dom": {
+ "optional": true
+ }
}
},
"node_modules/react-router-dom": {
- "version": "6.30.3",
- "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.3.tgz",
- "integrity": "sha512-pxPcv1AczD4vso7G4Z3TKcvlxK7g7TNt3/FNGMhfqyntocvYKj+GCatfigGDjbLozC4baguJ0ReCigoDJXb0ag==",
+ "version": "7.15.0",
+ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.15.0.tgz",
+ "integrity": "sha512-VcrVg64Fo8nwBvDscajG8gRTLIuTC6N50nb22l2HOOV4PTOHgoGp8mUjy9wLiHYoYTSYI36tUnXZgasSRFZorQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@remix-run/router": "1.23.2",
- "react-router": "6.30.3"
+ "react-router": "7.15.0"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=20.0.0"
},
"peerDependencies": {
- "react": ">=16.8",
- "react-dom": ">=16.8"
+ "react": ">=18",
+ "react-dom": ">=18"
+ }
+ },
+ "node_modules/react-router/node_modules/cookie": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz",
+ "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/react-virtuoso": {
@@ -12173,6 +14359,8 @@
},
"node_modules/readable-stream": {
"version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"license": "MIT",
"dependencies": {
"inherits": "^2.0.3",
@@ -12185,6 +14373,8 @@
},
"node_modules/readdirp": {
"version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -12196,6 +14386,8 @@
},
"node_modules/real-require": {
"version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz",
+ "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==",
"license": "MIT",
"engines": {
"node": ">= 12.13.0"
@@ -12203,6 +14395,8 @@
},
"node_modules/recast": {
"version": "0.20.5",
+ "resolved": "https://registry.npmjs.org/recast/-/recast-0.20.5.tgz",
+ "integrity": "sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -12217,6 +14411,8 @@
},
"node_modules/redefine-property": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/redefine-property/-/redefine-property-3.0.1.tgz",
+ "integrity": "sha512-/YYmIi0V+vlg2B/QwwOr/SAirVKYdI9iF+KFRPMK5y2QqGq7Ky6PgxNBVXcuVq9E2o0clC4j2EyC1eigpbW8bA==",
"license": "MIT",
"dependencies": {
"is-plain-obj": "^4.1.0"
@@ -12227,6 +14423,8 @@
},
"node_modules/redefine-property/node_modules/is-plain-obj": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
+ "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
"license": "MIT",
"engines": {
"node": ">=12"
@@ -12237,6 +14435,8 @@
},
"node_modules/redent": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
+ "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -12249,6 +14449,8 @@
},
"node_modules/redis-errors": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz",
+ "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==",
"license": "MIT",
"engines": {
"node": ">=4"
@@ -12256,6 +14458,8 @@
},
"node_modules/redis-parser": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz",
+ "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==",
"license": "MIT",
"dependencies": {
"redis-errors": "^1.0.0"
@@ -12265,28 +14469,33 @@
}
},
"node_modules/redux": {
- "version": "4.2.1",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz",
+ "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==",
"dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.9.2"
- }
+ "license": "MIT"
},
"node_modules/redux-thunk": {
- "version": "2.4.2",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz",
+ "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==",
"dev": true,
"license": "MIT",
"peerDependencies": {
- "redux": "^4"
+ "redux": "^5.0.0"
}
},
"node_modules/regenerator-runtime": {
"version": "0.14.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
+ "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
"dev": true,
"license": "MIT"
},
"node_modules/regex": {
"version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/regex/-/regex-6.1.0.tgz",
+ "integrity": "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -12295,6 +14504,8 @@
},
"node_modules/regex-recursion": {
"version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz",
+ "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -12303,11 +14514,15 @@
},
"node_modules/regex-utilities": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz",
+ "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==",
"dev": true,
"license": "MIT"
},
"node_modules/require-directory": {
"version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -12316,18 +14531,24 @@
},
"node_modules/require-from-string": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/reselect": {
- "version": "4.1.8",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz",
+ "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==",
"dev": true,
"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==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -12347,6 +14568,8 @@
},
"node_modules/resolve-from": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"dev": true,
"license": "MIT",
"engines": {
@@ -12355,6 +14578,8 @@
},
"node_modules/resolve-pkg-maps": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
+ "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
"license": "MIT",
"funding": {
"url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
@@ -12362,6 +14587,8 @@
},
"node_modules/responselike": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz",
+ "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==",
"license": "MIT",
"dependencies": {
"lowercase-keys": "^2.0.0"
@@ -12372,6 +14599,8 @@
},
"node_modules/retry": {
"version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
+ "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
"license": "MIT",
"engines": {
"node": ">= 4"
@@ -12379,96 +14608,56 @@
},
"node_modules/rettime": {
"version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/rettime/-/rettime-0.10.1.tgz",
+ "integrity": "sha512-uyDrIlUEH37cinabq0AX4QbgV4HbFZ/gqoiunWQ1UqBtRvTTytwhNYjE++pO/MjPTZL5KQCf2bEoJ/BJNVQ5Kw==",
"dev": true,
"license": "MIT"
},
- "node_modules/reusify": {
- "version": "1.0.4",
- "dev": true,
- "license": "MIT",
- "engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
- }
- },
- "node_modules/rimraf": {
- "version": "3.0.2",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/rimraf/node_modules/glob": {
- "version": "7.2.3",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/rollup": {
- "version": "4.60.1",
+ "node_modules/rolldown": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0.tgz",
+ "integrity": "sha512-yD986aXDESFGS95spT1LAv0jssywP4npMEjmMHyN2/5+eE8qQJUype2AaKkRiLgBgyD0LFlubwAht7VmY8rGoA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@types/estree": "1.0.8"
+ "@oxc-project/types": "=0.129.0",
+ "@rolldown/pluginutils": "1.0.0"
},
"bin": {
- "rollup": "dist/bin/rollup"
+ "rolldown": "bin/cli.mjs"
},
"engines": {
- "node": ">=18.0.0",
- "npm": ">=8.0.0"
+ "node": "^20.19.0 || >=22.12.0"
},
"optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.60.1",
- "@rollup/rollup-android-arm64": "4.60.1",
- "@rollup/rollup-darwin-arm64": "4.60.1",
- "@rollup/rollup-darwin-x64": "4.60.1",
- "@rollup/rollup-freebsd-arm64": "4.60.1",
- "@rollup/rollup-freebsd-x64": "4.60.1",
- "@rollup/rollup-linux-arm-gnueabihf": "4.60.1",
- "@rollup/rollup-linux-arm-musleabihf": "4.60.1",
- "@rollup/rollup-linux-arm64-gnu": "4.60.1",
- "@rollup/rollup-linux-arm64-musl": "4.60.1",
- "@rollup/rollup-linux-loong64-gnu": "4.60.1",
- "@rollup/rollup-linux-loong64-musl": "4.60.1",
- "@rollup/rollup-linux-ppc64-gnu": "4.60.1",
- "@rollup/rollup-linux-ppc64-musl": "4.60.1",
- "@rollup/rollup-linux-riscv64-gnu": "4.60.1",
- "@rollup/rollup-linux-riscv64-musl": "4.60.1",
- "@rollup/rollup-linux-s390x-gnu": "4.60.1",
- "@rollup/rollup-linux-x64-gnu": "4.60.1",
- "@rollup/rollup-linux-x64-musl": "4.60.1",
- "@rollup/rollup-openbsd-x64": "4.60.1",
- "@rollup/rollup-openharmony-arm64": "4.60.1",
- "@rollup/rollup-win32-arm64-msvc": "4.60.1",
- "@rollup/rollup-win32-ia32-msvc": "4.60.1",
- "@rollup/rollup-win32-x64-gnu": "4.60.1",
- "@rollup/rollup-win32-x64-msvc": "4.60.1",
- "fsevents": "~2.3.2"
- }
+ "@rolldown/binding-android-arm64": "1.0.0",
+ "@rolldown/binding-darwin-arm64": "1.0.0",
+ "@rolldown/binding-darwin-x64": "1.0.0",
+ "@rolldown/binding-freebsd-x64": "1.0.0",
+ "@rolldown/binding-linux-arm-gnueabihf": "1.0.0",
+ "@rolldown/binding-linux-arm64-gnu": "1.0.0",
+ "@rolldown/binding-linux-arm64-musl": "1.0.0",
+ "@rolldown/binding-linux-ppc64-gnu": "1.0.0",
+ "@rolldown/binding-linux-s390x-gnu": "1.0.0",
+ "@rolldown/binding-linux-x64-gnu": "1.0.0",
+ "@rolldown/binding-linux-x64-musl": "1.0.0",
+ "@rolldown/binding-openharmony-arm64": "1.0.0",
+ "@rolldown/binding-wasm32-wasi": "1.0.0",
+ "@rolldown/binding-win32-arm64-msvc": "1.0.0",
+ "@rolldown/binding-win32-x64-msvc": "1.0.0"
+ }
+ },
+ "node_modules/rolldown/node_modules/@rolldown/pluginutils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0.tgz",
+ "integrity": "sha512-aKs/3GSWyV0mrhNmt/96/Z3yczC3yvrzYATCiCXQebBsGyYzjNdUphRVLeJQ67ySKVXRfMxt2lm12pmXvbPFQQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/round-robin-js": {
"version": "3.0.10",
+ "resolved": "https://registry.npmjs.org/round-robin-js/-/round-robin-js-3.0.10.tgz",
+ "integrity": "sha512-CTUQfhMboLGtwNk9oLPFxX1GJZryXIJ8eyKfpGeYOUQmOxBOD4nie/jUKlKHfVMyi3v3gRtauaoORQKi8NJ+yA==",
"license": "MIT",
"dependencies": {
"@datastructures-js/linked-list": "^5.2.2",
@@ -12493,6 +14682,8 @@
},
"node_modules/rpc-websocket-client": {
"version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/rpc-websocket-client/-/rpc-websocket-client-1.1.4.tgz",
+ "integrity": "sha512-UDMVcsNDJ3WET+0EFdmseYX+60MOCA3BpgpZ5dbtiGsqHo+9uWfgNbPZ4iGDtNcX+EUhCt/Y7C0fTmUU3CkkWA==",
"license": "MIT",
"dependencies": {
"isomorphic-ws": "^4.0.1",
@@ -12505,6 +14696,8 @@
},
"node_modules/rpc-websocket-client/node_modules/uuid": {
"version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
"license": "MIT",
"bin": {
"uuid": "bin/uuid"
@@ -12512,6 +14705,8 @@
},
"node_modules/rpc-websocket-client/node_modules/ws": {
"version": "7.5.10",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
+ "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
"license": "MIT",
"engines": {
"node": ">=8.3.0"
@@ -12531,6 +14726,8 @@
},
"node_modules/run-applescript": {
"version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz",
+ "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -12540,30 +14737,10 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/run-parallel": {
- "version": "1.2.0",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "queue-microtask": "^1.2.2"
- }
- },
"node_modules/safe-buffer": {
"version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"funding": [
{
"type": "github",
@@ -12582,6 +14759,8 @@
},
"node_modules/safe-stable-stringify": {
"version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz",
+ "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==",
"license": "MIT",
"engines": {
"node": ">=10"
@@ -12589,6 +14768,8 @@
},
"node_modules/safer-buffer": {
"version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"license": "MIT"
},
"node_modules/sass": {
@@ -12614,6 +14795,8 @@
},
"node_modules/sass/node_modules/chokidar": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz",
+ "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -12628,6 +14811,8 @@
},
"node_modules/sass/node_modules/readdirp": {
"version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz",
+ "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -12640,22 +14825,27 @@
},
"node_modules/sax": {
"version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz",
+ "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==",
"license": "ISC"
},
"node_modules/scheduler": {
- "version": "0.23.2",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz",
+ "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==",
"dev": true,
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0"
- }
+ "license": "MIT"
},
"node_modules/secure-json-parse": {
"version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz",
+ "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==",
"license": "BSD-3-Clause"
},
"node_modules/semver": {
"version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
"license": "ISC",
"bin": {
@@ -12664,6 +14854,8 @@
},
"node_modules/send": {
"version": "0.19.2",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz",
+ "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==",
"license": "MIT",
"dependencies": {
"debug": "2.6.9",
@@ -12686,6 +14878,8 @@
},
"node_modules/send/node_modules/debug": {
"version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"license": "MIT",
"dependencies": {
"ms": "2.0.0"
@@ -12693,10 +14887,14 @@
},
"node_modules/send/node_modules/debug/node_modules/ms": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"license": "MIT"
},
"node_modules/serialize-error": {
"version": "13.0.1",
+ "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-13.0.1.tgz",
+ "integrity": "sha512-bBZaRwLH9PN5HbLCjPId4dP5bNGEtumcErgOX952IsvOhVPrm3/AeK1y0UHA/QaPG701eg0yEnOKsCOC6X/kaA==",
"license": "MIT",
"dependencies": {
"non-error": "^0.1.0",
@@ -12711,6 +14909,8 @@
},
"node_modules/serialize-error/node_modules/type-fest": {
"version": "5.4.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.4.2.tgz",
+ "integrity": "sha512-FLEenlVYf7Zcd34ISMLo3ZzRE1gRjY1nMDTp+bQRBiPsaKyIW8K3Zr99ioHDUgA9OGuGGJPyYpNcffGmBhJfGg==",
"license": "(MIT OR CC0-1.0)",
"dependencies": {
"tagged-tag": "^1.0.0"
@@ -12724,6 +14924,8 @@
},
"node_modules/serialize-javascript": {
"version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
+ "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -12732,6 +14934,8 @@
},
"node_modules/serve-static": {
"version": "1.16.3",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz",
+ "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==",
"license": "MIT",
"dependencies": {
"encodeurl": "~2.0.0",
@@ -12743,8 +14947,17 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/set-cookie-parser": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz",
+ "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/set-error-class": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/set-error-class/-/set-error-class-3.0.1.tgz",
+ "integrity": "sha512-VEsI0yEUMEnXmSkhfj+EwzNC1om7zGy2IdymNyi4FfGzmoxvXXIB1Nv09+DfRgsd7fS+u+FwTqCTSRhhNMcx8w==",
"license": "MIT",
"dependencies": {
"normalize-exception": "^4.0.1"
@@ -12755,6 +14968,8 @@
},
"node_modules/set-error-message": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/set-error-message/-/set-error-message-3.0.1.tgz",
+ "integrity": "sha512-5+TX4opc5Hus1nu5UDQq0y5SuOCvDqQFh+yGcKgzJDKvohVcU51iE2XtTxw/V7VsZ7xA142tei+KSq3ZIB/dNw==",
"license": "MIT",
"dependencies": {
"normalize-exception": "^4.0.1"
@@ -12765,6 +14980,8 @@
},
"node_modules/set-error-props": {
"version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/set-error-props/-/set-error-props-6.0.1.tgz",
+ "integrity": "sha512-P27Piv/xn8Iy+F+xLdY3Qk3Ne63bHFeXgFYc6HAxsKqbzZD3RXrqlLZ+97ObdCn1+o8Pc0qlw6qFbHVnOmKjtA==",
"license": "MIT",
"dependencies": {
"is-error-instance": "^3.0.1",
@@ -12777,6 +14994,8 @@
},
"node_modules/set-error-props/node_modules/is-plain-obj": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
+ "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
"license": "MIT",
"engines": {
"node": ">=12"
@@ -12787,6 +15006,8 @@
},
"node_modules/set-function-length": {
"version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
"license": "MIT",
"dependencies": {
"define-data-property": "^1.1.4",
@@ -12802,10 +15023,14 @@
},
"node_modules/setprototypeof": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
"license": "ISC"
},
"node_modules/shebang-command": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"license": "MIT",
"dependencies": {
"shebang-regex": "^3.0.0"
@@ -12816,6 +15041,8 @@
},
"node_modules/shebang-regex": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"license": "MIT",
"engines": {
"node": ">=8"
@@ -12843,6 +15070,8 @@
},
"node_modules/side-channel": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
+ "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
@@ -12860,6 +15089,8 @@
},
"node_modules/side-channel-list": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
+ "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
@@ -12874,6 +15105,8 @@
},
"node_modules/side-channel-map": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
+ "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.2",
@@ -12890,6 +15123,8 @@
},
"node_modules/side-channel-weakmap": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
+ "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.2",
@@ -12907,6 +15142,8 @@
},
"node_modules/signal-exit": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"license": "ISC",
"engines": {
"node": ">=14"
@@ -12917,6 +15154,8 @@
},
"node_modules/simple-update-notifier": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz",
+ "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -12928,6 +15167,8 @@
},
"node_modules/simple-update-notifier/node_modules/semver": {
"version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
"dev": true,
"license": "ISC",
"bin": {
@@ -12939,6 +15180,8 @@
},
"node_modules/sinon": {
"version": "21.0.2",
+ "resolved": "https://registry.npmjs.org/sinon/-/sinon-21.0.2.tgz",
+ "integrity": "sha512-VHV4UaoxIe5jrMd89Y9duI76T5g3Lp+ET+ctLhLDaZtSznDPah1KKpRElbdBV4RwqWSw2vadFiVs9Del7MbVeQ==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -12955,6 +15198,8 @@
},
"node_modules/sinon/node_modules/diff": {
"version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.3.tgz",
+ "integrity": "sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==",
"dev": true,
"license": "BSD-3-Clause",
"engines": {
@@ -12963,6 +15208,8 @@
},
"node_modules/slash": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
"license": "MIT",
"engines": {
"node": ">=6"
@@ -12970,6 +15217,8 @@
},
"node_modules/sonic-boom": {
"version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz",
+ "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==",
"license": "MIT",
"dependencies": {
"atomic-sleep": "^1.0.0"
@@ -12977,6 +15226,8 @@
},
"node_modules/source-map": {
"version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
"license": "BSD-3-Clause",
"engines": {
@@ -12985,6 +15236,8 @@
},
"node_modules/source-map-js": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
"dev": true,
"license": "BSD-3-Clause",
"engines": {
@@ -12993,6 +15246,8 @@
},
"node_modules/space-separated-tokens": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
+ "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
"dev": true,
"license": "MIT",
"funding": {
@@ -13002,10 +15257,14 @@
},
"node_modules/spark-md5": {
"version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.2.tgz",
+ "integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==",
"license": "(WTFPL OR MIT)"
},
"node_modules/split2": {
"version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
+ "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
"license": "ISC",
"engines": {
"node": ">= 10.x"
@@ -13013,13 +15272,26 @@
},
"node_modules/spotify-web-api-node": {
"version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/spotify-web-api-node/-/spotify-web-api-node-5.0.2.tgz",
+ "integrity": "sha512-r82dRWU9PMimHvHEzL0DwEJrzFk+SMCVfq249SLt3I7EFez7R+jeoKQd+M1//QcnjqlXPs2am4DFsGk8/GCsrA==",
"license": "MIT",
"dependencies": {
"superagent": "^6.1.0"
}
},
+ "node_modules/sqlite-up": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/sqlite-up/-/sqlite-up-0.5.0.tgz",
+ "integrity": "sha512-p9Bx8QafpdGCuTr7VDf1ZF+kWHVO+s+eVCLpPT4Te3cQ+tS8eGWDvyHgecmWkmp0G8M/YC3Nbd32R0r1ARUQAg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=24.0.0"
+ }
+ },
"node_modules/standard-as-callback": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz",
+ "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==",
"license": "MIT"
},
"node_modules/statuses": {
@@ -13032,18 +15304,19 @@
}
},
"node_modules/storybook": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/storybook/-/storybook-10.2.0.tgz",
- "integrity": "sha512-fIQnFtpksRRgHR1CO1onGX3djaog4qsW/c5U8arqYTkUEr2TaWpn05mIJDOBoPJFlOdqFrB4Ttv0PZJxV7avhw==",
+ "version": "10.3.6",
+ "resolved": "https://registry.npmjs.org/storybook/-/storybook-10.3.6.tgz",
+ "integrity": "sha512-vbSz7g/1rGMC1uAULqMZjALkIuLu2QABqfhRYhyr/11kzyesi+vAmwyJLukZP1FfecxGOgMwOh6GS0YsGpHAvQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@storybook/global": "^5.0.0",
"@storybook/icons": "^2.0.1",
- "@testing-library/jest-dom": "^6.6.3",
+ "@testing-library/jest-dom": "^6.9.1",
"@testing-library/user-event": "^14.6.1",
"@vitest/expect": "3.2.4",
"@vitest/spy": "3.2.4",
+ "@webcontainer/env": "^1.1.1",
"esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0 || ^0.26.0 || ^0.27.0",
"open": "^10.2.0",
"recast": "^0.23.5",
@@ -13059,16 +15332,22 @@
"url": "https://opencollective.com/storybook"
},
"peerDependencies": {
- "prettier": "^2 || ^3"
+ "prettier": "^2 || ^3",
+ "vite-plus": "^0.1.15"
},
"peerDependenciesMeta": {
"prettier": {
"optional": true
+ },
+ "vite-plus": {
+ "optional": true
}
}
},
"node_modules/storybook/node_modules/@testing-library/jest-dom": {
"version": "6.9.1",
+ "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz",
+ "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13087,6 +15366,8 @@
},
"node_modules/storybook/node_modules/@testing-library/user-event": {
"version": "14.6.1",
+ "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz",
+ "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -13099,6 +15380,8 @@
},
"node_modules/storybook/node_modules/ast-types": {
"version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.16.1.tgz",
+ "integrity": "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13110,11 +15393,15 @@
},
"node_modules/storybook/node_modules/dom-accessibility-api": {
"version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz",
+ "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==",
"dev": true,
"license": "MIT"
},
"node_modules/storybook/node_modules/open": {
"version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz",
+ "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13132,6 +15419,8 @@
},
"node_modules/storybook/node_modules/recast": {
"version": "0.23.11",
+ "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.11.tgz",
+ "integrity": "sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13147,6 +15436,8 @@
},
"node_modules/storybook/node_modules/semver": {
"version": "7.7.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
+ "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
"dev": true,
"license": "ISC",
"bin": {
@@ -13158,15 +15449,21 @@
},
"node_modules/stream-split": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/stream-split/-/stream-split-1.1.0.tgz",
+ "integrity": "sha512-81kmoMF7sW2G+m9pOq68rJkQXoRzMf7ci273tT0/BOYN4b0Zt1FdjM/3x5rdMwookmhu4qj8B3SdncN/Ce0mgg==",
"license": "ISC"
},
"node_modules/strict-event-emitter": {
"version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz",
+ "integrity": "sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==",
"dev": true,
"license": "MIT"
},
"node_modules/string_decoder": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"license": "MIT",
"dependencies": {
"safe-buffer": "~5.2.0"
@@ -13174,6 +15471,8 @@
},
"node_modules/string-width": {
"version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
"license": "MIT",
"dependencies": {
"eastasianwidth": "^0.2.0",
@@ -13190,6 +15489,8 @@
"node_modules/string-width-cjs": {
"name": "string-width",
"version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"license": "MIT",
"dependencies": {
"emoji-regex": "^8.0.0",
@@ -13202,10 +15503,14 @@
},
"node_modules/string-width-cjs/node_modules/emoji-regex": {
"version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"license": "MIT"
},
"node_modules/string-width/node_modules/ansi-regex": {
"version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
"license": "MIT",
"engines": {
"node": ">=12"
@@ -13216,6 +15521,8 @@
},
"node_modules/string-width/node_modules/strip-ansi": {
"version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
"license": "MIT",
"dependencies": {
"ansi-regex": "^6.0.1"
@@ -13229,6 +15536,8 @@
},
"node_modules/stringify-entities": {
"version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz",
+ "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13242,6 +15551,8 @@
},
"node_modules/strip-ansi": {
"version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"license": "MIT",
"dependencies": {
"ansi-regex": "^5.0.1"
@@ -13253,6 +15564,8 @@
"node_modules/strip-ansi-cjs": {
"name": "strip-ansi",
"version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"license": "MIT",
"dependencies": {
"ansi-regex": "^5.0.1"
@@ -13263,6 +15576,8 @@
},
"node_modules/strip-final-newline": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz",
+ "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -13274,6 +15589,8 @@
},
"node_modules/strip-indent": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
+ "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13285,6 +15602,8 @@
},
"node_modules/strip-json-comments": {
"version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
"license": "MIT",
"engines": {
"node": ">=8"
@@ -13295,11 +15614,15 @@
},
"node_modules/stylis": {
"version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz",
+ "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==",
"dev": true,
"license": "MIT"
},
"node_modules/superagent": {
"version": "8.1.2",
+ "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz",
+ "integrity": "sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==",
"license": "MIT",
"dependencies": {
"component-emitter": "^1.3.0",
@@ -13319,6 +15642,8 @@
},
"node_modules/superagent/node_modules/formidable": {
"version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.5.tgz",
+ "integrity": "sha512-Oz5Hwvwak/DCaXVVUtPn4oLMLLy1CdclLKO1LFgU7XzDpVMUU5UjlSLpGMocyQNNk8F6IJW9M/YdooSn2MRI+Q==",
"license": "MIT",
"dependencies": {
"@paralleldrive/cuid2": "^2.2.2",
@@ -13332,6 +15657,8 @@
},
"node_modules/superagent/node_modules/mime": {
"version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
+ "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
"license": "MIT",
"bin": {
"mime": "cli.js"
@@ -13342,6 +15669,8 @@
},
"node_modules/superagent/node_modules/semver": {
"version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
@@ -13352,6 +15681,8 @@
},
"node_modules/supports-color": {
"version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
@@ -13362,6 +15693,8 @@
},
"node_modules/supports-preserve-symlinks-flag": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
"dev": true,
"license": "MIT",
"engines": {
@@ -13373,6 +15706,8 @@
},
"node_modules/tagged-tag": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/tagged-tag/-/tagged-tag-1.0.0.tgz",
+ "integrity": "sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==",
"license": "MIT",
"engines": {
"node": ">=20"
@@ -13404,18 +15739,17 @@
},
"node_modules/tdigest": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.2.tgz",
+ "integrity": "sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==",
"license": "MIT",
"dependencies": {
"bintrees": "1.0.2"
}
},
- "node_modules/text-table": {
- "version": "0.2.0",
- "dev": true,
- "license": "MIT"
- },
"node_modules/thread-stream": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz",
+ "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==",
"license": "MIT",
"dependencies": {
"real-require": "^0.2.0"
@@ -13423,20 +15757,36 @@
},
"node_modules/through": {
"version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
"license": "MIT"
},
"node_modules/tiny-invariant": {
"version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz",
+ "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==",
"dev": true,
"license": "MIT"
},
+ "node_modules/tinyexec": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.1.1.tgz",
+ "integrity": "sha512-VKS/ZaQhhkKFMANmAOhhXVoIfBXblQxGX1myCQ2faQrfmobMftXeJPcZGp0gS07ocvGJWDLZGyOZDadDBqYIJg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
"node_modules/tinyglobby": {
- "version": "0.2.15",
+ "version": "0.2.16",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz",
+ "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==",
"dev": true,
"license": "MIT",
"dependencies": {
"fdir": "^6.5.0",
- "picomatch": "^4.0.3"
+ "picomatch": "^4.0.4"
},
"engines": {
"node": ">=12.0.0"
@@ -13447,6 +15797,8 @@
},
"node_modules/tinyglobby/node_modules/fdir": {
"version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -13463,6 +15815,8 @@
},
"node_modules/tinyglobby/node_modules/picomatch": {
"version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
"dev": true,
"license": "MIT",
"engines": {
@@ -13474,6 +15828,8 @@
},
"node_modules/tinyspy": {
"version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.4.tgz",
+ "integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -13482,6 +15838,8 @@
},
"node_modules/tlds": {
"version": "1.261.0",
+ "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.261.0.tgz",
+ "integrity": "sha512-QXqwfEl9ddlGBaRFXIvNKK6OhipSiLXuRuLJX5DErz0o0Q0rYxulWLdFryTkV5PkdZct5iMInwYEGe/eR++1AA==",
"license": "MIT",
"bin": {
"tlds": "bin.js"
@@ -13489,6 +15847,8 @@
},
"node_modules/tldts": {
"version": "6.1.86",
+ "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz",
+ "integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==",
"license": "MIT",
"dependencies": {
"tldts-core": "^6.1.86"
@@ -13499,10 +15859,14 @@
},
"node_modules/tldts-core": {
"version": "6.1.86",
+ "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz",
+ "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==",
"license": "MIT"
},
"node_modules/tmp": {
"version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz",
+ "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==",
"license": "MIT",
"engines": {
"node": ">=14.14"
@@ -13510,6 +15874,8 @@
},
"node_modules/to-readable-stream": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-2.1.0.tgz",
+ "integrity": "sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w==",
"license": "MIT",
"engines": {
"node": ">=8"
@@ -13517,6 +15883,8 @@
},
"node_modules/to-regex-range": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"license": "MIT",
"dependencies": {
"is-number": "^7.0.0"
@@ -13527,6 +15895,8 @@
},
"node_modules/toad-scheduler": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/toad-scheduler/-/toad-scheduler-3.0.1.tgz",
+ "integrity": "sha512-UunrUeXWHXNauNMP47OHKfFeJlHxt89f29fdwey+EQLnVGbGPcFk7ArTuTk7SCcrSeVDTlhr5ayFHal0Z1LhJg==",
"license": "MIT",
"dependencies": {
"croner": "^7.0.5"
@@ -13534,6 +15904,8 @@
},
"node_modules/toidentifier": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
"license": "MIT",
"engines": {
"node": ">=0.6"
@@ -13541,6 +15913,8 @@
},
"node_modules/touch": {
"version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz",
+ "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==",
"dev": true,
"license": "ISC",
"bin": {
@@ -13549,6 +15923,8 @@
},
"node_modules/tough-cookie": {
"version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz",
+ "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==",
"license": "BSD-3-Clause",
"dependencies": {
"tldts": "^6.1.32"
@@ -13559,10 +15935,14 @@
},
"node_modules/tr46": {
"version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
"license": "MIT"
},
"node_modules/trim-lines": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
+ "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==",
"dev": true,
"license": "MIT",
"funding": {
@@ -13572,21 +15952,27 @@
},
"node_modules/ts_lru_map": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/ts_lru_map/-/ts_lru_map-1.0.2.tgz",
+ "integrity": "sha512-0s7O4OFi0f8DpD03spao04Osrt2b4p1v2uags7JBMLsAe36pUI0mQU6XMgQuQSv5jOTqTFS0W50wTPrlzST80w==",
"license": "MIT"
},
"node_modules/ts-api-utils": {
- "version": "1.4.0",
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz",
+ "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=16"
+ "node": ">=18.12"
},
"peerDependencies": {
- "typescript": ">=4.2.0"
+ "typescript": ">=4.8.4"
}
},
"node_modules/ts-dedent": {
"version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz",
+ "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -13594,7 +15980,9 @@
}
},
"node_modules/ts-essentials": {
- "version": "10.1.1",
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-10.2.0.tgz",
+ "integrity": "sha512-z9FlLywg0XEV46Ws1FwYN4NZDMr9qAe38lTTtgVBqzhhyEgwrnCUkFe4MEqnvar1kY1kFEnlkp56bxn2g0V+UA==",
"dev": true,
"license": "MIT",
"peerDependencies": {
@@ -13608,6 +15996,8 @@
},
"node_modules/ts-json-schema-generator": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/ts-json-schema-generator/-/ts-json-schema-generator-2.3.0.tgz",
+ "integrity": "sha512-t4lBQAwZc0sOJq9LJt3NgbznIcslVnm0JeEMFq8qIRklpMRY8jlYD0YmnRWbqBKANxkby91P1XanSSlSOFpUmg==",
"license": "MIT",
"dependencies": {
"@types/json-schema": "^7.0.15",
@@ -13628,6 +16018,8 @@
},
"node_modules/ts-json-schema-generator/node_modules/brace-expansion": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
+ "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
@@ -13635,6 +16027,8 @@
},
"node_modules/ts-json-schema-generator/node_modules/commander": {
"version": "12.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz",
+ "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==",
"license": "MIT",
"engines": {
"node": ">=18"
@@ -13642,6 +16036,8 @@
},
"node_modules/ts-json-schema-generator/node_modules/glob": {
"version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
"license": "ISC",
"dependencies": {
"foreground-child": "^3.1.0",
@@ -13660,6 +16056,8 @@
},
"node_modules/ts-json-schema-generator/node_modules/jackspeak": {
"version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
+ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
"license": "BlueOak-1.0.0",
"dependencies": {
"@isaacs/cliui": "^8.0.2"
@@ -13673,10 +16071,14 @@
},
"node_modules/ts-json-schema-generator/node_modules/lru-cache": {
"version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
"license": "ISC"
},
"node_modules/ts-json-schema-generator/node_modules/minimatch": {
"version": "9.0.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
+ "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
"license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.2"
@@ -13690,6 +16092,8 @@
},
"node_modules/ts-json-schema-generator/node_modules/path-scurry": {
"version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
"license": "BlueOak-1.0.0",
"dependencies": {
"lru-cache": "^10.2.0",
@@ -13702,12 +16106,29 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/ts-json-schema-generator/node_modules/typescript": {
+ "version": "5.9.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
+ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
"node_modules/ts-mixer": {
"version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.4.tgz",
+ "integrity": "sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==",
"license": "MIT"
},
"node_modules/tsconfig-paths": {
"version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz",
+ "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13721,6 +16142,8 @@
},
"node_modules/tsconfig-paths/node_modules/strip-bom": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -13729,6 +16152,8 @@
},
"node_modules/tslib": {
"version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz",
+ "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==",
"license": "0BSD"
},
"node_modules/tsx": {
@@ -13752,6 +16177,8 @@
},
"node_modules/type-check": {
"version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13763,6 +16190,8 @@
},
"node_modules/type-detect": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz",
+ "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -13771,6 +16200,8 @@
},
"node_modules/type-fest": {
"version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.10.0.tgz",
+ "integrity": "sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw==",
"license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=8"
@@ -13820,14 +16251,21 @@
},
"node_modules/typed-emitter": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/typed-emitter/-/typed-emitter-1.4.0.tgz",
+ "integrity": "sha512-weBmoo3HhpKGgLBOYwe8EB31CzDFuaK7CCL+axXhUYhn4jo6DSkHnbefboCF5i4DQ2aMFe0C/FdTWcPdObgHyg==",
"license": "MIT"
},
"node_modules/typedarray": {
"version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
"license": "MIT"
},
"node_modules/typescript": {
- "version": "5.9.3",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz",
+ "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==",
+ "dev": true,
"license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
@@ -13838,36 +16276,39 @@
}
},
"node_modules/typescript-eslint": {
- "version": "7.18.0",
+ "version": "8.59.3",
+ "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.59.3.tgz",
+ "integrity": "sha512-KgusgyDgG4LI8Ih/sWaCtZ06tckLAS5CvT5A4D1Q7bYVoAAyzwiZvE4BmwDHkhRVkvhRBepKeASoFzQetha7Fg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/eslint-plugin": "7.18.0",
- "@typescript-eslint/parser": "7.18.0",
- "@typescript-eslint/utils": "7.18.0"
+ "@typescript-eslint/eslint-plugin": "8.59.3",
+ "@typescript-eslint/parser": "8.59.3",
+ "@typescript-eslint/typescript-estree": "8.59.3",
+ "@typescript-eslint/utils": "8.59.3"
},
"engines": {
- "node": "^18.18.0 || >=20.0.0"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "eslint": "^8.56.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
+ "typescript": ">=4.8.4 <6.1.0"
}
},
"node_modules/typescript-event-target": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/typescript-event-target/-/typescript-event-target-1.1.1.tgz",
+ "integrity": "sha512-dFSOFBKV6uwaloBCCUhxlD3Pr/P1a/tJdcmPrTXCHlEFD3faj0mztjcGn6VBAhQ0/Bdy8K3VWrrqwbt/ffsYsg==",
"license": "MIT"
},
"node_modules/typeson": {
"version": "9.0.4",
+ "resolved": "https://registry.npmjs.org/typeson/-/typeson-9.0.4.tgz",
+ "integrity": "sha512-umRYLe37m4fTu0AlgFaqu1C+N+i3LqAehCzbvNx9w7alyN1wpPyS6FbBEsvWD2FppS2yJ9gk0FkFBkZ/wJE13Q==",
"license": "MIT",
"engines": {
"node": ">=16.0.0"
@@ -13875,6 +16316,8 @@
},
"node_modules/typeson-registry": {
"version": "11.1.1",
+ "resolved": "https://registry.npmjs.org/typeson-registry/-/typeson-registry-11.1.1.tgz",
+ "integrity": "sha512-WF8meNtURfGXXY2RitEMgZrMEclHU8IdxxN4YTcnXTQUHvisPYsKrxxPFhc4DKTCAc6sVvWVtKelOXFDtw/OQQ==",
"license": "MIT",
"dependencies": {
"base64-arraybuffer-es6": "^3.1.0",
@@ -13887,6 +16330,8 @@
},
"node_modules/typeson-registry/node_modules/tr46": {
"version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz",
+ "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==",
"license": "MIT",
"dependencies": {
"punycode": "^2.3.1"
@@ -13897,6 +16342,8 @@
},
"node_modules/typeson-registry/node_modules/webidl-conversions": {
"version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
+ "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
"license": "BSD-2-Clause",
"engines": {
"node": ">=12"
@@ -13904,6 +16351,8 @@
},
"node_modules/typeson-registry/node_modules/whatwg-url": {
"version": "14.2.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz",
+ "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==",
"license": "MIT",
"dependencies": {
"tr46": "^5.1.0",
@@ -13913,8 +16362,17 @@
"node": ">=18"
}
},
+ "node_modules/uc.micro": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
+ "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/uid-safe": {
"version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz",
+ "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==",
"license": "MIT",
"dependencies": {
"random-bytes": "~1.0.0"
@@ -13925,768 +16383,437 @@
},
"node_modules/uid2": {
"version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.4.tgz",
+ "integrity": "sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA==",
"license": "MIT"
},
"node_modules/uint8arrays": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz",
+ "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==",
"license": "MIT",
"dependencies": {
"multiformats": "^9.4.2"
}
},
"node_modules/undefsafe": {
- "version": "2.0.5",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/undici": {
- "version": "7.24.6",
- "license": "MIT",
- "engines": {
- "node": ">=20.18.1"
- }
- },
- "node_modules/undici-types": {
- "version": "6.21.0",
- "license": "MIT"
- },
- "node_modules/unicorn-magic": {
- "version": "0.3.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/unist-util-is": {
- "version": "6.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-position": {
- "version": "5.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-stringify-position": {
- "version": "4.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-visit": {
- "version": "5.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "unist-util-is": "^6.0.0",
- "unist-util-visit-parents": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-visit-parents": {
- "version": "6.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "unist-util-is": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/universalify": {
- "version": "2.0.1",
- "license": "MIT",
- "engines": {
- "node": ">= 10.0.0"
- }
- },
- "node_modules/unpipe": {
- "version": "1.0.0",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/unplugin": {
- "version": "2.3.11",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/remapping": "^2.3.5",
- "acorn": "^8.15.0",
- "picomatch": "^4.0.3",
- "webpack-virtual-modules": "^0.6.2"
- },
- "engines": {
- "node": ">=18.12.0"
- }
- },
- "node_modules/unplugin/node_modules/picomatch": {
- "version": "4.0.4",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/until-async": {
- "version": "3.0.2",
- "dev": true,
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/kettanaito"
- }
- },
- "node_modules/unws": {
- "version": "0.2.4",
- "license": "MIT",
- "engines": {
- "node": ">=16.14.0"
- },
- "peerDependencies": {
- "ws": "*"
- }
- },
- "node_modules/update-browserslist-db": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
- "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "escalade": "^3.2.0",
- "picocolors": "^1.1.1"
- },
- "bin": {
- "update-browserslist-db": "cli.js"
- },
- "peerDependencies": {
- "browserslist": ">= 4.21.0"
- }
- },
- "node_modules/uqr": {
- "version": "0.1.2",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/uri-js": {
- "version": "4.4.1",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "punycode": "^2.1.0"
- }
- },
- "node_modules/use-sync-external-store": {
- "version": "1.6.0",
- "dev": true,
- "license": "MIT",
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
- }
- },
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "license": "MIT"
- },
- "node_modules/utility-types": {
- "version": "3.11.0",
- "license": "MIT",
- "engines": {
- "node": ">= 4"
- }
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
+ "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/utils-merge": {
- "version": "1.0.1",
+ "node_modules/undici": {
+ "version": "7.24.6",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-7.24.6.tgz",
+ "integrity": "sha512-Xi4agocCbRzt0yYMZGMA6ApD7gvtUFaxm4ZmeacWI4cZxaF6C+8I8QfofC20NAePiB/IcvZmzkJ7XPa471AEtA==",
"license": "MIT",
"engines": {
- "node": ">= 0.4.0"
+ "node": ">=20.18.1"
}
},
- "node_modules/uuid": {
- "version": "8.3.2",
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
+ "node_modules/undici-types": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz",
+ "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
+ "license": "MIT"
},
- "node_modules/vary": {
- "version": "1.1.2",
+ "node_modules/unicode-segmenter": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/unicode-segmenter/-/unicode-segmenter-0.14.5.tgz",
+ "integrity": "sha512-jHGmj2LUuqDcX3hqY12Ql+uhUTn8huuxNZGq7GvtF6bSybzH3aFgedYu/KTzQStEgt1Ra2F3HxadNXsNjb3m3g==",
+ "license": "MIT"
+ },
+ "node_modules/unicorn-magic": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz",
+ "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==",
+ "dev": true,
"license": "MIT",
"engines": {
- "node": ">= 0.8"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/vfile": {
- "version": "6.0.3",
+ "node_modules/unist-util-is": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz",
+ "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@types/unist": "^3.0.0",
- "vfile-message": "^4.0.0"
+ "@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/vfile-message": {
- "version": "4.0.3",
+ "node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@types/unist": "^3.0.0",
- "unist-util-stringify-position": "^4.0.0"
+ "@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/vite": {
- "version": "5.4.21",
+ "node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "esbuild": "^0.21.3",
- "postcss": "^8.4.43",
- "rollup": "^4.20.0"
- },
- "bin": {
- "vite": "bin/vite.js"
- },
- "engines": {
- "node": "^18.0.0 || >=20.0.0"
+ "@types/unist": "^3.0.0"
},
"funding": {
- "url": "https://github.com/vitejs/vite?sponsor=1"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.3"
- },
- "peerDependencies": {
- "@types/node": "^18.0.0 || >=20.0.0",
- "less": "*",
- "lightningcss": "^1.21.0",
- "sass": "*",
- "sass-embedded": "*",
- "stylus": "*",
- "sugarss": "*",
- "terser": "^5.4.0"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- },
- "less": {
- "optional": true
- },
- "lightningcss": {
- "optional": true
- },
- "sass": {
- "optional": true
- },
- "sass-embedded": {
- "optional": true
- },
- "stylus": {
- "optional": true
- },
- "sugarss": {
- "optional": true
- },
- "terser": {
- "optional": true
- }
- }
- },
- "node_modules/vite-express": {
- "version": "0.22.1",
- "resolved": "https://registry.npmjs.org/vite-express/-/vite-express-0.22.1.tgz",
- "integrity": "sha512-hG8nPztZWc4B0lZDspJz5eBHFrHH6c0YJ1RBvkU02uPPA8v+T2Ynj/nEHtZoEbk64fexkTYwwtI8NfRlXu7j7Q==",
- "license": "MIT",
- "dependencies": {
- "express-static-gzip": "^2.2.0",
- "picocolors": "^1.1.1"
- }
- },
- "node_modules/vite/node_modules/@esbuild/aix-ppc64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
- "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "aix"
- ],
- "engines": {
- "node": ">=12"
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/vite/node_modules/@esbuild/android-arm": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
- "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
- "cpu": [
- "arm"
- ],
+ "node_modules/unist-util-visit": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz",
+ "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/vite/node_modules/@esbuild/android-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
- "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/unist-util-visit-parents": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz",
+ "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/vite/node_modules/@esbuild/android-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
- "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
+ "node_modules/universalify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
"license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
"engines": {
- "node": ">=12"
+ "node": ">= 10.0.0"
}
},
- "node_modules/vite/node_modules/@esbuild/darwin-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
- "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
+ "node_modules/unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
"license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
"engines": {
- "node": ">=12"
+ "node": ">= 0.8"
}
},
- "node_modules/vite/node_modules/@esbuild/darwin-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
- "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
- "cpu": [
- "x64"
- ],
+ "node_modules/unplugin": {
+ "version": "2.3.11",
+ "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz",
+ "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
+ "dependencies": {
+ "@jridgewell/remapping": "^2.3.5",
+ "acorn": "^8.15.0",
+ "picomatch": "^4.0.3",
+ "webpack-virtual-modules": "^0.6.2"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=18.12.0"
}
},
- "node_modules/vite/node_modules/@esbuild/freebsd-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
- "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/unplugin/node_modules/picomatch": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
"engines": {
"node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/vite/node_modules/@esbuild/freebsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
- "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
- "cpu": [
- "x64"
- ],
+ "node_modules/until-async": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/until-async/-/until-async-3.0.2.tgz",
+ "integrity": "sha512-IiSk4HlzAMqTUseHHe3VhIGyuFmN90zMTpD3Z3y8jeQbzLIq500MVM7Jq2vUAnTKAFPJrqwkzr6PoTcPhGcOiw==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
+ "funding": {
+ "url": "https://github.com/sponsors/kettanaito"
}
},
- "node_modules/vite/node_modules/@esbuild/linux-arm": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
- "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
- "cpu": [
- "arm"
- ],
- "dev": true,
+ "node_modules/unws": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/unws/-/unws-0.2.4.tgz",
+ "integrity": "sha512-/N1ajiqrSp0A/26/LBg7r10fOcPtGXCqJRJ61sijUFoGZMr6ESWGYn7i0cwr7fR7eEECY5HsitqtjGHDZLAu2w==",
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
"engines": {
- "node": ">=12"
+ "node": ">=16.14.0"
+ },
+ "peerDependencies": {
+ "ws": "*"
}
},
- "node_modules/vite/node_modules/@esbuild/linux-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
- "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/update-browserslist-db": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
+ "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/vite/node_modules/@esbuild/linux-ia32": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
- "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
- "cpu": [
- "ia32"
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
],
- "dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
+ "dependencies": {
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.1"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
}
},
- "node_modules/vite/node_modules/@esbuild/linux-loong64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
- "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
- "cpu": [
- "loong64"
- ],
+ "node_modules/uqr": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/uqr/-/uqr-0.1.2.tgz",
+ "integrity": "sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
+ "license": "MIT"
},
- "node_modules/vite/node_modules/@esbuild/linux-mips64el": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
- "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
- "cpu": [
- "mips64el"
- ],
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "punycode": "^2.1.0"
}
},
- "node_modules/vite/node_modules/@esbuild/linux-ppc64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
- "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
- "cpu": [
- "ppc64"
- ],
+ "node_modules/use-sync-external-store": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz",
+ "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
}
},
- "node_modules/vite/node_modules/@esbuild/linux-riscv64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
- "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "license": "MIT"
},
- "node_modules/vite/node_modules/@esbuild/linux-s390x": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
- "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
+ "node_modules/utility-types": {
+ "version": "3.11.0",
+ "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz",
+ "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==",
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
"engines": {
- "node": ">=12"
+ "node": ">= 4"
}
},
- "node_modules/vite/node_modules/@esbuild/linux-x64": {
- "version": "0.21.5",
- "cpu": [
- "x64"
- ],
- "dev": true,
+ "node_modules/utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
"engines": {
- "node": ">=12"
+ "node": ">= 0.4.0"
}
},
- "node_modules/vite/node_modules/@esbuild/netbsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
- "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
+ "node_modules/uuid": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
"license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=12"
+ "bin": {
+ "uuid": "dist/bin/uuid"
}
},
- "node_modules/vite/node_modules/@esbuild/openbsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
- "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
- "cpu": [
- "x64"
- ],
- "dev": true,
+ "node_modules/vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
"license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
"engines": {
- "node": ">=12"
+ "node": ">= 0.8"
}
},
- "node_modules/vite/node_modules/@esbuild/sunos-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
- "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
- "cpu": [
- "x64"
- ],
+ "node_modules/vfile": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz",
+ "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "sunos"
- ],
- "engines": {
- "node": ">=12"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/vite/node_modules/@esbuild/win32-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
- "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/vfile-message": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz",
+ "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/vite/node_modules/@esbuild/win32-ia32": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
- "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
- "cpu": [
- "ia32"
- ],
+ "node_modules/vite": {
+ "version": "8.0.12",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.12.tgz",
+ "integrity": "sha512-w2dDofOWv2QB09ZITZBsvKTVAlYvPR4IAmrY/v0ir9KvLs0xybR7i48wxhM1/oyBWO34wPns+bPGw5ZrZqDpZg==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
+ "dependencies": {
+ "lightningcss": "^1.32.0",
+ "picomatch": "^4.0.4",
+ "postcss": "^8.5.14",
+ "rolldown": "1.0.0",
+ "tinyglobby": "^0.2.16"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
"engines": {
- "node": ">=12"
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "peerDependencies": {
+ "@types/node": "^20.19.0 || >=22.12.0",
+ "@vitejs/devtools": "^0.1.18",
+ "esbuild": "^0.27.0 || ^0.28.0",
+ "jiti": ">=1.21.0",
+ "less": "^4.0.0",
+ "sass": "^1.70.0",
+ "sass-embedded": "^1.70.0",
+ "stylus": ">=0.54.8",
+ "sugarss": "^5.0.0",
+ "terser": "^5.16.0",
+ "tsx": "^4.8.1",
+ "yaml": "^2.4.2"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "@vitejs/devtools": {
+ "optional": true
+ },
+ "esbuild": {
+ "optional": true
+ },
+ "jiti": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "sass-embedded": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ },
+ "tsx": {
+ "optional": true
+ },
+ "yaml": {
+ "optional": true
+ }
}
},
- "node_modules/vite/node_modules/@esbuild/win32-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
- "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
+ "node_modules/vite-express": {
+ "version": "0.22.1",
+ "resolved": "https://registry.npmjs.org/vite-express/-/vite-express-0.22.1.tgz",
+ "integrity": "sha512-hG8nPztZWc4B0lZDspJz5eBHFrHH6c0YJ1RBvkU02uPPA8v+T2Ynj/nEHtZoEbk64fexkTYwwtI8NfRlXu7j7Q==",
"license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
+ "dependencies": {
+ "express-static-gzip": "^2.2.0",
+ "picocolors": "^1.1.1"
}
},
- "node_modules/vite/node_modules/esbuild": {
- "version": "0.21.5",
+ "node_modules/vite/node_modules/picomatch": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
"dev": true,
- "hasInstallScript": true,
"license": "MIT",
- "bin": {
- "esbuild": "bin/esbuild"
- },
"engines": {
"node": ">=12"
},
- "optionalDependencies": {
- "@esbuild/aix-ppc64": "0.21.5",
- "@esbuild/android-arm": "0.21.5",
- "@esbuild/android-arm64": "0.21.5",
- "@esbuild/android-x64": "0.21.5",
- "@esbuild/darwin-arm64": "0.21.5",
- "@esbuild/darwin-x64": "0.21.5",
- "@esbuild/freebsd-arm64": "0.21.5",
- "@esbuild/freebsd-x64": "0.21.5",
- "@esbuild/linux-arm": "0.21.5",
- "@esbuild/linux-arm64": "0.21.5",
- "@esbuild/linux-ia32": "0.21.5",
- "@esbuild/linux-loong64": "0.21.5",
- "@esbuild/linux-mips64el": "0.21.5",
- "@esbuild/linux-ppc64": "0.21.5",
- "@esbuild/linux-riscv64": "0.21.5",
- "@esbuild/linux-s390x": "0.21.5",
- "@esbuild/linux-x64": "0.21.5",
- "@esbuild/netbsd-x64": "0.21.5",
- "@esbuild/openbsd-x64": "0.21.5",
- "@esbuild/sunos-x64": "0.21.5",
- "@esbuild/win32-arm64": "0.21.5",
- "@esbuild/win32-ia32": "0.21.5",
- "@esbuild/win32-x64": "0.21.5"
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/vlc-client": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/vlc-client/-/vlc-client-1.1.1.tgz",
+ "integrity": "sha512-tnxEyNdRUe8mcQFgrwDV2uOmWKRCH2d+UVunYD7cUwItR68qSA2Q/Ih3eh6i3BaF/7p+AKy1RnwRUcfBwuUM+w==",
"license": "MIT",
"dependencies": {
"phin": "^3.6.1"
@@ -14694,15 +16821,21 @@
},
"node_modules/webidl-conversions": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
"license": "BSD-2-Clause"
},
"node_modules/webpack-virtual-modules": {
"version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz",
+ "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==",
"dev": true,
"license": "MIT"
},
"node_modules/whatwg-url": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
"license": "MIT",
"dependencies": {
"tr46": "~0.0.3",
@@ -14711,6 +16844,8 @@
},
"node_modules/which": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"license": "ISC",
"dependencies": {
"isexe": "^2.0.0"
@@ -14723,39 +16858,27 @@
}
},
"node_modules/with-local-tmp-dir": {
- "version": "6.0.0",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/with-local-tmp-dir/-/with-local-tmp-dir-7.0.1.tgz",
+ "integrity": "sha512-ipyC5Q9ZBbpeLnrBi4BEUElnvDxv0QM0I+ptSIGUMegR9/KVz/bd+WMMWm0Q0qnjOSwSRaxqVfqzy0kVPmaVig==",
"dev": true,
"license": "MIT",
"dependencies": {
"@dword-design/chdir": "^4.0.0",
"@types/fs-extra": "^11.0.4",
- "p-retry": "^6.2.1"
+ "p-retry": "^7.1.1"
},
"engines": {
- "node": ">=20"
+ "node": ">=22"
},
"funding": {
"url": "https://github.com/sponsors/dword-design"
}
},
- "node_modules/with-local-tmp-dir/node_modules/p-retry": {
- "version": "6.2.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/retry": "0.12.2",
- "is-network-error": "^1.0.0",
- "retry": "^0.13.1"
- },
- "engines": {
- "node": ">=16.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/word-wrap": {
"version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -14764,11 +16887,15 @@
},
"node_modules/workerpool": {
"version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz",
+ "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==",
"dev": true,
"license": "Apache-2.0"
},
"node_modules/wrap-ansi": {
"version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
"license": "MIT",
"dependencies": {
"ansi-styles": "^6.1.0",
@@ -14785,6 +16912,8 @@
"node_modules/wrap-ansi-cjs": {
"name": "wrap-ansi",
"version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"license": "MIT",
"dependencies": {
"ansi-styles": "^4.0.0",
@@ -14800,10 +16929,14 @@
},
"node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
"version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"license": "MIT"
},
"node_modules/wrap-ansi-cjs/node_modules/string-width": {
"version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"license": "MIT",
"dependencies": {
"emoji-regex": "^8.0.0",
@@ -14816,6 +16949,8 @@
},
"node_modules/wrap-ansi/node_modules/ansi-regex": {
"version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
"license": "MIT",
"engines": {
"node": ">=12"
@@ -14826,6 +16961,8 @@
},
"node_modules/wrap-ansi/node_modules/ansi-styles": {
"version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
"license": "MIT",
"engines": {
"node": ">=12"
@@ -14836,6 +16973,8 @@
},
"node_modules/wrap-ansi/node_modules/strip-ansi": {
"version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
"license": "MIT",
"dependencies": {
"ansi-regex": "^6.0.1"
@@ -14849,6 +16988,8 @@
},
"node_modules/wrap-error-message": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/wrap-error-message/-/wrap-error-message-3.0.1.tgz",
+ "integrity": "sha512-TjLYwoDEMdPs0h6LfPukMZn2R7tmywbWyRETDosqsE1Gs0mayuSiDQm1MzeDPc8VMTvS4yhLPgICkSXvTeo9ng==",
"license": "MIT",
"dependencies": {
"normalize-exception": "^4.0.1",
@@ -14860,10 +17001,14 @@
},
"node_modules/wrappy": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
"license": "ISC"
},
"node_modules/ws": {
"version": "8.19.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz",
+ "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==",
"license": "MIT",
"engines": {
"node": ">=10.0.0"
@@ -14883,6 +17028,8 @@
},
"node_modules/wsl-utils": {
"version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz",
+ "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -14897,6 +17044,8 @@
},
"node_modules/wsl-utils/node_modules/is-wsl": {
"version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz",
+ "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -14911,6 +17060,8 @@
},
"node_modules/xml2js": {
"version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz",
+ "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==",
"license": "MIT",
"dependencies": {
"sax": ">=0.6.0",
@@ -14922,6 +17073,8 @@
},
"node_modules/xmlbuilder": {
"version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
+ "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
"license": "MIT",
"engines": {
"node": ">=4.0"
@@ -14929,6 +17082,8 @@
},
"node_modules/y18n": {
"version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
"dev": true,
"license": "ISC",
"engines": {
@@ -14937,11 +17092,15 @@
},
"node_modules/yallist": {
"version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
"dev": true,
"license": "ISC"
},
"node_modules/yaml": {
"version": "2.8.3",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz",
+ "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==",
"license": "ISC",
"bin": {
"yaml": "bin.mjs"
@@ -14955,6 +17114,8 @@
},
"node_modules/yargs": {
"version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -14972,6 +17133,8 @@
},
"node_modules/yargs-parser": {
"version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
"dev": true,
"license": "ISC",
"engines": {
@@ -14980,6 +17143,8 @@
},
"node_modules/yargs-unparser": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
+ "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -14994,6 +17159,8 @@
},
"node_modules/yargs-unparser/node_modules/camelcase": {
"version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -15005,6 +17172,8 @@
},
"node_modules/yargs-unparser/node_modules/decamelize": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
+ "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -15016,11 +17185,15 @@
},
"node_modules/yargs/node_modules/emoji-regex": {
"version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true,
"license": "MIT"
},
"node_modules/yargs/node_modules/string-width": {
"version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -15034,10 +17207,14 @@
},
"node_modules/yarn.lock": {
"version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/yarn.lock/-/yarn.lock-0.0.1-security.tgz",
+ "integrity": "sha512-ZRX6v5zGCJMI1T2aO+BQxJggy1vvorXEwonQhWXIC+brO7lkDB3zWelVNAti183ddH6FmJP8z4UDCJnJlioK4Q==",
"dev": true
},
"node_modules/yocto-queue": {
"version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -15049,6 +17226,8 @@
},
"node_modules/yoctocolors": {
"version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.2.tgz",
+ "integrity": "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==",
"dev": true,
"license": "MIT",
"engines": {
@@ -15060,6 +17239,8 @@
},
"node_modules/yoctocolors-cjs": {
"version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz",
+ "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -15071,6 +17252,8 @@
},
"node_modules/youtubei.js": {
"version": "15.0.1",
+ "resolved": "https://registry.npmjs.org/youtubei.js/-/youtubei.js-15.0.1.tgz",
+ "integrity": "sha512-2slapqJS5NuXKHvcACEknyVz0AjH/TrXaOhDM0q2twQKa54kCmfj+7B/2nGfd20uzAe29zW1ejk2qOc4ABuGkg==",
"funding": [
"https://github.com/sponsors/LuanRT"
],
@@ -15083,13 +17266,17 @@
},
"node_modules/youtubei.js/node_modules/undici": {
"version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-6.24.1.tgz",
+ "integrity": "sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==",
"license": "MIT",
"engines": {
"node": ">=18.17"
}
},
"node_modules/zod": {
- "version": "3.23.8",
+ "version": "3.25.76",
+ "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
+ "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/colinhacks"
@@ -15097,6 +17284,8 @@
},
"node_modules/zod-validation-error": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-2.1.0.tgz",
+ "integrity": "sha512-VJh93e2wb4c3tWtGgTa0OF/dTt/zoPCPzXq4V11ZjxmEAFaPi/Zss1xIZdEB5RD8GD00U0/iVXgqkF77RV7pdQ==",
"license": "MIT",
"engines": {
"node": ">=18.0.0"
@@ -15107,6 +17296,8 @@
},
"node_modules/zwitch": {
"version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
+ "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
"dev": true,
"license": "MIT",
"funding": {
diff --git a/package.json b/package.json
index 02066d3f8..71064d2b3 100644
--- a/package.json
+++ b/package.json
@@ -85,6 +85,7 @@
"dbus-ts": "^0.0.7",
"discord.js": "^14.26.0",
"dotenv": "^10.0.0",
+ "drizzle-orm": "^1.0.0-rc.2-c5a84d1",
"express": "^5.2.1",
"express-session": "^1.19.0",
"fast-equals": "^6.0.0",
@@ -109,6 +110,7 @@
"mpc-js": "^2.1.1",
"musicbrainz-api": "^0.27.0",
"nanoid": "^3.3.1",
+ "neotraverse": "^0.6.18",
"node-object-hash": "^3.1.1",
"normalize-url": "^8.0.1",
"ntfy": "^1.15.2",
@@ -122,6 +124,7 @@
"round-robin-js": "^3.0.10",
"serialize-error": "^13.0.1",
"spotify-web-api-node": "^5.0.2",
+ "sqlite-up": "^0.5.0",
"superagent": "^8.0.9",
"toad-scheduler": "^3.0.0",
"tough-cookie": "^5.1.2",
@@ -137,21 +140,20 @@
},
"devDependencies": {
"@chakra-ui/react": "^3.34.0",
- "@chromatic-com/storybook": "^5.0.1",
- "@curvenote/ansi-to-react": "^7.0.0",
+ "@chromatic-com/storybook": "^5.1.2",
"@dbus-types/notifications": "^0.0.5",
"@emotion/react": "^11.14.0",
- "@eslint/js": "^8.56.0",
+ "@eslint/js": "^10.0.1",
"@faker-js/faker": "^9.0.1",
"@fortawesome/fontawesome-svg-core": "^6.7.2",
"@fortawesome/free-solid-svg-icons": "^6.7.2",
"@fortawesome/react-fontawesome": "^0.2.6",
"@gr2m/net-interceptor": "^1.0.0",
- "@react-nano/use-event-source": "^0.13.0",
- "@reduxjs/toolkit": "^1.9.7",
- "@storybook/addon-a11y": "10.1.11",
- "@storybook/addon-docs": "10.1.11",
- "@storybook/react-vite": "10.1.11",
+ "@react-nano/use-event-source": "^0.16.0",
+ "@reduxjs/toolkit": "^2.11.2",
+ "@storybook/addon-a11y": "^10.3.6",
+ "@storybook/addon-docs": "^10.3.6",
+ "@storybook/react-vite": "^10.3.6",
"@tailwindcss/vite": "^4.2.2",
"@tsconfig/node18": "^1.0.1",
"@types/chai": "^4.3.0",
@@ -167,50 +169,52 @@
"@types/jest": "^27.5.2",
"@types/jscodeshift": "^0.11.6",
"@types/mocha": "^9.1.0",
- "@types/node": "^20.19.2",
+ "@types/node": "^24.12.2",
"@types/object-hash": "^3.0.0",
"@types/passport": "^1.0.12",
- "@types/react": "^18.2.18",
- "@types/react-dom": "^18.2.7",
+ "@types/react": "^19.2.14",
+ "@types/react-dom": "^19.2.3",
"@types/react-window": "^1.8.5",
"@types/sinon": "^21.0.0",
"@types/spotify-web-api-node": "^5.0.7",
"@types/superagent": "^8.1.9",
"@types/xml2js": "^0.4.11",
- "@vitejs/plugin-react": "^4.2.1",
+ "@vitejs/plugin-react": "^6.0.1",
+ "ansi-to-react": "^6.2.6",
"autoprefixer": "^10.4.27",
"chai": "^4.3.6",
"chai-as-promised": "^8.0.2",
"clsx": "^2.1.1",
- "eslint": "^8.56.0",
+ "drizzle-kit": "^1.0.0-rc.2-c5a84d1",
+ "eslint": "^10.3.0",
"eslint-plugin-prefer-arrow-functions": "^3.2.4",
- "eslint-plugin-storybook": "10.1.11",
+ "eslint-plugin-storybook": "^10.3.6",
"git-cliff": "^2.12.0",
"jsondiffpatch-react": "^1.0.8",
"mocha": "^10.3.0",
"mockdate": "^3.0.5",
"msw": "^2.12.10",
- "neotraverse": "^0.6.18",
"next-themes": "^0.4.6",
"nodemon": "^3.0.3",
"playwright": "^1.58.2",
- "react": "^18.3.1",
- "react-dom": "^18.3.1",
+ "react": "^19.2.6",
+ "react-dom": "^19.2.6",
"react-error-boundary": "^6.1.1",
"react-icons": "^5.6.0",
- "react-redux": "^8.1.3",
- "react-router-dom": "^6.30.3",
+ "react-redux": "^9.2.0",
+ "react-router-dom": "^7.15.0",
"react-virtuoso": "^4.18.4",
"sass": "^1.99.0",
"shiki": "^4.0.2",
"sinon": "^21.0.2",
- "storybook": "10.2.0",
+ "storybook": "^10.3.6",
"tailwindcss": "^4.2.2",
- "ts-essentials": "^10.1.1",
- "typescript": "^5.9.3",
- "typescript-eslint": "^7.0.1",
- "vite": "^5.4.21",
- "with-local-tmp-dir": "^6.0.0"
+ "tinyexec": "^1.1.1",
+ "ts-essentials": "^10.2.0",
+ "typescript": "^6.0.3",
+ "typescript-eslint": "^8.59.3",
+ "vite": "^8.0.12",
+ "with-local-tmp-dir": "^7.0.1"
},
"browserslist": {
"production": [
@@ -230,6 +234,10 @@
},
"musicbrainz-api": {
"rate-limit-threshold": "0.2.1"
+ },
+ "jsondiffpatch-react": {
+ "react": "$react",
+ "react-dom": "$react-dom"
}
}
}
diff --git a/patches/sqlite-up+0.5.0.patch b/patches/sqlite-up+0.5.0.patch
new file mode 100644
index 000000000..e29beb40e
--- /dev/null
+++ b/patches/sqlite-up+0.5.0.patch
@@ -0,0 +1,149 @@
+diff --git a/node_modules/sqlite-up/dist/index.d.ts b/node_modules/sqlite-up/dist/index.d.ts
+index 99bf154..6e76bae 100644
+--- a/node_modules/sqlite-up/dist/index.d.ts
++++ b/node_modules/sqlite-up/dist/index.d.ts
+@@ -1,5 +1,5 @@
+ import { EventEmitter } from 'node:events';
+-import type { MigrationPlan, MigrationResult, MigrationStatus, MigratorOptions } from './types.js';
++import type { MigrationPlan, MigrationResult, MigrationStatus, MigratorOptions, OptionalArg } from './types.js';
+ /**
+ * Migration provider for SQLite databases.
+ * @example
+@@ -7,7 +7,7 @@ import type { MigrationPlan, MigrationResult, MigrationStatus, MigratorOptions }
+ * const migrator = new Migrator({ db, migrationsDir: 'migrations' });
+ * await migrator.apply();
+ */
+-export declare class Migrator extends EventEmitter {
++export declare class Migrator extends EventEmitter {
+ /**
+ * Driver-specific provider normalized to the sqlite-up database surface.
+ */
+@@ -86,12 +86,12 @@ export declare class Migrator extends EventEmitter {
+ * Apply all pending migrations in a single batch.
+ * Returns the names of applied migrations.
+ */
+- apply(): Promise;
++ apply(...args: OptionalArg): Promise;
+ /**
+ * Roll back the most recent batch of migrations.
+ * Returns the names of rolled back migrations.
+ */
+- rollback(): Promise;
++ rollback(...args: OptionalArg): Promise;
+ /**
+ * Get the status of migrations.
+ * Returns:
+diff --git a/node_modules/sqlite-up/dist/index.d.ts.map b/node_modules/sqlite-up/dist/index.d.ts.map
+index 7f76322..4bdcd79 100644
+--- a/node_modules/sqlite-up/dist/index.d.ts.map
++++ b/node_modules/sqlite-up/dist/index.d.ts.map
+@@ -1 +1 @@
+-{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAK3C,OAAO,KAAK,EAGV,aAAa,EAEb,eAAe,EACf,eAAe,EACf,eAAe,EAEhB,MAAM,YAAY,CAAC;AAEpB;;;;;;GAMG;AACH,qBAAa,QAAS,SAAQ,YAAY;IACxC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAiB;IAEjC;;OAEG;IACH,OAAO,CAAC,EAAE,CAAiB;IAE3B;;OAEG;IACH,OAAO,CAAC,aAAa,CAAS;IAE9B;;OAEG;IACH,OAAO,CAAC,eAAe,CAAS;IAEhC;;OAEG;IACH,OAAO,CAAC,SAAS,CAAS;IAE1B;;OAEG;IACH,OAAO,CAAC,UAAU,CAAmB;IAErC;;OAEG;IACH,OAAO,CAAC,WAAW,CAAS;IAE5B;;OAEG;IACH,OAAO,CAAC,cAAc,CAAW;gBAErB,OAAO,EAAE,eAAe;IAWpC;;;OAGG;YACW,IAAI;IAWlB;;OAEG;YACW,UAAU;IA8BxB;;;;OAIG;YACW,2BAA2B;IA8CzC;;;OAGG;YACW,WAAW;IAsBzB;;OAEG;YACW,WAAW;IAQzB;;OAEG;YACW,eAAe;IAO7B;;OAEG;YACW,eAAe;IAY7B;;OAEG;YACW,eAAe;IAW7B;;;OAGG;YACW,cAAc;IAI5B;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,eAAe,CAAC;IAyEvC;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,eAAe,CAAC;IAsF1C;;;;;;OAMG;IACG,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC;IA+BxC;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC;CAwBrC;AAED,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,iBAAiB,EACjB,YAAY,EACZ,SAAS,EACT,aAAa,EACb,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,eAAe,EACf,eAAe,EACf,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
+\ No newline at end of file
++{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAK3C,OAAO,KAAK,EAGV,aAAa,EAEb,eAAe,EACf,eAAe,EACf,eAAe,EAEf,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB;;;;;;GAMG;AACH,qBAAa,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAE,SAAQ,YAAY;IACvD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAiB;IAEjC;;OAEG;IACH,OAAO,CAAC,EAAE,CAAiB;IAE3B;;OAEG;IACH,OAAO,CAAC,aAAa,CAAS;IAE9B;;OAEG;IACH,OAAO,CAAC,eAAe,CAAS;IAEhC;;OAEG;IACH,OAAO,CAAC,SAAS,CAAS;IAE1B;;OAEG;IACH,OAAO,CAAC,UAAU,CAA2B;IAE7C;;OAEG;IACH,OAAO,CAAC,WAAW,CAAS;IAE5B;;OAEG;IACH,OAAO,CAAC,cAAc,CAAW;gBAErB,OAAO,EAAE,eAAe;IAWpC;;;OAGG;YACW,IAAI;IAWlB;;OAEG;YACW,UAAU;IA8BxB;;;;OAIG;YACW,2BAA2B;IA8CzC;;;OAGG;YACW,WAAW;IAsBzB;;OAEG;YACW,WAAW;IAQzB;;OAEG;YACW,eAAe;IAO7B;;OAEG;YACW,eAAe;IAY7B;;OAEG;YACW,eAAe;IAW7B;;;OAGG;YACW,cAAc;IAI5B;;;OAGG;IACG,KAAK,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAyE9D;;;OAGG;IACG,QAAQ,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAsFjE;;;;;;OAMG;IACG,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC;IA+BxC;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC;CAwBrC;AAED,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,iBAAiB,EACjB,YAAY,EACZ,SAAS,EACT,aAAa,EACb,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,eAAe,EACf,eAAe,EACf,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
+\ No newline at end of file
+diff --git a/node_modules/sqlite-up/dist/index.js b/node_modules/sqlite-up/dist/index.js
+index 6317262..0f1f2f7 100644
+--- a/node_modules/sqlite-up/dist/index.js
++++ b/node_modules/sqlite-up/dist/index.js
+@@ -349,7 +349,7 @@ var Migrator = class extends EventEmitter {
+ * Apply all pending migrations in a single batch.
+ * Returns the names of applied migrations.
+ */
+- async apply() {
++ async apply(...args) {
+ try {
+ await this.init();
+ } catch (err) {
+@@ -384,7 +384,7 @@ var Migrator = class extends EventEmitter {
+ await this.runTransaction(async () => {
+ for (const migration of pendingMigrations) {
+ try {
+- await migration.up(this.db);
++ await migration.up(this.db, args[0]);
+ await this.recordMigration(migration.name, nextBatch);
+ appliedMigrations.push(migration.name);
+ } catch (err) {
+@@ -407,7 +407,7 @@ var Migrator = class extends EventEmitter {
+ * Roll back the most recent batch of migrations.
+ * Returns the names of rolled back migrations.
+ */
+- async rollback() {
++ async rollback(...args) {
+ try {
+ await this.init();
+ } catch (err) {
+@@ -450,7 +450,7 @@ var Migrator = class extends EventEmitter {
+ throw new MigrationFileError(`Migration "${row.name}" not found.`);
+ }
+ try {
+- await migration.down(this.db);
++ await migration.down(this.db, args[0]);
+ await this.removeMigration(migration.name, currentBatch);
+ appliedMigrations.push(migration.name);
+ } catch (err) {
+diff --git a/node_modules/sqlite-up/dist/index.js.map b/node_modules/sqlite-up/dist/index.js.map
+index 2fc533a..a2c3fad 100644
+--- a/node_modules/sqlite-up/dist/index.js.map
++++ b/node_modules/sqlite-up/dist/index.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["../src/index.ts","../src/errors.ts","../src/providers/manual-transaction.ts","../src/providers/better-sqlite3.ts","../src/providers/bun-sql.ts","../src/providers/bun-sqlite.ts","../src/providers/node-sqlite.ts","../src/providers/index.ts"],"sourcesContent":["import { EventEmitter } from 'node:events';\nimport { promises as fs } from 'node:fs';\nimport path from 'node:path';\nimport { MigrationError, MigrationExecutionError, MigrationFileError, MigrationLockError } from './errors.js';\nimport { createSqliteProvider, type SqliteProvider } from './providers/index.js';\nimport type {\n MaybePromise,\n Migration,\n MigrationPlan,\n MigrationRecord,\n MigrationResult,\n MigrationStatus,\n MigratorOptions,\n SqliteDatabase,\n} from './types.js';\n\n/**\n * Migration provider for SQLite databases.\n * @example\n * const db = new DatabaseSync('database.db');\n * const migrator = new Migrator({ db, migrationsDir: 'migrations' });\n * await migrator.apply();\n */\nexport class Migrator extends EventEmitter {\n /**\n * Driver-specific provider normalized to the sqlite-up database surface.\n */\n private provider: SqliteProvider;\n\n /**\n * Database handle used by migrations and internal bookkeeping queries.\n */\n private db: SqliteDatabase;\n\n /**\n * Directory where migration modules are loaded from.\n */\n private migrationsDir: string;\n\n /**\n * Table that records successfully applied migrations.\n */\n private migrationsTable: string;\n\n /**\n * Table that stores the single-row migration lock.\n */\n private lockTable: string;\n\n /**\n * Migration modules loaded from disk in execution order.\n */\n private migrations: Migration[] = [];\n\n /**\n * Whether internal tables and migration files have already been initialized.\n */\n private initialized = false;\n\n /**\n * File extensions considered when loading migration modules.\n */\n private fileExtensions: string[];\n\n constructor(options: MigratorOptions) {\n super();\n\n this.provider = createSqliteProvider(options.db);\n this.db = this.provider.db;\n this.migrationsDir = options.migrationsDir;\n this.migrationsTable = options.migrationsTable ?? 'schema_migrations';\n this.lockTable = options.migrationsLockTable ?? 'schema_migrations_lock';\n this.fileExtensions = options.fileExtensions ?? ['ts', 'js'];\n }\n\n /**\n * Ensures the `schema_migrations` and `schema_migrations_lock` tables exist,\n * and loads migration files from the migrations directory.\n */\n private async init(): Promise {\n if (this.initialized) {\n return;\n }\n\n await this.initTables();\n await this.loadMigrationsFromDirectory();\n\n this.initialized = true;\n }\n\n /**\n * Initializes the `schema_migrations` and `schema_migrations_lock` tables.\n */\n private async initTables(): Promise {\n try {\n // Create the migrations table if it doesn't exist\n await this.db.exec(`\n CREATE TABLE IF NOT EXISTS ${this.migrationsTable} (\n name TEXT PRIMARY KEY,\n executed_at TEXT NOT NULL, -- ISO string\n batch INTEGER NOT NULL\n )\n `);\n\n // Create the lock table if it doesn't exist\n await this.db.exec(`\n CREATE TABLE IF NOT EXISTS ${this.lockTable} (\n id INTEGER PRIMARY KEY CHECK (id = 1),\n locked INTEGER NOT NULL DEFAULT 0\n )\n `);\n\n // Ensure exactly one row in the lock table (id=1)\n await this.db.exec(`\n INSERT OR IGNORE INTO ${this.lockTable} (id, locked) VALUES (1, 0)\n `);\n\n // Load all migration files\n } catch (err) {\n throw new MigrationError('Failed to initialize migrator', err as Error);\n }\n }\n\n /**\n * Load migration files from the `migrationsDir`.\n * Migration files must export { up, down }.\n * The migrations are loaded in alphabetical order.\n */\n private async loadMigrationsFromDirectory(): Promise {\n try {\n const entries = await fs.readdir(this.migrationsDir);\n // Filter and sort migration files alphabetically\n const migrationFiles = entries\n .filter((file) => {\n // Ignore .d.ts files\n if (file.endsWith('.d.ts')) {\n return false;\n }\n // Check if file has one of the allowed extensions\n return this.fileExtensions.some((ext) => file.endsWith(`.${ext}`));\n })\n .sort();\n\n const loadedMigrations: Migration[] = [];\n for (const file of migrationFiles) {\n const fullPath = path.join(this.migrationsDir, file);\n\n let imported: {\n up: (db: SqliteDatabase) => MaybePromise;\n down: (db: SqliteDatabase) => MaybePromise;\n };\n\n try {\n // Dynamic import (ESM)\n imported = await import(fullPath);\n } catch (err) {\n throw new MigrationFileError(`Error loading migration \"${file}\": ${String(err)}`, err as Error);\n }\n\n const { up, down } = imported;\n if (typeof up !== 'function' || typeof down !== 'function') {\n throw new MigrationFileError(`Migration \"${file}\" must export \"up\" and \"down\" functions.`);\n }\n\n loadedMigrations.push({ name: file, up, down });\n }\n\n // Only update migrations array after all files are loaded successfully\n this.migrations = loadedMigrations;\n } catch (err) {\n throw err instanceof MigrationFileError ? err : new MigrationFileError('Failed to load migrations', err as Error);\n }\n }\n\n /**\n * Acquire a lock to prevent concurrent migrations.\n * Throws an error if the lock is already held.\n */\n private async acquireLock(): Promise {\n try {\n await this.runTransaction(async () => {\n const row = (await this.db.prepare(`SELECT locked FROM ${this.lockTable} WHERE id = 1`).get()) as {\n locked: number;\n };\n\n if (row.locked === 1) {\n throw new MigrationLockError('Migration lock already held by another process.');\n }\n\n await this.db.prepare(`UPDATE ${this.lockTable} SET locked = 1 WHERE id = 1`).run();\n });\n } catch (err) {\n if (err instanceof MigrationLockError) {\n throw err;\n }\n\n throw new MigrationLockError('Failed to acquire migration lock', err as Error);\n }\n }\n\n /**\n * Release the migration lock.\n */\n private async releaseLock(): Promise {\n try {\n await this.db.prepare(`UPDATE ${this.lockTable} SET locked = 0 WHERE id = 1`).run();\n } catch (err) {\n throw new MigrationLockError('Failed to release migration lock', err as Error);\n }\n }\n\n /**\n * Get the highest batch number.\n */\n private async getCurrentBatch(): Promise {\n const row = (await this.db.prepare(`SELECT MAX(batch) as batch FROM ${this.migrationsTable}`).get()) as {\n batch: number | null;\n };\n return row?.batch ?? 0;\n }\n\n /**\n * Insert a record for an applied migration.\n */\n private async recordMigration(name: string, batch: number): Promise {\n const executedAt = new Date().toISOString();\n await this.db\n .prepare(\n `\n INSERT INTO ${this.migrationsTable} (name, executed_at, batch)\n VALUES (?, ?, ?)\n `\n )\n .run(name, executedAt, batch);\n }\n\n /**\n * Delete a record for a migration that is being rolled back.\n */\n private async removeMigration(name: string, batch: number): Promise {\n await this.db\n .prepare(\n `\n DELETE FROM ${this.migrationsTable}\n WHERE name = ? AND batch = ?\n `\n )\n .run(name, batch);\n }\n\n /**\n * Run SQL operations in a transaction.\n * @param fn The function to run in the transaction.\n */\n private async runTransaction(fn: () => MaybePromise): Promise {\n await this.provider.transaction(fn);\n }\n\n /**\n * Apply all pending migrations in a single batch.\n * Returns the names of applied migrations.\n */\n async apply(): Promise {\n // Initialize the migrator\n try {\n await this.init();\n } catch (err) {\n return {\n success: false,\n error: err as Error,\n appliedMigrations: [],\n };\n }\n\n // Acquire lock\n try {\n await this.acquireLock();\n } catch (err) {\n return {\n success: false,\n error: err as Error,\n appliedMigrations: [],\n };\n }\n\n const appliedMigrations: string[] = [];\n try {\n const currentBatch = await this.getCurrentBatch();\n const nextBatch = currentBatch + 1;\n\n // Determine pending migrations: not present in schema_migrations\n const appliedNames = new Set(\n (await this.db.prepare(`SELECT name FROM ${this.migrationsTable}`).all()).map(\n (row) => (row as { name: string }).name\n )\n );\n\n // Get pending migrations, if any\n const pendingMigrations = this.migrations.filter((m) => !appliedNames.has(m.name));\n if (pendingMigrations.length === 0) {\n return { success: true, appliedMigrations };\n }\n\n // Perform the migration\n await this.runTransaction(async () => {\n for (const migration of pendingMigrations) {\n try {\n // Apply migration\n await migration.up(this.db);\n\n // Record migration\n await this.recordMigration(migration.name, nextBatch);\n appliedMigrations.push(migration.name);\n } catch (err) {\n throw new MigrationExecutionError(`Failed to apply migration \"${migration.name}\"`, err as Error);\n }\n }\n });\n\n for (const migrationName of appliedMigrations) {\n this.emit('migration:applied', migrationName, nextBatch);\n }\n\n return { success: true, appliedMigrations };\n } catch (error) {\n const err =\n error instanceof MigrationExecutionError\n ? error\n : new MigrationExecutionError('Migration failed', error as Error);\n return { success: false, error: err, appliedMigrations: [] };\n } finally {\n await this.releaseLock();\n }\n }\n\n /**\n * Roll back the most recent batch of migrations.\n * Returns the names of rolled back migrations.\n */\n async rollback(): Promise {\n // Initialize the migrator\n try {\n await this.init();\n } catch (err) {\n return {\n success: false,\n error: err as Error,\n appliedMigrations: [],\n };\n }\n\n // Acquire lock\n try {\n await this.acquireLock();\n } catch (err) {\n return {\n success: false,\n error: err as Error,\n appliedMigrations: [],\n };\n }\n\n const appliedMigrations: string[] = [];\n try {\n // Check if there are migrations to rollback\n const currentBatch = await this.getCurrentBatch();\n if (currentBatch === 0) {\n return { success: true, appliedMigrations };\n }\n\n // Get migrations in the last batch, sorted descending\n const rows = (await this.db\n .prepare(\n `\n SELECT name\n FROM ${this.migrationsTable}\n WHERE batch = ?\n ORDER BY name DESC\n `\n )\n .all(currentBatch)) as { name: string }[];\n\n // No migrations found in the last batch\n if (rows.length === 0) {\n return { success: true, appliedMigrations };\n }\n\n // Perform the rollback\n await this.runTransaction(async () => {\n for (const row of rows) {\n const migration = this.migrations.find((m) => m.name === row.name);\n if (!migration) {\n throw new MigrationFileError(`Migration \"${row.name}\" not found.`);\n }\n\n try {\n // Revert migration\n await migration.down(this.db);\n\n // Remove migration record\n await this.removeMigration(migration.name, currentBatch);\n\n appliedMigrations.push(migration.name);\n } catch (err) {\n throw new MigrationExecutionError(`Failed to rollback migration \"${migration.name}\"`, err as Error);\n }\n }\n });\n\n for (const migrationName of appliedMigrations) {\n this.emit('migration:rollback', migrationName, currentBatch);\n }\n\n return { success: true, appliedMigrations };\n } catch (error) {\n const err =\n error instanceof MigrationExecutionError\n ? error\n : new MigrationExecutionError('Rollback failed', error as Error);\n return { success: false, error: err, appliedMigrations: [] };\n } finally {\n await this.releaseLock();\n }\n }\n\n /**\n * Get the status of migrations.\n * Returns:\n * - currentBatch: the highest batch number applied\n * - pending: number of migrations not yet applied\n * - applied: list of all applied migrations\n */\n async status(): Promise {\n await this.init();\n\n try {\n const currentBatch = await this.getCurrentBatch();\n\n // Get all applied migrations\n const rows = (await this.db\n .prepare(\n `\n SELECT name, executed_at, batch\n FROM ${this.migrationsTable}\n ORDER BY batch ASC, name ASC\n `\n )\n .all()) as MigrationRecord[];\n\n // Determine pending migrations\n const appliedNames = new Set(rows.map((r) => r.name));\n const pending = this.migrations.length - appliedNames.size;\n\n return {\n currentBatch,\n pending,\n applied: rows,\n };\n } catch (err) {\n throw new MigrationError('Failed to get migration status', err as Error);\n }\n }\n\n /**\n * Plan the pending migrations without applying them.\n * Returns the next batch number and the list of pending migration names in order.\n */\n async plan(): Promise {\n await this.init();\n\n try {\n const currentBatch = await this.getCurrentBatch();\n const nextBatch = currentBatch + 1;\n\n // Determine pending migrations: not present in schema_migrations\n const appliedNames = new Set(\n (await this.db.prepare(`SELECT name FROM ${this.migrationsTable}`).all()).map(\n (row) => (row as { name: string }).name\n )\n );\n\n const pendingMigrations = this.migrations.filter((m) => !appliedNames.has(m.name)).map((m) => m.name);\n\n return {\n nextBatch,\n pendingMigrations,\n };\n } catch (err) {\n throw new MigrationError('Failed to create migration plan', err as Error);\n }\n }\n}\n\nexport {\n MigrationError,\n MigrationExecutionError,\n MigrationFileError,\n MigrationLockError,\n} from './errors.js';\nexport type {\n BunSqliteDatabase,\n MaybePromise,\n Migration,\n MigrationPlan,\n MigrationRecord,\n MigrationResult,\n MigrationStatus,\n MigratorDatabase,\n MigratorOptions,\n SqliteDatabase,\n SqliteRunResult,\n SqliteStatement,\n SqliteTransaction,\n} from './types.js';\n","/**\n * Base error class for all sqlite-up errors\n */\nexport class MigrationError extends Error {\n constructor(\n message: string,\n public readonly cause?: Error\n ) {\n super(message);\n this.name = 'MigrationError';\n }\n}\n\n/**\n * Thrown when there's an issue with migration files\n */\nexport class MigrationFileError extends MigrationError {\n constructor(message: string, cause?: Error) {\n super(message, cause);\n this.name = 'MigrationFileError';\n }\n}\n\n/**\n * Thrown when there's a locking issue\n */\nexport class MigrationLockError extends MigrationError {\n constructor(message: string, cause?: Error) {\n super(message, cause);\n this.name = 'MigrationLockError';\n }\n}\n\n/**\n * Thrown when there's an issue during migration execution\n */\nexport class MigrationExecutionError extends MigrationError {\n constructor(message: string, cause?: Error) {\n super(message, cause);\n this.name = 'MigrationExecutionError';\n }\n}\n","import type { MaybePromise, SqliteDatabase } from '../types.js';\nimport type { SqliteProvider } from './types.js';\n\n/**\n * Creates a provider that wraps migration work in explicit SQL transactions.\n */\nexport function createManualTransactionProvider(db: SqliteDatabase): SqliteProvider {\n return {\n db,\n\n /**\n * Runs the callback between BEGIN IMMEDIATE and COMMIT, rolling back on failure.\n */\n transaction: async (fn: () => MaybePromise): Promise => {\n await db.exec('BEGIN IMMEDIATE');\n try {\n await fn();\n await db.exec('COMMIT');\n } catch (err) {\n try {\n await db.exec('ROLLBACK');\n } catch {\n // Preserve the original transaction failure.\n }\n throw err;\n }\n },\n };\n}\n","import type { SqliteDatabase } from '../types.js';\nimport { createManualTransactionProvider } from './manual-transaction.js';\nimport type { SqliteProvider } from './types.js';\n\n/**\n * Structural database shape used to identify better-sqlite3 connections.\n */\nexport type BetterSqlite3Database = SqliteDatabase & {\n transaction?: unknown;\n open?: boolean;\n};\n\n/**\n * Checks whether a value looks like a better-sqlite3 database instance.\n */\nexport function isBetterSqlite3Database(db: unknown): db is BetterSqlite3Database {\n const candidate = db as Partial;\n return (\n typeof candidate.exec === 'function' &&\n typeof candidate.prepare === 'function' &&\n typeof candidate.transaction === 'function' &&\n typeof candidate.open === 'boolean'\n );\n}\n\n/**\n * Creates a sqlite-up provider for better-sqlite3 database instances.\n */\nexport function createBetterSqlite3Provider(db: BetterSqlite3Database): SqliteProvider {\n return createManualTransactionProvider(db);\n}\n","import type { BunSqliteDatabase, MaybePromise, SqliteDatabase, SqliteTransaction } from '../types.js';\nimport type { SqliteProvider } from './types.js';\n\n/**\n * SQLite database facade whose transactions may complete asynchronously.\n */\ninterface AsyncTransactionalSqliteDatabase extends SqliteDatabase {\n /**\n * Creates a transaction runner that can await asynchronous transaction work.\n */\n transaction(\n fn: (...args: Args) => MaybePromise\n ): SqliteTransaction;\n}\n\n/**\n * Executes SQL through Bun SQL and normalizes empty parameter lists.\n */\nasync function executeBunSql(client: BunSqliteDatabase, sql: string, params: unknown[] = []): Promise {\n return await client.unsafe(sql, params.length > 0 ? params : undefined);\n}\n\n/**\n * Checks whether a value looks like Bun's Promise-based SQL client for SQLite.\n */\nexport function isBunSqlDatabase(db: unknown): db is BunSqliteDatabase {\n const candidate = db as Partial;\n return typeof candidate.unsafe === 'function' && typeof (candidate as Partial).exec !== 'function';\n}\n\n/**\n * Creates a sqlite-up provider for Bun SQL SQLite clients.\n */\nexport function createBunSqlProvider(rootClient: BunSqliteDatabase): SqliteProvider {\n let activeClient = rootClient;\n\n const db: AsyncTransactionalSqliteDatabase = {\n /**\n * Executes a SQL statement through the currently active Bun SQL client.\n */\n exec: async (sql: string) => {\n await executeBunSql(activeClient, sql);\n },\n\n /**\n * Creates a prepared-statement facade backed by Bun SQL unsafe execution.\n */\n prepare: (sql: string) => ({\n /**\n * Runs the statement and returns all rows.\n */\n all: (...params: unknown[]) => executeBunSql(activeClient, sql, params),\n\n /**\n * Runs the statement and returns the first row.\n */\n get: async (...params: unknown[]) => {\n const rows = await executeBunSql(activeClient, sql, params);\n return rows[0];\n },\n\n /**\n * Runs the statement for side effects and returns the driver result.\n */\n run: (...params: unknown[]) => executeBunSql(activeClient, sql, params),\n }),\n\n /**\n * Creates a transaction runner using Bun SQL native transactions when available.\n */\n transaction: (fn: (...args: Args) => MaybePromise) => {\n /**\n * Executes the transaction callback with the active transaction client.\n */\n const run = async (...args: Args): Promise => {\n if (typeof rootClient.begin === 'function') {\n return await rootClient.begin(async (tx) => {\n const previousClient = activeClient;\n activeClient = tx;\n\n try {\n return await fn(...args);\n } finally {\n activeClient = previousClient;\n }\n });\n }\n\n await db.exec('BEGIN');\n try {\n const result = await fn(...args);\n await db.exec('COMMIT');\n return result;\n } catch (err) {\n try {\n await db.exec('ROLLBACK');\n } catch {\n // Preserve the original transaction failure.\n }\n throw err;\n }\n };\n\n return run;\n },\n };\n\n return {\n db,\n\n /**\n * Runs migration work inside the Bun SQL transaction facade.\n */\n transaction: async (fn: () => MaybePromise) => {\n const transaction = db.transaction(fn);\n await transaction();\n },\n };\n}\n","import type { SqliteDatabase, SqliteStatement } from '../types.js';\nimport { createManualTransactionProvider } from './manual-transaction.js';\nimport type { SqliteProvider } from './types.js';\n\n/**\n * Structural database shape used to identify Bun's synchronous SQLite client.\n */\nexport type BunSqliteSyncDatabase = SqliteDatabase & {\n query?: (sql: string) => SqliteStatement;\n};\n\n/**\n * Checks whether a value looks like a Bun SQLite database instance.\n */\nexport function isBunSqliteDatabase(db: unknown): db is BunSqliteSyncDatabase {\n const candidate = db as Partial;\n return (\n typeof candidate.exec === 'function' &&\n typeof candidate.prepare === 'function' &&\n typeof candidate.query === 'function'\n );\n}\n\n/**\n * Creates a sqlite-up provider for Bun SQLite database instances.\n */\nexport function createBunSqliteProvider(db: BunSqliteSyncDatabase): SqliteProvider {\n return createManualTransactionProvider(db);\n}\n","import type { SqliteDatabase } from '../types.js';\nimport { createManualTransactionProvider } from './manual-transaction.js';\nimport type { SqliteProvider } from './types.js';\n\n/**\n * Structural database shape used to identify Node's node:sqlite DatabaseSync.\n */\nexport type NodeSqliteDatabase = SqliteDatabase & {\n isOpen?: boolean;\n};\n\n/**\n * Checks whether a value looks like a node:sqlite database instance.\n */\nexport function isNodeSqliteDatabase(db: unknown): db is NodeSqliteDatabase {\n const candidate = db as Partial;\n return (\n typeof candidate.exec === 'function' &&\n typeof candidate.prepare === 'function' &&\n typeof candidate.isOpen === 'boolean'\n );\n}\n\n/**\n * Creates a sqlite-up provider for node:sqlite database instances.\n */\nexport function createNodeSqliteProvider(db: NodeSqliteDatabase): SqliteProvider {\n return createManualTransactionProvider(db);\n}\n","import type { MigratorDatabase, SqliteDatabase } from '../types.js';\nimport { createBetterSqlite3Provider, isBetterSqlite3Database } from './better-sqlite3.js';\nimport { createBunSqlProvider, isBunSqlDatabase } from './bun-sql.js';\nimport { createBunSqliteProvider, isBunSqliteDatabase } from './bun-sqlite.js';\nimport { createManualTransactionProvider } from './manual-transaction.js';\nimport { createNodeSqliteProvider, isNodeSqliteDatabase } from './node-sqlite.js';\nimport type { SqliteProvider } from './types.js';\n\n/**\n * Checks for the minimal SQLite database surface sqlite-up can use directly.\n */\nfunction isSqliteDatabase(db: unknown): db is SqliteDatabase {\n const candidate = db as Partial;\n return typeof candidate.exec === 'function' && typeof candidate.prepare === 'function';\n}\n\n/**\n * Creates the best provider adapter for a supported SQLite database client.\n */\nexport function createSqliteProvider(db: MigratorDatabase): SqliteProvider {\n if (isBunSqlDatabase(db)) {\n return createBunSqlProvider(db);\n }\n\n if (isBunSqliteDatabase(db)) {\n return createBunSqliteProvider(db);\n }\n\n if (isBetterSqlite3Database(db)) {\n return createBetterSqlite3Provider(db);\n }\n\n if (isNodeSqliteDatabase(db)) {\n return createNodeSqliteProvider(db);\n }\n\n if (isSqliteDatabase(db)) {\n return createManualTransactionProvider(db);\n }\n\n if (typeof db === 'object' && db !== null) {\n return createManualTransactionProvider(db as SqliteDatabase);\n }\n\n throw new TypeError('Unsupported SQLite database provider.');\n}\n\nexport { createBetterSqlite3Provider, isBetterSqlite3Database } from './better-sqlite3.js';\nexport { createBunSqlProvider, isBunSqlDatabase } from './bun-sql.js';\nexport { createBunSqliteProvider, isBunSqliteDatabase } from './bun-sqlite.js';\nexport { createNodeSqliteProvider, isNodeSqliteDatabase } from './node-sqlite.js';\nexport type { SqliteProvider } from './types.js';\n"],"mappings":";AAAA,SAAS,oBAAoB;AAC7B,SAAS,YAAY,UAAU;AAC/B,OAAO,UAAU;;;ACCV,IAAM,iBAAN,cAA6B,MAAM;AAAA,EACxC,YACE,SACgB,OAChB;AACA,UAAM,OAAO;AAFG;AAGhB,SAAK,OAAO;AAAA,EACd;AACF;AAKO,IAAM,qBAAN,cAAiC,eAAe;AAAA,EACrD,YAAY,SAAiB,OAAe;AAC1C,UAAM,SAAS,KAAK;AACpB,SAAK,OAAO;AAAA,EACd;AACF;AAKO,IAAM,qBAAN,cAAiC,eAAe;AAAA,EACrD,YAAY,SAAiB,OAAe;AAC1C,UAAM,SAAS,KAAK;AACpB,SAAK,OAAO;AAAA,EACd;AACF;AAKO,IAAM,0BAAN,cAAsC,eAAe;AAAA,EAC1D,YAAY,SAAiB,OAAe;AAC1C,UAAM,SAAS,KAAK;AACpB,SAAK,OAAO;AAAA,EACd;AACF;;;ACnCO,SAAS,gCAAgC,IAAoC;AAClF,SAAO;AAAA,IACL;AAAA;AAAA;AAAA;AAAA,IAKA,aAAa,OAAO,OAAgD;AAClE,YAAM,GAAG,KAAK,iBAAiB;AAC/B,UAAI;AACF,cAAM,GAAG;AACT,cAAM,GAAG,KAAK,QAAQ;AAAA,MACxB,SAAS,KAAK;AACZ,YAAI;AACF,gBAAM,GAAG,KAAK,UAAU;AAAA,QAC1B,QAAQ;AAAA,QAER;AACA,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;;;ACbO,SAAS,wBAAwB,IAA0C;AAChF,QAAM,YAAY;AAClB,SACE,OAAO,UAAU,SAAS,cAC1B,OAAO,UAAU,YAAY,cAC7B,OAAO,UAAU,gBAAgB,cACjC,OAAO,UAAU,SAAS;AAE9B;AAKO,SAAS,4BAA4B,IAA2C;AACrF,SAAO,gCAAgC,EAAE;AAC3C;;;ACZA,eAAe,cAAc,QAA2B,KAAa,SAAoB,CAAC,GAAuB;AAC/G,SAAO,MAAM,OAAO,OAAO,KAAK,OAAO,SAAS,IAAI,SAAS,MAAS;AACxE;AAKO,SAAS,iBAAiB,IAAsC;AACrE,QAAM,YAAY;AAClB,SAAO,OAAO,UAAU,WAAW,cAAc,OAAQ,UAAsC,SAAS;AAC1G;AAKO,SAAS,qBAAqB,YAA+C;AAClF,MAAI,eAAe;AAEnB,QAAM,KAAuC;AAAA;AAAA;AAAA;AAAA,IAI3C,MAAM,OAAO,QAAgB;AAC3B,YAAM,cAAc,cAAc,GAAG;AAAA,IACvC;AAAA;AAAA;AAAA;AAAA,IAKA,SAAS,CAAC,SAAiB;AAAA;AAAA;AAAA;AAAA,MAIzB,KAAK,IAAI,WAAsB,cAAc,cAAc,KAAK,MAAM;AAAA;AAAA;AAAA;AAAA,MAKtE,KAAK,UAAU,WAAsB;AACnC,cAAM,OAAO,MAAM,cAAc,cAAc,KAAK,MAAM;AAC1D,eAAO,KAAK,CAAC;AAAA,MACf;AAAA;AAAA;AAAA;AAAA,MAKA,KAAK,IAAI,WAAsB,cAAc,cAAc,KAAK,MAAM;AAAA,IACxE;AAAA;AAAA;AAAA;AAAA,IAKA,aAAa,CAAiC,OAAgD;AAI5F,YAAM,MAAM,UAAU,SAAgC;AACpD,YAAI,OAAO,WAAW,UAAU,YAAY;AAC1C,iBAAO,MAAM,WAAW,MAAM,OAAO,OAAO;AAC1C,kBAAM,iBAAiB;AACvB,2BAAe;AAEf,gBAAI;AACF,qBAAO,MAAM,GAAG,GAAG,IAAI;AAAA,YACzB,UAAE;AACA,6BAAe;AAAA,YACjB;AAAA,UACF,CAAC;AAAA,QACH;AAEA,cAAM,GAAG,KAAK,OAAO;AACrB,YAAI;AACF,gBAAM,SAAS,MAAM,GAAG,GAAG,IAAI;AAC/B,gBAAM,GAAG,KAAK,QAAQ;AACtB,iBAAO;AAAA,QACT,SAAS,KAAK;AACZ,cAAI;AACF,kBAAM,GAAG,KAAK,UAAU;AAAA,UAC1B,QAAQ;AAAA,UAER;AACA,gBAAM;AAAA,QACR;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA;AAAA;AAAA;AAAA,IAKA,aAAa,OAAO,OAAiC;AACnD,YAAM,cAAc,GAAG,YAAY,EAAE;AACrC,YAAM,YAAY;AAAA,IACpB;AAAA,EACF;AACF;;;ACxGO,SAAS,oBAAoB,IAA0C;AAC5E,QAAM,YAAY;AAClB,SACE,OAAO,UAAU,SAAS,cAC1B,OAAO,UAAU,YAAY,cAC7B,OAAO,UAAU,UAAU;AAE/B;AAKO,SAAS,wBAAwB,IAA2C;AACjF,SAAO,gCAAgC,EAAE;AAC3C;;;ACdO,SAAS,qBAAqB,IAAuC;AAC1E,QAAM,YAAY;AAClB,SACE,OAAO,UAAU,SAAS,cAC1B,OAAO,UAAU,YAAY,cAC7B,OAAO,UAAU,WAAW;AAEhC;AAKO,SAAS,yBAAyB,IAAwC;AAC/E,SAAO,gCAAgC,EAAE;AAC3C;;;ACjBA,SAAS,iBAAiB,IAAmC;AAC3D,QAAM,YAAY;AAClB,SAAO,OAAO,UAAU,SAAS,cAAc,OAAO,UAAU,YAAY;AAC9E;AAKO,SAAS,qBAAqB,IAAsC;AACzE,MAAI,iBAAiB,EAAE,GAAG;AACxB,WAAO,qBAAqB,EAAE;AAAA,EAChC;AAEA,MAAI,oBAAoB,EAAE,GAAG;AAC3B,WAAO,wBAAwB,EAAE;AAAA,EACnC;AAEA,MAAI,wBAAwB,EAAE,GAAG;AAC/B,WAAO,4BAA4B,EAAE;AAAA,EACvC;AAEA,MAAI,qBAAqB,EAAE,GAAG;AAC5B,WAAO,yBAAyB,EAAE;AAAA,EACpC;AAEA,MAAI,iBAAiB,EAAE,GAAG;AACxB,WAAO,gCAAgC,EAAE;AAAA,EAC3C;AAEA,MAAI,OAAO,OAAO,YAAY,OAAO,MAAM;AACzC,WAAO,gCAAgC,EAAoB;AAAA,EAC7D;AAEA,QAAM,IAAI,UAAU,uCAAuC;AAC7D;;;APtBO,IAAM,WAAN,cAAuB,aAAa;AAAA,EAyCzC,YAAY,SAA0B;AACpC,UAAM;AAbR;AAAA;AAAA;AAAA,SAAQ,aAA0B,CAAC;AAKnC;AAAA;AAAA;AAAA,SAAQ,cAAc;AAUpB,SAAK,WAAW,qBAAqB,QAAQ,EAAE;AAC/C,SAAK,KAAK,KAAK,SAAS;AACxB,SAAK,gBAAgB,QAAQ;AAC7B,SAAK,kBAAkB,QAAQ,mBAAmB;AAClD,SAAK,YAAY,QAAQ,uBAAuB;AAChD,SAAK,iBAAiB,QAAQ,kBAAkB,CAAC,MAAM,IAAI;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAc,OAAsB;AAClC,QAAI,KAAK,aAAa;AACpB;AAAA,IACF;AAEA,UAAM,KAAK,WAAW;AACtB,UAAM,KAAK,4BAA4B;AAEvC,SAAK,cAAc;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,aAA4B;AACxC,QAAI;AAEF,YAAM,KAAK,GAAG,KAAK;AAAA,qCACY,KAAK,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA,OAKlD;AAGD,YAAM,KAAK,GAAG,KAAK;AAAA,qCACY,KAAK,SAAS;AAAA;AAAA;AAAA;AAAA,OAI5C;AAGD,YAAM,KAAK,GAAG,KAAK;AAAA,gCACO,KAAK,SAAS;AAAA,OACvC;AAAA,IAGH,SAAS,KAAK;AACZ,YAAM,IAAI,eAAe,iCAAiC,GAAY;AAAA,IACxE;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAc,8BAA6C;AACzD,QAAI;AACF,YAAM,UAAU,MAAM,GAAG,QAAQ,KAAK,aAAa;AAEnD,YAAM,iBAAiB,QACpB,OAAO,CAAC,SAAS;AAEhB,YAAI,KAAK,SAAS,OAAO,GAAG;AAC1B,iBAAO;AAAA,QACT;AAEA,eAAO,KAAK,eAAe,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,GAAG,EAAE,CAAC;AAAA,MACnE,CAAC,EACA,KAAK;AAER,YAAM,mBAAgC,CAAC;AACvC,iBAAW,QAAQ,gBAAgB;AACjC,cAAM,WAAW,KAAK,KAAK,KAAK,eAAe,IAAI;AAEnD,YAAI;AAKJ,YAAI;AAEF,qBAAW,MAAM,OAAO;AAAA,QAC1B,SAAS,KAAK;AACZ,gBAAM,IAAI,mBAAmB,4BAA4B,IAAI,MAAM,OAAO,GAAG,CAAC,IAAI,GAAY;AAAA,QAChG;AAEA,cAAM,EAAE,IAAI,KAAK,IAAI;AACrB,YAAI,OAAO,OAAO,cAAc,OAAO,SAAS,YAAY;AAC1D,gBAAM,IAAI,mBAAmB,cAAc,IAAI,0CAA0C;AAAA,QAC3F;AAEA,yBAAiB,KAAK,EAAE,MAAM,MAAM,IAAI,KAAK,CAAC;AAAA,MAChD;AAGA,WAAK,aAAa;AAAA,IACpB,SAAS,KAAK;AACZ,YAAM,eAAe,qBAAqB,MAAM,IAAI,mBAAmB,6BAA6B,GAAY;AAAA,IAClH;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAc,cAA6B;AACzC,QAAI;AACF,YAAM,KAAK,eAAe,YAAY;AACpC,cAAM,MAAO,MAAM,KAAK,GAAG,QAAQ,sBAAsB,KAAK,SAAS,eAAe,EAAE,IAAI;AAI5F,YAAI,IAAI,WAAW,GAAG;AACpB,gBAAM,IAAI,mBAAmB,iDAAiD;AAAA,QAChF;AAEA,cAAM,KAAK,GAAG,QAAQ,UAAU,KAAK,SAAS,8BAA8B,EAAE,IAAI;AAAA,MACpF,CAAC;AAAA,IACH,SAAS,KAAK;AACZ,UAAI,eAAe,oBAAoB;AACrC,cAAM;AAAA,MACR;AAEA,YAAM,IAAI,mBAAmB,oCAAoC,GAAY;AAAA,IAC/E;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,cAA6B;AACzC,QAAI;AACF,YAAM,KAAK,GAAG,QAAQ,UAAU,KAAK,SAAS,8BAA8B,EAAE,IAAI;AAAA,IACpF,SAAS,KAAK;AACZ,YAAM,IAAI,mBAAmB,oCAAoC,GAAY;AAAA,IAC/E;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,kBAAmC;AAC/C,UAAM,MAAO,MAAM,KAAK,GAAG,QAAQ,mCAAmC,KAAK,eAAe,EAAE,EAAE,IAAI;AAGlG,WAAO,KAAK,SAAS;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,gBAAgB,MAAc,OAA8B;AACxE,UAAM,cAAa,oBAAI,KAAK,GAAE,YAAY;AAC1C,UAAM,KAAK,GACR;AAAA,MACC;AAAA,sBACc,KAAK,eAAe;AAAA;AAAA;AAAA,IAGpC,EACC,IAAI,MAAM,YAAY,KAAK;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,gBAAgB,MAAc,OAA8B;AACxE,UAAM,KAAK,GACR;AAAA,MACC;AAAA,sBACc,KAAK,eAAe;AAAA;AAAA;AAAA,IAGpC,EACC,IAAI,MAAM,KAAK;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAc,eAAe,IAA6C;AACxE,UAAM,KAAK,SAAS,YAAY,EAAE;AAAA,EACpC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,QAAkC;AAEtC,QAAI;AACF,YAAM,KAAK,KAAK;AAAA,IAClB,SAAS,KAAK;AACZ,aAAO;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,QACP,mBAAmB,CAAC;AAAA,MACtB;AAAA,IACF;AAGA,QAAI;AACF,YAAM,KAAK,YAAY;AAAA,IACzB,SAAS,KAAK;AACZ,aAAO;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,QACP,mBAAmB,CAAC;AAAA,MACtB;AAAA,IACF;AAEA,UAAM,oBAA8B,CAAC;AACrC,QAAI;AACF,YAAM,eAAe,MAAM,KAAK,gBAAgB;AAChD,YAAM,YAAY,eAAe;AAGjC,YAAM,eAAe,IAAI;AAAA,SACtB,MAAM,KAAK,GAAG,QAAQ,oBAAoB,KAAK,eAAe,EAAE,EAAE,IAAI,GAAG;AAAA,UACxE,CAAC,QAAS,IAAyB;AAAA,QACrC;AAAA,MACF;AAGA,YAAM,oBAAoB,KAAK,WAAW,OAAO,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,IAAI,CAAC;AACjF,UAAI,kBAAkB,WAAW,GAAG;AAClC,eAAO,EAAE,SAAS,MAAM,kBAAkB;AAAA,MAC5C;AAGA,YAAM,KAAK,eAAe,YAAY;AACpC,mBAAW,aAAa,mBAAmB;AACzC,cAAI;AAEF,kBAAM,UAAU,GAAG,KAAK,EAAE;AAG1B,kBAAM,KAAK,gBAAgB,UAAU,MAAM,SAAS;AACpD,8BAAkB,KAAK,UAAU,IAAI;AAAA,UACvC,SAAS,KAAK;AACZ,kBAAM,IAAI,wBAAwB,8BAA8B,UAAU,IAAI,KAAK,GAAY;AAAA,UACjG;AAAA,QACF;AAAA,MACF,CAAC;AAED,iBAAW,iBAAiB,mBAAmB;AAC7C,aAAK,KAAK,qBAAqB,eAAe,SAAS;AAAA,MACzD;AAEA,aAAO,EAAE,SAAS,MAAM,kBAAkB;AAAA,IAC5C,SAAS,OAAO;AACd,YAAM,MACJ,iBAAiB,0BACb,QACA,IAAI,wBAAwB,oBAAoB,KAAc;AACpE,aAAO,EAAE,SAAS,OAAO,OAAO,KAAK,mBAAmB,CAAC,EAAE;AAAA,IAC7D,UAAE;AACA,YAAM,KAAK,YAAY;AAAA,IACzB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,WAAqC;AAEzC,QAAI;AACF,YAAM,KAAK,KAAK;AAAA,IAClB,SAAS,KAAK;AACZ,aAAO;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,QACP,mBAAmB,CAAC;AAAA,MACtB;AAAA,IACF;AAGA,QAAI;AACF,YAAM,KAAK,YAAY;AAAA,IACzB,SAAS,KAAK;AACZ,aAAO;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,QACP,mBAAmB,CAAC;AAAA,MACtB;AAAA,IACF;AAEA,UAAM,oBAA8B,CAAC;AACrC,QAAI;AAEF,YAAM,eAAe,MAAM,KAAK,gBAAgB;AAChD,UAAI,iBAAiB,GAAG;AACtB,eAAO,EAAE,SAAS,MAAM,kBAAkB;AAAA,MAC5C;AAGA,YAAM,OAAQ,MAAM,KAAK,GACtB;AAAA,QACC;AAAA;AAAA,iBAEO,KAAK,eAAe;AAAA;AAAA;AAAA;AAAA,MAI7B,EACC,IAAI,YAAY;AAGnB,UAAI,KAAK,WAAW,GAAG;AACrB,eAAO,EAAE,SAAS,MAAM,kBAAkB;AAAA,MAC5C;AAGA,YAAM,KAAK,eAAe,YAAY;AACpC,mBAAW,OAAO,MAAM;AACtB,gBAAM,YAAY,KAAK,WAAW,KAAK,CAAC,MAAM,EAAE,SAAS,IAAI,IAAI;AACjE,cAAI,CAAC,WAAW;AACd,kBAAM,IAAI,mBAAmB,cAAc,IAAI,IAAI,cAAc;AAAA,UACnE;AAEA,cAAI;AAEF,kBAAM,UAAU,KAAK,KAAK,EAAE;AAG5B,kBAAM,KAAK,gBAAgB,UAAU,MAAM,YAAY;AAEvD,8BAAkB,KAAK,UAAU,IAAI;AAAA,UACvC,SAAS,KAAK;AACZ,kBAAM,IAAI,wBAAwB,iCAAiC,UAAU,IAAI,KAAK,GAAY;AAAA,UACpG;AAAA,QACF;AAAA,MACF,CAAC;AAED,iBAAW,iBAAiB,mBAAmB;AAC7C,aAAK,KAAK,sBAAsB,eAAe,YAAY;AAAA,MAC7D;AAEA,aAAO,EAAE,SAAS,MAAM,kBAAkB;AAAA,IAC5C,SAAS,OAAO;AACd,YAAM,MACJ,iBAAiB,0BACb,QACA,IAAI,wBAAwB,mBAAmB,KAAc;AACnE,aAAO,EAAE,SAAS,OAAO,OAAO,KAAK,mBAAmB,CAAC,EAAE;AAAA,IAC7D,UAAE;AACA,YAAM,KAAK,YAAY;AAAA,IACzB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,SAAmC;AACvC,UAAM,KAAK,KAAK;AAEhB,QAAI;AACF,YAAM,eAAe,MAAM,KAAK,gBAAgB;AAGhD,YAAM,OAAQ,MAAM,KAAK,GACtB;AAAA,QACC;AAAA;AAAA,iBAEO,KAAK,eAAe;AAAA;AAAA;AAAA,MAG7B,EACC,IAAI;AAGP,YAAM,eAAe,IAAI,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AACpD,YAAM,UAAU,KAAK,WAAW,SAAS,aAAa;AAEtD,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA,SAAS;AAAA,MACX;AAAA,IACF,SAAS,KAAK;AACZ,YAAM,IAAI,eAAe,kCAAkC,GAAY;AAAA,IACzE;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,OAA+B;AACnC,UAAM,KAAK,KAAK;AAEhB,QAAI;AACF,YAAM,eAAe,MAAM,KAAK,gBAAgB;AAChD,YAAM,YAAY,eAAe;AAGjC,YAAM,eAAe,IAAI;AAAA,SACtB,MAAM,KAAK,GAAG,QAAQ,oBAAoB,KAAK,eAAe,EAAE,EAAE,IAAI,GAAG;AAAA,UACxE,CAAC,QAAS,IAAyB;AAAA,QACrC;AAAA,MACF;AAEA,YAAM,oBAAoB,KAAK,WAAW,OAAO,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI;AAEpG,aAAO;AAAA,QACL;AAAA,QACA;AAAA,MACF;AAAA,IACF,SAAS,KAAK;AACZ,YAAM,IAAI,eAAe,mCAAmC,GAAY;AAAA,IAC1E;AAAA,EACF;AACF;","names":[]}
+\ No newline at end of file
++{"version":3,"sources":["../src/index.ts","../src/errors.ts","../src/providers/manual-transaction.ts","../src/providers/better-sqlite3.ts","../src/providers/bun-sql.ts","../src/providers/bun-sqlite.ts","../src/providers/node-sqlite.ts","../src/providers/index.ts"],"sourcesContent":["import { EventEmitter } from 'node:events';\nimport { promises as fs } from 'node:fs';\nimport path from 'node:path';\nimport { MigrationError, MigrationExecutionError, MigrationFileError, MigrationLockError } from './errors.js';\nimport { createSqliteProvider, type SqliteProvider } from './providers/index.js';\nimport type {\n MaybePromise,\n NamedMigration,\n MigrationPlan,\n MigrationRecord,\n MigrationResult,\n MigrationStatus,\n MigratorOptions,\n SqliteDatabase,\n OptionalArg,\n} from './types.js';\n\n/**\n * Migration provider for SQLite databases.\n * @example\n * const db = new DatabaseSync('database.db');\n * const migrator = new Migrator({ db, migrationsDir: 'migrations' });\n * await migrator.apply();\n */\nexport class Migrator extends EventEmitter {\n /**\n * Driver-specific provider normalized to the sqlite-up database surface.\n */\n private provider: SqliteProvider;\n\n /**\n * Database handle used by migrations and internal bookkeeping queries.\n */\n private db: SqliteDatabase;\n\n /**\n * Directory where migration modules are loaded from.\n */\n private migrationsDir: string;\n\n /**\n * Table that records successfully applied migrations.\n */\n private migrationsTable: string;\n\n /**\n * Table that stores the single-row migration lock.\n */\n private lockTable: string;\n\n /**\n * Migration modules loaded from disk in execution order.\n */\n private migrations: NamedMigration[] = [];\n\n /**\n * Whether internal tables and migration files have already been initialized.\n */\n private initialized = false;\n\n /**\n * File extensions considered when loading migration modules.\n */\n private fileExtensions: string[];\n\n constructor(options: MigratorOptions) {\n super();\n\n this.provider = createSqliteProvider(options.db);\n this.db = this.provider.db;\n this.migrationsDir = options.migrationsDir;\n this.migrationsTable = options.migrationsTable ?? 'schema_migrations';\n this.lockTable = options.migrationsLockTable ?? 'schema_migrations_lock';\n this.fileExtensions = options.fileExtensions ?? ['ts', 'js'];\n }\n\n /**\n * Ensures the `schema_migrations` and `schema_migrations_lock` tables exist,\n * and loads migration files from the migrations directory.\n */\n private async init(): Promise {\n if (this.initialized) {\n return;\n }\n\n await this.initTables();\n await this.loadMigrationsFromDirectory();\n\n this.initialized = true;\n }\n\n /**\n * Initializes the `schema_migrations` and `schema_migrations_lock` tables.\n */\n private async initTables(): Promise {\n try {\n // Create the migrations table if it doesn't exist\n await this.db.exec(`\n CREATE TABLE IF NOT EXISTS ${this.migrationsTable} (\n name TEXT PRIMARY KEY,\n executed_at TEXT NOT NULL, -- ISO string\n batch INTEGER NOT NULL\n )\n `);\n\n // Create the lock table if it doesn't exist\n await this.db.exec(`\n CREATE TABLE IF NOT EXISTS ${this.lockTable} (\n id INTEGER PRIMARY KEY CHECK (id = 1),\n locked INTEGER NOT NULL DEFAULT 0\n )\n `);\n\n // Ensure exactly one row in the lock table (id=1)\n await this.db.exec(`\n INSERT OR IGNORE INTO ${this.lockTable} (id, locked) VALUES (1, 0)\n `);\n\n // Load all migration files\n } catch (err) {\n throw new MigrationError('Failed to initialize migrator', err as Error);\n }\n }\n\n /**\n * Load migration files from the `migrationsDir`.\n * Migration files must export { up, down }.\n * The migrations are loaded in alphabetical order.\n */\n private async loadMigrationsFromDirectory(): Promise {\n try {\n const entries = await fs.readdir(this.migrationsDir);\n // Filter and sort migration files alphabetically\n const migrationFiles = entries\n .filter((file) => {\n // Ignore .d.ts files\n if (file.endsWith('.d.ts')) {\n return false;\n }\n // Check if file has one of the allowed extensions\n return this.fileExtensions.some((ext) => file.endsWith(`.${ext}`));\n })\n .sort();\n\n const loadedMigrations: NamedMigration[] = [];\n for (const file of migrationFiles) {\n const fullPath = path.join(this.migrationsDir, file);\n\n let imported: {\n up: (db: SqliteDatabase) => MaybePromise;\n down: (db: SqliteDatabase) => MaybePromise;\n };\n\n try {\n // Dynamic import (ESM)\n imported = await import(fullPath);\n } catch (err) {\n throw new MigrationFileError(`Error loading migration \"${file}\": ${String(err)}`, err as Error);\n }\n\n const { up, down } = imported;\n if (typeof up !== 'function' || typeof down !== 'function') {\n throw new MigrationFileError(`Migration \"${file}\" must export \"up\" and \"down\" functions.`);\n }\n\n loadedMigrations.push({ name: file, up, down });\n }\n\n // Only update migrations array after all files are loaded successfully\n this.migrations = loadedMigrations;\n } catch (err) {\n throw err instanceof MigrationFileError ? err : new MigrationFileError('Failed to load migrations', err as Error);\n }\n }\n\n /**\n * Acquire a lock to prevent concurrent migrations.\n * Throws an error if the lock is already held.\n */\n private async acquireLock(): Promise {\n try {\n await this.runTransaction(async () => {\n const row = (await this.db.prepare(`SELECT locked FROM ${this.lockTable} WHERE id = 1`).get()) as {\n locked: number;\n };\n\n if (row.locked === 1) {\n throw new MigrationLockError('Migration lock already held by another process.');\n }\n\n await this.db.prepare(`UPDATE ${this.lockTable} SET locked = 1 WHERE id = 1`).run();\n });\n } catch (err) {\n if (err instanceof MigrationLockError) {\n throw err;\n }\n\n throw new MigrationLockError('Failed to acquire migration lock', err as Error);\n }\n }\n\n /**\n * Release the migration lock.\n */\n private async releaseLock(): Promise {\n try {\n await this.db.prepare(`UPDATE ${this.lockTable} SET locked = 0 WHERE id = 1`).run();\n } catch (err) {\n throw new MigrationLockError('Failed to release migration lock', err as Error);\n }\n }\n\n /**\n * Get the highest batch number.\n */\n private async getCurrentBatch(): Promise {\n const row = (await this.db.prepare(`SELECT MAX(batch) as batch FROM ${this.migrationsTable}`).get()) as {\n batch: number | null;\n };\n return row?.batch ?? 0;\n }\n\n /**\n * Insert a record for an applied migration.\n */\n private async recordMigration(name: string, batch: number): Promise {\n const executedAt = new Date().toISOString();\n await this.db\n .prepare(\n `\n INSERT INTO ${this.migrationsTable} (name, executed_at, batch)\n VALUES (?, ?, ?)\n `\n )\n .run(name, executedAt, batch);\n }\n\n /**\n * Delete a record for a migration that is being rolled back.\n */\n private async removeMigration(name: string, batch: number): Promise {\n await this.db\n .prepare(\n `\n DELETE FROM ${this.migrationsTable}\n WHERE name = ? AND batch = ?\n `\n )\n .run(name, batch);\n }\n\n /**\n * Run SQL operations in a transaction.\n * @param fn The function to run in the transaction.\n */\n private async runTransaction(fn: () => MaybePromise): Promise {\n await this.provider.transaction(fn);\n }\n\n /**\n * Apply all pending migrations in a single batch.\n * Returns the names of applied migrations.\n */\n async apply(...args: OptionalArg): Promise {\n // Initialize the migrator\n try {\n await this.init();\n } catch (err) {\n return {\n success: false,\n error: err as Error,\n appliedMigrations: [],\n };\n }\n\n // Acquire lock\n try {\n await this.acquireLock();\n } catch (err) {\n return {\n success: false,\n error: err as Error,\n appliedMigrations: [],\n };\n }\n\n const appliedMigrations: string[] = [];\n try {\n const currentBatch = await this.getCurrentBatch();\n const nextBatch = currentBatch + 1;\n\n // Determine pending migrations: not present in schema_migrations\n const appliedNames = new Set(\n (await this.db.prepare(`SELECT name FROM ${this.migrationsTable}`).all()).map(\n (row) => (row as { name: string }).name\n )\n );\n\n // Get pending migrations, if any\n const pendingMigrations = this.migrations.filter((m) => !appliedNames.has(m.name));\n if (pendingMigrations.length === 0) {\n return { success: true, appliedMigrations };\n }\n\n // Perform the migration\n await this.runTransaction(async () => {\n for (const migration of pendingMigrations) {\n try {\n // Apply migration\n await migration.up(this.db, args[0]);\n\n // Record migration\n await this.recordMigration(migration.name, nextBatch);\n appliedMigrations.push(migration.name);\n } catch (err) {\n throw new MigrationExecutionError(`Failed to apply migration \"${migration.name}\"`, err as Error);\n }\n }\n });\n\n for (const migrationName of appliedMigrations) {\n this.emit('migration:applied', migrationName, nextBatch);\n }\n\n return { success: true, appliedMigrations };\n } catch (error) {\n const err =\n error instanceof MigrationExecutionError\n ? error\n : new MigrationExecutionError('Migration failed', error as Error);\n return { success: false, error: err, appliedMigrations: [] };\n } finally {\n await this.releaseLock();\n }\n }\n\n /**\n * Roll back the most recent batch of migrations.\n * Returns the names of rolled back migrations.\n */\n async rollback(...args: OptionalArg): Promise {\n // Initialize the migrator\n try {\n await this.init();\n } catch (err) {\n return {\n success: false,\n error: err as Error,\n appliedMigrations: [],\n };\n }\n\n // Acquire lock\n try {\n await this.acquireLock();\n } catch (err) {\n return {\n success: false,\n error: err as Error,\n appliedMigrations: [],\n };\n }\n\n const appliedMigrations: string[] = [];\n try {\n // Check if there are migrations to rollback\n const currentBatch = await this.getCurrentBatch();\n if (currentBatch === 0) {\n return { success: true, appliedMigrations };\n }\n\n // Get migrations in the last batch, sorted descending\n const rows = (await this.db\n .prepare(\n `\n SELECT name\n FROM ${this.migrationsTable}\n WHERE batch = ?\n ORDER BY name DESC\n `\n )\n .all(currentBatch)) as { name: string }[];\n\n // No migrations found in the last batch\n if (rows.length === 0) {\n return { success: true, appliedMigrations };\n }\n\n // Perform the rollback\n await this.runTransaction(async () => {\n for (const row of rows) {\n const migration = this.migrations.find((m) => m.name === row.name);\n if (!migration) {\n throw new MigrationFileError(`Migration \"${row.name}\" not found.`);\n }\n\n try {\n // Revert migration\n await migration.down(this.db, args[0]);\n\n // Remove migration record\n await this.removeMigration(migration.name, currentBatch);\n\n appliedMigrations.push(migration.name);\n } catch (err) {\n throw new MigrationExecutionError(`Failed to rollback migration \"${migration.name}\"`, err as Error);\n }\n }\n });\n\n for (const migrationName of appliedMigrations) {\n this.emit('migration:rollback', migrationName, currentBatch);\n }\n\n return { success: true, appliedMigrations };\n } catch (error) {\n const err =\n error instanceof MigrationExecutionError\n ? error\n : new MigrationExecutionError('Rollback failed', error as Error);\n return { success: false, error: err, appliedMigrations: [] };\n } finally {\n await this.releaseLock();\n }\n }\n\n /**\n * Get the status of migrations.\n * Returns:\n * - currentBatch: the highest batch number applied\n * - pending: number of migrations not yet applied\n * - applied: list of all applied migrations\n */\n async status(): Promise {\n await this.init();\n\n try {\n const currentBatch = await this.getCurrentBatch();\n\n // Get all applied migrations\n const rows = (await this.db\n .prepare(\n `\n SELECT name, executed_at, batch\n FROM ${this.migrationsTable}\n ORDER BY batch ASC, name ASC\n `\n )\n .all()) as MigrationRecord[];\n\n // Determine pending migrations\n const appliedNames = new Set(rows.map((r) => r.name));\n const pending = this.migrations.length - appliedNames.size;\n\n return {\n currentBatch,\n pending,\n applied: rows,\n };\n } catch (err) {\n throw new MigrationError('Failed to get migration status', err as Error);\n }\n }\n\n /**\n * Plan the pending migrations without applying them.\n * Returns the next batch number and the list of pending migration names in order.\n */\n async plan(): Promise {\n await this.init();\n\n try {\n const currentBatch = await this.getCurrentBatch();\n const nextBatch = currentBatch + 1;\n\n // Determine pending migrations: not present in schema_migrations\n const appliedNames = new Set(\n (await this.db.prepare(`SELECT name FROM ${this.migrationsTable}`).all()).map(\n (row) => (row as { name: string }).name\n )\n );\n\n const pendingMigrations = this.migrations.filter((m) => !appliedNames.has(m.name)).map((m) => m.name);\n\n return {\n nextBatch,\n pendingMigrations,\n };\n } catch (err) {\n throw new MigrationError('Failed to create migration plan', err as Error);\n }\n }\n}\n\nexport {\n MigrationError,\n MigrationExecutionError,\n MigrationFileError,\n MigrationLockError,\n} from './errors.js';\nexport type {\n BunSqliteDatabase,\n MaybePromise,\n Migration,\n MigrationPlan,\n MigrationRecord,\n MigrationResult,\n MigrationStatus,\n MigratorDatabase,\n MigratorOptions,\n SqliteDatabase,\n SqliteRunResult,\n SqliteStatement,\n SqliteTransaction,\n} from './types.js';\n","/**\n * Base error class for all sqlite-up errors\n */\nexport class MigrationError extends Error {\n constructor(\n message: string,\n public readonly cause?: Error\n ) {\n super(message);\n this.name = 'MigrationError';\n }\n}\n\n/**\n * Thrown when there's an issue with migration files\n */\nexport class MigrationFileError extends MigrationError {\n constructor(message: string, cause?: Error) {\n super(message, cause);\n this.name = 'MigrationFileError';\n }\n}\n\n/**\n * Thrown when there's a locking issue\n */\nexport class MigrationLockError extends MigrationError {\n constructor(message: string, cause?: Error) {\n super(message, cause);\n this.name = 'MigrationLockError';\n }\n}\n\n/**\n * Thrown when there's an issue during migration execution\n */\nexport class MigrationExecutionError extends MigrationError {\n constructor(message: string, cause?: Error) {\n super(message, cause);\n this.name = 'MigrationExecutionError';\n }\n}\n","import type { MaybePromise, SqliteDatabase } from '../types.js';\nimport type { SqliteProvider } from './types.js';\n\n/**\n * Creates a provider that wraps migration work in explicit SQL transactions.\n */\nexport function createManualTransactionProvider(db: SqliteDatabase): SqliteProvider {\n return {\n db,\n\n /**\n * Runs the callback between BEGIN IMMEDIATE and COMMIT, rolling back on failure.\n */\n transaction: async (fn: () => MaybePromise): Promise => {\n await db.exec('BEGIN IMMEDIATE');\n try {\n await fn();\n await db.exec('COMMIT');\n } catch (err) {\n try {\n await db.exec('ROLLBACK');\n } catch {\n // Preserve the original transaction failure.\n }\n throw err;\n }\n },\n };\n}\n","import type { SqliteDatabase } from '../types.js';\nimport { createManualTransactionProvider } from './manual-transaction.js';\nimport type { SqliteProvider } from './types.js';\n\n/**\n * Structural database shape used to identify better-sqlite3 connections.\n */\nexport type BetterSqlite3Database = SqliteDatabase & {\n transaction?: unknown;\n open?: boolean;\n};\n\n/**\n * Checks whether a value looks like a better-sqlite3 database instance.\n */\nexport function isBetterSqlite3Database(db: unknown): db is BetterSqlite3Database {\n const candidate = db as Partial;\n return (\n typeof candidate.exec === 'function' &&\n typeof candidate.prepare === 'function' &&\n typeof candidate.transaction === 'function' &&\n typeof candidate.open === 'boolean'\n );\n}\n\n/**\n * Creates a sqlite-up provider for better-sqlite3 database instances.\n */\nexport function createBetterSqlite3Provider(db: BetterSqlite3Database): SqliteProvider {\n return createManualTransactionProvider(db);\n}\n","import type { BunSqliteDatabase, MaybePromise, SqliteDatabase, SqliteTransaction } from '../types.js';\nimport type { SqliteProvider } from './types.js';\n\n/**\n * SQLite database facade whose transactions may complete asynchronously.\n */\ninterface AsyncTransactionalSqliteDatabase extends SqliteDatabase {\n /**\n * Creates a transaction runner that can await asynchronous transaction work.\n */\n transaction(\n fn: (...args: Args) => MaybePromise\n ): SqliteTransaction;\n}\n\n/**\n * Executes SQL through Bun SQL and normalizes empty parameter lists.\n */\nasync function executeBunSql(client: BunSqliteDatabase, sql: string, params: unknown[] = []): Promise {\n return await client.unsafe(sql, params.length > 0 ? params : undefined);\n}\n\n/**\n * Checks whether a value looks like Bun's Promise-based SQL client for SQLite.\n */\nexport function isBunSqlDatabase(db: unknown): db is BunSqliteDatabase {\n const candidate = db as Partial;\n return typeof candidate.unsafe === 'function' && typeof (candidate as Partial).exec !== 'function';\n}\n\n/**\n * Creates a sqlite-up provider for Bun SQL SQLite clients.\n */\nexport function createBunSqlProvider(rootClient: BunSqliteDatabase): SqliteProvider {\n let activeClient = rootClient;\n\n const db: AsyncTransactionalSqliteDatabase = {\n /**\n * Executes a SQL statement through the currently active Bun SQL client.\n */\n exec: async (sql: string) => {\n await executeBunSql(activeClient, sql);\n },\n\n /**\n * Creates a prepared-statement facade backed by Bun SQL unsafe execution.\n */\n prepare: (sql: string) => ({\n /**\n * Runs the statement and returns all rows.\n */\n all: (...params: unknown[]) => executeBunSql(activeClient, sql, params),\n\n /**\n * Runs the statement and returns the first row.\n */\n get: async (...params: unknown[]) => {\n const rows = await executeBunSql(activeClient, sql, params);\n return rows[0];\n },\n\n /**\n * Runs the statement for side effects and returns the driver result.\n */\n run: (...params: unknown[]) => executeBunSql(activeClient, sql, params),\n }),\n\n /**\n * Creates a transaction runner using Bun SQL native transactions when available.\n */\n transaction: (fn: (...args: Args) => MaybePromise) => {\n /**\n * Executes the transaction callback with the active transaction client.\n */\n const run = async (...args: Args): Promise => {\n if (typeof rootClient.begin === 'function') {\n return await rootClient.begin(async (tx) => {\n const previousClient = activeClient;\n activeClient = tx;\n\n try {\n return await fn(...args);\n } finally {\n activeClient = previousClient;\n }\n });\n }\n\n await db.exec('BEGIN');\n try {\n const result = await fn(...args);\n await db.exec('COMMIT');\n return result;\n } catch (err) {\n try {\n await db.exec('ROLLBACK');\n } catch {\n // Preserve the original transaction failure.\n }\n throw err;\n }\n };\n\n return run;\n },\n };\n\n return {\n db,\n\n /**\n * Runs migration work inside the Bun SQL transaction facade.\n */\n transaction: async (fn: () => MaybePromise) => {\n const transaction = db.transaction(fn);\n await transaction();\n },\n };\n}\n","import type { SqliteDatabase, SqliteStatement } from '../types.js';\nimport { createManualTransactionProvider } from './manual-transaction.js';\nimport type { SqliteProvider } from './types.js';\n\n/**\n * Structural database shape used to identify Bun's synchronous SQLite client.\n */\nexport type BunSqliteSyncDatabase = SqliteDatabase & {\n query?: (sql: string) => SqliteStatement;\n};\n\n/**\n * Checks whether a value looks like a Bun SQLite database instance.\n */\nexport function isBunSqliteDatabase(db: unknown): db is BunSqliteSyncDatabase {\n const candidate = db as Partial;\n return (\n typeof candidate.exec === 'function' &&\n typeof candidate.prepare === 'function' &&\n typeof candidate.query === 'function'\n );\n}\n\n/**\n * Creates a sqlite-up provider for Bun SQLite database instances.\n */\nexport function createBunSqliteProvider(db: BunSqliteSyncDatabase): SqliteProvider {\n return createManualTransactionProvider(db);\n}\n","import type { SqliteDatabase } from '../types.js';\nimport { createManualTransactionProvider } from './manual-transaction.js';\nimport type { SqliteProvider } from './types.js';\n\n/**\n * Structural database shape used to identify Node's node:sqlite DatabaseSync.\n */\nexport type NodeSqliteDatabase = SqliteDatabase & {\n isOpen?: boolean;\n};\n\n/**\n * Checks whether a value looks like a node:sqlite database instance.\n */\nexport function isNodeSqliteDatabase(db: unknown): db is NodeSqliteDatabase {\n const candidate = db as Partial;\n return (\n typeof candidate.exec === 'function' &&\n typeof candidate.prepare === 'function' &&\n typeof candidate.isOpen === 'boolean'\n );\n}\n\n/**\n * Creates a sqlite-up provider for node:sqlite database instances.\n */\nexport function createNodeSqliteProvider(db: NodeSqliteDatabase): SqliteProvider {\n return createManualTransactionProvider(db);\n}\n","import type { MigratorDatabase, SqliteDatabase } from '../types.js';\nimport { createBetterSqlite3Provider, isBetterSqlite3Database } from './better-sqlite3.js';\nimport { createBunSqlProvider, isBunSqlDatabase } from './bun-sql.js';\nimport { createBunSqliteProvider, isBunSqliteDatabase } from './bun-sqlite.js';\nimport { createManualTransactionProvider } from './manual-transaction.js';\nimport { createNodeSqliteProvider, isNodeSqliteDatabase } from './node-sqlite.js';\nimport type { SqliteProvider } from './types.js';\n\n/**\n * Checks for the minimal SQLite database surface sqlite-up can use directly.\n */\nfunction isSqliteDatabase(db: unknown): db is SqliteDatabase {\n const candidate = db as Partial;\n return typeof candidate.exec === 'function' && typeof candidate.prepare === 'function';\n}\n\n/**\n * Creates the best provider adapter for a supported SQLite database client.\n */\nexport function createSqliteProvider(db: MigratorDatabase): SqliteProvider {\n if (isBunSqlDatabase(db)) {\n return createBunSqlProvider(db);\n }\n\n if (isBunSqliteDatabase(db)) {\n return createBunSqliteProvider(db);\n }\n\n if (isBetterSqlite3Database(db)) {\n return createBetterSqlite3Provider(db);\n }\n\n if (isNodeSqliteDatabase(db)) {\n return createNodeSqliteProvider(db);\n }\n\n if (isSqliteDatabase(db)) {\n return createManualTransactionProvider(db);\n }\n\n if (typeof db === 'object' && db !== null) {\n return createManualTransactionProvider(db as SqliteDatabase);\n }\n\n throw new TypeError('Unsupported SQLite database provider.');\n}\n\nexport { createBetterSqlite3Provider, isBetterSqlite3Database } from './better-sqlite3.js';\nexport { createBunSqlProvider, isBunSqlDatabase } from './bun-sql.js';\nexport { createBunSqliteProvider, isBunSqliteDatabase } from './bun-sqlite.js';\nexport { createNodeSqliteProvider, isNodeSqliteDatabase } from './node-sqlite.js';\nexport type { SqliteProvider } from './types.js';\n"],"mappings":";AAAA,SAAS,oBAAoB;AAC7B,SAAS,YAAY,UAAU;AAC/B,OAAO,UAAU;;;ACCV,IAAM,iBAAN,cAA6B,MAAM;AAAA,EACxC,YACE,SACgB,OAChB;AACA,UAAM,OAAO;AAFG;AAGhB,SAAK,OAAO;AAAA,EACd;AACF;AAKO,IAAM,qBAAN,cAAiC,eAAe;AAAA,EACrD,YAAY,SAAiB,OAAe;AAC1C,UAAM,SAAS,KAAK;AACpB,SAAK,OAAO;AAAA,EACd;AACF;AAKO,IAAM,qBAAN,cAAiC,eAAe;AAAA,EACrD,YAAY,SAAiB,OAAe;AAC1C,UAAM,SAAS,KAAK;AACpB,SAAK,OAAO;AAAA,EACd;AACF;AAKO,IAAM,0BAAN,cAAsC,eAAe;AAAA,EAC1D,YAAY,SAAiB,OAAe;AAC1C,UAAM,SAAS,KAAK;AACpB,SAAK,OAAO;AAAA,EACd;AACF;;;ACnCO,SAAS,gCAAgC,IAAoC;AAClF,SAAO;AAAA,IACL;AAAA;AAAA;AAAA;AAAA,IAKA,aAAa,OAAO,OAAgD;AAClE,YAAM,GAAG,KAAK,iBAAiB;AAC/B,UAAI;AACF,cAAM,GAAG;AACT,cAAM,GAAG,KAAK,QAAQ;AAAA,MACxB,SAAS,KAAK;AACZ,YAAI;AACF,gBAAM,GAAG,KAAK,UAAU;AAAA,QAC1B,QAAQ;AAAA,QAER;AACA,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;;;ACbO,SAAS,wBAAwB,IAA0C;AAChF,QAAM,YAAY;AAClB,SACE,OAAO,UAAU,SAAS,cAC1B,OAAO,UAAU,YAAY,cAC7B,OAAO,UAAU,gBAAgB,cACjC,OAAO,UAAU,SAAS;AAE9B;AAKO,SAAS,4BAA4B,IAA2C;AACrF,SAAO,gCAAgC,EAAE;AAC3C;;;ACZA,eAAe,cAAc,QAA2B,KAAa,SAAoB,CAAC,GAAuB;AAC/G,SAAO,MAAM,OAAO,OAAO,KAAK,OAAO,SAAS,IAAI,SAAS,MAAS;AACxE;AAKO,SAAS,iBAAiB,IAAsC;AACrE,QAAM,YAAY;AAClB,SAAO,OAAO,UAAU,WAAW,cAAc,OAAQ,UAAsC,SAAS;AAC1G;AAKO,SAAS,qBAAqB,YAA+C;AAClF,MAAI,eAAe;AAEnB,QAAM,KAAuC;AAAA;AAAA;AAAA;AAAA,IAI3C,MAAM,OAAO,QAAgB;AAC3B,YAAM,cAAc,cAAc,GAAG;AAAA,IACvC;AAAA;AAAA;AAAA;AAAA,IAKA,SAAS,CAAC,SAAiB;AAAA;AAAA;AAAA;AAAA,MAIzB,KAAK,IAAI,WAAsB,cAAc,cAAc,KAAK,MAAM;AAAA;AAAA;AAAA;AAAA,MAKtE,KAAK,UAAU,WAAsB;AACnC,cAAM,OAAO,MAAM,cAAc,cAAc,KAAK,MAAM;AAC1D,eAAO,KAAK,CAAC;AAAA,MACf;AAAA;AAAA;AAAA;AAAA,MAKA,KAAK,IAAI,WAAsB,cAAc,cAAc,KAAK,MAAM;AAAA,IACxE;AAAA;AAAA;AAAA;AAAA,IAKA,aAAa,CAAiC,OAAgD;AAI5F,YAAM,MAAM,UAAU,SAAgC;AACpD,YAAI,OAAO,WAAW,UAAU,YAAY;AAC1C,iBAAO,MAAM,WAAW,MAAM,OAAO,OAAO;AAC1C,kBAAM,iBAAiB;AACvB,2BAAe;AAEf,gBAAI;AACF,qBAAO,MAAM,GAAG,GAAG,IAAI;AAAA,YACzB,UAAE;AACA,6BAAe;AAAA,YACjB;AAAA,UACF,CAAC;AAAA,QACH;AAEA,cAAM,GAAG,KAAK,OAAO;AACrB,YAAI;AACF,gBAAM,SAAS,MAAM,GAAG,GAAG,IAAI;AAC/B,gBAAM,GAAG,KAAK,QAAQ;AACtB,iBAAO;AAAA,QACT,SAAS,KAAK;AACZ,cAAI;AACF,kBAAM,GAAG,KAAK,UAAU;AAAA,UAC1B,QAAQ;AAAA,UAER;AACA,gBAAM;AAAA,QACR;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA;AAAA;AAAA;AAAA,IAKA,aAAa,OAAO,OAAiC;AACnD,YAAM,cAAc,GAAG,YAAY,EAAE;AACrC,YAAM,YAAY;AAAA,IACpB;AAAA,EACF;AACF;;;ACxGO,SAAS,oBAAoB,IAA0C;AAC5E,QAAM,YAAY;AAClB,SACE,OAAO,UAAU,SAAS,cAC1B,OAAO,UAAU,YAAY,cAC7B,OAAO,UAAU,UAAU;AAE/B;AAKO,SAAS,wBAAwB,IAA2C;AACjF,SAAO,gCAAgC,EAAE;AAC3C;;;ACdO,SAAS,qBAAqB,IAAuC;AAC1E,QAAM,YAAY;AAClB,SACE,OAAO,UAAU,SAAS,cAC1B,OAAO,UAAU,YAAY,cAC7B,OAAO,UAAU,WAAW;AAEhC;AAKO,SAAS,yBAAyB,IAAwC;AAC/E,SAAO,gCAAgC,EAAE;AAC3C;;;ACjBA,SAAS,iBAAiB,IAAmC;AAC3D,QAAM,YAAY;AAClB,SAAO,OAAO,UAAU,SAAS,cAAc,OAAO,UAAU,YAAY;AAC9E;AAKO,SAAS,qBAAqB,IAAsC;AACzE,MAAI,iBAAiB,EAAE,GAAG;AACxB,WAAO,qBAAqB,EAAE;AAAA,EAChC;AAEA,MAAI,oBAAoB,EAAE,GAAG;AAC3B,WAAO,wBAAwB,EAAE;AAAA,EACnC;AAEA,MAAI,wBAAwB,EAAE,GAAG;AAC/B,WAAO,4BAA4B,EAAE;AAAA,EACvC;AAEA,MAAI,qBAAqB,EAAE,GAAG;AAC5B,WAAO,yBAAyB,EAAE;AAAA,EACpC;AAEA,MAAI,iBAAiB,EAAE,GAAG;AACxB,WAAO,gCAAgC,EAAE;AAAA,EAC3C;AAEA,MAAI,OAAO,OAAO,YAAY,OAAO,MAAM;AACzC,WAAO,gCAAgC,EAAoB;AAAA,EAC7D;AAEA,QAAM,IAAI,UAAU,uCAAuC;AAC7D;;;APrBO,IAAM,WAAN,cAAsC,aAAa;AAAA,EAyCxD,YAAY,SAA0B;AACpC,UAAM;AAbR;AAAA;AAAA;AAAA,SAAQ,aAAkC,CAAC;AAK3C;AAAA;AAAA;AAAA,SAAQ,cAAc;AAUpB,SAAK,WAAW,qBAAqB,QAAQ,EAAE;AAC/C,SAAK,KAAK,KAAK,SAAS;AACxB,SAAK,gBAAgB,QAAQ;AAC7B,SAAK,kBAAkB,QAAQ,mBAAmB;AAClD,SAAK,YAAY,QAAQ,uBAAuB;AAChD,SAAK,iBAAiB,QAAQ,kBAAkB,CAAC,MAAM,IAAI;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAc,OAAsB;AAClC,QAAI,KAAK,aAAa;AACpB;AAAA,IACF;AAEA,UAAM,KAAK,WAAW;AACtB,UAAM,KAAK,4BAA4B;AAEvC,SAAK,cAAc;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,aAA4B;AACxC,QAAI;AAEF,YAAM,KAAK,GAAG,KAAK;AAAA,qCACY,KAAK,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA,OAKlD;AAGD,YAAM,KAAK,GAAG,KAAK;AAAA,qCACY,KAAK,SAAS;AAAA;AAAA;AAAA;AAAA,OAI5C;AAGD,YAAM,KAAK,GAAG,KAAK;AAAA,gCACO,KAAK,SAAS;AAAA,OACvC;AAAA,IAGH,SAAS,KAAK;AACZ,YAAM,IAAI,eAAe,iCAAiC,GAAY;AAAA,IACxE;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAc,8BAA6C;AACzD,QAAI;AACF,YAAM,UAAU,MAAM,GAAG,QAAQ,KAAK,aAAa;AAEnD,YAAM,iBAAiB,QACpB,OAAO,CAAC,SAAS;AAEhB,YAAI,KAAK,SAAS,OAAO,GAAG;AAC1B,iBAAO;AAAA,QACT;AAEA,eAAO,KAAK,eAAe,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,GAAG,EAAE,CAAC;AAAA,MACnE,CAAC,EACA,KAAK;AAER,YAAM,mBAAwC,CAAC;AAC/C,iBAAW,QAAQ,gBAAgB;AACjC,cAAM,WAAW,KAAK,KAAK,KAAK,eAAe,IAAI;AAEnD,YAAI;AAKJ,YAAI;AAEF,qBAAW,MAAM,OAAO;AAAA,QAC1B,SAAS,KAAK;AACZ,gBAAM,IAAI,mBAAmB,4BAA4B,IAAI,MAAM,OAAO,GAAG,CAAC,IAAI,GAAY;AAAA,QAChG;AAEA,cAAM,EAAE,IAAI,KAAK,IAAI;AACrB,YAAI,OAAO,OAAO,cAAc,OAAO,SAAS,YAAY;AAC1D,gBAAM,IAAI,mBAAmB,cAAc,IAAI,0CAA0C;AAAA,QAC3F;AAEA,yBAAiB,KAAK,EAAE,MAAM,MAAM,IAAI,KAAK,CAAC;AAAA,MAChD;AAGA,WAAK,aAAa;AAAA,IACpB,SAAS,KAAK;AACZ,YAAM,eAAe,qBAAqB,MAAM,IAAI,mBAAmB,6BAA6B,GAAY;AAAA,IAClH;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAc,cAA6B;AACzC,QAAI;AACF,YAAM,KAAK,eAAe,YAAY;AACpC,cAAM,MAAO,MAAM,KAAK,GAAG,QAAQ,sBAAsB,KAAK,SAAS,eAAe,EAAE,IAAI;AAI5F,YAAI,IAAI,WAAW,GAAG;AACpB,gBAAM,IAAI,mBAAmB,iDAAiD;AAAA,QAChF;AAEA,cAAM,KAAK,GAAG,QAAQ,UAAU,KAAK,SAAS,8BAA8B,EAAE,IAAI;AAAA,MACpF,CAAC;AAAA,IACH,SAAS,KAAK;AACZ,UAAI,eAAe,oBAAoB;AACrC,cAAM;AAAA,MACR;AAEA,YAAM,IAAI,mBAAmB,oCAAoC,GAAY;AAAA,IAC/E;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,cAA6B;AACzC,QAAI;AACF,YAAM,KAAK,GAAG,QAAQ,UAAU,KAAK,SAAS,8BAA8B,EAAE,IAAI;AAAA,IACpF,SAAS,KAAK;AACZ,YAAM,IAAI,mBAAmB,oCAAoC,GAAY;AAAA,IAC/E;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,kBAAmC;AAC/C,UAAM,MAAO,MAAM,KAAK,GAAG,QAAQ,mCAAmC,KAAK,eAAe,EAAE,EAAE,IAAI;AAGlG,WAAO,KAAK,SAAS;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,gBAAgB,MAAc,OAA8B;AACxE,UAAM,cAAa,oBAAI,KAAK,GAAE,YAAY;AAC1C,UAAM,KAAK,GACR;AAAA,MACC;AAAA,sBACc,KAAK,eAAe;AAAA;AAAA;AAAA,IAGpC,EACC,IAAI,MAAM,YAAY,KAAK;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,gBAAgB,MAAc,OAA8B;AACxE,UAAM,KAAK,GACR;AAAA,MACC;AAAA,sBACc,KAAK,eAAe;AAAA;AAAA;AAAA,IAGpC,EACC,IAAI,MAAM,KAAK;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAc,eAAe,IAA6C;AACxE,UAAM,KAAK,SAAS,YAAY,EAAE;AAAA,EACpC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,SAAS,MAAgD;AAE7D,QAAI;AACF,YAAM,KAAK,KAAK;AAAA,IAClB,SAAS,KAAK;AACZ,aAAO;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,QACP,mBAAmB,CAAC;AAAA,MACtB;AAAA,IACF;AAGA,QAAI;AACF,YAAM,KAAK,YAAY;AAAA,IACzB,SAAS,KAAK;AACZ,aAAO;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,QACP,mBAAmB,CAAC;AAAA,MACtB;AAAA,IACF;AAEA,UAAM,oBAA8B,CAAC;AACrC,QAAI;AACF,YAAM,eAAe,MAAM,KAAK,gBAAgB;AAChD,YAAM,YAAY,eAAe;AAGjC,YAAM,eAAe,IAAI;AAAA,SACtB,MAAM,KAAK,GAAG,QAAQ,oBAAoB,KAAK,eAAe,EAAE,EAAE,IAAI,GAAG;AAAA,UACxE,CAAC,QAAS,IAAyB;AAAA,QACrC;AAAA,MACF;AAGA,YAAM,oBAAoB,KAAK,WAAW,OAAO,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,IAAI,CAAC;AACjF,UAAI,kBAAkB,WAAW,GAAG;AAClC,eAAO,EAAE,SAAS,MAAM,kBAAkB;AAAA,MAC5C;AAGA,YAAM,KAAK,eAAe,YAAY;AACpC,mBAAW,aAAa,mBAAmB;AACzC,cAAI;AAEF,kBAAM,UAAU,GAAG,KAAK,IAAI,KAAK,CAAC,CAAC;AAGnC,kBAAM,KAAK,gBAAgB,UAAU,MAAM,SAAS;AACpD,8BAAkB,KAAK,UAAU,IAAI;AAAA,UACvC,SAAS,KAAK;AACZ,kBAAM,IAAI,wBAAwB,8BAA8B,UAAU,IAAI,KAAK,GAAY;AAAA,UACjG;AAAA,QACF;AAAA,MACF,CAAC;AAED,iBAAW,iBAAiB,mBAAmB;AAC7C,aAAK,KAAK,qBAAqB,eAAe,SAAS;AAAA,MACzD;AAEA,aAAO,EAAE,SAAS,MAAM,kBAAkB;AAAA,IAC5C,SAAS,OAAO;AACd,YAAM,MACJ,iBAAiB,0BACb,QACA,IAAI,wBAAwB,oBAAoB,KAAc;AACpE,aAAO,EAAE,SAAS,OAAO,OAAO,KAAK,mBAAmB,CAAC,EAAE;AAAA,IAC7D,UAAE;AACA,YAAM,KAAK,YAAY;AAAA,IACzB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,YAAY,MAAgD;AAEhE,QAAI;AACF,YAAM,KAAK,KAAK;AAAA,IAClB,SAAS,KAAK;AACZ,aAAO;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,QACP,mBAAmB,CAAC;AAAA,MACtB;AAAA,IACF;AAGA,QAAI;AACF,YAAM,KAAK,YAAY;AAAA,IACzB,SAAS,KAAK;AACZ,aAAO;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,QACP,mBAAmB,CAAC;AAAA,MACtB;AAAA,IACF;AAEA,UAAM,oBAA8B,CAAC;AACrC,QAAI;AAEF,YAAM,eAAe,MAAM,KAAK,gBAAgB;AAChD,UAAI,iBAAiB,GAAG;AACtB,eAAO,EAAE,SAAS,MAAM,kBAAkB;AAAA,MAC5C;AAGA,YAAM,OAAQ,MAAM,KAAK,GACtB;AAAA,QACC;AAAA;AAAA,iBAEO,KAAK,eAAe;AAAA;AAAA;AAAA;AAAA,MAI7B,EACC,IAAI,YAAY;AAGnB,UAAI,KAAK,WAAW,GAAG;AACrB,eAAO,EAAE,SAAS,MAAM,kBAAkB;AAAA,MAC5C;AAGA,YAAM,KAAK,eAAe,YAAY;AACpC,mBAAW,OAAO,MAAM;AACtB,gBAAM,YAAY,KAAK,WAAW,KAAK,CAAC,MAAM,EAAE,SAAS,IAAI,IAAI;AACjE,cAAI,CAAC,WAAW;AACd,kBAAM,IAAI,mBAAmB,cAAc,IAAI,IAAI,cAAc;AAAA,UACnE;AAEA,cAAI;AAEF,kBAAM,UAAU,KAAK,KAAK,IAAI,KAAK,CAAC,CAAC;AAGrC,kBAAM,KAAK,gBAAgB,UAAU,MAAM,YAAY;AAEvD,8BAAkB,KAAK,UAAU,IAAI;AAAA,UACvC,SAAS,KAAK;AACZ,kBAAM,IAAI,wBAAwB,iCAAiC,UAAU,IAAI,KAAK,GAAY;AAAA,UACpG;AAAA,QACF;AAAA,MACF,CAAC;AAED,iBAAW,iBAAiB,mBAAmB;AAC7C,aAAK,KAAK,sBAAsB,eAAe,YAAY;AAAA,MAC7D;AAEA,aAAO,EAAE,SAAS,MAAM,kBAAkB;AAAA,IAC5C,SAAS,OAAO;AACd,YAAM,MACJ,iBAAiB,0BACb,QACA,IAAI,wBAAwB,mBAAmB,KAAc;AACnE,aAAO,EAAE,SAAS,OAAO,OAAO,KAAK,mBAAmB,CAAC,EAAE;AAAA,IAC7D,UAAE;AACA,YAAM,KAAK,YAAY;AAAA,IACzB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,SAAmC;AACvC,UAAM,KAAK,KAAK;AAEhB,QAAI;AACF,YAAM,eAAe,MAAM,KAAK,gBAAgB;AAGhD,YAAM,OAAQ,MAAM,KAAK,GACtB;AAAA,QACC;AAAA;AAAA,iBAEO,KAAK,eAAe;AAAA;AAAA;AAAA,MAG7B,EACC,IAAI;AAGP,YAAM,eAAe,IAAI,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AACpD,YAAM,UAAU,KAAK,WAAW,SAAS,aAAa;AAEtD,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA,SAAS;AAAA,MACX;AAAA,IACF,SAAS,KAAK;AACZ,YAAM,IAAI,eAAe,kCAAkC,GAAY;AAAA,IACzE;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,OAA+B;AACnC,UAAM,KAAK,KAAK;AAEhB,QAAI;AACF,YAAM,eAAe,MAAM,KAAK,gBAAgB;AAChD,YAAM,YAAY,eAAe;AAGjC,YAAM,eAAe,IAAI;AAAA,SACtB,MAAM,KAAK,GAAG,QAAQ,oBAAoB,KAAK,eAAe,EAAE,EAAE,IAAI,GAAG;AAAA,UACxE,CAAC,QAAS,IAAyB;AAAA,QACrC;AAAA,MACF;AAEA,YAAM,oBAAoB,KAAK,WAAW,OAAO,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI;AAEpG,aAAO;AAAA,QACL;AAAA,QACA;AAAA,MACF;AAAA,IACF,SAAS,KAAK;AACZ,YAAM,IAAI,eAAe,mCAAmC,GAAY;AAAA,IAC1E;AAAA,EACF;AACF;","names":[]}
+\ No newline at end of file
+diff --git a/node_modules/sqlite-up/dist/types.d.ts b/node_modules/sqlite-up/dist/types.d.ts
+index 01a13fd..266e225 100644
+--- a/node_modules/sqlite-up/dist/types.d.ts
++++ b/node_modules/sqlite-up/dist/types.d.ts
+@@ -2,6 +2,10 @@
+ * A value or a promise for that value.
+ */
+ export type MaybePromise = T | Promise;
++/**
++ * Argument defaults to undefined but is required if T is not undefined
++ */
++export type OptionalArg = T extends undefined ? [] : [value: T];
+ /**
+ * Result returned by SQLite statement execution.
+ */
+@@ -115,19 +119,24 @@ export interface MigratorOptions {
+ /**
+ * Represents a single migration file/module.
+ */
+-export interface Migration {
+- /**
+- * Name of the migration (derived from filename)
+- */
+- name: string;
++export interface Migration {
+ /**
+ * Function to apply the migration
+ */
+- up: (db: SqliteDatabase) => MaybePromise;
++ up: (db: SqliteDatabase, ctx?: T) => MaybePromise;
+ /**
+ * Function to revert the migration
+ */
+- down: (db: SqliteDatabase) => MaybePromise;
++ down: (db: SqliteDatabase, ctx?: T) => MaybePromise;
++}
++/**
++ * Represents a single migration file/module after being loaded
++ */
++export interface NamedMigration extends Migration {
++ /**
++ * Name of the migration (derived from filename)
++ */
++ name: string;
+ }
+ /**
+ * A record of applied migrations as stored in the database.
+diff --git a/node_modules/sqlite-up/dist/types.d.ts.map b/node_modules/sqlite-up/dist/types.d.ts.map
+index 3935948..b313640 100644
+--- a/node_modules/sqlite-up/dist/types.d.ts.map
++++ b/node_modules/sqlite-up/dist/types.d.ts.map
+@@ -1 +1 @@
+-{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE1B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACnC;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;IAEnD;;OAEG;IACH,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAEjD;;OAEG;IACH,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,eAAe,GAAG,OAAO,CAAC,CAAC;CACpE;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB,CAAC,IAAI,SAAS,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE,MAAM,GAAG,OAAO;IACrF,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAEtC;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC;IAEnD;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC;IAEpD;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC;CACrD;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAEzC;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC;CACvC;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC;IAE5E;;OAEG;IACH,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,iBAAiB,KAAK,YAAY,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;CAC3F;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,iBAAiB,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,EAAE,EAAE,gBAAgB,CAAC;IAErB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,EAAE,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IAE/C;;OAEG;IACH,IAAI,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd;;OAEG;IACH,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B"}
+\ No newline at end of file
++{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE1B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACnC;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;IAEnD;;OAEG;IACH,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAEjD;;OAEG;IACH,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,eAAe,GAAG,OAAO,CAAC,CAAC;CACpE;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB,CAAC,IAAI,SAAS,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE,MAAM,GAAG,OAAO;IACrF,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAEtC;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC;IAEnD;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC;IAEpD;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC;CACrD;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAEzC;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC;CACvC;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC;IAE5E;;OAEG;IACH,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,iBAAiB,KAAK,YAAY,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;CAC3F;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,iBAAiB,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,EAAE,EAAE,gBAAgB,CAAC;IAErB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,GAAG;IAChC;;OAEG;IACH,EAAE,EAAE,CAAC,EAAE,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IAExD;;OAEG;IACH,IAAI,EAAE,CAAC,EAAE,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CAC3D;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IAC3D;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd;;OAEG;IACH,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B"}
+\ No newline at end of file
diff --git a/src/backend/common/AbstractComponent.ts b/src/backend/common/AbstractComponent.ts
index bab2f1229..514bd6221 100644
--- a/src/backend/common/AbstractComponent.ts
+++ b/src/backend/common/AbstractComponent.ts
@@ -6,7 +6,7 @@ import { LifecycleStep, PlayData, PlayObject, TransformResult } from "../../core
import { buildPlayHumanDiffable, buildTrackString } from "../../core/StringUtils.js";
import { CommonClientConfig } from "./infrastructure/config/client/index.js";
import { CommonSourceConfig } from "./infrastructure/config/source/index.js";
-import { mergeSimpleError, SkipTransformStageError, StagePrerequisiteError, StageTransformError, TransformRulesError } from "./errors/MSErrors.js";
+import { mergeSimpleError, SimpleError, SkipTransformStageError, StagePrerequisiteError, StageTransformError, TransformRulesError } from "./errors/MSErrors.js";
import {
FLOW_CONTROL_TERM,
PlayTransformRules,
@@ -20,13 +20,21 @@ import { getRoot } from "../ioc.js";
import { nanoid } from "nanoid";
import { isDebugMode } from "../utils.js";
import { findCauseByReference } from "../utils/ErrorUtils.js";
-import { hashObject } from "../utils/StringUtils.js";
+import { hashObject, parseArrayFromMaybeString } from "../utils/StringUtils.js";
import { metaInvariantTransform, playContentInvariantTransform } from "../utils/PlayComparisonUtils.js";
import { MSCache } from "./Cache.js";
import { diffObjects, diffObjectsConsoleOutput, patchObject } from "../../core/DataUtils.js";
import clone from "clone";
import { loggerNoop } from "./MaybeLogger.js";
import { objectsEqual } from "../utils/DataUtils.js";
+import { RetentionOptions } from "./infrastructure/config/database.js";
+import { getRetentionCompactAfterFromEnv, getRetentionDeleteAfterFromEnv, isCompactableProperty, parseRetentionOptions, parseRetentionOptionsDurations } from "./database/Database.js";
+import { DbConcrete } from "./database/drizzle/drizzleUtils.js";
+import { ComponentSelect } from "./database/drizzle/drizzleTypes.js";
+import { DrizzlePlayRepository } from "./database/drizzle/repositories/PlayRepository.js";
+import { ClientType } from "./infrastructure/config/client/clients.js";
+import { SourceType } from "./infrastructure/config/source/sources.js";
+import { DrizzleComponentRepository } from "./database/drizzle/repositories/ComponentRepository.js";
export type AbstractComponentConfig = (CommonClientConfig | CommonSourceConfig) & { transformManager?: TransformerManager };
@@ -38,11 +46,27 @@ export default abstract class AbstractComponent extends AbstractInitializable {
regexCache!: ReturnType;
protected transformManager: TransformerManager;
protected cache: MSCache;
+ protected db: DbConcrete;
+ protected componentRepo!: DrizzleComponentRepository;
+ protected dbComponent!: ComponentSelect;
+ protected retentionOpts: RetentionOptions;
+
+ protected componentType: 'source' | 'client';
+ type: ClientType | SourceType;
protected constructor(config: AbstractComponentConfig) {
super(config);
this.transformManager = config.transformManager ?? getRoot().items.transformerManager;
this.cache = getRoot().items.cache();
+ const cProps = config.options?.retention?.compact ?? parseArrayFromMaybeString(process.env.COMPACT_PROPERTIES, {lower: true});
+ if(!cProps.every(isCompactableProperty)) {
+ throw new SimpleError(`Compactable properties must be one of 'transform' or 'input'. Given: ${cProps.join(',')}`);
+ }
+ this.retentionOpts = {
+ deleteAfter: parseRetentionOptionsDurations(config.options?.retention?.deleteAfter, getRetentionDeleteAfterFromEnv()),
+ compactAfter: parseRetentionOptions(config.options?.retention?.compactAfter, getRetentionCompactAfterFromEnv()),
+ compact: cProps
+ };
}
protected postCache(): Promise {
@@ -54,6 +78,25 @@ export default abstract class AbstractComponent extends AbstractInitializable {
}
}
+ protected async doBuildDatabase(): Promise {
+ super.doBuildDatabase();
+
+ let name: string;
+ if('name' in this) {
+ name = this.name as string;
+ }
+
+ this.db = await getRoot().items.db();
+ this.componentRepo = new DrizzleComponentRepository(this.db, {logger: this.logger});
+ this.dbComponent = await this.componentRepo.findOrInsert({
+ mode: this.componentType,
+ type: this.type,
+ uid: this.config.id ?? this.config.name ?? name,
+ name: this.config.name ?? name
+ });
+ return true;
+ }
+
public buildTransformRules() {
this.logger.debug('Building transformer rules...');
try {
@@ -154,6 +197,19 @@ export default abstract class AbstractComponent extends AbstractInitializable {
}
}
+ public retentionCleanup = async () => {
+ if(this.databaseOK !== true) {
+ this.logger.warn(`Cannot run retention cleanup because ${this.componentType} database state is not OK`);
+ return;
+ }
+ try {
+ const repo = new DrizzlePlayRepository(this.db, {logger: this.logger});
+ await repo.retentionCleanup(this.componentType, this.retentionOpts);
+ } catch (e) {
+ this.logger.warn(new Error('Failed to do retention cleanup', {cause: e}));
+ }
+ }
+
protected transformPartToStrong(data: any) {
if(data === undefined) {
return undefined;
diff --git a/src/backend/common/AbstractInitializable.ts b/src/backend/common/AbstractInitializable.ts
index 43c688424..a034130dd 100644
--- a/src/backend/common/AbstractInitializable.ts
+++ b/src/backend/common/AbstractInitializable.ts
@@ -4,7 +4,8 @@ import { hasNodeNetworkException } from "./errors/NodeErrors.js";
import { hasUpstreamError } from "./errors/UpstreamError.js";
import { WebhookPayload } from "./infrastructure/config/health/webhooks.js";
import { AuthCheckError, BuildDataError, ConnectionCheckError, ParseCacheError, PostInitError, StageError, TransformRulesError } from "./errors/MSErrors.js";
-import { messageWithCauses, messageWithCausesTruncatedDefault } from "../utils/ErrorUtils.js";
+import { messageWithCausesTruncatedDefault } from "../../core/ErrorUtils.js";
+import { spawn } from 'abort-controller-x';
export default abstract class AbstractInitializable {
requiresAuth: boolean = false;
@@ -12,7 +13,10 @@ export default abstract class AbstractInitializable {
authed: boolean = false;
authFailure?: boolean;
+ private initController: AbortController | undefined;
+
buildOK?: boolean | null;
+ databaseOK?: boolean | null;
connectionOK?: boolean | null;
cacheOK?: boolean | null;
@@ -31,44 +35,61 @@ export default abstract class AbstractInitializable {
protected abstract getIdentifier(): string;
- initialize = async (options: {force?: boolean, notify?: boolean, notifyTitle?: string} = {}) => {
+ initialize = async (options: {force?: boolean, notify?: boolean, notifyTitle?: string, internalOnly?: boolean} = {}) => {
- const {force = false, notify = false, notifyTitle = 'Init Error'} = options;
+ if(this.initController !== undefined) {
+ throw new Error(`Already trying to initialize, cannot attempt while an existing initialization attempt is running.`);
+ }
- this.logger.debug('Attempting to initialize...');
- try {
- this.initializing = true;
- if(this.componentLogger === undefined) {
- await this.buildComponentLogger();
- }
- await this.buildInitData(force);
- await this.parseCache(force);
+ this.initController = new AbortController();
+ return spawn(this.initController.signal, async (signal, {defer, fork}) => {
+
+ defer(async () => {
+ this.initializing = false;
+ this.initController = undefined;
+ });
+
+ const {force = false, notify = false, notifyTitle = 'Init Error', internalOnly = false} = options;
+
+ this.logger.debug('Attempting to initialize...');
try {
- await this.postCache();
- } catch (e) {
- if(e instanceof StageError) {
- throw e;
- } else {
- throw new Error('Error occurred during post-cache hook', {cause: e});
+ this.initializing = true;
+ if(this.componentLogger === undefined) {
+ await this.buildComponentLogger();
}
+ await this.buildDatabase(force);
+ await this.buildInitData(force);
+ await this.parseCache(force);
+ try {
+ await this.postCache();
+ } catch (e) {
+ if(e instanceof StageError) {
+ throw e;
+ } else {
+ throw new Error('Error occurred during post-cache hook', {cause: e});
+ }
+ }
+ if(internalOnly) {
+ return true;
+ }
+ await this.checkConnection(force);
+ await this.testAuth(force);
+ this.logger.info('Fully Initialized!');
+ try {
+ await this.postInitialize();
+ } catch (e) {
+ throw new PostInitError('Error occurred during post-initialization hook', {cause: e});
+ }
+ return true;
+ } catch(e) {
+ if(notify) {
+ await this.notify({title: `${this.getIdentifier()} - ${notifyTitle}`, message: truncateStringToLength(500)(messageWithCausesTruncatedDefault(e)), priority: 'error'});
+ }
+ throw new Error('Initialization failed', {cause: e});
+ } finally {
+ this.initializing = false;
}
- await this.checkConnection(force);
- await this.testAuth(force);
- this.logger.info('Fully Initialized!');
- try {
- await this.postInitialize();
- } catch (e) {
- throw new PostInitError('Error occurred during post-initialization hook', {cause: e});
- }
- return true;
- } catch(e) {
- if(notify) {
- await this.notify({title: `${this.getIdentifier()} - ${notifyTitle}`, message: truncateStringToLength(500)(messageWithCausesTruncatedDefault(e)), priority: 'error'});
- }
- throw new Error('Initialization failed', {cause: e});
- } finally {
- this.initializing = false;
- }
+ });
}
protected async buildComponentLogger() {
@@ -80,29 +101,18 @@ export default abstract class AbstractInitializable {
return;
}
- tryInitialize = async (options: {force?: boolean, notify?: boolean, notifyTitle?: string} = {}) => {
- if(this.initializing) {
- throw new Error(`Already trying to initialize, cannot attempt while an existing initialization attempt is running.`)
- }
- try {
- return await this.initialize(options);
- } catch (e) {
- throw e;
- }
- }
-
public async parseCache(force: boolean = false) {
if(this.cacheOK) {
if(!force) {
return;
}
- this.logger.debug('Cache OK but step was forced');
+ this.logger.verbose('Cache OK but step was forced');
}
try {
const res = await this.doParseCache();
if(res === undefined) {
this.cacheOK = null;
- this.logger.debug('No cache to parse.');
+ this.logger.trace('No cache to parse.');
return;
}
if (res === true) {
@@ -139,13 +149,13 @@ export default abstract class AbstractInitializable {
if(!force) {
return;
}
- this.logger.debug('Build OK but step was forced');
+ this.logger.verbose('Build OK but step was forced');
}
try {
const res = await this.doBuildInitData();
if(res === undefined) {
this.buildOK = null;
- this.logger.debug('No required data to build.');
+ this.logger.trace('No required data to build.');
return;
}
if (res === true) {
@@ -172,6 +182,58 @@ export default abstract class AbstractInitializable {
return;
}
+ public async buildDatabase(force: boolean = false) {
+ if(this.databaseOK) {
+ if(!force) {
+ return;
+ }
+ this.logger.verbose('Database OK but step was forced');
+ }
+ try {
+ const res = await this.doBuildDatabase();
+ if(res === undefined) {
+ this.databaseOK = null;
+ this.logger.trace('No required database steps.');
+ return;
+ }
+ if (res === true) {
+ this.logger.verbose('Required database init succeeded');
+ } else if (typeof res === 'string') {
+ this.logger.verbose(`Required database init succeeded => ${res}`);
+ }
+ this.databaseOK = true;
+ } catch (e) {
+ this.databaseOK = false;
+ throw new BuildDataError('Required database init failed', {cause: e});
+ }
+
+ try {
+ await this.postDatabase();
+ } catch (e) {
+ if(e instanceof StageError) {
+ throw e;
+ } else {
+ throw new Error('Error occurred during post-database hook', {cause: e});
+ }
+ }
+ }
+
+ protected async postDatabase(): Promise {
+ return;
+ }
+
+ /**
+ * Run/fetch/create any database data needed for this component to operate when ready
+ *
+ * * Return undefined if not possible or not required
+ * * Return TRUE if database steps succeeded
+ * * Return string if database steps succeeded and should log result
+ * * Throw error on failure
+ * */
+ protected async doBuildDatabase(): Promise {
+ return;
+ }
+
public async checkConnection(force: boolean = false) {
if(this.connectionOK) {
if(!force) {
@@ -252,12 +314,14 @@ export default abstract class AbstractInitializable {
public isReady() {
return (this.buildOK === null || this.buildOK === true) &&
+ (this.databaseOK === null || this.databaseOK === true) &&
(this.connectionOK === null || this.connectionOK === true)
&& !this.authGated();
}
public isUsable() {
return (this.buildOK === null || this.buildOK === true) &&
+ (this.databaseOK === null || this.databaseOK === true) &&
(this.connectionOK === null || this.connectionOK === true);
}
diff --git a/src/backend/common/Cache.ts b/src/backend/common/Cache.ts
index 8483489c2..2574905c4 100644
--- a/src/backend/common/Cache.ts
+++ b/src/backend/common/Cache.ts
@@ -13,14 +13,15 @@ import { childLogger, Logger } from '@foxxmd/logging';
import { projectDir } from './index.js';
import path from 'path';
import { cacheFunctions } from "@foxxmd/regex-buddy-core";
-import { fileOrDirectoryIsWriteable } from '../utils/FSUtils.js';
-import { asCacheAuthProvider, asCacheConfig, asCacheMetadataProvider, asCacheScrobbleProvider, CacheAuthProvider, CacheConfig, CacheConfigOptions, CacheMetadataProvider, CacheProvider, CacheScrobbleProvider } from './infrastructure/Atomic.js';
+import { fileExists, fileOrDirectoryIsWriteable } from '../utils/FSUtils.js';
+import { copyFile } from 'fs/promises';
+import { asCacheConfig, CacheAuthProvider, CacheConfig, CacheConfigOptions, CacheConfigUser, CacheScrobbleProvider } from './infrastructure/Atomic.js';
import { Typeson } from 'typeson';
import { builtin } from 'typeson-registry';
import { loggerNoop } from './MaybeLogger.js';
-import { ListenProgressPositional, ListenProgressTS } from '../sources/PlayerState/ListenProgress.js';
const configDir = process.env.CONFIG_DIR || path.resolve(projectDir, `./config`);
import prom, { Gauge } from 'prom-client';
+import { nonEmptyStringOrDefault } from '../../core/StringUtils.js';
dayjs.extend(utc)
dayjs.extend(isBetween);
@@ -37,17 +38,24 @@ typeson.register({
(x) => dayjs.isDayjs(x),
(d: Dayjs) => d.toJSON(),
(date) => dayjs(date)
- ],
- ListenProgressTS,
- ListenProgressPositional
+ ]
});
+const unsupportedEnvKeys = [
+ 'CACHE_AUTH_CONN',
+ 'CACHE_METADATA',
+ 'CACHE_SCROBBLE',
+ 'CACHE_SCROBBLE_CONN',
+ 'CACHE_AUTH_CONN'
+];
+
export class MSCache {
config: Required
cacheMetadata: Cacheable;
cacheScrobble: Cacheable;
+ cacheDb: Cacheable;
cacheAuth: Cacheable;
regexCache: ReturnType;
cacheTransform: Cacheable;
@@ -68,19 +76,19 @@ export class MSCache {
const {
metadata: {
- provider: mProvider = (process.env.CACHE_METADATA as (CacheMetadataProvider | undefined) ?? false),
- connection: mConn = process.env.CACHE_METADATA_CONN,
- ...restMetadata
+ provider: mProvider = false,
+ connection: mConn,
+ //...restMetadata
} = {},
scrobble: {
- provider: sProvider = (process.env.CACHE_SCROBBLE as (CacheScrobbleProvider | undefined) ?? 'file'),
- connection = (process.env.CACHE_SCROBBLE_CONN ?? configDir),
- ...restScrobble
+ provider: sProvider = false,
+ connection: sConnection,
+ //...restScrobble
} = {},
auth: {
- provider: aProvider = (process.env.CACHE_AUTH as (CacheAuthProvider | undefined) ?? 'file'),
- connection: aConn = (process.env.CACHE_AUTH_CONN ?? configDir),
- ...restAuth
+ provider: aProvider = false,
+ connection: aConn,
+ //...restAuth
} = {},
regex = 200,
} = config;
@@ -89,17 +97,14 @@ export class MSCache {
metadata: {
provider: mProvider,
connection: mConn,
- ...restMetadata,
},
scrobble: {
provider: sProvider,
- connection,
- ...restScrobble
+ connection: sConnection,
},
auth: {
provider: aProvider,
connection: aConn,
- ...restAuth
},
regex
};
@@ -114,6 +119,7 @@ export class MSCache {
this.cacheAuth = inMemory;
this.cacheScrobble = inMemory;
this.cacheApi = inMemory;
+ this.cacheDb = new Cacheable({primary: initMemoryCache({lruSize: 500, ttl: '1m'})});
}
init = async (enableCollectors: boolean = false) => {
@@ -133,7 +139,8 @@ export class MSCache {
{ cache: this.cacheScrobble, name: 'queued_scrobbles' },
{ cache: this.cacheTransform, name: 'transformer' },
{ cache: this.cacheClientScrobbles, name: 'historical_scrobbles' },
- { cache: this.cacheApi, name: 'external_apis' }
+ { cache: this.cacheApi, name: 'external_apis' },
+ { cache: this.cacheDb, name: 'database' }
];
this.cacheHits = new prom.Gauge({
@@ -271,10 +278,10 @@ export class MSCache {
}
}
if (config.provider === 'file') {
- logger.debug(`Building file cache from ${path.join(config.connection, `${namespace}.cache`)}`);
+ logger.debug(`Building file cache from ${path.join(config.connection ?? configDir, `${namespace}.cache`)}`);
try {
- const [keyvFile] = await initFileCache({ ...config, cacheDir: config.connection, cacheId: `${namespace}.cache` }, {ttl: config.ttl}, logger);
+ const [keyvFile] = await initFileCache({ ...config, cacheDir: config.connection ?? configDir, cacheId: `${namespace}.cache` }, {ttl: config.ttl}, logger);
return keyvFile;
} catch (e) {
throw e;
@@ -364,8 +371,8 @@ export const flatCacheCreate = (opts: FlatCacheOptions) => {
return new FlatCache({
ttl: 0,
lruSize: 2000,
- cacheDir: opts.cacheDir ?? configDir,
- cacheId: opts.cacheId ?? 'scrobble.cache',
+ cacheDir: opts.cacheDir,
+ cacheId: opts.cacheId ?? 'ms.cache',
persistInterval: 1 * 1000 * 10,
expirationInterval: 1 * 1000 * 10, // 10 seconds
...opts
@@ -381,6 +388,12 @@ export const flatCacheLoad = async (flatCache: FlatCache, logger: Logger = logge
throw new Error(`Unable to use path for file cache at ${cachePath}`, { cause: e })
}
+ // if(fileExists(cachePath) && !fileExists(`${cachePath}.bak`)) {
+ // logger.info(`Backing up ${cachePath} in preparation for migration to database...`);
+ // await copyFile(cachePath, `${cachePath}.bak`);
+ // logger.info(`Done! Backed up to ${cachePath}.bak\nAll data has been loaded into cache. It will be deleted (from cache) after migrating to database.\nIf there are migration issues or you wish to downgrade then overwrite ${cachePath} with the .bak backup copy`);
+ // }
+
const streamPromise = new Promise((resolve, reject) => {
flatCache.loadFileStream(cachePath, (progress: number, total: number) => {
logger.trace(`Loading ${progress}/${total} chunks...`);
@@ -497,4 +510,86 @@ const noopKeyv: KeyvStoreAdapter = {
delete: (_) => undefined,
clear: () => Promise.resolve(),
on: (_, __) => undefined
+}
+
+export const parseUserConfig = (config: CacheConfigUser = {}, parentLogger: Logger = loggerNoop): CacheConfigOptions => {
+ const logger = childLogger(parentLogger, 'Cache');
+
+ let valkeyEnvVal: string | undefined = nonEmptyStringOrDefault(process.env.CACHE_VALKEY);
+ if(valkeyEnvVal === undefined) {
+ valkeyEnvVal = nonEmptyStringOrDefault(process.env.CACHE_METADATA_CONN);
+ if(valkeyEnvVal !== undefined) {
+ logger.warn('ENV CACHE_METADATA_CONN is deprecated! Replace it with CACHE_VALKEY');
+ }
+ }
+
+ for(const key of unsupportedEnvKeys) {
+ if(nonEmptyStringOrDefault(process.env[key]) !== undefined) {
+ logger.warn(`ENV ${key} is no longer supported. Refer to the Caching docs.`);
+ }
+ }
+
+ const {
+ valkey = valkeyEnvVal,
+ // metadata: {
+ // provider: mProvider = (process.env.CACHE_METADATA as (CacheMetadataProvider | undefined) ?? false),
+ // connection: mConn = process.env.CACHE_METADATA_CONN,
+ // //...restMetadata
+ // } = {},
+ scrobble: {
+ provider: sProvider = (process.env.CACHE_SCROBBLE as (CacheScrobbleProvider | undefined) ?? 'file'),
+ connection = (process.env.CACHE_SCROBBLE_CONN ?? configDir),
+ ...restScrobble
+ } = {},
+ auth: {
+ provider: aProvider = (process.env.CACHE_AUTH as (CacheAuthProvider | undefined) ?? 'file'),
+ //...restAuth
+ } = {},
+ regex = 200,
+ } = config;
+
+ if(config.metadata !== undefined) {
+ logger.warn('Configuring cache.metadata is no longer supported. Refer to the Caching docs.');
+ }
+ if(config.scrobble !== undefined) {
+ logger.warn('Configuring cache.scrobble is no longer supported. Refer to the Caching docs.');
+ }
+ if(config.auth?.connection !== undefined) {
+ logger.warn('Configuring cache.auth.connection is no longer supported. Refer to the Caching docs.');
+ }
+
+ let authConn: string,
+ authProvider = aProvider;
+ if(authProvider === 'valkey') {
+ if(valkey === undefined) {
+ logger.warn(`Auth Provider set to 'valkey' but not valkey connection string was not provided, falling back to file.`);
+ authConn = configDir;
+ authProvider = 'file';
+ } else {
+ authConn = valkey;
+ }
+ } else {
+ if(authProvider !== 'file') {
+ logger.warn(`Unsupported provider given for auth: ${authProvider}`);
+ }
+ authConn = configDir;
+ authProvider = 'file';
+ }
+
+ return {
+ metadata: {
+ provider: valkey !== undefined ? 'valkey' : false,
+ connection: valkey,
+ },
+ scrobble: {
+ provider: sProvider,
+ connection,
+ ...restScrobble
+ },
+ auth: {
+ provider: authProvider,
+ connection: authConn,
+ },
+ regex
+ };
}
\ No newline at end of file
diff --git a/src/backend/common/database/Database.ts b/src/backend/common/database/Database.ts
new file mode 100644
index 000000000..069504d92
--- /dev/null
+++ b/src/backend/common/database/Database.ts
@@ -0,0 +1,185 @@
+import { configDir } from '../index.js';
+import * as path from 'path';
+import { promises as fs } from 'fs'
+import { childLogger, Logger } from '@foxxmd/logging';
+import { loggerNoop } from '../MaybeLogger.js';
+import { fileExists, fileOrDirectoryIsWriteable } from '../../utils/FSUtils.js';
+import { COMPACTABLE, compactableProperties, CompactableProperty, DEFAULT_RETENTION_DELETE_AFTER, RententionGranular, RetentionConfig, RetentionConfigValue, RetentionOption, RetentionValue, RetentionValueUnparsed } from '../infrastructure/config/database.js';
+import { DurationValue } from '../infrastructure/Atomic.js';
+import { Duration } from 'dayjs/plugin/duration.js';
+import dayjs from 'dayjs';
+import { parseDurationFromDurationValue } from '../../utils/TimeUtils.js';
+import assert, { AssertionError } from 'node:assert';
+import * as sqlite from 'node:sqlite';
+import { parseBoolStrict } from '../../utils.js';
+import { SimpleError } from '../errors/MSErrors.js';
+
+export const MEMORY_DB_NAME = ':memory:';
+export const isMemoryDb = (name: string): boolean => name === MEMORY_DB_NAME;
+
+export const getDbPath = (name: string = 'ms', workingDirectory?: string): string => {
+ if (isMemoryDb(name)) {
+ return MEMORY_DB_NAME;
+ }
+ return path.resolve(workingDirectory ?? configDir, `${name}.db`);
+}
+
+export const getDbBackupPath = (dbPath: string, suffix?: string): string => {
+ const pathInfo = path.parse(dbPath);
+ const backupPath = `${path.join(pathInfo.dir, pathInfo.name)}.db${suffix !== undefined ? `.${suffix}` : ''}.bak`;
+ return backupPath;
+}
+
+export const backupDb = async (db: sqlite.DatabaseSync, dbPath: string, opts: { logger?: Logger, suffix?: string } = {}): Promise => {
+
+ const {
+ logger: parentLogger = loggerNoop,
+ suffix,
+ } = opts;
+
+ const logger = childLogger(parentLogger, 'Migrations');
+
+ if(dbPath === MEMORY_DB_NAME) {
+ // TODO serialize
+ return;
+ }
+
+ const backupPath = getDbBackupPath(dbPath, suffix);
+ logger.info(`Backing up database to => ${backupPath}`);
+ await sqlite.backup(db, backupPath, {
+ progress: ({totalPages, remainingPages}) => {
+ logger.debug(`Backup in progress => ${totalPages - remainingPages} / ${totalPages}`);
+ }
+ })
+ logger.info('Backed up!');
+}
+
+const parseRetentionValue = (val: RetentionValueUnparsed): RetentionValue => {
+ if(typeof val === 'string' || typeof val === 'boolean') {
+ try {
+ const boolVal = parseBoolStrict(val);
+ assert(boolVal === false, 'retention value cannot be true');
+ return boolVal;
+ } catch (e) {
+ // swallow
+ }
+ } else if(dayjs.isDuration(val)) {
+ return val;
+ } else {
+ return parseDurationFromDurationValue(val);
+ }
+ throw new SimpleError('retention value be of one: false, number, or string');
+}
+
+const parseRetentionFromEnv = (): RetentionOption => {
+ const deleteAfterEnv = process.env.RETENTION_DELETE_AFTER ?? DEFAULT_RETENTION_DELETE_AFTER,
+ deleteCompletedEnv = process.env.RETENTION_DELETE_COMPLETED_AFTER ?? deleteAfterEnv,
+ deleteFailedEnv = process.env.RETENTION_DELETE_FAILED_AFTER ?? deleteAfterEnv,
+ deleteDupedEnv = process.env.RETENTION_DELETE_DUPED_AFTER ?? deleteAfterEnv;
+
+ return {
+ completed: parseRetentionValue(deleteCompletedEnv),
+ failed: parseRetentionValue(deleteFailedEnv),
+ duped: parseRetentionValue(deleteDupedEnv)
+ }
+}
+
+const isRetentionOptionDurations = (val: RetentionOption): val is RetentionOption => {
+ return dayjs.isDuration(val.completed)
+ && dayjs.isDuration(val.duped)
+ && dayjs.isDuration(val.failed);
+}
+
+let retentionDeleteAfterFromEnv: RetentionOption,
+retentionCompactAfterFromEnv: RetentionOption;
+
+export const getRetentionDeleteAfterFromEnv = () => {
+ if (retentionDeleteAfterFromEnv === undefined) {
+ const deleteEnv = parseRetentionFromEnv();
+ if(isRetentionOptionDurations(deleteEnv)) {
+ retentionDeleteAfterFromEnv = deleteEnv;
+ } else {
+ throw new SimpleError('retention deleteAfter values from env must all be one of: number or string');
+ }
+ }
+ return retentionDeleteAfterFromEnv;
+}
+export const getRetentionCompactAfterFromEnv = () => {
+ if (retentionCompactAfterFromEnv === undefined) {
+ const compactEnv = parseRetentionFromEnv();
+ retentionCompactAfterFromEnv = compactEnv;
+ }
+ return retentionCompactAfterFromEnv;
+}
+
+export const parseRetentionOptions = (opts: RetentionConfigValue = {}, defaults: RetentionOption): RetentionOption => {
+ if (typeof opts === 'number' || typeof opts === 'string') {
+ const dur = parseDurationFromDurationValue(opts);
+ return {
+ completed: dur,
+ duped: dur,
+ failed: dur
+ }
+ }
+
+ if (opts === undefined) {
+ return defaults;
+ }
+
+ if(dayjs.isDuration(opts)) {
+ return {
+ completed: opts,
+ failed: opts,
+ duped: opts
+ }
+ }
+
+ const {
+ completed = defaults.completed,
+ failed = defaults.failed,
+ duped = defaults.duped
+ } = opts;
+
+ return {
+ completed: parseRetentionValue(completed),
+ failed: parseRetentionValue(failed),
+ duped: parseRetentionValue(duped),
+ }
+}
+
+export const parseRetentionOptionsDurations = (opts: RetentionConfigValue> = {}, defaults: RetentionOption): RetentionOption => {
+ if (typeof opts === 'number' || typeof opts === 'string') {
+ const dur = parseDurationFromDurationValue(opts);
+ return {
+ completed: dur,
+ duped: dur,
+ failed: dur
+ }
+ }
+
+ if(dayjs.isDuration(opts)) {
+ return {
+ completed: opts,
+ failed: opts,
+ duped: opts
+ }
+ }
+
+ if (opts === undefined) {
+ return defaults;
+ }
+
+ const {
+ completed = defaults.completed,
+ failed = defaults.failed,
+ duped = defaults.duped
+ } = opts;
+
+ return {
+ completed: dayjs.isDuration(completed) ? completed : parseDurationFromDurationValue(completed),
+ failed: dayjs.isDuration(failed) ? failed : parseDurationFromDurationValue(failed),
+ duped: dayjs.isDuration(duped) ? duped : parseDurationFromDurationValue(duped),
+ }
+}
+
+export const isCompactableProperty = (val: string): val is CompactableProperty => val === COMPACTABLE.input || val === COMPACTABLE.transform;
\ No newline at end of file
diff --git a/src/backend/common/database/appMigrations/.gitkeep b/src/backend/common/database/appMigrations/.gitkeep
new file mode 100644
index 000000000..81fd5e7a5
--- /dev/null
+++ b/src/backend/common/database/appMigrations/.gitkeep
@@ -0,0 +1,14 @@
+// Copyright 2026 foxx
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
diff --git a/src/backend/common/database/appMigrator.ts b/src/backend/common/database/appMigrator.ts
new file mode 100644
index 000000000..e91473f47
--- /dev/null
+++ b/src/backend/common/database/appMigrator.ts
@@ -0,0 +1,69 @@
+import { DbConcrete } from "./drizzle/drizzleUtils.js";
+import { loggerNoop } from "../MaybeLogger.js";
+import * as path from 'path';
+import { childLogger, Logger } from "@foxxmd/logging";
+import { projectDir } from "../index.js";
+import { Migrator } from 'sqlite-up';
+import { MigrationStatus } from "../infrastructure/Atomic.js";
+
+export interface MigrateBaseContext {
+ db: DbConcrete
+ logger: Logger
+}
+
+export const getAppMigrationStatus = async (db: DbConcrete, opts: {logger?: Logger, migrationsAppFolder?: string} = {}): Promise => {
+ const {
+ logger: parentLogger = loggerNoop,
+ migrationsAppFolder = path.resolve(projectDir, 'src/backend/common/database/appMigrations')
+ } = opts;
+ const logger = childLogger(parentLogger, 'App Migrations');
+
+ const migrator = new Migrator({
+ db: db.$client,
+ migrationsDir: migrationsAppFolder,
+ migrationsTable: '__app_migrations'
+ });
+
+ const status = await migrator.status();
+
+ if(status.pending === 0) {
+ return {backupRequired: false, pending: [], log: 'No pending app migrations.'};
+ }
+
+ const plan = await migrator.plan();
+ return {backupRequired: true, pending: plan.pendingMigrations, log: `${plan.pendingMigrations.length} pending app migrations:\n${plan.pendingMigrations.join('\n')}`};
+}
+
+
+export const migrateApp = async (db: DbConcrete, opts: {logger?: Logger, migrationsAppFolder?: string} = {}): Promise => {
+ const {
+ logger: parentLogger = loggerNoop,
+ migrationsAppFolder = path.resolve(projectDir, 'src/backend/common/database/appMigrations')
+ } = opts;
+ const logger = childLogger(parentLogger, 'App');
+
+ const migrator = new Migrator({
+ db: db.$client,
+ migrationsDir: migrationsAppFolder,
+ migrationsTable: 'appMigrations'
+ });
+
+ migrator.on('migration:applied', function (name: string, batch: number): void {
+ logger.verbose(`Migration Applied: "${name}" in batch ${batch}`);
+ });
+
+ logger.info('Applying any app migrations...');
+ const result = await migrator.apply({db, logger});
+
+ if (!result.success) {
+ throw new Error('App migration failed', {cause: result.error});
+ } else {
+ if(result.appliedMigrations.length === 0) {
+ logger.info('No app migrations required.');
+ } else {
+ logger.info('App migrations applied!');
+ }
+ }
+
+ return result.appliedMigrations;
+}
\ No newline at end of file
diff --git a/src/backend/common/database/drizzle/drizzleTypes.ts b/src/backend/common/database/drizzle/drizzleTypes.ts
new file mode 100644
index 000000000..d2edea035
--- /dev/null
+++ b/src/backend/common/database/drizzle/drizzleTypes.ts
@@ -0,0 +1,103 @@
+import { DBQueryConfig, DBQueryConfigWith, ExtractTablesFromSchema, KnownKeysOnly, RelationFieldsFilterInternals, Many, InferSelectModel, ExtractTablesWithRelations, type BuildQueryResult, RelationsFilter } from "drizzle-orm";
+import { components, componentMigrations, playInputs, plays, queueStates, relations } from "./schema/schema.js";
+import {TSchema, TableName, Schema } from "./schema/schema.js";
+import { MarkOptional, MarkRequired } from "ts-essentials";
+
+
+export type ComponentNew = typeof components.$inferInsert;
+export type ComponentSelect = GenericRelationResult<'components', 'migrations'>;
+
+export type ComponentMigrationNew = typeof componentMigrations.$inferInsert;
+export type ComponentMigrationSelect = typeof componentMigrations.$inferSelect;
+
+export type QueueStateNew = typeof queueStates.$inferInsert;
+export type QueueStateSelect = typeof queueStates.$inferSelect;
+
+export type PlayInputNew = typeof playInputs.$inferInsert;
+export type PlayInputSelect = typeof playInputs.$inferSelect;
+
+export type PlaySelect = typeof plays.$inferSelect;
+export type PlaySelectRel = ModelWithRelations;
+export type PlaySelectWithQueueStates = GenericRelationResult<'plays', 'queueStates'>;
+export type PlayNew = typeof plays.$inferInsert;
+
+
+// useful references for building types
+// https://github.com/drizzle-team/drizzle-orm/discussions/2596
+// https://github.com/drizzle-team/drizzle-orm/discussions/1539
+// https://gist.github.com/ikupenov/10bc89d92d92eaba8cc5569013e04069
+// https://github.com/drizzle-team/drizzle-orm/issues/695 most examples
+// https://github.com/drizzle-team/drizzle-orm/discussions/2316 relation focused
+// https://github.com/drizzle-team/drizzle-orm/issues/1319
+
+//type p = TSchema['plays']['relations'];
+export type FindWith = DBQueryConfigWith;
+export type QueryConfig = DBQueryConfig<"many", TSchema, TSchema[T]>;
+export type FindMany = Pick, DBQueryConfig<"many", TSchema, TSchema[T]>>, 'where' | 'orderBy' | 'limit' | 'offset' | 'extras'> & {with?: FindWith}
+export type FindOne = Pick, DBQueryConfig<"one", TSchema, TSchema[T]>>, 'where' | 'orderBy' | 'limit' | 'offset' | 'extras'> & {with?: FindWith}
+export type FindWhere = QueryConfig['where'];
+// https://github.com/drizzle-team/drizzle-orm/issues/5218#issuecomment-4154686086
+export type WhereClause = RelationsFilter
+
+
+export type CompareOp = Pick, 'gt' | 'gte' | 'eq' | 'lt' | 'lte' | 'ne'>
+export type CompareOpKey = keyof CompareOp;
+
+
+
+/**
+ * Based on https://github.com/drizzle-team/drizzle-orm/issues/695#issuecomment-3133969178
+ */
+
+// Helper type to find the tsName corresponding to a given dbName in TSchema
+type FindTsNameByDbName = {
+ [K in keyof TSchema]: TSchema[K] extends {
+ // updated dbName -> name
+ name: TDbNameToFind;
+ }
+ ? K
+ : TDbNameToFind;
+}[keyof TSchema];
+
+// Helper type to find the dbName corresponding to a given tsName in TSchema
+type FindDbNameByTsName = {
+ [K in keyof Schema]: Schema[K] extends TTable ? K : never;
+}[keyof Schema];
+
+/**
+ * Utility type to infer the model type for a given table name from the schema.
+ * Handles nested relations recursively.
+ * Uses referencedTableName (dbName) and FindTsNameByDbName helper.
+ */
+export type ModelWithRelationsFromName<
+ TTableName extends keyof TSchema,
+> = InferSelectModel & {
+ [K in keyof TSchema[TTableName]['relations']]?: TSchema[TTableName]['relations'][K] extends infer TRelation
+ // updated referencedTableName -> targetTableName
+ ? TRelation extends { targetTableName: infer TRefDbName extends string }
+ ? FindTsNameByDbName extends infer TRefTsName extends
+ keyof TSchema
+ ? TRelation extends Many
+ ? ModelWithRelationsFromName[]
+ : ModelWithRelationsFromName | null
+ : never
+ : never
+ : never;
+};
+
+/**
+ * Utility type to infer the model type for a given table from the schema.
+ * Handles nested relations recursively.
+ * Uses referencedTableName (dbName) and FindDbNameByTsName helper.
+ */
+export type ModelWithRelations =
+ FindDbNameByTsName extends infer TTableName extends keyof TSchema
+ ? ModelWithRelationsFromName
+ : never;
+
+
+// all relations are are now fully typed and optional
+//type FullPlay = ModelWithRelations;
+
+// https://github.com/drizzle-team/drizzle-orm/issues/695#issuecomment-4389296482
+type GenericRelationResult = BuildQueryResult }>;
\ No newline at end of file
diff --git a/src/backend/common/database/drizzle/drizzleUtils.ts b/src/backend/common/database/drizzle/drizzleUtils.ts
new file mode 100644
index 000000000..516e55a36
--- /dev/null
+++ b/src/backend/common/database/drizzle/drizzleUtils.ts
@@ -0,0 +1,236 @@
+import { drizzle } from 'drizzle-orm/node-sqlite';
+import { migrate } from 'drizzle-orm/node-sqlite/migrator';
+import { BaseSQLiteDatabase } from "drizzle-orm/sqlite-core";
+import { sql as dsl, LogWriter, Logger as DrizzleLogger } from 'drizzle-orm';
+import * as fs from 'fs/promises';
+import * as path from 'path';
+import { backupDb, getDbPath, getDbBackupPath, MEMORY_DB_NAME } from '../Database.js';
+import { fileExists, fileOrDirectoryIsWriteable } from '../../../utils/FSUtils.js';
+import { childLogger, Logger, LogLevel } from '@foxxmd/logging';
+import { loggerNoop } from '../../MaybeLogger.js';
+import { projectDir } from '../../index.js';
+import { relations } from './schema/schema.js';
+import { addToContext, executeQuery } from './logContext.js';
+import { DatabaseSync } from 'node:sqlite';
+import { migrateApp, getAppMigrationStatus } from '../appMigrator.js';
+import { MigrationStatus } from '../../infrastructure/Atomic.js';
+
+export async function getDbMigrationStatus(dbVal: string | DbConcrete, opts: {logger?: Logger, migrationsFolder?: string} = {}): Promise {
+ const {
+ logger: parentLogger = loggerNoop,
+ migrationsFolder = path.resolve(projectDir, 'src/backend/common/database/drizzle/migrations')
+ } = opts;
+ const logger = childLogger(parentLogger, 'Migrations');
+
+ let db: DbConcrete;
+
+ if(typeof dbVal === 'string') {
+ logger.info(`Checking for database at ${dbVal}`);
+ if (dbVal !== MEMORY_DB_NAME && !fileExists(dbVal)) {
+ //logger.info(`No database exists, no backup needed.`);
+ return {backupRequired: false, pending: [], reason: 'noDb', log: 'No database exists'};
+ }
+ db = await getDb(dbVal);
+ } else {
+ db = dbVal;
+ }
+
+ try {
+ // Ensure the migrations table exists
+ // https://github.com/drizzle-team/drizzle-orm/issues/1953
+ const res = db.all(dsl`
+ SELECT count(*) FROM sqlite_master WHERE type='table' AND name='__drizzle_migrations';
+ `);
+
+ if (res[0]['count(*)'] === 0) {
+ //logger.info(`Database exists but there is no __drizzle_migrations table??`);
+ return {backupRequired: true, pending: [], reason: 'missingTable', log: 'Database exists but there is no __drizzle_migrations table'};
+ }
+
+ const dbMigrations = await db.all(dsl`SELECT id, hash, created_at, name, applied_at FROM "__drizzle_migrations" ORDER BY created_at DESC`);
+ const appliedMigrations = new Set(dbMigrations.map((m: any) => m.name));
+
+ const allFiles = await fs.readdir(migrationsFolder);
+ const migrationFiles = allFiles
+ .sort();
+
+ const pendingMigrations = migrationFiles.filter(file => {
+ return !appliedMigrations.has(file);
+ });
+
+ //console.log('Applied migrations:', Array.from(appliedMigrations));
+ if (pendingMigrations.length > 0) {
+ //logger.info(`${pendingMigrations.length} pending migrations:\n${pendingMigrations.join('\n')}`);
+ return {backupRequired: true, pending: pendingMigrations, log: `${pendingMigrations.length} pending migrations:\n${pendingMigrations.join('\n')}`};
+ } else {
+ //logger.info('No pending migrations.');
+ return {backupRequired: false, pending: [], log: 'No pending migrations'};
+ }
+ } catch (error) {
+ const e = new Error('Failed to get pending migrations', { cause: error });
+ logger.error(e);
+ return {backupRequired: true, pending: [], error: e};
+ }
+}
+
+// TODO backup path
+export const getDb = (dbVal: string, opts: { logger?: Logger, backupPath?: string } = {}) => {
+ const {
+ logger = loggerNoop,
+ } = opts;
+ return drizzle(dbVal, {relations: relations, logger: createDrizzleLogger(logger)});
+}
+
+export type DbConcrete = ReturnType;
+
+export const migrateDb = async (db: DbConcrete, opts: {logger?: Logger, migrationsFolder?: string} = {}) => {
+ const {
+ migrationsFolder,
+ logger: parentLogger = loggerNoop
+ } = opts;
+ const logger = childLogger(parentLogger, 'DB');
+
+ try {
+ logger.info('Starting migrations...');
+ await executeQuery('migrations', async () => migrate(db, { migrationsFolder: migrationsFolder ?? path.resolve(projectDir, 'src/backend/common/database/drizzle/migrations') }), logger, process.env.LOG_MIGRATION === 'true' ? true : 'error');
+ logger.info('Migrations complete');
+ } catch (e) {
+ throw new Error('Failed to migrate database', { cause: e });
+ }
+}
+
+export const migrateDbSync = (db: ReturnType, opts: {logger?: Logger, migrationsFolder?: string} = {}) => {
+ const {
+ migrationsFolder,
+ logger: parentLogger = loggerNoop
+ } = opts;
+ const logger = childLogger(parentLogger, 'Migrations');
+
+ try {
+ logger.info('Starting migrations...');
+ migrate(db, { migrationsFolder: migrationsFolder ?? path.resolve(projectDir, 'src/backend/common/database/drizzle/migrations') });
+ logger.info('Migrations complete');
+ } catch (e) {
+ throw new Error('Failed to migrate database', { cause: e });
+ }
+}
+
+export const getMigratedDb = async (dbPath: string, opts: {
+ logger?: Logger,
+ migrationsFolder?: string,
+ migrationsAppFolder?: string,
+ backupPath?: string
+} = {}): Promise<[DbConcrete, boolean]> => {
+ const {
+ logger: parentLogger = loggerNoop
+ } = opts;
+ const logger = childLogger(parentLogger, ['Migrations']);
+ let db: DbConcrete,
+ isNew = false,
+ isMemory = dbPath === MEMORY_DB_NAME,
+ dbMigrationStatus: MigrationStatus,
+ appMigrationStatus: MigrationStatus,
+ backedUp = false;
+ if (!isMemory) {
+ try {
+ fileOrDirectoryIsWriteable(dbPath);
+ } catch (e) {
+ throw new Error('Database directory is not accessible', { cause: e });
+ }
+
+ const backupPath = getDbBackupPath(dbPath);
+
+ if(!fileExists(dbPath) && fileExists(backupPath)) {
+ logger.info(`Detected no database, making a copy of backup to use as new db. Backup file: ${backupPath}`);
+ await fs.copyFile(backupPath, dbPath);
+ }
+ if (fileExists(dbPath)) {
+ db = await getDb(dbPath, opts);
+ } else {
+ logger.info('Detected no database, creating a new one...');
+ db = await getDb(dbPath, opts);
+ isNew = true;
+ }
+ } else {
+ logger.info('Detected in-memory database');
+ db = await getDb(dbPath, opts);
+ isNew = true;
+ }
+
+ dbMigrationStatus = await getDbMigrationStatus(db, opts);
+ if(dbMigrationStatus.error !== undefined) {
+ logger.warn(dbMigrationStatus.error);
+ } else if(!isMemory && dbMigrationStatus.log !== undefined) {
+ logger.info({labels: 'DB'}, dbMigrationStatus.log);
+ }
+ if (dbMigrationStatus.backupRequired && !isNew && !isMemory) {
+ await backupDb(db.$client, dbPath, { logger: opts.logger });
+ backedUp = true;
+ }
+
+ if(backedUp) {
+ logger.info('TIP: Migrations may take some time, depending on the size of your database');
+ }
+ await migrateDb(db, opts);
+
+ appMigrationStatus = await getAppMigrationStatus(db, opts);
+ if(!isMemory && appMigrationStatus.log !== undefined) {
+ logger.info({labels: 'App'}, appMigrationStatus.log);
+ }
+ if(appMigrationStatus.pending.length > 0) {
+ if(appMigrationStatus.backupRequired && !isNew && !isMemory && !backedUp) {
+ logger.info(`Database not yet backed up, backing up before app migrations`);
+ await backupDb(db.$client, dbPath, { logger: opts.logger });
+ }
+ await migrateApp(db, opts);
+ }
+
+ return [db, isNew];
+}
+
+export const createDrizzleLogger = (parentLogger: Logger, opts: {level?: LogLevel} = {}): DrizzleLogger => {
+ return {
+ logQuery: (query: string, params: unknown[]) => {
+ addToContext({sql: query, params})
+ }
+ }
+}
+
+
+// cannot really use transactions right now because async isn't supporting for sqlite
+// https://github.com/drizzle-team/drizzle-orm/issues/1472
+// https://github.com/drizzle-team/drizzle-orm/issues/2275
+// so use this workaround for now
+// https://github.com/drizzle-team/drizzle-orm/issues/2275#issuecomment-2496503801
+let currentTransaction: null | Promise = null;
+export const runTransaction = async <
+ T,
+ TQueryResult,
+ TSchema extends Record = Record
+>(
+ db: BaseSQLiteDatabase<"sync", TQueryResult, TSchema>,
+ executor: () => Promise
+) => {
+ while (currentTransaction !== null) {
+ await currentTransaction;
+ }
+ let resolve!: () => void;
+ currentTransaction = new Promise(_resolve => {
+ resolve = _resolve;
+ });
+ try {
+ db.run(dsl.raw(`BEGIN`))
+
+ try {
+ const result = await executor();
+ await db.run(dsl.raw(`COMMIT`));
+ return result;
+ } catch (error) {
+ await db.run(dsl.raw(`ROLLBACK`));
+ throw error;
+ }
+ } finally {
+ resolve();
+ currentTransaction = null;
+ }
+};
\ No newline at end of file
diff --git a/src/backend/common/database/drizzle/entityUtils.ts b/src/backend/common/database/drizzle/entityUtils.ts
new file mode 100644
index 000000000..9d4241fb5
--- /dev/null
+++ b/src/backend/common/database/drizzle/entityUtils.ts
@@ -0,0 +1,93 @@
+import assert from "node:assert";
+import { PlayNew, PlaySelect, PlaySelectWithQueueStates } from "./drizzleTypes.js";
+import { PlayInputNew } from "./drizzleTypes.js";
+import { QueueStateNew } from "./drizzleTypes.js";
+import { ComponentNew } from "./drizzleTypes.js";
+import { MarkOptional, MarkRequired } from "ts-essentials";
+import { CLIENT_DEAD_QUEUE, DeadLetterScrobble, ErrorLike, PlayObject } from "../../../../core/Atomic.js";
+import dayjs, { Dayjs } from "dayjs";
+import { asPlay } from "../../../../core/PlayMarshalUtils.js";
+import { playContentBasicInvariantTransform, playMbidIdentifier } from "../../../utils/PlayComparisonUtils.js";
+import { hashObject } from "../../../utils/StringUtils.js";
+import { serializeError } from "serialize-error";
+
+export const generateComponentEntity = (data: MarkOptional): ComponentNew => {
+ assert(data.name !== undefined, 'Must provide name');
+ return {
+ ...data,
+ uid: data.uid ?? data.name
+ };
+}
+
+export type PlayEntityOpts = Partial> & { error?: ErrorLike };
+
+export const generatePlayEntity = (play: PlayObject, opts: PlayEntityOpts = {}): PlayNew => {
+ const {
+ seenAt = dayjs(),
+ state = 'queued',
+ playedAt = play.data.playDate,
+ ...restOpts
+ } = opts;
+ let playHash: string = undefined;
+ try {
+ playHash = hashObject(playContentBasicInvariantTransform(play).data);
+ } catch (e) {
+ // swallow
+ }
+ const data: PlayNew = {
+ play,
+ playHash,
+ state,
+ playedAt,
+ seenAt: play.meta.seenAt ?? seenAt,
+ ...restOpts
+ };
+ const mbidId = playMbidIdentifier(play);
+ if(mbidId !== undefined) {
+ data.mbidIdentifier = mbidId;
+ }
+ return data;
+}
+
+export type PlayHydateOptions = 'asPlay' | 'id' | 'uid';
+
+export const hydratePlaySelect = (select: PlaySelect, opts: PlayHydateOptions[] = ['id','uid']): PlayObject => {
+ if(opts.length === 0) {
+ return select.play;
+ }
+
+ let res = select.play;
+ // if(opts.includes('asPlay')) {
+ // res = asPlay(res);
+ // }
+ if(opts.includes('uid')) {
+ res.uid = select.uid;
+ //res.meta.dbUid = select.uid;
+ }
+ if(opts.includes('id')) {
+ res.id = select.id;
+ //res.meta.dbId = select.id;
+ }
+ return res;
+}
+
+export const playSelectToDeadScrobble = (select: PlaySelectWithQueueStates, serializedError: boolean = false): DeadLetterScrobble => {
+ const deadQueue = select.queueStates.find(x => x.queueName === CLIENT_DEAD_QUEUE);
+ return {
+ play: select.play,
+ id: select.uid,
+ source: select.play.meta.source,
+ retries: deadQueue.retries,
+ lastRetry: deadQueue.updatedAt,
+ error: (serializedError ? serializeError(select.error) : select.error) as unknown as string,
+ status: deadQueue.queueStatus as 'queued' | 'failed'
+ }
+}
+
+export const generateInputEntity = (data: PlayInputNew): PlayInputNew => {
+ return data;
+}
+
+export const generateQueueStateEntity = (data: QueueStateNew): QueueStateNew => {
+ return data;
+}
\ No newline at end of file
diff --git a/src/backend/common/database/drizzle/logContext.ts b/src/backend/common/database/drizzle/logContext.ts
new file mode 100644
index 000000000..3901f6c00
--- /dev/null
+++ b/src/backend/common/database/drizzle/logContext.ts
@@ -0,0 +1,71 @@
+import { Logger } from '@foxxmd/logging'
+import { AsyncLocalStorage } from 'async_hooks'
+
+// based on https://numeric.substack.com/p/upgrading-drizzleorm-logging-with
+interface QueryContext {
+ queryKey: string
+ startTime: number
+ queries: { sql?: string, params?: unknown[] }[]
+}
+
+const queryStorage = new AsyncLocalStorage()
+
+function wrapQuery(queryKey: string, fn: () => Promise): Promise {
+ return queryStorage.run(
+ {
+ queryKey,
+ startTime: Date.now(),
+ queries: []
+ },
+ fn
+ )
+}
+
+function getContext(): QueryContext | undefined {
+ return queryStorage.getStore()
+}
+
+export function addToContext(data: { sql?: string, params?: unknown[] }): void {
+ const context = getContext()
+ if (context) {
+ context.queries.push(data);
+ }
+}
+
+/**
+ * Log all queries made by drizzle during the execution of a promise
+ *
+ * use second parameter to configure when logging occurs
+ * * true => log everything (default)
+ * * false => log nothing, skips asyncstorage entirely
+ * * 'error' => only log if promise throws
+ *
+ */
+export async function executeQuery(queryKey: string, queryPromise: () => Promise, logger: Logger, when: boolean | 'error' = true) {
+ if(when === false) {
+ try {
+ return await queryPromise();
+ } catch (e) {
+ throw e;
+ }
+ }
+ return wrapQuery(queryKey, async () => {
+ try {
+ const results = await queryPromise()
+
+ if (when !== 'error') {
+ // Query is done - grab everything from context
+ const context = getContext()
+ const executionTime = context ? Date.now() - context.startTime : 0
+ logger.info({ labels: ['DB Query', queryKey], queries: context?.queries }, `Execution Complete in ${executionTime}ms`);
+ }
+
+ return results
+ } catch (error) {
+ const context = getContext()
+ const executionTime = context ? Date.now() - context.startTime : 0;
+ logger.warn({ labels: ['DB Query', queryKey], queries: context?.queries }, `Execution failed in ${executionTime}ms`);
+ throw error
+ }
+ })
+}
\ No newline at end of file
diff --git a/src/backend/common/database/drizzle/migrations/20260506143841_grey_polaris/migration.sql b/src/backend/common/database/drizzle/migrations/20260506143841_grey_polaris/migration.sql
new file mode 100644
index 000000000..2e831cbbb
--- /dev/null
+++ b/src/backend/common/database/drizzle/migrations/20260506143841_grey_polaris/migration.sql
@@ -0,0 +1,83 @@
+CREATE TABLE `components` (
+ `id` integer PRIMARY KEY,
+ `uid` text(200) NOT NULL,
+ `mode` text NOT NULL,
+ `type` text(50) NOT NULL,
+ `name` text NOT NULL,
+ `countLive` integer DEFAULT 0 NOT NULL,
+ `countNonLive` integer DEFAULT 0 NOT NULL,
+ `createdAt` number
+);
+--> statement-breakpoint
+CREATE TABLE `jobs` (
+ `id` integer PRIMARY KEY,
+ `componentFromId` integer NOT NULL,
+ `componentToId` integer NOT NULL,
+ `name` text(50) NOT NULL,
+ `status` text DEFAULT 'idle' NOT NULL,
+ `retries` integer DEFAULT 0 NOT NULL,
+ `error` text,
+ `transformOptions` text,
+ `initialParameters` text,
+ `cursor` text,
+ `total` integer,
+ `imported` integer DEFAULT 0 NOT NULL,
+ `scrobbled` integer DEFAULT 0 NOT NULL,
+ `createdAt` number NOT NULL,
+ `updatedAt` number NOT NULL,
+ `completedAt` number,
+ CONSTRAINT `fk_jobs_componentFromId_components_id_fk` FOREIGN KEY (`componentFromId`) REFERENCES `components`(`id`) ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT `fk_jobs_componentToId_components_id_fk` FOREIGN KEY (`componentToId`) REFERENCES `components`(`id`) ON UPDATE CASCADE ON DELETE CASCADE
+);
+--> statement-breakpoint
+CREATE TABLE `play_inputs` (
+ `id` integer PRIMARY KEY,
+ `playId` integer NOT NULL,
+ `data` text,
+ `play` text NOT NULL,
+ `createdAt` number,
+ CONSTRAINT `fk_play_inputs_playId_plays_id_fk` FOREIGN KEY (`playId`) REFERENCES `plays`(`id`) ON UPDATE CASCADE ON DELETE CASCADE
+);
+--> statement-breakpoint
+CREATE TABLE `plays` (
+ `id` integer PRIMARY KEY,
+ `uid` text(30) NOT NULL,
+ `componentId` integer,
+ `error` text,
+ `playedAt` number,
+ `seenAt` number,
+ `updatedAt` number NOT NULL,
+ `play` text NOT NULL,
+ `state` text NOT NULL,
+ `parentId` integer,
+ `jobId` integer,
+ `playHash` text,
+ `mbidIdentifier` text,
+ `compacted` text,
+ CONSTRAINT `fk_plays_componentId_components_id_fk` FOREIGN KEY (`componentId`) REFERENCES `components`(`id`) ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT `fk_plays_parentId_plays_id_fk` FOREIGN KEY (`parentId`) REFERENCES `plays`(`id`) ON UPDATE CASCADE ON DELETE SET NULL,
+ CONSTRAINT `fk_plays_jobId_jobs_id_fk` FOREIGN KEY (`jobId`) REFERENCES `jobs`(`id`) ON UPDATE CASCADE ON DELETE CASCADE
+);
+--> statement-breakpoint
+CREATE TABLE `play_queue_states` (
+ `id` integer PRIMARY KEY,
+ `playId` integer NOT NULL,
+ `componentId` integer NOT NULL,
+ `queueName` text(50) NOT NULL,
+ `queueStatus` text DEFAULT 'queued' NOT NULL,
+ `retries` integer DEFAULT 0 NOT NULL,
+ `error` text,
+ `createdAt` number NOT NULL,
+ `updatedAt` number NOT NULL,
+ CONSTRAINT `fk_play_queue_states_playId_plays_id_fk` FOREIGN KEY (`playId`) REFERENCES `plays`(`id`) ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT `fk_play_queue_states_componentId_components_id_fk` FOREIGN KEY (`componentId`) REFERENCES `components`(`id`) ON UPDATE CASCADE ON DELETE CASCADE
+);
+--> statement-breakpoint
+CREATE UNIQUE INDEX `uid_mode_type_idx` ON `components` (`uid`,`mode`,`type`);--> statement-breakpoint
+CREATE UNIQUE INDEX `play_input_id_idx` ON `play_inputs` (`playId`);--> statement-breakpoint
+CREATE INDEX `play_parent_id_idx` ON `plays` (`parentId`);--> statement-breakpoint
+CREATE INDEX `play_component_id_idx` ON `plays` (`componentId`);--> statement-breakpoint
+CREATE UNIQUE INDEX `play_uid_idx` ON `plays` (`uid`);--> statement-breakpoint
+CREATE INDEX `play_playedAt_idx` ON `plays` (`playedAt`);--> statement-breakpoint
+CREATE INDEX `play_seenAt_idx` ON `plays` (`seenAt`);--> statement-breakpoint
+CREATE INDEX `play_queue_state_id_idx` ON `play_queue_states` (`playId`);
\ No newline at end of file
diff --git a/src/backend/common/database/drizzle/migrations/20260506143841_grey_polaris/snapshot.json b/src/backend/common/database/drizzle/migrations/20260506143841_grey_polaris/snapshot.json
new file mode 100644
index 000000000..ccaa22897
--- /dev/null
+++ b/src/backend/common/database/drizzle/migrations/20260506143841_grey_polaris/snapshot.json
@@ -0,0 +1,836 @@
+{
+ "version": "7",
+ "dialect": "sqlite",
+ "id": "5655103c-e7d9-4026-9e71-9480ce6fb036",
+ "prevIds": [
+ "00000000-0000-0000-0000-000000000000"
+ ],
+ "ddl": [
+ {
+ "name": "components",
+ "entityType": "tables"
+ },
+ {
+ "name": "jobs",
+ "entityType": "tables"
+ },
+ {
+ "name": "play_inputs",
+ "entityType": "tables"
+ },
+ {
+ "name": "plays",
+ "entityType": "tables"
+ },
+ {
+ "name": "play_queue_states",
+ "entityType": "tables"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "components"
+ },
+ {
+ "type": "text(200)",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "uid",
+ "entityType": "columns",
+ "table": "components"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "mode",
+ "entityType": "columns",
+ "table": "components"
+ },
+ {
+ "type": "text(50)",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "type",
+ "entityType": "columns",
+ "table": "components"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "name",
+ "entityType": "columns",
+ "table": "components"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "countLive",
+ "entityType": "columns",
+ "table": "components"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "countNonLive",
+ "entityType": "columns",
+ "table": "components"
+ },
+ {
+ "type": "number",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "createdAt",
+ "entityType": "columns",
+ "table": "components"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "componentFromId",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "componentToId",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "text(50)",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "name",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "'idle'",
+ "generated": null,
+ "name": "status",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "retries",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "error",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "transformOptions",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "initialParameters",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "cursor",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "total",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "imported",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "scrobbled",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "number",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "createdAt",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "number",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "updatedAt",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "number",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "completedAt",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "play_inputs"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "playId",
+ "entityType": "columns",
+ "table": "play_inputs"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "data",
+ "entityType": "columns",
+ "table": "play_inputs"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "play",
+ "entityType": "columns",
+ "table": "play_inputs"
+ },
+ {
+ "type": "number",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "createdAt",
+ "entityType": "columns",
+ "table": "play_inputs"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "plays"
+ },
+ {
+ "type": "text(30)",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "uid",
+ "entityType": "columns",
+ "table": "plays"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "componentId",
+ "entityType": "columns",
+ "table": "plays"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "error",
+ "entityType": "columns",
+ "table": "plays"
+ },
+ {
+ "type": "number",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "playedAt",
+ "entityType": "columns",
+ "table": "plays"
+ },
+ {
+ "type": "number",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "seenAt",
+ "entityType": "columns",
+ "table": "plays"
+ },
+ {
+ "type": "number",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "updatedAt",
+ "entityType": "columns",
+ "table": "plays"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "play",
+ "entityType": "columns",
+ "table": "plays"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "state",
+ "entityType": "columns",
+ "table": "plays"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "parentId",
+ "entityType": "columns",
+ "table": "plays"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "jobId",
+ "entityType": "columns",
+ "table": "plays"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "playHash",
+ "entityType": "columns",
+ "table": "plays"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "mbidIdentifier",
+ "entityType": "columns",
+ "table": "plays"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "compacted",
+ "entityType": "columns",
+ "table": "plays"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "play_queue_states"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "playId",
+ "entityType": "columns",
+ "table": "play_queue_states"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "componentId",
+ "entityType": "columns",
+ "table": "play_queue_states"
+ },
+ {
+ "type": "text(50)",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "queueName",
+ "entityType": "columns",
+ "table": "play_queue_states"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "'queued'",
+ "generated": null,
+ "name": "queueStatus",
+ "entityType": "columns",
+ "table": "play_queue_states"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "retries",
+ "entityType": "columns",
+ "table": "play_queue_states"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "error",
+ "entityType": "columns",
+ "table": "play_queue_states"
+ },
+ {
+ "type": "number",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "createdAt",
+ "entityType": "columns",
+ "table": "play_queue_states"
+ },
+ {
+ "type": "number",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "updatedAt",
+ "entityType": "columns",
+ "table": "play_queue_states"
+ },
+ {
+ "columns": [
+ "componentFromId"
+ ],
+ "tableTo": "components",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "CASCADE",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_jobs_componentFromId_components_id_fk",
+ "entityType": "fks",
+ "table": "jobs"
+ },
+ {
+ "columns": [
+ "componentToId"
+ ],
+ "tableTo": "components",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "CASCADE",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_jobs_componentToId_components_id_fk",
+ "entityType": "fks",
+ "table": "jobs"
+ },
+ {
+ "columns": [
+ "playId"
+ ],
+ "tableTo": "plays",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "CASCADE",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_play_inputs_playId_plays_id_fk",
+ "entityType": "fks",
+ "table": "play_inputs"
+ },
+ {
+ "columns": [
+ "componentId"
+ ],
+ "tableTo": "components",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "CASCADE",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_plays_componentId_components_id_fk",
+ "entityType": "fks",
+ "table": "plays"
+ },
+ {
+ "columns": [
+ "parentId"
+ ],
+ "tableTo": "plays",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "CASCADE",
+ "onDelete": "SET NULL",
+ "nameExplicit": false,
+ "name": "fk_plays_parentId_plays_id_fk",
+ "entityType": "fks",
+ "table": "plays"
+ },
+ {
+ "columns": [
+ "jobId"
+ ],
+ "tableTo": "jobs",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "CASCADE",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_plays_jobId_jobs_id_fk",
+ "entityType": "fks",
+ "table": "plays"
+ },
+ {
+ "columns": [
+ "playId"
+ ],
+ "tableTo": "plays",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "CASCADE",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_play_queue_states_playId_plays_id_fk",
+ "entityType": "fks",
+ "table": "play_queue_states"
+ },
+ {
+ "columns": [
+ "componentId"
+ ],
+ "tableTo": "components",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "CASCADE",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_play_queue_states_componentId_components_id_fk",
+ "entityType": "fks",
+ "table": "play_queue_states"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "components_pk",
+ "table": "components",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "jobs_pk",
+ "table": "jobs",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "play_inputs_pk",
+ "table": "play_inputs",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "plays_pk",
+ "table": "plays",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "play_queue_states_pk",
+ "table": "play_queue_states",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ {
+ "value": "uid",
+ "isExpression": false
+ },
+ {
+ "value": "mode",
+ "isExpression": false
+ },
+ {
+ "value": "type",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "where": null,
+ "origin": "manual",
+ "name": "uid_mode_type_idx",
+ "entityType": "indexes",
+ "table": "components"
+ },
+ {
+ "columns": [
+ {
+ "value": "playId",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "where": null,
+ "origin": "manual",
+ "name": "play_input_id_idx",
+ "entityType": "indexes",
+ "table": "play_inputs"
+ },
+ {
+ "columns": [
+ {
+ "value": "parentId",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "play_parent_id_idx",
+ "entityType": "indexes",
+ "table": "plays"
+ },
+ {
+ "columns": [
+ {
+ "value": "componentId",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "play_component_id_idx",
+ "entityType": "indexes",
+ "table": "plays"
+ },
+ {
+ "columns": [
+ {
+ "value": "uid",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "where": null,
+ "origin": "manual",
+ "name": "play_uid_idx",
+ "entityType": "indexes",
+ "table": "plays"
+ },
+ {
+ "columns": [
+ {
+ "value": "playedAt",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "play_playedAt_idx",
+ "entityType": "indexes",
+ "table": "plays"
+ },
+ {
+ "columns": [
+ {
+ "value": "seenAt",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "play_seenAt_idx",
+ "entityType": "indexes",
+ "table": "plays"
+ },
+ {
+ "columns": [
+ {
+ "value": "playId",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "play_queue_state_id_idx",
+ "entityType": "indexes",
+ "table": "play_queue_states"
+ }
+ ],
+ "renames": []
+}
\ No newline at end of file
diff --git a/src/backend/common/database/drizzle/migrations/20260513202707_chubby_jack_murdock/migration.sql b/src/backend/common/database/drizzle/migrations/20260513202707_chubby_jack_murdock/migration.sql
new file mode 100644
index 000000000..ca45ddc28
--- /dev/null
+++ b/src/backend/common/database/drizzle/migrations/20260513202707_chubby_jack_murdock/migration.sql
@@ -0,0 +1,9 @@
+CREATE TABLE `component_migrations` (
+ `id` integer PRIMARY KEY,
+ `componentId` integer NOT NULL,
+ `name` text NOT NULL,
+ `success` integer,
+ `error` text,
+ `attemptedAt` number NOT NULL,
+ CONSTRAINT `fk_component_migrations_componentId_components_id_fk` FOREIGN KEY (`componentId`) REFERENCES `components`(`id`) ON UPDATE CASCADE ON DELETE CASCADE
+);
diff --git a/src/backend/common/database/drizzle/migrations/20260513202707_chubby_jack_murdock/snapshot.json b/src/backend/common/database/drizzle/migrations/20260513202707_chubby_jack_murdock/snapshot.json
new file mode 100644
index 000000000..f88ffa082
--- /dev/null
+++ b/src/backend/common/database/drizzle/migrations/20260513202707_chubby_jack_murdock/snapshot.json
@@ -0,0 +1,924 @@
+{
+ "version": "7",
+ "dialect": "sqlite",
+ "id": "68ef2e2f-c7b2-41bb-9487-2d49bd04d70d",
+ "prevIds": [
+ "5655103c-e7d9-4026-9e71-9480ce6fb036"
+ ],
+ "ddl": [
+ {
+ "name": "component_migrations",
+ "entityType": "tables"
+ },
+ {
+ "name": "components",
+ "entityType": "tables"
+ },
+ {
+ "name": "jobs",
+ "entityType": "tables"
+ },
+ {
+ "name": "play_inputs",
+ "entityType": "tables"
+ },
+ {
+ "name": "plays",
+ "entityType": "tables"
+ },
+ {
+ "name": "play_queue_states",
+ "entityType": "tables"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "component_migrations"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "componentId",
+ "entityType": "columns",
+ "table": "component_migrations"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "name",
+ "entityType": "columns",
+ "table": "component_migrations"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "success",
+ "entityType": "columns",
+ "table": "component_migrations"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "error",
+ "entityType": "columns",
+ "table": "component_migrations"
+ },
+ {
+ "type": "number",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "attemptedAt",
+ "entityType": "columns",
+ "table": "component_migrations"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "components"
+ },
+ {
+ "type": "text(200)",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "uid",
+ "entityType": "columns",
+ "table": "components"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "mode",
+ "entityType": "columns",
+ "table": "components"
+ },
+ {
+ "type": "text(50)",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "type",
+ "entityType": "columns",
+ "table": "components"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "name",
+ "entityType": "columns",
+ "table": "components"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "countLive",
+ "entityType": "columns",
+ "table": "components"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "countNonLive",
+ "entityType": "columns",
+ "table": "components"
+ },
+ {
+ "type": "number",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "createdAt",
+ "entityType": "columns",
+ "table": "components"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "componentFromId",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "componentToId",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "text(50)",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "name",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "'idle'",
+ "generated": null,
+ "name": "status",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "retries",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "error",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "transformOptions",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "initialParameters",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "cursor",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "total",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "imported",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "scrobbled",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "number",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "createdAt",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "number",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "updatedAt",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "number",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "completedAt",
+ "entityType": "columns",
+ "table": "jobs"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "play_inputs"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "playId",
+ "entityType": "columns",
+ "table": "play_inputs"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "data",
+ "entityType": "columns",
+ "table": "play_inputs"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "play",
+ "entityType": "columns",
+ "table": "play_inputs"
+ },
+ {
+ "type": "number",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "createdAt",
+ "entityType": "columns",
+ "table": "play_inputs"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "plays"
+ },
+ {
+ "type": "text(30)",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "uid",
+ "entityType": "columns",
+ "table": "plays"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "componentId",
+ "entityType": "columns",
+ "table": "plays"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "error",
+ "entityType": "columns",
+ "table": "plays"
+ },
+ {
+ "type": "number",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "playedAt",
+ "entityType": "columns",
+ "table": "plays"
+ },
+ {
+ "type": "number",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "seenAt",
+ "entityType": "columns",
+ "table": "plays"
+ },
+ {
+ "type": "number",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "updatedAt",
+ "entityType": "columns",
+ "table": "plays"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "play",
+ "entityType": "columns",
+ "table": "plays"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "state",
+ "entityType": "columns",
+ "table": "plays"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "parentId",
+ "entityType": "columns",
+ "table": "plays"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "jobId",
+ "entityType": "columns",
+ "table": "plays"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "playHash",
+ "entityType": "columns",
+ "table": "plays"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "mbidIdentifier",
+ "entityType": "columns",
+ "table": "plays"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "compacted",
+ "entityType": "columns",
+ "table": "plays"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "play_queue_states"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "playId",
+ "entityType": "columns",
+ "table": "play_queue_states"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "componentId",
+ "entityType": "columns",
+ "table": "play_queue_states"
+ },
+ {
+ "type": "text(50)",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "queueName",
+ "entityType": "columns",
+ "table": "play_queue_states"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "'queued'",
+ "generated": null,
+ "name": "queueStatus",
+ "entityType": "columns",
+ "table": "play_queue_states"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "retries",
+ "entityType": "columns",
+ "table": "play_queue_states"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "error",
+ "entityType": "columns",
+ "table": "play_queue_states"
+ },
+ {
+ "type": "number",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "createdAt",
+ "entityType": "columns",
+ "table": "play_queue_states"
+ },
+ {
+ "type": "number",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "updatedAt",
+ "entityType": "columns",
+ "table": "play_queue_states"
+ },
+ {
+ "columns": [
+ "componentId"
+ ],
+ "tableTo": "components",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "CASCADE",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_component_migrations_componentId_components_id_fk",
+ "entityType": "fks",
+ "table": "component_migrations"
+ },
+ {
+ "columns": [
+ "componentFromId"
+ ],
+ "tableTo": "components",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "CASCADE",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_jobs_componentFromId_components_id_fk",
+ "entityType": "fks",
+ "table": "jobs"
+ },
+ {
+ "columns": [
+ "componentToId"
+ ],
+ "tableTo": "components",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "CASCADE",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_jobs_componentToId_components_id_fk",
+ "entityType": "fks",
+ "table": "jobs"
+ },
+ {
+ "columns": [
+ "playId"
+ ],
+ "tableTo": "plays",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "CASCADE",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_play_inputs_playId_plays_id_fk",
+ "entityType": "fks",
+ "table": "play_inputs"
+ },
+ {
+ "columns": [
+ "componentId"
+ ],
+ "tableTo": "components",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "CASCADE",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_plays_componentId_components_id_fk",
+ "entityType": "fks",
+ "table": "plays"
+ },
+ {
+ "columns": [
+ "parentId"
+ ],
+ "tableTo": "plays",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "CASCADE",
+ "onDelete": "SET NULL",
+ "nameExplicit": false,
+ "name": "fk_plays_parentId_plays_id_fk",
+ "entityType": "fks",
+ "table": "plays"
+ },
+ {
+ "columns": [
+ "jobId"
+ ],
+ "tableTo": "jobs",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "CASCADE",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_plays_jobId_jobs_id_fk",
+ "entityType": "fks",
+ "table": "plays"
+ },
+ {
+ "columns": [
+ "playId"
+ ],
+ "tableTo": "plays",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "CASCADE",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_play_queue_states_playId_plays_id_fk",
+ "entityType": "fks",
+ "table": "play_queue_states"
+ },
+ {
+ "columns": [
+ "componentId"
+ ],
+ "tableTo": "components",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "CASCADE",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_play_queue_states_componentId_components_id_fk",
+ "entityType": "fks",
+ "table": "play_queue_states"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "component_migrations_pk",
+ "table": "component_migrations",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "components_pk",
+ "table": "components",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "jobs_pk",
+ "table": "jobs",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "play_inputs_pk",
+ "table": "play_inputs",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "plays_pk",
+ "table": "plays",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "play_queue_states_pk",
+ "table": "play_queue_states",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ {
+ "value": "uid",
+ "isExpression": false
+ },
+ {
+ "value": "mode",
+ "isExpression": false
+ },
+ {
+ "value": "type",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "where": null,
+ "origin": "manual",
+ "name": "uid_mode_type_idx",
+ "entityType": "indexes",
+ "table": "components"
+ },
+ {
+ "columns": [
+ {
+ "value": "playId",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "where": null,
+ "origin": "manual",
+ "name": "play_input_id_idx",
+ "entityType": "indexes",
+ "table": "play_inputs"
+ },
+ {
+ "columns": [
+ {
+ "value": "parentId",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "play_parent_id_idx",
+ "entityType": "indexes",
+ "table": "plays"
+ },
+ {
+ "columns": [
+ {
+ "value": "componentId",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "play_component_id_idx",
+ "entityType": "indexes",
+ "table": "plays"
+ },
+ {
+ "columns": [
+ {
+ "value": "uid",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "where": null,
+ "origin": "manual",
+ "name": "play_uid_idx",
+ "entityType": "indexes",
+ "table": "plays"
+ },
+ {
+ "columns": [
+ {
+ "value": "playedAt",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "play_playedAt_idx",
+ "entityType": "indexes",
+ "table": "plays"
+ },
+ {
+ "columns": [
+ {
+ "value": "seenAt",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "play_seenAt_idx",
+ "entityType": "indexes",
+ "table": "plays"
+ },
+ {
+ "columns": [
+ {
+ "value": "playId",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "play_queue_state_id_idx",
+ "entityType": "indexes",
+ "table": "play_queue_states"
+ }
+ ],
+ "renames": []
+}
\ No newline at end of file
diff --git a/src/backend/common/database/drizzle/repositories/BaseRepository.ts b/src/backend/common/database/drizzle/repositories/BaseRepository.ts
new file mode 100644
index 000000000..8c50921f3
--- /dev/null
+++ b/src/backend/common/database/drizzle/repositories/BaseRepository.ts
@@ -0,0 +1,111 @@
+import { childLogger, Logger } from "@foxxmd/logging";
+import { DbConcrete } from "../drizzleUtils.js";
+import { CompareOpKey } from "../drizzleTypes.js";
+import { Dayjs } from "dayjs";
+import { RelationsFieldFilter, eq, inArray } from "drizzle-orm";
+import { loggerNoop } from "../../../MaybeLogger.js";
+import { capitalize } from "../../../../../core/StringUtils.js";
+import { getConfigByTableName, relations, TableName } from "../schema/schema.js";
+
+export interface DrizzleRepositoryOpts {
+ logger?: Logger
+ componentId?: number
+}
+
+export type CompareDateOp = {
+ type: CompareOpKey
+ date: Dayjs
+} | {
+ type: 'between',
+ range: [Dayjs, Dayjs],
+ inclusive?: boolean
+}
+
+export interface PaginatedQueryResponse {
+ limit: number,
+ offset: number
+}
+
+export interface PaginatedResponse {
+ data: T[]
+ meta: PaginatedQueryResponse
+}
+
+export interface ComponentConstrainedRepoOpts {
+ componentId?: number
+}
+
+export abstract class DrizzleBaseRepository {
+
+ logger: Logger;
+ displayName: string;
+ tableName: TableName;
+ table: ReturnType>
+ db: DbConcrete;
+ componentId?: number
+
+ constructor(db: DbConcrete, tableName: TableName, displayName: string, opts: DrizzleRepositoryOpts = {}) {
+ this.db = db;
+ this.displayName = displayName;
+ this.tableName = tableName;
+ this.table = getConfigByTableName(this.tableName);
+ this.logger = childLogger(opts.logger ?? loggerNoop, ['Database', capitalize(displayName)]);
+ this.componentId = opts.componentId;
+ }
+
+ async deleteByIds(ids: number[]): Promise {
+ await this.db.delete(this.table).where(inArray(this.table.id, ids));
+ }
+
+ async updateById(id: number, data: Partial): Promise {
+ await this.db.update(this.table).set(data).where(eq(this.table.id, id));
+ }
+
+ async create(data: typeof this.table.$inferInsert): Promise {
+ const res = await this.db.insert(this.table).values([data]).returning();
+ return res[0];
+ }
+
+ async createMany(data: typeof this.table.$inferInsert[]): Promise {
+ const res = await this.db.insert(this.table).values(data).returning();
+ return res;
+ }
+
+ async findById(id: number): Promise {
+ // const res = await this.db.query[this.tableName].findFirst({
+ // where: {
+ // id
+ // }
+ // });
+ const res = await this.db.select().from(this.table).where(eq(this.table.id, id));
+ if(res.length === 0) {
+ return undefined;
+ }
+ return res[0];
+ }
+}
+
+export class GenericRepository extends DrizzleBaseRepository {
+
+}
+
+export const buildDateCompare = (data: CompareDateOp): RelationsFieldFilter => {
+ let q: RelationsFieldFilter = {};
+ if (data.type !== 'between') {
+ q = {
+ [data.type]: data.date
+ }
+ } else {
+ q = {
+ AND: [
+ {
+ [data.inclusive ?? true ? 'gte' : 'gt']: data.range[0]
+ },
+ {
+ [data.inclusive ?? true ? 'lte' : 'lt']: data.range[1]
+ },
+ ]
+ }
+ }
+ return q;
+}
\ No newline at end of file
diff --git a/src/backend/common/database/drizzle/repositories/ComponentRepository.ts b/src/backend/common/database/drizzle/repositories/ComponentRepository.ts
new file mode 100644
index 000000000..83676723a
--- /dev/null
+++ b/src/backend/common/database/drizzle/repositories/ComponentRepository.ts
@@ -0,0 +1,39 @@
+import { Logger } from "drizzle-orm";
+import { DrizzleBaseRepository, DrizzleRepositoryOpts } from "./BaseRepository.js";
+import { DbConcrete } from "../drizzleUtils.js";
+import { ComponentNew, ComponentSelect, FindWhere } from "../drizzleTypes.js";
+import { components } from "../schema/schema.js";
+import { generateComponentEntity } from "../entityUtils.js";
+
+export class DrizzleComponentRepository extends DrizzleBaseRepository<'components'> {
+
+ constructor(db: DbConcrete, opts: DrizzleRepositoryOpts = {}) {
+ super(db, 'components', 'Component', opts);
+ }
+
+ findOrInsert = async (data: { mode: 'source' | 'client', type: string, uid?: string, name?: string }): Promise => {
+ const where: FindWhere<'components'> = {
+ mode: data.mode,
+ type: data.type,
+ uid: data.uid ?? data.name
+ };
+ const component = await this.db.query.components.findFirst({
+ where,
+ with: {
+ migrations: true
+ }
+ });
+ if (component !== undefined) {
+ return component;
+ }
+
+ const componentNew = (await this.db.insert(components).values(generateComponentEntity({
+ uid: data.uid ?? data.name,
+ mode: data.mode,
+ type: data.type,
+ name: data.name
+ })).returning())[0] as ComponentSelect;
+ componentNew.migrations = [];
+ return componentNew;
+ }
+}
\ No newline at end of file
diff --git a/src/backend/common/database/drizzle/repositories/PlayRepository.ts b/src/backend/common/database/drizzle/repositories/PlayRepository.ts
new file mode 100644
index 000000000..a1c80d7af
--- /dev/null
+++ b/src/backend/common/database/drizzle/repositories/PlayRepository.ts
@@ -0,0 +1,881 @@
+import { childLogger, Logger, LoggerAppExtras } from "@foxxmd/logging";
+import { DbConcrete, runTransaction } from "../drizzleUtils.js";
+import { loggerNoop } from "../../../MaybeLogger.js";
+import { ErrorLike, PlayObject, TA_CLOSE, TA_DEFAULT_ACCURACY, TA_EXACT, TemporalAccuracy } from "../../../../../core/Atomic.js";
+import { generateInputEntity, generatePlayEntity, PlayEntityOpts, hydratePlaySelect, PlayHydateOptions } from "../entityUtils.js";
+import { playInputs, plays, queueStates, relations } from "../schema/schema.js";
+import { PlayNew, PlaySelect, PlayInputNew, FindWhere, FindMany, CompareOpKey, QueueStateSelect, PlayInputSelect, PlaySelectRel, FindWith, PlaySelectWithQueueStates, WhereClause } from "../drizzleTypes.js";;
+import { MarkOptional, MarkRequired, PathValue } from "ts-essentials";
+import { genGroupIdStrFromPlay, removeEmptyArrays, removeUndefinedKeys } from "../../../../utils.js";
+import dayjs, { Dayjs } from "dayjs";
+import { RelationsFieldFilter, eq, inArray, ne, notInArray, desc, asc, and, sql, Placeholder } from "drizzle-orm";
+import { CompactableProperty, RetentionOptions, retentionPlayTypes } from "../../../infrastructure/config/database.js";
+import { shortTodayAwareFormat } from "../../../../../core/TimeUtils.js";
+import { buildDateCompare, CompareDateOp, ComponentConstrainedRepoOpts, DrizzleBaseRepository, DrizzleRepositoryOpts, PaginatedQueryResponse, PaginatedResponse } from "./BaseRepository.js";
+import { asPlay } from "../../../../../core/PlayMarshalUtils.js";
+import assert, { Assert } from "node:assert";
+import { hashObject, parseArrayFromMaybeString } from "../../../../utils/StringUtils.js";
+import { playContentBasicInvariantTransform, playMbidIdentifier } from "../../../../utils/PlayComparisonUtils.js";
+import { comparePlayTemporally, getScrobbleTsSOCDate, getScrobbleTsSOCDateWithContext, getTemporalAccuracyCloseVal, hasAcceptableTemporalAccuracy } from "../../../../utils/TimeUtils.js";
+import { SourceType } from "../../../infrastructure/config/source/sources.js";
+
+// https://github.com/drizzle-team/drizzle-orm/issues/695 may be useful for typing models with relations?
+
+export interface QueueCriteria {
+ queueName: string
+ queueStatus: QueueStateSelect['queueStatus'][] | QueueStateSelect['queueStatus']
+}
+
+export interface PlayWhereOpts {
+ state?: PlaySelect['state'][]
+ stateNot?: PlaySelect['state'][]
+ componentId?: number
+ seenAt?: CompareDateOp
+ playedAt?: CompareDateOp
+ queues?: QueueCriteria[]
+ uid?: string[]
+}
+
+export type WithPlayRelation = 'input' | 'parent' | 'parent-input' | 'queues';
+export interface QueryPlaysOpts extends PlayWhereOpts {
+ sort?: 'seenAt' | 'playedAt'
+ order?: 'asc' | 'desc'
+ with?: WithPlayRelation[]
+ limit?: number
+ offset?: number
+}
+
+export interface HydrateOpts {
+ hydrate?: PlayHydateOptions[]
+}
+
+export type RepositoryCreatePlayOpts = PlayEntityOpts
+ & {
+ input: MarkOptional
+ }
+ & Pick;
+
+type PlayIdentifierPrimitiveMap = {
+ uid: string;
+ id: number;
+};
+const identifierExtractor: { [K in keyof PlayIdentifierPrimitiveMap]: (play: {id: number, uid: string}) => PlayIdentifierPrimitiveMap[K] } = {
+ id: (play) => play.id,
+ uid: (play) => play.uid,
+};
+export class DrizzlePlayRepository extends DrizzleBaseRepository<'plays'> {
+
+ protected hasQueueNextPrepared?: ReturnType
+ protected getQueueNextPrepared?: ReturnType
+ protected getQueuedScrobbleRangePrepared?: ReturnType
+
+ constructor(db: DbConcrete, opts: DrizzleRepositoryOpts = {}) {
+ super(db, 'plays', 'Plays', opts);
+ }
+
+ findByUid = async (uid: string, opts: HydrateOpts & ComponentConstrainedRepoOpts = {}): Promise => {
+ const res = await this.db.query.plays.findFirst({
+ where: {
+ uid,
+ componentId: opts.componentId ?? this.componentId
+ },
+ with: {
+ queueStates: true
+ }
+ });
+ res.play = hydratePlaySelect(res, opts.hydrate);
+ return res;
+ }
+
+ createPlays = async (entitiesOpts: RepositoryCreatePlayOpts[], opts: HydrateOpts = {}) => {
+
+ const {
+ hydrate
+ } = opts;
+ let playRows: PlaySelect[];
+
+ await runTransaction(this.db, async () => {
+
+ const entitiesData = entitiesOpts.map((data) => {
+ const {
+ play,
+ input,
+ ...rest
+ } = data;
+ return generatePlayEntity(play, { componentId: this.componentId, ...rest });
+ });
+
+ playRows = await this.db.insert(plays).values(entitiesData).returning();
+
+ const inputDatas = playRows.map((x, index) => {
+ const {
+ play,
+ input,
+ } = entitiesOpts[index];
+ const {
+ play: inputPlay = play,
+ ...restInput
+ } = input;
+
+ return generateInputEntity({ play: inputPlay, playId: x.id, ...restInput });
+ });
+
+ const inputRow = await this.db.insert(playInputs).values(inputDatas);
+
+ });
+
+ return playRows.map(x => ({...x, play: hydratePlaySelect(x, hydrate)}));
+ }
+
+ findPlays = async (args: QueryPlaysOpts, opts: HydrateOpts & ComponentConstrainedRepoOpts = {}): Promise => {
+ const {
+ hydrate,
+ componentId = this.componentId
+ } = opts;
+ // this does not work as type for query variable
+ // it erases the result type for some reason
+ //
+ // Parameters[0]
+
+ // this does work but it is also integrated into FindWith
+ //let withQuery: Parameters[0]['with'] = undefined;
+
+ let query: FindMany<'plays'> = {
+ limit: args.limit,
+ offset: args.offset
+ };
+
+ query.where = buildPlayWhere({componentId: componentId, ...args});
+
+ if (args.sort !== undefined) {
+ query.orderBy = {
+ [args.sort]: args.order ?? 'desc'
+ }
+ } else {
+ query.orderBy = {
+ id: 'asc'
+ }
+ }
+
+ if(args.with !== undefined) {
+ query.with = {};
+ for(const w of args.with) {
+ switch (w) {
+ case 'input':
+ query.with.input = true;
+ break;
+ case 'parent':
+ query.with.parent = true;
+ break;
+ case 'parent-input':
+ query.with.parent = {
+ with: {
+ input: true
+ }
+ };
+ break;
+ case 'queues':
+ query.with.queueStates = true;
+ break;
+ default:
+ throw new Error(`Unknown relation ${w}`);
+ }
+ }
+ }
+ query = removeUndefinedKeys(query);
+ const results = await this.db.query.plays.findMany(query);
+ return results.map((x) => ({...x, play: hydratePlaySelect(x, hydrate)}));
+ }
+
+ findPlayIds = async (args: QueryPlaysOpts, opts: ComponentConstrainedRepoOpts = {}): Promise => {
+ const {
+ componentId = this.componentId
+ } = opts;
+
+ let query: FindMany<'plays'> = {
+ limit: args.limit,
+ offset: args.offset,
+ };
+
+ query.where = buildPlayWhere({componentId: componentId, ...args});
+
+ if (args.sort !== undefined) {
+ query.orderBy = {
+ [args.sort]: args.order ?? 'desc'
+ }
+ } else {
+ query.orderBy = {
+ id: 'asc'
+ }
+ }
+
+ query = removeUndefinedKeys(query);
+ const results = await this.db.query.plays.findMany({
+ limit: args.limit,
+ offset: args.offset,
+ columns: {id: true},
+ orderBy: args.sort !== undefined ? {[args.sort]: args.order ?? 'desc'} : {id: 'asc'},
+ });
+ return results.map((x) => x.id);
+ }
+
+ findPlayIdentifiers = async (args: QueryPlaysOpts, identifier: T, opts: ComponentConstrainedRepoOpts = {}): Promise => {
+ const {
+ componentId = this.componentId,
+ } = opts;
+
+ const results = await this.db.query.plays.findMany({
+ limit: args.limit,
+ offset: args.offset,
+ columns: {id: true, uid: true},
+ orderBy: args.sort !== undefined ? {[args.sort]: args.order ?? 'desc'} : {id: 'asc'},
+ where: buildPlayWhere({componentId: componentId, ...args})
+ });
+
+ // we getting fancy now
+ return results.map(identifierExtractor[identifier]);
+ }
+
+ findPlaysPaginated = async (args: QueryPlaysOpts, opts: HydrateOpts & ComponentConstrainedRepoOpts = {}): Promise> => {
+ const {
+ limit = 100,
+ offset = 0,
+ ...rest
+ } = args;
+ const clampedLimit = Math.min(limit, 100);
+ const res = await this.findPlays({limit: clampedLimit, offset, ...rest}, opts) as T[];
+ return {data: res, meta: {limit: clampedLimit, offset}};
+ }
+
+ // async updateById(id: number, data: Partial): Promise {
+ // if(data.play !== undefined) {
+ // data.play = withoutDbAwareness(data.play);
+ // }
+ // super.updateById(id, data);
+ // }
+
+ setStateById = async (state: PlayNew['state'], ids: number[]): Promise => {
+ const validIds = ids.filter(x => x !== undefined && x !== null);
+ assert(validIds.length > 0, `Should not pass empty array of ids, after filtering, to update state. Original ids list: ${ids}`);
+ await this.db.update(plays).set({state}).where(inArray(plays.id, ids));
+ }
+
+ deletePlays = async (playsData: (Pick | number)[]) => {
+ const ids = playsData.map(x => typeof x === 'number' ? x : x.id);
+ await this.db.delete(plays).where(inArray(plays.id, ids));
+ }
+
+ findPurgablePlayIds = async (olderThanDate: Dayjs, opts: { states?: PlaySelect['state'][], compacted?: string, dateComparer?: 'updatedAt' | 'seenAt' } & ComponentConstrainedRepoOpts = {}): Promise => {
+
+ const {
+ states,
+ compacted,
+ componentId = this.componentId,
+ dateComparer = 'updatedAt'
+ } = opts;
+
+ let where: FindWhere<'plays'> = {
+ component: {
+ id: componentId
+ },
+ [dateComparer]: {
+ lte: olderThanDate
+ },
+ NOT: {
+ children: {}
+ }
+ };
+
+ if (states !== undefined) {
+ where.state = {
+ in: states
+ }
+ }
+
+ if(compacted !== undefined) {
+ where.compacted = {
+ OR: [
+ {
+ isNull: true
+ },
+ {
+ NOT: {
+ eq: compacted
+ }
+ }
+ ]
+ }
+ }
+
+ const rows = await this.db.query.plays.findMany({
+ columns: {
+ id: true
+ },
+ where,
+ orderBy: {
+ id: 'asc'
+ }
+ });
+
+ return rows.map(x => x.id);
+ }
+
+ public retentionCleanup = async (componentType: string, retentionOpts: RetentionOptions & ComponentConstrainedRepoOpts) => {
+
+ const loggerDel = childLogger(this.logger, ['Retention', 'Delete']);
+ const loggerCom = childLogger(this.logger, ['Retention', 'Compact']);
+ let summaryDelStates: string[] = [];
+ let summaryCompactStates: string[] = [];
+
+ loggerDel.debug('Starting cleanup...');
+ for(const retentionType of retentionPlayTypes) {
+ try {
+ const date = dayjs().subtract(retentionOpts.deleteAfter[retentionType].asMilliseconds());
+ let state: PlaySelect['state'];
+ if(retentionType === 'completed') {
+ state = componentType === 'source' ? 'discovered' : 'scrobbled';
+ } else {
+ state = retentionType;
+ }
+ loggerDel.trace(`Finding '${retentionType}' plays older than ${shortTodayAwareFormat(date)}...`);
+ const ids = await this.findPurgablePlayIds(date, {states: [state], componentId: retentionOpts.componentId});
+ loggerDel.trace(`Found ${ids.length} '${retentionType}' plays`);
+ if(ids.length === 0) {
+ summaryDelStates.push(`No '${retentionType}' Plays older than ${shortTodayAwareFormat(date)}`);
+ } else {
+ loggerDel.trace(`Deleting ${ids.length} '${retentionType}' plays`);
+ await this.deletePlays(ids);
+ loggerDel.trace(`'${retentionType}' plays deleted!`);
+ summaryDelStates.push(`${ids.length} '${retentionType}' Plays older than ${shortTodayAwareFormat(date)}`)
+ }
+ } catch (e) {
+ loggerDel.warn(new Error(`Failed to perform retention cleanup on '${retentionType}' type`, {cause: e}));
+ }
+ }
+ loggerDel.verbose(`Cleanup done! Summary:\n${summaryDelStates.join(' | ')}`);
+
+ if(retentionOpts.compact.length === 0) {
+ loggerCom.debug('Compacting is disabled, skipping cleanup.');
+ return;
+ }
+
+ const compactTypes = retentionOpts.compact;
+ let compactedFlags: CompactableProperty[] = [];
+ if(compactTypes.includes('input')) {
+ compactedFlags.push('input');
+ }
+ if(compactTypes.includes('transform')) {
+ compactedFlags.push('transform');
+ }
+
+ loggerCom.debug('Starting cleanup...');
+ for(const retentionType of retentionPlayTypes) {
+ if(retentionOpts.compactAfter[retentionType] === false) {
+ summaryCompactStates.push(`Skipped ${retentionType}`);
+ continue;
+ }
+ try {
+ const date = dayjs().subtract(retentionOpts.compactAfter[retentionType].asMilliseconds());
+ let state: PlaySelect['state'];
+ if(retentionType === 'completed') {
+ state = componentType === 'source' ? 'discovered' : 'scrobbled';
+ } else {
+ state = retentionType;
+ }
+ loggerCom.trace(`Finding '${retentionType}' plays older than ${shortTodayAwareFormat(date)}...`);
+ const ids = await this.findPurgablePlayIds(date, {compacted: compactedFlags.join('-'), states: [state], dateComparer: 'seenAt', componentId: retentionOpts.componentId});
+ loggerCom.trace(`Found ${ids.length} '${retentionType}' plays`);
+ if(ids.length === 0) {
+ summaryDelStates.push(`No '${retentionType}' Plays older than ${shortTodayAwareFormat(date)}`);
+ } else {
+ for(const id of ids) {
+ let compactedPlay: PlayObject;
+ if(compactTypes.includes('input')) {
+ await this.db.update(playInputs).set({
+ data: {removedReason: 'Removed by compaction'}
+ }).where(eq(playInputs.playId, id));
+ }
+ if(compactTypes.includes('transform')) {
+ const playRow = await this.db.query.plays.findFirst({where: {id: id}});
+ if(playRow === undefined) {
+ // uhh shouldn't be
+ loggerCom.warn(`No Play found with ID ${id}, but it should have been...`);
+ continue;
+ }
+
+ compactedPlay = playRow.play;
+ compactedPlay.meta.lifecycle.steps = compactedPlay.meta.lifecycle.steps.map(x => {
+ if(x.inputs == undefined) {
+ return x;
+ }
+ return {...x, inputs: x.inputs.map(y => ({type: y.type, input: 'Removed by compaction'}))};
+ });
+ }
+
+ const updater = this.db.update(plays);
+ const vals: Parameters[0] = {
+ compacted: compactedFlags.join('-')
+ };
+ if(compactedPlay !== undefined) {
+ vals.play = compactedPlay;
+ }
+ await this.db.update(plays).set(vals).where(eq(plays.id, id));
+ }
+ loggerCom.trace(`Compacted ${ids.length} '${retentionType}' plays`);
+ summaryCompactStates.push(`${ids.length} '${retentionType}' Plays older than ${shortTodayAwareFormat(date)}`)
+ }
+ } catch (e) {
+ loggerCom.warn(new Error(`Failed to perform retention cleanup on '${retentionType}' type`, {cause: e}));
+ }
+ }
+
+ loggerCom.verbose(`Cleanup done! Summary:\n${summaryDelStates.join(' | ')}`);
+ }
+
+ protected prepareGetQueueNext = () => this.db.query.plays.findFirst({
+ where: {
+ componentId: sql.placeholder('componentId'),
+ queueStates: {
+ queueName: sql.placeholder('queueName'),
+ queueStatus: 'queued',
+ retries: {
+ lte: sql.placeholder('retries')
+ }
+ },
+ },
+ with: {
+ queueStates: true
+ },
+ orderBy: {
+ seenAt: 'asc'
+ },
+ }).prepare()
+
+ public getQueueNext = async (queueName: string, opts: {order?: 'asc' | 'desc', retries?: number} & ComponentConstrainedRepoOpts = {}): Promise => {
+ const {
+ retries = 0,
+ order = 'asc',
+ componentId = this.componentId
+ } = opts;
+
+ // let where: FindWhere<'plays'> = {
+ // componentId
+ // }
+
+ // if(retries !== undefined) {
+ // where.queueStates = {
+ // queueName,
+ // queueStatus: 'queued',
+ // retries: {
+ // lte: retries
+ // }
+ // }
+ // } else {
+ // where.queueStates = {
+ // queueName,
+ // queueStatus: 'queued'
+ // }
+ // }
+
+ // const res = await this.db.query.plays.findFirst({
+ // where: where,
+ // orderBy: {
+ // seenAt: order
+ // },
+ // with: {
+ // queueStates: true
+ // }
+ // });
+
+ if(this.getQueueNextPrepared === undefined) {
+ this.getQueueNextPrepared = this.prepareGetQueueNext();
+ }
+
+ const res = await this.getQueueNextPrepared.execute({queueName, retries, componentId});
+
+ if(res === undefined) {
+ return undefined;
+ }
+ res.play = hydratePlaySelect(res); // asPlay(res.play);
+ return res;
+ }
+
+ protected prepareHasQueueNext = () => this.db.query.plays.findFirst({
+ columns: {
+ id: true
+ },
+ where: {
+ componentId: this.componentId,
+ queueStates: {
+ queueName: sql.placeholder('queueName'),
+ queueStatus: 'queued',
+ retries: {
+ lte: sql.placeholder('retries')
+ }
+ }
+ }
+ }).prepare()
+
+ public hasQueueNext = async (queueName: string, retries: number = 0): Promise => {
+ if(this.hasQueueNextPrepared === undefined) {
+ this.hasQueueNextPrepared = this.prepareHasQueueNext();
+ }
+ const nextId = await this.hasQueueNextPrepared.execute({queueName, retries});
+ return nextId !== undefined;
+ }
+
+ protected prepareGetQueuedScrobbleRange = () => this.db.query.plays.findMany({
+ where: {
+ componentId: this.componentId,
+ queueStates: {
+ queueName: sql.placeholder('queueName'),
+ queueStatus: 'queued',
+ retries: {
+ lte: sql.placeholder('retries')
+ }
+ },
+ },
+ orderBy: {
+ seenAt: 'asc',
+ },
+ limit: sql.placeholder('limit')
+ }).prepare()
+
+ public getQueuedScrobbleRange = async (queueName: string, opts: {retries?: number, limit?: number} = {}): Promise => {
+ if(this.getQueuedScrobbleRangePrepared === undefined) {
+ this.getQueuedScrobbleRangePrepared = this.prepareGetQueuedScrobbleRange();
+ }
+ const res = await this.getQueuedScrobbleRangePrepared.execute({queueName, retries: opts.retries ?? 0, limit: opts.limit ?? 30});
+ return res.map(x => x.play);
+ }
+
+ public getQueued = async (queueName: string, opts: {
+ order?: 'asc' | 'desc',
+ limit?: number,
+ offset?: number,
+ retries?: number,
+ } & ComponentConstrainedRepoOpts & HydrateOpts = {}
+ ): Promise<{data: PlaySelect[], meta: PaginatedQueryResponse}> => {
+ const {
+ order = 'asc',
+ limit = 100,
+ offset = 0,
+ retries,
+ componentId = this.componentId,
+ hydrate
+ } = opts;
+ let where: FindWhere<'plays'> = {
+ componentId
+ }
+ if(retries !== undefined) {
+ where.queueStates = {
+ queueName,
+ queueStatus: 'queued',
+ retries: {
+ lte: retries
+ }
+ }
+ } else {
+ where.queueStates = {
+ queueName,
+ queueStatus: 'queued'
+ }
+ }
+ const res = await this.db.query.plays.findMany({
+ where,
+ orderBy: {
+ seenAt: order
+ },
+ limit,
+ offset
+ });
+ return {data: res.map(x => ({...x, play: hydratePlaySelect(x, hydrate)})), meta: {limit, offset}};
+ }
+
+ public checkExisting = async (play: PlayObject, opts: {queueName?: string, states?: PlaySelect['state'][], taAccuracy?: TemporalAccuracy[]} & ComponentConstrainedRepoOpts = {}): Promise => {
+ const {
+ queueName,
+ componentId = this.componentId,
+ taAccuracy = TA_DEFAULT_ACCURACY,
+ states
+ } = opts;
+ const hash = hashObject(playContentBasicInvariantTransform(play).data);
+
+ // we get all plays with a play date between playdate - (source accuracy) AND (playDateCompleted or playDate) + (source accuracy)
+ // which we can then use with temporal comparison to make sure we are comparing the correct dates
+ //
+ // this isn't as fast as just comparing playDate directly but its still much faster/cheaper than paginating plays and doing everything in-memory
+ const dateGranularity = getTemporalAccuracyCloseVal(play.meta.source as SourceType);
+ let endRange: Dayjs;
+ if(play.data.playDateCompleted !== undefined) {
+ // this will be present if source reports it
+ // or we tracked it live with MemorySource
+ endRange = play.data.playDateCompleted.add(dateGranularity, 's');
+ } else {
+ endRange = play.data.playDate.add(dateGranularity, 's');
+ }
+ let where: FindWhere<'plays'> = {
+ componentId,
+ playedAt: buildDateCompare(getTemporallyCloseDateCompareOp(play)),
+ };
+
+ if(queueName !== undefined) {
+ where.queueStates = {
+ queueName,
+ queueStatus: 'queued'
+ }
+ }
+ if(states !== undefined) {
+ where.state = {
+ in: states
+ }
+ }
+
+ const mbidId = playMbidIdentifier(play);
+ if(mbidId !== undefined) {
+ where.AND = [
+ {
+ OR: [
+ {
+ playHash: hash
+ },
+ {
+ mbidIdentifier: mbidId
+ }
+ ]
+ }
+ ]
+ } else {
+ where.playHash = hash;
+ }
+
+ const res = await this.db.query.plays.findMany({
+ where,
+ with: {
+ queueStates: true
+ }
+ });
+ if(res.length === 0) {
+ return undefined;
+ }
+ return res.map(x => ({...x, play: hydratePlaySelect(x)})).find(x => {
+ const temporalComparison = comparePlayTemporally(x.play, play);
+ return hasAcceptableTemporalAccuracy(temporalComparison.match, taAccuracy)
+ })
+ }
+
+ public getTemporallyClosePlays = async (play: PlayObject, opts: {states?: PlaySelect['state'][], bufferTime?: number} & { with?: WithPlayRelation[] } & ComponentConstrainedRepoOpts = {}): Promise => {
+ const {
+ componentId = this.componentId,
+ bufferTime,
+ states,
+ with: qWith
+ } = opts;
+
+ let query: FindMany<'plays'> = {};
+
+ let where: FindWhere<'plays'> = {
+ componentId,
+ playedAt: buildDateCompare(getTemporallyCloseDateCompareOp(play, {bufferTime})),
+ };
+ if(states !== undefined) {
+ where.state = {
+ in: states
+ }
+ }
+ query.where = where;
+
+ return ((await this.db.query.plays.findMany({
+ where,
+ with: buildPlayWith(qWith)
+ })) as PlaySelectRel[]).map(x => ({...x, play: hydratePlaySelect(x)}));
+ }
+}
+
+export const getTemporallyCloseDateCompareOp = (play: PlayObject, opts: {bufferTime?: number, useCompleted?: boolean} = {}): CompareDateOp => {
+ const {
+ // use either provided arg or default to using source granularity
+ bufferTime = getTemporalAccuracyCloseVal(play.meta.source as SourceType),
+ useCompleted = true
+ } = opts;
+ // we get all plays with a play date between playdate - (buffer) AND (playDateCompleted or playDate) + (buffer)
+ let endRange: Dayjs;
+ if(play.data.playDateCompleted !== undefined && useCompleted) {
+ // this will be present if source reports it
+ // or we tracked it live with MemorySource
+ endRange = play.data.playDateCompleted.add(bufferTime, 's');
+ } else {
+ endRange = play.data.playDate.add(bufferTime, 's');
+ }
+ return {
+ type: 'between',
+ range: [play.data.playDate.subtract(bufferTime, 's'), endRange]
+ }
+}
+
+export const buildPlayWith = (args: WithPlayRelation[] | undefined): FindWith<'plays'> | undefined => {
+ if(args === undefined) {
+ return undefined;
+ }
+ const qWith: FindWith<'plays'> = {};
+ for(const w of args) {
+ switch (w) {
+ case 'input':
+ qWith.input = true;
+ break;
+ case 'parent':
+ qWith.parent = true;
+ break;
+ case 'parent-input':
+ qWith.parent = {
+ with: {
+ input: true
+ }
+ };
+ break;
+ case 'queues':
+ qWith.queueStates = true;
+ break;
+ default:
+ throw new Error(`Unknown relation ${w}`);
+ }
+ }
+ return qWith;
+}
+
+export const buildPlayWhere = (args: PlayWhereOpts): WhereClause<'plays'> => {
+ // old way
+ // let where: Parameters<(ReturnType)['query']['plays']['findMany']>[0]['where'] = {
+ // };
+ let where: FindWhere<'plays'> = {
+ componentId: args.componentId
+ };
+ if (args.state !== undefined) {
+ where.state = {
+ in: args.state
+ }
+ }
+ if(args.stateNot !== undefined) {
+ where.state = {
+ NOT: {
+ in: args.stateNot
+ }
+ }
+ }
+ if (args.seenAt !== undefined) {
+ where.seenAt = buildDateCompare(args.seenAt);
+ }
+ if (args.playedAt !== undefined) {
+ where.playedAt = buildDateCompare(args.playedAt);
+ }
+ if(args.uid !== undefined) {
+ where.uid = {
+ in: args.uid
+ }
+ }
+ const {
+ queues = []
+ } = args;
+ if(queues.length > 0) {
+ // need to do this optimistically even if we overwrite with only 1 condition later
+ where.queueStates = {
+ OR: []
+ }
+ // so that we can use this type
+ // or else assigning an array to OR using only `typeof where.queueStates` causes a type error
+ let queueWhere: typeof where.queueStates.OR[0][] = [];
+ for(const q of queues) {
+ queueWhere.push(
+ {
+ queueName: q.queueName,
+ queueStatus: typeof q.queueStatus === 'string' ? q.queueStatus : {
+ in: q.queueStatus
+ }
+ }
+ )
+ }
+ if(queueWhere.length === 1) {
+ where.queueStates = queueWhere[0];
+ } else {
+ where.queueStates = {
+ OR: queueWhere
+ }
+ }
+ }
+ return where;
+}
+
+export const playToRepositoryCreatePlayOpts = (data: MarkOptional): RepositoryCreatePlayOpts => {
+ const {
+ play: {
+ meta: {
+ lifecycle: {
+ input,
+ original,
+ ...lifecycleRest
+ } = {},
+ ...metaRest
+ },
+ ...playRest
+ },
+ ...rest
+ } = data;
+
+ return {
+ play: {
+ ...playRest,
+ meta: {
+ ...metaRest,
+ // @ts-expect-error
+ lifecycle: {
+ ...lifecycleRest
+ }
+ }
+ },
+ ...rest,
+ input: {
+ play: original,
+ data: input
+ }
+ }
+}
+
+export type RequestPlayQuery = Partial< Record, string>>;
+
+export const queryArgsFromRequest = (rec: RequestPlayQuery): QueryPlaysOpts => {
+
+ const {
+ state,
+ stateNot,
+ uid,
+ with: withQuery,
+ seenAt,
+ playedAt,
+ limit,
+ sort,
+ order,
+ offset,
+ componentId,
+ queues,
+ ...rest
+ } = rec;
+
+ let queryArgs: QueryPlaysOpts = removeEmptyArrays({
+ state: parseArrayFromMaybeString(state) as PlaySelect['state'][],
+ stateNot: parseArrayFromMaybeString(stateNot) as PlaySelect['state'][],
+ uid: parseArrayFromMaybeString(uid),
+ with: parseArrayFromMaybeString(withQuery) as WithPlayRelation[],
+ sort: sort as 'playedAt' | 'seenAt',
+ order: order as 'asc' | 'desc',
+ ...rest
+ });
+
+ if(limit !== undefined) {
+ queryArgs.limit = Number.parseInt(limit);
+ }
+ if(offset !== undefined) {
+ queryArgs.offset = Number.parseInt(offset);
+ }
+
+ return queryArgs;
+}
\ No newline at end of file
diff --git a/src/backend/common/database/drizzle/repositories/QueueRepository.ts b/src/backend/common/database/drizzle/repositories/QueueRepository.ts
new file mode 100644
index 000000000..54c8d379d
--- /dev/null
+++ b/src/backend/common/database/drizzle/repositories/QueueRepository.ts
@@ -0,0 +1,41 @@
+import { eq, and, lte, inArray } from "drizzle-orm";
+import { DrizzleBaseRepository, DrizzleRepositoryOpts } from "./BaseRepository.js";
+import { DbConcrete } from "../drizzleUtils.js";
+import { QueueStateSelect } from "../drizzleTypes.js";
+import { queueStates } from "../schema/schema.js";
+import { CLIENT_DEAD_QUEUE } from "../../../../../core/Atomic.js";
+export class DrizzleQueueRepository extends DrizzleBaseRepository<'queueStates'> {
+
+ constructor(db: DbConcrete, opts: DrizzleRepositoryOpts = {}) {
+ super(db, 'queueStates', 'Queue', opts);
+ }
+
+ public deadFailedToQueue = async (componentId: number, retries: number): Promise => {
+ await this.db.update(queueStates).set({
+ queueStatus: 'queued',
+ }).where(and(
+ eq(queueStates.componentId, componentId),
+ lte(queueStates.retries, retries),
+ eq(queueStates.queueStatus, 'failed'),
+ eq(queueStates.queueName, CLIENT_DEAD_QUEUE)
+ ));
+ }
+
+ public failedQueueToCompleted = async (componentId: number): Promise => {
+ await this.db.update(queueStates).set({
+ queueStatus: 'completed',
+ }).where(and(
+ eq(queueStates.componentId, componentId),
+ eq(queueStates.queueStatus, 'queued'),
+ eq(queueStates.queueName, CLIENT_DEAD_QUEUE)
+ ));
+ }
+
+ public getQueueCount = async (componentId: number, queueNames: string[], queueStatus: QueueStateSelect['queueStatus'][] = ['queued']): Promise => {
+ return await this.db.$count(queueStates, and(
+ eq(queueStates.componentId, componentId),
+ inArray(queueStates.queueName, queueNames),
+ inArray(queueStates.queueStatus, queueStatus)
+ ));
+ }
+}
\ No newline at end of file
diff --git a/src/backend/common/database/drizzle/schema/schema.ts b/src/backend/common/database/drizzle/schema/schema.ts
new file mode 100644
index 000000000..a681b26c0
--- /dev/null
+++ b/src/backend/common/database/drizzle/schema/schema.ts
@@ -0,0 +1,270 @@
+import { integer, sqliteTable, text, index, uniqueIndex, customType, AnySQLiteColumn } from "drizzle-orm/sqlite-core";
+import { defineRelations } from 'drizzle-orm';
+import dayjs, { Dayjs } from "dayjs";
+import { nanoid } from "nanoid";
+import { ErrorLike, PlayObject } from "../../../../../core/Atomic.js";
+import { asPlayCheap } from "../../../../../core/PlayMarshalUtils.js";
+import { ExternalMetadataTerm, PlayTransformPartsConfig, SearchAndReplaceTerm } from "../../../infrastructure/Transform.js";
+import { JobRangeCount, JobRangeTime } from "../../../infrastructure/Job.js";
+import { serializeError, deserializeError } from "serialize-error";
+
+const DayjsTimestamp = customType<
+ {
+ data: Dayjs;
+ driverData: number;
+ }
+>({
+ dataType() {
+ return 'number'
+ },
+ toDriver(value: Dayjs): number {
+ return value.valueOf();
+ },
+ fromDriver(value: number): Dayjs {
+ return dayjs(value);
+ },
+});
+
+const PlayJson = customType<
+ {
+ data: PlayObject;
+ driverData: string;
+ }
+>({
+ dataType() {
+ return 'text'
+ },
+ toDriver(value: PlayObject): string {
+ const {
+ id,
+ uid,
+ ...rest
+ } = value;
+ return JSON.stringify(rest);
+ },
+ fromDriver(value: string): PlayObject {
+ return asPlayCheap(JSON.parse(value));
+ },
+});
+
+const ErrorLikeJson = customType<
+ {
+ data: ErrorLike;
+ driverData: string;
+ }
+>({
+ dataType() {
+ return 'text'
+ },
+ toDriver(value: ErrorLike): string {
+ return JSON.stringify(serializeError(value));
+ },
+ fromDriver(value: string): ErrorLike {
+ return deserializeError(JSON.parse(value));
+ },
+});
+
+
+export const plays = sqliteTable("plays", {
+ id: integer().primaryKey(),
+ uid: text({ length: 30 }).notNull().unique().$defaultFn(() => nanoid(20)),
+ componentId: integer().references(() => components.id, {onDelete: 'cascade', onUpdate: 'cascade'}),
+ error: ErrorLikeJson('error'),
+ playedAt: DayjsTimestamp('playedAt'),
+ seenAt: DayjsTimestamp('seenAt'),
+ updatedAt: DayjsTimestamp('updatedAt').notNull().$defaultFn(() => dayjs()),
+ play: PlayJson('play').notNull(), // text({ mode: 'json' }).notNull().$type(),
+ state: text({enum: ['queued','discovered','discarded','scrobbled','failed','duped']}).notNull(),
+ // https://orm.drizzle.team/docs/indexes-constraints#foreign-key
+ parentId: integer().references((): AnySQLiteColumn => plays.id, {onDelete: 'set null', onUpdate: 'cascade'}),
+ jobId: integer().references(() => jobs.id, {onDelete: 'cascade', onUpdate: 'cascade'}),
+ playHash: text(),
+ mbidIdentifier: text(),
+ compacted: text()
+}, (table) => [
+ index("play_parent_id_idx").on(table.parentId),
+ index("play_component_id_idx").on(table.componentId),
+ uniqueIndex("play_uid_idx").on(table.uid),
+ index("play_playedAt_idx").on(table.playedAt),
+ index("play_seenAt_idx").on(table.seenAt)
+]);
+
+export const playInputs = sqliteTable("play_inputs", {
+ id: integer({ mode: 'number' }).primaryKey(),
+ playId: integer().notNull().references(() => plays.id, {onDelete: 'cascade', onUpdate: 'cascade'}),
+ data: text({ mode: 'json' }).$type