From 01d0b08a4eb0e8a26a69320069e955d09ce93381 Mon Sep 17 00:00:00 2001 From: John McLear Date: Mon, 22 Jun 2026 09:52:33 +0100 Subject: [PATCH 01/74] docs: migrate useful wiki content into the manual (#7990) (#7994) * docs: migrate useful wiki content into the VitePress manual (#7990) The GitHub wiki is being retired; documentation should ship with the software. This migrates the still-accurate, non-duplicate wiki pages into the published VitePress site (doc/**/*.md + the sidebar in doc/.vitepress/config.mts) so they are versioned, searchable and portable: - deployment.md: reverse-proxy configs (Nginx/Apache/Caddy/Traefik/ HAProxy) with the WebSocket-upgrade rules, subdirectory hosting via X-Proxy-Path, native HTTPS via the ssl block, a systemd unit, and the Istio manifest (with the Redis-adapter multi-replica caveat). - accessibility.md: editor keyboard shortcuts (verified against ace2_inner.ts / broadcast_slider.ts / pad_editbar.ts), toolbar navigation, NVDA notes. - faq.md: install methods, URL-path reference, listing/deleting pads (API-first), backup/restore, and history pruning. - development.md: source-tree tour, the pad<->format conversion pipeline, the internal DB API, and the Fontello toolbar-icon workflow. - database.md: the key/value schema plus connecting MySQL/PostgreSQL/Redis backends and a pgloader MySQL->PostgreSQL migration (database docs were previously absent from the VitePress site). Every page was checked against the current source before inclusion: corrected the apt instructions to the live signed repo (stable/main, signed-by key), dropped the unpublished snap, fixed the Redis dbSettings (flat host/port/password or url, not the obsolete client_options), dropped charset from the PostgreSQL example, and removed a phantom getEtherpad API reference. The VitePress site builds cleanly (pnpm run docs:build) with the dead-link checker enabled. Closes #7990 Co-Authored-By: Claude Opus 4.8 (1M context) * docs: add verified hands-on changeset/atext walkthrough (#7990) Migrate the practical Changeset-library tutorial from the wiki into changeset_library.md, rewritten against the current API: unpack(), deserializeOps() (replacing the deprecated opIterator) and new AttributePool() (replacing the removed AttributePoolFactory). Every example output was produced by running the code against the current Changeset.ts / AttributePool.ts, not copied from the wiki. Also fixes a stale ether/etherpad-lite source link. Co-Authored-By: Claude Opus 4.8 (1M context) --------- Co-authored-by: Claude Opus 4.8 (1M context) --- doc/.vitepress/config.mts | 5 + doc/accessibility.md | 91 +++++++++ doc/api/changeset_library.md | 91 ++++++++- doc/database.md | 204 ++++++++++++++++++++ doc/deployment.md | 359 +++++++++++++++++++++++++++++++++++ doc/development.md | 240 +++++++++++++++++++++++ doc/faq.md | 204 ++++++++++++++++++++ 7 files changed, 1193 insertions(+), 1 deletion(-) create mode 100644 doc/accessibility.md create mode 100644 doc/database.md create mode 100644 doc/deployment.md create mode 100644 doc/development.md create mode 100644 doc/faq.md diff --git a/doc/.vitepress/config.mts b/doc/.vitepress/config.mts index 85c00f5aa..846127ae7 100644 --- a/doc/.vitepress/config.mts +++ b/doc/.vitepress/config.mts @@ -27,13 +27,18 @@ export default defineConfig({ items: [ { text: 'Docker', link: '/docker.md' }, { text: 'Configuration', link: '/configuration.md' }, + { text: 'Deployment', link: '/deployment.md' }, + { text: 'Database', link: '/database.md' }, { text: 'Localization', link: '/localization.md' }, { text: 'Cookies', link: '/cookies.md' }, { text: 'Plugins', link: '/plugins.md' }, { text: 'Stats', link: '/stats.md' }, {text: 'Skins', link: '/skins.md' }, + { text: 'Accessibility', link: '/accessibility.md' }, {text: 'Demo', link: '/demo.md' }, {text: 'CLI', link: '/cli.md'}, + { text: 'Development', link: '/development.md' }, + { text: 'FAQ', link: '/faq.md' }, ] }, { diff --git a/doc/accessibility.md b/doc/accessibility.md new file mode 100644 index 000000000..24e1269b4 --- /dev/null +++ b/doc/accessibility.md @@ -0,0 +1,91 @@ +# Accessibility + +Etherpad aims to be usable by everyone, including people who rely on a +keyboard, a screen reader, or other assistive technology. The editor follows +common conventions so that selecting, formatting, and navigating text works the +way you would expect in other applications, and the toolbar can be reached and +operated without a mouse. + +If you find a feature that is not accessible, please let us know by opening an +issue so it can be improved. + +## Keyboard shortcuts + +The following shortcuts are built into the editor. On macOS use the Command +(`Cmd`) key wherever `Ctrl` is listed. + +::: tip +Most shortcuts can be individually enabled or disabled through the +`padShortcutEnabled` settings, so a deployment may have customised which of +these are active. +::: + +### Editor + +| Action | Shortcut | +| --- | --- | +| Bold | `Ctrl` + `B` | +| Italic | `Ctrl` + `I` | +| Underline | `Ctrl` + `U` | +| Strikethrough | `Ctrl` + `5` | +| Ordered (numbered) list | `Ctrl` + `Shift` + `N` or `Ctrl` + `Shift` + `1` | +| Unordered (bulleted) list | `Ctrl` + `Shift` + `L` | +| Indent line or selection | `Tab` | +| Outdent line or selection | `Shift` + `Tab` | +| Undo | `Ctrl` + `Z` | +| Redo | `Ctrl` + `Y` or `Ctrl` + `Shift` + `Z` | +| Save a named revision | `Ctrl` + `S` | +| Duplicate the current line(s) | `Ctrl` + `Shift` + `D` | +| Delete the current line(s) | `Ctrl` + `Shift` + `K` | +| Clear authorship colors on the pad or selection | `Ctrl` + `Shift` + `C` | +| Show the authors of the current line | `Ctrl` + `Shift` + `2` | +| Focus the toolbar (see below) | `Alt` + `F9` | +| Focus the chat input | `Alt` + `C` | + +Text selection, cut (`Ctrl` + `X`), copy (`Ctrl` + `C`), paste +(`Ctrl` + `V`), and the arrow keys behave as they do in any standard text +editor. + +### Timeslider + +The timeslider (revision history) provides its own shortcuts: + +| Action | Shortcut | +| --- | --- | +| Play / pause history playback | `Space` | +| Step back one revision | `Left Arrow` | +| Step forward one revision | `Right Arrow` | +| Jump back to the previous starred revision | `Shift` + `Left Arrow` | +| Jump forward to the next starred revision | `Shift` + `Right Arrow` | + +## Toolbar navigation + +The toolbar holds the formatting controls (bold, italic, lists, and so on) and +can be reached and operated entirely from the keyboard: + +* Press `Alt` + `F9` from the editor to move focus to the first button in the + toolbar. +* Use the `Left Arrow` and `Right Arrow` keys to move between buttons. `Tab` + also moves to the next focusable control. +* Press `Enter` to activate the focused button. +* Press `Alt` + `F9` again, or `Escape`, to return focus to the pad. + +Pressing `Escape` while a toolbar dropdown (such as the settings or color +picker) is open closes that dropdown first. + +## Screen readers + +Etherpad provides as much screen reader support as possible. Support quality +varies between platforms and browsers, so the following combinations are +recommended: + +* On Windows, Firefox with [NVDA](https://www.nvaccess.org/) currently gives the + best experience. + +To reduce verbose feedback while typing collaboratively in NVDA, open the +keyboard settings (`NVDA` + `Ctrl` + `K`) and turn off **Speak typed characters** +and **Speak typed words**. + +Support in other screen readers and browsers (for example Orca on Linux, or +Chrome) is more limited. Contributions to improve coverage on these platforms +are very welcome. diff --git a/doc/api/changeset_library.md b/doc/api/changeset_library.md index 9785f2b47..dbf3c9224 100644 --- a/doc/api/changeset_library.md +++ b/doc/api/changeset_library.md @@ -1,7 +1,7 @@ # Changeset Library The [changeset -library](https://github.com/ether/etherpad-lite/blob/develop/src/static/js/Changeset.ts) +library](https://github.com/ether/etherpad/blob/develop/src/static/js/Changeset.ts) provides tools to create, read, and apply changesets. ## Changeset @@ -21,6 +21,42 @@ A transmitted changeset looks like this: 'Z:z>1|2=m=b*0|1+1$\n' ``` +### Reading a changeset + +`unpack()` splits a changeset string into its parts: + +```javascript +const unpacked = Changeset.unpack('Z:z>1|2=m=b*0|1+1$\n'); +// { oldLen: 35, newLen: 36, ops: '|2=m=b*0|1+1', charBank: '\n' } +``` + +`oldLen` is the document length before the change and `newLen` the length after. +`ops` is the list of operations, and `charBank` holds the characters inserted by +those operations. + +Iterate the operations with `deserializeOps()`, which yields one `Op` at a time: + +```javascript +for (const op of Changeset.deserializeOps(unpacked.ops)) { + console.log(op); +} +// Op { opcode: '=', chars: 22, lines: 2, attribs: '' } +// Op { opcode: '=', chars: 11, lines: 0, attribs: '' } +// Op { opcode: '+', chars: 1, lines: 1, attribs: '*0' } +``` + +There are three kinds of operation, each applied starting from the current +position in the text: + +- `=` keeps text (it may still change the text's attributes, e.g. make it bold). +- `-` removes text. +- `+` inserts text (taking the characters from the changeset's `charBank`). + +`opcode` is the operation type; `chars` and `lines` are how much text it covers; +and `attribs` are the attributes applied, written as `*` references into the +pad's attribute pool. In the example above the final op inserts one character +(the newline from `charBank`) carrying attribute `*0`. + ## Attribute Pool ```javascript @@ -36,6 +72,59 @@ are used many times. There is one attribute pool per pad, and it includes every current and historical attribute used in the pad. +A pool can be serialized to and from a plain object with `toJsonable()` and +`fromJsonable()`: + +```javascript +const pool = new AttributePool(); +pool.fromJsonable({ + numToAttrib: { + 0: ['author', 'a.kVnWeomPADAT2pn9'], + 1: ['bold', 'true'], + 2: ['italic', 'true'], + }, + nextNum: 3, +}); + +pool.getAttrib(1); // [ 'bold', 'true' ] +pool.getAttribKey(1); // 'bold' +pool.getAttribValue(1); // 'true' +``` + +Each attribute is a `[key, value]` pair — `['bold', 'true']`, or +`['author', '']`. A character can carry several attributes (bold *and* +italic), but only one value per key (so it cannot belong to two authors). + +## Attributed text (atext) + +A pad's content is stored as *attributed text* (`atext`): the plain text plus an +attribute string describing which attributes apply to each span. + +```javascript +const atext = { + text: 'bold text\nitalic text\nnormal text\n\n', + attribs: '*0*1+9*0|1+1*0*1*2+b|1+1*0+b|2+2', +}; +``` + +The attribute string is a sequence of `+` operations — the same encoding used by +changesets — which you can read with `deserializeOps()`: + +```javascript +for (const op of Changeset.deserializeOps(atext.attribs)) { + console.log(op); +} +// Op { opcode: '+', chars: 9, lines: 0, attribs: '*0*1' } +// Op { opcode: '+', chars: 1, lines: 1, attribs: '*0' } +// Op { opcode: '+', chars: 11, lines: 0, attribs: '*0*1*2' } +// Op { opcode: '+', chars: 1, lines: 1, attribs: '' } +// Op { opcode: '+', chars: 11, lines: 0, attribs: '*0' } +// Op { opcode: '+', chars: 2, lines: 2, attribs: '' } +``` + +Read against the pool above, the first nine characters (`bold text`) carry +attributes `*0*1` (author + bold), the following newline carries `*0`, and so on. + ## Further Reading Detailed information about the changesets & Easysync protocol: diff --git a/doc/database.md b/doc/database.md new file mode 100644 index 000000000..9d73eb8e4 --- /dev/null +++ b/doc/database.md @@ -0,0 +1,204 @@ +# Database structure + +## Keys and their values + +### groups +A list of all existing groups (a JSON object with groupIDs as keys and `1` as values). + +### pad:$PADID +Contains all information about pads + +- **atext** - the latest attributed text +- **pool** - the attribute pool +- **head** - the number of the latest revision +- **chatHead** - the number of the latest chat entry +- **public** - flag that disables security for this pad +- **passwordHash** - string that contains a salted sha512 sum of this pad's password + +### pad:$PADID:revs:$REVNUM +Saves a revision $REVNUM of pad $PADID + +- **meta** + - **author** - the autorID of this revision + - **timestamp** - the timestamp of when this revision was created +- **changeset** - the changeset of this revision + +### pad:$PADID:chat:$CHATNUM +Saves a chat entry with num $CHATNUM of pad $PADID + +- **text** - the text of this chat entry +- **userId** - the authorID of this chat entry +- **time** - the timestamp of this chat entry + +### pad2readonly:$PADID +Translates a padID to a readonlyID + +### readonly2pad:$READONLYID +Translates a readonlyID to a padID + +### token2author:$TOKENID +Translates a token to an authorID + +### globalAuthor:$AUTHORID +Information about an author + +- **name** - the name of this author as shown in the pad +- **colorID** - the colorID of this author as shown in the pad + +### mapper2group:$MAPPER +Maps an external application identifier to an internal group + +### mapper2author:$MAPPER +Maps an external application identifier to an internal author + +### group:$GROUPID +a group of pads + +- **pads** - object with pad names in it, values are 1 + +### session:$SESSIONID +a session between an author and a group + +- **groupID** - the groupID the session belongs too +- **authorID** - the authorID the session belongs too +- **validUntil** - the timestamp until this session is valid + +### author2sessions:$AUTHORID +saves the sessions of an author + +- **sessionsIDs** - object with sessionIDs in it, values are 1 + +### group2sessions:$GROUPID + +- **sessionsIDs** - object with sessionIDs in it, values are 1 + +# Connecting to a database backend + +Etherpad stores everything in a single key/value table through +[ueberDB](https://www.npmjs.com/package/ueberdb2), so the same data model works +across many backends. The backend is selected with `dbType` in `settings.json`, +and backend-specific connection options go in `dbSettings`. + +The default `dirty` backend writes to a local file (`var/dirty.db`) and needs no +setup, which is convenient for development but not recommended for production. +For a production instance, point Etherpad at a real database such as MySQL/MariaDB, +PostgreSQL or Redis. Etherpad creates its own table on first run; you only need +to provision an empty database and a user with access to it. + +## MySQL / MariaDB + +Create the database and a user, then grant access: + +```sql +CREATE DATABASE `etherpad` CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; +CREATE USER 'etherpad'@'localhost' IDENTIFIED BY 'a-secure-password'; +GRANT CREATE,ALTER,SELECT,INSERT,UPDATE,DELETE ON `etherpad`.* TO 'etherpad'@'localhost'; +``` + +Then configure `settings.json`: + +```json +"dbType": "mysql", +"dbSettings": { + "user": "etherpad", + "host": "localhost", + "port": 3306, + "password": "a-secure-password", + "database": "etherpad", + "charset": "utf8mb4" +} +``` + +Setting `charset` to `utf8mb4` is strongly recommended so that the full range of +Unicode (including emoji) is stored correctly. To connect over a local socket +instead of TCP, replace `host`/`port` with `"socketPath": "/var/run/mysqld/mysqld.sock"`. + +## PostgreSQL + +Create the user and a database owned by it: + +```sql +CREATE USER etherpad WITH PASSWORD 'a-secure-password'; +CREATE DATABASE etherpad OWNER etherpad; +``` + +Then configure `settings.json`: + +```json +"dbType": "postgres", +"dbSettings": { + "user": "etherpad", + "host": "localhost", + "port": 5432, + "password": "a-secure-password", + "database": "etherpad" +} +``` + +The `dbSettings` object is passed straight to the `node-postgres` connection +pool, so any option it accepts (including a single `"connectionString"`) works. +On Debian/Ubuntu you can use peer authentication over the local socket by +setting `"host": "/var/run/postgresql"` and an empty password, provided the +operating-system user that runs Etherpad matches the PostgreSQL role. + +## Redis + +Install Redis and make sure it persists data to disk. Configure `settings.json` +with either discrete fields or a single connection URL: + +```json +"dbType": "redis", +"dbSettings": { + "host": "localhost", + "port": 6379, + "password": "a-secure-redis-password" +} +``` + +```json +"dbType": "redis", +"dbSettings": { + "url": "redis://:a-secure-redis-password@localhost:6379" +} +``` + +## Migrating from MySQL to PostgreSQL + +[pgloader](https://pgloader.io/) can copy an existing Etherpad database from +MySQL to PostgreSQL. Stop Etherpad first so the source database is quiescent. + +```bash +sudo apt-get install postgresql pgloader + +# Create the target role and database +sudo -u postgres createuser etherpad +sudo -u postgres createdb -O etherpad etherpad + +# Describe and run the migration +cat > pgloader.load <<'EOF' +LOAD DATABASE + FROM mysql://etherpad:MYSQL_PASSWORD@127.0.0.1/etherpad + INTO postgresql:///etherpad +WITH preserve index names, prefetch rows = 100 +ALTER SCHEMA 'etherpad' RENAME TO 'public'; +EOF + +pgloader --verbose pgloader.load +``` + +Afterwards set the PostgreSQL user's password and make sure it can read and +write the migrated table: + +```sql +ALTER USER etherpad WITH PASSWORD 'a-secure-password'; +GRANT pg_read_all_data TO etherpad; +GRANT pg_write_all_data TO etherpad; +``` + +Then point `settings.json` at PostgreSQL as shown above and start Etherpad. + +::: tip +To move data between *any* two backends supported by ueberDB, you can also +use the `migrateDB` CLI tool, which reads every record from a source database +descriptor and writes it to a target one. See the [CLI chapter](./cli.md). +::: diff --git a/doc/deployment.md b/doc/deployment.md new file mode 100644 index 000000000..2c5ab5d0c --- /dev/null +++ b/doc/deployment.md @@ -0,0 +1,359 @@ +# Deployment + +This page collects working configurations for deploying Etherpad in production: +running it behind a reverse proxy, hosting it under a subdirectory, terminating +HTTPS natively, running it as a system service, and deploying it on Kubernetes. + +Etherpad listens on port `9001` by default. Throughout this page the upstream +Etherpad server is assumed to be reachable at `http://127.0.0.1:9001`. + +## Running behind a reverse proxy + +The recommended production setup is to run Etherpad on `127.0.0.1:9001` and put a +reverse proxy in front of it to terminate TLS, serve a virtual host, and forward +requests. + +Etherpad uses WebSockets (via socket.io). The load-bearing part of every proxy +config below is the WebSocket upgrade: the proxy **must** forward the `Upgrade` +and `Connection` headers, or real-time editing will silently fail back to slow +long-polling (or break entirely). + +When Etherpad runs behind a proxy you should also set `trustProxy: true` in your +settings so that Etherpad honours the `X-Forwarded-*` headers (correct client IP, +secure-cookie flag, etc.). See the `trustProxy` section in the [Configuration documentation](./configuration.md) for the full details of which headers are trusted. + +### Nginx + +```nginx +# Map the Upgrade header so WebSockets work. Place this in the http context. +map $http_upgrade $connection_upgrade { + default upgrade; + '' close; +} + +server { + listen 443 ssl; + listen [::]:443 ssl; + server_name pad.example.com; + + ssl_certificate /etc/nginx/ssl/etherpad.crt; + ssl_certificate_key /etc/nginx/ssl/etherpad.key; + + location / { + proxy_pass http://127.0.0.1:9001; + proxy_buffering off; + proxy_set_header Host $host; + proxy_pass_header Server; + + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + # WebSocket support + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $connection_upgrade; + } +} + +# Redirect plain HTTP to HTTPS +server { + listen 80; + listen [::]:80; + server_name pad.example.com; + return 301 https://$host$request_uri; +} +``` + +### Apache + +Enable `mod_proxy`, `mod_proxy_http`, `mod_proxy_wstunnel` and `mod_headers`. +The `mod_proxy_wstunnel` `upgrade=websocket` syntax requires Apache 2.4.47 or +newer. + +```apache + + ServerName pad.example.com + + SSLEngine on + SSLCertificateFile /etc/ssl/etherpad/etherpad.crt + SSLCertificateKeyFile /etc/ssl/etherpad/etherpad.key + + ProxyVia On + ProxyRequests Off + ProxyPreserveHost On + + # WebSocket traffic (socket.io) must be matched first. + + ProxyPass "ws://127.0.0.1:9001/socket.io" upgrade=websocket timeout=30 + ProxyPassReverse "ws://127.0.0.1:9001/socket.io" + + + + ProxyPass "http://127.0.0.1:9001/" retry=0 timeout=30 + ProxyPassReverse "http://127.0.0.1:9001/" + + +``` + +### Caddy + +Caddy v2 proxies WebSocket connections automatically and obtains/renews a +certificate for you, so the configuration is minimal: + +```caddy +pad.example.com { + reverse_proxy 127.0.0.1:9001 +} +``` + +### Traefik + +Traefik v2 also proxies WebSockets transparently. For a Docker deployment, attach +these labels to the Etherpad container: + +```yaml +labels: + - "traefik.enable=true" + - "traefik.http.routers.etherpad.rule=Host(`pad.example.com`)" + - "traefik.http.routers.etherpad.entrypoints=websecure" + - "traefik.http.routers.etherpad.tls.certresolver=myresolver" + - "traefik.http.services.etherpad.loadbalancer.server.port=9001" + - "traefik.http.services.etherpad.loadbalancer.passhostheader=true" +``` + +### HAProxy + +HAProxy detects the `Connection: Upgrade` exchange automatically and switches to +tunnel mode once the WebSocket is established. The important value is +`timeout tunnel`, which governs the lifetime of the upgraded connection. + +```haproxy +frontend http + mode http + bind *:80 + bind *:443 ssl crt /etc/haproxy/certs/etherpad.pem alpn h2,http/1.1 + http-request redirect scheme https code 301 unless { ssl_fc } + http-request add-header X-Forwarded-Proto https if { ssl_fc } + default_backend etherpad + +backend etherpad + mode http + option forwardfor + timeout client 25s + timeout server 25s + timeout tunnel 3600s + server pad 127.0.0.1:9001 +``` + +## Hosting under a subdirectory + +To serve Etherpad from a path such as `https://example.com/pad` rather than from +the root of a domain, the proxy must send the `X-Proxy-Path` header so that +Etherpad rewrites its own asset and API URLs to include the prefix. This header +is honoured regardless of the `trustProxy` setting — see the [Configuration documentation](./configuration.md). + +```nginx +location /pad/ { + rewrite ^/pad/(.*)$ /$1 break; + proxy_pass http://127.0.0.1:9001; + proxy_buffering off; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Proxy-Path /pad; + + # WebSocket support + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $connection_upgrade; +} +``` + +## Native HTTPS without a proxy + +Etherpad can terminate TLS itself using Node's native HTTPS server, with no +reverse proxy required. Configure the `ssl` block in `settings.json`: + +```json +"ssl": { + "key": "/path-to-your/etherpad-server.key", + "cert": "/path-to-your/etherpad-server.crt", + "ca": ["/path-to-your/intermediate-cert1.crt", "/path-to-your/intermediate-cert2.crt"] +} +``` + +* `key` — path to the private key file. +* `cert` — path to the certificate file. +* `ca` — an (optional) array of intermediate/chain certificate paths. + +Restart Etherpad after editing the settings. It will now serve HTTPS on its +configured port. + +For local testing you can generate a self-signed certificate with a single +command: + +```bash +openssl req -x509 -newkey rsa:4096 -nodes -days 365 \ + -keyout etherpad-server.key -out etherpad-server.crt \ + -subj "/CN=localhost" +``` + +Make sure the files are readable only by the user that runs Etherpad: + +```bash +chmod 400 etherpad-server.key etherpad-server.crt +chown etherpad etherpad-server.key etherpad-server.crt +``` + +::: tip +Self-signed certificates trigger browser warnings and are only suitable for +testing. For production, obtain a free, trusted certificate from +[Let's Encrypt](https://letsencrypt.org/), or terminate TLS at a reverse proxy +(see above) and let it manage certificate issuance and renewal. +::: + +## Running as a service (systemd) + +On a modern Linux distribution, run Etherpad as a `systemd` service so it starts +on boot and restarts automatically on failure. + +Create a dedicated unprivileged user and install Etherpad into its home +directory (for example `/opt/etherpad`), owned by that user. Etherpad refuses to +start as root. + +Create `/etc/systemd/system/etherpad.service`: + +```ini +[Unit] +Description=Etherpad collaborative editor +After=network.target + +[Service] +Type=simple +User=etherpad +Group=etherpad +WorkingDirectory=/opt/etherpad +Environment=NODE_ENV=production +ExecStart=/usr/bin/pnpm run prod +Restart=always +RestartSec=5 + +[Install] +WantedBy=multi-user.target +``` + +Adjust `WorkingDirectory` to your install path and the `ExecStart` path to +wherever `pnpm` lives (`which pnpm`). Then enable and start the service: + +```bash +sudo systemctl daemon-reload +sudo systemctl enable --now etherpad.service + +# check status and follow logs +sudo systemctl status etherpad.service +sudo journalctl -u etherpad.service -f +``` + +## Kubernetes (Istio) + +The following manifest deploys Etherpad behind an Istio ingress gateway. It +defines three resources: a `Gateway` (TLS + hostname), a `VirtualService` +(routing with WebSocket-friendly timeouts), and a `DestinationRule` (sticky +sessions via the socket.io `io` cookie). + +It assumes: + +* Istio >= 1.18 +* A `Service` named `etherpad` in the `etherpad` namespace, on port `9001` +* A TLS secret `etherpad-tls` provisioned in the gateway namespace +* You replace `` with your own hostname + +::: warning +Sticky sessions are necessary but **not** sufficient for a multi-replica +Etherpad deployment. Multi-replica also needs the socket.io Redis adapter so +that pad state is shared across pods. Without it, two clients editing the same +pad but routed to different pods will see divergent state. + +Recommendation: start with `replicas: 1` plus good failover, and only go +multi-replica once the Redis adapter is wired up. +::: + +```yaml +apiVersion: networking.istio.io/v1beta1 +kind: Gateway +metadata: + name: etherpad + namespace: etherpad +spec: + selector: + istio: ingressgateway + servers: + - port: + number: 443 + name: https + protocol: HTTPS + tls: + mode: SIMPLE + credentialName: etherpad-tls + hosts: + - + - port: + number: 80 + name: http + protocol: HTTP + hosts: + - + tls: + httpsRedirect: true + +--- +apiVersion: networking.istio.io/v1beta1 +kind: VirtualService +metadata: + name: etherpad + namespace: etherpad +spec: + hosts: + - + gateways: + - etherpad + http: + - match: + - uri: + prefix: / + route: + - destination: + host: etherpad + port: + number: 9001 + # No per-request timeout — websockets and long-polling sit on the + # connection indefinitely. The default of 15s kills WS upgrades. + timeout: 0s + +--- +apiVersion: networking.istio.io/v1beta1 +kind: DestinationRule +metadata: + name: etherpad + namespace: etherpad +spec: + host: etherpad + trafficPolicy: + loadBalancer: + # Sticky sessions on the socket.io session cookie. Required so that + # long-polling fallback requests land on the same pod that owns the + # session state. + consistentHash: + httpCookie: + name: io + ttl: 0s # session cookie, expires with the browser tab + connectionPool: + tcp: + maxConnections: 10000 + http: + # Must comfortably exceed socket.io's pingInterval (25s) + + # pingTimeout (20s). 1h is conservative. + idleTimeout: 3600s + h2UpgradePolicy: UPGRADE + http1MaxPendingRequests: 1000 +``` diff --git a/doc/development.md b/doc/development.md new file mode 100644 index 000000000..4a0780ed7 --- /dev/null +++ b/doc/development.md @@ -0,0 +1,240 @@ +# Development + +This page is a contributor-oriented tour of the Etherpad source tree and of a +few internals that plugin authors and core contributors commonly need to +understand: how the source is laid out, how pads are converted to and from +other formats, and how to access the database from server-side code. + +The Etherpad server is written in TypeScript (`.ts`). Most server code lives +under `src/node/` and most client code under `src/static/js/`. + +## Source tree overview + +The repository root contains, among others, the following directories: + +``` +etherpad/ +|- bin/ # maintenance and build scripts (run.sh, pad tools, docs, release) +|- doc/ # this manual, in AsciiDoc and Markdown +|- src/ # the Etherpad source code +|- packaging/ # OS/distribution packaging helpers +|- var/ # runtime data (e.g. the dirty.db database file) +``` + +`bin/` contains scripts for running and maintaining Etherpad. For example +`bin/run.sh` starts the server, and there are TypeScript utilities such as +`bin/checkPad.ts`, `bin/deletePad.ts`, `bin/repairPad.ts`, +`bin/rebuildPad.ts`, `bin/migrateDB.ts` and `bin/make_docs.ts`. + +The HTML manual is built from the AsciiDoc sources in `doc/` by +`bin/make_docs.ts` (exposed as the `makeDocs` script), which shells out to +`asciidoctor` and writes the result to `out/doc/`. From the repository root you +can run it with `pnpm run makeDocs`. (`asciidoctor` must be installed.) + +The `src/` directory looks like this: + +``` +src/ +|- locales/ # translations, managed via https://translatewiki.net +|- node/ # server-side code +|- static/ # client-side code, CSS and fonts +|- templates/ # server-rendered page templates +|- ep.json # core plugin/hook registration +|- package.json # package name: ep_etherpad-lite +``` + +### src/node/ (server side) + +``` +src/node/ +|- db/ # database access and pad/author/group/session state +|- eejs/ # server-side embedded-JS templating +|- handler/ # import/export and collaboration message handling +|- hooks/ # express route registration and i18n +|- security/ # crypto, OAuth2/OIDC, secret rotation +|- types/ # shared TypeScript types +|- updater/ # in-place self-update machinery +|- utils/ # settings, import/export format helpers, toolbar, minification +|- server.ts # entry point +``` + +`db/` contains the modules that read and write pad state. `Pad.ts` manages an +individual pad; `PadManager.ts`, `AuthorManager.ts`, `GroupManager.ts`, +`SessionManager.ts` and `ReadOnlyManager.ts` manage the corresponding records; +`DB.ts` exposes the low-level key/value store (see +[Accessing the database from server code / plugins](#accessing-the-database-from-server-code-plugins)); and `API.ts` implements +the public HTTP API. + +`handler/` contains the request and message handlers. `PadMessageHandler.ts` +drives real-time collaboration, while `ImportHandler.ts` and `ExportHandler.ts` +handle import and export. + +`hooks/` contains mostly Express-related code. `i18n.ts` builds the translation +files and registers routes to serve them, and `hooks/express/` registers the +routes that serve pads, the timeslider, static assets and the admin pages. + +`utils/` contains the import/export format converters (`ImportHtml.ts`, +`ExportHtml.ts`, `ExportTxt.ts`, `ExportEtherpad.ts`, `ImportEtherpad.ts`, +`ExportHelper.ts`, and native converters such as `ExportPdfNative.ts` and +`ImportDocxNative.ts`), the settings parser (`Settings.ts`), the toolbar builder +(`toolbar.ts`) and the asset minifier (`Minify.ts`). + +### src/static/ (client side) + +``` +src/static/ +|- css/ # stylesheets, including css/pad/icons.css +|- font/ # web fonts, including the fontawesome-etherpad icon font +|- img/ +|- js/ # client-side TypeScript +|- skins/ # bundled UI skins +|- vendor/ +``` + +`js/` contains the client-side editor code. Notable modules include +`ace2_inner.ts` and `ace2_common.ts` (the editor core), `contentcollector.ts`, +`linestylefilter.ts` and `domline.ts` (content/attribute processing, shared +with the server import/export pipeline), `Changeset.ts` and `AttributePool.ts` +(the changeset and attribute model), and `collab_client.ts` (the +client side of real-time collaboration). + +### src/templates/ + +`templates/` contains the server-rendered page templates for the index, the +pad, the timeslider and the admin pages, plus the bootstrap scripts that load +the client bundles. The templates expose named `eejs` blocks that plugins can +hook into to inject custom HTML. + +## How Etherpad converts pads to and from other formats + +Internally a pad is not stored as HTML. A pad is a sequence of lines, and each +line carries **attributes** (for example `heading1`, `bullet` or a list number). +The set of attributes that a pad can use is stored in its **attribute pool**; the +pool only records which attributes exist, not where they are applied. The +pool grows over the history of the pad. + +Where an attribute is applied to a line is recorded in an **attribute string**, +and a line that carries a line-level attribute is prefixed with a **line marker** +(`lmkr`). Attribute strings and changesets are defined by +`src/static/js/Changeset.ts` and `src/static/js/AttributePool.ts`. + +### Collecting content + +`src/static/js/contentcollector.ts` is the shared starting point for both the +client (when content is typed or pasted) and the server (when content is +imported). It walks the incoming DOM/HTML, decides which attributes apply to +each line, adds the discovered attributes to the attribute pool, and emits the +resulting attribute strings. On import, `src/node/utils/ImportHtml.ts` calls +`contentcollector.makeContentCollector(...)` to do exactly this, and the HTML +import path in `src/node/handler/ImportHandler.ts` ultimately drives it. + +### From attributes to HTML/text (export) + +On export the flow is, conceptually: + +``` +contentcollector.ts + -> linestylefilter.ts + -> ExportHtml.ts / ExportTxt.ts (helped by ExportHelper.ts) + -> ExportHandler.ts + -> the HTTP API / /export/* route +``` + +- `src/static/js/linestylefilter.ts` walks each line, reads its attributes, + and turns them into the classes/markup the line should render with. +- `src/node/utils/ExportHelper.ts` adds export-only logic that does not belong + in the live editor. The clearest example is lists: in the editor each list + item is rendered as its own line-level block, but a clean export needs the + items collapsed into a single properly nested list. The helper performs that + reshaping for export only. +- `src/node/utils/ExportHtml.ts` and `src/node/utils/ExportTxt.ts` (and + `ExportEtherpad.ts` for the native `.etherpad` format) turn the attributed + text (`atext`) into the final HTML or plain text. +- `src/node/handler/ExportHandler.ts` receives the export request and dispatches + on the requested format — for instance, office formats such as `.docx` and + `.pdf` are routed through the native converters / LibreOffice rather than + through the plain HTML/text path. + +On the client side, edits are turned into changesets by the editor, attributes +are translated into CSS classes (so `heading2` becomes +`class="heading2"`), and `src/static/js/domline.ts` (`createDomLine`) renders +the final DOM for each line. + +## Accessing the database from server code / plugins + +Etherpad stores everything in a single key/value store backed by +[ueberDB](https://www.npmjs.com/package/ueberdb2), which abstracts over the +configured database (dirtyDB, MySQL/MariaDB, PostgreSQL, SQLite, MongoDB, Redis, +and others). Server-side code and plugins access it through +`src/node/db/DB.ts`. + +The package name of the core module is, for historical reasons, still +`ep_etherpad-lite`, so plugins import the database module like this: + +```javascript +const db = require('ep_etherpad-lite/node/db/DB'); +``` + +The exposed methods are asynchronous and return promises (use `await`), not the +old callback style. The available methods are `get`, `set`, `remove`, `getSub`, +`setSub`, `findKeys` and `findKeysPaged`: + +```javascript +// Read a record (returns undefined/null if it does not exist) +const value = await db.get('record_key'); + +// Create or replace a record +await db.set('record_key', data); + +// Read or write a nested value inside a record +const colorId = await db.getSub('author_key', ['colorId']); +await db.setSub('author_key', ['email'], 'tutti@frutti.org'); + +// Delete a record +await db.remove('record_key'); +``` + +For example, given the author record: + +```json +{"colorId":"#79d9d9","name":"tutti","timestamp":1364832712430,"padIDs":{"mypad":1}} +``` + +calling `await db.setSub('author_key', ['email'], 'tutti@frutti.org')` yields: + +```json +{"colorId":"#79d9d9","name":"tutti","timestamp":1364832712430,"padIDs":{"mypad":1},"email":"tutti@frutti.org"} +``` + +::: warning +Keys are namespaced (for example `pad:`, +`pad::revs:`, `globalAuthor:`). Prefer the high-level +managers (`Pad.ts`, `AuthorManager.ts`, etc.) over direct `DB` access where one +exists; reach for `DB` directly only for data your plugin owns, and use a key +prefix unique to your plugin to avoid collisions. +::: + +## Adding a toolbar icon + +Etherpad's toolbar icons come from the bundled `fontawesome-etherpad` icon +font in `src/static/font/`. Toolbar buttons reference an icon by a +`buttonicon-` CSS class (see `src/node/utils/toolbar.ts`, which builds +each button's class as `buttonicon buttonicon-`), and those classes are +defined in `src/static/css/pad/icons.css`. The font itself is generated with +[Fontello](http://fontello.com) from `src/static/font/config.json` (whose +`css_prefix_text` is `buttonicon-`). + +To add a new icon: + +1. Go to [Fontello](http://fontello.com) and import the existing + `src/static/font/config.json` (Fontello's "import" loads the current icon + set and pre-selects the icons it contains). +2. Select the additional icon(s) you want, then click **Download webfont**. +3. From the unzipped download, copy `config.json` and the + `font/fontawesome-etherpad.*` files over the ones in `src/static/font/`. +4. From the unzipped `css/fontawesome-etherpad.css`, copy the new + `.buttonicon-:before { content: '\\eXXX'; }` rules into + `src/static/css/pad/icons.css`, replacing the existing block of icon rules. + +The icon is then available wherever a `buttonicon-` class can be used, +including toolbar button definitions. diff --git a/doc/faq.md b/doc/faq.md new file mode 100644 index 000000000..8f2a81a58 --- /dev/null +++ b/doc/faq.md @@ -0,0 +1,204 @@ +# FAQ + +This page answers common operational questions about running and maintaining +an Etherpad instance. It collects material previously kept on the project wiki. + +## How do I install Etherpad? + +There are several supported ways to install Etherpad. Pick whichever suits your +environment. + +### Docker + +The official image is published to Docker Hub (`etherpad/etherpad`) and to the +GitHub Container Registry (`ghcr.io/ether/etherpad`) with identical tags. + +```bash +docker pull etherpad/etherpad +docker run -p 9001:9001 etherpad/etherpad +``` + +See the [Docker chapter](./docker.md) for building personalized images, enabling plugins, and +configuring office-format import/export. + +### One-line installer (macOS / Linux / WSL) + +```bash +curl -fsSL https://raw.githubusercontent.com/ether/etherpad/master/bin/installer.sh | sh +``` + +On Windows (PowerShell): + +```powershell +irm https://raw.githubusercontent.com/ether/etherpad/master/bin/installer.ps1 | iex +``` + +The installer clones Etherpad, installs dependencies and builds the frontend. +Set `ETHERPAD_RUN=1` to also start it once the install finishes. + +### apt repository (Debian / Ubuntu) + +Etherpad publishes a signed APT repository (`stable` channel). Import the signing +key, add the repository and install: + +```bash +curl -fsSL https://etherpad.org/key.asc \ + | sudo gpg --dearmor -o /usr/share/keyrings/etherpad.gpg + +echo "deb [signed-by=/usr/share/keyrings/etherpad.gpg] https://etherpad.org/apt stable main" \ + | sudo tee /etc/apt/sources.list.d/etherpad.list + +sudo apt-get update +sudo apt-get install etherpad +``` + +The repository provides `amd64` and `arm64` builds. Etherpad depends on +Node.js >= 24, so on older distributions you may also need NodeSource's apt +repository to satisfy that dependency. + +### From source + +Etherpad requires [Node.js](https://nodejs.org/) >= 24 and `pnpm`. + +```bash +git clone -b master https://github.com/ether/etherpad +cd etherpad +pnpm i +pnpm run build:etherpad +pnpm run prod +``` + +Then open `http://localhost:9001`. + +## What URL paths does Etherpad serve? + +| Path | Description | +|------|-------------| +| `/admin` | Administration dashboard (requires admin login). | +| `/admin/plugins` | Install, update and remove plugins from the web UI. | +| `/admin/settings` | Edit `settings.json` from the web UI. | +| `/p/:padID` | Open (or create) the pad with the given `padID`, e.g. `/p/foo`. | +| `/p/:padID/timeslider` | Open the pad's history/timeslider view. Append `#N` to jump to a specific revision, e.g. `/p/foo/timeslider#5`. | +| `/p/:padID/export/:type` | Export the pad in the given format, e.g. `/p/foo/export/html`. Append `?revs=N` to export a specific revision. | + +Supported export types: + +- **Native (no extra dependencies):** `txt`, `html`, `etherpad`, `docx`, `pdf`. +- **Via LibreOffice:** `odt`, `doc`, `rtf` — these require the `soffice` setting +to point at a LibreOffice executable. See the office-format notes in the +[Docker chapter](./docker.md). + +## How do I list all pads? + +The recommended way is the HTTP API method `listAllPads`, combined with `jq`: + +```bash +ETHERPAD_HOST='https://pad.example.com' +ETHERPAD_API_KEY='...' # the APIKEY.txt file in the Etherpad root +ETHERPAD_API_VERSION='...' # see https://pad.example.com/api + +curl -s "${ETHERPAD_HOST}/api/${ETHERPAD_API_VERSION}/listAllPads?apikey=${ETHERPAD_API_KEY}" \ + | jq -r '.data.padIDs[]' +``` + +For an interactive list with management actions, install the `ep_adminpads2` +plugin and browse to `/admin/pads`. + +As a last resort you can query the database directly. The exact query depends on +your configured backend; pad records use keys of the form `pad:` and +`pad::revs:`. For example, with SQLite: + +```bash +sqlite3 ./var/sqlite.db "select key from store where key like 'pad:%'" \ + | grep -Eo '^pad:[^:]+' \ + | sed -e 's/pad://' \ + | sort -u +``` + +Prefer the API or admin plugin over direct SQL: the schema is an implementation +detail and may change. + +## How do I delete or manage pads? + +Use the HTTP API `deletePad` method: + +```bash +curl -s "${ETHERPAD_HOST}/api/${ETHERPAD_API_VERSION}/deletePad?apikey=${ETHERPAD_API_KEY}&padID=foo" +``` + +The API also offers `copyPad`, `movePad`, `getRevisionsCount` and more — see the +[HTTP API chapter](./api/http_api.md). + +For a web UI, install the `ep_adminpads2` plugin and manage pads from +`/admin/pads`, where you can search, view and delete pads. + +The `deletePad` CLI tool is also available for operators: + +```bash +pnpm run --filter bin deletePad +``` + +## How do I back up and restore pads? + +### Back up the whole instance + +All pad data lives in the configured database. Back it up using the tool +appropriate to your backend (for example `mysqldump` for MySQL/MariaDB, +`pg_dump` for PostgreSQL, or a file copy of `var/*.db` for the file-based +`dirty`/`rusty` engines while Etherpad is stopped). A regular, automated dump of +the database is the canonical backup for a production instance. + +### Back up a single pad + +Export the pad over HTTP by appending `/export/` to its URL. Plain text, +HTML and the round-trippable `etherpad` format are most useful for backups: + +```bash +curl -o mypad.txt https://pad.example.com/p/foo/export/txt +curl -o mypad.html https://pad.example.com/p/foo/export/html +curl -o mypad.etherpad https://pad.example.com/p/foo/export/etherpad +``` + +The `etherpad` export preserves the pad's full history and can be re-imported, +making it the best choice for migrating or archiving an individual pad. + +### Restore or inspect an old revision + +Every state the pad has been in is stored in the database, so you can retrieve +an earlier revision without a separate backup: + +- Open `/p/:padID/timeslider` to browse the history and find the revision +number you want. +- Export a specific revision directly with the `?revs=N` query parameter, e.g. +`https://pad.example.com/p/foo/export/html?revs=1000`. + +### Repairing a damaged pad + +If a pad is corrupt, use the CLI repair tools (`checkPad`, `repairPad`, +`rebuildPad`) documented in the [CLI chapter](./cli.md). Always back up the database before +running write operations. + +## How do I limit history or prune revisions? + +Etherpad keeps the full revision history of every pad, so the database grows +over time. To reclaim space, use the pad-compaction CLI tools, which collapse or +trim revision history for one pad, every pad, or only stale pads: + +```bash +# Collapse all history of one pad +pnpm run --filter bin compactPad + +# Keep only the last 50 revisions of one pad +pnpm run --filter bin compactPad --keep 50 + +# Compact every pad on the instance +pnpm run --filter bin compactAllPads + +# Compact only pads not edited in the last 90 days, keeping the last 50 revisions +pnpm run --filter bin compactStalePads --older-than 90 --keep 50 +``` + +These tools require `cleanup.enabled = true` in `settings.json` and are +**destructive** — history is collapsed or trimmed. Export anything you can't +afford to lose via the pad's `/export/etherpad` route first. The same primitive +is available over the wire as the `compactPad` HTTP API method. See the [CLI chapter](./cli.md) for full details. From 7168f14f0a3f61c197d446450fd661bcfb953651 Mon Sep 17 00:00:00 2001 From: John McLear Date: Mon, 22 Jun 2026 09:53:27 +0100 Subject: [PATCH 02/74] chore(deps): drop three unmaintained dependencies (unorm, find-root, jsonminify) (#7992) * chore(deps): drop three unmaintained dependencies from core Remove dependencies whose upstreams are effectively abandoned, replacing each with a maintained alternative or native API. No behaviour change for users; reduces the production dependency surface. - unorm (last publish 2019): replace `UNorm.nfc(s)` in contentcollector with native `String.prototype.normalize('NFC')`, available in every supported Node and browser. Also drop it from Minify's LIBRARY_WHITELIST. - find-root (last publish 2017): inline a ~10-line equivalent in AbsolutePaths.findEtherpadRoot(), mirroring find-root's semantics (closest ancestor containing package.json, throw if none). - jsonminify (last publish 2021): swap settings parsing to jsonc-parser (already used by the admin workspace, actively maintained). The old `jsonminify(str).replace(',]', ']').replace(',}', '}')` had two bugs that jsonc-parser's allowTrailingComma fixes: String#replace only swapped the FIRST trailing comma of each kind, and the blind replace corrupted ',]' / ',}' byte sequences inside string values (e.g. URLs). Added a regression test in settings.ts covering multiple trailing commas and ',]'/',}' inside string values. Co-Authored-By: Claude Opus 4.8 (1M context) * fix: drop stale $unorm bundle entry from tar.json The unorm removal left `$unorm/lib/unorm.js` listed in the ace2_inner.js client bundle manifest. With unorm uninstalled, getTar() would point at a node_modules asset that no longer exists, producing 404s when loading that bundle. Nothing imports unorm anymore (contentcollector now uses native String.prototype.normalize), so the entry is dead and removed. Caught by Qodo review. Co-Authored-By: Claude Opus 4.8 (1M context) * fix: update container loadSettings helper to jsonc-parser tests/container/loadSettings.js is a standalone helper (separate from node/utils/Settings.ts) that parsed settings.json.docker with jsonminify directly. Removing jsonminify from dependencies broke the container test suite with MODULE_NOT_FOUND. Switch it to jsonc-parser to match Settings.ts. Verified loadSettings() parses settings.json.docker and applies the container ip/port overrides. Co-Authored-By: Claude Opus 4.8 (1M context) --------- Co-authored-by: Claude Opus 4.8 (1M context) --- pnpm-lock.yaml | 37 ++---------------- src/node/utils/AbsolutePaths.ts | 21 ++++++++++- src/node/utils/Minify.ts | 1 - src/node/utils/Settings.ts | 15 ++++++-- src/node/utils/tar.json | 1 - src/package.json | 5 +-- src/static/js/contentcollector.ts | 5 ++- src/tests/backend/specs/settings.ts | 58 +++++++++++++++++++++++++++++ src/tests/container/loadSettings.js | 7 ++-- 9 files changed, 101 insertions(+), 49 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fd0ff755e..4afcd67f5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -229,9 +229,6 @@ importers: express-session: specifier: ^1.19.0 version: 1.19.0 - find-root: - specifier: 1.1.0 - version: 1.1.0 formidable: specifier: ^3.5.4 version: 3.5.4 @@ -253,9 +250,9 @@ importers: jsdom: specifier: ^29.1.1 version: 29.1.1(@noble/hashes@1.8.0) - jsonminify: - specifier: 0.4.2 - version: 0.4.2 + jsonc-parser: + specifier: ^3.3.1 + version: 3.3.1 jsonwebtoken: specifier: ^9.0.3 version: 9.0.3 @@ -373,9 +370,6 @@ importers: undici: specifier: ^8.5.0 version: 8.5.0 - unorm: - specifier: 1.6.0 - version: 1.6.0 wtfnode: specifier: ^0.10.1 version: 0.10.1 @@ -416,9 +410,6 @@ importers: '@types/jsdom': specifier: ^28.0.3 version: 28.0.3 - '@types/jsonminify': - specifier: ^0.4.3 - version: 0.4.3 '@types/jsonwebtoken': specifier: ^9.0.10 version: 9.0.10 @@ -1847,9 +1838,6 @@ packages: '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/jsonminify@0.4.3': - resolution: {integrity: sha512-+oz7EbPz1Nwmn/sr3UztgXpRhdFpvFrjGi5ictEYxUri5ZvQMTcdTi36MTfD/gCb1A5xhJKdH8Hwz2uz5k6s9A==} - '@types/jsonwebtoken@9.0.10': resolution: {integrity: sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==} @@ -3326,9 +3314,6 @@ packages: resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==} engines: {node: '>= 18.0.0'} - find-root@1.1.0: - resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} - find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} @@ -3904,10 +3889,6 @@ packages: jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - jsonminify@0.4.2: - resolution: {integrity: sha512-mEtP5ECD0293D+s45JhDutqF5mFCkWY8ClrPFxjSFR2KUoantofky7noSzyKnAnD9Gd8pXHZSUd5bgzLDUBbfA==} - engines: {node: '>=0.8.0', npm: '>=1.1.0'} - jsonschema-draft4@1.0.0: resolution: {integrity: sha512-sBV3UnQPRiyCTD6uzY/Oao2Yohv6KKgQq7zjPwjFHeR6scg/QSXnzDxdugsGaLQDmFUrUlTbMYdEE+72PizhGA==} @@ -5509,10 +5490,6 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - unorm@1.6.0: - resolution: {integrity: sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==} - engines: {node: '>= 0.4.0'} - unpipe@1.0.0: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} @@ -7120,8 +7097,6 @@ snapshots: '@types/json5@0.0.29': {} - '@types/jsonminify@0.4.3': {} - '@types/jsonwebtoken@9.0.10': dependencies: '@types/ms': 2.1.0 @@ -8774,8 +8749,6 @@ snapshots: transitivePeerDependencies: - supports-color - find-root@1.1.0: {} - find-up@5.0.0: dependencies: locate-path: 6.0.0 @@ -9430,8 +9403,6 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 - jsonminify@0.4.2: {} - jsonschema-draft4@1.0.0: {} jsonschema@1.2.4: {} @@ -11181,8 +11152,6 @@ snapshots: universalify@2.0.1: {} - unorm@1.6.0: {} - unpipe@1.0.0: {} update-browserslist-db@1.2.3(browserslist@4.28.2): diff --git a/src/node/utils/AbsolutePaths.ts b/src/node/utils/AbsolutePaths.ts index 6423ae4d7..f11e53d80 100644 --- a/src/node/utils/AbsolutePaths.ts +++ b/src/node/utils/AbsolutePaths.ts @@ -19,6 +19,7 @@ * limitations under the License. */ import log4js from 'log4js'; +import fs from 'fs'; import path from 'path'; import _ from 'underscore'; @@ -30,6 +31,25 @@ const absPathLogger = log4js.getLogger('AbsolutePaths'); */ let etherpadRoot: string|null = null; +/** + * Walks up the directory tree from `start`, returning the closest ancestor + * directory (including `start` itself) that contains a package.json. Replaces + * the unmaintained `find-root` package, mirroring its semantics: it throws if + * no package.json is found before reaching the filesystem root. + * + * @param {string} start - The directory to start searching from. + * @return {string} The closest ancestor directory containing a package.json. + */ +const findRoot = (start: string): string => { + let dir = start; + for (;;) { + if (fs.existsSync(path.join(dir, 'package.json'))) return dir; + const parent = path.dirname(dir); + if (parent === dir) throw new Error('package.json not found in path'); + dir = parent; + } +}; + /** * If stringArray's last elements are exactly equal to lastDesiredElements, * returns a copy in which those last elements are popped, or false otherwise. @@ -79,7 +99,6 @@ export const findEtherpadRoot = () => { return etherpadRoot; } - const findRoot = require('find-root'); const foundRoot = findRoot(__dirname); const splitFoundRoot = foundRoot.split(path.sep); diff --git a/src/node/utils/Minify.ts b/src/node/utils/Minify.ts index 8747ff04b..9c73e737b 100644 --- a/src/node/utils/Minify.ts +++ b/src/node/utils/Minify.ts @@ -43,7 +43,6 @@ const LIBRARY_WHITELIST = [ 'split-grid', 'tinycon', 'underscore', - 'unorm', ]; // What follows is a terrible hack to avoid loop-back within the server. diff --git a/src/node/utils/Settings.ts b/src/node/utils/Settings.ts index 1878e744f..9d8aa3f1c 100644 --- a/src/node/utils/Settings.ts +++ b/src/node/utils/Settings.ts @@ -35,7 +35,7 @@ import fs from 'node:fs'; import os from 'node:os'; import path from 'node:path'; import {argv} from './Cli' -import jsonminify from 'jsonminify'; +import {parse as parseJsonc, printParseErrorCode, ParseError} from 'jsonc-parser'; import log4js from 'log4js'; import {createHash} from 'node:crypto'; import randomString from './randomstring'; @@ -116,9 +116,18 @@ const parseSettings = (settingsFilename: string, isSettings: boolean) => { } try { - settingsStr = jsonminify(settingsStr).replace(',]', ']').replace(',}', '}'); + // jsonc-parser tolerates comments and trailing commas, so settings files + // can stay annotated. Unlike the old jsonminify + naive ',]'/',}' string + // replace, it fixes *every* trailing comma (not just the first of each + // kind) and never mangles those sequences when they appear inside strings. + const errors: ParseError[] = []; + const settings = parseJsonc(settingsStr, errors, {allowTrailingComma: true}); - const settings = JSON.parse(settingsStr); + if (errors.length > 0) { + const {error, offset} = errors[0]; + throw new Error(`${printParseErrorCode(error)} at offset ${offset}`); + } + if (settings === undefined) throw new Error('file is empty or not valid JSON'); logger.info(`${settingsType} loaded from: ${settingsFilename}`); diff --git a/src/node/utils/tar.json b/src/node/utils/tar.json index 08ae93f6b..33949b526 100644 --- a/src/node/utils/tar.json +++ b/src/node/utils/tar.json @@ -67,7 +67,6 @@ , "skiplist.js" , "colorutils.js" , "undomodule.js" - , "$unorm/lib/unorm.js" , "contentcollector.js" , "changesettracker.js" , "linestylefilter.js" diff --git a/src/package.json b/src/package.json index 072b86636..0d2127a0b 100644 --- a/src/package.json +++ b/src/package.json @@ -42,7 +42,6 @@ "express": "^5.2.1", "express-rate-limit": "^8.5.1", "express-session": "^1.19.0", - "find-root": "1.1.0", "formidable": "^3.5.4", "html-to-docx": "^1.8.0", "htmlparser2": "^12.0.0", @@ -50,7 +49,7 @@ "jose": "^6.2.3", "js-cookie": "^3.0.8", "jsdom": "^29.1.1", - "jsonminify": "0.4.2", + "jsonc-parser": "^3.3.1", "jsonwebtoken": "^9.0.3", "jwt-decode": "^4.0.0", "languages4translatewiki": "0.1.3", @@ -90,7 +89,6 @@ "ueberdb2": "6.1.13", "underscore": "1.13.8", "undici": "^8.5.0", - "unorm": "1.6.0", "wtfnode": "^0.10.1" }, "bin": { @@ -110,7 +108,6 @@ "@types/jquery": "^4.0.1", "@types/js-cookie": "^3.0.6", "@types/jsdom": "^28.0.3", - "@types/jsonminify": "^0.4.3", "@types/jsonwebtoken": "^9.0.10", "@types/mime-types": "^3.0.1", "@types/mocha": "^10.0.9", diff --git a/src/static/js/contentcollector.ts b/src/static/js/contentcollector.ts index 5538ecd5d..a0bb5878c 100644 --- a/src/static/js/contentcollector.ts +++ b/src/static/js/contentcollector.ts @@ -31,12 +31,13 @@ import Op from "./Op"; const _MAX_LIST_LEVEL = 16; import AttributeMap from './AttributeMap'; -import UNorm from 'unorm'; import {subattribution} from './Changeset'; import {SmartOpAssembler} from "./SmartOpAssembler"; const hooks = require('./pluginfw/hooks'); -const sanitizeUnicode = (s) => UNorm.nfc(s); +// NFC-normalize via the native String API (replaces the unmaintained `unorm` +// polyfill; String.prototype.normalize is available in every supported runtime). +const sanitizeUnicode = (s: string) => s.normalize('NFC'); const tagName = (n) => n.tagName && n.tagName.toLowerCase(); // supportedElems are Supported natively within Etherpad and don't require a plugin const supportedElems = new Set([ diff --git a/src/tests/backend/specs/settings.ts b/src/tests/backend/specs/settings.ts index 52d5a2dc1..4409d0910 100644 --- a/src/tests/backend/specs/settings.ts +++ b/src/tests/backend/specs/settings.ts @@ -278,4 +278,62 @@ describe(__filename, function () { assert.strictEqual(over!.privacy.pluginCatalog, false); }); }); + + // Regression test for the jsonminify -> jsonc-parser migration. + // The old parser was `jsonminify(str).replace(',]', ']').replace(',}', '}')`, + // which had two correctness bugs that jsonc-parser (allowTrailingComma) fixes: + // 1. String#replace with a string needle only swaps the FIRST match, so a + // file with more than one trailing comma of the same kind stayed invalid. + // 2. The blind ',]' / ',}' replace also corrupted those byte sequences when + // they appeared *inside* a string value (e.g. a URL or literal text). + describe('JSONC settings parsing (jsonminify -> jsonc-parser)', function () { + const fs = require('fs'); + const os = require('os'); + let tmpFile: string; + + const writeTmp = (contents: string) => { + tmpFile = path.join(os.tmpdir(), `ep-settings-jsonc-${process.pid}.json`); + fs.writeFileSync(tmpFile, contents); + return tmpFile; + }; + + afterEach(function () { + if (tmpFile) { try { fs.unlinkSync(tmpFile); } catch (e) { /* ignore */ } } + }); + + it('strips comments and tolerates multiple trailing commas', function () { + const file = writeTmp(`// leading line comment +/* block comment */ +{ + "list": [ + "a", + "b", + ], + "nested": [ + [1, 2,], + [3, 4,], + ], + "obj": { + "x": 1, + "y": 2, + }, +}`); + const s: any = exportedForTestingOnly.parseSettings(file, true); + assert.deepEqual(s.list, ['a', 'b']); + assert.deepEqual(s.nested, [[1, 2], [3, 4]]); + assert.deepEqual(s.obj, {x: 1, y: 2}); + }); + + it('does not corrupt ",]" / ",}" sequences inside string values', function () { + const file = writeTmp(`{ + "url": "http://example.com/a,]b,}c", + "text": "trailing-comma-like ,] and ,} must survive" +}`); + const s: any = exportedForTestingOnly.parseSettings(file, true); + // The old replace() would have stripped the comma and produced + // "http://example.com/a]b}c" here. + assert.strictEqual(s.url, 'http://example.com/a,]b,}c'); + assert.strictEqual(s.text, 'trailing-comma-like ,] and ,} must survive'); + }); + }); }); diff --git a/src/tests/container/loadSettings.js b/src/tests/container/loadSettings.js index b59ff0165..7b3174503 100644 --- a/src/tests/container/loadSettings.js +++ b/src/tests/container/loadSettings.js @@ -13,15 +13,16 @@ */ const fs = require('fs'); -const jsonminify = require('jsonminify'); +const {parse: parseJsonc} = require('jsonc-parser'); function loadSettings() { let settingsStr = fs.readFileSync(`${__dirname}/../../../settings.json.docker`).toString(); // try to parse the settings try { if (settingsStr) { - settingsStr = jsonminify(settingsStr).replace(',]', ']').replace(',}', '}'); - const settings = JSON.parse(settingsStr); + // jsonc-parser tolerates the comments and trailing commas in the docker + // settings file, matching node/utils/Settings.ts. + const settings = parseJsonc(settingsStr, [], {allowTrailingComma: true}); // custom settings for running in a container settings.ip = 'localhost'; From 01500ca70c2adad5c31a04c08eb15ebf2a2201d0 Mon Sep 17 00:00:00 2001 From: John McLear Date: Mon, 22 Jun 2026 09:56:40 +0100 Subject: [PATCH 03/74] chore(deps): vendor the unmaintained `security` escaper into core (#7993) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): vendor the unmaintained `security` escaper into core The `security` npm package (escapeHTML / escapeHTMLAttribute and the JS/CSS encoders) has had no release since 2012, yet it sits directly in Etherpad's client-side XSS-defense path (pad_utils, domline) and the server-side HTML export. Rather than keep a 14-year-old, single-maintainer dependency guarding output encoding, vendor its implementation into core. - static/js/security.ts now contains the escaping logic directly (reproduced verbatim from security@1.0.0, MIT, Chad Weider — byte-identical output) and no longer does `require('security')`. The full public API is preserved, so plugins that `require('ep_etherpad-lite/static/js/security')` keep working unchanged. - pad_utils.ts requires the local './security' module instead of the bare 'security' specifier (domline.ts and ExportHtml.ts already did). - Drop `security` from src/package.json dependencies and from Minify's LIBRARY_WHITELIST (no bare specifier is served to the browser anymore). Added tests/backend/specs/security.ts locking the byte-for-byte escaping output so the vendored copy can never silently drift. Co-Authored-By: Claude Opus 4.8 (1M context) * fix: use ESM named exports so vitest can resolve the security module CI "Run the new vitest tests" failed with `Cannot find module './security'` from pad_utils.ts. vitest/vite's CJS require() shim doesn't add a `.ts` extension when resolving a relative specifier, so `require('./security')` couldn't locate security.ts. (The old bare `require('security')` resolved to a real .js in node_modules, which is why this only surfaced after vendoring.) - security.ts now uses ESM `export const` for the seven helpers instead of a `module.exports = {...}` block. - pad_utils.ts imports it as `import * as Security from './security'`, which goes through vite's resolver (knows .ts) and is also properly typed. CJS consumers (domline.ts, ExportHtml.ts, the backend spec) keep working via tsx/esbuild ESM->CJS interop. Verified: tsc clean, full vitest suite 721 passing, and the mocha security/export/import specs 27 passing. Co-Authored-By: Claude Opus 4.8 (1M context) * ci: force fresh run (prior run used a stale merge ref after reopen) Co-Authored-By: Claude Opus 4.8 (1M context) * fix: remove ReDoS in vendored JSON-string-literal regex CodeQL flagged a high-severity exponential-backtracking alert on the JSON-string-literal regex vendored from the `security` package: `/"(?:\\.|[^"])*"/`. The `[^"]` class also matches a backslash, so it overlaps with the `\\.` alternative and backtracks exponentially on adversarial input like `"\!\!\!...` (no closing quote). The original lived inside node_modules so it was never scanned; vendoring it surfaced the alert. Fix to the canonical linear form `/"(?:[^"\\]|\\.)*"/`, where the backslash is excluded from the character class so the two alternatives are mutually exclusive. It matches exactly the same well-formed JSON string literals (and encodeJavaScriptData only ever runs it over JSON.stringify output), so behaviour is unchanged for valid input. Added tests: encodeJavaScriptData output + a ReDoS guard that runs the regex over 50k adversarial chars and asserts it returns in well under a second. Co-Authored-By: Claude Opus 4.8 (1M context) --------- Co-authored-by: Claude Opus 4.8 (1M context) --- pnpm-lock.yaml | 18 ++----- src/node/utils/Minify.ts | 1 - src/package.json | 1 - src/static/js/pad_utils.ts | 2 +- src/static/js/security.ts | 77 +++++++++++++++++++++++----- src/tests/backend/specs/security.ts | 78 +++++++++++++++++++++++++++++ 6 files changed, 149 insertions(+), 28 deletions(-) create mode 100644 src/tests/backend/specs/security.ts diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4afcd67f5..6d64459cb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -337,9 +337,6 @@ importers: rusty-store-kv: specifier: ^1.3.1 version: 1.3.1 - security: - specifier: 1.0.0 - version: 1.0.0 semver: specifier: ^7.8.4 version: 7.8.4 @@ -4972,9 +4969,6 @@ packages: secure-json-parse@4.1.0: resolution: {integrity: sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA==} - security@1.0.0: - resolution: {integrity: sha512-5qfoAgfRWS1sUn+fUJtdbbqM1BD/LoQGa+smPTDjf9OqHyuJqi6ewtbYL0+V1S1RaU6OCOCMWGZocIfz2YK4uw==} - semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -8394,7 +8388,7 @@ snapshots: '@rushstack/eslint-patch': 1.16.1 '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint@10.5.0)(typescript@6.0.3) '@typescript-eslint/parser': 7.18.0(eslint@10.5.0)(typescript@6.0.3) - eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint@10.5.0))(eslint@10.5.0) + eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0)(eslint@10.5.0) eslint-plugin-cypress: 2.15.2(eslint@10.5.0) eslint-plugin-eslint-comments: 3.2.0(eslint@10.5.0) eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1)(eslint@10.5.0) @@ -8418,7 +8412,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint@10.5.0))(eslint@10.5.0): + eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0)(eslint@10.5.0): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3(supports-color@8.1.1) @@ -8433,14 +8427,14 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint@10.5.0))(eslint@10.5.0))(eslint@10.5.0): + eslint-module-utils@2.12.1(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1)(eslint@10.5.0): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 7.18.0(eslint@10.5.0)(typescript@6.0.3) eslint: 10.5.0 eslint-import-resolver-node: 0.3.10 - eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint@10.5.0))(eslint@10.5.0) + eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0)(eslint@10.5.0) transitivePeerDependencies: - supports-color @@ -8473,7 +8467,7 @@ snapshots: doctrine: 2.1.0 eslint: 10.5.0 eslint-import-resolver-node: 0.3.10 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint@10.5.0))(eslint@10.5.0))(eslint@10.5.0) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1)(eslint@10.5.0) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -10576,8 +10570,6 @@ snapshots: secure-json-parse@4.1.0: {} - security@1.0.0: {} - semver@6.3.1: {} semver@7.8.4: {} diff --git a/src/node/utils/Minify.ts b/src/node/utils/Minify.ts index 9c73e737b..68e2146e9 100644 --- a/src/node/utils/Minify.ts +++ b/src/node/utils/Minify.ts @@ -39,7 +39,6 @@ const ROOT_DIR = path.join(settings.root, 'src/static/'); const LIBRARY_WHITELIST = [ 'async', 'js-cookie', - 'security', 'split-grid', 'tinycon', 'underscore', diff --git a/src/package.json b/src/package.json index 0d2127a0b..db389f392 100644 --- a/src/package.json +++ b/src/package.json @@ -78,7 +78,6 @@ "resolve": "1.22.12", "rethinkdb": "^2.4.2", "rusty-store-kv": "^1.3.1", - "security": "1.0.0", "semver": "^7.8.4", "socket.io": "^4.8.3", "socket.io-client": "^4.8.3", diff --git a/src/static/js/pad_utils.ts b/src/static/js/pad_utils.ts index 997dd2be6..b6f17e84c 100644 --- a/src/static/js/pad_utils.ts +++ b/src/static/js/pad_utils.ts @@ -24,7 +24,7 @@ import {binarySearch} from "./ace2_common"; * limitations under the License. */ -const Security = require('security'); +import * as Security from './security'; import jsCookie, {CookiesStatic} from 'js-cookie' /** diff --git a/src/static/js/security.ts b/src/static/js/security.ts index d5f9b7266..cae83bfdb 100644 --- a/src/static/js/security.ts +++ b/src/static/js/security.ts @@ -1,20 +1,73 @@ -// @ts-nocheck 'use strict'; /** - * Copyright 2009 Google Inc. + * OWASP-style output-escaping helpers. * - * 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 + * Vendored from the `security` npm package (v1.0.0), which has been + * unmaintained since 2012. The implementation below is reproduced verbatim + * (behaviour is byte-identical) so the dependency can be dropped from core. * - * http://www.apache.org/licenses/LICENSE-2.0 + * Original work Copyright (c) 2011 Chad Weider, MIT licensed: * - * 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. + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. */ -module.exports = require('security'); +const HTML_ENTITY_MAP: {[c: string]: string} = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''', + '/': '/', +}; + +// OWASP Guidelines: &, <, >, ", ' plus forward slash. +const HTML_CHARACTERS_EXPRESSION = /[&"'<>/]/gm; +export const escapeHTML = (text: string) => text && text.replace(HTML_CHARACTERS_EXPRESSION, + (c: string) => HTML_ENTITY_MAP[c] || c); + +// OWASP Guidelines: escape all non alphanumeric characters in ASCII space. +const HTML_ATTRIBUTE_CHARACTERS_EXPRESSION = /[\x00-\x2F\x3A-\x40\x5B-\x60\x7B-\xFF]/gm; +export const escapeHTMLAttribute = (text: string) => text && text.replace(HTML_ATTRIBUTE_CHARACTERS_EXPRESSION, + (c: string) => HTML_ENTITY_MAP[c] || `&#x${(`00${c.charCodeAt(0).toString(16)}`).slice(-2)};`); + +// OWASP Guidelines: escape all non alphanumeric characters in ASCII space. +// Also include line breaks (for literal). +const JAVASCRIPT_CHARACTERS_EXPRESSION = /[\x00-\x2F\x3A-\x40\x5B-\x60\x7B-\xFF\u2028\u2029]/gm; +export const encodeJavaScriptIdentifier = (text: string) => text && text.replace(JAVASCRIPT_CHARACTERS_EXPRESSION, + (c: string) => `\\u${(`0000${c.charCodeAt(0).toString(16)}`).slice(-4)}`); + +export const encodeJavaScriptString = (text: string) => text && `"${encodeJavaScriptIdentifier(text)}"`; + +// This is not great, but it is useful. +// NB: the original `security` package used /"(?:\\.|[^"])*"/, where `[^"]` also +// matches a backslash and so overlaps with `\\.`, causing exponential +// backtracking (ReDoS) on adversarial input. We exclude the backslash from the +// character class so the two alternatives are mutually exclusive — this matches +// exactly the same well-formed JSON string literals but in linear time. +const JSON_STRING_LITERAL_EXPRESSION = /"(?:[^"\\]|\\.)*"/gm; +export const encodeJavaScriptData = (object: any) => JSON.stringify(object).replace(JSON_STRING_LITERAL_EXPRESSION, + (string: string) => encodeJavaScriptString(JSON.parse(string))); + +// OWASP Guidelines: escape all non alphanumeric characters in ASCII space. +const CSS_CHARACTERS_EXPRESSION = /[\x00-\x2F\x3A-\x40\x5B-\x60\x7B-\xFF]/gm; +export const encodeCSSIdentifier = (text: string) => text && text.replace(CSS_CHARACTERS_EXPRESSION, + (c: string) => `\\${(`000000${c.charCodeAt(0).toString(16)}`).slice(-6)}`); + +export const encodeCSSString = (text: string) => text && `"${encodeCSSIdentifier(text)}"`; diff --git a/src/tests/backend/specs/security.ts b/src/tests/backend/specs/security.ts new file mode 100644 index 000000000..47663e223 --- /dev/null +++ b/src/tests/backend/specs/security.ts @@ -0,0 +1,78 @@ +'use strict'; + +const assert = require('assert').strict; +// The escaping helpers are a client module, but they are pure (no browser +// globals) so they can be exercised directly from a backend spec. This locks +// the byte-for-byte output of the helpers vendored from the (now removed) +// `security` npm package, so the vendoring can never silently drift. +const Security = require('../../../static/js/security'); + +describe(__filename, function () { + describe('public API', function () { + it('exposes the full set of helpers plugins may rely on', function () { + for (const fn of [ + 'escapeHTML', 'escapeHTMLAttribute', + 'encodeJavaScriptIdentifier', 'encodeJavaScriptString', 'encodeJavaScriptData', + 'encodeCSSIdentifier', 'encodeCSSString', + ]) { + assert.equal(typeof Security[fn], 'function', `Security.${fn} must be a function`); + } + }); + }); + + describe('escapeHTML', function () { + it('escapes &, <, >, ", \' and / per OWASP', function () { + assert.equal(Security.escapeHTML('/&\''), + '<a href="x">/&''); + }); + it('neutralises a script tag', function () { + assert.equal(Security.escapeHTML(''), + '<script>alert(1)</script>'); + }); + it('leaves plain alphanumerics untouched', function () { + assert.equal(Security.escapeHTML('Hello World 123'), 'Hello World 123'); + }); + it('passes falsy input straight through', function () { + assert.equal(Security.escapeHTML(''), ''); + }); + }); + + describe('escapeHTMLAttribute', function () { + it('hex-encodes non-alphanumeric ASCII not covered by named entities', function () { + assert.equal(Security.escapeHTMLAttribute('a b'), 'a b'); + // hex is lowercased, matching the original `security` package output. + assert.equal(Security.escapeHTMLAttribute('javascript:alert(1)'), + 'javascript:alert(1)'); + }); + it('prefers named entities for &, <, >, ", \', /', function () { + assert.equal(Security.escapeHTMLAttribute('<>&"\'/'), + '<>&"'/'); + }); + it('leaves alphanumerics untouched', function () { + assert.equal(Security.escapeHTMLAttribute('abcXYZ0189'), 'abcXYZ0189'); + }); + }); + + describe('javascript / css encoders', function () { + it('encodeJavaScriptString quotes and backslash-u-escapes specials', function () { + assert.equal(Security.encodeJavaScriptString('a', c: 'x"y', d: 'a\\b'}), + '{"a":"\\u003cb\\u003e","c":"x\\u0022y","d":"a\\u005cb"}'); + }); + it('encodeJavaScriptData regex is linear (ReDoS guard)', function () { + // The JSON-string-literal regex used to be /"(?:\\.|[^"])*"/, which + // backtracks exponentially on an unterminated string of `\!` repeats. + // Run the regex directly on adversarial input and assert it returns fast. + const evil = `"${'\\!'.repeat(50000)}`; // no closing quote + const start = Date.now(); + /"(?:[^"\\]|\\.)*"/gm.test(evil); + assert.ok(Date.now() - start < 1000, 'regex must not backtrack exponentially'); + }); + }); +}); From c8b544802a9b0423adbe6237886ea956b3f70fa6 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 22 Jun 2026 14:03:35 +0200 Subject: [PATCH 04/74] Localisation updates from https://translatewiki.net. --- src/locales/cs.json | 105 ++++++++++++++++++ src/locales/sk.json | 263 +++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 365 insertions(+), 3 deletions(-) diff --git a/src/locales/cs.json b/src/locales/cs.json index e5f73c784..7b73fc01f 100644 --- a/src/locales/cs.json +++ b/src/locales/cs.json @@ -16,13 +16,80 @@ ] }, "admin.page-title": "Ovládací panel Správce - Etherpad", + "admin.loading": "Načítám…", + "admin.loading_description": "Počkejte prosím, než se stránka načte.", + "admin.toggle_sidebar": "Přepnout postranní panel", + "admin.shout": "Komunikace", + "admin_shout.online_one": "Aktuálně je online {{count}} uživatelů", + "admin_shout.online_other": "Aktuálně je online {{count}} uživatelů", + "admin_shout.sticky_toggle": "Změnit připevněnou zprávu", + "admin_login.title": "Etherpad", + "admin_login.username": "Uživatelské jméno", + "admin_login.password": "Heslo", + "admin_login.submit": "Přihlásit se", + "admin_login.failed": "Přihlášení se nezdařilo", + "admin_pads.all_pads": "Všechny Pady", + "admin_pads.bulk.cleanup_history": "Vyčistit historii", + "admin_pads.bulk.clear_selection": "Vymazat výběr", + "admin_pads.bulk.delete": "Smazat", + "admin_pads.cancel": "Zrušit", + "admin_pads.col.pad": "Pad", + "admin_pads.col.revisions": "Revize", + "admin_pads.col.users": "Uživatelé", + "admin_pads.confirm_button": "OK", + "admin_pads.create_pad_dialog_description": "Vyberte název pro nový Pad.", + "admin_pads.delete_pad_dialog_description": "Potvrdit nebo zrušit smazání Padu.", + "admin_pads.delete_pad_dialog_title": "Smazat pad", + "admin_pads.empty_never_edited": "prázdné · nikdy neupravené", + "admin_pads.error_dialog_description": "Došlo k chybě.", + "admin_pads.error_prefix": "Chyba", + "admin_pads.filter.active": "Aktivní", + "admin_pads.filter.all": "Vše", + "admin_pads.filter.empty": "Prázdné", + "admin_pads.filter.recent": "Tento týden", + "admin_pads.filter.stale": "Zastaralé (>1 rok)", + "admin_pads.open": "Otevřít", + "admin_pads.pagination.next": "Další", + "admin_pads.pagination.previous": "Předchozí", + "admin_pads.refresh": "Obnovit", + "admin_pads.relative.days": "před {{count}} dny", + "admin_pads.relative.hours": "před {{count}}h", + "admin_pads.relative.just_now": "právě teď", + "admin_pads.relative.minutes": "před {{count}} minutami", + "admin_pads.relative.months": "před {{count}} měsíci", + "admin_pads.relative.weeks": "před {{count}} týdny", + "admin_pads.relative.years": "před {{count}} lety", + "admin_pads.revisions_count": "{{count}} revizí", + "admin_pads.selected_count": "Vybráno {{count}}", + "admin_pads.show": "Zobrazit", + "admin_pads.sort.name": "Jméno (A–Z)", + "admin_pads.sort.revision_number": "Revize", + "admin_pads.sort.user_count": "Uživatelé", + "admin_pads.stats.across_pads": "napříč všemi pady", + "admin_pads.stats.active_users": "Aktivní uživatelé", + "admin_pads.stats.empty_pads": "Prázdné pady", + "admin_pads.stats.last_activity": "Poslední aktivita:", + "admin_pads.stats.no_active_users": "Žádní aktivní uživatelé", + "admin_pads.stats.revisions_zero": "0 revizí", + "admin_pads.stats.total": "Celkový počet padů", + "admin_pads.stats.users_active": "{{count}} aktuálně aktivních", + "admin_pads.subtitle": "Přehled všech padů na této instanci Etherpadu. Vyhledat, vyčistit, otevřít.", "admin_plugins": "Správce zásuvných moodulů", "admin_plugins.available": "Dostupné zásuvné moduly", "admin_plugins.available_not-found": "Nejsou žádné zásuvné moduly", "admin_plugins.available_fetching": "Načítání...", "admin_plugins.available_install.value": "Instalovat", "admin_plugins.available_search.placeholder": "Vyhledat zásuvné moduly k instalaci", + "admin_plugins.check_updates": "Zkontrolovat aktualizace", + "admin_plugins.core_count": "{{count}} jádro", + "admin_plugins.catalog_disabled": "Katalog pluginů je zakázán vaším operátorem (privacy.pluginCatalog=false). Chcete-li plugin nainstalovat, spusťte příkaz `pnpm run plugins i ep_ ` ze serveru.", + "admin_plugins.crumbs": "Pluginy", "admin_plugins.description": "Popis", + "admin_plugins.disables.label": "Vypnuto:", + "admin_plugins.disables.warning_title": "Tento plugin záměrně odstraňuje uvedené funkce Etherpadu.", + "admin_plugins.error_retrieving": "Chyba při načítání pluginů", + "admin_plugins.install_error": "Instalace pluginu {{plugin}} se nezdařila: {{error}}", + "admin_plugins.install_error_requires_newer_etherpad": "Nelze nainstalovat {{plugin}}: vyžaduje novější verzi Etherpadu. Prosím, aktualizujte Etherpad a zkuste to znovu.", "admin_plugins.installed": "Nainstalované zásuvné moduly", "admin_plugins.installed_fetching": "Načítání instalovaných zásuvných modulů...", "admin_plugins.installed_nothing": "Dosud jste nenainstalovali žádné zásuvné moduly.", @@ -30,23 +97,61 @@ "admin_plugins.last-update": "Poslední aktualizace", "admin_plugins.name": "Název", "admin_plugins.page-title": "Správce zásuvných modulů - Etherpad", + "admin_plugins.reload_catalog": "Obnovit katalog", + "admin_plugins.search_npm": "Hledat na npm", + "admin_plugins.sort_ascending": "Seřadit vzestupně", + "admin_plugins.sort_descending": "Seřadit sestupně", + "admin_plugins.sort.last_updated": "Naposledy aktualizováno", + "admin_plugins.sort.name": "Jméno (A–Z)", + "admin_plugins.sort.version": "Verze", + "admin_plugins.source": "Zdroj pluginu", + "admin_plugins.subtitle": "Instalace, aktualizace a odebrání pluginů Etherpad. Změny vyžadují restart serveru.", + "admin_plugins.tag_core": "Jádro", + "admin_plugins.update_tooltip": "Aktualizovat", + "admin_plugins.updates_available": "Dostupné aktualizace", + "admin_plugins.update_now": "Aktualizovat", "admin_plugins.version": "Verze", "admin_plugins_info": "Informace o řešení problému", + "admin_plugins_info.bindings_label": "{{count}} vazeb", + "admin_plugins_info.copy_diagnostics": "Diagnostika kopírování", + "admin_plugins_info.copy_value": "Kopírovat {{label}}", + "admin_plugins_info.git_sha": "SHA v Gitu", "admin_plugins_info.hooks": "Instalované hooks", "admin_plugins_info.hooks_client": "hooks na straně klienta", "admin_plugins_info.hooks_server": "hooks na straně serveru", "admin_plugins_info.parts": "Nainstalované součásti", "admin_plugins_info.plugins": "Nainstalované zásuvné moduly", "admin_plugins_info.page-title": "Informace o zásuvných modulech - Etherpad", + "admin_plugins_info.tab_client": "Klient", + "admin_plugins_info.tab_server": "Server", + "admin_plugins_info.up_to_date": "Aktuální", + "admin_plugins_info.update_available": "Aktualizace k dispozici: {{version}}", "admin_plugins_info.version": "Verze Etherpad", "admin_plugins_info.version_latest": "Poslední dostupná verze", "admin_plugins_info.version_number": "Číslo verze", "admin_settings": "Nastavení", + "admin_settings.create_pad": "Vytvořit pad", "admin_settings.current": "Aktuální konfugurace", "admin_settings.current_example-devel": "Příklad ukázkové vývojové šablony", "admin_settings.current_example-prod": "Příklad šablony nastavení výroby", "admin_settings.current_restart.value": "Restartovat Etherpad", "admin_settings.current_save.value": "Uložit nastavení", + "admin_settings.invalid_json": "Neplatný JSON", + "admin_settings.current_test.value": "Ověření JSON", + "admin_settings.current_prettify.value": "Zkrášlit JSON", + "admin_settings.toast.saved": "Nastavení bylo úspěšně uloženo.", + "admin_settings.toast.save_failed": "Uložení se nezdařilo: soubor settings.json se nepodařilo zapsat.", + "admin_settings.toast.json_invalid": "Syntaktická chyba: zkontrolujte čárky, závorky a uvozovky.", + "admin_settings.toast.disconnected": "Nelze uložit: nejsem připojen k serveru.", + "admin_settings.toast.validation_ok": "JSON je platný.", + "admin_settings.toast.validation_failed": "JSON je neplatný: opravte syntaktické chyby.", + "admin_settings.toast.prettify_failed": "Nelze upravovat: nejprve opravte syntaktické chyby.", + "admin_settings.prettify_confirm": "Zkrášlováním odstraníte všechny komentáře. Pokračovat?", + "admin_settings.mode.form": "Formulář", + "admin_settings.mode.effective": "Efektivní", + "admin_settings.mode.effective_tooltip": "Zobrazení hodnot, které Etherpad aktuálně používá, pouze pro čtení, po substituci proměnných prostředí. Tajné kódy jsou redigovány.", + "admin_settings.mode.aria_label": "Režim editoru", + "admin_settings.envvar_banner.title": "Tento soubor je šablona, nikoli živá konfigurace.", "admin_settings.page-title": "Nastavení - Etherpad", "index.newPad": "Založ nový Pad", "index.settings": "Nastavení", diff --git a/src/locales/sk.json b/src/locales/sk.json index 6f608cc56..d408a7360 100644 --- a/src/locales/sk.json +++ b/src/locales/sk.json @@ -7,17 +7,85 @@ "Mark", "Rudko", "Teslaton", + "Wizzard", "Yardom78" ] }, "admin.page-title": "Ovládací panel správu - Etherpad", + "admin.loading": "Načítava sa…", + "admin.loading_description": "Počkajte, prosím, kým sa stránka načíta.", + "admin.toggle_sidebar": "Prepnúť bočný panel", + "admin.shout": "Komunikácia", + "admin_shout.online_one": "Momentálne je online {{count}} používateľ", + "admin_shout.online_other": "Momentálne je online {{count}} používateľov", + "admin_shout.sticky_toggle": "Zmeniť pripnutú správu", + "admin_login.title": "Etherpad", + "admin_login.username": "Používateľské meno", + "admin_login.password": "Heslo", + "admin_login.submit": "Prihlásiť sa", + "admin_login.failed": "Prihlásenie zlyhalo", + "admin_pads.all_pads": "Všetky pady", + "admin_pads.bulk.cleanup_history": "Vyčistiť históriu", + "admin_pads.bulk.clear_selection": "Zrušiť výber", + "admin_pads.bulk.delete": "Zmazať", + "admin_pads.cancel": "Zrušiť", + "admin_pads.col.pad": "Pad", + "admin_pads.col.revisions": "Revízie", + "admin_pads.col.users": "Používatelia", + "admin_pads.confirm_button": "OK", + "admin_pads.create_pad_dialog_description": "Zvoľte názov nového padu.", + "admin_pads.delete_pad_dialog_description": "Potvrďte alebo zrušte zmazanie padu.", + "admin_pads.delete_pad_dialog_title": "Zmazať pad", + "admin_pads.empty_never_edited": "prázdny · nikdy neupravovaný", + "admin_pads.error_dialog_description": "Vyskytla sa chyba.", + "admin_pads.error_prefix": "Chyba", + "admin_pads.filter.active": "Aktívne", + "admin_pads.filter.all": "Všetky", + "admin_pads.filter.empty": "Prázdne", + "admin_pads.filter.recent": "Tento týždeň", + "admin_pads.filter.stale": "Neaktívne (>1 r.)", + "admin_pads.open": "Otvoriť", + "admin_pads.pagination.next": "Ďalej", + "admin_pads.pagination.previous": "Späť", + "admin_pads.refresh": "Obnoviť", + "admin_pads.relative.days": "pred {{count}} d", + "admin_pads.relative.hours": "pred {{count}} h", + "admin_pads.relative.just_now": "práve teraz", + "admin_pads.relative.minutes": "pred {{count}} min", + "admin_pads.relative.months": "pred {{count}} mes.", + "admin_pads.relative.weeks": "pred {{count}} týž.", + "admin_pads.relative.years": "pred {{count}} r.", + "admin_pads.revisions_count": "{{count}} revízií", + "admin_pads.selected_count": "Vybraté: {{count}}", + "admin_pads.show": "Zobraziť", + "admin_pads.sort.name": "Názov (A – Z)", + "admin_pads.sort.revision_number": "Revízie", + "admin_pads.sort.user_count": "Používatelia", + "admin_pads.stats.across_pads": "vo všetkých padoch", + "admin_pads.stats.active_users": "Aktívni používatelia", + "admin_pads.stats.empty_pads": "Prázdne pady", + "admin_pads.stats.last_activity": "Posledná aktivita", + "admin_pads.stats.no_active_users": "Žiadni aktívni používatelia", + "admin_pads.stats.revisions_zero": "0 revízií", + "admin_pads.stats.total": "Pady spolu", + "admin_pads.stats.users_active": "Momentálne aktívnych: {{count}}", + "admin_pads.subtitle": "Prehľad všetkých padov na tejto inštancii Etherpadu. Vyhľadávajte, čistite, otvárajte.", "admin_plugins": "Správca doplnkov", "admin_plugins.available": "Dostupné doplnky", "admin_plugins.available_not-found": "Doplnky neboli nájdené.", "admin_plugins.available_fetching": "Načítavanie...", "admin_plugins.available_install.value": "Inštalovať", "admin_plugins.available_search.placeholder": "Vyhľadať doplnky na inštaláciu", + "admin_plugins.check_updates": "Skontrolovať aktualizácie", + "admin_plugins.core_count": "{{count}} základných", + "admin_plugins.catalog_disabled": "Katalóg zásuvných modulov je vypnutý vaším prevádzkovateľom (privacy.pluginCatalog=false). Zásuvný modul nainštalujete spustením `pnpm run plugins i ep_` na serveri.", + "admin_plugins.crumbs": "Zásuvné moduly", "admin_plugins.description": "Popis", + "admin_plugins.disables.label": "Vypína:", + "admin_plugins.disables.warning_title": "Tento zásuvný modul zámerne odstraňuje uvedené funkcie Etherpadu.", + "admin_plugins.error_retrieving": "Chyba pri získavaní zásuvných modulov", + "admin_plugins.install_error": "Nepodarilo sa nainštalovať {{plugin}}: {{error}}", + "admin_plugins.install_error_requires_newer_etherpad": "Nemožno nainštalovať {{plugin}}: vyžaduje novšiu verziu Etherpadu. Aktualizujte Etherpad a skúste to znova.", "admin_plugins.installed": "Nainštalované doplnky", "admin_plugins.installed_fetching": "Načítavanie nainštalovaných doplnkov...", "admin_plugins.installed_nothing": "Ešte ste nenainštalovali žiadne doplnky.", @@ -25,27 +93,161 @@ "admin_plugins.last-update": "Posledná aktualizácia", "admin_plugins.name": "Názov", "admin_plugins.page-title": "Správca doplnkov - Etherpad", + "admin_plugins.reload_catalog": "Znovu načítať katalóg", + "admin_plugins.search_npm": "Hľadať na npm", + "admin_plugins.sort_ascending": "Zoradiť vzostupne", + "admin_plugins.sort_descending": "Zoradiť zostupne", + "admin_plugins.sort.last_updated": "Naposledy aktualizované", + "admin_plugins.sort.name": "Názov (A – Z)", + "admin_plugins.sort.version": "Verzia", + "admin_plugins.source": "Zdroj zásuvného modulu", + "admin_plugins.subtitle": "Inštalujte, aktualizujte a odstraňujte zásuvné moduly Etherpadu. Zmeny si vyžadujú reštart servera.", + "admin_plugins.tag_core": "Základné", + "admin_plugins.update_tooltip": "Aktualizovať", + "admin_plugins.updates_available": "Dostupné aktualizácie", + "admin_plugins.update_now": "Aktualizovať", "admin_plugins.version": "Verzia", "admin_plugins_info": "Informácie k riešeniu problémov", + "admin_plugins_info.bindings_label": "{{count}} väzieb", + "admin_plugins_info.copy_diagnostics": "Kopírovať diagnostiku", + "admin_plugins_info.copy_value": "Kopírovať {{label}}", + "admin_plugins_info.git_sha": "Git SHA", + "admin_plugins_info.hook_bindings": "Väzby hookov", "admin_plugins_info.hooks": "Nainštalované súčasti", "admin_plugins_info.hooks_client": "Súčasti na strane klienta", "admin_plugins_info.hooks_server": "Súčasti na strane servera", + "admin_plugins_info.no_hooks": "Nenašli sa žiadne hooky", "admin_plugins_info.parts": "Nainštalované súčasti", "admin_plugins_info.plugins": "Nainštalované doplnky", "admin_plugins_info.page-title": "Informácie o doplnkoch - Etherpad", + "admin_plugins_info.search_placeholder": "Hľadať hook alebo časť…", + "admin_plugins_info.subtitle": "Diagnostika systému: nainštalovaná verzia, registrované časti a hooky.", + "admin_plugins_info.tab_client": "Klient", + "admin_plugins_info.tab_server": "Server", + "admin_plugins_info.up_to_date": "Aktuálne", + "admin_plugins_info.update_available": "Dostupná aktualizácia: {{version}}", "admin_plugins_info.version": "Verzia Etherpadu", "admin_plugins_info.version_latest": "Posledná dostupná verzia", "admin_plugins_info.version_number": "Číslo verzie", "admin_settings": "Nastavenia", + "admin_settings.create_pad": "Vytvoriť pad", "admin_settings.current": "Aktuálne nastavenia", "admin_settings.current_example-devel": "Príklad šablóny vývojárskeho nastavenia", "admin_settings.current_example-prod": "Príklad šablóny výrobného nastavenia", "admin_settings.current_restart.value": "Reštartovať Etherpad", "admin_settings.current_save.value": "Uložiť nastavenia", + "admin_settings.invalid_json": "Neplatný JSON", + "admin_settings.current_test.value": "Overiť JSON", + "admin_settings.current_prettify.value": "Sformátovať JSON", + "admin_settings.toast.saved": "Nastavenia boli úspešne uložené.", + "admin_settings.toast.save_failed": "Uloženie zlyhalo: súbor settings.json sa nepodarilo zapísať.", + "admin_settings.toast.json_invalid": "Syntaktická chyba: skontrolujte čiarky, zátvorky a úvodzovky.", + "admin_settings.toast.disconnected": "Nemožno uložiť: bez pripojenia k serveru.", + "admin_settings.toast.validation_ok": "JSON je platný.", + "admin_settings.toast.validation_failed": "JSON je neplatný: opravte syntaktické chyby.", + "admin_settings.toast.prettify_failed": "Nemožno sformátovať: najprv opravte syntaktické chyby.", + "admin_settings.prettify_confirm": "Formátovaním sa odstránia všetky komentáre. Pokračovať?", + "admin_settings.mode.form": "Formulár", + "admin_settings.mode.raw": "Surový", + "admin_settings.mode.effective": "Efektívny", + "admin_settings.mode.effective_tooltip": "Zobrazenie hodnôt, ktoré Etherpad práve teraz skutočne používa (po dosadení premenných prostredia), iba na čítanie. Tajné hodnoty sú skryté.", + "admin_settings.mode.aria_label": "Režim editora", + "admin_settings.envvar_banner.title": "Tento súbor je šablóna, nie živá konfigurácia.", + "admin_settings.envvar_banner.body": "Zástupné výrazy ako ${VAR:default} sa pri štarte dosadia do pamäte; nikdy sa nezapisujú späť do tohto súboru. Ak chcete zmeniť výslednú hodnotu, upravte premenné prostredia vo svojom prostredí (Docker compose, systemd, .env), alebo tu nahraďte zástupný výraz konkrétnou hodnotou. Prepnutím na kartu Efektívny zistíte, čo Etherpad práve používa.", + "admin_settings.toast.auth_error": "Nie ste overený ako správca. Prihláste sa, prosím, znova.", + "admin_settings.section.general": "Všeobecné", + "admin_settings.parse_error.title": "Nemožno spracovať settings.json", + "admin_settings.parse_error.cta": "Prepnite na surový režim na úpravu", + "admin_settings.env_pill.tooltip": "Číta sa z premennej prostredia {{variable}}. Hodnota nižšie sa použije, keď {{variable}} nie je nastavená.", + "admin_settings.env_pill.default_label": "predvolené", + "admin_settings.env_pill.input_aria": "Predvolená hodnota pre {{variable}}", + "admin_settings.env_pill.runtime_label": "aktívna hodnota", + "admin_settings.env_pill.runtime_tooltip": "Etherpad práve používa túto hodnotu, určenú z {{variable}} alebo jej predvolenej hodnoty.", + "admin_settings.env_pill.redacted_tooltip": "Etherpad používa hodnotu pre {{variable}}, je však skrytá, pretože ide o tajnú hodnotu.", "admin_settings.page-title": "Nastavenia - Etherpad", + "admin_settings.save_error": "Chyba pri ukladaní nastavení", + "admin_settings.saved_success": "Nastavenia boli úspešne uložené", + "update.banner.title": "Dostupná aktualizácia", + "update.banner.body": "Je dostupný Etherpad {{latest}} (používate {{current}}).", + "update.banner.cta": "Zobraziť aktualizáciu", + "update.page.title": "Aktualizácie Etherpadu", + "update.page.current": "Aktuálna verzia", + "update.page.latest": "Najnovšia verzia", + "update.page.last_check": "Naposledy skontrolované", + "update.page.install_method": "Spôsob inštalácie", + "update.page.tier": "Úroveň aktualizácií", + "update.page.changelog": "Zoznam zmien", + "update.page.up_to_date": "Používate najnovšiu verziu.", + "update.page.disabled": "Kontroly aktualizácií sú vypnuté (updates.tier = „off“).", + "update.page.unauthorized": "Nemáte oprávnenie zobraziť stav aktualizácií.", + "update.page.error": "Nepodarilo sa načítať stav aktualizácií (stav {{status}}).", + "update.badge.severe": "Etherpad na tomto serveri je vážne zastaraný. Upozornite správcu.", + "update.badge.vulnerable": "Etherpad na tomto serveri používa verziu so známymi bezpečnostnými problémami. Upozornite správcu.", + "update.page.apply": "Použiť aktualizáciu", + "update.page.cancel": "Zrušiť", + "update.page.acknowledge": "Potvrdiť", + "update.page.log": "Záznam aktualizácie (posledných 200 riadkov)", + "update.page.execution": "Stav", + "update.page.policy.install-method-not-writable": "Aktualizácie zo správcovského rozhrania vyžadujú inštaláciu cez git. Aktualizujte cez svojho správcu balíkov.", + "update.page.policy.rollback-failed-terminal": "Predchádzajúca aktualizácia zlyhala a nepodarilo sa ju vrátiť späť. Po uvedení inštalácie do poriadku stlačte Potvrdiť, čím sa zámok zruší.", + "update.page.policy.up-to-date": "Používate najnovšiu verziu.", + "update.page.policy.tier-off": "Aktualizácie sú vypnuté (updates.tier = „off“).", + "update.page.policy.maintenance-window-missing": "Úroveň 4 (autonómna) vyžaduje okno údržby. Autonómne aktualizácie zapnete nastavením updates.maintenanceWindow v settings.json.", + "update.page.policy.maintenance-window-invalid": "Úroveň 4 (autonómna) je vypnutá, pretože updates.maintenanceWindow má nesprávny formát. Očakáva sa {start, end, tz} s časmi vo formáte HH:MM a tz „local“ alebo „utc“.", + "update.page.last_result.verified": "Posledná aktualizácia na {{tag}} bola overená.", + "update.page.last_result.rolled-back": "Posledná pokusná aktualizácia na {{tag}} bola vrátená späť: {{reason}}.", + "update.page.last_result.rollback-failed": "Posledný pokus o aktualizáciu zlyhal A zlyhalo aj vrátenie späť: {{reason}}. Vyžaduje sa ručný zásah.", + "update.page.last_result.preflight-failed": "Posledná pokusná aktualizácia na {{tag}} zlyhala pri kontrole pred spustením: {{reason}}.", + "update.page.last_result.cancelled": "Poslednú pokusnú aktualizáciu na {{tag}} zrušil správca.", + "update.execution.idle": "Nečinné", + "update.execution.scheduled": "Aktualizácia naplánovaná", + "update.execution.preflight": "Kontroly pred spustením", + "update.execution.preflight-failed": "Kontrola pred spustením zlyhala", + "update.execution.draining": "Ukončovanie relácií", + "update.execution.executing": "Aktualizuje sa…", + "update.execution.pending-verification": "Čaká sa na overenie", + "update.execution.verified": "Overené", + "update.execution.rolling-back": "Vracia sa späť", + "update.execution.rolled-back": "Vrátené späť", + "update.execution.rollback-failed": "Vrátenie späť zlyhalo", + "update.banner.terminal.rollback-failed": "Pokus o aktualizáciu zlyhal a nepodarilo sa ho vrátiť späť. Vyžaduje sa ručný zásah.", + "update.banner.scheduled": "Automatická aktualizácia na {{tag}} je naplánovaná — použije sa o {{remaining}}.", + "update.banner.maintenance-window-missing": "Autonómne aktualizácie sú vypnuté, kým sa nenastaví okno údržby.", + "update.banner.maintenance-window-invalid": "Autonómne aktualizácie sú vypnuté, pretože okno údržby má nesprávny formát.", + "update.page.scheduled.title": "Aktualizácia naplánovaná", + "update.page.scheduled.countdown": "Etherpad sa začne aktualizovať na {{tag}} o {{remaining}}.", + "update.page.scheduled.deferred_until": "Mimo okna údržby. Aktualizácia sa spustí, keď sa okno otvorí o {{at}}.", + "update.page.scheduled.apply_now": "Použiť teraz", + "update.window.title": "Okno údržby", + "update.window.summary": "{{start}} – {{end}} ({{tz}})", + "update.window.unset": "Nie je nastavené.", + "update.window.next_opens_at": "Ďalšie okno sa otvorí o {{at}}.", + "update.drain.t60": "Etherpad sa o 60 sekúnd reštartuje, aby použil aktualizáciu.", + "update.drain.t30": "Etherpad sa o 30 sekúnd reštartuje, aby použil aktualizáciu.", + "update.drain.t10": "Etherpad sa o 10 sekúnd reštartuje, aby použil aktualizáciu.", "index.newPad": "Nový poznámkový blok", - "index.createOpenPad": "alebo vytvoriť/otvoriť poznámkový blok s názvom:", + "index.settings": "Nastavenia", + "index.transferSessionTitle": "Preniesť reláciu", + "index.receiveSessionTitle": "Prijať reláciu", + "index.receiveSessionDescription": "Tu môžete prijať reláciu Etherpadu z iného prehliadača alebo zariadenia. Upozorňujeme však, že tým sa odstráni vaša súčasná relácia, ak nejakú máte.", + "index.transferSession": "1. Preniesť reláciu", + "index.transferSessionNow": "Preniesť reláciu teraz", + "index.copyLink": "2. Kopírovať odkaz", + "index.copyLinkDescription": "Kliknutím na tlačidlo nižšie skopírujete odkaz do schránky.", + "index.copyLinkButton": "Kopírovať odkaz do schránky", + "index.transferToSystem": "3. Skopírovať reláciu do nového systému", + "index.transferToSystemDescription": "Otvorením skopírovaného odkazu v cieľovom prehliadači alebo zariadení prenesiete svoju reláciu.", + "index.code": "Kód", + "index.transferSessionDescription": "Kliknutím na tlačidlo nižšie prenesiete svoju súčasnú reláciu do prehliadača alebo zariadenia. Skopíruje sa odkaz na stránku, ktorá po otvorení v cieľovom prehliadači alebo zariadení prenesie vašu reláciu.", + "index.createOpenPad": "Otvoriť pad podľa názvu", "index.openPad": "otvoriť poznámkový blok s názvom:", + "index.recentPads": "Nedávne pady", + "index.recentPadsEmpty": "Nenašli sa žiadne nedávne pady.", + "index.generateNewPad": "Vygenerovať náhodný názov padu", + "index.labelPad": "Názov padu (nepovinné)", + "index.placeholderPadEnter": "Zadajte názov padu…", + "index.createAndShareDocuments": "Vytvárajte a zdieľajte dokumenty v reálnom čase", + "index.createAndShareDocumentsDescription": "Etherpad vám umožňuje spoločne upravovať dokumenty v reálnom čase, podobne ako živý viacpoužívateľský editor, ktorý beží vo vašom prehliadači.", "pad.toolbar.bold.title": "Tučné (Ctrl+B)", "pad.toolbar.italic.title": "Kurzíva (Ctrl+I)", "pad.toolbar.underline.title": "Podčiarknuté (Ctrl+U)", @@ -62,22 +264,42 @@ "pad.toolbar.savedRevision.title": "Uložiť revíziu", "pad.toolbar.settings.title": "Nastavenia", "pad.toolbar.embed.title": "Zdieľať alebo vložiť tento poznámkový blok", + "pad.toolbar.home.title": "Späť na domovskú stránku", "pad.toolbar.showusers.title": "Zobraziť používateľov tohoto poznámkového bloku", "pad.colorpicker.save": "Uložiť", "pad.colorpicker.cancel": "Zrušiť", "pad.loading": "Načítava sa...", "pad.noCookie": "Cookie nebolo možné nájsť. Povoľte prosím cookies vo vašom prehliadači. Vaše sedenie a nastavenia sa medzi návštevami stránky neuložia. To môže byť spôsobené tým že Etherpad je zahrnutý do iFrame v niektorých prehliadačoch. Prosím uistite sa, že Etherpad sa nachádza na tej istej doméne ako hlavný iFrame", "pad.permissionDenied": "Ľutujeme, nemáte oprávnenie pristupovať k tomuto poznámkovému bloku", - "pad.settings.padSettings": "Nastavenia poznámkového bloku", + "pad.settings.title": "Nastavenia", + "pad.settings.padSettings": "Nastavenia pre celý pad", + "pad.settings.userSettings": "Používateľské nastavenia", "pad.settings.myView": "Vlastný pohľad", + "pad.settings.disablechat": "Vypnúť chat", + "pad.settings.darkMode": "Tmavý režim", "pad.settings.stickychat": "Rozhovor stále na obrazovke", "pad.settings.chatandusers": "Zobraziť rozhovor a používateľov", "pad.settings.colorcheck": "Farby autorov", + "pad.settings.fadeInactiveAuthorColors": "Stlmiť farby neaktívnych autorov", "pad.settings.linenocheck": "Čísla riadkov", "pad.settings.rtlcheck": "Čítať obsah sprava doľava?", + "pad.settings.enforceSettings": "Vynútiť nastavenia pre ostatných používateľov", + "pad.settings.enforcedNotice": "Tieto nastavenia vám uzamkol tvorca tohto padu. Ak ich potrebujete zmeniť, požiadajte tvorcu padu.", "pad.settings.fontType": "Typ písma:", "pad.settings.fontType.normal": "Normálne", "pad.settings.language": "Jazyk:", + "pad.settings.deletePad": "Zmazať pad", + "pad.delete.confirm": "Naozaj chcete zmazať tento pad?", + "pad.deletionToken.modalTitle": "Uložte si token na zmazanie padu", + "pad.deletionToken.modalBody": "Tento token je jediný spôsob, ako zmazať tento pad, ak stratíte reláciu prehliadača alebo zmeníte zariadenie. Uložte si ho na bezpečné miesto — zobrazí sa tu iba raz.", + "pad.deletionToken.copy": "Kopírovať", + "pad.deletionToken.copied": "Skopírované", + "pad.deletionToken.acknowledge": "Uložil som si ho", + "pad.deletionToken.deleteWithToken": "Zmazať pad pomocou tokenu", + "pad.deletionToken.tokenFieldLabel": "Token na zmazanie padu", + "pad.deletionToken.tokenValueLabel": "Váš token na zmazanie padu (iba na čítanie)", + "pad.deletionToken.invalid": "Tento token nie je platný pre tento pad.", + "pad.deletionToken.notCreator": "Nie ste tvorcom tohto padu, takže ho nemôžete zmazať.", "pad.settings.about": "O Etherpade", "pad.settings.poweredBy": "Poháňané cez", "pad.importExport.import_export": "Import/Export", @@ -90,6 +312,13 @@ "pad.importExport.exportword": "Microsoft Word", "pad.importExport.exportpdf": "PDF", "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportetherpada.title": "Exportovať ako Etherpad", + "pad.importExport.exporthtmla.title": "Exportovať ako HTML", + "pad.importExport.exportplaina.title": "Exportovať ako čistý text", + "pad.importExport.exportworda.title": "Exportovať ako Microsoft Word", + "pad.importExport.exportpdfa.title": "Exportovať ako PDF", + "pad.importExport.exportopena.title": "Exportovať ako ODF (Open Document Format)", + "pad.importExport.noConverter.innerHTML": "Importovať môžete iba z formátov čistého textu alebo HTML. Pre pokročilejšie funkcie importu si nainštalujte LibreOffice.", "pad.modals.connected": "Pripojené.", "pad.modals.reconnecting": "Opätovné pripájanie k vášmu poznámkovému bloku...", "pad.modals.forcereconnect": "Vynútiť znovupripojenie", @@ -120,6 +349,8 @@ "pad.modals.disconnected": "Boli ste odpojení.", "pad.modals.disconnected.explanation": "Spojenie so serverom sa prerušilo", "pad.modals.disconnected.cause": "Server môže byť nedostupný. Ak by problém pretrvával, informujte správcu služby.", + "pad.gritter.unacceptedCommit.title": "Neuložená úprava", + "pad.gritter.unacceptedCommit.text": "Vaša nedávna úprava stále nie je uložená. Znova sa pripojte a skúste to ešte raz.", "pad.share": "Zdieľať tento poznámkový blok", "pad.share.readonly": "Len na čítanie", "pad.share.link": "Odkaz", @@ -132,12 +363,36 @@ "timeslider.followContents": "Sledovať aktualizácie obsahu poznámkového bloku", "timeslider.pageTitle": "Časová os {{appTitle}}", "timeslider.toolbar.returnbutton": "Späť do poznámkového bloku", + "pad.historyMode.banner": "Prezeranie histórie", + "pad.historyMode.return": "Návrat k živej verzii", + "pad.historyMode.revisionLabel": "Revízia {{rev}}", + "pad.historyMode.controlsLabel": "Ovládanie histórie padu", + "pad.historyMode.sliderLabel": "Revízia padu", + "pad.historyMode.settings.title": "Prehrávanie histórie", + "pad.historyMode.settings.follow": "Sledovať zmeny obsahu padu", + "pad.historyMode.settings.followShort": "Sledovať", + "pad.historyMode.followOn": "Sledujú sa zmeny padu — kliknutím sledovanie ukončíte", + "pad.historyMode.followOff": "Zmeny padu sa nesledujú — kliknutím začnete sledovať", + "pad.historyMode.settings.playbackSpeed": "Rýchlosť prehrávania:", + "pad.historyMode.chat.replayHeader": "Chat k {{time}}", + "pad.historyMode.users.authorsHeader": "Autori v tejto revízii", + "pad.editor.skipToContent": "Preskočiť na editor", + "pad.editor.keyboardHint": "Stlačením Escape opustíte editor. Stlačením Alt+F9 sa dostanete na panel nástrojov.", + "pad.editor.toolbar.formatting": "Panel nástrojov formátovania", + "pad.editor.toolbar.actions": "Panel akcií padu", + "pad.editor.toolbar.showMore": "Zobraziť viac tlačidiel panela", "timeslider.toolbar.authors": "Autori:", "timeslider.toolbar.authorsList": "Bez autorov", "timeslider.toolbar.exportlink.title": "Export", "timeslider.exportCurrent": "Exportovať aktuálnu verziu ako:", "timeslider.version": "Verzia {{version}}", "timeslider.saved": "Uložené {{day}}. {{month}} {{year}}", + "timeslider.settings.playbackSpeed": "Rýchlosť prehrávania:", + "timeslider.settings.playbackSpeed.original": "Pôvodná rýchlosť", + "timeslider.settings.playbackSpeed.realtime": "Reálny čas", + "timeslider.settings.playbackSpeed.200ms": "200 ms", + "timeslider.settings.playbackSpeed.500ms": "500 ms", + "timeslider.settings.playbackSpeed.1000ms": "1000 ms", "timeslider.playPause": "Pustiť / Pozastaviť obsah poznámkového bloku", "timeslider.backRevision": "Ísť v tomto poznámkovom bloku o jednu revíziu späť", "timeslider.forwardRevision": "Ísť v tomto poznámkovom bloku o jednu revíziu vpred", @@ -159,6 +414,7 @@ "pad.savedrevs.timeslider": "Návštevou časovej osi môžete zobraziť uložené revízie", "pad.userlist.entername": "Zadajte svoje meno", "pad.userlist.unnamed": "nemenovaný", + "pad.userlist.onlineCount": "{[ plural(count) one: {{count}} pripojený používateľ, few: {{count}} pripojení používatelia, many: {{count}} pripojených používateľov, other: {{count}} pripojených používateľov ]}", "pad.editbar.clearcolors": "Odstrániť farby autorov z celého dokumentu? Táto akcia sa nedá vrátiť", "pad.impexp.importbutton": "Importovať teraz", "pad.impexp.importing": "Prebieha import...", @@ -169,5 +425,6 @@ "pad.impexp.importfailed": "Import zlyhal", "pad.impexp.copypaste": "Vložte prosím kópiu cez schránku", "pad.impexp.exportdisabled": "Export do formátu {{type}} nie je povolený. Kontaktujte prosím administrátora pre zistenie detailov.", - "pad.impexp.maxFileSize": "Súbor je príliš veľký. Kontaktujte správcu pre zväčšenie povolenej veľkosti súborov pre import" + "pad.impexp.maxFileSize": "Súbor je príliš veľký. Kontaktujte správcu pre zväčšenie povolenej veľkosti súborov pre import", + "pad.social.description": "Kolaboratívny dokument, ktorý môže každý upravovať v reálnom čase." } From 8e041309697e7bcfde3eac4969105306e8159a75 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jun 2026 14:01:12 +0100 Subject: [PATCH 05/74] build(deps): bump undici from 7.27.2 to 8.5.0 (#7997) Bumps [undici](https://github.com/nodejs/undici) from 7.27.2 to 8.5.0. - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](https://github.com/nodejs/undici/compare/v7.27.2...v8.5.0) --- updated-dependencies: - dependency-name: undici dependency-version: 8.5.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6d64459cb..d22b7bd42 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8388,10 +8388,10 @@ snapshots: '@rushstack/eslint-patch': 1.16.1 '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint@10.5.0)(typescript@6.0.3) '@typescript-eslint/parser': 7.18.0(eslint@10.5.0)(typescript@6.0.3) - eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0)(eslint@10.5.0) + eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint@10.5.0))(eslint@10.5.0) eslint-plugin-cypress: 2.15.2(eslint@10.5.0) eslint-plugin-eslint-comments: 3.2.0(eslint@10.5.0) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1)(eslint@10.5.0) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint@10.5.0))(eslint@10.5.0))(eslint@10.5.0) eslint-plugin-mocha: 10.5.0(eslint@10.5.0) eslint-plugin-n: 17.24.0(eslint@10.5.0)(typescript@6.0.3) eslint-plugin-prefer-arrow: 1.2.3(eslint@10.5.0) @@ -8412,7 +8412,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0)(eslint@10.5.0): + eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint@10.5.0))(eslint@10.5.0): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3(supports-color@8.1.1) @@ -8423,18 +8423,18 @@ snapshots: stable-hash: 0.0.5 tinyglobby: 0.2.17 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1)(eslint@10.5.0) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint@10.5.0))(eslint@10.5.0))(eslint@10.5.0) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1)(eslint@10.5.0): + eslint-module-utils@2.12.1(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint@10.5.0))(eslint@10.5.0))(eslint@10.5.0): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 7.18.0(eslint@10.5.0)(typescript@6.0.3) eslint: 10.5.0 eslint-import-resolver-node: 0.3.10 - eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0)(eslint@10.5.0) + eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint@10.5.0))(eslint@10.5.0) transitivePeerDependencies: - supports-color @@ -8456,7 +8456,7 @@ snapshots: eslint: 10.5.0 ignore: 5.3.2 - eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1)(eslint@10.5.0): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint@10.5.0))(eslint@10.5.0))(eslint@10.5.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -8467,7 +8467,7 @@ snapshots: doctrine: 2.1.0 eslint: 10.5.0 eslint-import-resolver-node: 0.3.10 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1)(eslint@10.5.0) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint@10.5.0))(eslint@10.5.0))(eslint@10.5.0) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 From ff0bd2e81989ca32548b9c4c07d0203480faaa8b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jun 2026 16:55:22 +0100 Subject: [PATCH 06/74] build(deps): bump ueberdb2 from 6.1.13 to 6.1.14 (#7999) Bumps [ueberdb2](https://github.com/ether/ueberDB) from 6.1.13 to 6.1.14. - [Changelog](https://github.com/ether/ueberDB/blob/main/CHANGELOG.md) - [Commits](https://github.com/ether/ueberDB/compare/v6.1.13...v6.1.14) --- updated-dependencies: - dependency-name: ueberdb2 dependency-version: 6.1.14 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- bin/package.json | 2 +- pnpm-lock.yaml | 30 +++++++++++++++--------------- src/package.json | 2 +- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/bin/package.json b/bin/package.json index 510669da5..174950e76 100644 --- a/bin/package.json +++ b/bin/package.json @@ -11,7 +11,7 @@ "log4js": "^6.9.1", "semver": "^7.8.4", "tsx": "^4.22.4", - "ueberdb2": "6.1.13" + "ueberdb2": "6.1.14" }, "devDependencies": { "@types/node": "^26.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d22b7bd42..58c7da305 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -165,8 +165,8 @@ importers: specifier: ^4.22.4 version: 4.22.4 ueberdb2: - specifier: 6.1.13 - version: 6.1.13(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.0))(nano@11.0.5)(pg@8.22.0)(redis@6.0.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.3(tslib@2.8.1)(typescript@6.0.3)) + specifier: 6.1.14 + version: 6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.0))(nano@11.0.5)(pg@8.22.0)(redis@6.0.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.3(tslib@2.8.1)(typescript@6.0.3)) devDependencies: '@types/node': specifier: ^26.0.0 @@ -359,8 +359,8 @@ importers: specifier: 4.22.4 version: 4.22.4 ueberdb2: - specifier: 6.1.13 - version: 6.1.13(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.0))(nano@11.0.5)(pg@8.22.0)(redis@6.0.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.3(tslib@2.8.1)(typescript@6.0.3)) + specifier: 6.1.14 + version: 6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.0))(nano@11.0.5)(pg@8.22.0)(redis@6.0.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.3(tslib@2.8.1)(typescript@6.0.3)) underscore: specifier: 1.13.8 version: 1.13.8 @@ -5373,8 +5373,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - ueberdb2@6.1.13: - resolution: {integrity: sha512-Pf49qzENW/PttW05NJTWshsjsVk1BLnYnr5oMw/BECCTMwLfXYdfPCkSM1k4zZIyxKbzZZ0+FsVTHDnKYE8VxA==} + ueberdb2@6.1.14: + resolution: {integrity: sha512-ZaNtdN8OP/eVgOgX/Rgc5gN3SlLWGEgaevLwMhvEE4L0xc1zLveCK1aMSA0bjhHYgD1BQz54THEtZEWIQWjIhw==} engines: {node: '>=24.0.0'} peerDependencies: '@elastic/elasticsearch': ^9.0.0 @@ -8388,10 +8388,10 @@ snapshots: '@rushstack/eslint-patch': 1.16.1 '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint@10.5.0)(typescript@6.0.3) '@typescript-eslint/parser': 7.18.0(eslint@10.5.0)(typescript@6.0.3) - eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint@10.5.0))(eslint@10.5.0) + eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0)(eslint@10.5.0) eslint-plugin-cypress: 2.15.2(eslint@10.5.0) eslint-plugin-eslint-comments: 3.2.0(eslint@10.5.0) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint@10.5.0))(eslint@10.5.0))(eslint@10.5.0) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1)(eslint@10.5.0) eslint-plugin-mocha: 10.5.0(eslint@10.5.0) eslint-plugin-n: 17.24.0(eslint@10.5.0)(typescript@6.0.3) eslint-plugin-prefer-arrow: 1.2.3(eslint@10.5.0) @@ -8412,7 +8412,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint@10.5.0))(eslint@10.5.0): + eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0)(eslint@10.5.0): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3(supports-color@8.1.1) @@ -8423,18 +8423,18 @@ snapshots: stable-hash: 0.0.5 tinyglobby: 0.2.17 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint@10.5.0))(eslint@10.5.0))(eslint@10.5.0) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1)(eslint@10.5.0) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint@10.5.0))(eslint@10.5.0))(eslint@10.5.0): + eslint-module-utils@2.12.1(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1)(eslint@10.5.0): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 7.18.0(eslint@10.5.0)(typescript@6.0.3) eslint: 10.5.0 eslint-import-resolver-node: 0.3.10 - eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint@10.5.0))(eslint@10.5.0) + eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0)(eslint@10.5.0) transitivePeerDependencies: - supports-color @@ -8456,7 +8456,7 @@ snapshots: eslint: 10.5.0 ignore: 5.3.2 - eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint@10.5.0))(eslint@10.5.0))(eslint@10.5.0): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1)(eslint@10.5.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -8467,7 +8467,7 @@ snapshots: doctrine: 2.1.0 eslint: 10.5.0 eslint-import-resolver-node: 0.3.10 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint@10.5.0))(eslint@10.5.0))(eslint@10.5.0) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1)(eslint@10.5.0) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -11054,7 +11054,7 @@ snapshots: typescript@6.0.3: {} - ueberdb2@6.1.13(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.0))(nano@11.0.5)(pg@8.22.0)(redis@6.0.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.3(tslib@2.8.1)(typescript@6.0.3)): + ueberdb2@6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.0))(nano@11.0.5)(pg@8.22.0)(redis@6.0.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.3(tslib@2.8.1)(typescript@6.0.3)): optionalDependencies: '@elastic/elasticsearch': 9.4.2 async: 3.2.6 diff --git a/src/package.json b/src/package.json index db389f392..e5a5a0351 100644 --- a/src/package.json +++ b/src/package.json @@ -85,7 +85,7 @@ "surrealdb": "^2.0.3", "tinycon": "0.6.8", "tsx": "4.22.4", - "ueberdb2": "6.1.13", + "ueberdb2": "6.1.14", "underscore": "1.13.8", "undici": "^8.5.0", "wtfnode": "^0.10.1" From f5b61c33884287d23a37264f4993f34474ebbfff Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jun 2026 16:55:42 +0100 Subject: [PATCH 07/74] build(deps): bump semver from 7.8.4 to 7.8.5 (#8000) Bumps [semver](https://github.com/npm/node-semver) from 7.8.4 to 7.8.5. - [Release notes](https://github.com/npm/node-semver/releases) - [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md) - [Commits](https://github.com/npm/node-semver/compare/v7.8.4...v7.8.5) --- updated-dependencies: - dependency-name: semver dependency-version: 7.8.5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- bin/package.json | 2 +- pnpm-lock.yaml | 28 ++++++++++++++-------------- src/package.json | 2 +- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/bin/package.json b/bin/package.json index 174950e76..60d51e034 100644 --- a/bin/package.json +++ b/bin/package.json @@ -9,7 +9,7 @@ "dependencies": { "ep_etherpad-lite": "workspace:../src", "log4js": "^6.9.1", - "semver": "^7.8.4", + "semver": "^7.8.5", "tsx": "^4.22.4", "ueberdb2": "6.1.14" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 58c7da305..aea460703 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -159,8 +159,8 @@ importers: specifier: ^6.9.1 version: 6.9.1 semver: - specifier: ^7.8.4 - version: 7.8.4 + specifier: ^7.8.5 + version: 7.8.5 tsx: specifier: ^4.22.4 version: 4.22.4 @@ -338,8 +338,8 @@ importers: specifier: ^1.3.1 version: 1.3.1 semver: - specifier: ^7.8.4 - version: 7.8.4 + specifier: ^7.8.5 + version: 7.8.5 socket.io: specifier: ^4.8.3 version: 4.8.3 @@ -4973,8 +4973,8 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.8.4: - resolution: {integrity: sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==} + semver@7.8.5: + resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} engines: {node: '>=10'} hasBin: true @@ -7349,7 +7349,7 @@ snapshots: globby: 11.1.0 is-glob: 4.0.3 minimatch: 10.2.5 - semver: 7.8.4 + semver: 7.8.5 ts-api-utils: 1.4.3(typescript@6.0.3) optionalDependencies: typescript: 6.0.3 @@ -7364,7 +7364,7 @@ snapshots: '@typescript-eslint/visitor-keys': 8.61.1 debug: 4.4.3(supports-color@8.1.1) minimatch: 10.2.5 - semver: 7.8.4 + semver: 7.8.5 tinyglobby: 0.2.17 ts-api-utils: 2.5.0(typescript@6.0.3) typescript: 6.0.3 @@ -8381,7 +8381,7 @@ snapshots: eslint-compat-utils@0.5.1(eslint@10.5.0): dependencies: eslint: 10.5.0 - semver: 7.8.4 + semver: 7.8.5 eslint-config-etherpad@4.0.5(eslint@10.5.0)(typescript@6.0.3): dependencies: @@ -8502,7 +8502,7 @@ snapshots: globals: 15.15.0 globrex: 0.1.2 ignore: 5.3.2 - semver: 7.8.4 + semver: 7.8.5 ts-declaration-location: 1.0.7(typescript@6.0.3) transitivePeerDependencies: - typescript @@ -9204,7 +9204,7 @@ snapshots: is-bun-module@1.3.0: dependencies: - semver: 7.8.4 + semver: 7.8.5 is-callable@1.2.7: {} @@ -9412,7 +9412,7 @@ snapshots: lodash.isstring: 4.0.1 lodash.once: 4.1.1 ms: 2.1.3 - semver: 7.8.4 + semver: 7.8.5 jszip@3.10.1: dependencies: @@ -9548,7 +9548,7 @@ snapshots: lockfile: 1.0.4 node-fetch-commonjs: 3.3.2 proxy-agent: 6.5.0 - semver: 7.8.4 + semver: 7.8.5 tar: 7.5.16 url-join: 4.0.1 transitivePeerDependencies: @@ -10572,7 +10572,7 @@ snapshots: semver@6.3.1: {} - semver@7.8.4: {} + semver@7.8.5: {} send@1.2.0: dependencies: diff --git a/src/package.json b/src/package.json index e5a5a0351..637a4590f 100644 --- a/src/package.json +++ b/src/package.json @@ -78,7 +78,7 @@ "resolve": "1.22.12", "rethinkdb": "^2.4.2", "rusty-store-kv": "^1.3.1", - "semver": "^7.8.4", + "semver": "^7.8.5", "socket.io": "^4.8.3", "socket.io-client": "^4.8.3", "superagent": "10.3.0", From b45f60e20a9d1d9d3dc52c43a081de5488e4a0f8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jun 2026 16:55:47 +0100 Subject: [PATCH 08/74] build(deps): bump reitzig/actions-asciidoctor from 2.0.4 to 2.0.5 (#7998) Bumps [reitzig/actions-asciidoctor](https://github.com/reitzig/actions-asciidoctor) from 2.0.4 to 2.0.5. - [Release notes](https://github.com/reitzig/actions-asciidoctor/releases) - [Changelog](https://github.com/reitzig/actions-asciidoctor/blob/master/CHANGELOG.md) - [Commits](https://github.com/reitzig/actions-asciidoctor/compare/v2.0.4...v2.0.5) --- updated-dependencies: - dependency-name: reitzig/actions-asciidoctor dependency-version: 2.0.5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 684963a2a..a1ab77767 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -82,7 +82,7 @@ jobs: with: ruby-version: 2.7 - - uses: reitzig/actions-asciidoctor@v2.0.4 + - uses: reitzig/actions-asciidoctor@v2.0.5 with: version: 2.0.18 - name: Prepare release From 40327d59d6b61c787ea8c28ad515b38ebb3d25a4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Jun 2026 11:31:56 +0100 Subject: [PATCH 09/74] build(deps): bump actions/cache from 5 to 6 (#8001) Bumps [actions/cache](https://github.com/actions/cache) from 5 to 6. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/cache dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/backend-tests.yml | 8 ++++---- .github/workflows/build-and-deploy-docs.yml | 4 ++-- .github/workflows/docker.yml | 2 +- .github/workflows/downstream-smoke.yml | 2 +- .github/workflows/frontend-admin-tests.yml | 4 ++-- .github/workflows/frontend-tests.yml | 16 ++++++++-------- .github/workflows/handleRelease.yml | 2 +- .github/workflows/load-test.yml | 6 +++--- .github/workflows/perform-type-check.yml | 2 +- .github/workflows/rate-limit.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/releaseEtherpad.yml | 2 +- .../workflows/upgrade-from-latest-release.yml | 2 +- 13 files changed, 27 insertions(+), 27 deletions(-) diff --git a/.github/workflows/backend-tests.yml b/.github/workflows/backend-tests.yml index d0183a1a9..225d27b47 100644 --- a/.github/workflows/backend-tests.yml +++ b/.github/workflows/backend-tests.yml @@ -33,7 +33,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v7 - - uses: actions/cache@v5 + - uses: actions/cache@v6 name: Cache pnpm store with: path: ${{ env.PNPM_HOME }} @@ -89,7 +89,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v7 - - uses: actions/cache@v5 + - uses: actions/cache@v6 name: Cache pnpm store with: path: ${{ env.PNPM_HOME }} @@ -169,7 +169,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v7 - - uses: actions/cache@v5 + - uses: actions/cache@v6 name: Cache pnpm store with: path: ${{ env.PNPM_HOME }} @@ -235,7 +235,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v7 - - uses: actions/cache@v5 + - uses: actions/cache@v6 name: Cache pnpm store with: path: ${{ env.PNPM_HOME }} diff --git a/.github/workflows/build-and-deploy-docs.yml b/.github/workflows/build-and-deploy-docs.yml index 062ec72fd..f49cf2974 100644 --- a/.github/workflows/build-and-deploy-docs.yml +++ b/.github/workflows/build-and-deploy-docs.yml @@ -37,14 +37,14 @@ jobs: steps: - name: Checkout uses: actions/checkout@v7 - - uses: actions/cache@v5 + - uses: actions/cache@v6 name: Cache pnpm store with: path: ~/.pnpm-store key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - - uses: actions/cache@v5 + - uses: actions/cache@v6 name: Cache vitepress build with: path: doc/.vitepress/cache diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 5abe166aa..cca0feb45 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -42,7 +42,7 @@ jobs: tags: ${{ env.TEST_TAG }} cache-from: type=gha cache-to: type=gha,mode=max - - uses: actions/cache@v5 + - uses: actions/cache@v6 name: Cache pnpm store with: path: ${{ env.PNPM_HOME }} diff --git a/.github/workflows/downstream-smoke.yml b/.github/workflows/downstream-smoke.yml index 4b5ff372a..fc42cfe3e 100644 --- a/.github/workflows/downstream-smoke.yml +++ b/.github/workflows/downstream-smoke.yml @@ -28,7 +28,7 @@ jobs: - name: Checkout core (PR) uses: actions/checkout@v7 - - uses: actions/cache@v5 + - uses: actions/cache@v6 name: Cache pnpm store with: path: ${{ env.PNPM_HOME }} diff --git a/.github/workflows/frontend-admin-tests.yml b/.github/workflows/frontend-admin-tests.yml index f8995db07..5ff9dea29 100644 --- a/.github/workflows/frontend-admin-tests.yml +++ b/.github/workflows/frontend-admin-tests.yml @@ -28,7 +28,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v7 - - uses: actions/cache@v5 + - uses: actions/cache@v6 name: Cache pnpm store with: path: ${{ env.PNPM_HOME }} @@ -48,7 +48,7 @@ jobs: name: Install all dependencies and symlink for ep_etherpad-lite run: pnpm i - name: Cache Playwright browsers - uses: actions/cache@v5 + uses: actions/cache@v6 id: playwright-cache with: path: ~/.cache/ms-playwright diff --git a/.github/workflows/frontend-tests.yml b/.github/workflows/frontend-tests.yml index 51ca2bfb6..0def07b51 100644 --- a/.github/workflows/frontend-tests.yml +++ b/.github/workflows/frontend-tests.yml @@ -21,14 +21,14 @@ jobs: - name: Checkout repository uses: actions/checkout@v7 - - uses: actions/cache@v5 + - uses: actions/cache@v6 name: Cache pnpm store with: path: ${{ env.PNPM_HOME }} key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - - uses: actions/cache@v5 + - uses: actions/cache@v6 name: Cache Playwright browsers with: path: ~/.cache/ms-playwright @@ -93,14 +93,14 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v7 - - uses: actions/cache@v5 + - uses: actions/cache@v6 name: Cache pnpm store with: path: ${{ env.PNPM_HOME }} key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - - uses: actions/cache@v5 + - uses: actions/cache@v6 name: Cache Playwright browsers with: path: ~/.cache/ms-playwright @@ -169,14 +169,14 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v7 - - uses: actions/cache@v5 + - uses: actions/cache@v6 name: Cache pnpm store with: path: ${{ env.PNPM_HOME }} key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - - uses: actions/cache@v5 + - uses: actions/cache@v6 name: Cache Playwright browsers with: path: ~/.cache/ms-playwright @@ -270,14 +270,14 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v7 - - uses: actions/cache@v5 + - uses: actions/cache@v6 name: Cache pnpm store with: path: ${{ env.PNPM_HOME }} key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - - uses: actions/cache@v5 + - uses: actions/cache@v6 name: Cache Playwright browsers with: path: ~/.cache/ms-playwright diff --git a/.github/workflows/handleRelease.yml b/.github/workflows/handleRelease.yml index 782a3c898..03ca88667 100644 --- a/.github/workflows/handleRelease.yml +++ b/.github/workflows/handleRelease.yml @@ -28,7 +28,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v7 - - uses: actions/cache@v5 + - uses: actions/cache@v6 name: Cache pnpm store with: path: ${{ env.PNPM_HOME }} diff --git a/.github/workflows/load-test.yml b/.github/workflows/load-test.yml index e48ead25a..9b498416c 100644 --- a/.github/workflows/load-test.yml +++ b/.github/workflows/load-test.yml @@ -25,7 +25,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v7 - - uses: actions/cache@v5 + - uses: actions/cache@v6 name: Cache pnpm store with: path: ${{ env.PNPM_HOME }} @@ -63,7 +63,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v7 - - uses: actions/cache@v5 + - uses: actions/cache@v6 name: Cache pnpm store with: path: ${{ env.PNPM_HOME }} @@ -126,7 +126,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v7 - - uses: actions/cache@v5 + - uses: actions/cache@v6 name: Cache pnpm store with: path: ${{ env.PNPM_HOME }} diff --git a/.github/workflows/perform-type-check.yml b/.github/workflows/perform-type-check.yml index 8567eece2..fbed6df2c 100644 --- a/.github/workflows/perform-type-check.yml +++ b/.github/workflows/perform-type-check.yml @@ -25,7 +25,7 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v7 - - uses: actions/cache@v5 + - uses: actions/cache@v6 name: Cache pnpm store with: path: ${{ env.PNPM_HOME }} diff --git a/.github/workflows/rate-limit.yml b/.github/workflows/rate-limit.yml index 9205be08b..3cd791164 100644 --- a/.github/workflows/rate-limit.yml +++ b/.github/workflows/rate-limit.yml @@ -28,7 +28,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v7 - - uses: actions/cache@v5 + - uses: actions/cache@v6 name: Cache pnpm store with: path: ${{ env.PNPM_HOME }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a1ab77767..b0b697845 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -47,7 +47,7 @@ jobs: repository: ether/ether.github.com path: ether.github.com token: '${{ secrets.ETHER_RELEASE_TOKEN }}' - - uses: actions/cache@v5 + - uses: actions/cache@v6 name: Cache pnpm store with: path: ${{ env.PNPM_HOME }} diff --git a/.github/workflows/releaseEtherpad.yml b/.github/workflows/releaseEtherpad.yml index 4942b02ce..dd53cf9ae 100644 --- a/.github/workflows/releaseEtherpad.yml +++ b/.github/workflows/releaseEtherpad.yml @@ -54,7 +54,7 @@ jobs: registry-url: https://registry.npmjs.org/ - name: Upgrade npm to >=11.5.1 (required for trusted publishing) run: npm install -g npm@latest - - uses: actions/cache@v5 + - uses: actions/cache@v6 name: Cache pnpm store with: path: ${{ env.PNPM_HOME }} diff --git a/.github/workflows/upgrade-from-latest-release.yml b/.github/workflows/upgrade-from-latest-release.yml index f9e3481ab..2cd8f83e3 100644 --- a/.github/workflows/upgrade-from-latest-release.yml +++ b/.github/workflows/upgrade-from-latest-release.yml @@ -38,7 +38,7 @@ jobs: - name: Check out latest release tag run: git checkout "$(git tag --list 'v*' --sort=-version:refname | head -n1)" - - uses: actions/cache@v5 + - uses: actions/cache@v6 name: Cache pnpm store with: path: ${{ env.PNPM_HOME }} From 0cd01fce41019cbc20709d863cc7026800419b08 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Thu, 25 Jun 2026 14:03:14 +0200 Subject: [PATCH 10/74] Localisation updates from https://translatewiki.net. --- src/locales/fr.json | 3 ++- src/locales/it.json | 2 +- src/locales/ko.json | 6 +++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/locales/fr.json b/src/locales/fr.json index ae4910385..a32f6381e 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -7,6 +7,7 @@ "Chpol", "Cquoi", "Crochet.david", + "Crowwhailord", "Derugon", "Envlh", "Framafan", @@ -259,7 +260,7 @@ "pad.importExport.exportetherpada.title": "Exporter au format Etherpad", "pad.importExport.exporthtmla.title": "Exporter au format HTML", "pad.importExport.exportplaina.title": "Exporter en texte brut", - "pad.importExport.noConverter.innerHTML": "Vous pouvez uniquement importer du texte brut ou du HTML. Pour des fonctionnalités d'importation plus avancées, veuillez installer LibreOffice.", + "pad.importExport.noConverter.innerHTML": "Vous pouvez importer directement du texte brut, du HTML,Microsoft Word (.docx) et des fichiers Etherpad. Pour importer d'autres formats tels que PDF, ODT, DOC ou RTF, l'administrateur du serveur doit installer LibreOffice ; consultez la documentation Etherpad .", "pad.modals.connected": "Connecté.", "pad.modals.reconnecting": "Reconnexion à votre bloc-notes en cours...", "pad.modals.forcereconnect": "Forcer la reconnexion", diff --git a/src/locales/it.json b/src/locales/it.json index e485e82c3..f02c55c33 100644 --- a/src/locales/it.json +++ b/src/locales/it.json @@ -302,7 +302,7 @@ "pad.importExport.exportworda.title": "Esporta come Microsoft Word", "pad.importExport.exportpdfa.title": "Esporta in formato PDF", "pad.importExport.exportopena.title": "Esporta in formato ODF (Open Document Format)", - "pad.importExport.noConverter.innerHTML": "È possibile importare solo file di testo semplice o in formato HTML. Per funzionalità di importazione più avanzate, si prega di installare LibreOffice .", + "pad.importExport.noConverter.innerHTML": "È possibile importare direttamente file di testo semplice, HTML, Microsoft Word (.docx) e file Etherpad. Per importare altri formati come PDF, ODT, DOC o RTF, l'amministratore del server deve installare LibreOffice: consulta la documentazione di Etherpad.", "pad.modals.connected": "Connesso.", "pad.modals.reconnecting": "Riconnessione al pad in corso…", "pad.modals.forcereconnect": "Forza la riconnessione", diff --git a/src/locales/ko.json b/src/locales/ko.json index 33d1105d7..b7fe03e71 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -145,14 +145,14 @@ "admin_settings.current_save.value": "설정 저장", "admin_settings.invalid_json": "잘못된 JSON", "admin_settings.current_test.value": "JSON 검증", - "admin_settings.current_prettify.value": "JSON 정리", + "admin_settings.current_prettify.value": "JSON를 보기 좋게 정리", "admin_settings.toast.saved": "설정을 성공적으로 저장했습니다.", "admin_settings.toast.save_failed": "저장 실패: settings.json에 쓰기 할 수 없습니다.", "admin_settings.toast.json_invalid": "구문 오류: 쉼표, 중괄호, 따옴표를 확인하세요.", "admin_settings.toast.disconnected": "저장할 수 없음: 서버에 연결되어 있지 않습니다.", "admin_settings.toast.validation_ok": "JSON이 유효합니다.", "admin_settings.toast.validation_failed": "JSON이 유효하지 않습니다. 구문 오류를 수정하세요.", - "admin_settings.toast.prettify_failed": "정리할 수 없습니다. 먼저 구문 오류를 수정하세요.", + "admin_settings.toast.prettify_failed": "보기 좋게 정리할 수 없습니다. 먼저 구문 오류를 수정하세요.", "admin_settings.prettify_confirm": "정리하면 모든 의견이 제거됩니다. 계속하시겠습니까?", "admin_settings.mode.form": "형태", "admin_settings.mode.raw": "원본", @@ -325,7 +325,7 @@ "pad.importExport.exportworda.title": "Microsoft Word 파일로 내보내기", "pad.importExport.exportpdfa.title": "PDF로 내보내기", "pad.importExport.exportopena.title": "ODF(Open Document Format) 형식으로 내보내기", - "pad.importExport.noConverter.innerHTML": "일반 텍스트나 HTML 형식으로만 가져올 수 있습니다. 고급 가져오기 기능에 대해서는 리브레오피스를 설치하세요.", + "pad.importExport.noConverter.innerHTML": "일반 텍스트, HTML, 마이크로소프트 워드 (.docx) 또는 이더패드 파일을 직접 가져올 수 있습니다. PDF, ODT, DOC 또는 RTF와 같은 다른 형식을 가져오려면 서버 관리자가 리브레오피스를 설치해야 합니다. 자세한 내용은 이더패드 설명서를 참고하세요.", "pad.modals.connected": "연결함.", "pad.modals.reconnecting": "내 패드에 다시 연결하는 중...", "pad.modals.forcereconnect": "강제로 다시 연결", From 2ecd748fca08fd04c1dfca8da6b58e04cf79d100 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 29 Jun 2026 14:04:24 +0200 Subject: [PATCH 11/74] Localisation updates from https://translatewiki.net. --- src/locales/ja.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/locales/ja.json b/src/locales/ja.json index 54bec1704..5003a5ddd 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -6,6 +6,7 @@ "Chqaz", "Omotecho", "Shirayuki", + "Tensama0415", "Torinky" ] }, @@ -30,7 +31,7 @@ "admin_plugins_info.hooks_client": "クライアント側のフック", "admin_plugins_info.hooks_server": "サーバー側のフック", "index.newPad": "新規作成", - "index.createOpenPad": "または作成/編集するパッド名を入力:", + "index.createOpenPad": "編集するパッド名を入力", "index.openPad": "次の名称の既存の Pad を開く:", "pad.toolbar.bold.title": "太字 (Ctrl+B)", "pad.toolbar.italic.title": "斜体 (Ctrl+I)", @@ -39,7 +40,7 @@ "pad.toolbar.ol.title": "番号付きリスト (Ctrl+Shift+N)", "pad.toolbar.ul.title": "番号なしリスト (Ctrl+Shift+L)", "pad.toolbar.indent.title": "インデント (Tab)", - "pad.toolbar.unindent.title": "インデント解除 (Shift+Tab)", + "pad.toolbar.unindent.title": "アウトデント (Shift+Tab)", "pad.toolbar.undo.title": "元に戻す (Ctrl+Z)", "pad.toolbar.redo.title": "やり直し (Ctrl+Y)", "pad.toolbar.clearAuthorship.title": "作者の色分けを消去(Ctrl+Shift+C)", @@ -54,7 +55,7 @@ "pad.loading": "読み込み中...", "pad.noCookie": "Cookie could not be found. Please allow cookies in your browser! Your session and settings will not be saved between visits. \n\nクッキーが見つかりません。ブラウザの設定でクッキーの使用を許可するまで、アクセスの記録や設定は引き継がれません。原因はブラウザによって Etherpad が iFrame に組み込まれたからと考えられます。親ドメインの iFrame と同じドメイン/サブドメインに置かれているかどうか、Etherpad の設定を確認してください。", "pad.permissionDenied": "あなたにはこのパッドへのアクセス許可がありません", - "pad.settings.padSettings": "パッドの設定", + "pad.settings.padSettings": "全パッドの設定", "pad.settings.myView": "個人設定", "pad.settings.stickychat": "画面にチャットを常に表示", "pad.settings.chatandusers": "チャットとユーザーを表示", @@ -77,7 +78,7 @@ "pad.importExport.exportpdf": "PDF", "pad.importExport.exportopen": "ODF (Open Document Format)", "pad.modals.connected": "接続されました。", - "pad.modals.reconnecting": "パッドに再接続中...", + "pad.modals.reconnecting": "パッドに再接続中…", "pad.modals.forcereconnect": "強制的に再接続", "pad.modals.reconnecttimer": "再接続を試行中", "pad.modals.cancel": "中止", From 00e1892704bf0d7206f8e0dd6d77b4b08b67f0c2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Jun 2026 19:40:04 +0200 Subject: [PATCH 12/74] build(deps-dev): bump the dev-dependencies group across 1 directory with 12 updates (#8016) Bumps the dev-dependencies group with 12 updates in the / directory: | Package | From | To | | --- | --- | --- | | [@playwright/test](https://github.com/microsoft/playwright) | `1.61.0` | `1.61.1` | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `26.0.0` | `26.0.1` | | [eslint](https://github.com/eslint/eslint) | `10.5.0` | `10.6.0` | | [set-cookie-parser](https://github.com/nfriedly/set-cookie-parser) | `3.1.0` | `3.1.1` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.61.1` | `8.62.1` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.61.1` | `8.62.1` | | [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `6.0.2` | `6.0.3` | | [i18next](https://github.com/i18next/i18next) | `26.3.1` | `26.3.4` | | [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.21.0` | `1.22.0` | | [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) | `7.18.0` | `7.18.1` | | [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.0.16` | `8.1.1` | | [oxc-minify](https://github.com/oxc-project/oxc/tree/HEAD/napi/minify) | `0.137.0` | `0.138.0` | Updates `@playwright/test` from 1.61.0 to 1.61.1 - [Release notes](https://github.com/microsoft/playwright/releases) - [Commits](https://github.com/microsoft/playwright/compare/v1.61.0...v1.61.1) Updates `@types/node` from 26.0.0 to 26.0.1 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `eslint` from 10.5.0 to 10.6.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](https://github.com/eslint/eslint/compare/v10.5.0...v10.6.0) Updates `set-cookie-parser` from 3.1.0 to 3.1.1 - [Changelog](https://github.com/nfriedly/set-cookie-parser/blob/master/CHANGELOG.md) - [Commits](https://github.com/nfriedly/set-cookie-parser/compare/v3.1.0...v3.1.1) Updates `@typescript-eslint/eslint-plugin` from 8.61.1 to 8.62.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.62.1/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.61.1 to 8.62.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.62.1/packages/parser) Updates `@vitejs/plugin-react` from 6.0.2 to 6.0.3 - [Release notes](https://github.com/vitejs/vite-plugin-react/releases) - [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@6.0.3/packages/plugin-react) Updates `i18next` from 26.3.1 to 26.3.4 - [Release notes](https://github.com/i18next/i18next/releases) - [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md) - [Commits](https://github.com/i18next/i18next/compare/v26.3.1...v26.3.4) Updates `lucide-react` from 1.21.0 to 1.22.0 - [Release notes](https://github.com/lucide-icons/lucide/releases) - [Commits](https://github.com/lucide-icons/lucide/commits/1.22.0/packages/lucide-react) Updates `react-router-dom` from 7.18.0 to 7.18.1 - [Release notes](https://github.com/remix-run/react-router/releases) - [Changelog](https://github.com/remix-run/react-router/blob/react-router-dom@7.18.1/packages/react-router-dom/CHANGELOG.md) - [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.18.1/packages/react-router-dom) Updates `vite` from 8.0.16 to 8.1.1 - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v8.1.1/packages/vite) Updates `oxc-minify` from 0.137.0 to 0.138.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/napi/minify/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/crates_v0.138.0/napi/minify) --- updated-dependencies: - dependency-name: "@playwright/test" dependency-version: 1.61.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@types/node" dependency-version: 26.0.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: eslint dependency-version: 10.6.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: set-cookie-parser dependency-version: 3.1.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.62.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@typescript-eslint/parser" dependency-version: 8.62.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@vitejs/plugin-react" dependency-version: 6.0.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: i18next dependency-version: 26.3.4 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: lucide-react dependency-version: 1.22.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: react-router-dom dependency-version: 7.18.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: vite dependency-version: 8.1.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: oxc-minify dependency-version: 0.138.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- admin/package.json | 16 +- bin/package.json | 2 +- doc/package.json | 2 +- pnpm-lock.yaml | 950 +++++++++++++++++++++++---------------------- src/package.json | 8 +- ui/package.json | 2 +- 6 files changed, 499 insertions(+), 481 deletions(-) diff --git a/admin/package.json b/admin/package.json index 72f3eb9ce..4d64d851f 100644 --- a/admin/package.json +++ b/admin/package.json @@ -27,26 +27,26 @@ "@radix-ui/react-visually-hidden": "^1.2.6", "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", - "@typescript-eslint/eslint-plugin": "^8.61.1", - "@typescript-eslint/parser": "^8.61.1", - "@vitejs/plugin-react": "^6.0.2", + "@typescript-eslint/eslint-plugin": "^8.62.1", + "@typescript-eslint/parser": "^8.62.1", + "@vitejs/plugin-react": "^6.0.3", "babel-plugin-react-compiler": "19.1.0-rc.3", - "eslint": "^10.5.0", + "eslint": "^10.6.0", "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-react-refresh": "^0.5.3", - "i18next": "^26.3.1", + "i18next": "^26.3.4", "i18next-browser-languagedetector": "^8.2.1", - "lucide-react": "^1.21.0", + "lucide-react": "^1.22.0", "openapi-typescript": "^7.13.0", "react": "^19.2.7", "react-dom": "^19.2.7", "react-hook-form": "^7.80.0", "react-i18next": "^17.0.8", - "react-router-dom": "^7.18.0", + "react-router-dom": "^7.18.1", "socket.io-client": "^4.8.3", "tsx": "^4.22.4", "typescript": "^6.0.3", - "vite": "^8.0.16", + "vite": "^8.1.1", "vite-plugin-babel": "^1.7.3", "zustand": "^5.0.14" } diff --git a/bin/package.json b/bin/package.json index 60d51e034..34148d384 100644 --- a/bin/package.json +++ b/bin/package.json @@ -14,7 +14,7 @@ "ueberdb2": "6.1.14" }, "devDependencies": { - "@types/node": "^26.0.0", + "@types/node": "^26.0.1", "@types/semver": "^7.7.1", "typescript": "^6.0.3" }, diff --git a/doc/package.json b/doc/package.json index a766817da..765fd4fda 100644 --- a/doc/package.json +++ b/doc/package.json @@ -1,6 +1,6 @@ { "devDependencies": { - "oxc-minify": "^0.137.0", + "oxc-minify": "^0.138.0", "vitepress": "^2.0.0-alpha.17" }, "scripts": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index aea460703..83c6a9553 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -84,35 +84,35 @@ importers: specifier: ^19.2.3 version: 19.2.3(@types/react@19.2.17) '@typescript-eslint/eslint-plugin': - specifier: ^8.61.1 - version: 8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0)(typescript@6.0.3))(eslint@10.5.0)(typescript@6.0.3) + specifier: ^8.62.1 + version: 8.62.1(@typescript-eslint/parser@8.62.1(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0)(typescript@6.0.3) '@typescript-eslint/parser': - specifier: ^8.61.1 - version: 8.61.1(eslint@10.5.0)(typescript@6.0.3) + specifier: ^8.62.1 + version: 8.62.1(eslint@10.6.0)(typescript@6.0.3) '@vitejs/plugin-react': - specifier: ^6.0.2 - version: 6.0.2(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(tsx@4.22.4)) + specifier: ^6.0.3 + version: 6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4)) babel-plugin-react-compiler: specifier: 19.1.0-rc.3 version: 19.1.0-rc.3 eslint: - specifier: ^10.5.0 - version: 10.5.0 + specifier: ^10.6.0 + version: 10.6.0 eslint-plugin-react-hooks: specifier: ^7.1.1 - version: 7.1.1(eslint@10.5.0) + version: 7.1.1(eslint@10.6.0) eslint-plugin-react-refresh: specifier: ^0.5.3 - version: 0.5.3(eslint@10.5.0) + version: 0.5.3(eslint@10.6.0) i18next: - specifier: ^26.3.1 - version: 26.3.1(typescript@6.0.3) + specifier: ^26.3.4 + version: 26.3.4(typescript@6.0.3) i18next-browser-languagedetector: specifier: ^8.2.1 version: 8.2.1 lucide-react: - specifier: ^1.21.0 - version: 1.21.0(react@19.2.7) + specifier: ^1.22.0 + version: 1.22.0(react@19.2.7) openapi-typescript: specifier: ^7.13.0 version: 7.13.0(typescript@6.0.3) @@ -127,10 +127,10 @@ importers: version: 7.80.0(react@19.2.7) react-i18next: specifier: ^17.0.8 - version: 17.0.8(i18next@26.3.1(typescript@6.0.3))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@6.0.3) + version: 17.0.8(i18next@26.3.4(typescript@6.0.3))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@6.0.3) react-router-dom: - specifier: ^7.18.0 - version: 7.18.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + specifier: ^7.18.1 + version: 7.18.1(react-dom@19.2.7(react@19.2.7))(react@19.2.7) socket.io-client: specifier: ^4.8.3 version: 4.8.3 @@ -141,11 +141,11 @@ importers: specifier: ^6.0.3 version: 6.0.3 vite: - specifier: ^8.0.16 - version: 8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(tsx@4.22.4) + specifier: ^8.1.1 + version: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4) vite-plugin-babel: specifier: ^1.7.3 - version: 1.7.3(@babel/core@7.29.7)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(tsx@4.22.4)) + version: 1.7.3(@babel/core@7.29.7)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4)) zustand: specifier: ^5.0.14 version: 5.0.14(@types/react@19.2.17)(react@19.2.7)(use-sync-external-store@1.6.0(react@19.2.7)) @@ -166,11 +166,11 @@ importers: version: 4.22.4 ueberdb2: specifier: 6.1.14 - version: 6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.0))(nano@11.0.5)(pg@8.22.0)(redis@6.0.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.3(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.3(tslib@2.8.1)(typescript@6.0.3)) devDependencies: '@types/node': - specifier: ^26.0.0 - version: 26.0.0 + specifier: ^26.0.1 + version: 26.0.1 '@types/semver': specifier: ^7.7.1 version: 7.7.1 @@ -185,11 +185,11 @@ importers: version: 2.17.3 devDependencies: oxc-minify: - specifier: ^0.137.0 - version: 0.137.0 + specifier: ^0.138.0 + version: 0.138.0 vitepress: specifier: ^2.0.0-alpha.17 - version: 2.0.0-alpha.17(@types/node@26.0.0)(change-case@5.4.4)(esbuild@0.28.1)(jwt-decode@4.0.0)(oxc-minify@0.137.0)(postcss@8.5.15)(tsx@4.22.4)(typescript@6.0.3) + version: 2.0.0-alpha.17(@types/node@26.0.1)(change-case@5.4.4)(esbuild@0.28.1)(jwt-decode@4.0.0)(oxc-minify@0.138.0)(postcss@8.5.16)(tsx@4.22.4)(typescript@6.0.3) src: dependencies: @@ -291,7 +291,7 @@ importers: version: 12.5.5(@azure/core-client@1.10.1) mysql2: specifier: ^3.22.5 - version: 3.22.5(@types/node@26.0.0) + version: 3.22.5(@types/node@26.0.1) nano: specifier: ^11.0.5 version: 11.0.5 @@ -360,7 +360,7 @@ importers: version: 4.22.4 ueberdb2: specifier: 6.1.14 - version: 6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.0))(nano@11.0.5)(pg@8.22.0)(redis@6.0.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.3(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.3(tslib@2.8.1)(typescript@6.0.3)) underscore: specifier: 1.13.8 version: 1.13.8 @@ -372,8 +372,8 @@ importers: version: 0.10.1 devDependencies: '@playwright/test': - specifier: ^1.61.0 - version: 1.61.0 + specifier: ^1.61.1 + version: 1.61.1 '@types/async': specifier: ^3.2.25 version: 3.2.25 @@ -417,8 +417,8 @@ importers: specifier: ^10.0.9 version: 10.0.10 '@types/node': - specifier: ^26.0.0 - version: 26.0.0 + specifier: ^26.0.1 + version: 26.0.1 '@types/nodemailer': specifier: ^8.0.1 version: 8.0.1 @@ -447,11 +447,11 @@ importers: specifier: ^5.0.0 version: 5.0.0 eslint: - specifier: ^10.5.0 - version: 10.5.0 + specifier: ^10.6.0 + version: 10.6.0 eslint-config-etherpad: specifier: ^4.0.5 - version: 4.0.5(eslint@10.5.0)(typescript@6.0.3) + version: 4.0.5(eslint@10.6.0)(typescript@6.0.3) etherpad-cli-client: specifier: ^4.0.3 version: 4.0.3 @@ -468,8 +468,8 @@ importers: specifier: ^0.4.2 version: 0.4.2 set-cookie-parser: - specifier: ^3.1.0 - version: 3.1.0 + specifier: ^3.1.1 + version: 3.1.1 sinon: specifier: ^22.0.0 version: 22.0.0 @@ -484,7 +484,7 @@ importers: version: 6.0.3 vitest: specifier: ^4.1.9 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.0.0)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(tsx@4.22.4)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.0.1)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4)) ui: devDependencies: @@ -495,8 +495,8 @@ importers: specifier: ^6.0.3 version: 6.0.3 vite: - specifier: ^8.0.16 - version: 8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(tsx@4.22.4) + specifier: ^8.1.1 + version: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4) packages: @@ -764,21 +764,12 @@ packages: resolution: {integrity: sha512-1r0kXXOkKPhmHycpdZTzRlr2d6l0m16b+ug1iJDMS84Ml0t6w7m26BKjFYbZ2Ng7kX50wyqgUTFqxln1ygvMUw==} engines: {node: '>=20'} - '@emnapi/core@1.10.0': - resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} - '@emnapi/core@1.11.1': resolution: {integrity: sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==} - '@emnapi/runtime@1.10.0': - resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} - '@emnapi/runtime@1.11.1': resolution: {integrity: sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==} - '@emnapi/wasi-threads@1.2.1': - resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} - '@emnapi/wasi-threads@1.2.2': resolution: {integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==} @@ -1048,14 +1039,8 @@ packages: '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} - '@napi-rs/wasm-runtime@1.1.4': - resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==} - peerDependencies: - '@emnapi/core': ^1.7.1 - '@emnapi/runtime': ^1.7.1 - - '@napi-rs/wasm-runtime@1.1.5': - resolution: {integrity: sha512-AWPoBRJ9tsnVhor4sjO7rkni+7p+2IAEFj6cx06UgP10jkQHqay/36uRV/bFkgrh18D9vb4cr8Q0Pthskgzy+Q==} + '@napi-rs/wasm-runtime@1.1.6': + resolution: {integrity: sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==} peerDependencies: '@emnapi/core': ^1.7.1 '@emnapi/runtime': ^1.7.1 @@ -1142,141 +1127,141 @@ packages: resolution: {integrity: sha512-/UhIkaZgPutTFmQ7RnIJGgDXZmtEJ7Dvi86xNTFWcnRxVRNk/aotsqDJYeEvDP+FSMB2SdW+pQzNMcWP0rwuNA==} engines: {node: '>=14'} - '@oxc-minify/binding-android-arm-eabi@0.137.0': - resolution: {integrity: sha512-L9qvMdn3PCvZSjVdKYdQypGgfpw/YTLO99hx9agH/L7ekwN5PjbVy0sklcuKFUMPdqu/hpXwidJkRK1GGEVEvg==} + '@oxc-minify/binding-android-arm-eabi@0.138.0': + resolution: {integrity: sha512-bnltntiD7kyAmpU4YxmNBt+aE8B5hs8R5HUfkLVr/6ofI13hKnxkA3cEfpziUiWmvNKoG0kLDUpaid0kPDCaPw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxc-minify/binding-android-arm64@0.137.0': - resolution: {integrity: sha512-OjsHxnabbs9JTcKpET+X5GRpJGeJ+w+3MVGkWiyU+7Lg1qedz2l3cqH4Mcvp6tA/zlNowz3vBH0dY62gs5Ou0g==} + '@oxc-minify/binding-android-arm64@0.138.0': + resolution: {integrity: sha512-tdLSE1pM0KBSZiBqwMgn7GNEakyJUBvxjZNhHLPNMCtdc7Jezh7iq/Wzs5aMFN+DMs+hbnfYYDvUup1XsR2lBQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxc-minify/binding-darwin-arm64@0.137.0': - resolution: {integrity: sha512-gvSLNiAq78CO4cVpPPkQaolnVJY4wMbFD+6hSNjkolbAe2JPZgSVoTcULq8BR9nxyuRQ59aB+gwlbyt6N3IF/Q==} + '@oxc-minify/binding-darwin-arm64@0.138.0': + resolution: {integrity: sha512-PTFcY0+bK2jaUve9Twl2BzsWAUCIOVXaWrufSQWI3mX2T4kUeqm5tDh32bKfQKb+Y23CE0djJk2p851+bxEykg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxc-minify/binding-darwin-x64@0.137.0': - resolution: {integrity: sha512-MVRaUH325fJ87dQQK2kumQM3RKpNdLUv9KnDzKXQILF7mufmtxqwtsCm0zDz0HQegbNcTmruJEVzGzjchx5wTQ==} + '@oxc-minify/binding-darwin-x64@0.138.0': + resolution: {integrity: sha512-xk7Bp8tjBttB0hW4UGZMlm0Nyih0A5PosSC1lS+04919cKJS2uUFXRAiYoSHmfLGUASUURCT2ZcDjiDVuJHDPA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxc-minify/binding-freebsd-x64@0.137.0': - resolution: {integrity: sha512-baMrT+nmjiMH/Vemvj4TFb6tY4aCJw3mEJ5ysBH4uczijZSJVjt6I/YYVKhT8OcOrJJognVzufoNEev1+FwntA==} + '@oxc-minify/binding-freebsd-x64@0.138.0': + resolution: {integrity: sha512-TGS2CBDdDTlMBjHTVQ5vY5tvAx7M+XSOpHthTvR5whyuAln9oE4ojXBDmCZdwG42UZR+GI1gAndxsEVQUaAjjw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxc-minify/binding-linux-arm-gnueabihf@0.137.0': - resolution: {integrity: sha512-O1sDkIIW2OR1knoN+zboHmV16YYIeOl32YbwbftdCd9pKb/fEmUb0ZHxUNVHqopOxnKRJlPGUHGrxeR8JOeEqQ==} + '@oxc-minify/binding-linux-arm-gnueabihf@0.138.0': + resolution: {integrity: sha512-l2Z9a+2DRLKWFMQOu/s5ad/06FyJtdC3RSGlaJb9IwVBH7khIKV8zrf+lNYSy1v+iQJE54YFt9YorokOLQL+1w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-minify/binding-linux-arm-musleabihf@0.137.0': - resolution: {integrity: sha512-9pVdFYTgHasOQlmAOyI1HKC6biqyQdg2fwzSZapSVJJm808j0mTiUPZbGJVoLWlda92j+rQeWqYWDqrK9UJdQQ==} + '@oxc-minify/binding-linux-arm-musleabihf@0.138.0': + resolution: {integrity: sha512-IG9/jFTYx9S/63rRP/I4/Xk6xvYRK4ErBAwDNerxi0QaMT7Z/c6UwoXvMq1k5pgVMhJNhSzP3aRA2d0XhuCJfw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-minify/binding-linux-arm64-gnu@0.137.0': - resolution: {integrity: sha512-QmaIoG8RouuFR22IbMgAdtgSF5JbW65KUfA9WKtcOqueoQ++jGirR4+J97hqLuOi43REWwHiH8u0TPXadCN4Qg==} + '@oxc-minify/binding-linux-arm64-gnu@0.138.0': + resolution: {integrity: sha512-9LFYnphlXv40KRp6jclqjegvnj15A483SnI+IlrBxZzuQo6DDI7bTWMCi7poEjbF1+ejKLvxS2+PKTxc28JYsw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxc-minify/binding-linux-arm64-musl@0.137.0': - resolution: {integrity: sha512-8699hkSLlNjgk0+y63Z2qmM3CUtlj0VlEESwsz1U6zf/wuXQOY4g5J2wUhdxi5vH3p6KOZyEmNGTrTm1R2aWKw==} + '@oxc-minify/binding-linux-arm64-musl@0.138.0': + resolution: {integrity: sha512-S4vkxaA2PmK7WJFi9P22j5LVw5X6kaBbu03vbuvm/5vGMjvxA69uMI6Xxb1NaVDb3+3gNPr2QCuTJFraVBIj4A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxc-minify/binding-linux-ppc64-gnu@0.137.0': - resolution: {integrity: sha512-/GZYyq6ljOc1FfMQr5MdDC3MCbBT4lQNJF4uSpkorVcLOCDYeok1H9DRDKifJ/HVB+kmuLLixd9efPLmbb1skA==} + '@oxc-minify/binding-linux-ppc64-gnu@0.138.0': + resolution: {integrity: sha512-EyDw91JDwS04LhNe4E4jDL03XTXzE+ildc+CgesGrOKJd480lVRckyeICXamN3u5blQ+IWkDwcUUHjr70ckEfA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxc-minify/binding-linux-riscv64-gnu@0.137.0': - resolution: {integrity: sha512-nG+C+xZ3k7uNs9zqT0QEte5jC3JJF2TzrWTh5L1iT5BLrTjBkTR9Nds3JGICq3OiSC7ISD8IrC/6+EmuKHS4MQ==} + '@oxc-minify/binding-linux-riscv64-gnu@0.138.0': + resolution: {integrity: sha512-A7Zmi0z27S4IwX6ZVgRZnlRgPmuyWk3DMr+0U9TviYA1SxvFwSOoD990OfVNe8gedUzJxd6ZgLWG5umRJV0diw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxc-minify/binding-linux-riscv64-musl@0.137.0': - resolution: {integrity: sha512-LJ542BS6wntybDD9H69qLNhTSDENj0CPgl4uLMz4SnLUnptNuoOd1T64EX1nfxmPaxxt5en2lR5R54aewwjcdQ==} + '@oxc-minify/binding-linux-riscv64-musl@0.138.0': + resolution: {integrity: sha512-T96QBrkygS3HI4+LfBIBctOUhCfcKlO1B02e2IDckNvvvLKMjCgdxKXKShnK7ALBUvRgV1+Nz55zGLuEJvDYtg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxc-minify/binding-linux-s390x-gnu@0.137.0': - resolution: {integrity: sha512-Gav3Q3MKU4xYpDKHSEjZS0PPxKMcm3YUHHP8oLPk3owRdAFRc+EJ0aNGL6xuzryzShDjkl0U4chsdwz96RpVWw==} + '@oxc-minify/binding-linux-s390x-gnu@0.138.0': + resolution: {integrity: sha512-nCO8S7BKLJ8XvrJVzerG8lgsKRdnXXiZfVoLkR/Xf7aEpd51auONt2Fq/y++G8Lj8NJvTP6J/BQvEtjxv/xkjg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxc-minify/binding-linux-x64-gnu@0.137.0': - resolution: {integrity: sha512-LV6kLxEv1ybaz+p9otVIttA22GGCEnLwCY//FFaAToqznO9OfA8RCaPVJiY3UpXjCyKyPQnShRyTEgM9rXR/8A==} + '@oxc-minify/binding-linux-x64-gnu@0.138.0': + resolution: {integrity: sha512-PB4wXHCwQ8pr8pXvF8WS8RxefLKmtdRYyNd+Y/823FbewndKXW98XdzOL00gkl2uCF/7JCKWhBsGc+O9q6KEvA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxc-minify/binding-linux-x64-musl@0.137.0': - resolution: {integrity: sha512-eX91M3g+QFsBEYeCYci6HAtI9yqt6CTAgMSs4gRtEX2WGP+gSAlmBv/89ILUjANlulekIKCIWR5TVK13uxx7eQ==} + '@oxc-minify/binding-linux-x64-musl@0.138.0': + resolution: {integrity: sha512-VImV8mlTZwCrfr9SjdBE9e9jlppC9l3cOFP9NTI+Lx6LBhoZKPs4DgMpE0x4yOeUsthaX58KyZf+ObET3vQoIA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxc-minify/binding-openharmony-arm64@0.137.0': - resolution: {integrity: sha512-22nO65Lk/975R0XHtxxE7h2Yp+XYX4URm95IHyN1dwvQUOS6B4hxrWblGbvGLqh4YtlUaqP39p46wnDdkQfN4g==} + '@oxc-minify/binding-openharmony-arm64@0.138.0': + resolution: {integrity: sha512-msHKM5DM4wtJOluUM7+F9I0jbS6sha4oOhMis11TyeqmgSYIo2vaXfWC5rHwXN+zeU4FAS7yYPcC0YQwZfE8Dw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxc-minify/binding-wasm32-wasi@0.137.0': - resolution: {integrity: sha512-z1MjC2uUzyi4tWnhpHifEGqSNKfWHLoKzrF+057NzMMhvdi14uGJSOFHFXzzyBLns0JxCgp0huJq0Vi3Y8AP9Q==} + '@oxc-minify/binding-wasm32-wasi@0.138.0': + resolution: {integrity: sha512-4ynGUn47p7cDhbzSHv8Ur74K1Tzfyzx/QbPmV3K6lUlktNRy4rC1+xpyJlUSyW/kzRRTnmp9Z0FTg7fgkF+STA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] - '@oxc-minify/binding-win32-arm64-msvc@0.137.0': - resolution: {integrity: sha512-P0EbyspXEH4mNXpv3z9Zq+uQCKkz4Iaij3ie3jNCR4phY7fKXKbsatKLKoVVrgJ920C+ZhemmbZjcB3FtL+a+A==} + '@oxc-minify/binding-win32-arm64-msvc@0.138.0': + resolution: {integrity: sha512-ynqCyjrU3c0yGpt2JBoZINJEkL0k3OI/5tn9JSRFT1aDIXpto2K+j3vy4IMBf619+UNUf8K3gOcKJ9hDmRNaqQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxc-minify/binding-win32-ia32-msvc@0.137.0': - resolution: {integrity: sha512-Lo0AIHKL/It+xxnkpNKRDetkPVPa/AFT+7G8pM29Eo5cDWn7HvHl3OUadwcKEiMRtKQ/2Vu2xk59RbULuolpEA==} + '@oxc-minify/binding-win32-ia32-msvc@0.138.0': + resolution: {integrity: sha512-0atMEQDg4/gKBF2qjj63DSHIgYo/YGgkRrJnv/W26rWwzm72qOfBbwqxhbeJxvjADxKxyUFu9gzgvPhCssrcyA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxc-minify/binding-win32-x64-msvc@0.137.0': - resolution: {integrity: sha512-wPoXpXofwwB0P8ndU7CEKZa/JhmfU7ixaBKcfDkoBT7TFeNrZj7yWxaV4SDAMRYymFW8eCJgzbWESpTXjH1YVQ==} + '@oxc-minify/binding-win32-x64-msvc@0.138.0': + resolution: {integrity: sha512-592gz+7hvKyJc6xun0gF1fSXpp9XsXqlg53DfFI7BsElXouYvYdNk4mRmMzRg7arrz+WRhU9Ba1N1nitDnkG+w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@oxc-project/types@0.133.0': - resolution: {integrity: sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA==} + '@oxc-project/types@0.137.0': + resolution: {integrity: sha512-WT+Gb24i8hmvo85AIv2oEYouEXkRlKAlT9WaCa3TfLgNCN+GhrJOGZuIlMouAh38Qe4QOx26eUOVsq70qXrywA==} '@paralleldrive/cuid2@2.2.2': resolution: {integrity: sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==} - '@playwright/test@1.61.0': - resolution: {integrity: sha512-cKA5B6lpFEMyMGjxF54QihfYpB4FkEGH+qZhtArDEG+wezQAJY8Pq6C7T1SjWz+FFzt3TbyoXBQYk/0292TdJA==} + '@playwright/test@1.61.1': + resolution: {integrity: sha512-8nKv6+0RJSL9FE4jYOEGXnPeM/Hg12qZpmqzZjRh3qM0Y7c3z1mrOTfFLids72RDQYVh9WpLEfR5WdpNX4fkig==} engines: {node: '>=18'} hasBin: true @@ -1567,97 +1552,97 @@ packages: resolution: {integrity: sha512-y+xFx+Zz54Xhr8jUdnLENYnt7Y7GEDL6Q03ga7rTtX8DVwefX9H+hQEPgJp1nda7vdH+wJ9/HBVvyfBuW9x6rA==} engines: {node: '>=18.17.0', npm: '>=9.5.0'} - '@rolldown/binding-android-arm64@1.0.3': - resolution: {integrity: sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw==} + '@rolldown/binding-android-arm64@1.1.3': + resolution: {integrity: sha512-DT6Z3PhvioeHMvxo+xHc3KtqggrI7CCTXCmC2h/5zUlp5jVitv7XEy+9q5/7v8IolhlioawpMo8Kg0EEBy7J0g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.0.3': - resolution: {integrity: sha512-PcAhP+ynjURNyy8SKGl5DQP94aGuB/7JrXJb/t7P+hanXvQVMWzUvRRhBAcg/lNRadBhoUPqSoP4xw5tR/KBEA==} + '@rolldown/binding-darwin-arm64@1.1.3': + resolution: {integrity: sha512-0NwgwsjM7LrsuVnXMK3koTpagBNOhloc/BNjKqZjv4V5zI5r13qx69uVhRx+o5Z0yy4Hzq+lpy7TAgUG/ocvrw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.3': - resolution: {integrity: sha512-9YpfeUvSE2RS7wysJ81uOZkXJz7f7Q55H2Gvp3VEw/EsahqDtrphrZ0EwDLK5vvKOzaCrBsjF8JmnMLcUt78Gg==} + '@rolldown/binding-darwin-x64@1.1.3': + resolution: {integrity: sha512-YtiBp4disu6V560loT6PjMdiRaWmVvDNrUunAalbiFx2ggeJwxdAsgZMcoGP17uyAsTwAj5V1niksxlHnVQ1Sw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.3': - resolution: {integrity: sha512-yB1IlAsSNHncV6SCTL27/MVGR5htvQsoGxIv5KMGXALp+Ll1wYsn+x98M9MW7qa+NdSbvrrY7ANI4wLJ0n1e6g==} + '@rolldown/binding-freebsd-x64@1.1.3': + resolution: {integrity: sha512-yD3EkEdXk2LypPxnf/kSZHirarsI8gcPzc62SukhR9VJTyvV+F9Q/GxWNuCojc7sXyuVC4DxRGhdDK4X8VSsbw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.3': - resolution: {integrity: sha512-Yi30IVAAfLUCy2MseFjbB1jAMDl1VMCAas5StnYp8da9+CKvMd2H2cbEjWcw5NPaPqzvYkVIaF1nNUG+b7u/sw==} + '@rolldown/binding-linux-arm-gnueabihf@1.1.3': + resolution: {integrity: sha512-c+8vieQbsD7HNAHKIA34w0GJ9FedFFuJGD+7E6vz7Q3uqAIugL5p45fhlsj4UaAsHpcmlqugBWMhA0/j7o0sIg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.3': - resolution: {integrity: sha512-jsO7R8To+AdlYgUmN5sHSCZbfhtMBkO0WUx8iORQnPcMMdgr7qM2DQmMwgabs3GhNztdmoKkMKQFHD6DTMCIQw==} + '@rolldown/binding-linux-arm64-gnu@1.1.3': + resolution: {integrity: sha512-50jD0uUwLvur7Zz9LHz17kaAdTPjn5wN93hEgjvmYFRZwiR7ZJYovTd5ipyWJDAnXKvZ+wgc+/Ika6dwSF5OcA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-musl@1.0.3': - resolution: {integrity: sha512-VWkUHwWriDciit80wleYwKILoR/KMvxh/IdwS/paX+ZgpuRpCrKLUdadJbc0NpBEiyhpYawsJ73j9aCvOH+f7Q==} + '@rolldown/binding-linux-arm64-musl@1.1.3': + resolution: {integrity: sha512-BO9+oPL8K9poZJBfYPsXNtYjPE5uM3qeehT3aFcW4LITOl+iSqhp0abzjR2nWBUNjIZeKXjAEWBZ64WjNoHd6w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@rolldown/binding-linux-ppc64-gnu@1.0.3': - resolution: {integrity: sha512-5f1laC0SlIR0yDbFCd8acUhvJIag6N3zC5P7oUPN6wX0aOma+uKJ0wBDH5aq7I1PVI2ttTlhJwzwRIBnLiSGEg==} + '@rolldown/binding-linux-ppc64-gnu@1.1.3': + resolution: {integrity: sha512-f3VpLB1vQ0Eo6ecr/6cekLnvYMFF4YBFoVGkfkvPLq1bAkbAwHYQPZKoAmG6OJyTcxxoC+AvezGx/S1obNC0Mw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.0.3': - resolution: {integrity: sha512-Iq4ko0r4XsgbrF/LunNgHtAGLRRVE2kXonAXQ/MV0mC6jQpMOhW1SvtZja2EhC/kd05++bP78dsqBeIQyYJ6Yg==} + '@rolldown/binding-linux-s390x-gnu@1.1.3': + resolution: {integrity: sha512-AmurZ26Pqx/RI9N1gzEOCklkKXl927yjfXWUUS0O7Puh8ARM/Ob8qfrD3qnWksScdw6cSrW5PSHE9DyLu7+PtA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.0.3': - resolution: {integrity: sha512-B8m6tD5+/N5FeNQFbKlLA/2yVq9ycQP1SeedyEYYKWBNR3ZQbkvIUcNnDNM03lO1l5F2roiiFJGgvoLLyZXtSg==} + '@rolldown/binding-linux-x64-gnu@1.1.3': + resolution: {integrity: sha512-JJpqs8bRGITDOdbkNKnlojzBabbOHrqjSvDr0IVsZObE1lBcPjxItUEY9eWIDbxaJ3cGrXPWGfGkIxFijg/URg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-musl@1.0.3': - resolution: {integrity: sha512-pSdpdUJHkuCxun9LE7jvgUB9qsRgaiyNNCX7m/AvHTcq67AiT/Yhoxvw5zPfhrM8k/BfP8ce/hMOpthKDpEUow==} + '@rolldown/binding-linux-x64-musl@1.1.3': + resolution: {integrity: sha512-rSJcdjPxzA/by/6/rYs+v+bXU7UjvnbUWz8MJb6kh6+knqB1dCrtHg0uu7C/4haqJvqdkYHQ5IGn+tCH9GLW/g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@rolldown/binding-openharmony-arm64@1.0.3': - resolution: {integrity: sha512-OXXS3RKJgX2uLwM+gYyuH5omcH8fL1LJs96pZGgtetVCahON57+d4SJHzTgZiOjxgGkSnpXpOsWuPDGAKAigEg==} + '@rolldown/binding-openharmony-arm64@1.1.3': + resolution: {integrity: sha512-hQ3/PYkDJICgevvyNcVrihVeqq7k1Pp3VZ9lY+dauAYUJKO+auqApvANhvR1An9BhmqYKvW2Mu1F9u4DXSMLxQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-wasm32-wasi@1.0.3': - resolution: {integrity: sha512-JTtb8BWFynicNSoPrehsCzBtOKjZ6jhMiPFEmOiuXg1Fl8dn2KHQob+GuPSGR0dryQa1PQJbzjF3dqO/whhjLg==} + '@rolldown/binding-wasm32-wasi@1.1.3': + resolution: {integrity: sha512-Elcv/BtML9lXrV6JuKITc/grN2kYV9gjsQpW8Jfw4ioK0TOkjBjye0nnyqQNy9STNaI20lXNaQBRrD5gSgR0Yg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.3': - resolution: {integrity: sha512-gEdFFEN70A/jxb2svrWsN3aDL7OUtmvlOy+6fa2jxG8K0wQ1ZbdeLGnidov6Yu5/733dI5ySfzFlQ/cb0bSz1g==} + '@rolldown/binding-win32-arm64-msvc@1.1.3': + resolution: {integrity: sha512-2DrEfhluH9yhiaFApmsjsjwrSYbNcY1oFTzYSP1a535jDbV98zCFanA/96TBUd0iDFcxGmw9QRExwGCXz3U+/g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.3': - resolution: {integrity: sha512-eXB7CHuaQdqmJcc3koCNtNPmT/bj2gc999kUFgBxG8Ac0NdgXc4rkCHhqrgrhN3zddvvvrgzj1e90SuSfmyIXA==} + '@rolldown/binding-win32-x64-msvc@1.1.3': + resolution: {integrity: sha512-OL4OMk7UPXOeVGGd3qo5zJyPIljf4AFgk5QAkPPS+OoLuOOozhuaQGC18MxVTnw/06q93gShAJzlwnSCY9YtqA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -1743,8 +1728,8 @@ packages: '@tootallnate/quickjs-emscripten@0.23.0': resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} - '@tybys/wasm-util@0.10.2': - resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==} + '@tybys/wasm-util@0.10.3': + resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==} '@types/accepts@1.3.7': resolution: {integrity: sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==} @@ -1880,8 +1865,8 @@ packages: '@types/node@18.19.130': resolution: {integrity: sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==} - '@types/node@26.0.0': - resolution: {integrity: sha512-vf2YFi1iY9lHGwNJMs01biZFbKJkrZR1T6/MlzjhJLPdntOHLhTrDSnSVcdtvjihi4VQNlrFRIxLsDBlQpAipA==} + '@types/node@26.0.1': + resolution: {integrity: sha512-fc3KiUoBt6kie0N9bIW3E47vZsuaMf0PM2AaUpLCLT0s/LvX1nxAim6Fc049cNxODPpGm6qRAuUOB86SkRuPQw==} '@types/nodemailer@8.0.1': resolution: {integrity: sha512-PxpaInm8V1JQDd4j0ds5HfvWQk8JupS1C0Picb96QJsrrRDjBH+DlK7L4ZdNSqNULhiZRQHc40nLVShaGxXAMw==} @@ -1968,11 +1953,11 @@ packages: typescript: optional: true - '@typescript-eslint/eslint-plugin@8.61.1': - resolution: {integrity: sha512-ZPlVl3PB3et/59Ne0fv/sci6ZXz4T4Hp4nTJ56i/Y0gR89ARb+KphojTq6j+56E5PIezmOIOOWyY+aWQFd+IkQ==} + '@typescript-eslint/eslint-plugin@8.62.1': + resolution: {integrity: sha512-4EQM77WgVNxj7OkL/5b/D/xZsw00G577+UriYTC7JF5opcF3T2AuoeY7ueLaZgSVjSgCS6yOAJB5bRGLPSJUzA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.61.1 + '@typescript-eslint/parser': ^8.62.1 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' @@ -1986,15 +1971,15 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.61.1': - resolution: {integrity: sha512-PJ5vePq5/ognBbrIcoC5+SHO5dfpeLPzP9FpLkzWrguoYQEeeSjlJpVwOpo1JRSTEi7dRcwNy4h4dzV70PqHcg==} + '@typescript-eslint/parser@8.62.1': + resolution: {integrity: sha512-sPhE4iHuJDSvoAiec+Ro8JyXw8f0ql13HFR82P99nCm9GwTEKG0KYLvDe6REk8BCXuit6vJAv/Yxg5ABaNS2rA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.61.1': - resolution: {integrity: sha512-PrC4JYGmR241lYnfhmKGTXkFqv8+ymbTFgSAY0fVXpY82/QkMw5TZPl+vGzuDDU2QYJk9fIDOBTntF+yDv9LEA==} + '@typescript-eslint/project-service@8.62.1': + resolution: {integrity: sha512-yQ3RgY5RkSBpsNS1Bx/JQEcA24FOSdfGktoyprAr5u18390UQdtVcfnEv4nIrIshNnavlVyZBKxQwT1fIAE6cg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' @@ -2003,12 +1988,12 @@ packages: resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@8.61.1': - resolution: {integrity: sha512-L2bdIeoQS8FlKAvONAr20w6OcLXeB+qiDKbAooS9A0Ben+iSIkBef0FxqwKWYqt5sa0i4KJtxVyVmhMylKzF5w==} + '@typescript-eslint/scope-manager@8.62.1': + resolution: {integrity: sha512-r4d249KbQ1SFdpeStvob8Ih6aPPIzfqllPVOtvhve6ZcpuVcYo5/7zUWckKpHE7StASX4kTKZTLf0WQm/wPkcg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.61.1': - resolution: {integrity: sha512-UN/H4di+OO7EWx2ovME+8t31YO+KVnK0RRKEHR3kOt21/Ay8BOq3M1OMvWs5vNiqcFCYGYoxK3MXPZzmMUE+yg==} + '@typescript-eslint/tsconfig-utils@8.62.1': + resolution: {integrity: sha512-xadytJqX9vJVQ2fdQjkcIVigwaOJNWkpjdLt6cEQ+xPnrI1fkp+/jZE/I97k9KUjqtpd25i0HeyZf3T6dutv2g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' @@ -2023,8 +2008,8 @@ packages: typescript: optional: true - '@typescript-eslint/type-utils@8.61.1': - resolution: {integrity: sha512-GYRicKmVK0C4fsKgaACaknOUAq9Oa2kwsjnpFhFcS/5p4Ht5IP9OVLbgIgcK4SRk92nVHFluurg1lumD9dBcLw==} + '@typescript-eslint/type-utils@8.62.1': + resolution: {integrity: sha512-aXM5xlqXiTxPibXB93cLAURfT3rlizf7uMXISCXy66Isr/9hISJx3yDsKl0L7lKa51b8JpFuNKby0/O0pEm9jg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -2034,8 +2019,8 @@ packages: resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@8.61.1': - resolution: {integrity: sha512-G+CRlPqLv7Bz1IZVs03x5K59F1veqL0EJUROAdGhKsEq8qOiRiZbI+HUojPq5l0fEGOKModD9br6lObhB8zkoA==} + '@typescript-eslint/types@8.62.1': + resolution: {integrity: sha512-ooCzJFaf+Hg+uG6fA3NRFGuFjlfNlDhBthbv4ZPU/0elCAFUfnyXUvf/WOpHz/jYwSmvU2GkR2LtyUfy1AxZ1Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@7.18.0': @@ -2047,8 +2032,8 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.61.1': - resolution: {integrity: sha512-u+oQD3BqYWPc8YV9Zab4vaJElJuwOLPRc10Jm1o/qS+6Qwen14HCWwx0Seo4LnSn2wxea2Ik8DxPt2/FHmuhrg==} + '@typescript-eslint/typescript-estree@8.62.1': + resolution: {integrity: sha512-xMcW9oP9u7fAMXYs9A65CVmtLQe2r//oXINHfi8HV+oiqhih17sbLdhXr4540YWlgpDKQdY854OL5ZrdCiQsAA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' @@ -2059,8 +2044,8 @@ packages: peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/utils@8.61.1': - resolution: {integrity: sha512-1+P/3Dj6jvtybE1q0HQ6yBt/gq+oKJyLdEv4HdnqasaEXRSYCAsD59mXEVQnM/ULNdQxbX77tdG4jPRjIS6knA==} + '@typescript-eslint/utils@8.62.1': + resolution: {integrity: sha512-sHtbPfuKNZCG+ih8SyjjucqRntSVmp8XgL5u6o9mAhiSn8ds5o/M/XdM0abweme2Tln3szOstOrZ9OXitvPh0g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -2070,8 +2055,8 @@ packages: resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@8.61.1': - resolution: {integrity: sha512-6fJ9MHWtK14C1DSkiMlHUSOmrVebL7150xZJBlJiL62jjhIA4JmOq6flwBgDxIdBKKdoiZRel+dfPD5MLfny3w==} + '@typescript-eslint/visitor-keys@8.62.1': + resolution: {integrity: sha512-4g3BLxfdTMy8iZG0MaBkadnlRrCJ74cQiFbyEVMrkwIoqdyaXXQM22cotDvrl4x28wgIZ9rEJRoM+mmhSJpJ1g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typespec/ts-http-runtime@0.3.5': @@ -2163,8 +2148,8 @@ packages: cpu: [x64] os: [win32] - '@vitejs/plugin-react@6.0.2': - resolution: {integrity: sha512-DlSMqo4WhThw4vB8Mpn0Woe9J+Jfq1geJ61AKW0QEgLzGMNwtIMdxbDUzLxcun8W7NbJO0e2Jg/Nxm3cCSVzzg==} + '@vitejs/plugin-react@6.0.3': + resolution: {integrity: sha512-vmFvco5/QuC2f9Oj+wTk0+9XeDFkHxSamwZKYc7MxYwKICfvUvlMhqKI0VuICPltGqh1neqBKDvO4kes1ya8vg==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: '@rolldown/plugin-babel': ^0.1.7 || ^0.2.0 @@ -2500,8 +2485,8 @@ packages: brace-expansion@1.1.15: resolution: {integrity: sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==} - brace-expansion@5.0.6: - resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} + brace-expansion@5.0.7: + resolution: {integrity: sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==} engines: {node: 18 || 20 || >=22} braces@3.0.3: @@ -3174,8 +3159,8 @@ packages: resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint@10.5.0: - resolution: {integrity: sha512-1y+7C+vi12bUK1IpZeaV3gsH9fHLBmPvYmPx42pvT/E9yG0IC8g3PUZZgp0+JLJl7ZDK0flc2gc+Aw9dpCvIsQ==} + eslint@10.6.0: + resolution: {integrity: sha512-6lVbcqSodALYo+4ELD0heG6lFiFxnLMuLkiMi2qV8LMp54N8tE8FT1GMH+ev4Ti00nFjNze2+Su6DsV5OQW3Dg==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: @@ -3598,8 +3583,8 @@ packages: i18next-browser-languagedetector@8.2.1: resolution: {integrity: sha512-bZg8+4bdmaOiApD7N7BPT9W8MLZG+nPTOFlLiJiT8uzKXFjhxw4v2ierCXOwB5sFDMtuA5G4kgYZ0AznZxQ/cw==} - i18next@26.3.1: - resolution: {integrity: sha512-txQqd5EULsqEh9OJqRH15aCaOuy/nLJyhw5EHCSKLKJE1aBbb3Zve2+uQIxgWhPm1QqUQoWyQBm2kfmmIrzkcQ==} + i18next@26.3.4: + resolution: {integrity: sha512-pa7m0d7pBDqGHZxljT+WPFeyFgQ7P7SciPPo1tTqYuO0z4sqADYhwnBESmmGp/wEof1inwdls/k8ZgTg8rxFHA==} peerDependencies: typescript: ^5 || ^6 peerDependenciesMeta: @@ -4089,8 +4074,8 @@ packages: resolution: {integrity: sha512-DqC6n3QQ77zdFpCMASA1a3Jlb64Hv2N2DciFGkO/4L9+q/IpIAuRlKOvCXabtRW6cQf8usbmM6BE/TOPysCdIA==} engines: {bun: '>=1.0.0', deno: '>=1.30.0', node: '>=8.0.0'} - lucide-react@1.21.0: - resolution: {integrity: sha512-reEZMXq8Qdd5jg5XYkQ5TR1fB/GiQ7ih4vcrthYDtgjSDwh0i6/YLiGjsWsIwgN49gpAnd4J2elSNzncMEEUUQ==} + lucide-react@1.22.0: + resolution: {integrity: sha512-c9o3l0PiNcgOQDW4F31BEYHudE7kgxVt3o30qMl36ZPwTxXlGB4QnLilhERvVM4uh/pl5MDyY1/gzZSYcHDtBg==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -4282,8 +4267,8 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@3.3.12: - resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==} + nanoid@3.3.15: + resolution: {integrity: sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -4450,8 +4435,8 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} - oxc-minify@0.137.0: - resolution: {integrity: sha512-uu8j2YjPoRUqk4CMkb1+BszzeAZTiVWyPBZczSxL9POc+q6OECDa6eRscKXoNOqOxceTFoIJHnDlBsgxK3fYng==} + oxc-minify@0.138.0: + resolution: {integrity: sha512-mWwRllP8EaIwAf9dSLUm111J/P6ZLnqHhmqZ+hVDaXHWjkW6Ms0L//JPRDCt6Fu3ENTu18n00VpPfzhseXvjeQ==} engines: {node: ^20.19.0 || >=22.12.0} p-limit@3.1.0: @@ -4570,13 +4555,13 @@ packages: resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} - playwright-core@1.61.0: - resolution: {integrity: sha512-caX7TrY3Ml6egyDX0WUcTHDxodl/b51y5wJOdCEA36QviK/s2g081hvmGs8eaE3DWb6NYZQ6BjO/QkNRPenoPA==} + playwright-core@1.61.1: + resolution: {integrity: sha512-h7Qlt6m4REp25qvIdvbDtVmD4LqVXfpRxhORv9L0jzETM05p4fuPJ3dKyuSXQxDSbXnmS79HAgi9589lGSpLkg==} engines: {node: '>=18'} hasBin: true - playwright@1.61.0: - resolution: {integrity: sha512-Z+7BeeqQPRRzklHsVFP4KTGIyMxKUmfeRA4WisM6G3/XW6nwGeX6fX9qYaDa+CiUqpOkb2f6X3nar05R3kSuJQ==} + playwright@1.61.1: + resolution: {integrity: sha512-DWnY5o3YbLWK4GovuAVwpqL+1VwGNdUGrRr++8j8PtQQzvAVZUIMjKQ90fY689sEJZJBbZVw1rXaOKSTitkzPQ==} engines: {node: '>=18'} hasBin: true @@ -4591,8 +4576,8 @@ packages: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} - postcss@8.5.15: - resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==} + postcss@8.5.16: + resolution: {integrity: sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==} engines: {node: ^10 || ^12 || >=14} postgres-array@2.0.0: @@ -4729,15 +4714,15 @@ packages: '@types/react': optional: true - react-router-dom@7.18.0: - resolution: {integrity: sha512-Fi0yY6kgtKae/Th2xibdWK0KSdYZ4B53Gyf6wRtomOKWgpNm7H7+DyfDhncdz9FKbpS+1jmDhg3F4WoGJ+yFOA==} + react-router-dom@7.18.1: + resolution: {integrity: sha512-KaZh+X/6UtEp28x51AUYZDMg9NGoz2ja3dNHa+ta/tk40vCzKhQ/RypCWBMLbmDr6//E24Vv5uPsrqXFozdkAg==} engines: {node: '>=20.0.0'} peerDependencies: react: '>=18' react-dom: '>=18' - react-router@7.18.0: - resolution: {integrity: sha512-pTTGt8J+ji1NOmYnjzT+bAJy/1zD+Jp4ziO6cL7T3ZLvXKtusO7BpFqlRXitqpcPVqllsIXFHRMt+2/k3Xn6HQ==} + react-router@7.18.1: + resolution: {integrity: sha512-GDLgg3i3uM0aeJO3Fm+TCS+sDQ7gu12T6x0qdTEzcwqEfleci7JwugVNIF3U//0FWKnJT7ptG+20B2jfDqnZAg==} engines: {node: '>=20.0.0'} peerDependencies: react: '>=18' @@ -4847,8 +4832,8 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rolldown@1.0.3: - resolution: {integrity: sha512-i00lAJ2ks1BYr7rjNjKC7BcqAS7nVfiT3QX1SI5aY+AFHblCmaUf9OE9dbdzDvW6dJxbi2ZCZiy9v3CcwOiX3g==} + rolldown@1.1.3: + resolution: {integrity: sha512-1F1eEtUBtFvcGm1HQ9TiUIUHPQG7mSAODrhIzjxoUEFuo8OcbrGLiVLkevNgj84TE4lnHvnumwFjhJO5Eu135g==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -4993,8 +4978,8 @@ packages: set-cookie-parser@2.7.2: resolution: {integrity: sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==} - set-cookie-parser@3.1.0: - resolution: {integrity: sha512-kjnC1DXBHcxaOaOXBHBeRtltsDG2nUiUni+jP92M9gYdW12rsmx92UsfpH7o5tDRs7I1ZZPSQJQGv3UaRfCiuw==} + set-cookie-parser@3.1.1: + resolution: {integrity: sha512-vM9SUhjsUYs6UeJUmygc5Ofm5eQGe85riob5ju6XCgFGJI5PLV4nrDAQpQjd+LkFBpAkADn5BQQpZ9EUNkyLuA==} set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} @@ -5557,13 +5542,56 @@ packages: '@babel/core': '>=7.29.6' vite: '>=7.3.2' - vite@8.0.16: - resolution: {integrity: sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw==} + vite@8.1.0: + resolution: {integrity: sha512-BuJcQK/56NQTWDGn4ABea3q4SSBdNPWwNZKTkkUpcMPnLoquSYH8llRtSUIgoL1KSCpHt5eghLShn50mH36y7Q==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: '@types/node': ^20.19.0 || >=22.12.0 - '@vitejs/devtools': ^0.1.18 + '@vitejs/devtools': ^0.3.0 + esbuild: '>=0.28.1' + 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 + + vite@8.1.1: + resolution: {integrity: sha512-X/05/cT+VITy2AeDc1der6smvGWWREtL4hPbPTaVbjSBuuWkmNOjR6HP3NzqcQA2nF6VHGUPaFRJyft/2AE9Kg==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + '@vitejs/devtools': ^0.3.0 esbuild: '>=0.28.1' jiti: '>=1.21.0' less: ^4.0.0 @@ -6218,33 +6246,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@emnapi/core@1.10.0': - dependencies: - '@emnapi/wasi-threads': 1.2.1 - tslib: 2.8.1 - optional: true - '@emnapi/core@1.11.1': dependencies: '@emnapi/wasi-threads': 1.2.2 tslib: 2.8.1 optional: true - '@emnapi/runtime@1.10.0': - dependencies: - tslib: 2.8.1 - optional: true - '@emnapi/runtime@1.11.1': dependencies: tslib: 2.8.1 optional: true - '@emnapi/wasi-threads@1.2.1': - dependencies: - tslib: 2.8.1 - optional: true - '@emnapi/wasi-threads@1.2.2': dependencies: tslib: 2.8.1 @@ -6330,9 +6342,9 @@ snapshots: '@esbuild/win32-x64@0.28.1': optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@10.5.0)': + '@eslint-community/eslint-utils@4.9.1(eslint@10.6.0)': dependencies: - eslint: 10.5.0 + eslint: 10.6.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} @@ -6435,21 +6447,14 @@ snapshots: dependencies: '@emnapi/core': 1.11.1 '@emnapi/runtime': 1.11.1 - '@tybys/wasm-util': 0.10.2 + '@tybys/wasm-util': 0.10.3 optional: true - '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': - dependencies: - '@emnapi/core': 1.10.0 - '@emnapi/runtime': 1.10.0 - '@tybys/wasm-util': 0.10.2 - optional: true - - '@napi-rs/wasm-runtime@1.1.5(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': + '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': dependencies: '@emnapi/core': 1.11.1 '@emnapi/runtime': 1.11.1 - '@tybys/wasm-util': 0.10.2 + '@tybys/wasm-util': 0.10.3 optional: true '@noble/ciphers@1.3.0': {} @@ -6516,79 +6521,79 @@ snapshots: '@opentelemetry/semantic-conventions@1.41.1': {} - '@oxc-minify/binding-android-arm-eabi@0.137.0': + '@oxc-minify/binding-android-arm-eabi@0.138.0': optional: true - '@oxc-minify/binding-android-arm64@0.137.0': + '@oxc-minify/binding-android-arm64@0.138.0': optional: true - '@oxc-minify/binding-darwin-arm64@0.137.0': + '@oxc-minify/binding-darwin-arm64@0.138.0': optional: true - '@oxc-minify/binding-darwin-x64@0.137.0': + '@oxc-minify/binding-darwin-x64@0.138.0': optional: true - '@oxc-minify/binding-freebsd-x64@0.137.0': + '@oxc-minify/binding-freebsd-x64@0.138.0': optional: true - '@oxc-minify/binding-linux-arm-gnueabihf@0.137.0': + '@oxc-minify/binding-linux-arm-gnueabihf@0.138.0': optional: true - '@oxc-minify/binding-linux-arm-musleabihf@0.137.0': + '@oxc-minify/binding-linux-arm-musleabihf@0.138.0': optional: true - '@oxc-minify/binding-linux-arm64-gnu@0.137.0': + '@oxc-minify/binding-linux-arm64-gnu@0.138.0': optional: true - '@oxc-minify/binding-linux-arm64-musl@0.137.0': + '@oxc-minify/binding-linux-arm64-musl@0.138.0': optional: true - '@oxc-minify/binding-linux-ppc64-gnu@0.137.0': + '@oxc-minify/binding-linux-ppc64-gnu@0.138.0': optional: true - '@oxc-minify/binding-linux-riscv64-gnu@0.137.0': + '@oxc-minify/binding-linux-riscv64-gnu@0.138.0': optional: true - '@oxc-minify/binding-linux-riscv64-musl@0.137.0': + '@oxc-minify/binding-linux-riscv64-musl@0.138.0': optional: true - '@oxc-minify/binding-linux-s390x-gnu@0.137.0': + '@oxc-minify/binding-linux-s390x-gnu@0.138.0': optional: true - '@oxc-minify/binding-linux-x64-gnu@0.137.0': + '@oxc-minify/binding-linux-x64-gnu@0.138.0': optional: true - '@oxc-minify/binding-linux-x64-musl@0.137.0': + '@oxc-minify/binding-linux-x64-musl@0.138.0': optional: true - '@oxc-minify/binding-openharmony-arm64@0.137.0': + '@oxc-minify/binding-openharmony-arm64@0.138.0': optional: true - '@oxc-minify/binding-wasm32-wasi@0.137.0': + '@oxc-minify/binding-wasm32-wasi@0.138.0': dependencies: '@emnapi/core': 1.11.1 '@emnapi/runtime': 1.11.1 - '@napi-rs/wasm-runtime': 1.1.5(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) + '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) optional: true - '@oxc-minify/binding-win32-arm64-msvc@0.137.0': + '@oxc-minify/binding-win32-arm64-msvc@0.138.0': optional: true - '@oxc-minify/binding-win32-ia32-msvc@0.137.0': + '@oxc-minify/binding-win32-ia32-msvc@0.138.0': optional: true - '@oxc-minify/binding-win32-x64-msvc@0.137.0': + '@oxc-minify/binding-win32-x64-msvc@0.138.0': optional: true - '@oxc-project/types@0.133.0': {} + '@oxc-project/types@0.137.0': {} '@paralleldrive/cuid2@2.2.2': dependencies: '@noble/hashes': 1.8.0 - '@playwright/test@1.61.0': + '@playwright/test@1.61.1': dependencies: - playwright: 1.61.0 + playwright: 1.61.1 '@radix-ui/primitive@1.1.4': {} @@ -6846,53 +6851,53 @@ snapshots: transitivePeerDependencies: - supports-color - '@rolldown/binding-android-arm64@1.0.3': + '@rolldown/binding-android-arm64@1.1.3': optional: true - '@rolldown/binding-darwin-arm64@1.0.3': + '@rolldown/binding-darwin-arm64@1.1.3': optional: true - '@rolldown/binding-darwin-x64@1.0.3': + '@rolldown/binding-darwin-x64@1.1.3': optional: true - '@rolldown/binding-freebsd-x64@1.0.3': + '@rolldown/binding-freebsd-x64@1.1.3': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.3': + '@rolldown/binding-linux-arm-gnueabihf@1.1.3': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.3': + '@rolldown/binding-linux-arm64-gnu@1.1.3': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.3': + '@rolldown/binding-linux-arm64-musl@1.1.3': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.0.3': + '@rolldown/binding-linux-ppc64-gnu@1.1.3': optional: true - '@rolldown/binding-linux-s390x-gnu@1.0.3': + '@rolldown/binding-linux-s390x-gnu@1.1.3': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.3': + '@rolldown/binding-linux-x64-gnu@1.1.3': optional: true - '@rolldown/binding-linux-x64-musl@1.0.3': + '@rolldown/binding-linux-x64-musl@1.1.3': optional: true - '@rolldown/binding-openharmony-arm64@1.0.3': + '@rolldown/binding-openharmony-arm64@1.1.3': optional: true - '@rolldown/binding-wasm32-wasi@1.0.3': + '@rolldown/binding-wasm32-wasi@1.1.3': dependencies: - '@emnapi/core': 1.10.0 - '@emnapi/runtime': 1.10.0 - '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + '@emnapi/core': 1.11.1 + '@emnapi/runtime': 1.11.1 + '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.3': + '@rolldown/binding-win32-arm64-msvc@1.1.3': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.3': + '@rolldown/binding-win32-x64-msvc@1.1.3': optional: true '@rolldown/pluginutils@1.0.0-rc.2': {} @@ -6983,21 +6988,21 @@ snapshots: '@tootallnate/quickjs-emscripten@0.23.0': {} - '@tybys/wasm-util@0.10.2': + '@tybys/wasm-util@0.10.3': dependencies: tslib: 2.8.1 optional: true '@types/accepts@1.3.7': dependencies: - '@types/node': 26.0.0 + '@types/node': 26.0.1 '@types/async@3.2.25': {} '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 26.0.0 + '@types/node': 26.0.1 '@types/chai@5.2.3': dependencies: @@ -7006,7 +7011,7 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 26.0.0 + '@types/node': 26.0.1 '@types/content-disposition@0.5.9': {} @@ -7021,15 +7026,15 @@ snapshots: '@types/connect': 3.4.38 '@types/express': 5.0.6 '@types/keygrip': 1.0.6 - '@types/node': 26.0.0 + '@types/node': 26.0.1 '@types/cors@2.8.19': dependencies: - '@types/node': 26.0.0 + '@types/node': 26.0.1 '@types/cross-spawn@6.0.6': dependencies: - '@types/node': 26.0.0 + '@types/node': 26.0.1 '@types/debug@4.1.12': dependencies: @@ -7045,7 +7050,7 @@ snapshots: '@types/express-serve-static-core@5.1.0': dependencies: - '@types/node': 26.0.0 + '@types/node': 26.0.1 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 1.2.1 @@ -7062,11 +7067,11 @@ snapshots: '@types/formidable@3.5.1': dependencies: - '@types/node': 26.0.0 + '@types/node': 26.0.1 '@types/fs-extra@9.0.13': dependencies: - '@types/node': 26.0.0 + '@types/node': 26.0.1 '@types/hast@3.0.4': dependencies: @@ -7082,7 +7087,7 @@ snapshots: '@types/jsdom@28.0.3': dependencies: - '@types/node': 26.0.0 + '@types/node': 26.0.1 '@types/tough-cookie': 4.0.5 parse5: 8.0.1 undici-types: 7.24.5 @@ -7094,7 +7099,7 @@ snapshots: '@types/jsonwebtoken@9.0.10': dependencies: '@types/ms': 2.1.0 - '@types/node': 26.0.0 + '@types/node': 26.0.1 '@types/keygrip@1.0.6': {} @@ -7111,7 +7116,7 @@ snapshots: '@types/http-errors': 2.0.5 '@types/keygrip': 1.0.6 '@types/koa-compose': 3.2.8 - '@types/node': 26.0.0 + '@types/node': 26.0.1 '@types/linkify-it@5.0.0': {} @@ -7138,30 +7143,30 @@ snapshots: '@types/node-fetch@2.6.12': dependencies: - '@types/node': 26.0.0 + '@types/node': 26.0.1 form-data: 4.0.6 '@types/node@18.19.130': dependencies: undici-types: 5.26.5 - '@types/node@26.0.0': + '@types/node@26.0.1': dependencies: undici-types: 8.3.0 '@types/nodemailer@8.0.1': dependencies: - '@types/node': 26.0.0 + '@types/node': 26.0.1 '@types/oidc-provider@9.5.0': dependencies: '@types/keygrip': 1.0.6 '@types/koa': 3.0.0 - '@types/node': 26.0.0 + '@types/node': 26.0.1 '@types/pdfkit@0.17.6': dependencies: - '@types/node': 26.0.0 + '@types/node': 26.0.1 '@types/qs@6.14.0': {} @@ -7177,18 +7182,18 @@ snapshots: '@types/readable-stream@4.0.23': dependencies: - '@types/node': 26.0.0 + '@types/node': 26.0.1 '@types/semver@7.7.1': {} '@types/send@1.2.1': dependencies: - '@types/node': 26.0.0 + '@types/node': 26.0.1 '@types/serve-static@2.2.0': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 26.0.0 + '@types/node': 26.0.1 '@types/sinon@21.0.1': dependencies: @@ -7200,7 +7205,7 @@ snapshots: dependencies: '@types/cookiejar': 2.1.5 '@types/methods': 1.1.4 - '@types/node': 26.0.0 + '@types/node': 26.0.1 form-data: 4.0.6 '@types/supertest@7.2.0': @@ -7210,7 +7215,7 @@ snapshots: '@types/tar@6.1.13': dependencies: - '@types/node': 26.0.0 + '@types/node': 26.0.1 minipass: 4.2.8 '@types/tough-cookie@4.0.5': {} @@ -7231,15 +7236,15 @@ snapshots: dependencies: '@types/webidl-conversions': 7.0.3 - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint@10.5.0)(typescript@6.0.3)': + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0)(typescript@6.0.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 7.18.0(eslint@10.5.0)(typescript@6.0.3) + '@typescript-eslint/parser': 7.18.0(eslint@10.6.0)(typescript@6.0.3) '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@10.5.0)(typescript@6.0.3) - '@typescript-eslint/utils': 7.18.0(eslint@10.5.0)(typescript@6.0.3) + '@typescript-eslint/type-utils': 7.18.0(eslint@10.6.0)(typescript@6.0.3) + '@typescript-eslint/utils': 7.18.0(eslint@10.6.0)(typescript@6.0.3) '@typescript-eslint/visitor-keys': 7.18.0 - eslint: 10.5.0 + eslint: 10.6.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -7249,15 +7254,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0)(typescript@6.0.3))(eslint@10.5.0)(typescript@6.0.3)': + '@typescript-eslint/eslint-plugin@8.62.1(@typescript-eslint/parser@8.62.1(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0)(typescript@6.0.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.61.1(eslint@10.5.0)(typescript@6.0.3) - '@typescript-eslint/scope-manager': 8.61.1 - '@typescript-eslint/type-utils': 8.61.1(eslint@10.5.0)(typescript@6.0.3) - '@typescript-eslint/utils': 8.61.1(eslint@10.5.0)(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.61.1 - eslint: 10.5.0 + '@typescript-eslint/parser': 8.62.1(eslint@10.6.0)(typescript@6.0.3) + '@typescript-eslint/scope-manager': 8.62.1 + '@typescript-eslint/type-utils': 8.62.1(eslint@10.6.0)(typescript@6.0.3) + '@typescript-eslint/utils': 8.62.1(eslint@10.6.0)(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.62.1 + eslint: 10.6.0 ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.5.0(typescript@6.0.3) @@ -7265,35 +7270,35 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3)': + '@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3)': dependencies: '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@6.0.3) '@typescript-eslint/visitor-keys': 7.18.0 debug: 4.4.3(supports-color@8.1.1) - eslint: 10.5.0 + eslint: 10.6.0 optionalDependencies: typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.61.1(eslint@10.5.0)(typescript@6.0.3)': + '@typescript-eslint/parser@8.62.1(eslint@10.6.0)(typescript@6.0.3)': dependencies: - '@typescript-eslint/scope-manager': 8.61.1 - '@typescript-eslint/types': 8.61.1 - '@typescript-eslint/typescript-estree': 8.61.1(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.61.1 + '@typescript-eslint/scope-manager': 8.62.1 + '@typescript-eslint/types': 8.62.1 + '@typescript-eslint/typescript-estree': 8.62.1(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.62.1 debug: 4.4.3(supports-color@8.1.1) - eslint: 10.5.0 + eslint: 10.6.0 typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.61.1(typescript@6.0.3)': + '@typescript-eslint/project-service@8.62.1(typescript@6.0.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.61.1(typescript@6.0.3) - '@typescript-eslint/types': 8.61.1 + '@typescript-eslint/tsconfig-utils': 8.62.1(typescript@6.0.3) + '@typescript-eslint/types': 8.62.1 debug: 4.4.3(supports-color@8.1.1) typescript: 6.0.3 transitivePeerDependencies: @@ -7304,34 +7309,34 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/scope-manager@8.61.1': + '@typescript-eslint/scope-manager@8.62.1': dependencies: - '@typescript-eslint/types': 8.61.1 - '@typescript-eslint/visitor-keys': 8.61.1 + '@typescript-eslint/types': 8.62.1 + '@typescript-eslint/visitor-keys': 8.62.1 - '@typescript-eslint/tsconfig-utils@8.61.1(typescript@6.0.3)': + '@typescript-eslint/tsconfig-utils@8.62.1(typescript@6.0.3)': dependencies: typescript: 6.0.3 - '@typescript-eslint/type-utils@7.18.0(eslint@10.5.0)(typescript@6.0.3)': + '@typescript-eslint/type-utils@7.18.0(eslint@10.6.0)(typescript@6.0.3)': dependencies: '@typescript-eslint/typescript-estree': 7.18.0(typescript@6.0.3) - '@typescript-eslint/utils': 7.18.0(eslint@10.5.0)(typescript@6.0.3) + '@typescript-eslint/utils': 7.18.0(eslint@10.6.0)(typescript@6.0.3) debug: 4.4.3(supports-color@8.1.1) - eslint: 10.5.0 + eslint: 10.6.0 ts-api-utils: 1.4.3(typescript@6.0.3) optionalDependencies: typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.61.1(eslint@10.5.0)(typescript@6.0.3)': + '@typescript-eslint/type-utils@8.62.1(eslint@10.6.0)(typescript@6.0.3)': dependencies: - '@typescript-eslint/types': 8.61.1 - '@typescript-eslint/typescript-estree': 8.61.1(typescript@6.0.3) - '@typescript-eslint/utils': 8.61.1(eslint@10.5.0)(typescript@6.0.3) + '@typescript-eslint/types': 8.62.1 + '@typescript-eslint/typescript-estree': 8.62.1(typescript@6.0.3) + '@typescript-eslint/utils': 8.62.1(eslint@10.6.0)(typescript@6.0.3) debug: 4.4.3(supports-color@8.1.1) - eslint: 10.5.0 + eslint: 10.6.0 ts-api-utils: 2.5.0(typescript@6.0.3) typescript: 6.0.3 transitivePeerDependencies: @@ -7339,7 +7344,7 @@ snapshots: '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/types@8.61.1': {} + '@typescript-eslint/types@8.62.1': {} '@typescript-eslint/typescript-estree@7.18.0(typescript@6.0.3)': dependencies: @@ -7356,12 +7361,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.61.1(typescript@6.0.3)': + '@typescript-eslint/typescript-estree@8.62.1(typescript@6.0.3)': dependencies: - '@typescript-eslint/project-service': 8.61.1(typescript@6.0.3) - '@typescript-eslint/tsconfig-utils': 8.61.1(typescript@6.0.3) - '@typescript-eslint/types': 8.61.1 - '@typescript-eslint/visitor-keys': 8.61.1 + '@typescript-eslint/project-service': 8.62.1(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.62.1(typescript@6.0.3) + '@typescript-eslint/types': 8.62.1 + '@typescript-eslint/visitor-keys': 8.62.1 debug: 4.4.3(supports-color@8.1.1) minimatch: 10.2.5 semver: 7.8.5 @@ -7371,24 +7376,24 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.18.0(eslint@10.5.0)(typescript@6.0.3)': + '@typescript-eslint/utils@7.18.0(eslint@10.6.0)(typescript@6.0.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.5.0) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.6.0) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@6.0.3) - eslint: 10.5.0 + eslint: 10.6.0 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.61.1(eslint@10.5.0)(typescript@6.0.3)': + '@typescript-eslint/utils@8.62.1(eslint@10.6.0)(typescript@6.0.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.5.0) - '@typescript-eslint/scope-manager': 8.61.1 - '@typescript-eslint/types': 8.61.1 - '@typescript-eslint/typescript-estree': 8.61.1(typescript@6.0.3) - eslint: 10.5.0 + '@eslint-community/eslint-utils': 4.9.1(eslint@10.6.0) + '@typescript-eslint/scope-manager': 8.62.1 + '@typescript-eslint/types': 8.62.1 + '@typescript-eslint/typescript-estree': 8.62.1(typescript@6.0.3) + eslint: 10.6.0 typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -7398,9 +7403,9 @@ snapshots: '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.61.1': + '@typescript-eslint/visitor-keys@8.62.1': dependencies: - '@typescript-eslint/types': 8.61.1 + '@typescript-eslint/types': 8.62.1 eslint-visitor-keys: 5.0.1 '@typespec/ts-http-runtime@0.3.5': @@ -7460,17 +7465,17 @@ snapshots: '@unrs/rspack-resolver-binding-win32-x64-msvc@1.3.0': optional: true - '@vitejs/plugin-react@6.0.2(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(tsx@4.22.4))': + '@vitejs/plugin-react@6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(tsx@4.22.4) + vite: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4) optionalDependencies: babel-plugin-react-compiler: 19.1.0-rc.3 - '@vitejs/plugin-vue@6.0.5(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(tsx@4.22.4))(vue@3.5.30(typescript@6.0.3))': + '@vitejs/plugin-vue@6.0.5(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4))(vue@3.5.30(typescript@6.0.3))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.2 - vite: 8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(tsx@4.22.4) + vite: 8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4) vue: 3.5.30(typescript@6.0.3) '@vitest/expect@4.1.9': @@ -7482,13 +7487,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.9(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(tsx@4.22.4))': + '@vitest/mocker@4.1.9(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4))': dependencies: '@vitest/spy': 4.1.9 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(tsx@4.22.4) + vite: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4) '@vitest/pretty-format@4.1.9': dependencies: @@ -7536,7 +7541,7 @@ snapshots: '@vue/shared': 3.5.30 estree-walker: 2.0.2 magic-string: 0.30.21 - postcss: 8.5.15 + postcss: 8.5.16 source-map-js: 1.2.1 '@vue/compiler-ssr@3.5.30': @@ -7802,7 +7807,7 @@ snapshots: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@5.0.6: + brace-expansion@5.0.7: dependencies: balanced-match: 4.0.4 @@ -8208,7 +8213,7 @@ snapshots: engine.io@6.6.5: dependencies: '@types/cors': 2.8.19 - '@types/node': 26.0.0 + '@types/node': 26.0.1 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 @@ -8378,24 +8383,24 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-compat-utils@0.5.1(eslint@10.5.0): + eslint-compat-utils@0.5.1(eslint@10.6.0): dependencies: - eslint: 10.5.0 + eslint: 10.6.0 semver: 7.8.5 - eslint-config-etherpad@4.0.5(eslint@10.5.0)(typescript@6.0.3): + eslint-config-etherpad@4.0.5(eslint@10.6.0)(typescript@6.0.3): dependencies: '@rushstack/eslint-patch': 1.16.1 - '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint@10.5.0)(typescript@6.0.3) - '@typescript-eslint/parser': 7.18.0(eslint@10.5.0)(typescript@6.0.3) - eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0)(eslint@10.5.0) - eslint-plugin-cypress: 2.15.2(eslint@10.5.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@10.5.0) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1)(eslint@10.5.0) - eslint-plugin-mocha: 10.5.0(eslint@10.5.0) - eslint-plugin-n: 17.24.0(eslint@10.5.0)(typescript@6.0.3) - eslint-plugin-prefer-arrow: 1.2.3(eslint@10.5.0) - eslint-plugin-promise: 6.6.0(eslint@10.5.0) + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0)(typescript@6.0.3) + '@typescript-eslint/parser': 7.18.0(eslint@10.6.0)(typescript@6.0.3) + eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0)(eslint@10.6.0) + eslint-plugin-cypress: 2.15.2(eslint@10.6.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@10.6.0) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1)(eslint@10.6.0) + eslint-plugin-mocha: 10.5.0(eslint@10.6.0) + eslint-plugin-n: 17.24.0(eslint@10.6.0)(typescript@6.0.3) + eslint-plugin-prefer-arrow: 1.2.3(eslint@10.6.0) + eslint-plugin-promise: 6.6.0(eslint@10.6.0) eslint-plugin-you-dont-need-lodash-underscore: 6.14.0 transitivePeerDependencies: - eslint @@ -8412,51 +8417,51 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0)(eslint@10.5.0): + eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0)(eslint@10.6.0): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3(supports-color@8.1.1) - eslint: 10.5.0 + eslint: 10.6.0 get-tsconfig: 4.14.0 is-bun-module: 1.3.0 rspack-resolver: 1.3.0 stable-hash: 0.0.5 tinyglobby: 0.2.17 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1)(eslint@10.5.0) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1)(eslint@10.6.0) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1)(eslint@10.5.0): + eslint-module-utils@2.12.1(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1)(eslint@10.6.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@10.5.0)(typescript@6.0.3) - eslint: 10.5.0 + '@typescript-eslint/parser': 7.18.0(eslint@10.6.0)(typescript@6.0.3) + eslint: 10.6.0 eslint-import-resolver-node: 0.3.10 - eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0)(eslint@10.5.0) + eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0)(eslint@10.6.0) transitivePeerDependencies: - supports-color - eslint-plugin-cypress@2.15.2(eslint@10.5.0): + eslint-plugin-cypress@2.15.2(eslint@10.6.0): dependencies: - eslint: 10.5.0 + eslint: 10.6.0 globals: 13.24.0 - eslint-plugin-es-x@7.8.0(eslint@10.5.0): + eslint-plugin-es-x@7.8.0(eslint@10.6.0): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.5.0) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.6.0) '@eslint-community/regexpp': 4.12.2 - eslint: 10.5.0 - eslint-compat-utils: 0.5.1(eslint@10.5.0) + eslint: 10.6.0 + eslint-compat-utils: 0.5.1(eslint@10.6.0) - eslint-plugin-eslint-comments@3.2.0(eslint@10.5.0): + eslint-plugin-eslint-comments@3.2.0(eslint@10.6.0): dependencies: escape-string-regexp: 1.0.5 - eslint: 10.5.0 + eslint: 10.6.0 ignore: 5.3.2 - eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1)(eslint@10.5.0): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1)(eslint@10.6.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -8465,9 +8470,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 10.5.0 + eslint: 10.6.0 eslint-import-resolver-node: 0.3.10 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@7.18.0(eslint@10.5.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1)(eslint@10.5.0) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1)(eslint@10.6.0) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -8479,25 +8484,25 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@10.5.0)(typescript@6.0.3) + '@typescript-eslint/parser': 7.18.0(eslint@10.6.0)(typescript@6.0.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-mocha@10.5.0(eslint@10.5.0): + eslint-plugin-mocha@10.5.0(eslint@10.6.0): dependencies: - eslint: 10.5.0 - eslint-utils: 3.0.0(eslint@10.5.0) + eslint: 10.6.0 + eslint-utils: 3.0.0(eslint@10.6.0) globals: 13.24.0 rambda: 7.5.0 - eslint-plugin-n@17.24.0(eslint@10.5.0)(typescript@6.0.3): + eslint-plugin-n@17.24.0(eslint@10.6.0)(typescript@6.0.3): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.5.0) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.6.0) enhanced-resolve: 5.20.1 - eslint: 10.5.0 - eslint-plugin-es-x: 7.8.0(eslint@10.5.0) + eslint: 10.6.0 + eslint-plugin-es-x: 7.8.0(eslint@10.6.0) get-tsconfig: 4.14.0 globals: 15.15.0 globrex: 0.1.2 @@ -8507,28 +8512,28 @@ snapshots: transitivePeerDependencies: - typescript - eslint-plugin-prefer-arrow@1.2.3(eslint@10.5.0): + eslint-plugin-prefer-arrow@1.2.3(eslint@10.6.0): dependencies: - eslint: 10.5.0 + eslint: 10.6.0 - eslint-plugin-promise@6.6.0(eslint@10.5.0): + eslint-plugin-promise@6.6.0(eslint@10.6.0): dependencies: - eslint: 10.5.0 + eslint: 10.6.0 - eslint-plugin-react-hooks@7.1.1(eslint@10.5.0): + eslint-plugin-react-hooks@7.1.1(eslint@10.6.0): dependencies: '@babel/core': 7.29.7 '@babel/parser': 7.29.2 - eslint: 10.5.0 + eslint: 10.6.0 hermes-parser: 0.25.1 zod: 4.3.6 zod-validation-error: 4.0.2(zod@4.3.6) transitivePeerDependencies: - supports-color - eslint-plugin-react-refresh@0.5.3(eslint@10.5.0): + eslint-plugin-react-refresh@0.5.3(eslint@10.6.0): dependencies: - eslint: 10.5.0 + eslint: 10.6.0 eslint-plugin-you-dont-need-lodash-underscore@6.14.0: dependencies: @@ -8541,9 +8546,9 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-utils@3.0.0(eslint@10.5.0): + eslint-utils@3.0.0(eslint@10.6.0): dependencies: - eslint: 10.5.0 + eslint: 10.6.0 eslint-visitor-keys: 2.1.0 eslint-visitor-keys@2.1.0: {} @@ -8552,9 +8557,9 @@ snapshots: eslint-visitor-keys@5.0.1: {} - eslint@10.5.0: + eslint@10.6.0: dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.5.0) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.6.0) '@eslint-community/regexpp': 4.12.2 '@eslint/config-array': 0.23.5 '@eslint/config-helpers': 0.6.0 @@ -9135,7 +9140,7 @@ snapshots: dependencies: '@babel/runtime': 7.28.6 - i18next@26.3.1(typescript@6.0.3): + i18next@26.3.4(typescript@6.0.3): optionalDependencies: typescript: 6.0.3 @@ -9619,7 +9624,7 @@ snapshots: lru.min@1.1.4: {} - lucide-react@1.21.0(react@19.2.7): + lucide-react@1.22.0(react@19.2.7): dependencies: react: 19.2.7 @@ -9715,7 +9720,7 @@ snapshots: minimatch@10.2.5: dependencies: - brace-expansion: 5.0.6 + brace-expansion: 5.0.7 minimatch@3.1.5: dependencies: @@ -9723,7 +9728,7 @@ snapshots: minimatch@5.1.9: dependencies: - brace-expansion: 5.0.6 + brace-expansion: 5.0.7 minimist@1.2.8: {} @@ -9793,9 +9798,9 @@ snapshots: - '@azure/core-client' - supports-color - mysql2@3.22.5(@types/node@26.0.0): + mysql2@3.22.5(@types/node@26.0.1): dependencies: - '@types/node': 26.0.0 + '@types/node': 26.0.1 aws-ssl-profiles: 1.1.2 denque: 2.1.0 generate-function: 2.3.1 @@ -9813,7 +9818,7 @@ snapshots: nanoid@3.3.11: {} - nanoid@3.3.12: {} + nanoid@3.3.15: {} nanoid@5.1.11: {} @@ -10009,28 +10014,28 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 - oxc-minify@0.137.0: + oxc-minify@0.138.0: optionalDependencies: - '@oxc-minify/binding-android-arm-eabi': 0.137.0 - '@oxc-minify/binding-android-arm64': 0.137.0 - '@oxc-minify/binding-darwin-arm64': 0.137.0 - '@oxc-minify/binding-darwin-x64': 0.137.0 - '@oxc-minify/binding-freebsd-x64': 0.137.0 - '@oxc-minify/binding-linux-arm-gnueabihf': 0.137.0 - '@oxc-minify/binding-linux-arm-musleabihf': 0.137.0 - '@oxc-minify/binding-linux-arm64-gnu': 0.137.0 - '@oxc-minify/binding-linux-arm64-musl': 0.137.0 - '@oxc-minify/binding-linux-ppc64-gnu': 0.137.0 - '@oxc-minify/binding-linux-riscv64-gnu': 0.137.0 - '@oxc-minify/binding-linux-riscv64-musl': 0.137.0 - '@oxc-minify/binding-linux-s390x-gnu': 0.137.0 - '@oxc-minify/binding-linux-x64-gnu': 0.137.0 - '@oxc-minify/binding-linux-x64-musl': 0.137.0 - '@oxc-minify/binding-openharmony-arm64': 0.137.0 - '@oxc-minify/binding-wasm32-wasi': 0.137.0 - '@oxc-minify/binding-win32-arm64-msvc': 0.137.0 - '@oxc-minify/binding-win32-ia32-msvc': 0.137.0 - '@oxc-minify/binding-win32-x64-msvc': 0.137.0 + '@oxc-minify/binding-android-arm-eabi': 0.138.0 + '@oxc-minify/binding-android-arm64': 0.138.0 + '@oxc-minify/binding-darwin-arm64': 0.138.0 + '@oxc-minify/binding-darwin-x64': 0.138.0 + '@oxc-minify/binding-freebsd-x64': 0.138.0 + '@oxc-minify/binding-linux-arm-gnueabihf': 0.138.0 + '@oxc-minify/binding-linux-arm-musleabihf': 0.138.0 + '@oxc-minify/binding-linux-arm64-gnu': 0.138.0 + '@oxc-minify/binding-linux-arm64-musl': 0.138.0 + '@oxc-minify/binding-linux-ppc64-gnu': 0.138.0 + '@oxc-minify/binding-linux-riscv64-gnu': 0.138.0 + '@oxc-minify/binding-linux-riscv64-musl': 0.138.0 + '@oxc-minify/binding-linux-s390x-gnu': 0.138.0 + '@oxc-minify/binding-linux-x64-gnu': 0.138.0 + '@oxc-minify/binding-linux-x64-musl': 0.138.0 + '@oxc-minify/binding-openharmony-arm64': 0.138.0 + '@oxc-minify/binding-wasm32-wasi': 0.138.0 + '@oxc-minify/binding-win32-arm64-msvc': 0.138.0 + '@oxc-minify/binding-win32-ia32-msvc': 0.138.0 + '@oxc-minify/binding-win32-x64-msvc': 0.138.0 p-limit@3.1.0: dependencies: @@ -10149,11 +10154,11 @@ snapshots: picomatch@4.0.4: {} - playwright-core@1.61.0: {} + playwright-core@1.61.1: {} - playwright@1.61.0: + playwright@1.61.1: dependencies: - playwright-core: 1.61.0 + playwright-core: 1.61.1 optionalDependencies: fsevents: 2.3.2 @@ -10165,9 +10170,9 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss@8.5.15: + postcss@8.5.16: dependencies: - nanoid: 3.3.12 + nanoid: 3.3.15 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -10258,11 +10263,11 @@ snapshots: dependencies: react: 19.2.7 - react-i18next@17.0.8(i18next@26.3.1(typescript@6.0.3))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@6.0.3): + react-i18next@17.0.8(i18next@26.3.4(typescript@6.0.3))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@6.0.3): dependencies: '@babel/runtime': 7.29.2 html-parse-stringify: 3.0.1 - i18next: 26.3.1(typescript@6.0.3) + i18next: 26.3.4(typescript@6.0.3) react: 19.2.7 use-sync-external-store: 1.6.0(react@19.2.7) optionalDependencies: @@ -10288,13 +10293,13 @@ snapshots: optionalDependencies: '@types/react': 19.2.17 - react-router-dom@7.18.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7): + react-router-dom@7.18.1(react-dom@19.2.7(react@19.2.7))(react@19.2.7): dependencies: react: 19.2.7 react-dom: 19.2.7(react@19.2.7) - react-router: 7.18.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + react-router: 7.18.1(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - react-router@7.18.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7): + react-router@7.18.1(react-dom@19.2.7(react@19.2.7))(react@19.2.7): dependencies: cookie: 1.1.1 react: 19.2.7 @@ -10437,26 +10442,26 @@ snapshots: rfdc@1.4.1: {} - rolldown@1.0.3: + rolldown@1.1.3: dependencies: - '@oxc-project/types': 0.133.0 + '@oxc-project/types': 0.137.0 '@rolldown/pluginutils': 1.0.1 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.3 - '@rolldown/binding-darwin-arm64': 1.0.3 - '@rolldown/binding-darwin-x64': 1.0.3 - '@rolldown/binding-freebsd-x64': 1.0.3 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.3 - '@rolldown/binding-linux-arm64-gnu': 1.0.3 - '@rolldown/binding-linux-arm64-musl': 1.0.3 - '@rolldown/binding-linux-ppc64-gnu': 1.0.3 - '@rolldown/binding-linux-s390x-gnu': 1.0.3 - '@rolldown/binding-linux-x64-gnu': 1.0.3 - '@rolldown/binding-linux-x64-musl': 1.0.3 - '@rolldown/binding-openharmony-arm64': 1.0.3 - '@rolldown/binding-wasm32-wasi': 1.0.3 - '@rolldown/binding-win32-arm64-msvc': 1.0.3 - '@rolldown/binding-win32-x64-msvc': 1.0.3 + '@rolldown/binding-android-arm64': 1.1.3 + '@rolldown/binding-darwin-arm64': 1.1.3 + '@rolldown/binding-darwin-x64': 1.1.3 + '@rolldown/binding-freebsd-x64': 1.1.3 + '@rolldown/binding-linux-arm-gnueabihf': 1.1.3 + '@rolldown/binding-linux-arm64-gnu': 1.1.3 + '@rolldown/binding-linux-arm64-musl': 1.1.3 + '@rolldown/binding-linux-ppc64-gnu': 1.1.3 + '@rolldown/binding-linux-s390x-gnu': 1.1.3 + '@rolldown/binding-linux-x64-gnu': 1.1.3 + '@rolldown/binding-linux-x64-musl': 1.1.3 + '@rolldown/binding-openharmony-arm64': 1.1.3 + '@rolldown/binding-wasm32-wasi': 1.1.3 + '@rolldown/binding-win32-arm64-msvc': 1.1.3 + '@rolldown/binding-win32-x64-msvc': 1.1.3 router@2.2.0: dependencies: @@ -10603,7 +10608,7 @@ snapshots: set-cookie-parser@2.7.2: {} - set-cookie-parser@3.1.0: {} + set-cookie-parser@3.1.1: {} set-function-length@1.2.2: dependencies: @@ -10910,7 +10915,7 @@ snapshots: '@azure/identity': 4.13.1 '@azure/keyvault-keys': 4.10.0(@azure/core-client@1.10.1) '@js-joda/core': 5.7.0 - '@types/node': 26.0.0 + '@types/node': 26.0.1 bl: 6.1.6 iconv-lite: 0.7.2 js-md4: 0.3.2 @@ -11054,7 +11059,7 @@ snapshots: typescript@6.0.3: {} - ueberdb2@6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.0))(nano@11.0.5)(pg@8.22.0)(redis@6.0.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.3(tslib@2.8.1)(typescript@6.0.3)): + ueberdb2@6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.3(tslib@2.8.1)(typescript@6.0.3)): optionalDependencies: '@elastic/elasticsearch': 9.4.2 async: 3.2.6 @@ -11062,7 +11067,7 @@ snapshots: dirty-ts: 1.1.8 mongodb: 7.3.0 mssql: 12.5.5(@azure/core-client@1.10.1) - mysql2: 3.22.5(@types/node@26.0.0) + mysql2: 3.22.5(@types/node@26.0.1) nano: 11.0.5 pg: 8.22.0 redis: 6.0.0(@opentelemetry/api@1.9.1) @@ -11211,25 +11216,38 @@ snapshots: x-is-array: 0.1.0 x-is-string: 0.1.0 - vite-plugin-babel@1.7.3(@babel/core@7.29.7)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(tsx@4.22.4)): + vite-plugin-babel@1.7.3(@babel/core@7.29.7)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4)): dependencies: '@babel/core': 7.29.7 - vite: 8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(tsx@4.22.4) + vite: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4) - vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(tsx@4.22.4): + vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 - postcss: 8.5.15 - rolldown: 1.0.3 + postcss: 8.5.16 + rolldown: 1.1.3 tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 26.0.0 + '@types/node': 26.0.1 esbuild: 0.28.1 fsevents: 2.3.3 tsx: 4.22.4 - vitepress@2.0.0-alpha.17(@types/node@26.0.0)(change-case@5.4.4)(esbuild@0.28.1)(jwt-decode@4.0.0)(oxc-minify@0.137.0)(postcss@8.5.15)(tsx@4.22.4)(typescript@6.0.3): + vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4): + dependencies: + lightningcss: 1.32.0 + picomatch: 4.0.4 + postcss: 8.5.16 + rolldown: 1.1.3 + tinyglobby: 0.2.17 + optionalDependencies: + '@types/node': 26.0.1 + esbuild: 0.28.1 + fsevents: 2.3.3 + tsx: 4.22.4 + + vitepress@2.0.0-alpha.17(@types/node@26.0.1)(change-case@5.4.4)(esbuild@0.28.1)(jwt-decode@4.0.0)(oxc-minify@0.138.0)(postcss@8.5.16)(tsx@4.22.4)(typescript@6.0.3): dependencies: '@docsearch/css': 4.6.0 '@docsearch/js': 4.6.0 @@ -11239,7 +11257,7 @@ snapshots: '@shikijs/transformers': 3.23.0 '@shikijs/types': 3.23.0 '@types/markdown-it': 14.1.2 - '@vitejs/plugin-vue': 6.0.5(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(tsx@4.22.4))(vue@3.5.30(typescript@6.0.3)) + '@vitejs/plugin-vue': 6.0.5(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4))(vue@3.5.30(typescript@6.0.3)) '@vue/devtools-api': 8.1.0 '@vue/shared': 3.5.30 '@vueuse/core': 14.2.1(vue@3.5.30(typescript@6.0.3)) @@ -11248,11 +11266,11 @@ snapshots: mark.js: 8.11.1 minisearch: 7.2.0 shiki: 3.23.0 - vite: 8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(tsx@4.22.4) + vite: 8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4) vue: 3.5.30(typescript@6.0.3) optionalDependencies: - oxc-minify: 0.137.0 - postcss: 8.5.15 + oxc-minify: 0.138.0 + postcss: 8.5.16 transitivePeerDependencies: - '@types/node' - '@vitejs/devtools' @@ -11279,10 +11297,10 @@ snapshots: - universal-cookie - yaml - vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.0.0)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(tsx@4.22.4)): + vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.0.1)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4)): dependencies: '@vitest/expect': 4.1.9 - '@vitest/mocker': 4.1.9(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(tsx@4.22.4)) + '@vitest/mocker': 4.1.9(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4)) '@vitest/pretty-format': 4.1.9 '@vitest/runner': 4.1.9 '@vitest/snapshot': 4.1.9 @@ -11299,11 +11317,11 @@ snapshots: tinyexec: 1.2.4 tinyglobby: 0.2.17 tinyrainbow: 3.1.0 - vite: 8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(tsx@4.22.4) + vite: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.1 - '@types/node': 26.0.0 + '@types/node': 26.0.1 jsdom: 29.1.1(@noble/hashes@1.8.0) transitivePeerDependencies: - msw diff --git a/src/package.json b/src/package.json index 637a4590f..ce904743c 100644 --- a/src/package.json +++ b/src/package.json @@ -95,7 +95,7 @@ "etherpad-lite": "node/server.ts" }, "devDependencies": { - "@playwright/test": "^1.61.0", + "@playwright/test": "^1.61.1", "@types/async": "^3.2.25", "@types/cookie-parser": "^1.4.10", "@types/cross-spawn": "^6.0.6", @@ -110,7 +110,7 @@ "@types/jsonwebtoken": "^9.0.10", "@types/mime-types": "^3.0.1", "@types/mocha": "^10.0.9", - "@types/node": "^26.0.0", + "@types/node": "^26.0.1", "@types/nodemailer": "^8.0.1", "@types/oidc-provider": "^9.5.0", "@types/pdfkit": "^0.17.6", @@ -120,14 +120,14 @@ "@types/underscore": "^1.13.0", "@types/whatwg-mimetype": "^5.0.0", "chokidar": "^5.0.0", - "eslint": "^10.5.0", + "eslint": "^10.6.0", "eslint-config-etherpad": "^4.0.5", "etherpad-cli-client": "^4.0.3", "mocha": "^11.7.6", "mocha-froth": "^0.2.10", "nodeify": "^1.0.1", "openapi-schema-validation": "^0.4.2", - "set-cookie-parser": "^3.1.0", + "set-cookie-parser": "^3.1.1", "sinon": "^22.0.0", "split-grid": "^1.0.11", "supertest": "^7.2.2", diff --git a/ui/package.json b/ui/package.json index 100a3b19b..cfbd0345a 100644 --- a/ui/package.json +++ b/ui/package.json @@ -12,6 +12,6 @@ "devDependencies": { "ep_etherpad-lite": "workspace:../src", "typescript": "^6.0.3", - "vite": "^8.0.16" + "vite": "^8.1.1" } } From 1442aee75692b57d8ec6df2f6d2a98271bb0a943 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Jun 2026 19:40:08 +0200 Subject: [PATCH 13/74] build(deps): bump awalsh128/cache-apt-pkgs-action from 1.6.1 to 1.6.3 (#8014) Bumps [awalsh128/cache-apt-pkgs-action](https://github.com/awalsh128/cache-apt-pkgs-action) from 1.6.1 to 1.6.3. - [Release notes](https://github.com/awalsh128/cache-apt-pkgs-action/releases) - [Commits](https://github.com/awalsh128/cache-apt-pkgs-action/compare/v1.6.1...v1.6.3) --- updated-dependencies: - dependency-name: awalsh128/cache-apt-pkgs-action dependency-version: 1.6.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/backend-tests.yml | 4 ++-- .github/workflows/upgrade-from-latest-release.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/backend-tests.yml b/.github/workflows/backend-tests.yml index 225d27b47..64ba0e90c 100644 --- a/.github/workflows/backend-tests.yml +++ b/.github/workflows/backend-tests.yml @@ -51,7 +51,7 @@ jobs: cache: pnpm - name: Install libreoffice - uses: awalsh128/cache-apt-pkgs-action@v1.6.1 + uses: awalsh128/cache-apt-pkgs-action@v1.6.3 with: packages: libreoffice libreoffice-pdfimport version: 1.0 @@ -107,7 +107,7 @@ jobs: cache: pnpm - name: Install libreoffice - uses: awalsh128/cache-apt-pkgs-action@v1.6.1 + uses: awalsh128/cache-apt-pkgs-action@v1.6.3 with: packages: libreoffice libreoffice-pdfimport version: 1.0 diff --git a/.github/workflows/upgrade-from-latest-release.yml b/.github/workflows/upgrade-from-latest-release.yml index 2cd8f83e3..02c527e70 100644 --- a/.github/workflows/upgrade-from-latest-release.yml +++ b/.github/workflows/upgrade-from-latest-release.yml @@ -55,7 +55,7 @@ jobs: node-version: ${{ matrix.node }} cache: pnpm - name: Install libreoffice - uses: awalsh128/cache-apt-pkgs-action@v1.6.1 + uses: awalsh128/cache-apt-pkgs-action@v1.6.3 with: packages: libreoffice libreoffice-pdfimport version: 1.0 From bce18df898e45e0a0ea0006ecd3afb13405392f9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Jun 2026 19:40:13 +0200 Subject: [PATCH 14/74] build(deps): bump oidc-provider from 9.8.5 to 9.8.6 (#8012) Bumps [oidc-provider](https://github.com/panva/node-oidc-provider) from 9.8.5 to 9.8.6. - [Release notes](https://github.com/panva/node-oidc-provider/releases) - [Changelog](https://github.com/panva/node-oidc-provider/blob/main/CHANGELOG.md) - [Commits](https://github.com/panva/node-oidc-provider/compare/v9.8.5...v9.8.6) --- updated-dependencies: - dependency-name: oidc-provider dependency-version: 9.8.6 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 20 ++++++++++---------- src/package.json | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 83c6a9553..7543c0cde 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -299,8 +299,8 @@ importers: specifier: ^9.0.1 version: 9.0.1 oidc-provider: - specifier: 9.8.5 - version: 9.8.5 + specifier: 9.8.6 + version: 9.8.6 openapi-backend: specifier: ^5.17.0 version: 5.17.0 @@ -4272,8 +4272,8 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@5.1.11: - resolution: {integrity: sha512-v+KEsUv2ps74PaSKv0gHTxTCgMXOIfBEbaqa6w6ISIGC7ZsvHN4N9oJ8d4cmf0n5oTzQz2SLmThbQWhjd/8eKg==} + nanoid@5.1.16: + resolution: {integrity: sha512-kVrnsrJqMR8+oLJnGEmSWw9BivK5mt7H3FZatVRjrc5wGqFYuBxX1yG7+A7Gi5AefkX6t/oCkizcQgpu0cY1dQ==} engines: {node: ^18 || >=20} hasBin: true @@ -4366,8 +4366,8 @@ packages: resolution: {integrity: sha512-9miFgM2OFba7hB+pRgvtV84pYTBaoTHohvmIgiRt6dRIzbwEOIaNaP+dIlGs2fNFoB0SeISs0Jz5WFVRid6Xyg==} engines: {node: '>=12.20.0'} - oidc-provider@9.8.5: - resolution: {integrity: sha512-07Wqkea8jdfPI8GvbVwf9rMNNitLUzzDqPua7hWbqZreFNpfnlNVdqmllaripVmgDZS2tHHLYQYLW0Ay7yux9w==} + oidc-provider@9.8.6: + resolution: {integrity: sha512-jodnMKbwfMbV5qUFnbCxtnrdRztJJubJbw/7HTokIJSiHm1JT7pU4G83sD/bPkvZnFDdv5POB/kJU5uGG3ek4g==} on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} @@ -9820,7 +9820,7 @@ snapshots: nanoid@3.3.15: {} - nanoid@5.1.11: {} + nanoid@5.1.16: {} native-duplexpair@1.0.0: {} @@ -9905,7 +9905,7 @@ snapshots: obug@2.1.3: {} - oidc-provider@9.8.5: + oidc-provider@9.8.6: dependencies: '@koa/cors': 5.0.0 '@koa/router': 15.6.0(koa@3.2.1) @@ -9914,7 +9914,7 @@ snapshots: jose: 6.2.3 jsesc: 3.1.0 koa: 3.2.1 - nanoid: 5.1.11 + nanoid: 5.1.16 quick-lru: 7.3.0 raw-body: 3.0.2 transitivePeerDependencies: @@ -10211,7 +10211,7 @@ snapshots: proxy-agent@6.5.0: dependencies: agent-base: 7.1.3 - debug: 4.4.3(supports-color@8.1.1) + debug: 4.4.1 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 lru-cache: 7.18.3 diff --git a/src/package.json b/src/package.json index ce904743c..3cb7080e5 100644 --- a/src/package.json +++ b/src/package.json @@ -65,7 +65,7 @@ "mysql2": "^3.22.5", "nano": "^11.0.5", "nodemailer": "^9.0.1", - "oidc-provider": "9.8.5", + "oidc-provider": "9.8.6", "openapi-backend": "^5.17.0", "pdfkit": "^0.19.1", "pg": "^8.22.0", From cce7cc6cd4bf94ce4e60fc4abeb248d6796931f8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Jun 2026 19:40:20 +0200 Subject: [PATCH 15/74] build(deps): bump @tanstack/react-query from 5.101.0 to 5.101.2 (#8007) Bumps [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) from 5.101.0 to 5.101.2. - [Release notes](https://github.com/TanStack/query/releases) - [Changelog](https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md) - [Commits](https://github.com/TanStack/query/commits/@tanstack/react-query@5.101.2/packages/react-query) --- updated-dependencies: - dependency-name: "@tanstack/react-query" dependency-version: 5.101.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- admin/package.json | 2 +- pnpm-lock.yaml | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/admin/package.json b/admin/package.json index 4d64d851f..9e3a8913b 100644 --- a/admin/package.json +++ b/admin/package.json @@ -15,7 +15,7 @@ }, "dependencies": { "@radix-ui/react-switch": "^1.3.1", - "@tanstack/react-query": "^5.101.0", + "@tanstack/react-query": "^5.101.2", "@tanstack/react-query-devtools": "^5.101.0", "jsonc-parser": "^3.3.1", "openapi-fetch": "^0.17.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7543c0cde..8ea8cff4b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -53,11 +53,11 @@ importers: specifier: ^1.3.1 version: 1.3.1(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@tanstack/react-query': - specifier: ^5.101.0 - version: 5.101.0(react@19.2.7) + specifier: ^5.101.2 + version: 5.101.2(react@19.2.7) '@tanstack/react-query-devtools': specifier: ^5.101.0 - version: 5.101.0(@tanstack/react-query@5.101.0(react@19.2.7))(react@19.2.7) + version: 5.101.0(@tanstack/react-query@5.101.2(react@19.2.7))(react@19.2.7) jsonc-parser: specifier: ^3.3.1 version: 3.3.1 @@ -66,7 +66,7 @@ importers: version: 0.17.0 openapi-react-query: specifier: ^0.5.4 - version: 0.5.4(@tanstack/react-query@5.101.0(react@19.2.7))(openapi-fetch@0.17.0) + version: 0.5.4(@tanstack/react-query@5.101.2(react@19.2.7))(openapi-fetch@0.17.0) devDependencies: '@radix-ui/react-dialog': specifier: ^1.1.17 @@ -1705,8 +1705,8 @@ packages: '@swc/helpers@0.5.23': resolution: {integrity: sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==} - '@tanstack/query-core@5.101.0': - resolution: {integrity: sha512-cQetA74EB+seWySv1TTKr828TnP0u39m6LykwDXIo84SNortpDkp30TMEjkqtYCNP9c40uT/iwl6MLiufEt0Ow==} + '@tanstack/query-core@5.101.2': + resolution: {integrity: sha512-hH5MLoJhF7KaIGd7q3xTXGXvslI+GYlM1Z/35aSHHWaCJWB7XvTSHYuV3eM7tw+aE0mT/xMro4M4Q9rCGHT0lw==} '@tanstack/query-devtools@5.101.0': resolution: {integrity: sha512-MVqw17k08RQtGGLEL654+dX/btbX9p/8WjkznO//zusLTMaObxi3Q+MoFwGVkC9K3tqjn8qrrNhJevXx4fJTeQ==} @@ -1717,8 +1717,8 @@ packages: '@tanstack/react-query': ^5.101.0 react: ^18 || ^19 - '@tanstack/react-query@5.101.0': - resolution: {integrity: sha512-rLlJXSpkqfizLWgkR5+eLeIk0MvTx/meEIR7LRjxic+qxiQP8zVjq7BqQkiCMNLQBlLfuOLqqr6KO5GtrDlmSg==} + '@tanstack/react-query@5.101.2': + resolution: {integrity: sha512-seDkr6kzGzX1okaaTtZPtgA688CDPlXUz1C6xSg0ESqn04Vuc8tlrYms1s3de+znBqhPVxFRfpAfUf+6XvfPWg==} peerDependencies: react: ^18 || ^19 @@ -6969,19 +6969,19 @@ snapshots: dependencies: tslib: 2.8.1 - '@tanstack/query-core@5.101.0': {} + '@tanstack/query-core@5.101.2': {} '@tanstack/query-devtools@5.101.0': {} - '@tanstack/react-query-devtools@5.101.0(@tanstack/react-query@5.101.0(react@19.2.7))(react@19.2.7)': + '@tanstack/react-query-devtools@5.101.0(@tanstack/react-query@5.101.2(react@19.2.7))(react@19.2.7)': dependencies: '@tanstack/query-devtools': 5.101.0 - '@tanstack/react-query': 5.101.0(react@19.2.7) + '@tanstack/react-query': 5.101.2(react@19.2.7) react: 19.2.7 - '@tanstack/react-query@5.101.0(react@19.2.7)': + '@tanstack/react-query@5.101.2(react@19.2.7)': dependencies: - '@tanstack/query-core': 5.101.0 + '@tanstack/query-core': 5.101.2 react: 19.2.7 '@tediousjs/connection-string@1.1.0': {} @@ -9962,9 +9962,9 @@ snapshots: dependencies: openapi-typescript-helpers: 0.1.0 - openapi-react-query@0.5.4(@tanstack/react-query@5.101.0(react@19.2.7))(openapi-fetch@0.17.0): + openapi-react-query@0.5.4(@tanstack/react-query@5.101.2(react@19.2.7))(openapi-fetch@0.17.0): dependencies: - '@tanstack/react-query': 5.101.0(react@19.2.7) + '@tanstack/react-query': 5.101.2(react@19.2.7) openapi-fetch: 0.17.0 openapi-typescript-helpers: 0.1.0 From 3ac0b0f0a4377c38a8b5ab391c912f07507d8292 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Jun 2026 20:09:42 +0200 Subject: [PATCH 16/74] build(deps): bump surrealdb from 2.0.3 to 2.0.4 (#8006) Bumps [surrealdb](https://github.com/surrealdb/surrealdb.js) from 2.0.3 to 2.0.4. - [Release notes](https://github.com/surrealdb/surrealdb.js/releases) - [Commits](https://github.com/surrealdb/surrealdb.js/compare/v2.0.3...v2.0.4) --- updated-dependencies: - dependency-name: surrealdb dependency-version: 2.0.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 36 ++++++++++++++++++++++++------------ src/package.json | 2 +- 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8ea8cff4b..1e20d129d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -166,7 +166,7 @@ importers: version: 4.22.4 ueberdb2: specifier: 6.1.14 - version: 6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.3(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) devDependencies: '@types/node': specifier: ^26.0.1 @@ -350,8 +350,8 @@ importers: specifier: 10.3.0 version: 10.3.0 surrealdb: - specifier: ^2.0.3 - version: 2.0.3(tslib@2.8.1)(typescript@6.0.3) + specifier: ^2.0.4 + version: 2.0.4(tslib@2.8.1)(typescript@6.0.3) tinycon: specifier: 0.6.8 version: 0.6.8 @@ -360,7 +360,7 @@ importers: version: 4.22.4 ueberdb2: specifier: 6.1.14 - version: 6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.3(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) underscore: specifier: 1.13.8 version: 1.13.8 @@ -1702,6 +1702,12 @@ packages: resolution: {integrity: sha512-l/hNZ3ZCOJq8rzwx1y5ZV/8b2bYCWdhGqRVY33Pu50NAHyAW5qLsMn3ZBkZow77mAKwNCsbDsRGnyYEuU95mjw==} engines: {node: '>=18.0.0'} + '@surrealdb/sqon@0.1.0': + resolution: {integrity: sha512-pooKLZ0W6mN8XHzJQavGOdfZOZksycmIjhwFwvG0kdCAt4I5U6KKPHcXQwFkTDNKFKFKdufczLRnzHapPIslQw==} + peerDependencies: + tslib: ^2.6.3 + typescript: ^5.0.0 + '@swc/helpers@0.5.23': resolution: {integrity: sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==} @@ -5186,11 +5192,11 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - surrealdb@2.0.3: - resolution: {integrity: sha512-60dXe7K+7M5EUr6VyIgd/SEUCKFXqc54JHUhCTG8IDlqp7pmuuQQWs2wpgulp2oSXpy+9jwKhgNR/mP3wrEgfw==} + surrealdb@2.0.4: + resolution: {integrity: sha512-tCmMzcsLB/CVDZtxsj/xOWY6NWy9MrX2abMuwnVpAI5xj7kvnq9noRtc1nhjuDihei/Njfkxe/NYMxy7ZLLl4g==} peerDependencies: tslib: ^2.6.3 - typescript: ^5.0.0 + typescript: ^5.0.0 || ^6.0.0 swagger-schema-official@2.0.0-bab6bed: resolution: {integrity: sha512-rCC0NWGKr/IJhtRuPq/t37qvZHI/mH4I4sxflVM+qgVe5Z2uOCivzWaVbuioJaB61kvm5UvB7b49E+oBY0M8jA==} @@ -6965,6 +6971,13 @@ snapshots: '@surrealdb/cbor@2.0.0-alpha.4': {} + '@surrealdb/sqon@0.1.0(tslib@2.8.1)(typescript@6.0.3)': + dependencies: + '@surrealdb/cbor': 2.0.0-alpha.4 + tslib: 2.8.1 + typescript: 6.0.3 + uuidv7: 1.2.1 + '@swc/helpers@0.5.23': dependencies: tslib: 2.8.1 @@ -10880,12 +10893,11 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - surrealdb@2.0.3(tslib@2.8.1)(typescript@6.0.3): + surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3): dependencies: - '@surrealdb/cbor': 2.0.0-alpha.4 + '@surrealdb/sqon': 0.1.0(tslib@2.8.1)(typescript@6.0.3) tslib: 2.8.1 typescript: 6.0.3 - uuidv7: 1.2.1 swagger-schema-official@2.0.0-bab6bed: {} @@ -11059,7 +11071,7 @@ snapshots: typescript@6.0.3: {} - ueberdb2@6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.3(tslib@2.8.1)(typescript@6.0.3)): + ueberdb2@6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)): optionalDependencies: '@elastic/elasticsearch': 9.4.2 async: 3.2.6 @@ -11073,7 +11085,7 @@ snapshots: redis: 6.0.0(@opentelemetry/api@1.9.1) rethinkdb: 2.4.2 rusty-store-kv: 1.3.1 - surrealdb: 2.0.3(tslib@2.8.1)(typescript@6.0.3) + surrealdb: 2.0.4(tslib@2.8.1)(typescript@6.0.3) uid-safe@2.1.5: dependencies: diff --git a/src/package.json b/src/package.json index 3cb7080e5..c9e11e7e6 100644 --- a/src/package.json +++ b/src/package.json @@ -82,7 +82,7 @@ "socket.io": "^4.8.3", "socket.io-client": "^4.8.3", "superagent": "10.3.0", - "surrealdb": "^2.0.3", + "surrealdb": "^2.0.4", "tinycon": "0.6.8", "tsx": "4.22.4", "ueberdb2": "6.1.14", From 9e850e17f3a680e6c2a8e373cf753ed2ceeb3e8f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Jun 2026 20:41:41 +0200 Subject: [PATCH 17/74] build(deps): bump redis from 6.0.0 to 6.0.1 (#8013) Bumps [redis](https://github.com/redis/node-redis) from 6.0.0 to 6.0.1. - [Release notes](https://github.com/redis/node-redis/releases) - [Changelog](https://github.com/redis/node-redis/blob/master/CHANGELOG.md) - [Commits](https://github.com/redis/node-redis/compare/redis@6.0.0...redis@6.0.1) --- updated-dependencies: - dependency-name: redis dependency-version: 6.0.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 74 ++++++++++++++++++++++++------------------------ src/package.json | 2 +- 2 files changed, 38 insertions(+), 38 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1e20d129d..204474b76 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -166,7 +166,7 @@ importers: version: 4.22.4 ueberdb2: specifier: 6.1.14 - version: 6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) devDependencies: '@types/node': specifier: ^26.0.1 @@ -320,8 +320,8 @@ importers: specifier: ^11.2.0 version: 11.2.0 redis: - specifier: ^6.0.0 - version: 6.0.0(@opentelemetry/api@1.9.1) + specifier: ^6.0.1 + version: 6.0.1(@opentelemetry/api@1.9.1) rehype: specifier: ^13.0.2 version: 13.0.2 @@ -360,7 +360,7 @@ importers: version: 4.22.4 ueberdb2: specifier: 6.1.14 - version: 6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) underscore: specifier: 1.13.8 version: 1.13.8 @@ -1506,14 +1506,14 @@ packages: '@types/react-dom': optional: true - '@redis/bloom@6.0.0': - resolution: {integrity: sha512-P0n5NkV9IIdT6nYXOfMHG83sho8pE7Nay7yw27wOGVLv4DthgvzebpGz6m7VuMTizeJmw3LPw2Xek5wFUhGpVw==} + '@redis/bloom@6.0.1': + resolution: {integrity: sha512-6ys5hhea+47n7o97ZFI4GvdzTQk/arIsXZgH159l6IVtJ4rZaB+KVdAfwvIxlmGA7z+NNlO8UxjTeQrenqjZcQ==} engines: {node: '>= 20.0.0'} peerDependencies: - '@redis/client': ^6.0.0 + '@redis/client': ^6.0.1 - '@redis/client@6.0.0': - resolution: {integrity: sha512-NS4iIT25r24sAjNQ2nSRdCW5jPJoV0rxkBee27oTeR+RXaOu89cjIsrww5rPBaYVGVdL1QCx9uz9141gZiSKdQ==} + '@redis/client@6.0.1': + resolution: {integrity: sha512-SwYl64hKHE/NeO2VSSG1y/4zIm0cNepyOZtQrOpLiNRHmH2FdWBOecNzsLiXCQdFCF9MCyoPXwAbaG2iMO0A7Q==} engines: {node: '>= 20.0.0'} peerDependencies: '@node-rs/xxhash': ^1.1.0 @@ -1524,23 +1524,23 @@ packages: '@opentelemetry/api': optional: true - '@redis/json@6.0.0': - resolution: {integrity: sha512-F+eqFfgPcy57Zs1KW7UtLnBtRk6lxAUIoe7dyZerpm6e+ssYXG/dWJrbrHFYs0b7tt6QBtYpVuukBuM9XqhUAg==} + '@redis/json@6.0.1': + resolution: {integrity: sha512-KD1OztCYh7O9TkKMU9qZcFIKoudIGqmgXsOhQVq5A3REGrnl+wg0kporQFQCO+fcxe/nhvDgmBtXrm3diPGczA==} engines: {node: '>= 20.0.0'} peerDependencies: - '@redis/client': ^6.0.0 + '@redis/client': ^6.0.1 - '@redis/search@6.0.0': - resolution: {integrity: sha512-VHuCJ2W0YWFixGZh/l//8JiyOsD4gN+NhjdRAGIoUe0UQ4mtq1NyY2ZJ973XT+vYhaU21XdK8r8oNrd5n7wbzQ==} + '@redis/search@6.0.1': + resolution: {integrity: sha512-G09OujS3eOtQnP7kZC5eZTiazwgeimlo6Pf3vHnE1jO7rfqrtmMI0R1/ZXfzoW8p9vB4QiH538aEsWaHKd8l5w==} engines: {node: '>= 20.0.0'} peerDependencies: - '@redis/client': ^6.0.0 + '@redis/client': ^6.0.1 - '@redis/time-series@6.0.0': - resolution: {integrity: sha512-QWhkYsg+3lhBrBf+cbzybtV8LQcSrk7iXIgTaGU+pHNFTkql7TpVRE24ROS6M2ybVIV6O/zxTqfxgxxYiqyw0Q==} + '@redis/time-series@6.0.1': + resolution: {integrity: sha512-8aLGSDtCpnPTLD7lEiHHmuDCFppctLdT8geFIDf/7LWV9y8Vre6RB+aBZrgkeo3X1oPmTt1IbVAQVxsuJvkODw==} engines: {node: '>= 20.0.0'} peerDependencies: - '@redis/client': ^6.0.0 + '@redis/client': ^6.0.1 '@redocly/ajv@8.11.2': resolution: {integrity: sha512-io1JpnwtIcvojV7QKDUSIuMN/ikdOUd1ReEnUnMKGfDVridQZ31J0MmIuqwuRjWDZfmvr+Q0MqCcfHM2gTivOg==} @@ -4770,8 +4770,8 @@ packages: resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} engines: {node: '>= 20.19.0'} - redis@6.0.0: - resolution: {integrity: sha512-n9Thfc39OXleEoPT2k5gwKsqY+HfCww3YS71ofcr9KKbkn89bpjU9dToIlD+JRdM3/GYQkwMtVgTxLyed+LptQ==} + redis@6.0.1: + resolution: {integrity: sha512-54FoTBdFw10Y602pShvk8CGJlSH55nY+CNAZaVk8YdxY3rENihdYm2lXrujrtupYTHyrVSZUxOdeStNQbNvnQg==} engines: {node: '>= 20.0.0'} reflect.getprototypeof@1.0.10: @@ -6812,27 +6812,27 @@ snapshots: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@redis/bloom@6.0.0(@redis/client@6.0.0(@opentelemetry/api@1.9.1))': + '@redis/bloom@6.0.1(@redis/client@6.0.1(@opentelemetry/api@1.9.1))': dependencies: - '@redis/client': 6.0.0(@opentelemetry/api@1.9.1) + '@redis/client': 6.0.1(@opentelemetry/api@1.9.1) - '@redis/client@6.0.0(@opentelemetry/api@1.9.1)': + '@redis/client@6.0.1(@opentelemetry/api@1.9.1)': dependencies: cluster-key-slot: 1.1.2 optionalDependencies: '@opentelemetry/api': 1.9.1 - '@redis/json@6.0.0(@redis/client@6.0.0(@opentelemetry/api@1.9.1))': + '@redis/json@6.0.1(@redis/client@6.0.1(@opentelemetry/api@1.9.1))': dependencies: - '@redis/client': 6.0.0(@opentelemetry/api@1.9.1) + '@redis/client': 6.0.1(@opentelemetry/api@1.9.1) - '@redis/search@6.0.0(@redis/client@6.0.0(@opentelemetry/api@1.9.1))': + '@redis/search@6.0.1(@redis/client@6.0.1(@opentelemetry/api@1.9.1))': dependencies: - '@redis/client': 6.0.0(@opentelemetry/api@1.9.1) + '@redis/client': 6.0.1(@opentelemetry/api@1.9.1) - '@redis/time-series@6.0.0(@redis/client@6.0.0(@opentelemetry/api@1.9.1))': + '@redis/time-series@6.0.1(@redis/client@6.0.1(@opentelemetry/api@1.9.1))': dependencies: - '@redis/client': 6.0.0(@opentelemetry/api@1.9.1) + '@redis/client': 6.0.1(@opentelemetry/api@1.9.1) '@redocly/ajv@8.11.2': dependencies: @@ -10358,13 +10358,13 @@ snapshots: readdirp@5.0.0: {} - redis@6.0.0(@opentelemetry/api@1.9.1): + redis@6.0.1(@opentelemetry/api@1.9.1): dependencies: - '@redis/bloom': 6.0.0(@redis/client@6.0.0(@opentelemetry/api@1.9.1)) - '@redis/client': 6.0.0(@opentelemetry/api@1.9.1) - '@redis/json': 6.0.0(@redis/client@6.0.0(@opentelemetry/api@1.9.1)) - '@redis/search': 6.0.0(@redis/client@6.0.0(@opentelemetry/api@1.9.1)) - '@redis/time-series': 6.0.0(@redis/client@6.0.0(@opentelemetry/api@1.9.1)) + '@redis/bloom': 6.0.1(@redis/client@6.0.1(@opentelemetry/api@1.9.1)) + '@redis/client': 6.0.1(@opentelemetry/api@1.9.1) + '@redis/json': 6.0.1(@redis/client@6.0.1(@opentelemetry/api@1.9.1)) + '@redis/search': 6.0.1(@redis/client@6.0.1(@opentelemetry/api@1.9.1)) + '@redis/time-series': 6.0.1(@redis/client@6.0.1(@opentelemetry/api@1.9.1)) transitivePeerDependencies: - '@node-rs/xxhash' - '@opentelemetry/api' @@ -11071,7 +11071,7 @@ snapshots: typescript@6.0.3: {} - ueberdb2@6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)): + ueberdb2@6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)): optionalDependencies: '@elastic/elasticsearch': 9.4.2 async: 3.2.6 @@ -11082,7 +11082,7 @@ snapshots: mysql2: 3.22.5(@types/node@26.0.1) nano: 11.0.5 pg: 8.22.0 - redis: 6.0.0(@opentelemetry/api@1.9.1) + redis: 6.0.1(@opentelemetry/api@1.9.1) rethinkdb: 2.4.2 rusty-store-kv: 1.3.1 surrealdb: 2.0.4(tslib@2.8.1)(typescript@6.0.3) diff --git a/src/package.json b/src/package.json index c9e11e7e6..805f24c24 100644 --- a/src/package.json +++ b/src/package.json @@ -72,7 +72,7 @@ "prom-client": "^15.1.3", "proxy-addr": "^2.0.7", "rate-limiter-flexible": "^11.2.0", - "redis": "^6.0.0", + "redis": "^6.0.1", "rehype": "^13.0.2", "rehype-minify-whitespace": "^6.0.2", "resolve": "1.22.12", From 33160db4545302270ce14073385d870f25959b0a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Jun 2026 22:50:26 +0200 Subject: [PATCH 18/74] build(deps): bump mongodb from 7.3.0 to 7.4.0 (#8009) Bumps [mongodb](https://github.com/mongodb/node-mongodb-native) from 7.3.0 to 7.4.0. - [Release notes](https://github.com/mongodb/node-mongodb-native/releases) - [Changelog](https://github.com/mongodb/node-mongodb-native/blob/main/HISTORY.md) - [Commits](https://github.com/mongodb/node-mongodb-native/compare/v7.3.0...v7.4.0) --- updated-dependencies: - dependency-name: mongodb dependency-version: 7.4.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 26 +++++++++++++------------- src/package.json | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 204474b76..121b342c1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -166,7 +166,7 @@ importers: version: 4.22.4 ueberdb2: specifier: 6.1.14 - version: 6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) devDependencies: '@types/node': specifier: ^26.0.1 @@ -284,8 +284,8 @@ importers: specifier: ^3.0.2 version: 3.0.2 mongodb: - specifier: ^7.3.0 - version: 7.3.0 + specifier: ^7.4.0 + version: 7.4.0 mssql: specifier: ^12.5.5 version: 12.5.5(@azure/core-client@1.10.1) @@ -360,7 +360,7 @@ importers: version: 4.22.4 ueberdb2: specifier: 6.1.14 - version: 6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) underscore: specifier: 1.13.8 version: 1.13.8 @@ -2516,8 +2516,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - bson@7.2.0: - resolution: {integrity: sha512-YCEo7KjMlbNlyHhz7zAZNDpIpQbd+wOEHJYezv0nMYTn4x31eIUM2yomNNubclAt63dObUzKHWsBLJ9QcZNSnQ==} + bson@7.3.1: + resolution: {integrity: sha512-h/C0qe6857pQhcSJHLfsR1uYGj98Ge3wKAD3Ed9KqH3wcVh+BM4Jq4xISD7vs9OPuT07n+q3QQVjslJ286j6ag==} engines: {node: '>=20.19.0'} buffer-equal-constant-time@1.0.1: @@ -4216,8 +4216,8 @@ packages: resolution: {integrity: sha512-h0AZ9A7IDVwwHyMxmdMXKy+9oNlF0zFoahHiX3vQ8e3KFcSP3VmsmfvtRSuLPxmyv2vjIDxqty8smTgie/SNRQ==} engines: {node: '>=20.19.0'} - mongodb@7.3.0: - resolution: {integrity: sha512-WpCqSx7JAU9vcyjm/SU7ydnHls2YrfU3Y3sx4Ml9D7sPe4mXPlaapndiurDXrQ7/VvJkB4/i7b7WovHb8bd8sg==} + mongodb@7.4.0: + resolution: {integrity: sha512-giySkkdYiwoBFo/oCc8nzov3xOYZ/sB8OpAYk5GINRLEjVw0LDsm8xgQL0XMTyU4extQlDZjhdUr1ZEwKFaazw==} engines: {node: '>=20.19.0'} peerDependencies: '@aws-sdk/credential-providers': ^3.806.0 @@ -7848,7 +7848,7 @@ snapshots: node-releases: 2.0.38 update-browserslist-db: 1.2.3(browserslist@4.28.2) - bson@7.2.0: {} + bson@7.3.1: {} buffer-equal-constant-time@1.0.1: {} @@ -9790,10 +9790,10 @@ snapshots: '@types/whatwg-url': 13.0.0 whatwg-url: 14.2.0 - mongodb@7.3.0: + mongodb@7.4.0: dependencies: '@mongodb-js/saslprep': 1.4.11 - bson: 7.2.0 + bson: 7.3.1 mongodb-connection-string-url: 7.0.1 ms@2.0.0: {} @@ -11071,13 +11071,13 @@ snapshots: typescript@6.0.3: {} - ueberdb2@6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)): + ueberdb2@6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)): optionalDependencies: '@elastic/elasticsearch': 9.4.2 async: 3.2.6 cassandra-driver: 4.8.0 dirty-ts: 1.1.8 - mongodb: 7.3.0 + mongodb: 7.4.0 mssql: 12.5.5(@azure/core-client@1.10.1) mysql2: 3.22.5(@types/node@26.0.1) nano: 11.0.5 diff --git a/src/package.json b/src/package.json index 805f24c24..6a84df87a 100644 --- a/src/package.json +++ b/src/package.json @@ -60,7 +60,7 @@ "mammoth": "^1.12.0", "measured-core": "^2.0.0", "mime-types": "^3.0.2", - "mongodb": "^7.3.0", + "mongodb": "^7.4.0", "mssql": "^12.5.5", "mysql2": "^3.22.5", "nano": "^11.0.5", From be8120b14e05e86a09a43c30edd657c5af406d77 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 11:21:39 +0100 Subject: [PATCH 19/74] build(deps): bump nodemailer from 9.0.1 to 9.0.3 (#8015) Bumps [nodemailer](https://github.com/nodemailer/nodemailer) from 9.0.1 to 9.0.3. - [Release notes](https://github.com/nodemailer/nodemailer/releases) - [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md) - [Commits](https://github.com/nodemailer/nodemailer/compare/v9.0.1...v9.0.3) --- updated-dependencies: - dependency-name: nodemailer dependency-version: 9.0.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 10 +++++----- src/package.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 121b342c1..a7ba5b9a8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -296,8 +296,8 @@ importers: specifier: ^11.0.5 version: 11.0.5 nodemailer: - specifier: ^9.0.1 - version: 9.0.1 + specifier: ^9.0.3 + version: 9.0.3 oidc-provider: specifier: 9.8.6 version: 9.8.6 @@ -4332,8 +4332,8 @@ packages: nodeify@1.0.1: resolution: {integrity: sha512-n7C2NyEze8GCo/z73KdbjRsBiLbv6eBn1FxwYKQ23IqGo7pQY3mhQan61Sv7eEDJCiyUjTVrVkXTzJCo1dW7Aw==} - nodemailer@9.0.1: - resolution: {integrity: sha512-Gwv8SQewT616ZM/URn0H54b8PWo/Wum7md3EW2aWy1lO27+WZCX+Xyak3J+NlmHUjDh5ME+uesJUDRbR3Ye8Bw==} + nodemailer@9.0.3: + resolution: {integrity: sha512-n+YP+NKwR5zRWa60k3GiQ6Q3B4KXCoAw40dAKeCtYn020iNN74aWK2liXIC3ZEATeGql7we3tE3t8QwhY0eskw==} engines: {node: '>=6.0.0'} object-assign@4.1.1: @@ -9872,7 +9872,7 @@ snapshots: is-promise: 1.0.1 promise: 1.3.0 - nodemailer@9.0.1: {} + nodemailer@9.0.3: {} object-assign@4.1.1: {} diff --git a/src/package.json b/src/package.json index 6a84df87a..964622a17 100644 --- a/src/package.json +++ b/src/package.json @@ -64,7 +64,7 @@ "mssql": "^12.5.5", "mysql2": "^3.22.5", "nano": "^11.0.5", - "nodemailer": "^9.0.1", + "nodemailer": "^9.0.3", "oidc-provider": "9.8.6", "openapi-backend": "^5.17.0", "pdfkit": "^0.19.1", From ab4c7beded8a10a59135eb47663d127b7488e366 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 11:21:49 +0100 Subject: [PATCH 20/74] build(deps): bump openapi-backend from 5.17.0 to 5.18.0 (#8011) Bumps [openapi-backend](https://github.com/openapistack/openapi-backend) from 5.17.0 to 5.18.0. - [Release notes](https://github.com/openapistack/openapi-backend/releases) - [Commits](https://github.com/openapistack/openapi-backend/compare/5.17.0...5.18.0) --- updated-dependencies: - dependency-name: openapi-backend dependency-version: 5.18.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 53 +++++++++++++++++++++++++++++++++++++----------- src/package.json | 2 +- 2 files changed, 42 insertions(+), 13 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a7ba5b9a8..831f37087 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -302,8 +302,8 @@ importers: specifier: 9.8.6 version: 9.8.6 openapi-backend: - specifier: ^5.17.0 - version: 5.17.0 + specifier: ^5.18.0 + version: 5.18.0 pdfkit: specifier: ^0.19.1 version: 0.19.1 @@ -3267,8 +3267,8 @@ packages: fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - fast-uri@3.1.2: - resolution: {integrity: sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==} + fast-uri@3.1.3: + resolution: {integrity: sha512-i70LwGWUduXqzicKXWshooq+sWL1K3WUU5rKZNG/0i3a1OSoX3HqhH5WbWwTmqWfor4urUakGPiRQcleRZTwOg==} fastq@1.20.1: resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} @@ -3833,6 +3833,10 @@ packages: resolution: {integrity: sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==} hasBin: true + js-yaml@5.2.0: + resolution: {integrity: sha512-YeLUMlvR4Ou1B119LIaM0r65JvbOBooJDc9yEu0dClb/uSC5P4FrLU8OCCz/HXWvtPoIrR0dRzABTjo1sTN9Bw==} + hasBin: true + jsdom@29.1.1: resolution: {integrity: sha512-ECi4Fi2f7BdJtUKTflYRTiaMxIB0O6zfR1fX0GXpUrf6flp8QIYn1UT20YQqdSOfk2dfkCwS8LAFoJDEppNK5Q==} engines: {node: ^20.19.0 || ^22.13.0 || >=24.0.0} @@ -4396,8 +4400,8 @@ packages: resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} engines: {node: '>=18'} - openapi-backend@5.17.0: - resolution: {integrity: sha512-wyimPBoz/Gx+pqh4QwvMQRIJiZQHZkLdiyFXwfjiLwS5Jhbm7gCI+T0WTXmx7HXAYXL5Cr+016dR3CV3T/dPmQ==} + openapi-backend@5.18.0: + resolution: {integrity: sha512-I3ipDN/JJxLch4ZyPv+Y7xskFcWiT5l0FnUvzNr/YWF4wh6BbcYjM5CGrll80w4ATeVX5/4SfrGmxF+NNUbiPQ==} engines: {node: '>=20.0.0'} openapi-fetch@0.17.0: @@ -4645,6 +4649,10 @@ packages: resolution: {integrity: sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw==} engines: {node: '>=0.6'} + qs@6.15.3: + resolution: {integrity: sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==} + engines: {node: '>=0.6'} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -5032,6 +5040,10 @@ packages: resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} + side-channel@1.1.1: + resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==} + engines: {node: '>= 0.4'} + siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -5903,7 +5915,7 @@ snapshots: dependencies: '@jsdevtools/ono': 7.1.3 '@types/json-schema': 7.0.15 - js-yaml: 4.2.0 + js-yaml: 5.2.0 '@asamuzakjp/css-color@5.1.11': dependencies: @@ -7664,7 +7676,7 @@ snapshots: ajv@8.20.0: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.1.2 + fast-uri: 3.1.3 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -8723,7 +8735,7 @@ snapshots: fast-safe-stringify@2.1.1: {} - fast-uri@3.1.2: {} + fast-uri@3.1.3: {} fastq@1.20.1: dependencies: @@ -9191,7 +9203,7 @@ snapshots: dependencies: es-errors: 1.3.0 hasown: 2.0.3 - side-channel: 1.1.0 + side-channel: 1.1.1 ip-address@10.2.0: {} @@ -9361,6 +9373,10 @@ snapshots: dependencies: argparse: 2.0.1 + js-yaml@5.2.0: + dependencies: + argparse: 2.0.1 + jsdom@29.1.1(@noble/hashes@1.8.0): dependencies: '@asamuzakjp/css-color': 5.1.11 @@ -9958,7 +9974,7 @@ snapshots: is-inside-container: 1.0.0 wsl-utils: 0.1.0 - openapi-backend@5.17.0: + openapi-backend@5.18.0: dependencies: '@apidevtools/json-schema-ref-parser': 11.9.3 ajv: 8.20.0 @@ -9969,7 +9985,7 @@ snapshots: mock-json-schema: 1.1.2 openapi-schema-validator: 12.1.3 openapi-types: 12.1.3 - qs: 6.15.2 + qs: 6.15.3 openapi-fetch@0.17.0: dependencies: @@ -10244,6 +10260,11 @@ snapshots: dependencies: side-channel: 1.1.0 + qs@6.15.3: + dependencies: + es-define-property: 1.0.1 + side-channel: 1.1.1 + queue-microtask@1.2.3: {} queue@6.0.2: @@ -10694,6 +10715,14 @@ snapshots: side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 + side-channel@1.1.1: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.1 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + siginfo@2.0.0: {} signal-exit@3.0.7: {} diff --git a/src/package.json b/src/package.json index 964622a17..0b6885a0f 100644 --- a/src/package.json +++ b/src/package.json @@ -66,7 +66,7 @@ "nano": "^11.0.5", "nodemailer": "^9.0.3", "oidc-provider": "9.8.6", - "openapi-backend": "^5.17.0", + "openapi-backend": "^5.18.0", "pdfkit": "^0.19.1", "pg": "^8.22.0", "prom-client": "^15.1.3", From 75be62c80114f6a98b47a48ab5257e14618b4523 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 11:22:03 +0100 Subject: [PATCH 21/74] build(deps): bump ueberdb2 from 6.1.14 to 6.1.15 (#8008) Bumps [ueberdb2](https://github.com/ether/ueberDB) from 6.1.14 to 6.1.15. - [Changelog](https://github.com/ether/ueberDB/blob/main/CHANGELOG.md) - [Commits](https://github.com/ether/ueberDB/compare/v6.1.14...v6.1.15) --- updated-dependencies: - dependency-name: ueberdb2 dependency-version: 6.1.15 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- bin/package.json | 2 +- pnpm-lock.yaml | 14 +++++++------- src/package.json | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/bin/package.json b/bin/package.json index 34148d384..3de1f0fad 100644 --- a/bin/package.json +++ b/bin/package.json @@ -11,7 +11,7 @@ "log4js": "^6.9.1", "semver": "^7.8.5", "tsx": "^4.22.4", - "ueberdb2": "6.1.14" + "ueberdb2": "6.1.15" }, "devDependencies": { "@types/node": "^26.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 831f37087..54b34cea3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -165,8 +165,8 @@ importers: specifier: ^4.22.4 version: 4.22.4 ueberdb2: - specifier: 6.1.14 - version: 6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) + specifier: 6.1.15 + version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) devDependencies: '@types/node': specifier: ^26.0.1 @@ -359,8 +359,8 @@ importers: specifier: 4.22.4 version: 4.22.4 ueberdb2: - specifier: 6.1.14 - version: 6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) + specifier: 6.1.15 + version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) underscore: specifier: 1.13.8 version: 1.13.8 @@ -5376,8 +5376,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - ueberdb2@6.1.14: - resolution: {integrity: sha512-ZaNtdN8OP/eVgOgX/Rgc5gN3SlLWGEgaevLwMhvEE4L0xc1zLveCK1aMSA0bjhHYgD1BQz54THEtZEWIQWjIhw==} + ueberdb2@6.1.15: + resolution: {integrity: sha512-F17WoWfzSPGHzdyMCIeT/l0p0ibVZIxbQ38yWyhaTj/sjIndbkYtiK8zxL9VOZ4/KsUzC97gFPIwPzjruvYMJQ==} engines: {node: '>=24.0.0'} peerDependencies: '@elastic/elasticsearch': ^9.0.0 @@ -11100,7 +11100,7 @@ snapshots: typescript@6.0.3: {} - ueberdb2@6.1.14(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)): + ueberdb2@6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)): optionalDependencies: '@elastic/elasticsearch': 9.4.2 async: 3.2.6 diff --git a/src/package.json b/src/package.json index 0b6885a0f..9389fd040 100644 --- a/src/package.json +++ b/src/package.json @@ -85,7 +85,7 @@ "surrealdb": "^2.0.4", "tinycon": "0.6.8", "tsx": "4.22.4", - "ueberdb2": "6.1.14", + "ueberdb2": "6.1.15", "underscore": "1.13.8", "undici": "^8.5.0", "wtfnode": "^0.10.1" From 82d1fd63a5dfb5949a755992160f96d3b5d9658d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 11:22:09 +0100 Subject: [PATCH 22/74] build(deps): bump @tanstack/react-query-devtools from 5.101.0 to 5.101.2 (#8005) Bumps [@tanstack/react-query-devtools](https://github.com/TanStack/query/tree/HEAD/packages/react-query-devtools) from 5.101.0 to 5.101.2. - [Release notes](https://github.com/TanStack/query/releases) - [Changelog](https://github.com/TanStack/query/blob/main/packages/react-query-devtools/CHANGELOG.md) - [Commits](https://github.com/TanStack/query/commits/@tanstack/react-query-devtools@5.101.2/packages/react-query-devtools) --- updated-dependencies: - dependency-name: "@tanstack/react-query-devtools" dependency-version: 5.101.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- admin/package.json | 2 +- pnpm-lock.yaml | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/admin/package.json b/admin/package.json index 9e3a8913b..2a46742e8 100644 --- a/admin/package.json +++ b/admin/package.json @@ -16,7 +16,7 @@ "dependencies": { "@radix-ui/react-switch": "^1.3.1", "@tanstack/react-query": "^5.101.2", - "@tanstack/react-query-devtools": "^5.101.0", + "@tanstack/react-query-devtools": "^5.101.2", "jsonc-parser": "^3.3.1", "openapi-fetch": "^0.17.0", "openapi-react-query": "^0.5.4" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 54b34cea3..b5dc6a8cf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -56,8 +56,8 @@ importers: specifier: ^5.101.2 version: 5.101.2(react@19.2.7) '@tanstack/react-query-devtools': - specifier: ^5.101.0 - version: 5.101.0(@tanstack/react-query@5.101.2(react@19.2.7))(react@19.2.7) + specifier: ^5.101.2 + version: 5.101.2(@tanstack/react-query@5.101.2(react@19.2.7))(react@19.2.7) jsonc-parser: specifier: ^3.3.1 version: 3.3.1 @@ -1714,13 +1714,13 @@ packages: '@tanstack/query-core@5.101.2': resolution: {integrity: sha512-hH5MLoJhF7KaIGd7q3xTXGXvslI+GYlM1Z/35aSHHWaCJWB7XvTSHYuV3eM7tw+aE0mT/xMro4M4Q9rCGHT0lw==} - '@tanstack/query-devtools@5.101.0': - resolution: {integrity: sha512-MVqw17k08RQtGGLEL654+dX/btbX9p/8WjkznO//zusLTMaObxi3Q+MoFwGVkC9K3tqjn8qrrNhJevXx4fJTeQ==} + '@tanstack/query-devtools@5.101.2': + resolution: {integrity: sha512-o+wHcqgN7Pp0s8v1i0UGq/ZrrEKrxdIiMQmKRdYb2w7NPtylYSJ4+wg/tIn71m9DLstwUwdEGAvROdly6HXP6w==} - '@tanstack/react-query-devtools@5.101.0': - resolution: {integrity: sha512-cpZA0+WqKXwrwMfiWZEGGF6QrIWVQFbhBtxqDF5sQsAfrFf47HIE6fiPbQU3wyAUEN2+7UNqLCQe7oG6m3f93w==} + '@tanstack/react-query-devtools@5.101.2': + resolution: {integrity: sha512-eU7HctdA9gDjqoERoEdzLbw9DiqnBDfh5+Hu0u26gjqoHJezOpQAuiesDL2VvkU+2cPV76zgv0tMZsOrI4LjnQ==} peerDependencies: - '@tanstack/react-query': ^5.101.0 + '@tanstack/react-query': ^5.101.2 react: ^18 || ^19 '@tanstack/react-query@5.101.2': @@ -6996,11 +6996,11 @@ snapshots: '@tanstack/query-core@5.101.2': {} - '@tanstack/query-devtools@5.101.0': {} + '@tanstack/query-devtools@5.101.2': {} - '@tanstack/react-query-devtools@5.101.0(@tanstack/react-query@5.101.2(react@19.2.7))(react@19.2.7)': + '@tanstack/react-query-devtools@5.101.2(@tanstack/react-query@5.101.2(react@19.2.7))(react@19.2.7)': dependencies: - '@tanstack/query-devtools': 5.101.0 + '@tanstack/query-devtools': 5.101.2 '@tanstack/react-query': 5.101.2(react@19.2.7) react: 19.2.7 From 3b9acd487cb61cb030b18aff5da7849807ecf436 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 21:39:45 +0200 Subject: [PATCH 23/74] build(deps): bump mssql from 12.5.5 to 12.6.0 (#8010) Bumps [mssql](https://github.com/tediousjs/node-mssql) from 12.5.5 to 12.6.0. - [Release notes](https://github.com/tediousjs/node-mssql/releases) - [Changelog](https://github.com/tediousjs/node-mssql/blob/master/CHANGELOG.txt) - [Commits](https://github.com/tediousjs/node-mssql/compare/v12.5.5...v12.6.0) --- updated-dependencies: - dependency-name: mssql dependency-version: 12.6.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 143 +++++++++++++++++++++-------------------------- src/package.json | 2 +- 2 files changed, 64 insertions(+), 81 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b5dc6a8cf..a8f384640 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -166,7 +166,7 @@ importers: version: 4.22.4 ueberdb2: specifier: 6.1.15 - version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) devDependencies: '@types/node': specifier: ^26.0.1 @@ -287,8 +287,8 @@ importers: specifier: ^7.4.0 version: 7.4.0 mssql: - specifier: ^12.5.5 - version: 12.5.5(@azure/core-client@1.10.1) + specifier: ^12.6.0 + version: 12.6.0 mysql2: specifier: ^3.22.5 version: 3.22.5(@types/node@26.0.1) @@ -360,7 +360,7 @@ importers: version: 4.22.4 ueberdb2: specifier: 6.1.15 - version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) underscore: specifier: 1.13.8 version: 1.13.8 @@ -527,8 +527,8 @@ packages: '@asamuzakjp/nwsapi@2.3.9': resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==} - '@azure-rest/core-client@2.6.0': - resolution: {integrity: sha512-iuFKDm8XPzNxPfRjhyU5/xKZmcRDzSuEghXDHHk4MjBV/wFL34GmYVBZnn9wmuoLBeS1qAw9ceMdaeJBPcB1QQ==} + '@azure-rest/core-client@2.7.0': + resolution: {integrity: sha512-rL0lJqh1E8HLXNgjIw8cRyGAV/v+m6p1xRu/8OhsnmN8XHhwkyYJkAoGM+zrew96v7jZYPmVfy7pv7v4Iccfsg==} engines: {node: '>=20.0.0'} '@azure/abort-controller@2.1.2': @@ -539,17 +539,10 @@ packages: resolution: {integrity: sha512-ykRMW8PjVAn+RS6ww5cmK9U2CyH9p4Q88YJwvUslfuMmN98w/2rdGRLPqJYObapBCdzBVeDgYWdJnFPFb7qzpg==} engines: {node: '>=20.0.0'} - '@azure/core-client@1.10.1': - resolution: {integrity: sha512-Nh5PhEOeY6PrnxNPsEHRr9eimxLwgLlpmguQaHKBinFYA/RU9+kOYVOQqOrTsCL+KSxrLLl1gD8Dk5BFW/7l/w==} + '@azure/core-client@1.10.2': + resolution: {integrity: sha512-1D2LpsU7y9xrqKjdIbsB7PlrRePw0xsVV8p+AKTlzITrWmscajryfJCdDJB/oGwvDI5HmRo04eMMADB67uwAwQ==} engines: {node: '>=20.0.0'} - '@azure/core-http-compat@2.4.0': - resolution: {integrity: sha512-f1P96IB399YiN2ARYHP7EpZi3Bf3wH4SN2lGzrw7JVwm7bbsVYtf2iKSBwTywD2P62NOPZGHFSZi+6jjb75JuA==} - engines: {node: '>=20.0.0'} - peerDependencies: - '@azure/core-client': ^1.10.0 - '@azure/core-rest-pipeline': ^1.22.0 - '@azure/core-lro@2.7.2': resolution: {integrity: sha512-0YIpccoX8m/k00O7mDDMdJpbr6mf1yWo2dfmxt5A8XVZVVMz2SSKaEbMCeJRvgQ0IaSlqhjT47p4hVIRRy90xw==} engines: {node: '>=18.0.0'} @@ -558,8 +551,8 @@ packages: resolution: {integrity: sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA==} engines: {node: '>=18.0.0'} - '@azure/core-rest-pipeline@1.23.0': - resolution: {integrity: sha512-Evs1INHo+jUjwHi1T6SG6Ua/LHOQBCLuKEEE6efIpt4ZOoNonaT1kP32GoOcdNDbfqsD2445CPri3MubBy5DEQ==} + '@azure/core-rest-pipeline@1.24.0': + resolution: {integrity: sha512-PpLsoDQ3AMmKZ0VU+0GrmqMxgp/sExjlVm4R+nLWngeoEGAzOIPVifaxKGU5gMv+nWELUoHfvrolWD+ZS/nFJg==} engines: {node: '>=20.0.0'} '@azure/core-tracing@1.3.1': @@ -578,24 +571,24 @@ packages: resolution: {integrity: sha512-aCDidWuKY06LWQ4x7/8TIXK6iRqTaRWRL3t7T+LC+j1b07HtoIsOxP/tU90G4jCSBn5TAyUTCtA4MS/y5Hudaw==} engines: {node: '>=20.0.0'} - '@azure/keyvault-keys@4.10.0': - resolution: {integrity: sha512-eDT7iXoBTRZ2n3fLiftuGJFD+yjkiB1GNqzU2KbY1TLYeXeSPVTVgn2eJ5vmRTZ11978jy2Kg2wI7xa9Tyr8ag==} - engines: {node: '>=18.0.0'} + '@azure/keyvault-keys@4.10.2': + resolution: {integrity: sha512-VmUSLbXRAbSzDD8grXHGPaknYs0SKr3yuf6U+d4XMpX4XuVYskNqbTTwXce0zR1LyxfTZm9rWEBcvs3vdYwCmQ==} + engines: {node: '>=20.0.0'} '@azure/logger@1.3.0': resolution: {integrity: sha512-fCqPIfOcLE+CGqGPd66c8bZpwAji98tZ4JI9i/mlTNTlsIWslCfpg48s/ypyLxZTump5sypjrKn2/kY7q8oAbA==} engines: {node: '>=20.0.0'} - '@azure/msal-browser@5.11.0': - resolution: {integrity: sha512-zkGNYS3TwY8lUpPIafAmsFCYZbgFixY9y/LZB9GUg0IILoHTqpN26j5OrkL1AQThh/YdZsawe4iWXfp85lFVxg==} + '@azure/msal-browser@5.15.0': + resolution: {integrity: sha512-2NYT6v+eeQn8kmNddr9LnbXSvXbVELpmFMmfFvtRxD7I/5+5GlkMlncApeuRFj+mY6C9syOwQip1a0Y+TIbyiA==} engines: {node: '>=0.8.0'} - '@azure/msal-common@16.6.2': - resolution: {integrity: sha512-hQjjsekAjB00cM1EmatWJlzhEoK2Qhz7Rj5gvM6tYf8iL7RM3tkxlpU9fG0+ofkulzg9AEEA6dIEnSmDr5ZqUA==} + '@azure/msal-common@16.10.0': + resolution: {integrity: sha512-iYtjpanlv6963Jprs0MvzIap07V+QhultjQctfbEDQCflsDAEeO3R7XnVA5gk30fhoBFLdgJT7VqO0TGsEsN9w==} engines: {node: '>=0.8.0'} - '@azure/msal-node@5.2.2': - resolution: {integrity: sha512-toS+2AePxqyzb0YOKttDOOiSl3jrkK9aiqIvpurpis0O34QcIS5gToqrgT39p04Dpxw3YoUU0lxJKTpSFFfA6Q==} + '@azure/msal-node@5.3.0': + resolution: {integrity: sha512-fXtJX811pX8y8QlrQqBSH6+plvWyKZDI0IxkheAcyAw9OtcpXyFivmTC7eGUqutLWaDlKXuQ3yOESD4zAmkjHg==} engines: {node: '>=20'} '@babel/code-frame@7.29.0': @@ -1017,8 +1010,8 @@ packages: '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} - '@js-joda/core@5.7.0': - resolution: {integrity: sha512-WBu4ULVVxySLLzK1Ppq+OdfP+adRS4ntmDQT915rzDJ++i95gc2jZkM5B6LWEAwN3lGXpfie3yPABozdD3K3Vg==} + '@js-joda/core@6.0.1': + resolution: {integrity: sha512-Iev3Cfa3MC+06JXXeFzSLew/7yeCXLMhjesyH/BD4EQYlUUDV49Ln3s8hd7p5XK5UesO/dO3K1LFJ7RT7v0Ddg==} '@jsdevtools/ono@7.1.3': resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} @@ -2065,8 +2058,8 @@ packages: resolution: {integrity: sha512-4g3BLxfdTMy8iZG0MaBkadnlRrCJ74cQiFbyEVMrkwIoqdyaXXQM22cotDvrl4x28wgIZ9rEJRoM+mmhSJpJ1g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typespec/ts-http-runtime@0.3.5': - resolution: {integrity: sha512-yURCknZhvywvQItHMMmFSo+fq5arCUIyz/CVk7jD89MSai7dkaX8ufjCWp3NttLojoTVbcE72ri+be/TnEbMHw==} + '@typespec/ts-http-runtime@0.3.6': + resolution: {integrity: sha512-jIXhD0eWQ1JA6ln/5Dltyx22UxWNrw0hZmhy2rlv6m6KgF7kplHx3g0fzi09lNmTJQRR91OlemYp3xFnvDK9og==} engines: {node: '>=20.0.0'} '@ungap/structured-clone@1.3.0': @@ -4253,8 +4246,8 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - mssql@12.5.5: - resolution: {integrity: sha512-kQYghNfnnx+jX0Wyl8g+MtP6Z3DtOajINNx6pEgaG8K/MGlB3LCtU8Bmoje4zeEwukI35yCfpJQa+5AEUcNf1g==} + mssql@12.6.0: + resolution: {integrity: sha512-shOPombtihqeQ/URNsdkAebOqjeSSpFaTgZ4kO+XdMU8QvfAGzZ8lfB7AliakWhM8U+/AgOOPHV+jHW67UJlPQ==} engines: {node: '>=18.19.0'} hasBin: true @@ -5227,15 +5220,15 @@ packages: resolution: {integrity: sha512-56adEpPMouktRlBLXiaYFFzZ/3+JXa8P9n7WbR+ibIjtviN55mEaOkiysCnPnWm+7kkui1Dn8J9l+g6zV8731w==} engines: {node: '>=18'} - tarn@3.0.2: - resolution: {integrity: sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==} + tarn@3.1.0: + resolution: {integrity: sha512-QDihlHbXxQ4SnuQcRd1TPNBHUYo/hafDRDP82COYSVfRcx/3qnfGDkn1WFjozVl+AYr8ZyDKSQ/kIgHH1ri1yg==} engines: {node: '>=8.0.0'} tdigest@0.1.2: resolution: {integrity: sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==} - tedious@19.2.1: - resolution: {integrity: sha512-pk1Q16Yl62iocuQB+RWbg6rFUFkIyzqOFQ6NfysCltRvQqKwfurgj8v/f2X+CKvDhSL4IJ0cCOfCHDg9PWEEYA==} + tedious@19.2.2: + resolution: {integrity: sha512-ITsLV/XXXAuJ/+pgnod4lcJH83WPK7+y2aqOwK/ERoC4zX73wfRIVc7BofuHCqDTqpd6j1RwTBtjKNuuOLEvfw==} engines: {node: '>=18.17'} tiny-inflate@1.0.3: @@ -5937,13 +5930,13 @@ snapshots: '@asamuzakjp/nwsapi@2.3.9': {} - '@azure-rest/core-client@2.6.0': + '@azure-rest/core-client@2.7.0': dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.10.1 - '@azure/core-rest-pipeline': 1.23.0 + '@azure/core-rest-pipeline': 1.24.0 '@azure/core-tracing': 1.3.1 - '@typespec/ts-http-runtime': 0.3.5 + '@typespec/ts-http-runtime': 0.3.6 tslib: 2.8.1 transitivePeerDependencies: - supports-color @@ -5960,11 +5953,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@azure/core-client@1.10.1': + '@azure/core-client@1.10.2': dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.10.1 - '@azure/core-rest-pipeline': 1.23.0 + '@azure/core-rest-pipeline': 1.24.0 '@azure/core-tracing': 1.3.1 '@azure/core-util': 1.13.1 '@azure/logger': 1.3.0 @@ -5972,12 +5965,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@azure/core-http-compat@2.4.0(@azure/core-client@1.10.1)(@azure/core-rest-pipeline@1.23.0)': - dependencies: - '@azure/abort-controller': 2.1.2 - '@azure/core-client': 1.10.1 - '@azure/core-rest-pipeline': 1.23.0 - '@azure/core-lro@2.7.2': dependencies: '@azure/abort-controller': 2.1.2 @@ -5991,14 +5978,14 @@ snapshots: dependencies: tslib: 2.8.1 - '@azure/core-rest-pipeline@1.23.0': + '@azure/core-rest-pipeline@1.24.0': dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.10.1 '@azure/core-tracing': 1.3.1 '@azure/core-util': 1.13.1 '@azure/logger': 1.3.0 - '@typespec/ts-http-runtime': 0.3.5 + '@typespec/ts-http-runtime': 0.3.6 tslib: 2.8.1 transitivePeerDependencies: - supports-color @@ -6010,7 +5997,7 @@ snapshots: '@azure/core-util@1.13.1': dependencies: '@azure/abort-controller': 2.1.2 - '@typespec/ts-http-runtime': 0.3.5 + '@typespec/ts-http-runtime': 0.3.6 tslib: 2.8.1 transitivePeerDependencies: - supports-color @@ -6019,13 +6006,13 @@ snapshots: dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.10.1 - '@azure/core-client': 1.10.1 - '@azure/core-rest-pipeline': 1.23.0 + '@azure/core-client': 1.10.2 + '@azure/core-rest-pipeline': 1.24.0 '@azure/core-tracing': 1.3.1 '@azure/core-util': 1.13.1 '@azure/logger': 1.3.0 - '@azure/msal-browser': 5.11.0 - '@azure/msal-node': 5.2.2 + '@azure/msal-browser': 5.15.0 + '@azure/msal-node': 5.3.0 open: 10.2.0 tslib: 2.8.1 transitivePeerDependencies: @@ -6033,10 +6020,10 @@ snapshots: '@azure/keyvault-common@2.1.0': dependencies: - '@azure-rest/core-client': 2.6.0 + '@azure-rest/core-client': 2.7.0 '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.10.1 - '@azure/core-rest-pipeline': 1.23.0 + '@azure/core-rest-pipeline': 1.24.0 '@azure/core-tracing': 1.3.1 '@azure/core-util': 1.13.1 '@azure/logger': 1.3.0 @@ -6044,40 +6031,38 @@ snapshots: transitivePeerDependencies: - supports-color - '@azure/keyvault-keys@4.10.0(@azure/core-client@1.10.1)': + '@azure/keyvault-keys@4.10.2': dependencies: - '@azure-rest/core-client': 2.6.0 + '@azure-rest/core-client': 2.7.0 '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.10.1 - '@azure/core-http-compat': 2.4.0(@azure/core-client@1.10.1)(@azure/core-rest-pipeline@1.23.0) '@azure/core-lro': 2.7.2 '@azure/core-paging': 1.6.2 - '@azure/core-rest-pipeline': 1.23.0 + '@azure/core-rest-pipeline': 1.24.0 '@azure/core-tracing': 1.3.1 '@azure/core-util': 1.13.1 '@azure/keyvault-common': 2.1.0 '@azure/logger': 1.3.0 tslib: 2.8.1 transitivePeerDependencies: - - '@azure/core-client' - supports-color '@azure/logger@1.3.0': dependencies: - '@typespec/ts-http-runtime': 0.3.5 + '@typespec/ts-http-runtime': 0.3.6 tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@azure/msal-browser@5.11.0': + '@azure/msal-browser@5.15.0': dependencies: - '@azure/msal-common': 16.6.2 + '@azure/msal-common': 16.10.0 - '@azure/msal-common@16.6.2': {} + '@azure/msal-common@16.10.0': {} - '@azure/msal-node@5.2.2': + '@azure/msal-node@5.3.0': dependencies: - '@azure/msal-common': 16.6.2 + '@azure/msal-common': 16.10.0 jsonwebtoken: 9.0.3 '@babel/code-frame@7.29.0': @@ -6439,7 +6424,7 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@js-joda/core@5.7.0': {} + '@js-joda/core@6.0.1': {} '@jsdevtools/ono@7.1.3': {} @@ -7433,7 +7418,7 @@ snapshots: '@typescript-eslint/types': 8.62.1 eslint-visitor-keys: 5.0.1 - '@typespec/ts-http-runtime@0.3.5': + '@typespec/ts-http-runtime@0.3.6': dependencies: http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 @@ -9816,15 +9801,14 @@ snapshots: ms@2.1.3: {} - mssql@12.5.5(@azure/core-client@1.10.1): + mssql@12.6.0: dependencies: '@tediousjs/connection-string': 1.1.0 commander: 11.1.0 debug: 4.4.3(supports-color@8.1.1) - tarn: 3.0.2 - tedious: 19.2.1(@azure/core-client@1.10.1) + tarn: 3.1.0 + tedious: 19.2.2 transitivePeerDependencies: - - '@azure/core-client' - supports-color mysql2@3.22.5(@types/node@26.0.1): @@ -10944,18 +10928,18 @@ snapshots: minizlib: 3.1.0 yallist: 5.0.0 - tarn@3.0.2: {} + tarn@3.1.0: {} tdigest@0.1.2: dependencies: bintrees: 1.0.2 - tedious@19.2.1(@azure/core-client@1.10.1): + tedious@19.2.2: dependencies: '@azure/core-auth': 1.10.1 '@azure/identity': 4.13.1 - '@azure/keyvault-keys': 4.10.0(@azure/core-client@1.10.1) - '@js-joda/core': 5.7.0 + '@azure/keyvault-keys': 4.10.2 + '@js-joda/core': 6.0.1 '@types/node': 26.0.1 bl: 6.1.6 iconv-lite: 0.7.2 @@ -10963,7 +10947,6 @@ snapshots: native-duplexpair: 1.0.0 sprintf-js: 1.1.3 transitivePeerDependencies: - - '@azure/core-client' - supports-color tiny-inflate@1.0.3: {} @@ -11100,14 +11083,14 @@ snapshots: typescript@6.0.3: {} - ueberdb2@6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)): + ueberdb2@6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)): optionalDependencies: '@elastic/elasticsearch': 9.4.2 async: 3.2.6 cassandra-driver: 4.8.0 dirty-ts: 1.1.8 mongodb: 7.4.0 - mssql: 12.5.5(@azure/core-client@1.10.1) + mssql: 12.6.0 mysql2: 3.22.5(@types/node@26.0.1) nano: 11.0.5 pg: 8.22.0 diff --git a/src/package.json b/src/package.json index 9389fd040..5475c56f1 100644 --- a/src/package.json +++ b/src/package.json @@ -61,7 +61,7 @@ "measured-core": "^2.0.0", "mime-types": "^3.0.2", "mongodb": "^7.4.0", - "mssql": "^12.5.5", + "mssql": "^12.6.0", "mysql2": "^3.22.5", "nano": "^11.0.5", "nodemailer": "^9.0.3", From afdd9b950055aa1595bf5f43f6969b6250e9dd21 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 21:39:53 +0200 Subject: [PATCH 24/74] build(deps): bump @radix-ui/react-switch from 1.3.1 to 1.3.2 (#8018) Bumps [@radix-ui/react-switch](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/switch) from 1.3.1 to 1.3.2. - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/switch/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/switch) --- updated-dependencies: - dependency-name: "@radix-ui/react-switch" dependency-version: 1.3.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- admin/package.json | 2 +- pnpm-lock.yaml | 34 ++++++++++++++++++++++++++++------ 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/admin/package.json b/admin/package.json index 2a46742e8..e072af9f3 100644 --- a/admin/package.json +++ b/admin/package.json @@ -14,7 +14,7 @@ "test": "pnpm gen:api && tsx --test 'src/**/__tests__/*.test.ts' 'src/**/__tests__/*.test.tsx'" }, "dependencies": { - "@radix-ui/react-switch": "^1.3.1", + "@radix-ui/react-switch": "^1.3.2", "@tanstack/react-query": "^5.101.2", "@tanstack/react-query-devtools": "^5.101.2", "jsonc-parser": "^3.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a8f384640..70c72c61e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -50,8 +50,8 @@ importers: admin: dependencies: '@radix-ui/react-switch': - specifier: ^1.3.1 - version: 1.3.1(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + specifier: ^1.3.2 + version: 1.3.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@tanstack/react-query': specifier: ^5.101.2 version: 5.101.2(react@19.2.7) @@ -1388,6 +1388,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-primitive@2.1.7': + resolution: {integrity: sha512-bC3NiwsprbxKjuon9l7X6BUTw7FPVzEYaL92MPEY5SCd/9hUTPXVFtVwRix7778wtRsVao+zE062gL79FZleeQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-slot@1.3.0': resolution: {integrity: sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==} peerDependencies: @@ -1397,8 +1410,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-switch@1.3.1': - resolution: {integrity: sha512-55bQtCnOB0BohomSHi6qvQXpJEEqUGDm6hRrM0Bph5OXwhSegqkd8IqgBAQkM1IlgUlWZIxpxRcpOEfRIgimyw==} + '@radix-ui/react-switch@1.3.2': + resolution: {integrity: sha512-tgRBI3DdNwAJYE4BBZyZcz/HRRCvAsPkRvG1wvKc+41tBGMxPn/a87T/wikXAvyDypNQ9kaZwHbeZe+veHCGpA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -6711,6 +6724,15 @@ snapshots: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) + '@radix-ui/react-primitive@2.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + dependencies: + '@radix-ui/react-slot': 1.3.0(@types/react@19.2.17)(react@19.2.7) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) + '@radix-ui/react-slot@1.3.0(@types/react@19.2.17)(react@19.2.7)': dependencies: '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@19.2.7) @@ -6718,12 +6740,12 @@ snapshots: optionalDependencies: '@types/react': 19.2.17 - '@radix-ui/react-switch@1.3.1(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + '@radix-ui/react-switch@1.3.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: '@radix-ui/primitive': 1.1.4 '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@19.2.7) '@radix-ui/react-context': 1.1.4(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.17)(react@19.2.7) '@radix-ui/react-use-previous': 1.1.2(@types/react@19.2.17)(react@19.2.7) '@radix-ui/react-use-size': 1.1.2(@types/react@19.2.17)(react@19.2.7) From df1666cffa7d44ad406ecae4111f7487ce401452 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Jul 2026 13:33:17 +0100 Subject: [PATCH 25/74] build(deps-dev): bump the dev-dependencies group across 1 directory with 7 updates (#8017) Bumps the dev-dependencies group with 7 updates in the / directory: | Package | From | To | | --- | --- | --- | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `26.0.1` | `26.1.0` | | [@types/sinon](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/sinon) | `21.0.1` | `22.0.0` | | [@radix-ui/react-dialog](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dialog) | `1.1.17` | `1.1.18` | | [@radix-ui/react-toast](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/toast) | `1.2.17` | `1.2.18` | | [@radix-ui/react-visually-hidden](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/visually-hidden) | `1.2.6` | `1.2.7` | | [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.22.0` | `1.23.0` | | [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.1.1` | `8.1.2` | Updates `@types/node` from 26.0.1 to 26.1.0 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `@types/sinon` from 21.0.1 to 22.0.0 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/sinon) Updates `@radix-ui/react-dialog` from 1.1.17 to 1.1.18 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/dialog/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dialog) Updates `@radix-ui/react-toast` from 1.2.17 to 1.2.18 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/toast/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/toast) Updates `@radix-ui/react-visually-hidden` from 1.2.6 to 1.2.7 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/visually-hidden/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/visually-hidden) Updates `lucide-react` from 1.22.0 to 1.23.0 - [Release notes](https://github.com/lucide-icons/lucide/releases) - [Commits](https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react) Updates `vite` from 8.1.1 to 8.1.2 - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v8.1.2/packages/vite) --- updated-dependencies: - dependency-name: "@radix-ui/react-dialog" dependency-version: 1.1.18 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@radix-ui/react-toast" dependency-version: 1.2.18 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@radix-ui/react-visually-hidden" dependency-version: 1.2.7 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@types/node" dependency-version: 26.1.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@types/sinon" dependency-version: 22.0.0 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: lucide-react dependency-version: 1.23.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: vite dependency-version: 8.1.2 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- admin/package.json | 10 +- bin/package.json | 2 +- pnpm-lock.yaml | 281 ++++++++++++++++----------------------------- src/package.json | 4 +- ui/package.json | 2 +- 5 files changed, 106 insertions(+), 193 deletions(-) diff --git a/admin/package.json b/admin/package.json index e072af9f3..ab4602d65 100644 --- a/admin/package.json +++ b/admin/package.json @@ -22,9 +22,9 @@ "openapi-react-query": "^0.5.4" }, "devDependencies": { - "@radix-ui/react-dialog": "^1.1.17", - "@radix-ui/react-toast": "^1.2.17", - "@radix-ui/react-visually-hidden": "^1.2.6", + "@radix-ui/react-dialog": "^1.1.18", + "@radix-ui/react-toast": "^1.2.18", + "@radix-ui/react-visually-hidden": "^1.2.7", "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", "@typescript-eslint/eslint-plugin": "^8.62.1", @@ -36,7 +36,7 @@ "eslint-plugin-react-refresh": "^0.5.3", "i18next": "^26.3.4", "i18next-browser-languagedetector": "^8.2.1", - "lucide-react": "^1.22.0", + "lucide-react": "^1.23.0", "openapi-typescript": "^7.13.0", "react": "^19.2.7", "react-dom": "^19.2.7", @@ -46,7 +46,7 @@ "socket.io-client": "^4.8.3", "tsx": "^4.22.4", "typescript": "^6.0.3", - "vite": "^8.1.1", + "vite": "^8.1.2", "vite-plugin-babel": "^1.7.3", "zustand": "^5.0.14" } diff --git a/bin/package.json b/bin/package.json index 3de1f0fad..6a68d1e9b 100644 --- a/bin/package.json +++ b/bin/package.json @@ -14,7 +14,7 @@ "ueberdb2": "6.1.15" }, "devDependencies": { - "@types/node": "^26.0.1", + "@types/node": "^26.1.0", "@types/semver": "^7.7.1", "typescript": "^6.0.3" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 70c72c61e..4c5b062c7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -69,14 +69,14 @@ importers: version: 0.5.4(@tanstack/react-query@5.101.2(react@19.2.7))(openapi-fetch@0.17.0) devDependencies: '@radix-ui/react-dialog': - specifier: ^1.1.17 - version: 1.1.17(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + specifier: ^1.1.18 + version: 1.1.18(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-toast': - specifier: ^1.2.17 - version: 1.2.17(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + specifier: ^1.2.18 + version: 1.2.18(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-visually-hidden': - specifier: ^1.2.6 - version: 1.2.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + specifier: ^1.2.7 + version: 1.2.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@types/react': specifier: ^19.2.17 version: 19.2.17 @@ -91,7 +91,7 @@ importers: version: 8.62.1(eslint@10.6.0)(typescript@6.0.3) '@vitejs/plugin-react': specifier: ^6.0.3 - version: 6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4)) + version: 6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4)) babel-plugin-react-compiler: specifier: 19.1.0-rc.3 version: 19.1.0-rc.3 @@ -111,8 +111,8 @@ importers: specifier: ^8.2.1 version: 8.2.1 lucide-react: - specifier: ^1.22.0 - version: 1.22.0(react@19.2.7) + specifier: ^1.23.0 + version: 1.23.0(react@19.2.7) openapi-typescript: specifier: ^7.13.0 version: 7.13.0(typescript@6.0.3) @@ -141,11 +141,11 @@ importers: specifier: ^6.0.3 version: 6.0.3 vite: - specifier: ^8.1.1 - version: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4) + specifier: ^8.1.2 + version: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4) vite-plugin-babel: specifier: ^1.7.3 - version: 1.7.3(@babel/core@7.29.7)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4)) + version: 1.7.3(@babel/core@7.29.7)(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4)) zustand: specifier: ^5.0.14 version: 5.0.14(@types/react@19.2.17)(react@19.2.7)(use-sync-external-store@1.6.0(react@19.2.7)) @@ -166,11 +166,11 @@ importers: version: 4.22.4 ueberdb2: specifier: 6.1.15 - version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.5(@types/node@26.1.0))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) devDependencies: '@types/node': - specifier: ^26.0.1 - version: 26.0.1 + specifier: ^26.1.0 + version: 26.1.0 '@types/semver': specifier: ^7.7.1 version: 7.7.1 @@ -189,7 +189,7 @@ importers: version: 0.138.0 vitepress: specifier: ^2.0.0-alpha.17 - version: 2.0.0-alpha.17(@types/node@26.0.1)(change-case@5.4.4)(esbuild@0.28.1)(jwt-decode@4.0.0)(oxc-minify@0.138.0)(postcss@8.5.16)(tsx@4.22.4)(typescript@6.0.3) + version: 2.0.0-alpha.17(@types/node@26.1.0)(change-case@5.4.4)(esbuild@0.28.1)(jwt-decode@4.0.0)(oxc-minify@0.138.0)(postcss@8.5.16)(tsx@4.22.4)(typescript@6.0.3) src: dependencies: @@ -291,7 +291,7 @@ importers: version: 12.6.0 mysql2: specifier: ^3.22.5 - version: 3.22.5(@types/node@26.0.1) + version: 3.22.5(@types/node@26.1.0) nano: specifier: ^11.0.5 version: 11.0.5 @@ -360,7 +360,7 @@ importers: version: 4.22.4 ueberdb2: specifier: 6.1.15 - version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.5(@types/node@26.1.0))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) underscore: specifier: 1.13.8 version: 1.13.8 @@ -417,8 +417,8 @@ importers: specifier: ^10.0.9 version: 10.0.10 '@types/node': - specifier: ^26.0.1 - version: 26.0.1 + specifier: ^26.1.0 + version: 26.1.0 '@types/nodemailer': specifier: ^8.0.1 version: 8.0.1 @@ -432,8 +432,8 @@ importers: specifier: ^7.7.1 version: 7.7.1 '@types/sinon': - specifier: ^21.0.1 - version: 21.0.1 + specifier: ^22.0.0 + version: 22.0.0 '@types/supertest': specifier: ^7.2.0 version: 7.2.0 @@ -484,7 +484,7 @@ importers: version: 6.0.3 vitest: specifier: ^4.1.9 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.0.1)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.1.0)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4)) ui: devDependencies: @@ -495,8 +495,8 @@ importers: specifier: ^6.0.3 version: 6.0.3 vite: - specifier: ^8.1.1 - version: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4) + specifier: ^8.1.2 + version: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4) packages: @@ -1261,8 +1261,8 @@ packages: '@radix-ui/primitive@1.1.4': resolution: {integrity: sha512-7AdCK9PQyiljKoBDbN8OuctCbd/esdwZPQ8RtOE3SsyQtUpiPb+ND75q0jEhC1m1ecBI0MFNeLJvwIh9iKHRcQ==} - '@radix-ui/react-collection@1.1.10': - resolution: {integrity: sha512-IVVz4EvBcKjrzKgof714qDnz/SzQAkLA2Emh5edlHbgcE6fNd3Un6CJLlaYcnm8N4JmAtzQgse4dOKxcD2yc9g==} + '@radix-ui/react-collection@1.1.11': + resolution: {integrity: sha512-djW9+zeg137KQdlPtmE8xnaD+K2rcXXMWFrSg0hsmYZ6HRbdTA7tDHFgpaW9+huWVEu0RCabL+985T4TA0BE7g==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1292,8 +1292,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-dialog@1.1.17': - resolution: {integrity: sha512-TDTYmpdq8dI2+Xgvgj9AJ8Ghqq+Eph/TRVEdaFQPDItIY+6QSkU7MJMeevw1568Yw/2Ijz8BTphPSP2XejKphw==} + '@radix-ui/react-dialog@1.1.18': + resolution: {integrity: sha512-apa28mldjMgORmE6g/w3sCcA0Y9UAVeeDVoozN4i7kOw12mLl9RBchfzK3Nn6qxOWjrZhK1Lfy7f07kyzxtnBw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1305,8 +1305,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-dismissable-layer@1.1.13': - resolution: {integrity: sha512-2v+zNAWWe0ySxgC0D0yeXMPQ23xZVgXZTerTz+JKlmdRj6gfTqmCcR29jb6d290DezXPGgruHWDX/vYUebtErg==} + '@radix-ui/react-dismissable-layer@1.1.14': + resolution: {integrity: sha512-4lUhWTWAjbDIqFrAPWJ3WqBOpO5YchVZ88X3nh6H9Lu5AFi5nCUeTPj3D8FSDmabmFeRe9ME0BDA4MwKTha5GQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1327,8 +1327,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-focus-scope@1.1.10': - resolution: {integrity: sha512-Fas/lXQqhVvqwAb64s5RFeHiHYElZ6SUQbZaNd6EkfhP/Al7wTIQ9WIR4QVX475tlu5yFCEdDcJH6/UwsZjMWw==} + '@radix-ui/react-focus-scope@1.1.11': + resolution: {integrity: sha512-Mn88Vg2whaRocGJNOH+DKFqYm6ySFPQaiwHNxZPyjn99B52KAEJWWY9NP83+nWdk2HM3rdov+STu9AG471Rt9w==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1349,8 +1349,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-portal@1.1.12': - resolution: {integrity: sha512-m309havGzsjLHHaIX50G5PlvRs3xkgPCsGk/5PTvYm8D5q33yG0J7w/712PTOhid7NTaFETtnSXjngHQavvhVw==} + '@radix-ui/react-portal@1.1.13': + resolution: {integrity: sha512-z3oXfmaHLJTF1wktbjgD6cn9jiEbq3WSondB10LIuIt2m2Ym4iJlrW04/euMwENDdWDdE7z+OuY7Qyp1YpRSwA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1375,19 +1375,6 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-primitive@2.1.6': - resolution: {integrity: sha512-wetd0QI77DbvrPpTAvH1SqOxsYF2wZe5TNxqwOd5Ty4XDpV3dpV0s8K/1MGMJBeY5o7lg8ub5VIt1Ub+yVen6g==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-primitive@2.1.7': resolution: {integrity: sha512-bC3NiwsprbxKjuon9l7X6BUTw7FPVzEYaL92MPEY5SCd/9hUTPXVFtVwRix7778wtRsVao+zE062gL79FZleeQ==} peerDependencies: @@ -1423,8 +1410,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-toast@1.2.17': - resolution: {integrity: sha512-uL4kyyWy000pPL43fGGCV5qT6ZchCWEQZOSlkYiPwPt8Hy1iW38RjeptIvz1/SZesrW6Vn58Ct3sV7tfEfiAbw==} + '@radix-ui/react-toast@1.2.18': + resolution: {integrity: sha512-YNEnTHV47hPep+U0QvVM02OJNka9uygREc+k4Nh5VSZBg4MmE+myI442x3hCGfRpX7N2WSSYSJKws4gE+Z8lgg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1463,15 +1450,6 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-escape-keydown@1.1.2': - resolution: {integrity: sha512-2uVLvLjgO7NZCWw01/FdqRwmA42J0BcjPMUCA+koFEOAb+zjqIP7SiFz/7zWPrKnVmSqr76Omq2ALyCuX4dhLw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@radix-ui/react-use-layout-effect@1.1.2': resolution: {integrity: sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA==} peerDependencies: @@ -1499,8 +1477,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-visually-hidden@1.2.6': - resolution: {integrity: sha512-jCE0WljWifTI4niIMCll06kGpsJTAPiZVU9H4WR1N6qW7At9ystHbN7dDB+we2xH535roFHj7qKS+RGj0FMDWQ==} + '@radix-ui/react-visually-hidden@1.2.7': + resolution: {integrity: sha512-1wNZBggTDK3GRuuQ6nP4k2yi7a6l7I5qbMPbZcRsrGsGVead/f/d5FhEzUvqFs0bcrDLx7n1zKQ3JvLR6whaaw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1880,6 +1858,9 @@ packages: '@types/node@26.0.1': resolution: {integrity: sha512-fc3KiUoBt6kie0N9bIW3E47vZsuaMf0PM2AaUpLCLT0s/LvX1nxAim6Fc049cNxODPpGm6qRAuUOB86SkRuPQw==} + '@types/node@26.1.0': + resolution: {integrity: sha512-O0A1G3xPGy4w7AgQdAQYUlQ+BKk2Oovw8eRpofyp5KdBZULnbe+WqaOVNrm705SHphCiG4XHsACrSmPu1f+Kgw==} + '@types/nodemailer@8.0.1': resolution: {integrity: sha512-PxpaInm8V1JQDd4j0ds5HfvWQk8JupS1C0Picb96QJsrrRDjBH+DlK7L4ZdNSqNULhiZRQHc40nLVShaGxXAMw==} @@ -1915,8 +1896,8 @@ packages: '@types/serve-static@2.2.0': resolution: {integrity: sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==} - '@types/sinon@21.0.1': - resolution: {integrity: sha512-5yoJSqLbjH8T9V2bksgRayuhpZy+723/z6wBOR+Soe4ZlXC0eW8Na71TeaZPUWDQvM7LYKa9UGFc6LRqxiR5fQ==} + '@types/sinon@22.0.0': + resolution: {integrity: sha512-TDbVpbccc2HfiqHR09Argj3mHV1KMW7sCCKj52fsl8lbRLkEn7fB1966EWhOKWUBcqfBueZuPoA7/OK1CKiy3g==} '@types/sinonjs__fake-timers@15.0.1': resolution: {integrity: sha512-Ko2tjWJq8oozHzHV+reuvS5KYIRAokHnGbDwGh/J64LntgpbuylF74ipEL24HCyRjf9FOlBiBHWBR1RlVKsI1w==} @@ -4090,8 +4071,8 @@ packages: resolution: {integrity: sha512-DqC6n3QQ77zdFpCMASA1a3Jlb64Hv2N2DciFGkO/4L9+q/IpIAuRlKOvCXabtRW6cQf8usbmM6BE/TOPysCdIA==} engines: {bun: '>=1.0.0', deno: '>=1.30.0', node: '>=8.0.0'} - lucide-react@1.22.0: - resolution: {integrity: sha512-c9o3l0PiNcgOQDW4F31BEYHudE7kgxVt3o30qMl36ZPwTxXlGB4QnLilhERvVM4uh/pl5MDyY1/gzZSYcHDtBg==} + lucide-react@1.23.0: + resolution: {integrity: sha512-38BpJcD0JhFosxHApP/BYsBetLpQFRoTRzEzstM/XCc3jsAG7wqaY1lgVwxiUe3xqYE+lNxo2PkCmYwXWrwwIw==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -5566,51 +5547,8 @@ packages: '@babel/core': '>=7.29.6' vite: '>=7.3.2' - vite@8.1.0: - resolution: {integrity: sha512-BuJcQK/56NQTWDGn4ABea3q4SSBdNPWwNZKTkkUpcMPnLoquSYH8llRtSUIgoL1KSCpHt5eghLShn50mH36y7Q==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - peerDependencies: - '@types/node': ^20.19.0 || >=22.12.0 - '@vitejs/devtools': ^0.3.0 - esbuild: '>=0.28.1' - 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 - - vite@8.1.1: - resolution: {integrity: sha512-X/05/cT+VITy2AeDc1der6smvGWWREtL4hPbPTaVbjSBuuWkmNOjR6HP3NzqcQA2nF6VHGUPaFRJyft/2AE9Kg==} + vite@8.1.2: + resolution: {integrity: sha512-6YYPbRXTxx6bRXmOn7XdnQAy5DQNHhDgtjhDHI13oe4pY93kkcdGJWxpGwOm++/Wh0QpQhDrpIoVMrmrsI5AGQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -6613,11 +6551,11 @@ snapshots: '@radix-ui/primitive@1.1.4': {} - '@radix-ui/react-collection@1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + '@radix-ui/react-collection@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@19.2.7) '@radix-ui/react-context': 1.1.4(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-slot': 1.3.0(@types/react@19.2.17)(react@19.2.7) react: 19.2.7 react-dom: 19.2.7(react@19.2.7) @@ -6637,18 +6575,18 @@ snapshots: optionalDependencies: '@types/react': 19.2.17 - '@radix-ui/react-dialog@1.1.17(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + '@radix-ui/react-dialog@1.1.18(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: '@radix-ui/primitive': 1.1.4 '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@19.2.7) '@radix-ui/react-context': 1.1.4(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-dismissable-layer': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@radix-ui/react-dismissable-layer': 1.1.14(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-focus-guards': 1.1.4(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-focus-scope': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@radix-ui/react-focus-scope': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-id': 1.1.2(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-portal': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@radix-ui/react-portal': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-presence': 1.1.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-slot': 1.3.0(@types/react@19.2.17)(react@19.2.7) '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.17)(react@19.2.7) aria-hidden: 1.2.6 @@ -6659,13 +6597,13 @@ snapshots: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-dismissable-layer@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + '@radix-ui/react-dismissable-layer@1.1.14(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: '@radix-ui/primitive': 1.1.4 '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-use-escape-keydown': 1.1.2(@types/react@19.2.17)(react@19.2.7) + '@radix-ui/react-use-effect-event': 0.0.3(@types/react@19.2.17)(react@19.2.7) react: 19.2.7 react-dom: 19.2.7(react@19.2.7) optionalDependencies: @@ -6678,10 +6616,10 @@ snapshots: optionalDependencies: '@types/react': 19.2.17 - '@radix-ui/react-focus-scope@1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + '@radix-ui/react-focus-scope@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.17)(react@19.2.7) react: 19.2.7 react-dom: 19.2.7(react@19.2.7) @@ -6696,9 +6634,9 @@ snapshots: optionalDependencies: '@types/react': 19.2.17 - '@radix-ui/react-portal@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + '@radix-ui/react-portal@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: - '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.17)(react@19.2.7) react: 19.2.7 react-dom: 19.2.7(react@19.2.7) @@ -6715,15 +6653,6 @@ snapshots: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-primitive@2.1.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': - dependencies: - '@radix-ui/react-slot': 1.3.0(@types/react@19.2.17)(react@19.2.7) - react: 19.2.7 - react-dom: 19.2.7(react@19.2.7) - optionalDependencies: - '@types/react': 19.2.17 - '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-primitive@2.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: '@radix-ui/react-slot': 1.3.0(@types/react@19.2.17)(react@19.2.7) @@ -6755,20 +6684,20 @@ snapshots: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-toast@1.2.17(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + '@radix-ui/react-toast@1.2.18(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: '@radix-ui/primitive': 1.1.4 - '@radix-ui/react-collection': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@radix-ui/react-collection': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@19.2.7) '@radix-ui/react-context': 1.1.4(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-dismissable-layer': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@radix-ui/react-portal': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@radix-ui/react-dismissable-layer': 1.1.14(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@radix-ui/react-portal': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-presence': 1.1.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.17)(react@19.2.7) '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.17)(react@19.2.7) '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-visually-hidden': 1.2.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@radix-ui/react-visually-hidden': 1.2.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) react: 19.2.7 react-dom: 19.2.7(react@19.2.7) optionalDependencies: @@ -6796,13 +6725,6 @@ snapshots: optionalDependencies: '@types/react': 19.2.17 - '@radix-ui/react-use-escape-keydown@1.1.2(@types/react@19.2.17)(react@19.2.7)': - dependencies: - '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.17)(react@19.2.7) - react: 19.2.7 - optionalDependencies: - '@types/react': 19.2.17 - '@radix-ui/react-use-layout-effect@1.1.2(@types/react@19.2.17)(react@19.2.7)': dependencies: react: 19.2.7 @@ -6822,9 +6744,9 @@ snapshots: optionalDependencies: '@types/react': 19.2.17 - '@radix-ui/react-visually-hidden@1.2.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + '@radix-ui/react-visually-hidden@1.2.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: - '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) react: 19.2.7 react-dom: 19.2.7(react@19.2.7) optionalDependencies: @@ -7186,6 +7108,10 @@ snapshots: dependencies: undici-types: 8.3.0 + '@types/node@26.1.0': + dependencies: + undici-types: 8.3.0 + '@types/nodemailer@8.0.1': dependencies: '@types/node': 26.0.1 @@ -7227,7 +7153,7 @@ snapshots: '@types/http-errors': 2.0.5 '@types/node': 26.0.1 - '@types/sinon@21.0.1': + '@types/sinon@22.0.0': dependencies: '@types/sinonjs__fake-timers': 15.0.1 @@ -7497,17 +7423,17 @@ snapshots: '@unrs/rspack-resolver-binding-win32-x64-msvc@1.3.0': optional: true - '@vitejs/plugin-react@6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4))': + '@vitejs/plugin-react@6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4) + vite: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4) optionalDependencies: babel-plugin-react-compiler: 19.1.0-rc.3 - '@vitejs/plugin-vue@6.0.5(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4))(vue@3.5.30(typescript@6.0.3))': + '@vitejs/plugin-vue@6.0.5(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4))(vue@3.5.30(typescript@6.0.3))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.2 - vite: 8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4) + vite: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4) vue: 3.5.30(typescript@6.0.3) '@vitest/expect@4.1.9': @@ -7519,13 +7445,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.9(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4))': + '@vitest/mocker@4.1.9(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4))': dependencies: '@vitest/spy': 4.1.9 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4) + vite: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4) '@vitest/pretty-format@4.1.9': dependencies: @@ -9660,7 +9586,7 @@ snapshots: lru.min@1.1.4: {} - lucide-react@1.22.0(react@19.2.7): + lucide-react@1.23.0(react@19.2.7): dependencies: react: 19.2.7 @@ -9833,9 +9759,9 @@ snapshots: transitivePeerDependencies: - supports-color - mysql2@3.22.5(@types/node@26.0.1): + mysql2@3.22.5(@types/node@26.1.0): dependencies: - '@types/node': 26.0.1 + '@types/node': 26.1.0 aws-ssl-profiles: 1.1.2 denque: 2.1.0 generate-function: 2.3.1 @@ -11105,7 +11031,7 @@ snapshots: typescript@6.0.3: {} - ueberdb2@6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.5(@types/node@26.0.1))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)): + ueberdb2@6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.5(@types/node@26.1.0))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)): optionalDependencies: '@elastic/elasticsearch': 9.4.2 async: 3.2.6 @@ -11113,7 +11039,7 @@ snapshots: dirty-ts: 1.1.8 mongodb: 7.4.0 mssql: 12.6.0 - mysql2: 3.22.5(@types/node@26.0.1) + mysql2: 3.22.5(@types/node@26.1.0) nano: 11.0.5 pg: 8.22.0 redis: 6.0.1(@opentelemetry/api@1.9.1) @@ -11262,12 +11188,12 @@ snapshots: x-is-array: 0.1.0 x-is-string: 0.1.0 - vite-plugin-babel@1.7.3(@babel/core@7.29.7)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4)): + vite-plugin-babel@1.7.3(@babel/core@7.29.7)(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4)): dependencies: '@babel/core': 7.29.7 - vite: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4) + vite: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4) - vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4): + vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 @@ -11275,25 +11201,12 @@ snapshots: rolldown: 1.1.3 tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 26.0.1 + '@types/node': 26.1.0 esbuild: 0.28.1 fsevents: 2.3.3 tsx: 4.22.4 - vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4): - dependencies: - lightningcss: 1.32.0 - picomatch: 4.0.4 - postcss: 8.5.16 - rolldown: 1.1.3 - tinyglobby: 0.2.17 - optionalDependencies: - '@types/node': 26.0.1 - esbuild: 0.28.1 - fsevents: 2.3.3 - tsx: 4.22.4 - - vitepress@2.0.0-alpha.17(@types/node@26.0.1)(change-case@5.4.4)(esbuild@0.28.1)(jwt-decode@4.0.0)(oxc-minify@0.138.0)(postcss@8.5.16)(tsx@4.22.4)(typescript@6.0.3): + vitepress@2.0.0-alpha.17(@types/node@26.1.0)(change-case@5.4.4)(esbuild@0.28.1)(jwt-decode@4.0.0)(oxc-minify@0.138.0)(postcss@8.5.16)(tsx@4.22.4)(typescript@6.0.3): dependencies: '@docsearch/css': 4.6.0 '@docsearch/js': 4.6.0 @@ -11303,7 +11216,7 @@ snapshots: '@shikijs/transformers': 3.23.0 '@shikijs/types': 3.23.0 '@types/markdown-it': 14.1.2 - '@vitejs/plugin-vue': 6.0.5(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4))(vue@3.5.30(typescript@6.0.3)) + '@vitejs/plugin-vue': 6.0.5(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4))(vue@3.5.30(typescript@6.0.3)) '@vue/devtools-api': 8.1.0 '@vue/shared': 3.5.30 '@vueuse/core': 14.2.1(vue@3.5.30(typescript@6.0.3)) @@ -11312,7 +11225,7 @@ snapshots: mark.js: 8.11.1 minisearch: 7.2.0 shiki: 3.23.0 - vite: 8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4) + vite: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4) vue: 3.5.30(typescript@6.0.3) optionalDependencies: oxc-minify: 0.138.0 @@ -11343,10 +11256,10 @@ snapshots: - universal-cookie - yaml - vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.0.1)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4)): + vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.1.0)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4)): dependencies: '@vitest/expect': 4.1.9 - '@vitest/mocker': 4.1.9(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4)) + '@vitest/mocker': 4.1.9(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4)) '@vitest/pretty-format': 4.1.9 '@vitest/runner': 4.1.9 '@vitest/snapshot': 4.1.9 @@ -11363,11 +11276,11 @@ snapshots: tinyexec: 1.2.4 tinyglobby: 0.2.17 tinyrainbow: 3.1.0 - vite: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4) + vite: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.1 - '@types/node': 26.0.1 + '@types/node': 26.1.0 jsdom: 29.1.1(@noble/hashes@1.8.0) transitivePeerDependencies: - msw diff --git a/src/package.json b/src/package.json index 5475c56f1..c9d9913a9 100644 --- a/src/package.json +++ b/src/package.json @@ -110,12 +110,12 @@ "@types/jsonwebtoken": "^9.0.10", "@types/mime-types": "^3.0.1", "@types/mocha": "^10.0.9", - "@types/node": "^26.0.1", + "@types/node": "^26.1.0", "@types/nodemailer": "^8.0.1", "@types/oidc-provider": "^9.5.0", "@types/pdfkit": "^0.17.6", "@types/semver": "^7.7.1", - "@types/sinon": "^21.0.1", + "@types/sinon": "^22.0.0", "@types/supertest": "^7.2.0", "@types/underscore": "^1.13.0", "@types/whatwg-mimetype": "^5.0.0", diff --git a/ui/package.json b/ui/package.json index cfbd0345a..6e90a7b29 100644 --- a/ui/package.json +++ b/ui/package.json @@ -12,6 +12,6 @@ "devDependencies": { "ep_etherpad-lite": "workspace:../src", "typescript": "^6.0.3", - "vite": "^8.1.1" + "vite": "^8.1.2" } } From 8a9c0a6e20c2eb65147e526811cae26ccca19a43 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Jul 2026 13:46:09 +0100 Subject: [PATCH 26/74] build(deps): bump redis from 6.0.1 to 6.1.0 (#8019) Bumps [redis](https://github.com/redis/node-redis) from 6.0.1 to 6.1.0. - [Release notes](https://github.com/redis/node-redis/releases) - [Changelog](https://github.com/redis/node-redis/blob/master/CHANGELOG.md) - [Commits](https://github.com/redis/node-redis/compare/redis@6.0.1...redis@6.1.0) --- updated-dependencies: - dependency-name: redis dependency-version: 6.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 74 ++++++++++++++++++++++++------------------------ src/package.json | 2 +- 2 files changed, 38 insertions(+), 38 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4c5b062c7..8a5f4d30c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -166,7 +166,7 @@ importers: version: 4.22.4 ueberdb2: specifier: 6.1.15 - version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.5(@types/node@26.1.0))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.5(@types/node@26.1.0))(nano@11.0.5)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) devDependencies: '@types/node': specifier: ^26.1.0 @@ -320,8 +320,8 @@ importers: specifier: ^11.2.0 version: 11.2.0 redis: - specifier: ^6.0.1 - version: 6.0.1(@opentelemetry/api@1.9.1) + specifier: ^6.1.0 + version: 6.1.0(@opentelemetry/api@1.9.1) rehype: specifier: ^13.0.2 version: 13.0.2 @@ -360,7 +360,7 @@ importers: version: 4.22.4 ueberdb2: specifier: 6.1.15 - version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.5(@types/node@26.1.0))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.5(@types/node@26.1.0))(nano@11.0.5)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) underscore: specifier: 1.13.8 version: 1.13.8 @@ -1490,14 +1490,14 @@ packages: '@types/react-dom': optional: true - '@redis/bloom@6.0.1': - resolution: {integrity: sha512-6ys5hhea+47n7o97ZFI4GvdzTQk/arIsXZgH159l6IVtJ4rZaB+KVdAfwvIxlmGA7z+NNlO8UxjTeQrenqjZcQ==} + '@redis/bloom@6.1.0': + resolution: {integrity: sha512-Rzascjd9J9bJsM45T/Z9CTg1QY/B63B6YO8QorLVMeXnbBDsKiSCVR/+GQ061hYPk8FpTzWmPY8tAv2sT+JEtQ==} engines: {node: '>= 20.0.0'} peerDependencies: - '@redis/client': ^6.0.1 + '@redis/client': ^6.1.0 - '@redis/client@6.0.1': - resolution: {integrity: sha512-SwYl64hKHE/NeO2VSSG1y/4zIm0cNepyOZtQrOpLiNRHmH2FdWBOecNzsLiXCQdFCF9MCyoPXwAbaG2iMO0A7Q==} + '@redis/client@6.1.0': + resolution: {integrity: sha512-7u1LefkezJF0HESlhO7ZFLEPfyY+NejP3SGv+Z4pGaT3oM5GVVLa0u3f4rDLUrcw+SRo8IlX9Y8JAONeDdg1Ag==} engines: {node: '>= 20.0.0'} peerDependencies: '@node-rs/xxhash': ^1.1.0 @@ -1508,23 +1508,23 @@ packages: '@opentelemetry/api': optional: true - '@redis/json@6.0.1': - resolution: {integrity: sha512-KD1OztCYh7O9TkKMU9qZcFIKoudIGqmgXsOhQVq5A3REGrnl+wg0kporQFQCO+fcxe/nhvDgmBtXrm3diPGczA==} + '@redis/json@6.1.0': + resolution: {integrity: sha512-/GFjQA6bu5pG9ClCJAI5Xx4bNXe7UTpxBBlIupBNTrn1+nY860apGnYJuaSCDV2BmEbTidpa7O2qa28oxKx+rg==} engines: {node: '>= 20.0.0'} peerDependencies: - '@redis/client': ^6.0.1 + '@redis/client': ^6.1.0 - '@redis/search@6.0.1': - resolution: {integrity: sha512-G09OujS3eOtQnP7kZC5eZTiazwgeimlo6Pf3vHnE1jO7rfqrtmMI0R1/ZXfzoW8p9vB4QiH538aEsWaHKd8l5w==} + '@redis/search@6.1.0': + resolution: {integrity: sha512-kS5agg+3yZbrdrt8omrew7FLCD8eOm7tarG1CROekPBRe+QGDR9aOpnHIQaYsYi6wPRTH70nQiF06AIjgURefQ==} engines: {node: '>= 20.0.0'} peerDependencies: - '@redis/client': ^6.0.1 + '@redis/client': ^6.1.0 - '@redis/time-series@6.0.1': - resolution: {integrity: sha512-8aLGSDtCpnPTLD7lEiHHmuDCFppctLdT8geFIDf/7LWV9y8Vre6RB+aBZrgkeo3X1oPmTt1IbVAQVxsuJvkODw==} + '@redis/time-series@6.1.0': + resolution: {integrity: sha512-uIDBtV8MmG/xpJsRqbGSO4iX6ryj37MLMP82lRpFvI7ykAVe5GyqgxigEbU+uZNv9kDPNMKw3dvI/S/J1BNBzA==} engines: {node: '>= 20.0.0'} peerDependencies: - '@redis/client': ^6.0.1 + '@redis/client': ^6.1.0 '@redocly/ajv@8.11.2': resolution: {integrity: sha512-io1JpnwtIcvojV7QKDUSIuMN/ikdOUd1ReEnUnMKGfDVridQZ31J0MmIuqwuRjWDZfmvr+Q0MqCcfHM2gTivOg==} @@ -4765,8 +4765,8 @@ packages: resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} engines: {node: '>= 20.19.0'} - redis@6.0.1: - resolution: {integrity: sha512-54FoTBdFw10Y602pShvk8CGJlSH55nY+CNAZaVk8YdxY3rENihdYm2lXrujrtupYTHyrVSZUxOdeStNQbNvnQg==} + redis@6.1.0: + resolution: {integrity: sha512-0kvUPM8RHP/ZMa0xYaDTcG5e8tIGW6kz6MToVT0V8iOnk6bkXp2jncGRGe2bZEk41lZwiDspUqjZCSk5ohjcKw==} engines: {node: '>= 20.0.0'} reflect.getprototypeof@1.0.10: @@ -6753,27 +6753,27 @@ snapshots: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@redis/bloom@6.0.1(@redis/client@6.0.1(@opentelemetry/api@1.9.1))': + '@redis/bloom@6.1.0(@redis/client@6.1.0(@opentelemetry/api@1.9.1))': dependencies: - '@redis/client': 6.0.1(@opentelemetry/api@1.9.1) + '@redis/client': 6.1.0(@opentelemetry/api@1.9.1) - '@redis/client@6.0.1(@opentelemetry/api@1.9.1)': + '@redis/client@6.1.0(@opentelemetry/api@1.9.1)': dependencies: cluster-key-slot: 1.1.2 optionalDependencies: '@opentelemetry/api': 1.9.1 - '@redis/json@6.0.1(@redis/client@6.0.1(@opentelemetry/api@1.9.1))': + '@redis/json@6.1.0(@redis/client@6.1.0(@opentelemetry/api@1.9.1))': dependencies: - '@redis/client': 6.0.1(@opentelemetry/api@1.9.1) + '@redis/client': 6.1.0(@opentelemetry/api@1.9.1) - '@redis/search@6.0.1(@redis/client@6.0.1(@opentelemetry/api@1.9.1))': + '@redis/search@6.1.0(@redis/client@6.1.0(@opentelemetry/api@1.9.1))': dependencies: - '@redis/client': 6.0.1(@opentelemetry/api@1.9.1) + '@redis/client': 6.1.0(@opentelemetry/api@1.9.1) - '@redis/time-series@6.0.1(@redis/client@6.0.1(@opentelemetry/api@1.9.1))': + '@redis/time-series@6.1.0(@redis/client@6.1.0(@opentelemetry/api@1.9.1))': dependencies: - '@redis/client': 6.0.1(@opentelemetry/api@1.9.1) + '@redis/client': 6.1.0(@opentelemetry/api@1.9.1) '@redocly/ajv@8.11.2': dependencies: @@ -10311,13 +10311,13 @@ snapshots: readdirp@5.0.0: {} - redis@6.0.1(@opentelemetry/api@1.9.1): + redis@6.1.0(@opentelemetry/api@1.9.1): dependencies: - '@redis/bloom': 6.0.1(@redis/client@6.0.1(@opentelemetry/api@1.9.1)) - '@redis/client': 6.0.1(@opentelemetry/api@1.9.1) - '@redis/json': 6.0.1(@redis/client@6.0.1(@opentelemetry/api@1.9.1)) - '@redis/search': 6.0.1(@redis/client@6.0.1(@opentelemetry/api@1.9.1)) - '@redis/time-series': 6.0.1(@redis/client@6.0.1(@opentelemetry/api@1.9.1)) + '@redis/bloom': 6.1.0(@redis/client@6.1.0(@opentelemetry/api@1.9.1)) + '@redis/client': 6.1.0(@opentelemetry/api@1.9.1) + '@redis/json': 6.1.0(@redis/client@6.1.0(@opentelemetry/api@1.9.1)) + '@redis/search': 6.1.0(@redis/client@6.1.0(@opentelemetry/api@1.9.1)) + '@redis/time-series': 6.1.0(@redis/client@6.1.0(@opentelemetry/api@1.9.1)) transitivePeerDependencies: - '@node-rs/xxhash' - '@opentelemetry/api' @@ -11031,7 +11031,7 @@ snapshots: typescript@6.0.3: {} - ueberdb2@6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.5(@types/node@26.1.0))(nano@11.0.5)(pg@8.22.0)(redis@6.0.1(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)): + ueberdb2@6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.5(@types/node@26.1.0))(nano@11.0.5)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)): optionalDependencies: '@elastic/elasticsearch': 9.4.2 async: 3.2.6 @@ -11042,7 +11042,7 @@ snapshots: mysql2: 3.22.5(@types/node@26.1.0) nano: 11.0.5 pg: 8.22.0 - redis: 6.0.1(@opentelemetry/api@1.9.1) + redis: 6.1.0(@opentelemetry/api@1.9.1) rethinkdb: 2.4.2 rusty-store-kv: 1.3.1 surrealdb: 2.0.4(tslib@2.8.1)(typescript@6.0.3) diff --git a/src/package.json b/src/package.json index c9d9913a9..6c565aabe 100644 --- a/src/package.json +++ b/src/package.json @@ -72,7 +72,7 @@ "prom-client": "^15.1.3", "proxy-addr": "^2.0.7", "rate-limiter-flexible": "^11.2.0", - "redis": "^6.0.1", + "redis": "^6.1.0", "rehype": "^13.0.2", "rehype-minify-whitespace": "^6.0.2", "resolve": "1.22.12", From 4bc80d14397cda4b7d9a11066b060520d07798dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Jul 2026 21:35:18 +0200 Subject: [PATCH 27/74] build(deps-dev): bump vite in the dev-dependencies group (#8020) Bumps the dev-dependencies group with 1 update: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite). Updates `vite` from 8.1.2 to 8.1.3 - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v8.1.3/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 8.1.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- admin/package.json | 2 +- pnpm-lock.yaml | 224 ++++++++++++++++++++++++++++----------------- ui/package.json | 2 +- 3 files changed, 142 insertions(+), 86 deletions(-) diff --git a/admin/package.json b/admin/package.json index ab4602d65..968ec733d 100644 --- a/admin/package.json +++ b/admin/package.json @@ -46,7 +46,7 @@ "socket.io-client": "^4.8.3", "tsx": "^4.22.4", "typescript": "^6.0.3", - "vite": "^8.1.2", + "vite": "^8.1.3", "vite-plugin-babel": "^1.7.3", "zustand": "^5.0.14" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8a5f4d30c..71d230d85 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -91,7 +91,7 @@ importers: version: 8.62.1(eslint@10.6.0)(typescript@6.0.3) '@vitejs/plugin-react': specifier: ^6.0.3 - version: 6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4)) + version: 6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4)) babel-plugin-react-compiler: specifier: 19.1.0-rc.3 version: 19.1.0-rc.3 @@ -141,11 +141,11 @@ importers: specifier: ^6.0.3 version: 6.0.3 vite: - specifier: ^8.1.2 - version: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4) + specifier: ^8.1.3 + version: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4) vite-plugin-babel: specifier: ^1.7.3 - version: 1.7.3(@babel/core@7.29.7)(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4)) + version: 1.7.3(@babel/core@7.29.7)(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4)) zustand: specifier: ^5.0.14 version: 5.0.14(@types/react@19.2.17)(react@19.2.7)(use-sync-external-store@1.6.0(react@19.2.7)) @@ -484,7 +484,7 @@ importers: version: 6.0.3 vitest: specifier: ^4.1.9 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.1.0)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.1.0)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4)) ui: devDependencies: @@ -495,8 +495,8 @@ importers: specifier: ^6.0.3 version: 6.0.3 vite: - specifier: ^8.1.2 - version: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4) + specifier: ^8.1.3 + version: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4) packages: @@ -1247,8 +1247,8 @@ packages: cpu: [x64] os: [win32] - '@oxc-project/types@0.137.0': - resolution: {integrity: sha512-WT+Gb24i8hmvo85AIv2oEYouEXkRlKAlT9WaCa3TfLgNCN+GhrJOGZuIlMouAh38Qe4QOx26eUOVsq70qXrywA==} + '@oxc-project/types@0.138.0': + resolution: {integrity: sha512-1a7ZKmrRTCoN1XMZ4L0PyyqrMnrNlLyPuOkdSX2MZg7IiIGRUyurNhAm73ptDOraoBcIordsIGKNPKUzy3ZmfA==} '@paralleldrive/cuid2@2.2.2': resolution: {integrity: sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==} @@ -1536,97 +1536,97 @@ packages: resolution: {integrity: sha512-y+xFx+Zz54Xhr8jUdnLENYnt7Y7GEDL6Q03ga7rTtX8DVwefX9H+hQEPgJp1nda7vdH+wJ9/HBVvyfBuW9x6rA==} engines: {node: '>=18.17.0', npm: '>=9.5.0'} - '@rolldown/binding-android-arm64@1.1.3': - resolution: {integrity: sha512-DT6Z3PhvioeHMvxo+xHc3KtqggrI7CCTXCmC2h/5zUlp5jVitv7XEy+9q5/7v8IolhlioawpMo8Kg0EEBy7J0g==} + '@rolldown/binding-android-arm64@1.1.4': + resolution: {integrity: sha512-EZLpf/8y7GXkkra90ML47kzik/GMP3EMcE9bPyHmRfxLC6z9+aW5A8poCsoxjrT5GfEcNAAvWwUHjvP1pUQkfw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.1.3': - resolution: {integrity: sha512-0NwgwsjM7LrsuVnXMK3koTpagBNOhloc/BNjKqZjv4V5zI5r13qx69uVhRx+o5Z0yy4Hzq+lpy7TAgUG/ocvrw==} + '@rolldown/binding-darwin-arm64@1.1.4': + resolution: {integrity: sha512-aUi+HBvmYb7j8krl1+qJgkG8C17fO79gk3c+jPw4S8glRFc1DTija9S3EyaTSQUm5GJXYKDAsugBEhFHH2vYiQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.1.3': - resolution: {integrity: sha512-YtiBp4disu6V560loT6PjMdiRaWmVvDNrUunAalbiFx2ggeJwxdAsgZMcoGP17uyAsTwAj5V1niksxlHnVQ1Sw==} + '@rolldown/binding-darwin-x64@1.1.4': + resolution: {integrity: sha512-F7hHC3gwY11+vByKPRWqwGbeXWVgKmL+pTGCinaEhdihzBV2aQ0fvZOch9cXYUOKuKKq429HeYXOqQLc7wFCEg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.1.3': - resolution: {integrity: sha512-yD3EkEdXk2LypPxnf/kSZHirarsI8gcPzc62SukhR9VJTyvV+F9Q/GxWNuCojc7sXyuVC4DxRGhdDK4X8VSsbw==} + '@rolldown/binding-freebsd-x64@1.1.4': + resolution: {integrity: sha512-sI5yw+7s92SK6odiEhD5lKCBlWcpjHS5qyqpVQbZAJ0fIzEUXrmbl3DH2ybR3PZogulNJF+COLtmA8hUfvkCCQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.1.3': - resolution: {integrity: sha512-c+8vieQbsD7HNAHKIA34w0GJ9FedFFuJGD+7E6vz7Q3uqAIugL5p45fhlsj4UaAsHpcmlqugBWMhA0/j7o0sIg==} + '@rolldown/binding-linux-arm-gnueabihf@1.1.4': + resolution: {integrity: sha512-mCi0OKgEieFircrtVYmQAFGszRtMnZ6fpZAXrxanXAu7lqZcsK1E1RAaZNG0uKAnxox3B1f4EyQNnoyMfN1vAA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.1.3': - resolution: {integrity: sha512-50jD0uUwLvur7Zz9LHz17kaAdTPjn5wN93hEgjvmYFRZwiR7ZJYovTd5ipyWJDAnXKvZ+wgc+/Ika6dwSF5OcA==} + '@rolldown/binding-linux-arm64-gnu@1.1.4': + resolution: {integrity: sha512-B9Ial3Kv5sh0SHnB1g/QWcUQCEvCF6QKGAl4zXypYj65mVI+B4AhFBwPtSN7pDrJeIx8Z7zdy4ntx+wQABom7w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-musl@1.1.3': - resolution: {integrity: sha512-BO9+oPL8K9poZJBfYPsXNtYjPE5uM3qeehT3aFcW4LITOl+iSqhp0abzjR2nWBUNjIZeKXjAEWBZ64WjNoHd6w==} + '@rolldown/binding-linux-arm64-musl@1.1.4': + resolution: {integrity: sha512-lZVym0PuHE1KZ22gmFTC15lAkrg9iTszR617oYRB/iPY1A56ywoJzVKOJBKaot5RiikCObmur6pogpse3gRcng==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@rolldown/binding-linux-ppc64-gnu@1.1.3': - resolution: {integrity: sha512-f3VpLB1vQ0Eo6ecr/6cekLnvYMFF4YBFoVGkfkvPLq1bAkbAwHYQPZKoAmG6OJyTcxxoC+AvezGx/S1obNC0Mw==} + '@rolldown/binding-linux-ppc64-gnu@1.1.4': + resolution: {integrity: sha512-t2DNiLJWNTbnEHyUzTumldML6ET4/g16467LZoDDJ3tSxGvguL5/NyC2lCsNKuyRycg9XeDQF5SSv+TNOhQEXg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.1.3': - resolution: {integrity: sha512-AmurZ26Pqx/RI9N1gzEOCklkKXl927yjfXWUUS0O7Puh8ARM/Ob8qfrD3qnWksScdw6cSrW5PSHE9DyLu7+PtA==} + '@rolldown/binding-linux-s390x-gnu@1.1.4': + resolution: {integrity: sha512-0WIRnL1Uw4BvTZRLQt+PVgo6ZKTJadlC2btP+/EOXv2f/DWbY0rEgl+y834mIVwP1FkTlWVTrGGJXf12lru7EQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.1.3': - resolution: {integrity: sha512-JJpqs8bRGITDOdbkNKnlojzBabbOHrqjSvDr0IVsZObE1lBcPjxItUEY9eWIDbxaJ3cGrXPWGfGkIxFijg/URg==} + '@rolldown/binding-linux-x64-gnu@1.1.4': + resolution: {integrity: sha512-JWtGshGfX+oENAKonoNkqEJX+7hC8yfhi9GUyPX1VX4mdh1y5r+ZiJLR5XzAB0aoP6s/PcILsGjKq8O0mm24bw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-musl@1.1.3': - resolution: {integrity: sha512-rSJcdjPxzA/by/6/rYs+v+bXU7UjvnbUWz8MJb6kh6+knqB1dCrtHg0uu7C/4haqJvqdkYHQ5IGn+tCH9GLW/g==} + '@rolldown/binding-linux-x64-musl@1.1.4': + resolution: {integrity: sha512-rT6yQcxUuXs4CnbofqwHRRV0iem349rLMYpTjkgQGLjrY4ado/eDzwPZPTCgTOlF6Nkp8NEv70yLMTn6qkWxsQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@rolldown/binding-openharmony-arm64@1.1.3': - resolution: {integrity: sha512-hQ3/PYkDJICgevvyNcVrihVeqq7k1Pp3VZ9lY+dauAYUJKO+auqApvANhvR1An9BhmqYKvW2Mu1F9u4DXSMLxQ==} + '@rolldown/binding-openharmony-arm64@1.1.4': + resolution: {integrity: sha512-KXMGoboq5cyaCQjDA4GLuRiOwBQ0EyFnJoVViLeZ45/3rFItRODEr+NdsBcVpll40hhNArlm/speWGRvj08LzA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-wasm32-wasi@1.1.3': - resolution: {integrity: sha512-Elcv/BtML9lXrV6JuKITc/grN2kYV9gjsQpW8Jfw4ioK0TOkjBjye0nnyqQNy9STNaI20lXNaQBRrD5gSgR0Yg==} + '@rolldown/binding-wasm32-wasi@1.1.4': + resolution: {integrity: sha512-5K83rb36oJiY7BCyE9zLZtGcPV4g5wvq+xwdO0XPIwDVZI8cyB/AUjkNXGb92/rnmezEkjMOpgY61rtwjQtFwg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.1.3': - resolution: {integrity: sha512-2DrEfhluH9yhiaFApmsjsjwrSYbNcY1oFTzYSP1a535jDbV98zCFanA/96TBUd0iDFcxGmw9QRExwGCXz3U+/g==} + '@rolldown/binding-win32-arm64-msvc@1.1.4': + resolution: {integrity: sha512-PnWBtw3TV5KOg69HQQDR0mnQuyCmSGR2pAB4DC1rPF808fgKeTUMj2EOEyKATpgiuxuR5APQmiDO7PDgEjTFSA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.1.3': - resolution: {integrity: sha512-OL4OMk7UPXOeVGGd3qo5zJyPIljf4AFgk5QAkPPS+OoLuOOozhuaQGC18MxVTnw/06q93gShAJzlwnSCY9YtqA==} + '@rolldown/binding-win32-x64-msvc@1.1.4': + resolution: {integrity: sha512-M1lpniBePobTfsa7Ks9a199e1akxsXn+GYBUKsEzv3YFzOm1HJAMNwKI3qr0Zq+mxwx9gOZoTdP1yXRYsZUocQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -4833,8 +4833,8 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rolldown@1.1.3: - resolution: {integrity: sha512-1F1eEtUBtFvcGm1HQ9TiUIUHPQG7mSAODrhIzjxoUEFuo8OcbrGLiVLkevNgj84TE4lnHvnumwFjhJO5Eu135g==} + rolldown@1.1.4: + resolution: {integrity: sha512-IjZYiLxZwpnhwhdBH2ugdTGVSdhCQUmLxLoqyjiL0JxYjyRst+5a0P3xfrTxJ5F638j4Mvvw5FAX5XE6eHpXbA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -5590,6 +5590,49 @@ packages: yaml: optional: true + vite@8.1.3: + resolution: {integrity: sha512-Ds+gBRbj0lwRO2Y5hwnUBdxSwlAve9LeRyU4sNnAr0ewW0gWF0n5bgXgUzbgZ49MV9BVUAQUFYVcDUcilUExMA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + '@vitejs/devtools': ^0.3.0 + esbuild: '>=0.28.1' + 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 + vitepress@2.0.0-alpha.17: resolution: {integrity: sha512-Z3VPUpwk/bHYqt1uMVOOK1/4xFiWQov1GNc2FvMdz6kvje4JRXEOngVI9C+bi5jeedMSHiA4dwKkff1NCvbZ9Q==} hasBin: true @@ -6539,7 +6582,7 @@ snapshots: '@oxc-minify/binding-win32-x64-msvc@0.138.0': optional: true - '@oxc-project/types@0.137.0': {} + '@oxc-project/types@0.138.0': {} '@paralleldrive/cuid2@2.2.2': dependencies: @@ -6798,53 +6841,53 @@ snapshots: transitivePeerDependencies: - supports-color - '@rolldown/binding-android-arm64@1.1.3': + '@rolldown/binding-android-arm64@1.1.4': optional: true - '@rolldown/binding-darwin-arm64@1.1.3': + '@rolldown/binding-darwin-arm64@1.1.4': optional: true - '@rolldown/binding-darwin-x64@1.1.3': + '@rolldown/binding-darwin-x64@1.1.4': optional: true - '@rolldown/binding-freebsd-x64@1.1.3': + '@rolldown/binding-freebsd-x64@1.1.4': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.1.3': + '@rolldown/binding-linux-arm-gnueabihf@1.1.4': optional: true - '@rolldown/binding-linux-arm64-gnu@1.1.3': + '@rolldown/binding-linux-arm64-gnu@1.1.4': optional: true - '@rolldown/binding-linux-arm64-musl@1.1.3': + '@rolldown/binding-linux-arm64-musl@1.1.4': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.1.3': + '@rolldown/binding-linux-ppc64-gnu@1.1.4': optional: true - '@rolldown/binding-linux-s390x-gnu@1.1.3': + '@rolldown/binding-linux-s390x-gnu@1.1.4': optional: true - '@rolldown/binding-linux-x64-gnu@1.1.3': + '@rolldown/binding-linux-x64-gnu@1.1.4': optional: true - '@rolldown/binding-linux-x64-musl@1.1.3': + '@rolldown/binding-linux-x64-musl@1.1.4': optional: true - '@rolldown/binding-openharmony-arm64@1.1.3': + '@rolldown/binding-openharmony-arm64@1.1.4': optional: true - '@rolldown/binding-wasm32-wasi@1.1.3': + '@rolldown/binding-wasm32-wasi@1.1.4': dependencies: '@emnapi/core': 1.11.1 '@emnapi/runtime': 1.11.1 '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) optional: true - '@rolldown/binding-win32-arm64-msvc@1.1.3': + '@rolldown/binding-win32-arm64-msvc@1.1.4': optional: true - '@rolldown/binding-win32-x64-msvc@1.1.3': + '@rolldown/binding-win32-x64-msvc@1.1.4': optional: true '@rolldown/pluginutils@1.0.0-rc.2': {} @@ -7423,10 +7466,10 @@ snapshots: '@unrs/rspack-resolver-binding-win32-x64-msvc@1.3.0': optional: true - '@vitejs/plugin-react@6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4))': + '@vitejs/plugin-react@6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4) + vite: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4) optionalDependencies: babel-plugin-react-compiler: 19.1.0-rc.3 @@ -7445,13 +7488,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.9(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4))': + '@vitest/mocker@4.1.9(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4))': dependencies: '@vitest/spy': 4.1.9 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4) + vite: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4) '@vitest/pretty-format@4.1.9': dependencies: @@ -10408,26 +10451,26 @@ snapshots: rfdc@1.4.1: {} - rolldown@1.1.3: + rolldown@1.1.4: dependencies: - '@oxc-project/types': 0.137.0 + '@oxc-project/types': 0.138.0 '@rolldown/pluginutils': 1.0.1 optionalDependencies: - '@rolldown/binding-android-arm64': 1.1.3 - '@rolldown/binding-darwin-arm64': 1.1.3 - '@rolldown/binding-darwin-x64': 1.1.3 - '@rolldown/binding-freebsd-x64': 1.1.3 - '@rolldown/binding-linux-arm-gnueabihf': 1.1.3 - '@rolldown/binding-linux-arm64-gnu': 1.1.3 - '@rolldown/binding-linux-arm64-musl': 1.1.3 - '@rolldown/binding-linux-ppc64-gnu': 1.1.3 - '@rolldown/binding-linux-s390x-gnu': 1.1.3 - '@rolldown/binding-linux-x64-gnu': 1.1.3 - '@rolldown/binding-linux-x64-musl': 1.1.3 - '@rolldown/binding-openharmony-arm64': 1.1.3 - '@rolldown/binding-wasm32-wasi': 1.1.3 - '@rolldown/binding-win32-arm64-msvc': 1.1.3 - '@rolldown/binding-win32-x64-msvc': 1.1.3 + '@rolldown/binding-android-arm64': 1.1.4 + '@rolldown/binding-darwin-arm64': 1.1.4 + '@rolldown/binding-darwin-x64': 1.1.4 + '@rolldown/binding-freebsd-x64': 1.1.4 + '@rolldown/binding-linux-arm-gnueabihf': 1.1.4 + '@rolldown/binding-linux-arm64-gnu': 1.1.4 + '@rolldown/binding-linux-arm64-musl': 1.1.4 + '@rolldown/binding-linux-ppc64-gnu': 1.1.4 + '@rolldown/binding-linux-s390x-gnu': 1.1.4 + '@rolldown/binding-linux-x64-gnu': 1.1.4 + '@rolldown/binding-linux-x64-musl': 1.1.4 + '@rolldown/binding-openharmony-arm64': 1.1.4 + '@rolldown/binding-wasm32-wasi': 1.1.4 + '@rolldown/binding-win32-arm64-msvc': 1.1.4 + '@rolldown/binding-win32-x64-msvc': 1.1.4 router@2.2.0: dependencies: @@ -11188,17 +11231,30 @@ snapshots: x-is-array: 0.1.0 x-is-string: 0.1.0 - vite-plugin-babel@1.7.3(@babel/core@7.29.7)(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4)): + vite-plugin-babel@1.7.3(@babel/core@7.29.7)(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4)): dependencies: '@babel/core': 7.29.7 - vite: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4) + vite: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4) vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 postcss: 8.5.16 - rolldown: 1.1.3 + rolldown: 1.1.4 + tinyglobby: 0.2.17 + optionalDependencies: + '@types/node': 26.1.0 + esbuild: 0.28.1 + fsevents: 2.3.3 + tsx: 4.22.4 + + vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4): + dependencies: + lightningcss: 1.32.0 + picomatch: 4.0.4 + postcss: 8.5.16 + rolldown: 1.1.4 tinyglobby: 0.2.17 optionalDependencies: '@types/node': 26.1.0 @@ -11256,10 +11312,10 @@ snapshots: - universal-cookie - yaml - vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.1.0)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4)): + vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.1.0)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4)): dependencies: '@vitest/expect': 4.1.9 - '@vitest/mocker': 4.1.9(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4)) + '@vitest/mocker': 4.1.9(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4)) '@vitest/pretty-format': 4.1.9 '@vitest/runner': 4.1.9 '@vitest/snapshot': 4.1.9 @@ -11276,7 +11332,7 @@ snapshots: tinyexec: 1.2.4 tinyglobby: 0.2.17 tinyrainbow: 3.1.0 - vite: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4) + vite: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.1 diff --git a/ui/package.json b/ui/package.json index 6e90a7b29..0e9fb9cea 100644 --- a/ui/package.json +++ b/ui/package.json @@ -12,6 +12,6 @@ "devDependencies": { "ep_etherpad-lite": "workspace:../src", "typescript": "^6.0.3", - "vite": "^8.1.2" + "vite": "^8.1.3" } } From b7d24778409eb493211653fc755651a140fb56c5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Jul 2026 21:35:34 +0200 Subject: [PATCH 28/74] build(deps): bump undici from 8.5.0 to 8.6.0 (#8021) Bumps [undici](https://github.com/nodejs/undici) from 8.5.0 to 8.6.0. - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](https://github.com/nodejs/undici/compare/v8.5.0...v8.6.0) --- updated-dependencies: - dependency-name: undici dependency-version: 8.6.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 20 ++++++++++---------- src/package.json | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 71d230d85..eda93ca49 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -365,8 +365,8 @@ importers: specifier: 1.13.8 version: 1.13.8 undici: - specifier: ^8.5.0 - version: 8.5.0 + specifier: ^8.6.0 + version: 8.6.0 wtfnode: specifier: ^0.10.1 version: 0.10.1 @@ -5431,12 +5431,12 @@ packages: undici-types@8.3.0: resolution: {integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==} - undici@7.27.2: - resolution: {integrity: sha512-uZsKNuzQxDMUY6M3pIMvy5tvlGmtq8XJ2oLAkfRKGNu+1VQAIvLy2xIVG5ATZl5wDXl/tddByAWCizRbOme+TA==} + undici@7.28.0: + resolution: {integrity: sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==} engines: {node: '>=20.18.1'} - undici@8.5.0: - resolution: {integrity: sha512-xamtWoB1EshgjpmlXd7GGm2VfdDtw1+rD8uhry8pSNW3If6S8E0m2T2+orSKeZXEn/aPJMviCpDBA65WJt8zhg==} + undici@8.6.0: + resolution: {integrity: sha512-l2FlC6I510GawyEd1qgcE/okihKrzy+BRTEBlu6T0fdbM9m5yxtIH5Oa3ysRsH0zC4EhmWUEaSDsy2QngBeRlw==} engines: {node: '>=22.19.0'} unicode-properties@1.4.1: @@ -6239,7 +6239,7 @@ snapshots: ms: 2.1.3 secure-json-parse: 4.1.0 tslib: 2.8.1 - undici: 7.27.2 + undici: 7.28.0 transitivePeerDependencies: - supports-color @@ -9370,7 +9370,7 @@ snapshots: saxes: 6.0.0 symbol-tree: 3.2.4 tough-cookie: 6.0.1 - undici: 7.27.2 + undici: 7.28.0 w3c-xmlserializer: 5.0.0 webidl-conversions: 8.0.1 whatwg-mimetype: 5.0.0 @@ -11109,9 +11109,9 @@ snapshots: undici-types@8.3.0: {} - undici@7.27.2: {} + undici@7.28.0: {} - undici@8.5.0: {} + undici@8.6.0: {} unicode-properties@1.4.1: dependencies: diff --git a/src/package.json b/src/package.json index 6c565aabe..bb9ee8855 100644 --- a/src/package.json +++ b/src/package.json @@ -87,7 +87,7 @@ "tsx": "4.22.4", "ueberdb2": "6.1.15", "underscore": "1.13.8", - "undici": "^8.5.0", + "undici": "^8.6.0", "wtfnode": "^0.10.1" }, "bin": { From e5d6142061825bb057f08faf8b00ac3e3d8fb9b6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 5 Jul 2026 11:25:10 +0200 Subject: [PATCH 29/74] build(deps): bump nano from 11.0.5 to 11.0.6 (#8025) Bumps [nano](https://github.com/apache/couchdb-nano) from 11.0.5 to 11.0.6. - [Release notes](https://github.com/apache/couchdb-nano/releases) - [Commits](https://github.com/apache/couchdb-nano/compare/v11.0.5...v11.0.6) --- updated-dependencies: - dependency-name: nano dependency-version: 11.0.6 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 18 +++++++++--------- src/package.json | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index eda93ca49..60c43c9eb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -166,7 +166,7 @@ importers: version: 4.22.4 ueberdb2: specifier: 6.1.15 - version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.5(@types/node@26.1.0))(nano@11.0.5)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.5(@types/node@26.1.0))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) devDependencies: '@types/node': specifier: ^26.1.0 @@ -293,8 +293,8 @@ importers: specifier: ^3.22.5 version: 3.22.5(@types/node@26.1.0) nano: - specifier: ^11.0.5 - version: 11.0.5 + specifier: ^11.0.6 + version: 11.0.6 nodemailer: specifier: ^9.0.3 version: 9.0.3 @@ -360,7 +360,7 @@ importers: version: 4.22.4 ueberdb2: specifier: 6.1.15 - version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.5(@types/node@26.1.0))(nano@11.0.5)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.5(@types/node@26.1.0))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) underscore: specifier: 1.13.8 version: 1.13.8 @@ -4255,8 +4255,8 @@ packages: resolution: {integrity: sha512-Tz09sEL2EEuv5fFowm419c1+a/jSMiBjI9gHxVLrVdbUkkNUUfjsVYs9pVZu5oCon/kmRh9TfLEObFtkVxmY0w==} engines: {node: '>=8.0.0'} - nano@11.0.5: - resolution: {integrity: sha512-yLYmFH7S33OWYPAG12wNqMR6l9hC3qOWLbr7hZPqKBVKO8BYhAaLlWENeJEpPY8Rm12lGvzKWBp8LGEgWhEqmw==} + nano@11.0.6: + resolution: {integrity: sha512-3yEfcEaBBhdmYXQRP6nztbuRQAcArdjrb2Vkrvx61+b5bzML34ztUy/b9zDXyhW4h4EESpZzf01A8JNRGo+Jlw==} engines: {node: '>=20.0'} nanoid@3.3.11: @@ -9818,7 +9818,7 @@ snapshots: dependencies: lru.min: 1.1.4 - nano@11.0.5: {} + nano@11.0.6: {} nanoid@3.3.11: {} @@ -11074,7 +11074,7 @@ snapshots: typescript@6.0.3: {} - ueberdb2@6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.5(@types/node@26.1.0))(nano@11.0.5)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)): + ueberdb2@6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.5(@types/node@26.1.0))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)): optionalDependencies: '@elastic/elasticsearch': 9.4.2 async: 3.2.6 @@ -11083,7 +11083,7 @@ snapshots: mongodb: 7.4.0 mssql: 12.6.0 mysql2: 3.22.5(@types/node@26.1.0) - nano: 11.0.5 + nano: 11.0.6 pg: 8.22.0 redis: 6.1.0(@opentelemetry/api@1.9.1) rethinkdb: 2.4.2 diff --git a/src/package.json b/src/package.json index bb9ee8855..a11382d00 100644 --- a/src/package.json +++ b/src/package.json @@ -63,7 +63,7 @@ "mongodb": "^7.4.0", "mssql": "^12.6.0", "mysql2": "^3.22.5", - "nano": "^11.0.5", + "nano": "^11.0.6", "nodemailer": "^9.0.3", "oidc-provider": "9.8.6", "openapi-backend": "^5.18.0", From fdc23c658fa58e5558846cdc9caea2800be9c230 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 5 Jul 2026 11:25:26 +0200 Subject: [PATCH 30/74] build(deps): bump tsx from 4.22.4 to 4.23.0 (#8023) Bumps [tsx](https://github.com/privatenumber/tsx) from 4.22.4 to 4.23.0. - [Release notes](https://github.com/privatenumber/tsx/releases) - [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs) - [Commits](https://github.com/privatenumber/tsx/compare/v4.22.4...v4.23.0) --- updated-dependencies: - dependency-name: tsx dependency-version: 4.23.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- admin/package.json | 2 +- bin/package.json | 2 +- pnpm-lock.yaml | 66 +++++++++++++++++++++++----------------------- src/package.json | 2 +- 4 files changed, 36 insertions(+), 36 deletions(-) diff --git a/admin/package.json b/admin/package.json index 968ec733d..f1d522c25 100644 --- a/admin/package.json +++ b/admin/package.json @@ -44,7 +44,7 @@ "react-i18next": "^17.0.8", "react-router-dom": "^7.18.1", "socket.io-client": "^4.8.3", - "tsx": "^4.22.4", + "tsx": "^4.23.0", "typescript": "^6.0.3", "vite": "^8.1.3", "vite-plugin-babel": "^1.7.3", diff --git a/bin/package.json b/bin/package.json index 6a68d1e9b..3e2ef3029 100644 --- a/bin/package.json +++ b/bin/package.json @@ -10,7 +10,7 @@ "ep_etherpad-lite": "workspace:../src", "log4js": "^6.9.1", "semver": "^7.8.5", - "tsx": "^4.22.4", + "tsx": "^4.23.0", "ueberdb2": "6.1.15" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 60c43c9eb..c83877b95 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -91,7 +91,7 @@ importers: version: 8.62.1(eslint@10.6.0)(typescript@6.0.3) '@vitejs/plugin-react': specifier: ^6.0.3 - version: 6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4)) + version: 6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0)) babel-plugin-react-compiler: specifier: 19.1.0-rc.3 version: 19.1.0-rc.3 @@ -135,17 +135,17 @@ importers: specifier: ^4.8.3 version: 4.8.3 tsx: - specifier: ^4.22.4 - version: 4.22.4 + specifier: ^4.23.0 + version: 4.23.0 typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.1.3 - version: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4) + version: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0) vite-plugin-babel: specifier: ^1.7.3 - version: 1.7.3(@babel/core@7.29.7)(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4)) + version: 1.7.3(@babel/core@7.29.7)(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0)) zustand: specifier: ^5.0.14 version: 5.0.14(@types/react@19.2.17)(react@19.2.7)(use-sync-external-store@1.6.0(react@19.2.7)) @@ -162,8 +162,8 @@ importers: specifier: ^7.8.5 version: 7.8.5 tsx: - specifier: ^4.22.4 - version: 4.22.4 + specifier: ^4.23.0 + version: 4.23.0 ueberdb2: specifier: 6.1.15 version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.5(@types/node@26.1.0))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) @@ -189,7 +189,7 @@ importers: version: 0.138.0 vitepress: specifier: ^2.0.0-alpha.17 - version: 2.0.0-alpha.17(@types/node@26.1.0)(change-case@5.4.4)(esbuild@0.28.1)(jwt-decode@4.0.0)(oxc-minify@0.138.0)(postcss@8.5.16)(tsx@4.22.4)(typescript@6.0.3) + version: 2.0.0-alpha.17(@types/node@26.1.0)(change-case@5.4.4)(esbuild@0.28.1)(jwt-decode@4.0.0)(oxc-minify@0.138.0)(postcss@8.5.16)(tsx@4.23.0)(typescript@6.0.3) src: dependencies: @@ -356,8 +356,8 @@ importers: specifier: 0.6.8 version: 0.6.8 tsx: - specifier: 4.22.4 - version: 4.22.4 + specifier: 4.23.0 + version: 4.23.0 ueberdb2: specifier: 6.1.15 version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.5(@types/node@26.1.0))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) @@ -484,7 +484,7 @@ importers: version: 6.0.3 vitest: specifier: ^4.1.9 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.1.0)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.1.0)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0)) ui: devDependencies: @@ -496,7 +496,7 @@ importers: version: 6.0.3 vite: specifier: ^8.1.3 - version: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4) + version: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0) packages: @@ -5309,8 +5309,8 @@ packages: resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} engines: {node: '>=0.6.x'} - tsx@4.22.4: - resolution: {integrity: sha512-X8EX+XV4QR5xCsrgxaED954zTDfY8KqlDtskKEL0cHhyS/P8b4IFOvGDQpsC9Q1XnLq915wEfwwY/zzskCtmhg==} + tsx@4.23.0: + resolution: {integrity: sha512-eUdUIaCr963q2h5u3+QwvYp0+eqPvn+egeqZUm0hwERCqqx1E3kK5ehbGCvqSE5MQAULr67ww0cA3jKc3YkM1w==} engines: {node: '>=18.0.0'} hasBin: true @@ -7466,17 +7466,17 @@ snapshots: '@unrs/rspack-resolver-binding-win32-x64-msvc@1.3.0': optional: true - '@vitejs/plugin-react@6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4))': + '@vitejs/plugin-react@6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4) + vite: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0) optionalDependencies: babel-plugin-react-compiler: 19.1.0-rc.3 - '@vitejs/plugin-vue@6.0.5(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4))(vue@3.5.30(typescript@6.0.3))': + '@vitejs/plugin-vue@6.0.5(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0))(vue@3.5.30(typescript@6.0.3))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.2 - vite: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4) + vite: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0) vue: 3.5.30(typescript@6.0.3) '@vitest/expect@4.1.9': @@ -7488,13 +7488,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.9(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4))': + '@vitest/mocker@4.1.9(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0))': dependencies: '@vitest/spy': 4.1.9 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4) + vite: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0) '@vitest/pretty-format@4.1.9': dependencies: @@ -11009,7 +11009,7 @@ snapshots: tsscmp@1.0.6: {} - tsx@4.22.4: + tsx@4.23.0: dependencies: esbuild: 0.28.1 optionalDependencies: @@ -11231,12 +11231,12 @@ snapshots: x-is-array: 0.1.0 x-is-string: 0.1.0 - vite-plugin-babel@1.7.3(@babel/core@7.29.7)(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4)): + vite-plugin-babel@1.7.3(@babel/core@7.29.7)(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0)): dependencies: '@babel/core': 7.29.7 - vite: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4) + vite: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0) - vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4): + vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 @@ -11247,9 +11247,9 @@ snapshots: '@types/node': 26.1.0 esbuild: 0.28.1 fsevents: 2.3.3 - tsx: 4.22.4 + tsx: 4.23.0 - vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4): + vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 @@ -11260,9 +11260,9 @@ snapshots: '@types/node': 26.1.0 esbuild: 0.28.1 fsevents: 2.3.3 - tsx: 4.22.4 + tsx: 4.23.0 - vitepress@2.0.0-alpha.17(@types/node@26.1.0)(change-case@5.4.4)(esbuild@0.28.1)(jwt-decode@4.0.0)(oxc-minify@0.138.0)(postcss@8.5.16)(tsx@4.22.4)(typescript@6.0.3): + vitepress@2.0.0-alpha.17(@types/node@26.1.0)(change-case@5.4.4)(esbuild@0.28.1)(jwt-decode@4.0.0)(oxc-minify@0.138.0)(postcss@8.5.16)(tsx@4.23.0)(typescript@6.0.3): dependencies: '@docsearch/css': 4.6.0 '@docsearch/js': 4.6.0 @@ -11272,7 +11272,7 @@ snapshots: '@shikijs/transformers': 3.23.0 '@shikijs/types': 3.23.0 '@types/markdown-it': 14.1.2 - '@vitejs/plugin-vue': 6.0.5(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4))(vue@3.5.30(typescript@6.0.3)) + '@vitejs/plugin-vue': 6.0.5(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0))(vue@3.5.30(typescript@6.0.3)) '@vue/devtools-api': 8.1.0 '@vue/shared': 3.5.30 '@vueuse/core': 14.2.1(vue@3.5.30(typescript@6.0.3)) @@ -11281,7 +11281,7 @@ snapshots: mark.js: 8.11.1 minisearch: 7.2.0 shiki: 3.23.0 - vite: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4) + vite: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0) vue: 3.5.30(typescript@6.0.3) optionalDependencies: oxc-minify: 0.138.0 @@ -11312,10 +11312,10 @@ snapshots: - universal-cookie - yaml - vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.1.0)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4)): + vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.1.0)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0)): dependencies: '@vitest/expect': 4.1.9 - '@vitest/mocker': 4.1.9(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4)) + '@vitest/mocker': 4.1.9(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0)) '@vitest/pretty-format': 4.1.9 '@vitest/runner': 4.1.9 '@vitest/snapshot': 4.1.9 @@ -11332,7 +11332,7 @@ snapshots: tinyexec: 1.2.4 tinyglobby: 0.2.17 tinyrainbow: 3.1.0 - vite: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.22.4) + vite: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.1 diff --git a/src/package.json b/src/package.json index a11382d00..fb3c92f1c 100644 --- a/src/package.json +++ b/src/package.json @@ -84,7 +84,7 @@ "superagent": "10.3.0", "surrealdb": "^2.0.4", "tinycon": "0.6.8", - "tsx": "4.22.4", + "tsx": "4.23.0", "ueberdb2": "6.1.15", "underscore": "1.13.8", "undici": "^8.6.0", From 2c94ef94936bda2cfdb1e6835ebfd96dcc9eed68 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 6 Jul 2026 14:03:45 +0200 Subject: [PATCH 31/74] Localisation updates from https://translatewiki.net. --- src/locales/zh-hans.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/locales/zh-hans.json b/src/locales/zh-hans.json index 67e1549f4..865b36a5f 100644 --- a/src/locales/zh-hans.json +++ b/src/locales/zh-hans.json @@ -29,9 +29,19 @@ "admin.page-title": "管理员面板 - Etherpad", "admin.loading": "正在加载…", "admin.loading_description": "页面加载中,请稍安勿躁。", + "admin.toggle_sidebar": "开关侧边栏", + "admin.shout": "通讯", + "admin_shout.online_one": "目前有{{count}}位用户在线", + "admin_shout.online_other": "目前有{{count}}位用户在线", + "admin_shout.sticky_toggle": "更改置顶消息", + "admin_login.title": "Etherpad", "admin_login.username": "用户名", "admin_login.password": "密码", "admin_login.submit": "登录", + "admin_login.failed": "登录失败", + "admin_pads.all_pads": "所有记事本", + "admin_pads.bulk.cleanup_history": "清理历史", + "admin_pads.bulk.clear_selection": "清除选择", "admin_pads.bulk.delete": "删除", "admin_pads.cancel": "取消", "admin_pads.col.users": "用户", From 2f766d075d1dacb4a8eb2fa901a21b0276e6b11d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Jul 2026 21:20:12 +0200 Subject: [PATCH 32/74] build(deps-dev): bump the dev-dependencies group across 1 directory with 8 updates (#8032) Bumps the dev-dependencies group with 8 updates in the / directory: | Package | From | To | | --- | --- | --- | | [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.9` | `4.1.10` | | [@radix-ui/react-dialog](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dialog) | `1.1.18` | `1.1.19` | | [@radix-ui/react-toast](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/toast) | `1.2.18` | `1.2.19` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.62.1` | `8.63.0` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.62.1` | `8.63.0` | | [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.80.0` | `7.81.0` | | [oxc-minify](https://github.com/oxc-project/oxc/tree/HEAD/napi/minify) | `0.138.0` | `0.139.0` | | [vitepress](https://github.com/vuejs/vitepress) | `2.0.0-alpha.17` | `2.0.0-alpha.18` | Updates `vitest` from 4.1.9 to 4.1.10 - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md) - [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.10/packages/vitest) Updates `@radix-ui/react-dialog` from 1.1.18 to 1.1.19 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/dialog/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dialog) Updates `@radix-ui/react-toast` from 1.2.18 to 1.2.19 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/toast/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/toast) Updates `@typescript-eslint/eslint-plugin` from 8.62.1 to 8.63.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.63.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.62.1 to 8.63.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.63.0/packages/parser) Updates `react-hook-form` from 7.80.0 to 7.81.0 - [Release notes](https://github.com/react-hook-form/react-hook-form/releases) - [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md) - [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.80.0...v7.81.0) Updates `oxc-minify` from 0.138.0 to 0.139.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/napi/minify/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/crates_v0.139.0/napi/minify) Updates `vitepress` from 2.0.0-alpha.17 to 2.0.0-alpha.18 - [Release notes](https://github.com/vuejs/vitepress/releases) - [Changelog](https://github.com/vuejs/vitepress/blob/main/CHANGELOG.md) - [Commits](https://github.com/vuejs/vitepress/compare/v2.0.0-alpha.17...v2.0.0-alpha.18) --- updated-dependencies: - dependency-name: vitest dependency-version: 4.1.10 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@radix-ui/react-dialog" dependency-version: 1.1.19 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@radix-ui/react-toast" dependency-version: 1.2.19 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.63.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@typescript-eslint/parser" dependency-version: 8.63.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: react-hook-form dependency-version: 7.81.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: oxc-minify dependency-version: 0.139.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: vitepress dependency-version: 2.0.0-alpha.18 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- admin/package.json | 10 +- doc/package.json | 4 +- pnpm-lock.yaml | 988 ++++++++++++++++++++++----------------------- src/package.json | 2 +- 4 files changed, 500 insertions(+), 504 deletions(-) diff --git a/admin/package.json b/admin/package.json index f1d522c25..aba545c1b 100644 --- a/admin/package.json +++ b/admin/package.json @@ -22,13 +22,13 @@ "openapi-react-query": "^0.5.4" }, "devDependencies": { - "@radix-ui/react-dialog": "^1.1.18", - "@radix-ui/react-toast": "^1.2.18", + "@radix-ui/react-dialog": "^1.1.19", + "@radix-ui/react-toast": "^1.2.19", "@radix-ui/react-visually-hidden": "^1.2.7", "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", - "@typescript-eslint/eslint-plugin": "^8.62.1", - "@typescript-eslint/parser": "^8.62.1", + "@typescript-eslint/eslint-plugin": "^8.63.0", + "@typescript-eslint/parser": "^8.63.0", "@vitejs/plugin-react": "^6.0.3", "babel-plugin-react-compiler": "19.1.0-rc.3", "eslint": "^10.6.0", @@ -40,7 +40,7 @@ "openapi-typescript": "^7.13.0", "react": "^19.2.7", "react-dom": "^19.2.7", - "react-hook-form": "^7.80.0", + "react-hook-form": "^7.81.0", "react-i18next": "^17.0.8", "react-router-dom": "^7.18.1", "socket.io-client": "^4.8.3", diff --git a/doc/package.json b/doc/package.json index 765fd4fda..989c21d69 100644 --- a/doc/package.json +++ b/doc/package.json @@ -1,7 +1,7 @@ { "devDependencies": { - "oxc-minify": "^0.138.0", - "vitepress": "^2.0.0-alpha.17" + "oxc-minify": "^0.139.0", + "vitepress": "^2.0.0-alpha.18" }, "scripts": { "docs:dev": "vitepress dev", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c83877b95..e7b9172cc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -69,11 +69,11 @@ importers: version: 0.5.4(@tanstack/react-query@5.101.2(react@19.2.7))(openapi-fetch@0.17.0) devDependencies: '@radix-ui/react-dialog': - specifier: ^1.1.18 - version: 1.1.18(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + specifier: ^1.1.19 + version: 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-toast': - specifier: ^1.2.18 - version: 1.2.18(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + specifier: ^1.2.19 + version: 1.2.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-visually-hidden': specifier: ^1.2.7 version: 1.2.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) @@ -84,11 +84,11 @@ importers: specifier: ^19.2.3 version: 19.2.3(@types/react@19.2.17) '@typescript-eslint/eslint-plugin': - specifier: ^8.62.1 - version: 8.62.1(@typescript-eslint/parser@8.62.1(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0)(typescript@6.0.3) + specifier: ^8.63.0 + version: 8.63.0(@typescript-eslint/parser@8.63.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0)(typescript@6.0.3) '@typescript-eslint/parser': - specifier: ^8.62.1 - version: 8.62.1(eslint@10.6.0)(typescript@6.0.3) + specifier: ^8.63.0 + version: 8.63.0(eslint@10.6.0)(typescript@6.0.3) '@vitejs/plugin-react': specifier: ^6.0.3 version: 6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0)) @@ -123,8 +123,8 @@ importers: specifier: ^19.2.7 version: 19.2.7(react@19.2.7) react-hook-form: - specifier: ^7.80.0 - version: 7.80.0(react@19.2.7) + specifier: ^7.81.0 + version: 7.81.0(react@19.2.7) react-i18next: specifier: ^17.0.8 version: 17.0.8(i18next@26.3.4(typescript@6.0.3))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@6.0.3) @@ -185,11 +185,11 @@ importers: version: 2.17.3 devDependencies: oxc-minify: - specifier: ^0.138.0 - version: 0.138.0 + specifier: ^0.139.0 + version: 0.139.0 vitepress: - specifier: ^2.0.0-alpha.17 - version: 2.0.0-alpha.17(@types/node@26.1.0)(change-case@5.4.4)(esbuild@0.28.1)(jwt-decode@4.0.0)(oxc-minify@0.138.0)(postcss@8.5.16)(tsx@4.23.0)(typescript@6.0.3) + specifier: ^2.0.0-alpha.18 + version: 2.0.0-alpha.18(@types/node@26.1.0)(change-case@5.4.4)(esbuild@0.28.1)(jwt-decode@4.0.0)(postcss@8.5.16)(tsx@4.23.0)(typescript@6.0.3) src: dependencies: @@ -483,8 +483,8 @@ importers: specifier: ^6.0.3 version: 6.0.3 vitest: - specifier: ^4.1.9 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.1.0)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0)) + specifier: ^4.1.10 + version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.0)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0)) ui: devDependencies: @@ -735,14 +735,14 @@ packages: resolution: {integrity: sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==} engines: {node: '>=20.19.0'} - '@docsearch/css@4.6.0': - resolution: {integrity: sha512-YlcAimkXclvqta47g47efzCM5CFxDwv2ClkDfEs/fC/Ak0OxPH2b3czwa4o8O1TRBf+ujFF2RiUwszz2fPVNJQ==} + '@docsearch/css@4.6.3': + resolution: {integrity: sha512-nlOwcXcsNAptQl4vlL4MA78qNJKO0Qlds5GuBjCoePgkebTXLSf8Qt1oyZ3YBshYupKXG9VRGEsk1zr23d+bzQ==} - '@docsearch/js@4.6.0': - resolution: {integrity: sha512-9/rbgkm/BgTq46cwxIohvSAz3koOFjnPpg0mwkJItAfzKbQIj+310PvwtgUY1YITDuGCag6yOL50GW2DBkaaBw==} + '@docsearch/js@4.6.3': + resolution: {integrity: sha512-qUIX2b4Apew3tv4F0qhmgShsl/Lfw4m6mqv/5/5dWNxwTcDdLMp2s3YwZ+NMGh3IKCg0pBaXm7Q5VdyU5Rj+cQ==} - '@docsearch/sidepanel-js@4.6.0': - resolution: {integrity: sha512-lFT5KLwlzUmpoGArCScNoK41l9a22JYsEPwBzMrz+/ILVR5Ax87UphCuiyDFQWEvEmbwzn/kJx5W/O5BUlN1Rw==} + '@docsearch/sidepanel-js@4.6.3': + resolution: {integrity: sha512-grGSmvXzG0if+mrzdIKykvpIAuEQ9u0sEJ2eLRRCaQfJvsWqh2C2/aY04bIzWvDh7myi5rvl8D+tUNsVrjYQ3A==} '@elastic/elasticsearch@9.4.2': resolution: {integrity: sha512-H9myMlLUeotkZhZ4ppinoMGDFxmW3lY8/s+4TIk1vFHyCvWU1Ej4T7azX5buCzemyFApgN0ywnEuvOtpel2VZg==} @@ -760,9 +760,15 @@ packages: '@emnapi/core@1.11.1': resolution: {integrity: sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==} + '@emnapi/core@1.11.2': + resolution: {integrity: sha512-TC8MkTuZUtcTSiFeuC0ksCh9QIJ5+F21MvZ4Wn4ORfYaFJ/0dsiudv5tVkejgwZlwQ39jL9WWDe2lz8x0WglOA==} + '@emnapi/runtime@1.11.1': resolution: {integrity: sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==} + '@emnapi/runtime@1.11.2': + resolution: {integrity: sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA==} + '@emnapi/wasi-threads@1.2.2': resolution: {integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==} @@ -984,8 +990,8 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@iconify-json/simple-icons@1.2.74': - resolution: {integrity: sha512-yqaohfY6jnYjTVpuTkaBQHrWbdUrQyWXhau0r/0EZiNWYXPX/P8WWwl1DoLH5CbvDjjcWQw5J0zADhgCUklOqA==} + '@iconify-json/simple-icons@1.2.89': + resolution: {integrity: sha512-hRaCY5s2G5oWAIhc4LCGYn6g6RrwLL4zhoLOT+KUO3joVCxVlZKA+839bv/47Nbe9/ZD4UA6dznZ4XPYcI53wA==} '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} @@ -1120,129 +1126,129 @@ packages: resolution: {integrity: sha512-/UhIkaZgPutTFmQ7RnIJGgDXZmtEJ7Dvi86xNTFWcnRxVRNk/aotsqDJYeEvDP+FSMB2SdW+pQzNMcWP0rwuNA==} engines: {node: '>=14'} - '@oxc-minify/binding-android-arm-eabi@0.138.0': - resolution: {integrity: sha512-bnltntiD7kyAmpU4YxmNBt+aE8B5hs8R5HUfkLVr/6ofI13hKnxkA3cEfpziUiWmvNKoG0kLDUpaid0kPDCaPw==} + '@oxc-minify/binding-android-arm-eabi@0.139.0': + resolution: {integrity: sha512-aXrJvvhQ09YMg/atuVixnCdK9IE3hvogna+/ZqRuzs69n6DRrq7MbuRJnrfw+tQvtym9m7vNwQa3fENTemibGQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxc-minify/binding-android-arm64@0.138.0': - resolution: {integrity: sha512-tdLSE1pM0KBSZiBqwMgn7GNEakyJUBvxjZNhHLPNMCtdc7Jezh7iq/Wzs5aMFN+DMs+hbnfYYDvUup1XsR2lBQ==} + '@oxc-minify/binding-android-arm64@0.139.0': + resolution: {integrity: sha512-2LX1Wpsw+LtvOw/dxWVeMT/zBpfw9wdW7FBhFoXwhO24o6F7LPcsCh2BjxygsM8+D4pyJhPwlPekeGGPT/KH2A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxc-minify/binding-darwin-arm64@0.138.0': - resolution: {integrity: sha512-PTFcY0+bK2jaUve9Twl2BzsWAUCIOVXaWrufSQWI3mX2T4kUeqm5tDh32bKfQKb+Y23CE0djJk2p851+bxEykg==} + '@oxc-minify/binding-darwin-arm64@0.139.0': + resolution: {integrity: sha512-5AWuNuJaZxZLcyX7eptAac2nBycrjRIIPaPjiXEq9ozBemp8cXXjr2jkAUIaVcoohiKEYg3EegoaqPFeDPvOGw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxc-minify/binding-darwin-x64@0.138.0': - resolution: {integrity: sha512-xk7Bp8tjBttB0hW4UGZMlm0Nyih0A5PosSC1lS+04919cKJS2uUFXRAiYoSHmfLGUASUURCT2ZcDjiDVuJHDPA==} + '@oxc-minify/binding-darwin-x64@0.139.0': + resolution: {integrity: sha512-RnvVqNNiy0FIhn9y+EPoiC9me9QZxb6O/wuhr+uE7pZm6eG5kw37SvudwaYjYmH/7Xfo87bqEffdowEi7CGsOA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxc-minify/binding-freebsd-x64@0.138.0': - resolution: {integrity: sha512-TGS2CBDdDTlMBjHTVQ5vY5tvAx7M+XSOpHthTvR5whyuAln9oE4ojXBDmCZdwG42UZR+GI1gAndxsEVQUaAjjw==} + '@oxc-minify/binding-freebsd-x64@0.139.0': + resolution: {integrity: sha512-azE4rCmII0FYcX3qRCAqJXWeJZSC5YO/T+VKrZhk8270WRahRmhxJeZCIjmZPXmO7+BkORwUdlDtXYGe2GdIEA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxc-minify/binding-linux-arm-gnueabihf@0.138.0': - resolution: {integrity: sha512-l2Z9a+2DRLKWFMQOu/s5ad/06FyJtdC3RSGlaJb9IwVBH7khIKV8zrf+lNYSy1v+iQJE54YFt9YorokOLQL+1w==} + '@oxc-minify/binding-linux-arm-gnueabihf@0.139.0': + resolution: {integrity: sha512-sfhONQwXir/KWbyrSf4TOkbtSW0n+JNeiXCsgSMTsSRqIdjRrxF6Z2XA2hHrlgWQnxdkdzTU3+aui3IXLzvcKw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-minify/binding-linux-arm-musleabihf@0.138.0': - resolution: {integrity: sha512-IG9/jFTYx9S/63rRP/I4/Xk6xvYRK4ErBAwDNerxi0QaMT7Z/c6UwoXvMq1k5pgVMhJNhSzP3aRA2d0XhuCJfw==} + '@oxc-minify/binding-linux-arm-musleabihf@0.139.0': + resolution: {integrity: sha512-6SZAlnCtNkLZVj8DgSSu59iVN/nELyRwTER1ZUB16fY9Isojtp/JY/Ho6AzanDSdq3sHXWcUZoPWP/2oRVhTAA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-minify/binding-linux-arm64-gnu@0.138.0': - resolution: {integrity: sha512-9LFYnphlXv40KRp6jclqjegvnj15A483SnI+IlrBxZzuQo6DDI7bTWMCi7poEjbF1+ejKLvxS2+PKTxc28JYsw==} + '@oxc-minify/binding-linux-arm64-gnu@0.139.0': + resolution: {integrity: sha512-ikuSX44sYfuRwt9MA2kEyqQIqhZFBpxVxUaoym9bY8seTbLatBXPVX6UC+iXtZCm+zi5rfcBJkwGuE8X/YXEPg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxc-minify/binding-linux-arm64-musl@0.138.0': - resolution: {integrity: sha512-S4vkxaA2PmK7WJFi9P22j5LVw5X6kaBbu03vbuvm/5vGMjvxA69uMI6Xxb1NaVDb3+3gNPr2QCuTJFraVBIj4A==} + '@oxc-minify/binding-linux-arm64-musl@0.139.0': + resolution: {integrity: sha512-ccPpGIncYRDtLWocKQ/l24mRGyf6O/0zQOSpjmqlSx3M1tWPQgVkoAfFcEmehC0V7rGTBFpTOgECbr2UO9grwQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxc-minify/binding-linux-ppc64-gnu@0.138.0': - resolution: {integrity: sha512-EyDw91JDwS04LhNe4E4jDL03XTXzE+ildc+CgesGrOKJd480lVRckyeICXamN3u5blQ+IWkDwcUUHjr70ckEfA==} + '@oxc-minify/binding-linux-ppc64-gnu@0.139.0': + resolution: {integrity: sha512-qIfSeJdK65jNunUtjdYTbc1MuHnvYU8HV/ZtTJcj7bO3Xv7FQwl6OKxvx0ZiMm6vi5wNP+LsZy3QP0NI3O2Oiw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxc-minify/binding-linux-riscv64-gnu@0.138.0': - resolution: {integrity: sha512-A7Zmi0z27S4IwX6ZVgRZnlRgPmuyWk3DMr+0U9TviYA1SxvFwSOoD990OfVNe8gedUzJxd6ZgLWG5umRJV0diw==} + '@oxc-minify/binding-linux-riscv64-gnu@0.139.0': + resolution: {integrity: sha512-tpboSbuRf37MYwhRwO530ChIXLWi32gKDjgsGzKHoUA02P/+YNSvOOVW0vTHNM9kRds1NETvtMGKIXT/MIaD6g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxc-minify/binding-linux-riscv64-musl@0.138.0': - resolution: {integrity: sha512-T96QBrkygS3HI4+LfBIBctOUhCfcKlO1B02e2IDckNvvvLKMjCgdxKXKShnK7ALBUvRgV1+Nz55zGLuEJvDYtg==} + '@oxc-minify/binding-linux-riscv64-musl@0.139.0': + resolution: {integrity: sha512-15aFEJ4MgsWN5hv7uWeY6D5xnsj8pbcet9BrxNMLx8+mwBa5LrYgd1+MPyuDAgZY8ibsC9Js40Rz3gWBk+ET5Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxc-minify/binding-linux-s390x-gnu@0.138.0': - resolution: {integrity: sha512-nCO8S7BKLJ8XvrJVzerG8lgsKRdnXXiZfVoLkR/Xf7aEpd51auONt2Fq/y++G8Lj8NJvTP6J/BQvEtjxv/xkjg==} + '@oxc-minify/binding-linux-s390x-gnu@0.139.0': + resolution: {integrity: sha512-k7VZzIYhiWhBhdMuS9IZFvsdisPVU30x/y7oH8WeQcxY3xL9HCtGaHPzIZWA2p47Ob+ye07wZpTIInfIrVnOjQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxc-minify/binding-linux-x64-gnu@0.138.0': - resolution: {integrity: sha512-PB4wXHCwQ8pr8pXvF8WS8RxefLKmtdRYyNd+Y/823FbewndKXW98XdzOL00gkl2uCF/7JCKWhBsGc+O9q6KEvA==} + '@oxc-minify/binding-linux-x64-gnu@0.139.0': + resolution: {integrity: sha512-tIuF2sFUUQWTS0UIcSHXhYHGNb8Jug2T77wAX/Tf7C5hdEoUwUAy61H1U1wYtKkn/9nEEVzrsxPVRaJ3CSHGWA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxc-minify/binding-linux-x64-musl@0.138.0': - resolution: {integrity: sha512-VImV8mlTZwCrfr9SjdBE9e9jlppC9l3cOFP9NTI+Lx6LBhoZKPs4DgMpE0x4yOeUsthaX58KyZf+ObET3vQoIA==} + '@oxc-minify/binding-linux-x64-musl@0.139.0': + resolution: {integrity: sha512-dKJKmbmQ0I69vGSbljah85X8/TS2nLNUh6ExVag3vLw0BFmbRJakmA2A1zpSRQ9W/rgPH6pZ4VpFnjP9L+EAJg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxc-minify/binding-openharmony-arm64@0.138.0': - resolution: {integrity: sha512-msHKM5DM4wtJOluUM7+F9I0jbS6sha4oOhMis11TyeqmgSYIo2vaXfWC5rHwXN+zeU4FAS7yYPcC0YQwZfE8Dw==} + '@oxc-minify/binding-openharmony-arm64@0.139.0': + resolution: {integrity: sha512-Wu8CslB8A6Pmnp0O2Hmg1xdvGmoLoajpVZOAduK0vAxCk5DrKAueAwlsniAPmTlbJ5INhhGBlpG9V4kEuCNyOw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxc-minify/binding-wasm32-wasi@0.138.0': - resolution: {integrity: sha512-4ynGUn47p7cDhbzSHv8Ur74K1Tzfyzx/QbPmV3K6lUlktNRy4rC1+xpyJlUSyW/kzRRTnmp9Z0FTg7fgkF+STA==} + '@oxc-minify/binding-wasm32-wasi@0.139.0': + resolution: {integrity: sha512-z0RctlQnmafehWz8LwPrWr1r0xlk0o9KQZnF10yl8fJbFIgWRXTcj+8DDuUGKtTdEqb5ZGN93fQdOAdV5p2KxQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] - '@oxc-minify/binding-win32-arm64-msvc@0.138.0': - resolution: {integrity: sha512-ynqCyjrU3c0yGpt2JBoZINJEkL0k3OI/5tn9JSRFT1aDIXpto2K+j3vy4IMBf619+UNUf8K3gOcKJ9hDmRNaqQ==} + '@oxc-minify/binding-win32-arm64-msvc@0.139.0': + resolution: {integrity: sha512-s48mEefXP42a3YQhPmZbtSj8j1ZqtVQe0xxnWupGznfsneW+6kZk4DqwJtbwQVNQW6M3xyT4x7lW8NeKDWY9/A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxc-minify/binding-win32-ia32-msvc@0.138.0': - resolution: {integrity: sha512-0atMEQDg4/gKBF2qjj63DSHIgYo/YGgkRrJnv/W26rWwzm72qOfBbwqxhbeJxvjADxKxyUFu9gzgvPhCssrcyA==} + '@oxc-minify/binding-win32-ia32-msvc@0.139.0': + resolution: {integrity: sha512-hD5AxmkJxYGX33uwlQKBUq+GGKNzH4faeB66c3JASXryDqZZuqa/ZmuGeiOWAcFdKr/PBVby7SslOvRk74epsQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxc-minify/binding-win32-x64-msvc@0.138.0': - resolution: {integrity: sha512-592gz+7hvKyJc6xun0gF1fSXpp9XsXqlg53DfFI7BsElXouYvYdNk4mRmMzRg7arrz+WRhU9Ba1N1nitDnkG+w==} + '@oxc-minify/binding-win32-x64-msvc@0.139.0': + resolution: {integrity: sha512-y0G8o/M+1vIkSYl/1tY5wTK2U3XpyNseK8ca29hM287Gx46AfWFc7MRnMY1Dq8n/80clBL+3O6GNPVOxXRO7XA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -1261,8 +1267,11 @@ packages: '@radix-ui/primitive@1.1.4': resolution: {integrity: sha512-7AdCK9PQyiljKoBDbN8OuctCbd/esdwZPQ8RtOE3SsyQtUpiPb+ND75q0jEhC1m1ecBI0MFNeLJvwIh9iKHRcQ==} - '@radix-ui/react-collection@1.1.11': - resolution: {integrity: sha512-djW9+zeg137KQdlPtmE8xnaD+K2rcXXMWFrSg0hsmYZ6HRbdTA7tDHFgpaW9+huWVEu0RCabL+985T4TA0BE7g==} + '@radix-ui/primitive@1.1.5': + resolution: {integrity: sha512-d86WIWFYNtGA0H/d8exstrTRTp7eWJYlYJbtNofxr/3ljupZYn6EFDG/Qgu/0Kc8v7yMUxySagqJsL1+PdYjWg==} + + '@radix-ui/react-collection@1.1.12': + resolution: {integrity: sha512-nb67INpE0IahJKN7EYPp9m9YGwYeKlnzxT3MwXVkgCskaSJia97kG4T0ywpjNUSSnoJk/uvk12V8vbrEHEj+/Q==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1292,8 +1301,17 @@ packages: '@types/react': optional: true - '@radix-ui/react-dialog@1.1.18': - resolution: {integrity: sha512-apa28mldjMgORmE6g/w3sCcA0Y9UAVeeDVoozN4i7kOw12mLl9RBchfzK3Nn6qxOWjrZhK1Lfy7f07kyzxtnBw==} + '@radix-ui/react-context@1.2.0': + resolution: {integrity: sha512-fOE+JtN9rygNZkCnHRBEP0TAvLldlhyOxMsbwFvTP4nAs+nBmfnna+o/Zski2wkmY1YMrFC0aSzsHoLY47iLrg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-dialog@1.1.19': + resolution: {integrity: sha512-+HhbN2+YtkRgVirjZ2afMeutQRuGOrdkWR5+EFC58SJojGmtyNQwYzgi6tHBpOxvFHefMtPeHdgtjz0BOGxFQg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1305,8 +1323,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-dismissable-layer@1.1.14': - resolution: {integrity: sha512-4lUhWTWAjbDIqFrAPWJ3WqBOpO5YchVZ88X3nh6H9Lu5AFi5nCUeTPj3D8FSDmabmFeRe9ME0BDA4MwKTha5GQ==} + '@radix-ui/react-dismissable-layer@1.1.15': + resolution: {integrity: sha512-b0XaRlzn2QKuo10XyNgi2DAJDf5XC9d1nD3FJcuvCjbR7+4Ad28zmZsLsqx+hvDEzMnRuZaZxZm9gYObV6RmRA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1327,8 +1345,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-focus-scope@1.1.11': - resolution: {integrity: sha512-Mn88Vg2whaRocGJNOH+DKFqYm6ySFPQaiwHNxZPyjn99B52KAEJWWY9NP83+nWdk2HM3rdov+STu9AG471Rt9w==} + '@radix-ui/react-focus-scope@1.1.12': + resolution: {integrity: sha512-jjk/lqTeNL0azUx5ZYzVrl4NgaDIrdzTNE4mABV9yBFI7FQqN7pIgzV1bTleUezP2QiTGA1BFTqY8MegDgWX9A==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1362,8 +1380,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-presence@1.1.6': - resolution: {integrity: sha512-zdTk4PlUO0E18HnZ3wYbW0KkJJxWCdiNYp6g6X1PtONFhxVkg01vliTJAmwIszU6mHiyBOoW9P0rAugl5/hULQ==} + '@radix-ui/react-presence@1.1.7': + resolution: {integrity: sha512-zBZ4QM5XG3JRanDmqXYf3MD6th4AFXFmgU6KNMFzUaV6F3uw9I5/zjMUvFriSEn5ewo1nxuibvyxJdmLlDcslA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1410,8 +1428,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-toast@1.2.18': - resolution: {integrity: sha512-YNEnTHV47hPep+U0QvVM02OJNka9uygREc+k4Nh5VSZBg4MmE+myI442x3hCGfRpX7N2WSSYSJKws4gE+Z8lgg==} + '@radix-ui/react-toast@1.2.19': + resolution: {integrity: sha512-SxfVZfVOibWKWdkf0Xx1awW2d09fQu4V4PXDY1j5hi4MVf7MWdJZqTBJMa1KWtOr1S6GGtCk02nniZ0Iia+dHw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1631,9 +1649,6 @@ packages: cpu: [x64] os: [win32] - '@rolldown/pluginutils@1.0.0-rc.2': - resolution: {integrity: sha512-izyXV/v+cHiRfozX62W9htOAvwMo4/bXKDrQ+vom1L1qRuexPock/7VZDAhnpHCLNejd3NJ6hiab+tO0D44Rgw==} - '@rolldown/pluginutils@1.0.1': resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==} @@ -1643,26 +1658,37 @@ packages: '@rushstack/eslint-patch@1.16.1': resolution: {integrity: sha512-TvZbIpeKqGQQ7X0zSCvPH9riMSFQFSggnfBjFZ1mEoILW+UuXCKwOoPcgjMwiUtRqFZ8jWhPJc4um14vC6I4ag==} - '@shikijs/core@3.23.0': - resolution: {integrity: sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA==} + '@shikijs/core@4.3.1': + resolution: {integrity: sha512-ANMDxuaPsNMdDC1m4vfvhlDmJweMwkE5XitTwrq2rWHx5jM+dlm4MmHt2PP6t0uejfR77SuhrhJ0zEijIF/uhA==} + engines: {node: '>=20'} - '@shikijs/engine-javascript@3.23.0': - resolution: {integrity: sha512-aHt9eiGFobmWR5uqJUViySI1bHMqrAgamWE1TYSUoftkAeCCAiGawPMwM+VCadylQtF4V3VNOZ5LmfItH5f3yA==} + '@shikijs/engine-javascript@4.3.1': + resolution: {integrity: sha512-JBItcnPuYq7jVJdZo/vMj94r+szT7XEjHFX+mvFDGSEIbVAXAGyHAHzhbWzpGOwYidCZrErJLLgn2PVeiokHnQ==} + engines: {node: '>=20'} - '@shikijs/engine-oniguruma@3.23.0': - resolution: {integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==} + '@shikijs/engine-oniguruma@4.3.1': + resolution: {integrity: sha512-OXyNMzg0pews+msMj4cHeqT4xiYKKvbnn6VbdAXxfoFl3SSx4fJTc8FadECuc5/H9p3BzhNAoAUXKwAu9rWYhg==} + engines: {node: '>=20'} - '@shikijs/langs@3.23.0': - resolution: {integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==} + '@shikijs/langs@4.3.1': + resolution: {integrity: sha512-m0l9nsDqgBHvbZbk7A0/kXz/impK3uB/c6rAn6Gpg/uPtdZRQ+alsN/17MU5thb68XTj/4DxkZAotrM0GGSpDQ==} + engines: {node: '>=20'} - '@shikijs/themes@3.23.0': - resolution: {integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==} + '@shikijs/primitive@4.3.1': + resolution: {integrity: sha512-CXQRQOYy1leqQ8ceTeJdmXv/bsUY++6QyLpXJ94LZAAYj5X2SKRdc5ipguv4NPyGVKItB2PPwUpRNe0Sjh5S1A==} + engines: {node: '>=20'} - '@shikijs/transformers@3.23.0': - resolution: {integrity: sha512-F9msZVxdF+krQNSdQ4V+Ja5QemeAoTQ2jxt7nJCwhDsdF1JWS3KxIQXA3lQbyKwS3J61oHRUSv4jYWv3CkaKTQ==} + '@shikijs/themes@4.3.1': + resolution: {integrity: sha512-dgpoJ4WqNi2yTmizQHBJ5zcX6j2lE6icN/0yt4l1kkf16jrY/pwPLoTb1ETsWMz0OBLf9ZNvwmxft+cH+N9qSA==} + engines: {node: '>=20'} - '@shikijs/types@3.23.0': - resolution: {integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==} + '@shikijs/transformers@4.3.1': + resolution: {integrity: sha512-z6ir0bGDgWcF2FduktEfPgIsdOtIlDiLAjFBgBzE42Q9xHbkkIXZtORHzlLVB71iZP9elEcqKg6keajvOUwE2A==} + engines: {node: '>=20'} + + '@shikijs/types@4.3.1': + resolution: {integrity: sha512-CHFxE0jztBIZRHH6gxXE7DXUCFXjReEGxZ/j0rfSLGKZuwp2xBYycEP14875DSa9KLL/6700oxIq6oO6ef9K2g==} + engines: {node: '>=20'} '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} @@ -1946,11 +1972,11 @@ packages: typescript: optional: true - '@typescript-eslint/eslint-plugin@8.62.1': - resolution: {integrity: sha512-4EQM77WgVNxj7OkL/5b/D/xZsw00G577+UriYTC7JF5opcF3T2AuoeY7ueLaZgSVjSgCS6yOAJB5bRGLPSJUzA==} + '@typescript-eslint/eslint-plugin@8.63.0': + resolution: {integrity: sha512-rvwSgqT+DHpWdzfSzPatRLm02a0GlESt++9iy3hLCDY4BgkaLcl8LBi9Yh7XGFBpwcBE/K3024QuXWTpbz4FfQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.62.1 + '@typescript-eslint/parser': ^8.63.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' @@ -1964,15 +1990,15 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.62.1': - resolution: {integrity: sha512-sPhE4iHuJDSvoAiec+Ro8JyXw8f0ql13HFR82P99nCm9GwTEKG0KYLvDe6REk8BCXuit6vJAv/Yxg5ABaNS2rA==} + '@typescript-eslint/parser@8.63.0': + resolution: {integrity: sha512-gwh4gvvlaVDKKxyfxMG+Gnu1u9X0OQBwyGLkbwB65dIzBKnxeRiJlNFqlI3zwVhNXJIs6qV7mlFCn/BIajlVig==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.62.1': - resolution: {integrity: sha512-yQ3RgY5RkSBpsNS1Bx/JQEcA24FOSdfGktoyprAr5u18390UQdtVcfnEv4nIrIshNnavlVyZBKxQwT1fIAE6cg==} + '@typescript-eslint/project-service@8.63.0': + resolution: {integrity: sha512-e5dh0/UI0ok53AlZ5wRkXCB32z/f2jUZqPR/ygAw5WYaSw8j9EoJWlS7wQjr/dmOaqWjnPIn2m+HhVPCMWGZVQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' @@ -1981,12 +2007,12 @@ packages: resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@8.62.1': - resolution: {integrity: sha512-r4d249KbQ1SFdpeStvob8Ih6aPPIzfqllPVOtvhve6ZcpuVcYo5/7zUWckKpHE7StASX4kTKZTLf0WQm/wPkcg==} + '@typescript-eslint/scope-manager@8.63.0': + resolution: {integrity: sha512-uUyfMWCnDSN8bCpcrY8nGP2BLkQ9Xn0GsipcONcpIDWhwhO4ZSyHvyS14U3X75mzxWxL3I2UZIrenTzdzcJO8A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.62.1': - resolution: {integrity: sha512-xadytJqX9vJVQ2fdQjkcIVigwaOJNWkpjdLt6cEQ+xPnrI1fkp+/jZE/I97k9KUjqtpd25i0HeyZf3T6dutv2g==} + '@typescript-eslint/tsconfig-utils@8.63.0': + resolution: {integrity: sha512-sUAbkulqBAsncKnbRP3+7CtQFRKicexnj7ZwNC6ddCR7EmrXvjvdCYMJbUIqMd6lwoEriZjwLo08aS5tSjVMHg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' @@ -2001,8 +2027,8 @@ packages: typescript: optional: true - '@typescript-eslint/type-utils@8.62.1': - resolution: {integrity: sha512-aXM5xlqXiTxPibXB93cLAURfT3rlizf7uMXISCXy66Isr/9hISJx3yDsKl0L7lKa51b8JpFuNKby0/O0pEm9jg==} + '@typescript-eslint/type-utils@8.63.0': + resolution: {integrity: sha512-Nzzh/OGxVCOjObjaj1CQF2RUasyYy2Jfuh+zZ3PjLzG2fYRriAiZLib9UKtO+CpQAS3YHiAS+ckZDclwqI1TPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -2012,8 +2038,8 @@ packages: resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@8.62.1': - resolution: {integrity: sha512-ooCzJFaf+Hg+uG6fA3NRFGuFjlfNlDhBthbv4ZPU/0elCAFUfnyXUvf/WOpHz/jYwSmvU2GkR2LtyUfy1AxZ1Q==} + '@typescript-eslint/types@8.63.0': + resolution: {integrity: sha512-xyLtl9DUBBFrcJS4x2pIqGLH68/tC2uOa4Z7pUteW09D3bXnnXUom4dyPikzWgB7llmIc1zoeI3aoUdC4rPK/Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@7.18.0': @@ -2025,8 +2051,8 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.62.1': - resolution: {integrity: sha512-xMcW9oP9u7fAMXYs9A65CVmtLQe2r//oXINHfi8HV+oiqhih17sbLdhXr4540YWlgpDKQdY854OL5ZrdCiQsAA==} + '@typescript-eslint/typescript-estree@8.63.0': + resolution: {integrity: sha512-ygBkU+B7ex5UI/gKhaqexWev79uISfIv7XQCRNYO/jmD8rGLPyWLAb3KMRT6nd8Gt9bmUBi9+iX6tBdYfOY81Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' @@ -2037,8 +2063,8 @@ packages: peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/utils@8.62.1': - resolution: {integrity: sha512-sHtbPfuKNZCG+ih8SyjjucqRntSVmp8XgL5u6o9mAhiSn8ds5o/M/XdM0abweme2Tln3szOstOrZ9OXitvPh0g==} + '@typescript-eslint/utils@8.63.0': + resolution: {integrity: sha512-fUKaeAvrTuQg/Tgt3nliAUSZHJM6DlCcfyEmxCvlX8kieWSStBX+5O5Fnidtc3i2JrH+9c/GL4RY2iasd/GPTA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -2048,17 +2074,16 @@ packages: resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@8.62.1': - resolution: {integrity: sha512-4g3BLxfdTMy8iZG0MaBkadnlRrCJ74cQiFbyEVMrkwIoqdyaXXQM22cotDvrl4x28wgIZ9rEJRoM+mmhSJpJ1g==} + '@typescript-eslint/visitor-keys@8.63.0': + resolution: {integrity: sha512-UexrHGnGTpbuQHct2ExOc2ZcFbGUS9FOesCxxqdBGcpI1BxYu/LZ6U8Aq6/72XtF/qRBk9nhuGHFJIXXMhPMdw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typespec/ts-http-runtime@0.3.6': resolution: {integrity: sha512-jIXhD0eWQ1JA6ln/5Dltyx22UxWNrw0hZmhy2rlv6m6KgF7kplHx3g0fzi09lNmTJQRR91OlemYp3xFnvDK9og==} engines: {node: '>=20.0.0'} - '@ungap/structured-clone@1.3.0': - resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - deprecated: Potential CWE-502 - Update to 1.3.1 or higher + '@ungap/structured-clone@1.3.2': + resolution: {integrity: sha512-5jsZFwgR5rTdKwidH9Qmat75RKwqfpKlWWB1frDkljN127mwqBu8K0PYo7/hFpF03IEJpfVPpCQDY/eDx3iHvA==} '@unrs/rspack-resolver-binding-darwin-arm64@1.3.0': resolution: {integrity: sha512-EcjI0Hh2HiNOM0B9UuYH1PfLWgE6/SBQ4dKoHXWNloERfveha/n6aUZSBThtPGnJenmdfaJYXXZtqyNbWtJAFw==} @@ -2154,18 +2179,18 @@ packages: babel-plugin-react-compiler: optional: true - '@vitejs/plugin-vue@6.0.5': - resolution: {integrity: sha512-bL3AxKuQySfk1iGcBsQnoRVexTPJq0Z/ixFVM8OhVJAP6ZXXXLtM7NFKWhLl30Kg7uTBqIaPXbh+nuQCuBDedg==} + '@vitejs/plugin-vue@6.0.7': + resolution: {integrity: sha512-km+p+XdSz9Sxm5rqUbqcSfZYaAniKxWBj1KURl+Jr7UaPvvX7BmaWMdP69I5rrFDeQGyxAG7NXdc57vz+snhWg==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: vite: '>=7.3.2' vue: ^3.2.25 - '@vitest/expect@4.1.9': - resolution: {integrity: sha512-vl/rYsUKcBr3SnQn166+XR5ZQcgMx3DQhFWdfli/cWpLnLUmbxZvyrJZotLFUryib+LtArYMSTJ5RbQ57ZqrlA==} + '@vitest/expect@4.1.10': + resolution: {integrity: sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA==} - '@vitest/mocker@4.1.9': - resolution: {integrity: sha512-EVkXzBjrPGM+cK8/ANWgBrkUCfJfb38/EfTSO8h7pWvKkyPkpWxvR7BkD2MyItMF62C97zAEoqdpUixwR/e+Rw==} + '@vitest/mocker@4.1.10': + resolution: {integrity: sha512-v0xaezt+DKEmKfaxg133ldzADrwLGd7Ze1MfQQTYfvs8OqZIwbxyxaYURivwV7sWy5fqn3rH5uOrSp07bp44Ow==} peerDependencies: msw: ^2.4.9 vite: '>=7.3.2' @@ -2175,66 +2200,66 @@ packages: vite: optional: true - '@vitest/pretty-format@4.1.9': - resolution: {integrity: sha512-s0iufns3iIFitdgm+YR7g1whCAaGtXz459VS9/PqyKDEEFgYIhsHOQmXgIgDuYCt7DeQmiZT0Qe2OA2p4ZPu5A==} + '@vitest/pretty-format@4.1.10': + resolution: {integrity: sha512-W1HsjSH4MXQ9YfmmhLAoIYf1HRfekQCGngeIgcei6MP5QQGWUe0gkopdZQaVCFO+JDJMrAJGwa5pRpNpvy4P8Q==} - '@vitest/runner@4.1.9': - resolution: {integrity: sha512-KXLMDtc7oe70+3mJfGrPUWPesswH+3sTxAMAMl8DG7I8IUQT4XW718dY5ID3vPUcmlu27CcKfY4P3h3I29SLJg==} + '@vitest/runner@4.1.10': + resolution: {integrity: sha512-IKI6kpIH+LmpROplyLwBBaCfMgOZOMsygVa6BARD6ahA04VRuJSa6OaVG7kRvSEMD870Vd91rSSw0eegtWyLGg==} - '@vitest/snapshot@4.1.9': - resolution: {integrity: sha512-Jc7RKGNBo8Z28WYIm0Niej4xdSPByRf6mU58VpHQkd6Zh05rlnA+twjbK5HyeIGHxrzsc3mJgS43uM0CZKzaIA==} + '@vitest/snapshot@4.1.10': + resolution: {integrity: sha512-xRkfOT1qpTAi/Ti4Y1LtfRc3kEuqxGw59eN2jN9pRWMtS/XDevekhcFSqvQqjUNGksfjMJu3Y+oJ+4Ypn2OaJw==} - '@vitest/spy@4.1.9': - resolution: {integrity: sha512-fHpsS6mIi+PiEW+vcRVOMkX1oSaPKne3VOclSFICPcGOmfKgXPU5iAah+wcNcj2xPrCCmfq99IDGf+EojhhvhA==} + '@vitest/spy@4.1.10': + resolution: {integrity: sha512-PLf/Ugvoq5wO/b4rwYCR1h2PSIdXz7wnkQFMiUpLdtM7l6pqVFcQIBEHyT1+l+cj7mNwAfZHzqXqDyjvOuwbDw==} - '@vitest/utils@4.1.9': - resolution: {integrity: sha512-A51o8ymO5PpqlWNnBP9ZHPXDIpuMtTLlGSjN7la4US+LJzoUMyhwjA5QXlm39JexgwHKW4Xjs8Z2d3dLCXOeuA==} + '@vitest/utils@4.1.10': + resolution: {integrity: sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==} - '@vue/compiler-core@3.5.30': - resolution: {integrity: sha512-s3DfdZkcu/qExZ+td75015ljzHc6vE+30cFMGRPROYjqkroYI5NV2X1yAMX9UeyBNWB9MxCfPcsjpLS11nzkkw==} + '@vue/compiler-core@3.5.39': + resolution: {integrity: sha512-16KBTEXAJCpDr0mwlw+AZyhu8iyC7R3S2vBwsI7QnWJU6X3WKc9VKeNEZpiMdZ569qWhz9574L3vV55qRL0Vtw==} - '@vue/compiler-dom@3.5.30': - resolution: {integrity: sha512-eCFYESUEVYHhiMuK4SQTldO3RYxyMR/UQL4KdGD1Yrkfdx4m/HYuZ9jSfPdA+nWJY34VWndiYdW/wZXyiPEB9g==} + '@vue/compiler-dom@3.5.39': + resolution: {integrity: sha512-oQPigALqYbNxTNPvNgSOe+czwVExfbVF02lz8jP0S3AXJiu3jxYDygNUiqSep4ezzW8XgnubqH63My2A7JR/vg==} - '@vue/compiler-sfc@3.5.30': - resolution: {integrity: sha512-LqmFPDn89dtU9vI3wHJnwaV6GfTRD87AjWpTWpyrdVOObVtjIuSeZr181z5C4PmVx/V3j2p+0f7edFKGRMpQ5A==} + '@vue/compiler-sfc@3.5.39': + resolution: {integrity: sha512-d0ki86iOyN8LoZPBmk5SJWNwHP19CnDDCfuo//+2WJa2g5Ke0Jay983PIBIcSSzldC68I8DrD5GrHV3OSDfodg==} - '@vue/compiler-ssr@3.5.30': - resolution: {integrity: sha512-NsYK6OMTnx109PSL2IAyf62JP6EUdk4Dmj6AkWcJGBvN0dQoMYtVekAmdqgTtWQgEJo+Okstbf/1p7qZr5H+bA==} + '@vue/compiler-ssr@3.5.39': + resolution: {integrity: sha512-Ce7/wvwMHai74bdszfXExdazFigYnlF9zgCmEQUcM1j0fOymlouZ7XilTYNo8oUjhlnjYOZbGrcYKuqjz89Ucw==} - '@vue/devtools-api@8.1.0': - resolution: {integrity: sha512-O44X57jjkLKbLEc4OgL/6fEPOOanRJU8kYpCE8qfKlV96RQZcdzrcLI5mxMuVRUeXhHKIHGhCpHacyCk0HyO4w==} + '@vue/devtools-api@8.1.5': + resolution: {integrity: sha512-YJipMVAKe5wT5CWf5kTYCaNV7NMNjFVxJkIkJaJ4W/nCxEBzlZzrOsYKeCymdCrFZmBS/+wTWFoUs3Jf/Q6XSQ==} - '@vue/devtools-kit@8.1.0': - resolution: {integrity: sha512-/NZlS4WtGIB54DA/z10gzk+n/V7zaqSzYZOVlg2CfdnpIKdB61bd7JDIMxf/zrtX41zod8E2/bbEBoW/d7x70Q==} + '@vue/devtools-kit@8.1.5': + resolution: {integrity: sha512-FcSAxsi4eWuXLCB7Rv9lj0aIVHHPNVQ2BazGf4RJTc2JCqb4BQg0hk87ZFhminCfl+mD5OUI0rX2cgyu4kJOGA==} - '@vue/devtools-shared@8.1.0': - resolution: {integrity: sha512-h8uCb4Qs8UT8VdTT5yjY6tOJ//qH7EpxToixR0xqejR55t5OdISIg7AJ7eBkhBs8iu1qG5gY3QQNN1DF1EelAA==} + '@vue/devtools-shared@8.1.5': + resolution: {integrity: sha512-mhT4zcPFhF+Xk1O4BfhhrbXzpmfqY03fS6xGpcllbQG7lDjhQf8pQHcTIhqQIYx1hfwtHmk/6jM96ele0UxPqQ==} - '@vue/reactivity@3.5.30': - resolution: {integrity: sha512-179YNgKATuwj9gB+66snskRDOitDiuOZqkYia7mHKJaidOMo/WJxHKF8DuGc4V4XbYTJANlfEKb0yxTQotnx4Q==} + '@vue/reactivity@3.5.39': + resolution: {integrity: sha512-TpsuBJ9gGlZa5d23XcM2y8EXanz9dZeVDQBXRwzy46ItgvM+rWpzs+UVM0wcRLxGvcav0HE5jz2gNL53xlRAog==} - '@vue/runtime-core@3.5.30': - resolution: {integrity: sha512-e0Z+8PQsUTdwV8TtEsLzUM7SzC7lQwYKePydb7K2ZnmS6jjND+WJXkmmfh/swYzRyfP1EY3fpdesyYoymCzYfg==} + '@vue/runtime-core@3.5.39': + resolution: {integrity: sha512-9GLtNyRvPAUMbX+7ono0RC2j0guo2LXVi8LvcmAooImACUKm0oFf0jjwbX8/H0AE/t1nxhAkn8RSl9PMCzzxZw==} - '@vue/runtime-dom@3.5.30': - resolution: {integrity: sha512-2UIGakjU4WSQ0T4iwDEW0W7vQj6n7AFn7taqZ9Cvm0Q/RA2FFOziLESrDL4GmtI1wV3jXg5nMoJSYO66egDUBw==} + '@vue/runtime-dom@3.5.39': + resolution: {integrity: sha512-7Y6aAGboKcXAZ3ECuUy7RrS5yy2r47dhTp2SKaJmYxjopImaVFaNa5Ne66NwGovsrxVAl5S5rwc7m22UG7Lmww==} - '@vue/server-renderer@3.5.30': - resolution: {integrity: sha512-v+R34icapydRwbZRD0sXwtHqrQJv38JuMB4JxbOxd8NEpGLny7cncMp53W9UH/zo4j8eDHjQ1dEJXwzFQknjtQ==} + '@vue/server-renderer@3.5.39': + resolution: {integrity: sha512-yZSakiAGw85rZfG7UM8akMnIF+FmeiNk47uvHf2nVBBSe+dIKUhZuZq9+XgJhbV3nS5Z4ALH23/MpXofW+mbcw==} peerDependencies: - vue: 3.5.30 + vue: 3.5.39 - '@vue/shared@3.5.30': - resolution: {integrity: sha512-YXgQ7JjaO18NeK2K9VTbDHaFy62WrObMa6XERNfNOkAhD1F1oDSf3ZJ7K6GqabZ0BvSDHajp8qfS5Sa2I9n8uQ==} + '@vue/shared@3.5.39': + resolution: {integrity: sha512-l1rrBtBfTnmxvtsvdQDXltUUy8S1Y+ZaqdfUzmAnJkTd8Z8rv5v/ytW+TKiqEOWyHPoqtPlNFSs0lhRmYVSHVA==} - '@vueuse/core@14.2.1': - resolution: {integrity: sha512-3vwDzV+GDUNpdegRY6kzpLm4Igptq+GA0QkJ3W61Iv27YWwW/ufSlOfgQIpN6FZRMG0mkaz4gglJRtq5SeJyIQ==} + '@vueuse/core@14.3.0': + resolution: {integrity: sha512-aHfz47g0ZhMtTVHmIzMVpJy8ePhhOy68GY5bv110+5DVtZ+W7BsOx+m61UNQqfrWyPztIHIanWa3E2tib3NFIw==} peerDependencies: vue: ^3.5.0 - '@vueuse/integrations@14.2.1': - resolution: {integrity: sha512-2LIUpBi/67PoXJGqSDQUF0pgQWpNHh7beiA+KG2AbybcNm+pTGWT6oPGlBgUoDWmYwfeQqM/uzOHqcILpKL7nA==} + '@vueuse/integrations@14.3.0': + resolution: {integrity: sha512-76I5FT2ESvCmCaSwapI+a/u/CFtNXmzl9f9lNp1hRtx8vKB8hfiokJr8IvQqcQG5ckGXElyXK516b54ozV3MvA==} peerDependencies: async-validator: ^4 axios: ^1 @@ -2275,11 +2300,11 @@ packages: universal-cookie: optional: true - '@vueuse/metadata@14.2.1': - resolution: {integrity: sha512-1ButlVtj5Sb/HDtIy1HFr1VqCP4G6Ypqt5MAo0lCgjokrk2mvQKsK2uuy0vqu/Ks+sHfuHo0B9Y9jn9xKdjZsw==} + '@vueuse/metadata@14.3.0': + resolution: {integrity: sha512-BwxmbAzwAVF50+MW57GXOUEV61nFBGnlBvrTqj49PqWJu3uw7hdu72ztXeZ33RdZtDY6kO+bfCAE1PCn88Tktw==} - '@vueuse/shared@14.2.1': - resolution: {integrity: sha512-shTJncjV9JTI4oVNyF1FQonetYAiTBd+Qj7cY89SWbXSkx7gyhrgtEdF2ZAVWS1S3SHlaROO6F2IesJxQEkZBw==} + '@vueuse/shared@14.3.0': + resolution: {integrity: sha512-bZpge9eSXwa4ToSiqJ7j6KRwhAsneMFoSz3LMWKQDkqimm3D/tbFlrklrs/IOqC8tEcYmXQZJ6N0UrjhBirVCg==} peerDependencies: vue: ^3.5.0 @@ -2974,8 +2999,8 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-module-lexer@2.1.0: - resolution: {integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==} + es-module-lexer@2.3.0: + resolution: {integrity: sha512-KLdwQm2NvGLDkQDCGvmiQrhkd0JbMzXthwQAUgWjQuQdBLFa3eiBP5arXZyA+f8x+x7OXgud6bq2rxjGtHV2tw==} es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} @@ -3217,8 +3242,8 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} - expect-type@1.3.0: - resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} + expect-type@1.4.0: + resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==} engines: {node: '>=12.0.0'} express-rate-limit@8.5.1: @@ -3304,8 +3329,8 @@ packages: flatted@3.4.2: resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} - focus-trap@8.0.0: - resolution: {integrity: sha512-Aa84FOGHs99vVwufDMdq2qgOwXPC2e9U66GcqBhn1/jEHPDhJaP8PYhkIbqG9lhfL5Kddk/567lj46LLHYCRUw==} + focus-trap@8.2.2: + resolution: {integrity: sha512-qV0g8hRYBqgACcFOH3f9wXc4zPKhr/0z9RI2a6ZijZ72EeBi4g8oBy8zAWuUR1TsMpOzwpUMFvjdasrC41Joug==} fontkit@2.0.4: resolution: {integrity: sha512-syetQadaUEDNdxdugga9CpEYVaQIxOwk7GlwZWWZ19//qW4zE5bknOKeMBDYAASwnpaSHKJITRLMF9m1fp3s6g==} @@ -4377,11 +4402,11 @@ packages: once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - oniguruma-parser@0.12.1: - resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} + oniguruma-parser@0.12.2: + resolution: {integrity: sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==} - oniguruma-to-es@4.3.5: - resolution: {integrity: sha512-Zjygswjpsewa0NLTsiizVuMQZbp0MDyM6lIt66OxsF21npUDlzpHi1Mgb/qhQdkb+dWFTzJmFbEWdvZgRho8eQ==} + oniguruma-to-es@4.3.6: + resolution: {integrity: sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==} open@10.2.0: resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} @@ -4432,8 +4457,8 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} - oxc-minify@0.138.0: - resolution: {integrity: sha512-mWwRllP8EaIwAf9dSLUm111J/P6ZLnqHhmqZ+hVDaXHWjkW6Ms0L//JPRDCt6Fu3ENTu18n00VpPfzhseXvjeQ==} + oxc-minify@0.139.0: + resolution: {integrity: sha512-RC814aVzfb73cj/I5IVmN3MpGO/SKPvubT3nRYWtMD5WVeg87PWn/VX6/P3sWr0WI8a39WN9Cwckmp5nuZvY5w==} engines: {node: ^20.19.0 || >=22.12.0} p-limit@3.1.0: @@ -4552,6 +4577,10 @@ packages: resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} + picomatch@4.0.5: + resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} + engines: {node: '>=12'} + playwright-core@1.61.1: resolution: {integrity: sha512-h7Qlt6m4REp25qvIdvbDtVmD4LqVXfpRxhORv9L0jzETM05p4fuPJ3dKyuSXQxDSbXnmS79HAgi9589lGSpLkg==} engines: {node: '>=18'} @@ -4611,8 +4640,8 @@ packages: promise@1.3.0: resolution: {integrity: sha512-R9WrbTF3EPkVtWjp7B7umQGVndpsi+rsDAfrR4xAALQpFLa/+2OriecLhawxzvii2gd9+DZFwROWDuUUaqS5yA==} - property-information@7.1.0: - resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} + property-information@7.2.0: + resolution: {integrity: sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==} proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} @@ -4673,8 +4702,8 @@ packages: peerDependencies: react: ^19.2.7 - react-hook-form@7.80.0: - resolution: {integrity: sha512-4P+fk6oXsxY+6xSj7Euhc2sumQD8zQqCuVHoJwoyp9EchP+IUW9OESB7uHFJOKsIBQ4MQqYE84INJFqUCYNoOg==} + react-hook-form@7.81.0: + resolution: {integrity: sha512-ocbmr2p5KBMoAfj4WCUvped33lVi1Kd5DuDUvQDnB6VEAacOjPI/jMbtDdbhco4y9ct4xUuCmMY0b/C9L0QHjw==} engines: {node: '>=18.0.0'} peerDependencies: react: ^16.8.0 || ^17 || ^18 || ^19 @@ -5008,8 +5037,9 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@3.23.0: - resolution: {integrity: sha512-55Dj73uq9ZXL5zyeRPzHQsK7Nbyt6Y10k5s7OjuFZGMhpp4r/rsLBH0o/0fstIzX1Lep9VxefWljK/SKCzygIA==} + shiki@4.3.1: + resolution: {integrity: sha512-oR+qDVi2OjX1tmDpyv+3KviX01KzO6Af+0NNnKnsp9491UEGz2YpxTuJboS/6VhYpTdqzmuJBuiTlrAWWJAssw==} + engines: {node: '>=20'} side-channel-list@1.0.1: resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} @@ -5203,8 +5233,8 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - tabbable@6.4.0: - resolution: {integrity: sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==} + tabbable@6.5.0: + resolution: {integrity: sha512-wieBHXygIm7OyQOu5hQlkk62/WyCFYGlWg7L6/ZCUZwx0o398Zkn4pVmMyfYhfMG8kGrj/Krt8eIk6UKC6VzwA==} tapable@2.3.2: resolution: {integrity: sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==} @@ -5547,49 +5577,6 @@ packages: '@babel/core': '>=7.29.6' vite: '>=7.3.2' - vite@8.1.2: - resolution: {integrity: sha512-6YYPbRXTxx6bRXmOn7XdnQAy5DQNHhDgtjhDHI13oe4pY93kkcdGJWxpGwOm++/Wh0QpQhDrpIoVMrmrsI5AGQ==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - peerDependencies: - '@types/node': ^20.19.0 || >=22.12.0 - '@vitejs/devtools': ^0.3.0 - esbuild: '>=0.28.1' - 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 - vite@8.1.3: resolution: {integrity: sha512-Ds+gBRbj0lwRO2Y5hwnUBdxSwlAve9LeRyU4sNnAr0ewW0gWF0n5bgXgUzbgZ49MV9BVUAQUFYVcDUcilUExMA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -5633,35 +5620,32 @@ packages: yaml: optional: true - vitepress@2.0.0-alpha.17: - resolution: {integrity: sha512-Z3VPUpwk/bHYqt1uMVOOK1/4xFiWQov1GNc2FvMdz6kvje4JRXEOngVI9C+bi5jeedMSHiA4dwKkff1NCvbZ9Q==} + vitepress@2.0.0-alpha.18: + resolution: {integrity: sha512-Lk1G2/QqSf+MwNLICl9fmzWOtoCEwjZoWgaQy41QvWTfcGpLE9XwJDbcCyES/9rj6R2g1zFqFvLVkYKLLDALFw==} hasBin: true peerDependencies: markdown-it-mathjax3: ^4 - oxc-minify: '*' postcss: ^8 peerDependenciesMeta: markdown-it-mathjax3: optional: true - oxc-minify: - optional: true postcss: optional: true - vitest@4.1.9: - resolution: {integrity: sha512-nE3/LEyc0z87uHYLZebqCUOaJr2hdtuPp7BQ4BosVFnfltxgAvMG08NyrSGlPpOUWvR27c5flSmYFTNr78L9GQ==} + vitest@4.1.10: + resolution: {integrity: sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.1.9 - '@vitest/browser-preview': 4.1.9 - '@vitest/browser-webdriverio': 4.1.9 - '@vitest/coverage-istanbul': 4.1.9 - '@vitest/coverage-v8': 4.1.9 - '@vitest/ui': 4.1.9 + '@vitest/browser-playwright': 4.1.10 + '@vitest/browser-preview': 4.1.10 + '@vitest/browser-webdriverio': 4.1.10 + '@vitest/coverage-istanbul': 4.1.10 + '@vitest/coverage-v8': 4.1.10 + '@vitest/ui': 4.1.10 happy-dom: '*' jsdom: '*' vite: '>=7.3.2' @@ -5693,8 +5677,8 @@ packages: resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} engines: {node: '>=0.10.0'} - vue@3.5.30: - resolution: {integrity: sha512-hTHLc6VNZyzzEH/l7PFGjpcTvUgiaPK5mdLkbjrTeWSRcEfxFrv56g/XckIYlE9ckuobsdwqd5mk2g1sBkMewg==} + vue@3.5.39: + resolution: {integrity: sha512-xmZCYabFGcirU8r0fTuvl/LICc1OU620rnqepaJDL/a141ZigkG7AyaxQLdqJ02ZRYzWe6YPaDHeQx7MfknQfA==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -6217,11 +6201,11 @@ snapshots: '@csstools/css-tokenizer@4.0.0': {} - '@docsearch/css@4.6.0': {} + '@docsearch/css@4.6.3': {} - '@docsearch/js@4.6.0': {} + '@docsearch/js@4.6.3': {} - '@docsearch/sidepanel-js@4.6.0': {} + '@docsearch/sidepanel-js@4.6.3': {} '@elastic/elasticsearch@9.4.2': dependencies: @@ -6249,11 +6233,22 @@ snapshots: tslib: 2.8.1 optional: true + '@emnapi/core@1.11.2': + dependencies: + '@emnapi/wasi-threads': 1.2.2 + tslib: 2.8.1 + optional: true + '@emnapi/runtime@1.11.1': dependencies: tslib: 2.8.1 optional: true + '@emnapi/runtime@1.11.2': + dependencies: + tslib: 2.8.1 + optional: true + '@emnapi/wasi-threads@1.2.2': dependencies: tslib: 2.8.1 @@ -6389,7 +6384,7 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@iconify-json/simple-icons@1.2.74': + '@iconify-json/simple-icons@1.2.89': dependencies: '@iconify/types': 2.0.0 @@ -6442,8 +6437,8 @@ snapshots: '@napi-rs/wasm-runtime@0.2.12': dependencies: - '@emnapi/core': 1.11.1 - '@emnapi/runtime': 1.11.1 + '@emnapi/core': 1.11.2 + '@emnapi/runtime': 1.11.2 '@tybys/wasm-util': 0.10.3 optional: true @@ -6518,68 +6513,68 @@ snapshots: '@opentelemetry/semantic-conventions@1.41.1': {} - '@oxc-minify/binding-android-arm-eabi@0.138.0': + '@oxc-minify/binding-android-arm-eabi@0.139.0': optional: true - '@oxc-minify/binding-android-arm64@0.138.0': + '@oxc-minify/binding-android-arm64@0.139.0': optional: true - '@oxc-minify/binding-darwin-arm64@0.138.0': + '@oxc-minify/binding-darwin-arm64@0.139.0': optional: true - '@oxc-minify/binding-darwin-x64@0.138.0': + '@oxc-minify/binding-darwin-x64@0.139.0': optional: true - '@oxc-minify/binding-freebsd-x64@0.138.0': + '@oxc-minify/binding-freebsd-x64@0.139.0': optional: true - '@oxc-minify/binding-linux-arm-gnueabihf@0.138.0': + '@oxc-minify/binding-linux-arm-gnueabihf@0.139.0': optional: true - '@oxc-minify/binding-linux-arm-musleabihf@0.138.0': + '@oxc-minify/binding-linux-arm-musleabihf@0.139.0': optional: true - '@oxc-minify/binding-linux-arm64-gnu@0.138.0': + '@oxc-minify/binding-linux-arm64-gnu@0.139.0': optional: true - '@oxc-minify/binding-linux-arm64-musl@0.138.0': + '@oxc-minify/binding-linux-arm64-musl@0.139.0': optional: true - '@oxc-minify/binding-linux-ppc64-gnu@0.138.0': + '@oxc-minify/binding-linux-ppc64-gnu@0.139.0': optional: true - '@oxc-minify/binding-linux-riscv64-gnu@0.138.0': + '@oxc-minify/binding-linux-riscv64-gnu@0.139.0': optional: true - '@oxc-minify/binding-linux-riscv64-musl@0.138.0': + '@oxc-minify/binding-linux-riscv64-musl@0.139.0': optional: true - '@oxc-minify/binding-linux-s390x-gnu@0.138.0': + '@oxc-minify/binding-linux-s390x-gnu@0.139.0': optional: true - '@oxc-minify/binding-linux-x64-gnu@0.138.0': + '@oxc-minify/binding-linux-x64-gnu@0.139.0': optional: true - '@oxc-minify/binding-linux-x64-musl@0.138.0': + '@oxc-minify/binding-linux-x64-musl@0.139.0': optional: true - '@oxc-minify/binding-openharmony-arm64@0.138.0': + '@oxc-minify/binding-openharmony-arm64@0.139.0': optional: true - '@oxc-minify/binding-wasm32-wasi@0.138.0': + '@oxc-minify/binding-wasm32-wasi@0.139.0': dependencies: '@emnapi/core': 1.11.1 '@emnapi/runtime': 1.11.1 '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) optional: true - '@oxc-minify/binding-win32-arm64-msvc@0.138.0': + '@oxc-minify/binding-win32-arm64-msvc@0.139.0': optional: true - '@oxc-minify/binding-win32-ia32-msvc@0.138.0': + '@oxc-minify/binding-win32-ia32-msvc@0.139.0': optional: true - '@oxc-minify/binding-win32-x64-msvc@0.138.0': + '@oxc-minify/binding-win32-x64-msvc@0.139.0': optional: true '@oxc-project/types@0.138.0': {} @@ -6594,10 +6589,12 @@ snapshots: '@radix-ui/primitive@1.1.4': {} - '@radix-ui/react-collection@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + '@radix-ui/primitive@1.1.5': {} + + '@radix-ui/react-collection@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-context': 1.1.4(@types/react@19.2.17)(react@19.2.7) + '@radix-ui/react-context': 1.2.0(@types/react@19.2.17)(react@19.2.7) '@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-slot': 1.3.0(@types/react@19.2.17)(react@19.2.7) react: 19.2.7 @@ -6618,17 +6615,23 @@ snapshots: optionalDependencies: '@types/react': 19.2.17 - '@radix-ui/react-dialog@1.1.18(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + '@radix-ui/react-context@1.2.0(@types/react@19.2.17)(react@19.2.7)': dependencies: - '@radix-ui/primitive': 1.1.4 + react: 19.2.7 + optionalDependencies: + '@types/react': 19.2.17 + + '@radix-ui/react-dialog@1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + dependencies: + '@radix-ui/primitive': 1.1.5 '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-context': 1.1.4(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-dismissable-layer': 1.1.14(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@radix-ui/react-context': 1.2.0(@types/react@19.2.17)(react@19.2.7) + '@radix-ui/react-dismissable-layer': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-focus-guards': 1.1.4(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-focus-scope': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@radix-ui/react-focus-scope': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-id': 1.1.2(@types/react@19.2.17)(react@19.2.7) '@radix-ui/react-portal': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@radix-ui/react-presence': 1.1.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@radix-ui/react-presence': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-slot': 1.3.0(@types/react@19.2.17)(react@19.2.7) '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.17)(react@19.2.7) @@ -6640,9 +6643,9 @@ snapshots: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-dismissable-layer@1.1.14(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + '@radix-ui/react-dismissable-layer@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: - '@radix-ui/primitive': 1.1.4 + '@radix-ui/primitive': 1.1.5 '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@19.2.7) '@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.17)(react@19.2.7) @@ -6659,7 +6662,7 @@ snapshots: optionalDependencies: '@types/react': 19.2.17 - '@radix-ui/react-focus-scope@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + '@radix-ui/react-focus-scope@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@19.2.7) '@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) @@ -6687,7 +6690,7 @@ snapshots: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-presence@1.1.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + '@radix-ui/react-presence@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.17)(react@19.2.7) react: 19.2.7 @@ -6727,15 +6730,15 @@ snapshots: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-toast@1.2.18(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + '@radix-ui/react-toast@1.2.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: - '@radix-ui/primitive': 1.1.4 - '@radix-ui/react-collection': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@radix-ui/primitive': 1.1.5 + '@radix-ui/react-collection': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-context': 1.1.4(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-dismissable-layer': 1.1.14(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@radix-ui/react-context': 1.2.0(@types/react@19.2.17)(react@19.2.7) + '@radix-ui/react-dismissable-layer': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-portal': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@radix-ui/react-presence': 1.1.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@radix-ui/react-presence': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.17)(react@19.2.7) '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.17)(react@19.2.7) @@ -6890,46 +6893,51 @@ snapshots: '@rolldown/binding-win32-x64-msvc@1.1.4': optional: true - '@rolldown/pluginutils@1.0.0-rc.2': {} - '@rolldown/pluginutils@1.0.1': {} '@rtsao/scc@1.1.0': {} '@rushstack/eslint-patch@1.16.1': {} - '@shikijs/core@3.23.0': + '@shikijs/core@4.3.1': dependencies: - '@shikijs/types': 3.23.0 + '@shikijs/primitive': 4.3.1 + '@shikijs/types': 4.3.1 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 - '@shikijs/engine-javascript@3.23.0': + '@shikijs/engine-javascript@4.3.1': dependencies: - '@shikijs/types': 3.23.0 + '@shikijs/types': 4.3.1 '@shikijs/vscode-textmate': 10.0.2 - oniguruma-to-es: 4.3.5 + oniguruma-to-es: 4.3.6 - '@shikijs/engine-oniguruma@3.23.0': + '@shikijs/engine-oniguruma@4.3.1': dependencies: - '@shikijs/types': 3.23.0 + '@shikijs/types': 4.3.1 '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/langs@3.23.0': + '@shikijs/langs@4.3.1': dependencies: - '@shikijs/types': 3.23.0 + '@shikijs/types': 4.3.1 - '@shikijs/themes@3.23.0': + '@shikijs/primitive@4.3.1': dependencies: - '@shikijs/types': 3.23.0 + '@shikijs/types': 4.3.1 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 - '@shikijs/transformers@3.23.0': + '@shikijs/themes@4.3.1': dependencies: - '@shikijs/core': 3.23.0 - '@shikijs/types': 3.23.0 + '@shikijs/types': 4.3.1 - '@shikijs/types@3.23.0': + '@shikijs/transformers@4.3.1': + dependencies: + '@shikijs/core': 4.3.1 + '@shikijs/types': 4.3.1 + + '@shikijs/types@4.3.1': dependencies: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -7255,14 +7263,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.62.1(@typescript-eslint/parser@8.62.1(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0)(typescript@6.0.3)': + '@typescript-eslint/eslint-plugin@8.63.0(@typescript-eslint/parser@8.63.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0)(typescript@6.0.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.62.1(eslint@10.6.0)(typescript@6.0.3) - '@typescript-eslint/scope-manager': 8.62.1 - '@typescript-eslint/type-utils': 8.62.1(eslint@10.6.0)(typescript@6.0.3) - '@typescript-eslint/utils': 8.62.1(eslint@10.6.0)(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.62.1 + '@typescript-eslint/parser': 8.63.0(eslint@10.6.0)(typescript@6.0.3) + '@typescript-eslint/scope-manager': 8.63.0 + '@typescript-eslint/type-utils': 8.63.0(eslint@10.6.0)(typescript@6.0.3) + '@typescript-eslint/utils': 8.63.0(eslint@10.6.0)(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.63.0 eslint: 10.6.0 ignore: 7.0.5 natural-compare: 1.4.0 @@ -7284,22 +7292,22 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.62.1(eslint@10.6.0)(typescript@6.0.3)': + '@typescript-eslint/parser@8.63.0(eslint@10.6.0)(typescript@6.0.3)': dependencies: - '@typescript-eslint/scope-manager': 8.62.1 - '@typescript-eslint/types': 8.62.1 - '@typescript-eslint/typescript-estree': 8.62.1(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.62.1 + '@typescript-eslint/scope-manager': 8.63.0 + '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/typescript-estree': 8.63.0(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.63.0 debug: 4.4.3(supports-color@8.1.1) eslint: 10.6.0 typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.62.1(typescript@6.0.3)': + '@typescript-eslint/project-service@8.63.0(typescript@6.0.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.62.1(typescript@6.0.3) - '@typescript-eslint/types': 8.62.1 + '@typescript-eslint/tsconfig-utils': 8.63.0(typescript@6.0.3) + '@typescript-eslint/types': 8.63.0 debug: 4.4.3(supports-color@8.1.1) typescript: 6.0.3 transitivePeerDependencies: @@ -7310,12 +7318,12 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/scope-manager@8.62.1': + '@typescript-eslint/scope-manager@8.63.0': dependencies: - '@typescript-eslint/types': 8.62.1 - '@typescript-eslint/visitor-keys': 8.62.1 + '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/visitor-keys': 8.63.0 - '@typescript-eslint/tsconfig-utils@8.62.1(typescript@6.0.3)': + '@typescript-eslint/tsconfig-utils@8.63.0(typescript@6.0.3)': dependencies: typescript: 6.0.3 @@ -7331,11 +7339,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.62.1(eslint@10.6.0)(typescript@6.0.3)': + '@typescript-eslint/type-utils@8.63.0(eslint@10.6.0)(typescript@6.0.3)': dependencies: - '@typescript-eslint/types': 8.62.1 - '@typescript-eslint/typescript-estree': 8.62.1(typescript@6.0.3) - '@typescript-eslint/utils': 8.62.1(eslint@10.6.0)(typescript@6.0.3) + '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/typescript-estree': 8.63.0(typescript@6.0.3) + '@typescript-eslint/utils': 8.63.0(eslint@10.6.0)(typescript@6.0.3) debug: 4.4.3(supports-color@8.1.1) eslint: 10.6.0 ts-api-utils: 2.5.0(typescript@6.0.3) @@ -7345,7 +7353,7 @@ snapshots: '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/types@8.62.1': {} + '@typescript-eslint/types@8.63.0': {} '@typescript-eslint/typescript-estree@7.18.0(typescript@6.0.3)': dependencies: @@ -7362,12 +7370,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.62.1(typescript@6.0.3)': + '@typescript-eslint/typescript-estree@8.63.0(typescript@6.0.3)': dependencies: - '@typescript-eslint/project-service': 8.62.1(typescript@6.0.3) - '@typescript-eslint/tsconfig-utils': 8.62.1(typescript@6.0.3) - '@typescript-eslint/types': 8.62.1 - '@typescript-eslint/visitor-keys': 8.62.1 + '@typescript-eslint/project-service': 8.63.0(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.63.0(typescript@6.0.3) + '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/visitor-keys': 8.63.0 debug: 4.4.3(supports-color@8.1.1) minimatch: 10.2.5 semver: 7.8.5 @@ -7388,12 +7396,12 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@8.62.1(eslint@10.6.0)(typescript@6.0.3)': + '@typescript-eslint/utils@8.63.0(eslint@10.6.0)(typescript@6.0.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.6.0) - '@typescript-eslint/scope-manager': 8.62.1 - '@typescript-eslint/types': 8.62.1 - '@typescript-eslint/typescript-estree': 8.62.1(typescript@6.0.3) + '@typescript-eslint/scope-manager': 8.63.0 + '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/typescript-estree': 8.63.0(typescript@6.0.3) eslint: 10.6.0 typescript: 6.0.3 transitivePeerDependencies: @@ -7404,9 +7412,9 @@ snapshots: '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.62.1': + '@typescript-eslint/visitor-keys@8.63.0': dependencies: - '@typescript-eslint/types': 8.62.1 + '@typescript-eslint/types': 8.63.0 eslint-visitor-keys: 5.0.1 '@typespec/ts-http-runtime@0.3.6': @@ -7417,7 +7425,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@ungap/structured-clone@1.3.0': {} + '@ungap/structured-clone@1.3.2': {} '@unrs/rspack-resolver-binding-darwin-arm64@1.3.0': optional: true @@ -7473,142 +7481,142 @@ snapshots: optionalDependencies: babel-plugin-react-compiler: 19.1.0-rc.3 - '@vitejs/plugin-vue@6.0.5(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0))(vue@3.5.30(typescript@6.0.3))': + '@vitejs/plugin-vue@6.0.7(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0))(vue@3.5.39(typescript@6.0.3))': dependencies: - '@rolldown/pluginutils': 1.0.0-rc.2 - vite: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0) - vue: 3.5.30(typescript@6.0.3) + '@rolldown/pluginutils': 1.0.1 + vite: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0) + vue: 3.5.39(typescript@6.0.3) - '@vitest/expect@4.1.9': + '@vitest/expect@4.1.10': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@vitest/spy': 4.1.9 - '@vitest/utils': 4.1.9 + '@vitest/spy': 4.1.10 + '@vitest/utils': 4.1.10 chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.9(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0))': + '@vitest/mocker@4.1.10(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0))': dependencies: - '@vitest/spy': 4.1.9 + '@vitest/spy': 4.1.10 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: vite: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0) - '@vitest/pretty-format@4.1.9': + '@vitest/pretty-format@4.1.10': dependencies: tinyrainbow: 3.1.0 - '@vitest/runner@4.1.9': + '@vitest/runner@4.1.10': dependencies: - '@vitest/utils': 4.1.9 + '@vitest/utils': 4.1.10 pathe: 2.0.3 - '@vitest/snapshot@4.1.9': + '@vitest/snapshot@4.1.10': dependencies: - '@vitest/pretty-format': 4.1.9 - '@vitest/utils': 4.1.9 + '@vitest/pretty-format': 4.1.10 + '@vitest/utils': 4.1.10 magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@4.1.9': {} + '@vitest/spy@4.1.10': {} - '@vitest/utils@4.1.9': + '@vitest/utils@4.1.10': dependencies: - '@vitest/pretty-format': 4.1.9 + '@vitest/pretty-format': 4.1.10 convert-source-map: 2.0.0 tinyrainbow: 3.1.0 - '@vue/compiler-core@3.5.30': + '@vue/compiler-core@3.5.39': dependencies: - '@babel/parser': 7.29.2 - '@vue/shared': 3.5.30 + '@babel/parser': 7.29.7 + '@vue/shared': 3.5.39 entities: 7.0.1 estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-dom@3.5.30': + '@vue/compiler-dom@3.5.39': dependencies: - '@vue/compiler-core': 3.5.30 - '@vue/shared': 3.5.30 + '@vue/compiler-core': 3.5.39 + '@vue/shared': 3.5.39 - '@vue/compiler-sfc@3.5.30': + '@vue/compiler-sfc@3.5.39': dependencies: - '@babel/parser': 7.29.2 - '@vue/compiler-core': 3.5.30 - '@vue/compiler-dom': 3.5.30 - '@vue/compiler-ssr': 3.5.30 - '@vue/shared': 3.5.30 + '@babel/parser': 7.29.7 + '@vue/compiler-core': 3.5.39 + '@vue/compiler-dom': 3.5.39 + '@vue/compiler-ssr': 3.5.39 + '@vue/shared': 3.5.39 estree-walker: 2.0.2 magic-string: 0.30.21 postcss: 8.5.16 source-map-js: 1.2.1 - '@vue/compiler-ssr@3.5.30': + '@vue/compiler-ssr@3.5.39': dependencies: - '@vue/compiler-dom': 3.5.30 - '@vue/shared': 3.5.30 + '@vue/compiler-dom': 3.5.39 + '@vue/shared': 3.5.39 - '@vue/devtools-api@8.1.0': + '@vue/devtools-api@8.1.5': dependencies: - '@vue/devtools-kit': 8.1.0 + '@vue/devtools-kit': 8.1.5 - '@vue/devtools-kit@8.1.0': + '@vue/devtools-kit@8.1.5': dependencies: - '@vue/devtools-shared': 8.1.0 + '@vue/devtools-shared': 8.1.5 birpc: 2.9.0 hookable: 5.5.3 perfect-debounce: 2.1.0 - '@vue/devtools-shared@8.1.0': {} + '@vue/devtools-shared@8.1.5': {} - '@vue/reactivity@3.5.30': + '@vue/reactivity@3.5.39': dependencies: - '@vue/shared': 3.5.30 + '@vue/shared': 3.5.39 - '@vue/runtime-core@3.5.30': + '@vue/runtime-core@3.5.39': dependencies: - '@vue/reactivity': 3.5.30 - '@vue/shared': 3.5.30 + '@vue/reactivity': 3.5.39 + '@vue/shared': 3.5.39 - '@vue/runtime-dom@3.5.30': + '@vue/runtime-dom@3.5.39': dependencies: - '@vue/reactivity': 3.5.30 - '@vue/runtime-core': 3.5.30 - '@vue/shared': 3.5.30 + '@vue/reactivity': 3.5.39 + '@vue/runtime-core': 3.5.39 + '@vue/shared': 3.5.39 csstype: 3.2.3 - '@vue/server-renderer@3.5.30(vue@3.5.30(typescript@6.0.3))': + '@vue/server-renderer@3.5.39(vue@3.5.39(typescript@6.0.3))': dependencies: - '@vue/compiler-ssr': 3.5.30 - '@vue/shared': 3.5.30 - vue: 3.5.30(typescript@6.0.3) + '@vue/compiler-ssr': 3.5.39 + '@vue/shared': 3.5.39 + vue: 3.5.39(typescript@6.0.3) - '@vue/shared@3.5.30': {} + '@vue/shared@3.5.39': {} - '@vueuse/core@14.2.1(vue@3.5.30(typescript@6.0.3))': + '@vueuse/core@14.3.0(vue@3.5.39(typescript@6.0.3))': dependencies: '@types/web-bluetooth': 0.0.21 - '@vueuse/metadata': 14.2.1 - '@vueuse/shared': 14.2.1(vue@3.5.30(typescript@6.0.3)) - vue: 3.5.30(typescript@6.0.3) + '@vueuse/metadata': 14.3.0 + '@vueuse/shared': 14.3.0(vue@3.5.39(typescript@6.0.3)) + vue: 3.5.39(typescript@6.0.3) - '@vueuse/integrations@14.2.1(change-case@5.4.4)(focus-trap@8.0.0)(jwt-decode@4.0.0)(vue@3.5.30(typescript@6.0.3))': + '@vueuse/integrations@14.3.0(change-case@5.4.4)(focus-trap@8.2.2)(jwt-decode@4.0.0)(vue@3.5.39(typescript@6.0.3))': dependencies: - '@vueuse/core': 14.2.1(vue@3.5.30(typescript@6.0.3)) - '@vueuse/shared': 14.2.1(vue@3.5.30(typescript@6.0.3)) - vue: 3.5.30(typescript@6.0.3) + '@vueuse/core': 14.3.0(vue@3.5.39(typescript@6.0.3)) + '@vueuse/shared': 14.3.0(vue@3.5.39(typescript@6.0.3)) + vue: 3.5.39(typescript@6.0.3) optionalDependencies: change-case: 5.4.4 - focus-trap: 8.0.0 + focus-trap: 8.2.2 jwt-decode: 4.0.0 - '@vueuse/metadata@14.2.1': {} + '@vueuse/metadata@14.3.0': {} - '@vueuse/shared@14.2.1(vue@3.5.30(typescript@6.0.3))': + '@vueuse/shared@14.3.0(vue@3.5.39(typescript@6.0.3))': dependencies: - vue: 3.5.30(typescript@6.0.3) + vue: 3.5.39(typescript@6.0.3) '@xmldom/xmldom@0.8.13': {} @@ -8316,7 +8324,7 @@ snapshots: es-errors@1.3.0: {} - es-module-lexer@2.1.0: {} + es-module-lexer@2.3.0: {} es-object-atoms@1.1.1: dependencies: @@ -8640,7 +8648,7 @@ snapshots: events@3.3.0: {} - expect-type@1.3.0: {} + expect-type@1.4.0: {} express-rate-limit@8.5.1(express@5.2.1): dependencies: @@ -8763,9 +8771,9 @@ snapshots: flatted@3.4.2: {} - focus-trap@8.0.0: + focus-trap@8.2.2: dependencies: - tabbable: 6.4.0 + tabbable: 6.5.0 fontkit@2.0.4: dependencies: @@ -8983,7 +8991,7 @@ snapshots: '@types/unist': 3.0.3 devlop: 1.1.0 hastscript: 9.0.1 - property-information: 7.1.0 + property-information: 7.2.0 vfile: 6.0.3 vfile-location: 5.0.3 web-namespaces: 2.0.1 @@ -9013,7 +9021,7 @@ snapshots: hast-util-whitespace: 3.0.0 html-void-elements: 3.0.0 mdast-util-to-hast: 13.2.1 - property-information: 7.1.0 + property-information: 7.2.0 space-separated-tokens: 2.0.2 stringify-entities: 4.0.4 zwitch: 2.0.4 @@ -9027,7 +9035,7 @@ snapshots: '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 hast-util-parse-selector: 4.0.0 - property-information: 7.1.0 + property-information: 7.2.0 space-separated-tokens: 2.0.2 he@1.2.0: {} @@ -9658,7 +9666,7 @@ snapshots: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.3.0 + '@ungap/structured-clone': 1.3.2 devlop: 1.1.0 micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 @@ -9934,11 +9942,11 @@ snapshots: dependencies: wrappy: 1.0.2 - oniguruma-parser@0.12.1: {} + oniguruma-parser@0.12.2: {} - oniguruma-to-es@4.3.5: + oniguruma-to-es@4.3.6: dependencies: - oniguruma-parser: 0.12.1 + oniguruma-parser: 0.12.2 regex: 6.1.0 regex-recursion: 6.0.2 @@ -10018,28 +10026,28 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 - oxc-minify@0.138.0: + oxc-minify@0.139.0: optionalDependencies: - '@oxc-minify/binding-android-arm-eabi': 0.138.0 - '@oxc-minify/binding-android-arm64': 0.138.0 - '@oxc-minify/binding-darwin-arm64': 0.138.0 - '@oxc-minify/binding-darwin-x64': 0.138.0 - '@oxc-minify/binding-freebsd-x64': 0.138.0 - '@oxc-minify/binding-linux-arm-gnueabihf': 0.138.0 - '@oxc-minify/binding-linux-arm-musleabihf': 0.138.0 - '@oxc-minify/binding-linux-arm64-gnu': 0.138.0 - '@oxc-minify/binding-linux-arm64-musl': 0.138.0 - '@oxc-minify/binding-linux-ppc64-gnu': 0.138.0 - '@oxc-minify/binding-linux-riscv64-gnu': 0.138.0 - '@oxc-minify/binding-linux-riscv64-musl': 0.138.0 - '@oxc-minify/binding-linux-s390x-gnu': 0.138.0 - '@oxc-minify/binding-linux-x64-gnu': 0.138.0 - '@oxc-minify/binding-linux-x64-musl': 0.138.0 - '@oxc-minify/binding-openharmony-arm64': 0.138.0 - '@oxc-minify/binding-wasm32-wasi': 0.138.0 - '@oxc-minify/binding-win32-arm64-msvc': 0.138.0 - '@oxc-minify/binding-win32-ia32-msvc': 0.138.0 - '@oxc-minify/binding-win32-x64-msvc': 0.138.0 + '@oxc-minify/binding-android-arm-eabi': 0.139.0 + '@oxc-minify/binding-android-arm64': 0.139.0 + '@oxc-minify/binding-darwin-arm64': 0.139.0 + '@oxc-minify/binding-darwin-x64': 0.139.0 + '@oxc-minify/binding-freebsd-x64': 0.139.0 + '@oxc-minify/binding-linux-arm-gnueabihf': 0.139.0 + '@oxc-minify/binding-linux-arm-musleabihf': 0.139.0 + '@oxc-minify/binding-linux-arm64-gnu': 0.139.0 + '@oxc-minify/binding-linux-arm64-musl': 0.139.0 + '@oxc-minify/binding-linux-ppc64-gnu': 0.139.0 + '@oxc-minify/binding-linux-riscv64-gnu': 0.139.0 + '@oxc-minify/binding-linux-riscv64-musl': 0.139.0 + '@oxc-minify/binding-linux-s390x-gnu': 0.139.0 + '@oxc-minify/binding-linux-x64-gnu': 0.139.0 + '@oxc-minify/binding-linux-x64-musl': 0.139.0 + '@oxc-minify/binding-openharmony-arm64': 0.139.0 + '@oxc-minify/binding-wasm32-wasi': 0.139.0 + '@oxc-minify/binding-win32-arm64-msvc': 0.139.0 + '@oxc-minify/binding-win32-ia32-msvc': 0.139.0 + '@oxc-minify/binding-win32-x64-msvc': 0.139.0 p-limit@3.1.0: dependencies: @@ -10158,6 +10166,8 @@ snapshots: picomatch@4.0.4: {} + picomatch@4.0.5: {} + playwright-core@1.61.1: {} playwright@1.61.1: @@ -10205,7 +10215,7 @@ snapshots: dependencies: is-promise: 1.0.1 - property-information@7.1.0: {} + property-information@7.2.0: {} proxy-addr@2.0.7: dependencies: @@ -10215,7 +10225,7 @@ snapshots: proxy-agent@6.5.0: dependencies: agent-base: 7.1.3 - debug: 4.4.1 + debug: 4.4.3(supports-color@8.1.1) http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 lru-cache: 7.18.3 @@ -10268,7 +10278,7 @@ snapshots: react: 19.2.7 scheduler: 0.27.0 - react-hook-form@7.80.0(react@19.2.7): + react-hook-form@7.81.0(react@19.2.7): dependencies: react: 19.2.7 @@ -10651,14 +10661,14 @@ snapshots: shebang-regex@3.0.0: {} - shiki@3.23.0: + shiki@4.3.1: dependencies: - '@shikijs/core': 3.23.0 - '@shikijs/engine-javascript': 3.23.0 - '@shikijs/engine-oniguruma': 3.23.0 - '@shikijs/langs': 3.23.0 - '@shikijs/themes': 3.23.0 - '@shikijs/types': 3.23.0 + '@shikijs/core': 4.3.1 + '@shikijs/engine-javascript': 4.3.1 + '@shikijs/engine-oniguruma': 4.3.1 + '@shikijs/langs': 4.3.1 + '@shikijs/themes': 4.3.1 + '@shikijs/types': 4.3.1 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -10907,7 +10917,7 @@ snapshots: symbol-tree@3.2.4: {} - tabbable@6.4.0: {} + tabbable@6.5.0: {} tapable@2.3.2: {} @@ -10995,7 +11005,7 @@ snapshots: ts-declaration-location@1.0.7(typescript@6.0.3): dependencies: - picomatch: 4.0.4 + picomatch: 4.0.5 typescript: 6.0.3 tsconfig-paths@3.15.0: @@ -11236,19 +11246,6 @@ snapshots: '@babel/core': 7.29.7 vite: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0) - vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0): - dependencies: - lightningcss: 1.32.0 - picomatch: 4.0.4 - postcss: 8.5.16 - rolldown: 1.1.4 - tinyglobby: 0.2.17 - optionalDependencies: - '@types/node': 26.1.0 - esbuild: 0.28.1 - fsevents: 2.3.3 - tsx: 4.23.0 - vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0): dependencies: lightningcss: 1.32.0 @@ -11262,29 +11259,28 @@ snapshots: fsevents: 2.3.3 tsx: 4.23.0 - vitepress@2.0.0-alpha.17(@types/node@26.1.0)(change-case@5.4.4)(esbuild@0.28.1)(jwt-decode@4.0.0)(oxc-minify@0.138.0)(postcss@8.5.16)(tsx@4.23.0)(typescript@6.0.3): + vitepress@2.0.0-alpha.18(@types/node@26.1.0)(change-case@5.4.4)(esbuild@0.28.1)(jwt-decode@4.0.0)(postcss@8.5.16)(tsx@4.23.0)(typescript@6.0.3): dependencies: - '@docsearch/css': 4.6.0 - '@docsearch/js': 4.6.0 - '@docsearch/sidepanel-js': 4.6.0 - '@iconify-json/simple-icons': 1.2.74 - '@shikijs/core': 3.23.0 - '@shikijs/transformers': 3.23.0 - '@shikijs/types': 3.23.0 + '@docsearch/css': 4.6.3 + '@docsearch/js': 4.6.3 + '@docsearch/sidepanel-js': 4.6.3 + '@iconify-json/simple-icons': 1.2.89 + '@shikijs/core': 4.3.1 + '@shikijs/transformers': 4.3.1 + '@shikijs/types': 4.3.1 '@types/markdown-it': 14.1.2 - '@vitejs/plugin-vue': 6.0.5(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0))(vue@3.5.30(typescript@6.0.3)) - '@vue/devtools-api': 8.1.0 - '@vue/shared': 3.5.30 - '@vueuse/core': 14.2.1(vue@3.5.30(typescript@6.0.3)) - '@vueuse/integrations': 14.2.1(change-case@5.4.4)(focus-trap@8.0.0)(jwt-decode@4.0.0)(vue@3.5.30(typescript@6.0.3)) - focus-trap: 8.0.0 + '@vitejs/plugin-vue': 6.0.7(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0))(vue@3.5.39(typescript@6.0.3)) + '@vue/devtools-api': 8.1.5 + '@vue/shared': 3.5.39 + '@vueuse/core': 14.3.0(vue@3.5.39(typescript@6.0.3)) + '@vueuse/integrations': 14.3.0(change-case@5.4.4)(focus-trap@8.2.2)(jwt-decode@4.0.0)(vue@3.5.39(typescript@6.0.3)) + focus-trap: 8.2.2 mark.js: 8.11.1 minisearch: 7.2.0 - shiki: 3.23.0 - vite: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0) - vue: 3.5.30(typescript@6.0.3) + shiki: 4.3.1 + vite: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0) + vue: 3.5.39(typescript@6.0.3) optionalDependencies: - oxc-minify: 0.138.0 postcss: 8.5.16 transitivePeerDependencies: - '@types/node' @@ -11312,21 +11308,21 @@ snapshots: - universal-cookie - yaml - vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.1.0)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0)): + vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.0)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0)): dependencies: - '@vitest/expect': 4.1.9 - '@vitest/mocker': 4.1.9(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0)) - '@vitest/pretty-format': 4.1.9 - '@vitest/runner': 4.1.9 - '@vitest/snapshot': 4.1.9 - '@vitest/spy': 4.1.9 - '@vitest/utils': 4.1.9 - es-module-lexer: 2.1.0 - expect-type: 1.3.0 + '@vitest/expect': 4.1.10 + '@vitest/mocker': 4.1.10(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0)) + '@vitest/pretty-format': 4.1.10 + '@vitest/runner': 4.1.10 + '@vitest/snapshot': 4.1.10 + '@vitest/spy': 4.1.10 + '@vitest/utils': 4.1.10 + es-module-lexer: 2.3.0 + expect-type: 1.4.0 magic-string: 0.30.21 obug: 2.1.3 pathe: 2.0.3 - picomatch: 4.0.4 + picomatch: 4.0.5 std-env: 4.1.0 tinybench: 2.9.0 tinyexec: 1.2.4 @@ -11343,13 +11339,13 @@ snapshots: void-elements@3.1.0: {} - vue@3.5.30(typescript@6.0.3): + vue@3.5.39(typescript@6.0.3): dependencies: - '@vue/compiler-dom': 3.5.30 - '@vue/compiler-sfc': 3.5.30 - '@vue/runtime-dom': 3.5.30 - '@vue/server-renderer': 3.5.30(vue@3.5.30(typescript@6.0.3)) - '@vue/shared': 3.5.30 + '@vue/compiler-dom': 3.5.39 + '@vue/compiler-sfc': 3.5.39 + '@vue/runtime-dom': 3.5.39 + '@vue/server-renderer': 3.5.39(vue@3.5.39(typescript@6.0.3)) + '@vue/shared': 3.5.39 optionalDependencies: typescript: 6.0.3 diff --git a/src/package.json b/src/package.json index fb3c92f1c..72ed7ece1 100644 --- a/src/package.json +++ b/src/package.json @@ -132,7 +132,7 @@ "split-grid": "^1.0.11", "supertest": "^7.2.2", "typescript": "^6.0.3", - "vitest": "^4.1.9" + "vitest": "^4.1.10" }, "engines": { "node": ">=24.0.0", From f65701eaafab31c9279a65279bbb726801e2e179 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Jul 2026 21:20:22 +0200 Subject: [PATCH 33/74] build(deps): bump mysql2 from 3.22.5 to 3.22.6 (#8031) Bumps [mysql2](https://github.com/sidorares/node-mysql2) from 3.22.5 to 3.22.6. - [Release notes](https://github.com/sidorares/node-mysql2/releases) - [Changelog](https://github.com/sidorares/node-mysql2/blob/master/Changelog.md) - [Commits](https://github.com/sidorares/node-mysql2/compare/v3.22.5...v3.22.6) --- updated-dependencies: - dependency-name: mysql2 dependency-version: 3.22.6 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 40 ++++++++++++++++++++-------------------- src/package.json | 2 +- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e7b9172cc..8be707119 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -166,7 +166,7 @@ importers: version: 4.23.0 ueberdb2: specifier: 6.1.15 - version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.5(@types/node@26.1.0))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.6(@types/node@26.1.0))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) devDependencies: '@types/node': specifier: ^26.1.0 @@ -290,8 +290,8 @@ importers: specifier: ^12.6.0 version: 12.6.0 mysql2: - specifier: ^3.22.5 - version: 3.22.5(@types/node@26.1.0) + specifier: ^3.22.6 + version: 3.22.6(@types/node@26.1.0) nano: specifier: ^11.0.6 version: 11.0.6 @@ -360,7 +360,7 @@ importers: version: 4.23.0 ueberdb2: specifier: 6.1.15 - version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.5(@types/node@26.1.0))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.6(@types/node@26.1.0))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) underscore: specifier: 1.13.8 version: 1.13.8 @@ -3609,8 +3609,8 @@ packages: typescript: optional: true - iconv-lite@0.7.2: - resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} + iconv-lite@0.7.3: + resolution: {integrity: sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==} engines: {node: '>=0.10.0'} ieee754@1.2.1: @@ -4270,8 +4270,8 @@ packages: engines: {node: '>=18.19.0'} hasBin: true - mysql2@3.22.5: - resolution: {integrity: sha512-95uZ2TrPWAZdwpB3vvvDbmEMcNG8yIeNCyu6GUcr/QnWEE/wXm7+mhOCsdQfWQDTV7qYT/PDUZ4U4UPP4AsXqQ==} + mysql2@3.22.6: + resolution: {integrity: sha512-fPKmeDGUzvFP7bMD5SASlJ5zIgvCC4hbanTmhbUlEmhyrY1hR4Hi3xLOWgTd3luYjLVifx6uGvMNJ2m/LlqEpg==} engines: {node: '>= 8.0'} peerDependencies: '@types/node': '>= 8' @@ -5128,8 +5128,8 @@ packages: sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} - sql-escaper@1.3.3: - resolution: {integrity: sha512-BsTCV265VpTp8tm1wyIm1xqQCS+Q9NHx2Sr+WcnUrgLrQ6yiDIvHYJV5gHxsj1lMBy2zm5twLaZao8Jd+S8JJw==} + sql-escaper@1.4.0: + resolution: {integrity: sha512-Ti/Zx9J3aITMYUMFhCKbkplQjyi7Kk2SyYXp+rzrkyKZetIy19XbQtVZ+0ZR5aVm/178tIJ6+aVvBqXkH+Xs7w==} engines: {bun: '>=1.0.0', deno: '>=2.0.0', node: '>=12.0.0'} stable-hash@0.0.5: @@ -7803,7 +7803,7 @@ snapshots: content-type: 1.0.5 debug: 4.4.3(supports-color@8.1.1) http-errors: 2.0.1 - iconv-lite: 0.7.2 + iconv-lite: 0.7.3 on-finished: 2.4.1 qs: 6.15.2 raw-body: 3.0.2 @@ -9153,7 +9153,7 @@ snapshots: optionalDependencies: typescript: 6.0.3 - iconv-lite@0.7.2: + iconv-lite@0.7.3: dependencies: safer-buffer: 2.1.2 @@ -9810,17 +9810,17 @@ snapshots: transitivePeerDependencies: - supports-color - mysql2@3.22.5(@types/node@26.1.0): + mysql2@3.22.6(@types/node@26.1.0): dependencies: '@types/node': 26.1.0 aws-ssl-profiles: 1.1.2 denque: 2.1.0 generate-function: 2.3.1 - iconv-lite: 0.7.2 + iconv-lite: 0.7.3 long: 5.3.2 lru.min: 1.1.4 named-placeholders: 1.1.6 - sql-escaper: 1.3.3 + sql-escaper: 1.4.0 named-placeholders@1.1.6: dependencies: @@ -10270,7 +10270,7 @@ snapshots: dependencies: bytes: 3.1.2 http-errors: 2.0.1 - iconv-lite: 0.7.2 + iconv-lite: 0.7.3 unpipe: 1.0.0 react-dom@19.2.7(react@19.2.7): @@ -10796,7 +10796,7 @@ snapshots: sprintf-js@1.1.3: {} - sql-escaper@1.3.3: {} + sql-escaper@1.4.0: {} stable-hash@0.0.5: {} @@ -10943,7 +10943,7 @@ snapshots: '@js-joda/core': 6.0.1 '@types/node': 26.0.1 bl: 6.1.6 - iconv-lite: 0.7.2 + iconv-lite: 0.7.3 js-md4: 0.3.2 native-duplexpair: 1.0.0 sprintf-js: 1.1.3 @@ -11084,7 +11084,7 @@ snapshots: typescript@6.0.3: {} - ueberdb2@6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.5(@types/node@26.1.0))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)): + ueberdb2@6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.6(@types/node@26.1.0))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)): optionalDependencies: '@elastic/elasticsearch': 9.4.2 async: 3.2.6 @@ -11092,7 +11092,7 @@ snapshots: dirty-ts: 1.1.8 mongodb: 7.4.0 mssql: 12.6.0 - mysql2: 3.22.5(@types/node@26.1.0) + mysql2: 3.22.6(@types/node@26.1.0) nano: 11.0.6 pg: 8.22.0 redis: 6.1.0(@opentelemetry/api@1.9.1) diff --git a/src/package.json b/src/package.json index 72ed7ece1..6f49b529f 100644 --- a/src/package.json +++ b/src/package.json @@ -62,7 +62,7 @@ "mime-types": "^3.0.2", "mongodb": "^7.4.0", "mssql": "^12.6.0", - "mysql2": "^3.22.5", + "mysql2": "^3.22.6", "nano": "^11.0.6", "nodemailer": "^9.0.3", "oidc-provider": "9.8.6", From 24e0c44d919747dae3575a5d2132f38dfc23a511 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Jul 2026 21:20:31 +0200 Subject: [PATCH 34/74] build(deps): bump oidc-provider from 9.8.6 to 9.9.0 (#8030) Bumps [oidc-provider](https://github.com/panva/node-oidc-provider) from 9.8.6 to 9.9.0. - [Release notes](https://github.com/panva/node-oidc-provider/releases) - [Changelog](https://github.com/panva/node-oidc-provider/blob/main/CHANGELOG.md) - [Commits](https://github.com/panva/node-oidc-provider/compare/v9.8.6...v9.9.0) --- updated-dependencies: - dependency-name: oidc-provider dependency-version: 9.9.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 26 +++++++++++++++++--------- src/package.json | 2 +- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8be707119..36d39c0b7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -299,8 +299,8 @@ importers: specifier: ^9.0.3 version: 9.0.3 oidc-provider: - specifier: 9.8.6 - version: 9.8.6 + specifier: 9.9.0 + version: 9.9.0 openapi-backend: specifier: ^5.18.0 version: 5.18.0 @@ -1026,8 +1026,8 @@ packages: resolution: {integrity: sha512-x/iUDjcS90W69PryLDIMgFyV21YLTnG9zOpPXS7Bkt2b8AsY3zZsIpOLBkYr9fBcF3HbkKaER5hOBZLfpLgYNw==} engines: {node: '>= 14.0.0'} - '@koa/router@15.6.0': - resolution: {integrity: sha512-iEOXlvGIBqSNkGXrg0XtMARAOm5zA24oedXxiTGEkrD4JgwVjfRDddCQvW1s4WEcwDYvyecRbf8BikXsuEEj8w==} + '@koa/router@15.7.0': + resolution: {integrity: sha512-WaAlk4TOl/O0rhTpOR0l052gz03syPMmI6Pe2gd7v3ubjfv5UcSGcnb0Y/J5NNC/ln+5FiUqPJTc/a15I+XqAA==} engines: {node: '>= 20'} peerDependencies: koa: ^2.0.0 || ^3.0.0 @@ -3613,6 +3613,10 @@ packages: resolution: {integrity: sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==} engines: {node: '>=0.10.0'} + iconv-lite@0.7.3: + resolution: {integrity: sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==} + engines: {node: '>=0.10.0'} + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -4388,8 +4392,8 @@ packages: resolution: {integrity: sha512-9miFgM2OFba7hB+pRgvtV84pYTBaoTHohvmIgiRt6dRIzbwEOIaNaP+dIlGs2fNFoB0SeISs0Jz5WFVRid6Xyg==} engines: {node: '>=12.20.0'} - oidc-provider@9.8.6: - resolution: {integrity: sha512-jodnMKbwfMbV5qUFnbCxtnrdRztJJubJbw/7HTokIJSiHm1JT7pU4G83sD/bPkvZnFDdv5POB/kJU5uGG3ek4g==} + oidc-provider@9.9.0: + resolution: {integrity: sha512-RZVcul1BMSjQLaEbD9AYXLZYrWe7gW3n96akMqQC91Z9wmAHrsYKaUUutzxoYNTQj8UlQdRqtD5F+EqnXy7wGQ==} on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} @@ -6421,7 +6425,7 @@ snapshots: dependencies: vary: 1.1.2 - '@koa/router@15.6.0(koa@3.2.1)': + '@koa/router@15.7.0(koa@3.2.1)': dependencies: debug: 4.4.3(supports-color@8.1.1) http-errors: 2.0.1 @@ -9157,6 +9161,10 @@ snapshots: dependencies: safer-buffer: 2.1.2 + iconv-lite@0.7.3: + dependencies: + safer-buffer: 2.1.2 + ieee754@1.2.1: {} ignore@5.3.2: {} @@ -9917,10 +9925,10 @@ snapshots: obug@2.1.3: {} - oidc-provider@9.8.6: + oidc-provider@9.9.0: dependencies: '@koa/cors': 5.0.0 - '@koa/router': 15.6.0(koa@3.2.1) + '@koa/router': 15.7.0(koa@3.2.1) debug: 4.4.3(supports-color@8.1.1) eta: 4.6.0 jose: 6.2.3 diff --git a/src/package.json b/src/package.json index 6f49b529f..9a290e85a 100644 --- a/src/package.json +++ b/src/package.json @@ -65,7 +65,7 @@ "mysql2": "^3.22.6", "nano": "^11.0.6", "nodemailer": "^9.0.3", - "oidc-provider": "9.8.6", + "oidc-provider": "9.9.0", "openapi-backend": "^5.18.0", "pdfkit": "^0.19.1", "pg": "^8.22.0", From 173dbb344801ea0bbb64e316bf69de473adee4d6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Jul 2026 21:20:58 +0200 Subject: [PATCH 35/74] build(deps): bump undici from 8.6.0 to 8.7.0 (#8028) Bumps [undici](https://github.com/nodejs/undici) from 8.6.0 to 8.7.0. - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](https://github.com/nodejs/undici/compare/v8.6.0...v8.7.0) --- updated-dependencies: - dependency-name: undici dependency-version: 8.7.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 10 +++++----- src/package.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 36d39c0b7..a8002c436 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -365,8 +365,8 @@ importers: specifier: 1.13.8 version: 1.13.8 undici: - specifier: ^8.6.0 - version: 8.6.0 + specifier: ^8.7.0 + version: 8.7.0 wtfnode: specifier: ^0.10.1 version: 0.10.1 @@ -5469,8 +5469,8 @@ packages: resolution: {integrity: sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==} engines: {node: '>=20.18.1'} - undici@8.6.0: - resolution: {integrity: sha512-l2FlC6I510GawyEd1qgcE/okihKrzy+BRTEBlu6T0fdbM9m5yxtIH5Oa3ysRsH0zC4EhmWUEaSDsy2QngBeRlw==} + undici@8.7.0: + resolution: {integrity: sha512-N7iQtfyLhIMOFgQubvmLV26svHpO0bqKnAiWotTQCVKCmWrcGbBotPuW1x+xwYZ2VHdSTVUfPQQnlEt1/LouTQ==} engines: {node: '>=22.19.0'} unicode-properties@1.4.1: @@ -11129,7 +11129,7 @@ snapshots: undici@7.28.0: {} - undici@8.6.0: {} + undici@8.7.0: {} unicode-properties@1.4.1: dependencies: diff --git a/src/package.json b/src/package.json index 9a290e85a..634049336 100644 --- a/src/package.json +++ b/src/package.json @@ -87,7 +87,7 @@ "tsx": "4.23.0", "ueberdb2": "6.1.15", "underscore": "1.13.8", - "undici": "^8.6.0", + "undici": "^8.7.0", "wtfnode": "^0.10.1" }, "bin": { From 9c48900092fc7973994dfe7220c199fce1690b28 Mon Sep 17 00:00:00 2001 From: SamTV12345 <40429738+samtv12345@users.noreply.github.com> Date: Tue, 7 Jul 2026 21:27:35 +0200 Subject: [PATCH 36/74] chore: updated lockfile --- package.json | 1 - pnpm-lock.yaml | 383 ++++++++++++++++++++++--------------------------- 2 files changed, 171 insertions(+), 213 deletions(-) diff --git a/package.json b/package.json index b8a44bf13..c375de53d 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,6 @@ "node": ">=24.0.0", "pnpm": ">=11.1.2" }, - "packageManager": "pnpm@11.1.2", "repository": { "type": "git", "url": "https://github.com/ether/etherpad.git" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a8002c436..07f08d4d7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -166,7 +166,7 @@ importers: version: 4.23.0 ueberdb2: specifier: 6.1.15 - version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.6(@types/node@26.1.0))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.7.0)(mysql2@3.22.6(@types/node@26.1.0))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) devDependencies: '@types/node': specifier: ^26.1.0 @@ -288,7 +288,7 @@ importers: version: 7.4.0 mssql: specifier: ^12.6.0 - version: 12.6.0 + version: 12.7.0 mysql2: specifier: ^3.22.6 version: 3.22.6(@types/node@26.1.0) @@ -360,7 +360,7 @@ importers: version: 4.23.0 ueberdb2: specifier: 6.1.15 - version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.6(@types/node@26.1.0))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.7.0)(mysql2@3.22.6(@types/node@26.1.0))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) underscore: specifier: 1.13.8 version: 1.13.8 @@ -527,8 +527,8 @@ packages: '@asamuzakjp/nwsapi@2.3.9': resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==} - '@azure-rest/core-client@2.7.0': - resolution: {integrity: sha512-rL0lJqh1E8HLXNgjIw8cRyGAV/v+m6p1xRu/8OhsnmN8XHhwkyYJkAoGM+zrew96v7jZYPmVfy7pv7v4Iccfsg==} + '@azure-rest/core-client@2.6.0': + resolution: {integrity: sha512-iuFKDm8XPzNxPfRjhyU5/xKZmcRDzSuEghXDHHk4MjBV/wFL34GmYVBZnn9wmuoLBeS1qAw9ceMdaeJBPcB1QQ==} engines: {node: '>=20.0.0'} '@azure/abort-controller@2.1.2': @@ -539,8 +539,8 @@ packages: resolution: {integrity: sha512-ykRMW8PjVAn+RS6ww5cmK9U2CyH9p4Q88YJwvUslfuMmN98w/2rdGRLPqJYObapBCdzBVeDgYWdJnFPFb7qzpg==} engines: {node: '>=20.0.0'} - '@azure/core-client@1.10.2': - resolution: {integrity: sha512-1D2LpsU7y9xrqKjdIbsB7PlrRePw0xsVV8p+AKTlzITrWmscajryfJCdDJB/oGwvDI5HmRo04eMMADB67uwAwQ==} + '@azure/core-client@1.10.1': + resolution: {integrity: sha512-Nh5PhEOeY6PrnxNPsEHRr9eimxLwgLlpmguQaHKBinFYA/RU9+kOYVOQqOrTsCL+KSxrLLl1gD8Dk5BFW/7l/w==} engines: {node: '>=20.0.0'} '@azure/core-lro@2.7.2': @@ -551,8 +551,8 @@ packages: resolution: {integrity: sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA==} engines: {node: '>=18.0.0'} - '@azure/core-rest-pipeline@1.24.0': - resolution: {integrity: sha512-PpLsoDQ3AMmKZ0VU+0GrmqMxgp/sExjlVm4R+nLWngeoEGAzOIPVifaxKGU5gMv+nWELUoHfvrolWD+ZS/nFJg==} + '@azure/core-rest-pipeline@1.23.0': + resolution: {integrity: sha512-Evs1INHo+jUjwHi1T6SG6Ua/LHOQBCLuKEEE6efIpt4ZOoNonaT1kP32GoOcdNDbfqsD2445CPri3MubBy5DEQ==} engines: {node: '>=20.0.0'} '@azure/core-tracing@1.3.1': @@ -579,16 +579,16 @@ packages: resolution: {integrity: sha512-fCqPIfOcLE+CGqGPd66c8bZpwAji98tZ4JI9i/mlTNTlsIWslCfpg48s/ypyLxZTump5sypjrKn2/kY7q8oAbA==} engines: {node: '>=20.0.0'} - '@azure/msal-browser@5.15.0': - resolution: {integrity: sha512-2NYT6v+eeQn8kmNddr9LnbXSvXbVELpmFMmfFvtRxD7I/5+5GlkMlncApeuRFj+mY6C9syOwQip1a0Y+TIbyiA==} + '@azure/msal-browser@5.11.0': + resolution: {integrity: sha512-zkGNYS3TwY8lUpPIafAmsFCYZbgFixY9y/LZB9GUg0IILoHTqpN26j5OrkL1AQThh/YdZsawe4iWXfp85lFVxg==} engines: {node: '>=0.8.0'} - '@azure/msal-common@16.10.0': - resolution: {integrity: sha512-iYtjpanlv6963Jprs0MvzIap07V+QhultjQctfbEDQCflsDAEeO3R7XnVA5gk30fhoBFLdgJT7VqO0TGsEsN9w==} + '@azure/msal-common@16.6.2': + resolution: {integrity: sha512-hQjjsekAjB00cM1EmatWJlzhEoK2Qhz7Rj5gvM6tYf8iL7RM3tkxlpU9fG0+ofkulzg9AEEA6dIEnSmDr5ZqUA==} engines: {node: '>=0.8.0'} - '@azure/msal-node@5.3.0': - resolution: {integrity: sha512-fXtJX811pX8y8QlrQqBSH6+plvWyKZDI0IxkheAcyAw9OtcpXyFivmTC7eGUqutLWaDlKXuQ3yOESD4zAmkjHg==} + '@azure/msal-node@5.2.2': + resolution: {integrity: sha512-toS+2AePxqyzb0YOKttDOOiSl3jrkK9aiqIvpurpis0O34QcIS5gToqrgT39p04Dpxw3YoUU0lxJKTpSFFfA6Q==} engines: {node: '>=20'} '@babel/code-frame@7.29.0': @@ -760,15 +760,9 @@ packages: '@emnapi/core@1.11.1': resolution: {integrity: sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==} - '@emnapi/core@1.11.2': - resolution: {integrity: sha512-TC8MkTuZUtcTSiFeuC0ksCh9QIJ5+F21MvZ4Wn4ORfYaFJ/0dsiudv5tVkejgwZlwQ39jL9WWDe2lz8x0WglOA==} - '@emnapi/runtime@1.11.1': resolution: {integrity: sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==} - '@emnapi/runtime@1.11.2': - resolution: {integrity: sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA==} - '@emnapi/wasi-threads@1.2.2': resolution: {integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==} @@ -1026,8 +1020,8 @@ packages: resolution: {integrity: sha512-x/iUDjcS90W69PryLDIMgFyV21YLTnG9zOpPXS7Bkt2b8AsY3zZsIpOLBkYr9fBcF3HbkKaER5hOBZLfpLgYNw==} engines: {node: '>= 14.0.0'} - '@koa/router@15.7.0': - resolution: {integrity: sha512-WaAlk4TOl/O0rhTpOR0l052gz03syPMmI6Pe2gd7v3ubjfv5UcSGcnb0Y/J5NNC/ln+5FiUqPJTc/a15I+XqAA==} + '@koa/router@15.6.0': + resolution: {integrity: sha512-iEOXlvGIBqSNkGXrg0XtMARAOm5zA24oedXxiTGEkrD4JgwVjfRDddCQvW1s4WEcwDYvyecRbf8BikXsuEEj8w==} engines: {node: '>= 20'} peerDependencies: koa: ^2.0.0 || ^3.0.0 @@ -1744,6 +1738,9 @@ packages: '@tootallnate/quickjs-emscripten@0.23.0': resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} + '@tybys/wasm-util@0.10.2': + resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==} + '@tybys/wasm-util@0.10.3': resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==} @@ -1881,8 +1878,8 @@ packages: '@types/node@18.19.130': resolution: {integrity: sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==} - '@types/node@26.0.1': - resolution: {integrity: sha512-fc3KiUoBt6kie0N9bIW3E47vZsuaMf0PM2AaUpLCLT0s/LvX1nxAim6Fc049cNxODPpGm6qRAuUOB86SkRuPQw==} + '@types/node@26.0.0': + resolution: {integrity: sha512-vf2YFi1iY9lHGwNJMs01biZFbKJkrZR1T6/MlzjhJLPdntOHLhTrDSnSVcdtvjihi4VQNlrFRIxLsDBlQpAipA==} '@types/node@26.1.0': resolution: {integrity: sha512-O0A1G3xPGy4w7AgQdAQYUlQ+BKk2Oovw8eRpofyp5KdBZULnbe+WqaOVNrm705SHphCiG4XHsACrSmPu1f+Kgw==} @@ -2078,12 +2075,13 @@ packages: resolution: {integrity: sha512-UexrHGnGTpbuQHct2ExOc2ZcFbGUS9FOesCxxqdBGcpI1BxYu/LZ6U8Aq6/72XtF/qRBk9nhuGHFJIXXMhPMdw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typespec/ts-http-runtime@0.3.6': - resolution: {integrity: sha512-jIXhD0eWQ1JA6ln/5Dltyx22UxWNrw0hZmhy2rlv6m6KgF7kplHx3g0fzi09lNmTJQRR91OlemYp3xFnvDK9og==} + '@typespec/ts-http-runtime@0.3.5': + resolution: {integrity: sha512-yURCknZhvywvQItHMMmFSo+fq5arCUIyz/CVk7jD89MSai7dkaX8ufjCWp3NttLojoTVbcE72ri+be/TnEbMHw==} engines: {node: '>=20.0.0'} - '@ungap/structured-clone@1.3.2': - resolution: {integrity: sha512-5jsZFwgR5rTdKwidH9Qmat75RKwqfpKlWWB1frDkljN127mwqBu8K0PYo7/hFpF03IEJpfVPpCQDY/eDx3iHvA==} + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + deprecated: Potential CWE-502 - Update to 1.3.1 or higher '@unrs/rspack-resolver-binding-darwin-arm64@1.3.0': resolution: {integrity: sha512-EcjI0Hh2HiNOM0B9UuYH1PfLWgE6/SBQ4dKoHXWNloERfveha/n6aUZSBThtPGnJenmdfaJYXXZtqyNbWtJAFw==} @@ -2503,8 +2501,8 @@ packages: brace-expansion@1.1.15: resolution: {integrity: sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==} - brace-expansion@5.0.7: - resolution: {integrity: sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==} + brace-expansion@5.0.6: + resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} engines: {node: 18 || 20 || >=22} braces@3.0.3: @@ -2528,8 +2526,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - bson@7.3.1: - resolution: {integrity: sha512-h/C0qe6857pQhcSJHLfsR1uYGj98Ge3wKAD3Ed9KqH3wcVh+BM4Jq4xISD7vs9OPuT07n+q3QQVjslJ286j6ag==} + bson@7.2.0: + resolution: {integrity: sha512-YCEo7KjMlbNlyHhz7zAZNDpIpQbd+wOEHJYezv0nMYTn4x31eIUM2yomNNubclAt63dObUzKHWsBLJ9QcZNSnQ==} engines: {node: '>=20.19.0'} buffer-equal-constant-time@1.0.1: @@ -2999,8 +2997,8 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-module-lexer@2.3.0: - resolution: {integrity: sha512-KLdwQm2NvGLDkQDCGvmiQrhkd0JbMzXthwQAUgWjQuQdBLFa3eiBP5arXZyA+f8x+x7OXgud6bq2rxjGtHV2tw==} + es-module-lexer@2.1.0: + resolution: {integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==} es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} @@ -3242,8 +3240,8 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} - expect-type@1.4.0: - resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==} + expect-type@1.3.0: + resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} engines: {node: '>=12.0.0'} express-rate-limit@8.5.1: @@ -3279,8 +3277,8 @@ packages: fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - fast-uri@3.1.3: - resolution: {integrity: sha512-i70LwGWUduXqzicKXWshooq+sWL1K3WUU5rKZNG/0i3a1OSoX3HqhH5WbWwTmqWfor4urUakGPiRQcleRZTwOg==} + fast-uri@3.1.2: + resolution: {integrity: sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==} fastq@1.20.1: resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} @@ -3609,12 +3607,8 @@ packages: typescript: optional: true - iconv-lite@0.7.3: - resolution: {integrity: sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==} - engines: {node: '>=0.10.0'} - - iconv-lite@0.7.3: - resolution: {integrity: sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==} + iconv-lite@0.7.2: + resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} engines: {node: '>=0.10.0'} ieee754@1.2.1: @@ -3849,10 +3843,6 @@ packages: resolution: {integrity: sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==} hasBin: true - js-yaml@5.2.0: - resolution: {integrity: sha512-YeLUMlvR4Ou1B119LIaM0r65JvbOBooJDc9yEu0dClb/uSC5P4FrLU8OCCz/HXWvtPoIrR0dRzABTjo1sTN9Bw==} - hasBin: true - jsdom@29.1.1: resolution: {integrity: sha512-ECi4Fi2f7BdJtUKTflYRTiaMxIB0O6zfR1fX0GXpUrf6flp8QIYn1UT20YQqdSOfk2dfkCwS8LAFoJDEppNK5Q==} engines: {node: ^20.19.0 || ^22.13.0 || >=24.0.0} @@ -4269,8 +4259,8 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - mssql@12.6.0: - resolution: {integrity: sha512-shOPombtihqeQ/URNsdkAebOqjeSSpFaTgZ4kO+XdMU8QvfAGzZ8lfB7AliakWhM8U+/AgOOPHV+jHW67UJlPQ==} + mssql@12.7.0: + resolution: {integrity: sha512-J6SJKXi1jYbhHjjooLNtPnX7+s3cq5IJ701Wgy/UW1SXRpgFlJJsYi3IPve9RVgCUkq0Cqv2aaaSJ4IXtIF3mg==} engines: {node: '>=18.19.0'} hasBin: true @@ -4293,13 +4283,13 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@3.3.15: - resolution: {integrity: sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==} + nanoid@3.3.12: + resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@5.1.16: - resolution: {integrity: sha512-kVrnsrJqMR8+oLJnGEmSWw9BivK5mt7H3FZatVRjrc5wGqFYuBxX1yG7+A7Gi5AefkX6t/oCkizcQgpu0cY1dQ==} + nanoid@5.1.11: + resolution: {integrity: sha512-v+KEsUv2ps74PaSKv0gHTxTCgMXOIfBEbaqa6w6ISIGC7ZsvHN4N9oJ8d4cmf0n5oTzQz2SLmThbQWhjd/8eKg==} engines: {node: ^18 || >=20} hasBin: true @@ -4581,10 +4571,6 @@ packages: resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} - picomatch@4.0.5: - resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} - engines: {node: '>=12'} - playwright-core@1.61.1: resolution: {integrity: sha512-h7Qlt6m4REp25qvIdvbDtVmD4LqVXfpRxhORv9L0jzETM05p4fuPJ3dKyuSXQxDSbXnmS79HAgi9589lGSpLkg==} engines: {node: '>=18'} @@ -4606,6 +4592,10 @@ packages: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} + postcss@8.5.15: + resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==} + engines: {node: ^10 || ^12 || >=14} + postcss@8.5.16: resolution: {integrity: sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==} engines: {node: ^10 || ^12 || >=14} @@ -4644,8 +4634,8 @@ packages: promise@1.3.0: resolution: {integrity: sha512-R9WrbTF3EPkVtWjp7B7umQGVndpsi+rsDAfrR4xAALQpFLa/+2OriecLhawxzvii2gd9+DZFwROWDuUUaqS5yA==} - property-information@7.2.0: - resolution: {integrity: sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==} + property-information@7.1.0: + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} @@ -4669,10 +4659,6 @@ packages: resolution: {integrity: sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw==} engines: {node: '>=0.6'} - qs@6.15.3: - resolution: {integrity: sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==} - engines: {node: '>=0.6'} - queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -5061,10 +5047,6 @@ packages: resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} - side-channel@1.1.1: - resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==} - engines: {node: '>= 0.4'} - siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -5248,16 +5230,16 @@ packages: resolution: {integrity: sha512-56adEpPMouktRlBLXiaYFFzZ/3+JXa8P9n7WbR+ibIjtviN55mEaOkiysCnPnWm+7kkui1Dn8J9l+g6zV8731w==} engines: {node: '>=18'} - tarn@3.1.0: - resolution: {integrity: sha512-QDihlHbXxQ4SnuQcRd1TPNBHUYo/hafDRDP82COYSVfRcx/3qnfGDkn1WFjozVl+AYr8ZyDKSQ/kIgHH1ri1yg==} + tarn@3.0.2: + resolution: {integrity: sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==} engines: {node: '>=8.0.0'} tdigest@0.1.2: resolution: {integrity: sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==} - tedious@19.2.2: - resolution: {integrity: sha512-ITsLV/XXXAuJ/+pgnod4lcJH83WPK7+y2aqOwK/ERoC4zX73wfRIVc7BofuHCqDTqpd6j1RwTBtjKNuuOLEvfw==} - engines: {node: '>=18.17'} + tedious@20.0.0: + resolution: {integrity: sha512-bTR0aou0Ghucf0ytvZUJjnKHGKDV8tT57jPYtEkSpfTWFe++4uR1wxJLQ4mh5wlSvAYXzmgBxbI0vaE56qigXw==} + engines: {node: '>=22'} tiny-inflate@1.0.3: resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} @@ -5465,8 +5447,8 @@ packages: undici-types@8.3.0: resolution: {integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==} - undici@7.28.0: - resolution: {integrity: sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==} + undici@7.27.2: + resolution: {integrity: sha512-uZsKNuzQxDMUY6M3pIMvy5tvlGmtq8XJ2oLAkfRKGNu+1VQAIvLy2xIVG5ATZl5wDXl/tddByAWCizRbOme+TA==} engines: {node: '>=20.18.1'} undici@8.7.0: @@ -5890,7 +5872,7 @@ snapshots: dependencies: '@jsdevtools/ono': 7.1.3 '@types/json-schema': 7.0.15 - js-yaml: 5.2.0 + js-yaml: 4.2.0 '@asamuzakjp/css-color@5.1.11': dependencies: @@ -5912,13 +5894,13 @@ snapshots: '@asamuzakjp/nwsapi@2.3.9': {} - '@azure-rest/core-client@2.7.0': + '@azure-rest/core-client@2.6.0': dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.10.1 - '@azure/core-rest-pipeline': 1.24.0 + '@azure/core-rest-pipeline': 1.23.0 '@azure/core-tracing': 1.3.1 - '@typespec/ts-http-runtime': 0.3.6 + '@typespec/ts-http-runtime': 0.3.5 tslib: 2.8.1 transitivePeerDependencies: - supports-color @@ -5935,11 +5917,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@azure/core-client@1.10.2': + '@azure/core-client@1.10.1': dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.10.1 - '@azure/core-rest-pipeline': 1.24.0 + '@azure/core-rest-pipeline': 1.23.0 '@azure/core-tracing': 1.3.1 '@azure/core-util': 1.13.1 '@azure/logger': 1.3.0 @@ -5960,14 +5942,14 @@ snapshots: dependencies: tslib: 2.8.1 - '@azure/core-rest-pipeline@1.24.0': + '@azure/core-rest-pipeline@1.23.0': dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.10.1 '@azure/core-tracing': 1.3.1 '@azure/core-util': 1.13.1 '@azure/logger': 1.3.0 - '@typespec/ts-http-runtime': 0.3.6 + '@typespec/ts-http-runtime': 0.3.5 tslib: 2.8.1 transitivePeerDependencies: - supports-color @@ -5979,7 +5961,7 @@ snapshots: '@azure/core-util@1.13.1': dependencies: '@azure/abort-controller': 2.1.2 - '@typespec/ts-http-runtime': 0.3.6 + '@typespec/ts-http-runtime': 0.3.5 tslib: 2.8.1 transitivePeerDependencies: - supports-color @@ -5988,13 +5970,13 @@ snapshots: dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.10.1 - '@azure/core-client': 1.10.2 - '@azure/core-rest-pipeline': 1.24.0 + '@azure/core-client': 1.10.1 + '@azure/core-rest-pipeline': 1.23.0 '@azure/core-tracing': 1.3.1 '@azure/core-util': 1.13.1 '@azure/logger': 1.3.0 - '@azure/msal-browser': 5.15.0 - '@azure/msal-node': 5.3.0 + '@azure/msal-browser': 5.11.0 + '@azure/msal-node': 5.2.2 open: 10.2.0 tslib: 2.8.1 transitivePeerDependencies: @@ -6002,10 +5984,10 @@ snapshots: '@azure/keyvault-common@2.1.0': dependencies: - '@azure-rest/core-client': 2.7.0 + '@azure-rest/core-client': 2.6.0 '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.10.1 - '@azure/core-rest-pipeline': 1.24.0 + '@azure/core-rest-pipeline': 1.23.0 '@azure/core-tracing': 1.3.1 '@azure/core-util': 1.13.1 '@azure/logger': 1.3.0 @@ -6015,12 +5997,12 @@ snapshots: '@azure/keyvault-keys@4.10.2': dependencies: - '@azure-rest/core-client': 2.7.0 + '@azure-rest/core-client': 2.6.0 '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.10.1 '@azure/core-lro': 2.7.2 '@azure/core-paging': 1.6.2 - '@azure/core-rest-pipeline': 1.24.0 + '@azure/core-rest-pipeline': 1.23.0 '@azure/core-tracing': 1.3.1 '@azure/core-util': 1.13.1 '@azure/keyvault-common': 2.1.0 @@ -6031,20 +6013,20 @@ snapshots: '@azure/logger@1.3.0': dependencies: - '@typespec/ts-http-runtime': 0.3.6 + '@typespec/ts-http-runtime': 0.3.5 tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@azure/msal-browser@5.15.0': + '@azure/msal-browser@5.11.0': dependencies: - '@azure/msal-common': 16.10.0 + '@azure/msal-common': 16.6.2 - '@azure/msal-common@16.10.0': {} + '@azure/msal-common@16.6.2': {} - '@azure/msal-node@5.3.0': + '@azure/msal-node@5.2.2': dependencies: - '@azure/msal-common': 16.10.0 + '@azure/msal-common': 16.6.2 jsonwebtoken: 9.0.3 '@babel/code-frame@7.29.0': @@ -6227,7 +6209,7 @@ snapshots: ms: 2.1.3 secure-json-parse: 4.1.0 tslib: 2.8.1 - undici: 7.28.0 + undici: 7.27.2 transitivePeerDependencies: - supports-color @@ -6237,22 +6219,11 @@ snapshots: tslib: 2.8.1 optional: true - '@emnapi/core@1.11.2': - dependencies: - '@emnapi/wasi-threads': 1.2.2 - tslib: 2.8.1 - optional: true - '@emnapi/runtime@1.11.1': dependencies: tslib: 2.8.1 optional: true - '@emnapi/runtime@1.11.2': - dependencies: - tslib: 2.8.1 - optional: true - '@emnapi/wasi-threads@1.2.2': dependencies: tslib: 2.8.1 @@ -6425,7 +6396,7 @@ snapshots: dependencies: vary: 1.1.2 - '@koa/router@15.7.0(koa@3.2.1)': + '@koa/router@15.6.0(koa@3.2.1)': dependencies: debug: 4.4.3(supports-color@8.1.1) http-errors: 2.0.1 @@ -6441,9 +6412,9 @@ snapshots: '@napi-rs/wasm-runtime@0.2.12': dependencies: - '@emnapi/core': 1.11.2 - '@emnapi/runtime': 1.11.2 - '@tybys/wasm-util': 0.10.3 + '@emnapi/core': 1.11.1 + '@emnapi/runtime': 1.11.1 + '@tybys/wasm-util': 0.10.2 optional: true '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': @@ -6997,6 +6968,11 @@ snapshots: '@tootallnate/quickjs-emscripten@0.23.0': {} + '@tybys/wasm-util@0.10.2': + dependencies: + tslib: 2.8.1 + optional: true + '@tybys/wasm-util@0.10.3': dependencies: tslib: 2.8.1 @@ -7004,14 +6980,14 @@ snapshots: '@types/accepts@1.3.7': dependencies: - '@types/node': 26.0.1 + '@types/node': 26.0.0 '@types/async@3.2.25': {} '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 26.0.1 + '@types/node': 26.0.0 '@types/chai@5.2.3': dependencies: @@ -7020,7 +6996,7 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 26.0.1 + '@types/node': 26.0.0 '@types/content-disposition@0.5.9': {} @@ -7035,15 +7011,15 @@ snapshots: '@types/connect': 3.4.38 '@types/express': 5.0.6 '@types/keygrip': 1.0.6 - '@types/node': 26.0.1 + '@types/node': 26.0.0 '@types/cors@2.8.19': dependencies: - '@types/node': 26.0.1 + '@types/node': 26.0.0 '@types/cross-spawn@6.0.6': dependencies: - '@types/node': 26.0.1 + '@types/node': 26.0.0 '@types/debug@4.1.12': dependencies: @@ -7059,7 +7035,7 @@ snapshots: '@types/express-serve-static-core@5.1.0': dependencies: - '@types/node': 26.0.1 + '@types/node': 26.0.0 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 1.2.1 @@ -7076,11 +7052,11 @@ snapshots: '@types/formidable@3.5.1': dependencies: - '@types/node': 26.0.1 + '@types/node': 26.0.0 '@types/fs-extra@9.0.13': dependencies: - '@types/node': 26.0.1 + '@types/node': 26.0.0 '@types/hast@3.0.4': dependencies: @@ -7096,7 +7072,7 @@ snapshots: '@types/jsdom@28.0.3': dependencies: - '@types/node': 26.0.1 + '@types/node': 26.0.0 '@types/tough-cookie': 4.0.5 parse5: 8.0.1 undici-types: 7.24.5 @@ -7108,7 +7084,7 @@ snapshots: '@types/jsonwebtoken@9.0.10': dependencies: '@types/ms': 2.1.0 - '@types/node': 26.0.1 + '@types/node': 26.0.0 '@types/keygrip@1.0.6': {} @@ -7125,7 +7101,7 @@ snapshots: '@types/http-errors': 2.0.5 '@types/keygrip': 1.0.6 '@types/koa-compose': 3.2.8 - '@types/node': 26.0.1 + '@types/node': 26.0.0 '@types/linkify-it@5.0.0': {} @@ -7152,14 +7128,14 @@ snapshots: '@types/node-fetch@2.6.12': dependencies: - '@types/node': 26.0.1 + '@types/node': 26.0.0 form-data: 4.0.6 '@types/node@18.19.130': dependencies: undici-types: 5.26.5 - '@types/node@26.0.1': + '@types/node@26.0.0': dependencies: undici-types: 8.3.0 @@ -7169,17 +7145,17 @@ snapshots: '@types/nodemailer@8.0.1': dependencies: - '@types/node': 26.0.1 + '@types/node': 26.0.0 '@types/oidc-provider@9.5.0': dependencies: '@types/keygrip': 1.0.6 '@types/koa': 3.0.0 - '@types/node': 26.0.1 + '@types/node': 26.0.0 '@types/pdfkit@0.17.6': dependencies: - '@types/node': 26.0.1 + '@types/node': 26.0.0 '@types/qs@6.14.0': {} @@ -7195,18 +7171,18 @@ snapshots: '@types/readable-stream@4.0.23': dependencies: - '@types/node': 26.0.1 + '@types/node': 26.0.0 '@types/semver@7.7.1': {} '@types/send@1.2.1': dependencies: - '@types/node': 26.0.1 + '@types/node': 26.0.0 '@types/serve-static@2.2.0': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 26.0.1 + '@types/node': 26.0.0 '@types/sinon@22.0.0': dependencies: @@ -7218,7 +7194,7 @@ snapshots: dependencies: '@types/cookiejar': 2.1.5 '@types/methods': 1.1.4 - '@types/node': 26.0.1 + '@types/node': 26.0.0 form-data: 4.0.6 '@types/supertest@7.2.0': @@ -7228,7 +7204,7 @@ snapshots: '@types/tar@6.1.13': dependencies: - '@types/node': 26.0.1 + '@types/node': 26.0.0 minipass: 4.2.8 '@types/tough-cookie@4.0.5': {} @@ -7421,7 +7397,7 @@ snapshots: '@typescript-eslint/types': 8.63.0 eslint-visitor-keys: 5.0.1 - '@typespec/ts-http-runtime@0.3.6': + '@typespec/ts-http-runtime@0.3.5': dependencies: http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 @@ -7429,7 +7405,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@ungap/structured-clone@1.3.2': {} + '@ungap/structured-clone@1.3.0': {} '@unrs/rspack-resolver-binding-darwin-arm64@1.3.0': optional: true @@ -7554,7 +7530,7 @@ snapshots: '@vue/shared': 3.5.39 estree-walker: 2.0.2 magic-string: 0.30.21 - postcss: 8.5.16 + postcss: 8.5.15 source-map-js: 1.2.1 '@vue/compiler-ssr@3.5.39': @@ -7664,7 +7640,7 @@ snapshots: ajv@8.20.0: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.1.3 + fast-uri: 3.1.2 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -7807,7 +7783,7 @@ snapshots: content-type: 1.0.5 debug: 4.4.3(supports-color@8.1.1) http-errors: 2.0.1 - iconv-lite: 0.7.3 + iconv-lite: 0.7.2 on-finished: 2.4.1 qs: 6.15.2 raw-body: 3.0.2 @@ -7820,7 +7796,7 @@ snapshots: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@5.0.7: + brace-expansion@5.0.6: dependencies: balanced-match: 4.0.4 @@ -7848,7 +7824,7 @@ snapshots: node-releases: 2.0.38 update-browserslist-db: 1.2.3(browserslist@4.28.2) - bson@7.3.1: {} + bson@7.2.0: {} buffer-equal-constant-time@1.0.1: {} @@ -8226,7 +8202,7 @@ snapshots: engine.io@6.6.5: dependencies: '@types/cors': 2.8.19 - '@types/node': 26.0.1 + '@types/node': 26.0.0 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 @@ -8328,7 +8304,7 @@ snapshots: es-errors@1.3.0: {} - es-module-lexer@2.3.0: {} + es-module-lexer@2.1.0: {} es-object-atoms@1.1.1: dependencies: @@ -8406,10 +8382,10 @@ snapshots: '@rushstack/eslint-patch': 1.16.1 '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0)(typescript@6.0.3) '@typescript-eslint/parser': 7.18.0(eslint@10.6.0)(typescript@6.0.3) - eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0)(eslint@10.6.0) + eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0) eslint-plugin-cypress: 2.15.2(eslint@10.6.0) eslint-plugin-eslint-comments: 3.2.0(eslint@10.6.0) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1)(eslint@10.6.0) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0))(eslint@10.6.0) eslint-plugin-mocha: 10.5.0(eslint@10.6.0) eslint-plugin-n: 17.24.0(eslint@10.6.0)(typescript@6.0.3) eslint-plugin-prefer-arrow: 1.2.3(eslint@10.6.0) @@ -8430,7 +8406,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0)(eslint@10.6.0): + eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3(supports-color@8.1.1) @@ -8441,18 +8417,18 @@ snapshots: stable-hash: 0.0.5 tinyglobby: 0.2.17 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1)(eslint@10.6.0) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0))(eslint@10.6.0) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1)(eslint@10.6.0): + eslint-module-utils@2.12.1(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0))(eslint@10.6.0): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 7.18.0(eslint@10.6.0)(typescript@6.0.3) eslint: 10.6.0 eslint-import-resolver-node: 0.3.10 - eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0)(eslint@10.6.0) + eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0) transitivePeerDependencies: - supports-color @@ -8474,7 +8450,7 @@ snapshots: eslint: 10.6.0 ignore: 5.3.2 - eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1)(eslint@10.6.0): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0))(eslint@10.6.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -8485,7 +8461,7 @@ snapshots: doctrine: 2.1.0 eslint: 10.6.0 eslint-import-resolver-node: 0.3.10 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1)(eslint@10.6.0) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0))(eslint@10.6.0) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -8652,7 +8628,7 @@ snapshots: events@3.3.0: {} - expect-type@1.4.0: {} + expect-type@1.3.0: {} express-rate-limit@8.5.1(express@5.2.1): dependencies: @@ -8723,7 +8699,7 @@ snapshots: fast-safe-stringify@2.1.1: {} - fast-uri@3.1.3: {} + fast-uri@3.1.2: {} fastq@1.20.1: dependencies: @@ -8995,7 +8971,7 @@ snapshots: '@types/unist': 3.0.3 devlop: 1.1.0 hastscript: 9.0.1 - property-information: 7.2.0 + property-information: 7.1.0 vfile: 6.0.3 vfile-location: 5.0.3 web-namespaces: 2.0.1 @@ -9025,7 +9001,7 @@ snapshots: hast-util-whitespace: 3.0.0 html-void-elements: 3.0.0 mdast-util-to-hast: 13.2.1 - property-information: 7.2.0 + property-information: 7.1.0 space-separated-tokens: 2.0.2 stringify-entities: 4.0.4 zwitch: 2.0.4 @@ -9039,7 +9015,7 @@ snapshots: '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 hast-util-parse-selector: 4.0.0 - property-information: 7.2.0 + property-information: 7.1.0 space-separated-tokens: 2.0.2 he@1.2.0: {} @@ -9157,11 +9133,7 @@ snapshots: optionalDependencies: typescript: 6.0.3 - iconv-lite@0.7.3: - dependencies: - safer-buffer: 2.1.2 - - iconv-lite@0.7.3: + iconv-lite@0.7.2: dependencies: safer-buffer: 2.1.2 @@ -9195,7 +9167,7 @@ snapshots: dependencies: es-errors: 1.3.0 hasown: 2.0.3 - side-channel: 1.1.1 + side-channel: 1.1.0 ip-address@10.2.0: {} @@ -9365,10 +9337,6 @@ snapshots: dependencies: argparse: 2.0.1 - js-yaml@5.2.0: - dependencies: - argparse: 2.0.1 - jsdom@29.1.1(@noble/hashes@1.8.0): dependencies: '@asamuzakjp/css-color': 5.1.11 @@ -9386,7 +9354,7 @@ snapshots: saxes: 6.0.0 symbol-tree: 3.2.4 tough-cookie: 6.0.1 - undici: 7.28.0 + undici: 7.27.2 w3c-xmlserializer: 5.0.0 webidl-conversions: 8.0.1 whatwg-mimetype: 5.0.0 @@ -9674,7 +9642,7 @@ snapshots: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.3.2 + '@ungap/structured-clone': 1.3.0 devlop: 1.1.0 micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 @@ -9741,7 +9709,7 @@ snapshots: minimatch@10.2.5: dependencies: - brace-expansion: 5.0.7 + brace-expansion: 5.0.6 minimatch@3.1.5: dependencies: @@ -9749,7 +9717,7 @@ snapshots: minimatch@5.1.9: dependencies: - brace-expansion: 5.0.7 + brace-expansion: 5.0.6 minimist@1.2.8: {} @@ -9801,20 +9769,20 @@ snapshots: mongodb@7.4.0: dependencies: '@mongodb-js/saslprep': 1.4.11 - bson: 7.3.1 + bson: 7.2.0 mongodb-connection-string-url: 7.0.1 ms@2.0.0: {} ms@2.1.3: {} - mssql@12.6.0: + mssql@12.7.0: dependencies: '@tediousjs/connection-string': 1.1.0 commander: 11.1.0 debug: 4.4.3(supports-color@8.1.1) - tarn: 3.1.0 - tedious: 19.2.2 + tarn: 3.0.2 + tedious: 20.0.0 transitivePeerDependencies: - supports-color @@ -9824,7 +9792,7 @@ snapshots: aws-ssl-profiles: 1.1.2 denque: 2.1.0 generate-function: 2.3.1 - iconv-lite: 0.7.3 + iconv-lite: 0.7.2 long: 5.3.2 lru.min: 1.1.4 named-placeholders: 1.1.6 @@ -9838,9 +9806,9 @@ snapshots: nanoid@3.3.11: {} - nanoid@3.3.15: {} + nanoid@3.3.12: {} - nanoid@5.1.16: {} + nanoid@5.1.11: {} native-duplexpair@1.0.0: {} @@ -9928,13 +9896,13 @@ snapshots: oidc-provider@9.9.0: dependencies: '@koa/cors': 5.0.0 - '@koa/router': 15.7.0(koa@3.2.1) + '@koa/router': 15.6.0(koa@3.2.1) debug: 4.4.3(supports-color@8.1.1) eta: 4.6.0 jose: 6.2.3 jsesc: 3.1.0 koa: 3.2.1 - nanoid: 5.1.16 + nanoid: 5.1.11 quick-lru: 7.3.0 raw-body: 3.0.2 transitivePeerDependencies: @@ -9976,7 +9944,7 @@ snapshots: mock-json-schema: 1.1.2 openapi-schema-validator: 12.1.3 openapi-types: 12.1.3 - qs: 6.15.3 + qs: 6.15.2 openapi-fetch@0.17.0: dependencies: @@ -10174,8 +10142,6 @@ snapshots: picomatch@4.0.4: {} - picomatch@4.0.5: {} - playwright-core@1.61.1: {} playwright@1.61.1: @@ -10192,9 +10158,15 @@ snapshots: possible-typed-array-names@1.1.0: {} + postcss@8.5.15: + dependencies: + nanoid: 3.3.12 + picocolors: 1.1.1 + source-map-js: 1.2.1 + postcss@8.5.16: dependencies: - nanoid: 3.3.15 + nanoid: 3.3.12 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -10223,7 +10195,7 @@ snapshots: dependencies: is-promise: 1.0.1 - property-information@7.2.0: {} + property-information@7.1.0: {} proxy-addr@2.0.7: dependencies: @@ -10253,11 +10225,6 @@ snapshots: dependencies: side-channel: 1.1.0 - qs@6.15.3: - dependencies: - es-define-property: 1.0.1 - side-channel: 1.1.1 - queue-microtask@1.2.3: {} queue@6.0.2: @@ -10278,7 +10245,7 @@ snapshots: dependencies: bytes: 3.1.2 http-errors: 2.0.1 - iconv-lite: 0.7.3 + iconv-lite: 0.7.2 unpipe: 1.0.0 react-dom@19.2.7(react@19.2.7): @@ -10708,14 +10675,6 @@ snapshots: side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 - side-channel@1.1.1: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - side-channel-list: 1.0.1 - side-channel-map: 1.0.1 - side-channel-weakmap: 1.0.2 - siginfo@2.0.0: {} signal-exit@3.0.7: {} @@ -10937,21 +10896,21 @@ snapshots: minizlib: 3.1.0 yallist: 5.0.0 - tarn@3.1.0: {} + tarn@3.0.2: {} tdigest@0.1.2: dependencies: bintrees: 1.0.2 - tedious@19.2.2: + tedious@20.0.0: dependencies: '@azure/core-auth': 1.10.1 '@azure/identity': 4.13.1 '@azure/keyvault-keys': 4.10.2 '@js-joda/core': 6.0.1 - '@types/node': 26.0.1 + '@types/node': 26.0.0 bl: 6.1.6 - iconv-lite: 0.7.3 + iconv-lite: 0.7.2 js-md4: 0.3.2 native-duplexpair: 1.0.0 sprintf-js: 1.1.3 @@ -11013,7 +10972,7 @@ snapshots: ts-declaration-location@1.0.7(typescript@6.0.3): dependencies: - picomatch: 4.0.5 + picomatch: 4.0.4 typescript: 6.0.3 tsconfig-paths@3.15.0: @@ -11092,14 +11051,14 @@ snapshots: typescript@6.0.3: {} - ueberdb2@6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.6.0)(mysql2@3.22.6(@types/node@26.1.0))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)): + ueberdb2@6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.7.0)(mysql2@3.22.6(@types/node@26.1.0))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)): optionalDependencies: '@elastic/elasticsearch': 9.4.2 async: 3.2.6 cassandra-driver: 4.8.0 dirty-ts: 1.1.8 mongodb: 7.4.0 - mssql: 12.6.0 + mssql: 12.7.0 mysql2: 3.22.6(@types/node@26.1.0) nano: 11.0.6 pg: 8.22.0 @@ -11127,7 +11086,7 @@ snapshots: undici-types@8.3.0: {} - undici@7.28.0: {} + undici@7.27.2: {} undici@8.7.0: {} @@ -11325,12 +11284,12 @@ snapshots: '@vitest/snapshot': 4.1.10 '@vitest/spy': 4.1.10 '@vitest/utils': 4.1.10 - es-module-lexer: 2.3.0 - expect-type: 1.4.0 + es-module-lexer: 2.1.0 + expect-type: 1.3.0 magic-string: 0.30.21 obug: 2.1.3 pathe: 2.0.3 - picomatch: 4.0.5 + picomatch: 4.0.4 std-env: 4.1.0 tinybench: 2.9.0 tinyexec: 1.2.4 From ce27525d976c9356f0fdd8f8ceb065f701a8f965 Mon Sep 17 00:00:00 2001 From: SamTV12345 <40429738+samtv12345@users.noreply.github.com> Date: Tue, 7 Jul 2026 21:31:25 +0200 Subject: [PATCH 37/74] chore: reinstall lockfile --- package.json | 1 + pnpm-lock.yaml | 1439 ++++++++++++++++++++----------------------- pnpm-workspace.yaml | 12 + 3 files changed, 689 insertions(+), 763 deletions(-) diff --git a/package.json b/package.json index c375de53d..cfdb24cd6 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "node": ">=24.0.0", "pnpm": ">=11.1.2" }, + "packageManager": "pnpm@11.10.0", "repository": { "type": "git", "url": "https://github.com/ether/etherpad.git" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 07f08d4d7..e78db8e60 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -145,7 +145,7 @@ importers: version: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0) vite-plugin-babel: specifier: ^1.7.3 - version: 1.7.3(@babel/core@7.29.7)(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0)) + version: 1.7.3(@babel/core@8.0.1)(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0)) zustand: specifier: ^5.0.14 version: 5.0.14(@types/react@19.2.17)(react@19.2.7)(use-sync-external-store@1.6.0(react@19.2.7)) @@ -166,7 +166,7 @@ importers: version: 4.23.0 ueberdb2: specifier: 6.1.15 - version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.7.0)(mysql2@3.22.6(@types/node@26.1.0))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.22.6(@types/node@26.1.0))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) devDependencies: '@types/node': specifier: ^26.1.0 @@ -201,7 +201,7 @@ importers: version: 3.2.6 cassandra-driver: specifier: ^4.8.0 - version: 4.8.0 + version: 4.9.0 cookie-parser: specifier: ^1.4.7 version: 1.4.7 @@ -225,7 +225,7 @@ importers: version: 5.2.1 express-rate-limit: specifier: ^8.5.1 - version: 8.5.1(express@5.2.1) + version: 8.5.2(express@5.2.1) express-session: specifier: ^1.19.0 version: 1.19.0 @@ -285,7 +285,7 @@ importers: version: 3.0.2 mongodb: specifier: ^7.4.0 - version: 7.4.0 + version: 7.4.0(socks@2.8.9) mssql: specifier: ^12.6.0 version: 12.7.0 @@ -360,7 +360,7 @@ importers: version: 4.23.0 ueberdb2: specifier: 6.1.15 - version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.7.0)(mysql2@3.22.6(@types/node@26.1.0))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.22.6(@types/node@26.1.0))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) underscore: specifier: 1.13.8 version: 1.13.8 @@ -527,8 +527,8 @@ packages: '@asamuzakjp/nwsapi@2.3.9': resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==} - '@azure-rest/core-client@2.6.0': - resolution: {integrity: sha512-iuFKDm8XPzNxPfRjhyU5/xKZmcRDzSuEghXDHHk4MjBV/wFL34GmYVBZnn9wmuoLBeS1qAw9ceMdaeJBPcB1QQ==} + '@azure-rest/core-client@2.7.0': + resolution: {integrity: sha512-rL0lJqh1E8HLXNgjIw8cRyGAV/v+m6p1xRu/8OhsnmN8XHhwkyYJkAoGM+zrew96v7jZYPmVfy7pv7v4Iccfsg==} engines: {node: '>=20.0.0'} '@azure/abort-controller@2.1.2': @@ -539,8 +539,8 @@ packages: resolution: {integrity: sha512-ykRMW8PjVAn+RS6ww5cmK9U2CyH9p4Q88YJwvUslfuMmN98w/2rdGRLPqJYObapBCdzBVeDgYWdJnFPFb7qzpg==} engines: {node: '>=20.0.0'} - '@azure/core-client@1.10.1': - resolution: {integrity: sha512-Nh5PhEOeY6PrnxNPsEHRr9eimxLwgLlpmguQaHKBinFYA/RU9+kOYVOQqOrTsCL+KSxrLLl1gD8Dk5BFW/7l/w==} + '@azure/core-client@1.10.2': + resolution: {integrity: sha512-1D2LpsU7y9xrqKjdIbsB7PlrRePw0xsVV8p+AKTlzITrWmscajryfJCdDJB/oGwvDI5HmRo04eMMADB67uwAwQ==} engines: {node: '>=20.0.0'} '@azure/core-lro@2.7.2': @@ -551,8 +551,8 @@ packages: resolution: {integrity: sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA==} engines: {node: '>=18.0.0'} - '@azure/core-rest-pipeline@1.23.0': - resolution: {integrity: sha512-Evs1INHo+jUjwHi1T6SG6Ua/LHOQBCLuKEEE6efIpt4ZOoNonaT1kP32GoOcdNDbfqsD2445CPri3MubBy5DEQ==} + '@azure/core-rest-pipeline@1.24.0': + resolution: {integrity: sha512-PpLsoDQ3AMmKZ0VU+0GrmqMxgp/sExjlVm4R+nLWngeoEGAzOIPVifaxKGU5gMv+nWELUoHfvrolWD+ZS/nFJg==} engines: {node: '>=20.0.0'} '@azure/core-tracing@1.3.1': @@ -579,139 +579,117 @@ packages: resolution: {integrity: sha512-fCqPIfOcLE+CGqGPd66c8bZpwAji98tZ4JI9i/mlTNTlsIWslCfpg48s/ypyLxZTump5sypjrKn2/kY7q8oAbA==} engines: {node: '>=20.0.0'} - '@azure/msal-browser@5.11.0': - resolution: {integrity: sha512-zkGNYS3TwY8lUpPIafAmsFCYZbgFixY9y/LZB9GUg0IILoHTqpN26j5OrkL1AQThh/YdZsawe4iWXfp85lFVxg==} + '@azure/msal-browser@5.16.0': + resolution: {integrity: sha512-Wc75FGnQgYpsm5jsOqn1H8AXsh8vXruA6vwip1nhjrJxwby7juxKAIVLr7csepmHiwdZGr6EwI5BlSc3PizEtQ==} engines: {node: '>=0.8.0'} - '@azure/msal-common@16.6.2': - resolution: {integrity: sha512-hQjjsekAjB00cM1EmatWJlzhEoK2Qhz7Rj5gvM6tYf8iL7RM3tkxlpU9fG0+ofkulzg9AEEA6dIEnSmDr5ZqUA==} + '@azure/msal-common@16.11.0': + resolution: {integrity: sha512-UikJOtMwkFpZNzTH6Dqk8UTUPbow15zH3e0UjGYZy69lYENW/S05gMLhbxI2eonz66uALhIljvhsSMEb6+O30g==} engines: {node: '>=0.8.0'} - '@azure/msal-node@5.2.2': - resolution: {integrity: sha512-toS+2AePxqyzb0YOKttDOOiSl3jrkK9aiqIvpurpis0O34QcIS5gToqrgT39p04Dpxw3YoUU0lxJKTpSFFfA6Q==} + '@azure/msal-node@5.3.1': + resolution: {integrity: sha512-sqqv3L1UOI4KDXonNtbxPYUgbSWVXqxvmmb6BUw9n4P/UXgG+cVur3dLWQN4Cz7qQ+UJROCCxMXlksm7gIq0Sw==} engines: {node: '>=20'} - '@babel/code-frame@7.29.0': - resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} - engines: {node: '>=6.9.0'} - '@babel/code-frame@7.29.7': resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.29.7': - resolution: {integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==} - engines: {node: '>=6.9.0'} + '@babel/code-frame@8.0.0': + resolution: {integrity: sha512-dYYg153EyN2Ekbqw2zAsbd6/JR+9N2SEoC7YV2GyyqMM7x9bLDTjBD6XBhSMLH0wtIVyJj03jWNriQhaN+eoCw==} + engines: {node: ^22.18.0 || >=24.11.0} - '@babel/core@7.29.7': - resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==} - engines: {node: '>=6.9.0'} + '@babel/compat-data@8.0.0': + resolution: {integrity: sha512-DOjnob/cXOUgDOozCDeq/aK2p5y8dUIVdf6tNhEV1HQRd6I8aQ4f4fbtHRVEvb6lP3BGomrKHiS8ICAASSVQSw==} + engines: {node: ^22.18.0 || >=24.11.0} - '@babel/generator@7.29.7': - resolution: {integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==} - engines: {node: '>=6.9.0'} + '@babel/core@8.0.1': + resolution: {integrity: sha512-5FgxM4dLQpMJHSiVATk8foW263dVHQHBVpXYiimNECVWG01f4nFyEbQixeT6Mwvg7TayREJ2gpKl3o2RoMdnqw==} + engines: {node: ^22.18.0 || >=24.11.0} - '@babel/helper-compilation-targets@7.29.7': - resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==} - engines: {node: '>=6.9.0'} + '@babel/generator@8.0.0': + resolution: {integrity: sha512-NT9NrVwJsbSV6Y2FSstWa71EETOnzrjkL5/wX3D2mYHtKM+qvqB1DvR4D0Setb/gDBsHzRICifwEWMO8CnTF6g==} + engines: {node: ^22.18.0 || >=24.11.0} - '@babel/helper-globals@7.29.7': - resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==} - engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@8.0.0': + resolution: {integrity: sha512-JwculLABZvyPvyLBpwU/E/IbH2uM3mnxNtIJpxnIfb24y1PrdVxK5Dqjle4DpgqpGRnwgC7G8IkzPdSXZrO1Ew==} + engines: {node: ^22.18.0 || >=24.11.0} - '@babel/helper-module-imports@7.29.7': - resolution: {integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.29.7': - resolution: {integrity: sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': '>=7.29.6' - - '@babel/helper-string-parser@7.27.1': - resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} - engines: {node: '>=6.9.0'} + '@babel/helper-globals@8.0.0': + resolution: {integrity: sha512-lLozHOM6sWWlxNo8CYqHy4MBZeTvHXNgVPBfPOGsjPKUzHC2Az9QwB6gxdQmpwHl6GlQtbGgS+lj5887guDiLw==} + engines: {node: ^22.18.0 || >=24.11.0} '@babel/helper-string-parser@7.29.7': resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.27.1': - resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.28.5': - resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} - engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@8.0.0': + resolution: {integrity: sha512-6mJgmFFFIIO82vvoLt9XtRC7/TkzXfts1t/SpRX4IHSzMgqoPYCWesVu1udUPUWioAE/2fcG6WuI8zrkE1gwrg==} + engines: {node: ^22.18.0 || >=24.11.0} '@babel/helper-validator-identifier@7.29.7': resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.29.7': - resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==} - engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@8.0.2': + resolution: {integrity: sha512-9Fr9QeyCAyi1BR1jKZ6uYQ24EIhQUx5ReHfQU7drOE+TPOb+w11/dsqLkMOT2U29OdCT71XajrOT8xDc1C7orA==} + engines: {node: ^22.18.0 || >=24.11.0} - '@babel/helpers@7.29.7': - resolution: {integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==} - engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@8.0.0': + resolution: {integrity: sha512-U4Dybxh4WESWHt5XhBeExi4DrY0/DNK1aHpQbsrQXCUbFHuMweT0TpLEWKvaraV2Y6fS+ZXunsZ8zIuZIgvF2Q==} + engines: {node: ^22.18.0 || >=24.11.0} - '@babel/parser@7.29.2': - resolution: {integrity: sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==} - engines: {node: '>=6.0.0'} - hasBin: true + '@babel/helpers@8.0.0': + resolution: {integrity: sha512-wfbi91pM3py96oIiJEz7qIpyXDytgr9zQC1HEWwlGNVRAEmItuU/0a41ZUKu1sJGyhhOIpc4t5vk4PYzt8wpsg==} + engines: {node: ^22.18.0 || >=24.11.0} '@babel/parser@7.29.7': resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/runtime@7.28.6': - resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==} + '@babel/parser@8.0.0': + resolution: {integrity: sha512-aLxAE+imI9bCcyaPrUDjBv3uSkWieifjLe0kuFOZF0zli0L6GCsTmsePnTr55adbIAgYz2zhN1vnFimCBUYcRQ==} + engines: {node: ^22.18.0 || >=24.11.0} + hasBin: true + + '@babel/runtime@7.29.7': + resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==} engines: {node: '>=6.9.0'} - '@babel/runtime@7.29.2': - resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==} - engines: {node: '>=6.9.0'} + '@babel/template@8.0.0': + resolution: {integrity: sha512-eAD0QW/AlbamBbw0FeGiwasbCVPq5ncW0HNVyLP3B9czqLyh4gvw+5JTSNt6le9+ziAU7mqDZsKTHf3jTb4chQ==} + engines: {node: ^22.18.0 || >=24.11.0} - '@babel/template@7.29.7': - resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.29.7': - resolution: {integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.28.4': - resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.29.0': - resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} - engines: {node: '>=6.9.0'} + '@babel/traverse@8.0.0': + resolution: {integrity: sha512-bxTj/W2VclGE6CctlfQOpxg8MPDzXArRqkOBePw8EHfebcjF7fETWSS3BriEECo+UiU/Yblq+xUtSImFu7cTbw==} + engines: {node: ^22.18.0 || >=24.11.0} '@babel/types@7.29.7': resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} engines: {node: '>=6.9.0'} + '@babel/types@8.0.0': + resolution: {integrity: sha512-K8ponJDxBwDHigkeFqaqT5wLGl4bTlwMafR8k7b5CPxr6Ww+UG9ls8Yx6Tcpboxu97eeGVEEyKcHmEyOwN1vSw==} + engines: {node: ^22.18.0 || >=24.11.0} + '@bramus/specificity@2.4.2': resolution: {integrity: sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==} hasBin: true - '@csstools/color-helpers@6.0.2': - resolution: {integrity: sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==} + '@csstools/color-helpers@6.1.0': + resolution: {integrity: sha512-064IFJdjTfUqnjpCVpMOdbr8FLQBhinbZj6yRv2An2E41O/pLEXqfFRWqGq/SxlE5PEUYTlvWsG2r8MswAVvkg==} engines: {node: '>=20.19.0'} - '@csstools/css-calc@3.2.0': - resolution: {integrity: sha512-bR9e6o2BDB12jzN/gIbjHa5wLJ4UjD1CB9pM7ehlc0ddk6EBz+yYS1EV2MF55/HUxrHcB/hehAyt5vhsA3hx7w==} + '@csstools/css-calc@3.2.1': + resolution: {integrity: sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==} engines: {node: '>=20.19.0'} peerDependencies: '@csstools/css-parser-algorithms': ^4.0.0 '@csstools/css-tokenizer': ^4.0.0 - '@csstools/css-color-parser@4.1.0': - resolution: {integrity: sha512-U0KhLYmy2GVj6q4T3WaAe6NPuFYCPQoE3b0dRGxejWDgcPp8TP7S5rVdM5ZrFaqu4N67X8YaPBw14dQSYx3IyQ==} + '@csstools/css-color-parser@4.1.9': + resolution: {integrity: sha512-paQcIaOO53Rk5+YrBaBjm/SgrV4INImjo2BT1DtQRYr+XeTRbeAYlS+jxXp9drqvKmtFnWRJKIalDLhZZDu42A==} engines: {node: '>=20.19.0'} peerDependencies: '@csstools/css-parser-algorithms': ^4.0.0 @@ -723,8 +701,8 @@ packages: peerDependencies: '@csstools/css-tokenizer': ^4.0.0 - '@csstools/css-syntax-patches-for-csstree@1.1.3': - resolution: {integrity: sha512-SH60bMfrRCJF3morcdk57WklujF4Jr/EsQUzqkarfHXEFcAR1gg7fS/chAE922Sehgzc1/+Tz5H3Ypa1HiEKrg==} + '@csstools/css-syntax-patches-for-csstree@1.1.6': + resolution: {integrity: sha512-TcJCWFbXLPpJYq6z7bfOyjWYJDiDg2/I4gyUC9pqPNqHFRIey0EB0q0L5cSnQDfWJg8Jd6VadakxdIez/3zkqQ==} peerDependencies: css-tree: ^3.2.1 peerDependenciesMeta: @@ -753,16 +731,22 @@ packages: apache-arrow: optional: true - '@elastic/transport@9.3.6': - resolution: {integrity: sha512-1r0kXXOkKPhmHycpdZTzRlr2d6l0m16b+ug1iJDMS84Ml0t6w7m26BKjFYbZ2Ng7kX50wyqgUTFqxln1ygvMUw==} + '@elastic/transport@9.3.7': + resolution: {integrity: sha512-L38Ax21uF2OPUmCRWycZ/dZdMYf7gMrtClcxvVrqJVFmn8ET2M++GYmFGJpLqOHS1beATxOXLWe7y2ijSQz/ng==} engines: {node: '>=20'} '@emnapi/core@1.11.1': resolution: {integrity: sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==} + '@emnapi/core@1.11.2': + resolution: {integrity: sha512-TC8MkTuZUtcTSiFeuC0ksCh9QIJ5+F21MvZ4Wn4ORfYaFJ/0dsiudv5tVkejgwZlwQ39jL9WWDe2lz8x0WglOA==} + '@emnapi/runtime@1.11.1': resolution: {integrity: sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==} + '@emnapi/runtime@1.11.2': + resolution: {integrity: sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA==} + '@emnapi/wasi-threads@1.2.2': resolution: {integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==} @@ -955,8 +939,8 @@ packages: resolution: {integrity: sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@exodus/bytes@1.15.0': - resolution: {integrity: sha512-UY0nlA+feH81UGSHv92sLEPLCeZFjXOuHhrIo0HQydScuQc8s0A7kL/UdgwgDq8g8ilksmuoF35YVTNphV2aBQ==} + '@exodus/bytes@1.15.1': + resolution: {integrity: sha512-S6mL0yNB/Abt9Ei4tq8gDhcczc4S3+vQ4ra7vxnAf+YHC02srtqxKKZghx2Dq6p0e66THKwR6r8N6P95wEty7Q==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: '@noble/hashes': ^1.8.0 || ^2.0.0 @@ -997,9 +981,6 @@ packages: '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} - '@jridgewell/remapping@2.3.5': - resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} - '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} @@ -1020,14 +1001,14 @@ packages: resolution: {integrity: sha512-x/iUDjcS90W69PryLDIMgFyV21YLTnG9zOpPXS7Bkt2b8AsY3zZsIpOLBkYr9fBcF3HbkKaER5hOBZLfpLgYNw==} engines: {node: '>= 14.0.0'} - '@koa/router@15.6.0': - resolution: {integrity: sha512-iEOXlvGIBqSNkGXrg0XtMARAOm5zA24oedXxiTGEkrD4JgwVjfRDddCQvW1s4WEcwDYvyecRbf8BikXsuEEj8w==} + '@koa/router@15.7.0': + resolution: {integrity: sha512-WaAlk4TOl/O0rhTpOR0l052gz03syPMmI6Pe2gd7v3ubjfv5UcSGcnb0Y/J5NNC/ln+5FiUqPJTc/a15I+XqAA==} engines: {node: '>= 20'} peerDependencies: koa: ^2.0.0 || ^3.0.0 - '@mongodb-js/saslprep@1.4.11': - resolution: {integrity: sha512-o9rAHc0IpIjuPSxRutWpE1F62x7n+4mVS4rCNHkzhIUMQcc18bb6xEq5wd2NdN0WjepIyXIppRshYI2kQDOZVA==} + '@mongodb-js/saslprep@1.4.12': + resolution: {integrity: sha512-QAfAMwNgnYxZ2C6D1HgeP7Gc4i/uvJRim415PCIL9ptRxWMNbWeLBYb2/9R4pGKny/s1FVu2JA2cxCUBUOggrA==} '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} @@ -1102,22 +1083,18 @@ packages: resolution: {integrity: sha512-6gH/bLQJSJEg7OEpkH4wGQdA8KXHRbzL1YkGyUO12YNAgV3jxKy4K9kvfXj4+9T0OLug5k58cnPCKSSIKzp7pg==} engines: {node: '>=8.0'} - '@opentelemetry/api@1.9.0': - resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} - engines: {node: '>=8.0.0'} - '@opentelemetry/api@1.9.1': resolution: {integrity: sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==} engines: {node: '>=8.0.0'} - '@opentelemetry/core@2.8.0': - resolution: {integrity: sha512-hd1Lfh8p545nNz+jq1Ejfz+Mn1hyLuxYn1YzTfFNrxr8urEWMNQLPf1Th8kjOH+HxwawCrtgBp8JpBUR4ZSgww==} + '@opentelemetry/core@2.9.0': + resolution: {integrity: sha512-m2nckMT80NnmjTYSPjJQObBJ+8dgkoajEOUbznL8AHZ3T3yHRk2P7gI1PhEBc1+lOnrYE9UWrWHqJDsmqjmNbw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/semantic-conventions@1.41.1': - resolution: {integrity: sha512-/UhIkaZgPutTFmQ7RnIJGgDXZmtEJ7Dvi86xNTFWcnRxVRNk/aotsqDJYeEvDP+FSMB2SdW+pQzNMcWP0rwuNA==} + '@opentelemetry/semantic-conventions@1.42.0': + resolution: {integrity: sha512-icc5xCzndZfhuJMy5oqk5AvloWquR7jtae74qzpkKkhGp8BivK+oCcEXgGnjCdTfp8hA44l+w8gE8yYJbocJJw==} engines: {node: '>=14'} '@oxc-minify/binding-android-arm-eabi@0.139.0': @@ -1250,8 +1227,8 @@ packages: '@oxc-project/types@0.138.0': resolution: {integrity: sha512-1a7ZKmrRTCoN1XMZ4L0PyyqrMnrNlLyPuOkdSX2MZg7IiIGRUyurNhAm73ptDOraoBcIordsIGKNPKUzy3ZmfA==} - '@paralleldrive/cuid2@2.2.2': - resolution: {integrity: sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==} + '@paralleldrive/cuid2@2.3.1': + resolution: {integrity: sha512-XO7cAxhnTZl0Yggq6jOgjiOHhbgcO4NqFqwSmQpjK3b6TEE6Uj/jfSk6wzYyemh3+I0sHirKSetjQwn5cZktFw==} '@playwright/test@1.61.1': resolution: {integrity: sha512-8nKv6+0RJSL9FE4jYOEGXnPeM/Hg12qZpmqzZjRh3qM0Y7c3z1mrOTfFLids72RDQYVh9WpLEfR5WdpNX4fkig==} @@ -1544,8 +1521,8 @@ packages: '@redocly/config@0.22.0': resolution: {integrity: sha512-gAy93Ddo01Z3bHuVdPWfCwzgfaYgMdaZPcfL7JZ7hWJoK9V0lXDbigTWkhiPFAaLWzbOJ+kbUQG1+XwIm0KRGQ==} - '@redocly/openapi-core@1.34.14': - resolution: {integrity: sha512-y+xFx+Zz54Xhr8jUdnLENYnt7Y7GEDL6Q03ga7rTtX8DVwefX9H+hQEPgJp1nda7vdH+wJ9/HBVvyfBuW9x6rA==} + '@redocly/openapi-core@1.34.17': + resolution: {integrity: sha512-wsV2keCt6B806XpSdezbWZ9aFJYf14YVh+XQf0ESt7M90yqVuxH9//PxvtC70sgj9OCkRM3nRaLfu4MsGQZRig==} engines: {node: '>=18.17.0', npm: '>=9.5.0'} '@rolldown/binding-android-arm64@1.1.4': @@ -1738,9 +1715,6 @@ packages: '@tootallnate/quickjs-emscripten@0.23.0': resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} - '@tybys/wasm-util@0.10.2': - resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==} - '@tybys/wasm-util@0.10.3': resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==} @@ -1770,8 +1744,8 @@ packages: '@types/cookiejar@2.1.5': resolution: {integrity: sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==} - '@types/cookies@0.9.1': - resolution: {integrity: sha512-E/DPgzifH4sM1UMadJMWd6mO2jOd4g1Ejwzx8/uRCDpJis1IrlyQEcGAYEomtAqRYmD5ORbNXMeI9U0RiVGZbg==} + '@types/cookies@0.9.2': + resolution: {integrity: sha512-1AvkDdZM2dbyFybL4fxpuNCaWyv//0AwsuUk2DWeXyM1/5ZKm6W3z6mQi24RZ4l2ucY+bkSHzbDVpySqPGuV8A==} '@types/cors@2.8.19': resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==} @@ -1779,8 +1753,8 @@ packages: '@types/cross-spawn@6.0.6': resolution: {integrity: sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA==} - '@types/debug@4.1.12': - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + '@types/debug@4.1.13': + resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} '@types/deep-eql@4.0.2': resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} @@ -1794,8 +1768,8 @@ packages: '@types/estree@1.0.9': resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} - '@types/express-serve-static-core@5.1.0': - resolution: {integrity: sha512-jnHMsrd0Mwa9Cf4IdOzbz543y4XJepXrbia2T4b6+spXC2We3t1y6K44D3mR8XMFSXMCf3/l7rCgddfx7UNVBA==} + '@types/express-serve-static-core@5.1.1': + resolution: {integrity: sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A==} '@types/express-session@1.19.0': resolution: {integrity: sha512-GbypG0bog68UbOq2tSAp7SclvCUm3ha1uDi58OPRGK1NfRvCIu7Gz0M7fTGtpNG1T9a29GpuurQj9zEcT/lMXQ==} @@ -1809,6 +1783,9 @@ packages: '@types/fs-extra@9.0.13': resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} + '@types/gensync@1.0.5': + resolution: {integrity: sha512-MbsRCT7mTikHwKZ0X+LVUTLRrZZRLipTuXEO9qOYO+zmjMVk81axyClMROf6uoPD9MRVu46bx8zoR0Ad9q3NAg==} + '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} @@ -1827,6 +1804,9 @@ packages: '@types/jsdom@28.0.3': resolution: {integrity: sha512-/HQ2uFoetFTXuye8vzIcHw2z6Fwi7Hi/qcgC+RoS9NCyewiqxhVGqlG+ViGB6lkax481R6dmhf1I7lIGlzJStQ==} + '@types/jsesc@2.5.1': + resolution: {integrity: sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==} + '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -1839,11 +1819,11 @@ packages: '@types/keygrip@1.0.6': resolution: {integrity: sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==} - '@types/koa-compose@3.2.8': - resolution: {integrity: sha512-4Olc63RY+MKvxMwVknCUDhRQX1pFQoBZ/lXcRLP69PQkEpze/0cr8LNqJQe5NFb/b19DWi2a5bTi2VAlQzhJuA==} + '@types/koa-compose@3.2.9': + resolution: {integrity: sha512-BroAZ9FTvPiCy0Pi8tjD1OfJ7bgU1gQf0eR6e1Vm+JJATy9eKOG3hQMFtMciMawiSOVnLMdmUOC46s7HBhSTsA==} - '@types/koa@3.0.0': - resolution: {integrity: sha512-MOcVYdVYmkSutVHZZPh8j3+dAjLyR5Tl59CN0eKgpkE1h/LBSmPAsQQuWs+bKu7WtGNn+hKfJH9Gzml+PulmDg==} + '@types/koa@3.0.3': + resolution: {integrity: sha512-TdtNEJ7sYSrFQcVuS2ySsVqnq5EyE3oJbnfFJvkC9UtGP4Kpem5KE7r+ivHIbIAQAofSqnlB5D3vkfYO69TQpg==} '@types/linkify-it@5.0.0': resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} @@ -1872,14 +1852,11 @@ packages: '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/node-fetch@2.6.12': - resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==} + '@types/node-fetch@2.6.13': + resolution: {integrity: sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==} - '@types/node@18.19.130': - resolution: {integrity: sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==} - - '@types/node@26.0.0': - resolution: {integrity: sha512-vf2YFi1iY9lHGwNJMs01biZFbKJkrZR1T6/MlzjhJLPdntOHLhTrDSnSVcdtvjihi4VQNlrFRIxLsDBlQpAipA==} + '@types/node@20.19.43': + resolution: {integrity: sha512-6oYBAi5ikg4Pl+kGsoYtawUMBT2zZMCvPNF7pVLnHZfd1zf38DRiWn/gT01RYCdUqkv7Fhr+C9ot4/tb+2sVvA==} '@types/node@26.1.0': resolution: {integrity: sha512-O0A1G3xPGy4w7AgQdAQYUlQ+BKk2Oovw8eRpofyp5KdBZULnbe+WqaOVNrm705SHphCiG4XHsACrSmPu1f+Kgw==} @@ -1893,8 +1870,8 @@ packages: '@types/pdfkit@0.17.6': resolution: {integrity: sha512-tIwzxk2uWKp0Cq9JIluQXJid77lYhF52EsIOwhsMF4iWLA6YneoBR1xVKYYdAysHuepUB0OX4tdwMiUDdGKmig==} - '@types/qs@6.14.0': - resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==} + '@types/qs@6.15.1': + resolution: {integrity: sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==} '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} @@ -1907,8 +1884,8 @@ packages: '@types/react@19.2.17': resolution: {integrity: sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==} - '@types/readable-stream@4.0.23': - resolution: {integrity: sha512-wwXrtQvbMHxCbBgjHaMGEmImFTQxxpfMOR/ZoQnXxB1woqkUbdLGFDgauo00Py9IudiaqSeiBiulSV9i6XIPig==} + '@types/readable-stream@4.0.24': + resolution: {integrity: sha512-NRvUNC/JFGPJvqdAfEve8oginbM6V08u5NzLWpG8MwA2kTPOLnqk+wpwuPT+mp3aUsxyuT6m2gnrPuHYCruzEg==} '@types/semver@7.7.1': resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} @@ -1925,8 +1902,8 @@ packages: '@types/sinonjs__fake-timers@15.0.1': resolution: {integrity: sha512-Ko2tjWJq8oozHzHV+reuvS5KYIRAokHnGbDwGh/J64LntgpbuylF74ipEL24HCyRjf9FOlBiBHWBR1RlVKsI1w==} - '@types/superagent@8.1.9': - resolution: {integrity: sha512-pTVjI73witn+9ILmoJdajHGW2jkSaOzhiFYF1Rd3EQ94kymLqB9PjD9ISg7WaALC7+dCHT0FGe9T2LktLq/3GQ==} + '@types/superagent@8.1.10': + resolution: {integrity: sha512-nbt4IWXABhW0jGmmpRzCFNlbmwCTzZ2gTUsNIr+X+ItdqPms+PAJZbWsNzpS2USqXjcoNLQcO6nXo60zcPQiIg==} '@types/supertest@7.2.0': resolution: {integrity: sha512-uh2Lv57xvggst6lCqNdFAmDSvoMG7M/HDtX4iUCquxQ5EGPtaPM5PL5Hmi7LCvOG8db7YaCPNJEeoI8s/WzIQw==} @@ -1958,6 +1935,9 @@ packages: '@types/whatwg-url@13.0.0': resolution: {integrity: sha512-N8WXpbE6Wgri7KUSvrmQcqrMllKZ9uxkYWMt+mCSGwNc0Hsw9VQTW7ApqI4XNrx6/SaM2QQJCzMPDEXE058s+Q==} + '@types/ws@8.18.1': + resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} + '@typescript-eslint/eslint-plugin@7.18.0': resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} engines: {node: ^18.18.0 || >=20.0.0} @@ -2075,13 +2055,12 @@ packages: resolution: {integrity: sha512-UexrHGnGTpbuQHct2ExOc2ZcFbGUS9FOesCxxqdBGcpI1BxYu/LZ6U8Aq6/72XtF/qRBk9nhuGHFJIXXMhPMdw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typespec/ts-http-runtime@0.3.5': - resolution: {integrity: sha512-yURCknZhvywvQItHMMmFSo+fq5arCUIyz/CVk7jD89MSai7dkaX8ufjCWp3NttLojoTVbcE72ri+be/TnEbMHw==} + '@typespec/ts-http-runtime@0.3.6': + resolution: {integrity: sha512-jIXhD0eWQ1JA6ln/5Dltyx22UxWNrw0hZmhy2rlv6m6KgF7kplHx3g0fzi09lNmTJQRR91OlemYp3xFnvDK9og==} engines: {node: '>=20.0.0'} - '@ungap/structured-clone@1.3.0': - resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - deprecated: Potential CWE-502 - Update to 1.3.1 or higher + '@ungap/structured-clone@1.3.2': + resolution: {integrity: sha512-5jsZFwgR5rTdKwidH9Qmat75RKwqfpKlWWB1frDkljN127mwqBu8K0PYo7/hFpF03IEJpfVPpCQDY/eDx3iHvA==} '@unrs/rspack-resolver-binding-darwin-arm64@1.3.0': resolution: {integrity: sha512-EcjI0Hh2HiNOM0B9UuYH1PfLWgE6/SBQ4dKoHXWNloERfveha/n6aUZSBThtPGnJenmdfaJYXXZtqyNbWtJAFw==} @@ -2332,14 +2311,10 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - adm-zip@0.5.17: - resolution: {integrity: sha512-+Ut8d9LLqwEvHHJl1+PIHqoyDxFgVN847JTVM3Izi3xHDWPE4UtzzXysMZQs64DMcrJfBeS/uoEP4AD3HQHnQQ==} + adm-zip@0.5.18: + resolution: {integrity: sha512-ufJnssQGbxzLNS1Ho9bCtX4rQKCCvoVuDLHoJyc3F9dOGDB4BkWs2Ci0kv53lqocAEQ/Cbi+I2XCsNYGqVYqng==} engines: {node: '>=12.0'} - agent-base@7.1.3: - resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} - engines: {node: '>= 14'} - agent-base@7.1.4: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} @@ -2461,8 +2436,8 @@ packages: resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} engines: {node: ^4.5.0 || >= 5.9} - baseline-browser-mapping@2.10.21: - resolution: {integrity: sha512-Q+rUQ7Uz8AHM7DEaNdwvfFCTq7a43lNTzuS94eiWqwyxfV/wJv+oUivef51T91mmRY4d4A1u9rcSvkeufCVXlA==} + baseline-browser-mapping@2.10.42: + resolution: {integrity: sha512-c/jurFrDLyui7o1J86yLkRu4LMsTYcBohveus7/I2Hzdn9KIP2bdJPTue/lR1KH46enoPbD77GKeSYNdyPoD3Q==} engines: {node: '>=6.0.0'} hasBin: true @@ -2494,15 +2469,15 @@ packages: bluebird@3.4.7: resolution: {integrity: sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==} - body-parser@2.2.1: - resolution: {integrity: sha512-nfDwkulwiZYQIGwxdy0RUmowMhKcFVcYXUU7m4QlKYim1rUtg83xm2yjZ40QjDuc291AJjjeSc9b++AWHSgSHw==} + body-parser@2.3.0: + resolution: {integrity: sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==} engines: {node: '>=18'} brace-expansion@1.1.15: resolution: {integrity: sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==} - brace-expansion@5.0.6: - resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} + brace-expansion@5.0.7: + resolution: {integrity: sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==} engines: {node: 18 || 20 || >=22} braces@3.0.3: @@ -2521,13 +2496,13 @@ packages: browserify-zlib@0.2.0: resolution: {integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==} - browserslist@4.28.2: - resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==} + browserslist@4.28.5: + resolution: {integrity: sha512-Cu2E6QejHWzuDMTkuwgpABFgDfZrXLQq5V13YOACZx4mFAG4IwGTbTfHPMr4WtxlHoXSM8FIuRwYYCz5XiabaQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - bson@7.2.0: - resolution: {integrity: sha512-YCEo7KjMlbNlyHhz7zAZNDpIpQbd+wOEHJYezv0nMYTn4x31eIUM2yomNNubclAt63dObUzKHWsBLJ9QcZNSnQ==} + bson@7.3.1: + resolution: {integrity: sha512-h/C0qe6857pQhcSJHLfsR1uYGj98Ge3wKAD3Ed9KqH3wcVh+BM4Jq4xISD7vs9OPuT07n+q3QQVjslJ286j6ag==} engines: {node: '>=20.19.0'} buffer-equal-constant-time@1.0.1: @@ -2563,12 +2538,12 @@ packages: camelize@1.0.1: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - caniuse-lite@1.0.30001790: - resolution: {integrity: sha512-bOoxfJPyYo+ds6W0YfptaCWbFnJYjh2Y1Eow5lRv+vI2u8ganPZqNm1JwNh0t2ELQCqIWg4B3dWEusgAmsoyOw==} + caniuse-lite@1.0.30001802: + resolution: {integrity: sha512-vmv8ub2xwTNmljSKf82mtCk5JH7hC+YgzLj3P5zotvA0tPQ9016tdNNOG8WRca1IxOnhSsivB+J0z5FeE5LOUw==} - cassandra-driver@4.8.0: - resolution: {integrity: sha512-HritfMGq9V7SuESeSodHvArs0mLuMk7uh+7hQK2lqdvXrvm50aWxb4RPxkK3mPDdsgHjJ427xNRFITMH2ei+Sw==} - engines: {node: '>=18'} + cassandra-driver@4.9.0: + resolution: {integrity: sha512-svYpdkLIGjD0WmuuwkkeYbfBdPX1zksK2cDyT1mWjX53OVTzuWBOVy54K6PPij8GgYpIG+K82OryrBv/xNeuWg==} + engines: {node: '>=20'} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -2648,6 +2623,10 @@ packages: resolution: {integrity: sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==} engines: {node: '>=18'} + content-disposition@1.1.0: + resolution: {integrity: sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==} + engines: {node: '>=18'} + content-type@1.0.5: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} @@ -2691,8 +2670,8 @@ packages: core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - cors@2.8.5: - resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + cors@2.8.6: + resolution: {integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==} engines: {node: '>= 0.10'} cross-env@10.1.0: @@ -2751,24 +2730,6 @@ packages: supports-color: optional: true - debug@4.4.0: - resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.4.1: - resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} @@ -2932,12 +2893,16 @@ packages: engines: {node: '>=0.12.18'} hasBin: true - electron-to-chromium@1.5.343: - resolution: {integrity: sha512-YHnQ3MXI08icvL9ZKnEBy05F2EQ8ob01UaMOuMbM8l+4UcAq6MPPbBTJBbsBUg3H8JeZNt+O4fjsoWth3p6IFg==} + electron-to-chromium@1.5.387: + resolution: {integrity: sha512-TaxwufTFDufvPEoXdhwVrA3UdFWBeWGkYoJ1K8ldF1xe6gKfth6iRNS5lTQ5JPNOHdGQm8PT1QYKUqFLCiUefQ==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + empathic@2.0.1: + resolution: {integrity: sha512-YGRs8knHhKHVShLkFET/rWAU8kmHbOV5LwN938RHI0pljAJ1Gf6SzXsSmRaEzcXTtOOmVqJ5+WtQPL5uigY50Q==} + engines: {node: '>=14'} + encodeurl@2.0.0: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} @@ -2945,19 +2910,19 @@ packages: enforce-range@1.0.0: resolution: {integrity: sha512-iOYthPljA5P/S823In8avtTbeUl8/uTP1+pqy08ryb8jeMO2enuIO/f72QFFqT4GTNiOe0yWPIzXB9nR3u6O5A==} - engine.io-client@6.6.4: - resolution: {integrity: sha512-+kjUJnZGwzewFDw951CDWcwj35vMNf2fcj7xQWOctq1F2i1jkDdVvdFG9kM/BEChymCH36KgjnW0NsL58JYRxw==} + engine.io-client@6.6.6: + resolution: {integrity: sha512-iY6QdftLQ9pyiPoX082bpf/u1UewnOaJrtJIF9T0++QB34lZrj0uP+Q/bj8AlUsAxqhnkTV2BS8SBZSxOmoV5Q==} engine.io-parser@5.2.3: resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} engines: {node: '>=10.0.0'} - engine.io@6.6.5: - resolution: {integrity: sha512-2RZdgEbXmp5+dVbRm0P7HQUImZpICccJy7rN7Tv+SFa55pH+lxnuw6/K1ZxxBfHoYpSkHLAO92oa8O4SwFXA2A==} + engine.io@6.6.9: + resolution: {integrity: sha512-clKkw4C7nJ22mGgoVcCg6V/W/TxdNyIOTr89k2ONZu81qqkddPFDF0LXcbAwhzPD8DjkiRCjzuiO6Y+fkpD4vg==} engines: {node: '>=10.2.0'} - enhanced-resolve@5.20.1: - resolution: {integrity: sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==} + enhanced-resolve@5.24.2: + resolution: {integrity: sha512-rpsZEGT1jFuve6QlpyRp9ckQ+kN61hvF9BzCPyMdaKTm8UJce96KBn3sorXOFXlzjPrs3Vc4T1NsSroZ3PxlFw==} engines: {node: '>=10.13.0'} ent@2.2.2: @@ -2985,6 +2950,10 @@ packages: error@4.4.0: resolution: {integrity: sha512-SNDKualLUtT4StGFP7xNfuFybL2f6iJujFtrWuvJqGbVQGaN+adE23veqzPz1hjUjTunLi2EnJ+0SJxtbJreKw==} + es-abstract-get@1.0.0: + resolution: {integrity: sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==} + engines: {node: '>= 0.4'} + es-abstract@1.24.2: resolution: {integrity: sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==} engines: {node: '>= 0.4'} @@ -2997,11 +2966,11 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-module-lexer@2.1.0: - resolution: {integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==} + es-module-lexer@2.3.0: + resolution: {integrity: sha512-KLdwQm2NvGLDkQDCGvmiQrhkd0JbMzXthwQAUgWjQuQdBLFa3eiBP5arXZyA+f8x+x7OXgud6bq2rxjGtHV2tw==} - es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + es-object-atoms@1.1.2: + resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==} engines: {node: '>= 0.4'} es-set-tostringtag@2.1.0: @@ -3012,8 +2981,8 @@ packages: resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} engines: {node: '>= 0.4'} - es-to-primitive@1.3.0: - resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} + es-to-primitive@1.3.4: + resolution: {integrity: sha512-yPDz7wqpg1/mmHLmS3tcfTfbw5f1eryXvyghYBffGdERwe+mV7ZcWzTR8LR17Kvqt3qfPurjlonmnq3MKXIOXw==} engines: {node: '>= 0.4'} esbuild@0.28.1: @@ -3067,8 +3036,8 @@ packages: eslint-plugin-import-x: optional: true - eslint-module-utils@2.12.1: - resolution: {integrity: sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==} + eslint-module-utils@2.14.0: + resolution: {integrity: sha512-W2WCRZ9Dqntd+2u8jJcVMV2PKulc6RdLgUUoh/yQr3uB6lo/ZOeGx11sv60/8S4QFFKNslAlWhr9u0Ef7ZW6Ig==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -3240,12 +3209,12 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} - expect-type@1.3.0: - resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} + expect-type@1.4.0: + resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==} engines: {node: '>=12.0.0'} - express-rate-limit@8.5.1: - resolution: {integrity: sha512-5O6KYmyJEpuPJV5hNTXKbAHWRqrzyu+OI3vUnSd2kXFubIVpG7ezpgxQy76Zo5GQZtrQBg86hF+CM/NX+cioiQ==} + express-rate-limit@8.5.2: + resolution: {integrity: sha512-5Kb34ipNX694DH48vN9irak1Qx30nb0PLYHXfJgw4YEjiC3ZEmZJhwOp+VfiCYwFzvFTdB9QkArYS5kXa2cx2A==} engines: {node: '>= 16'} peerDependencies: express: '>= 4.11' @@ -3277,8 +3246,8 @@ packages: fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - fast-uri@3.1.2: - resolution: {integrity: sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==} + fast-uri@3.1.3: + resolution: {integrity: sha512-i70LwGWUduXqzicKXWshooq+sWL1K3WUU5rKZNG/0i3a1OSoX3HqhH5WbWwTmqWfor4urUakGPiRQcleRZTwOg==} fastq@1.20.1: resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} @@ -3382,8 +3351,8 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - function.prototype.name@1.1.8: - resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} + function.prototype.name@1.2.0: + resolution: {integrity: sha512-jObKIik1P2QjPHP5nz5BaOtUlfgS0fWo8IUByNXkM+o+02sJOi94em77GwJKQSJ3gfPHdgzLNrHc1uokV4P/ew==} engines: {node: '>= 0.4'} functions-have-names@1.2.3: @@ -3423,8 +3392,8 @@ packages: get-tsconfig@4.14.0: resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==} - get-uri@6.0.4: - resolution: {integrity: sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==} + get-uri@6.0.5: + resolution: {integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==} engines: {node: '>= 14'} glob-parent@5.1.2: @@ -3494,14 +3463,6 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - - hasown@2.0.3: - resolution: {integrity: sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==} - engines: {node: '>= 0.4'} - hasown@2.0.4: resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} engines: {node: '>= 0.4'} @@ -3607,8 +3568,8 @@ packages: typescript: optional: true - iconv-lite@0.7.2: - resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} + iconv-lite@0.7.3: + resolution: {integrity: sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==} engines: {node: '>=0.10.0'} ieee754@1.2.1: @@ -3633,6 +3594,9 @@ packages: immediate@3.0.6: resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + import-meta-resolve@4.2.0: + resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} + imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -3682,8 +3646,8 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + is-core-module@2.16.2: + resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==} engines: {node: '>= 0.4'} is-data-view@1.0.2: @@ -3699,6 +3663,10 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true + is-document.all@1.0.0: + resolution: {integrity: sha512-+XSoyS05OdBbhFuELhgTCpFNHkpBOJqtsZfUFFpe5QTw+9Sjbh8zitxhQkYAo6wV7e1Vb8cAPvpCk9jGam/82g==} + engines: {node: '>= 0.4'} + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -3836,6 +3804,9 @@ packages: js-md5@0.8.3: resolution: {integrity: sha512-qR0HB5uP6wCuRMrWPTrkMaev7MJZwJuuw4fnwAzRgP4J4/F8RwtodOKpGp4XpqsLBFzzgqIO42efFAyz2Et6KQ==} + js-tokens@10.0.0: + resolution: {integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -3843,6 +3814,10 @@ packages: resolution: {integrity: sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==} hasBin: true + js-yaml@5.2.1: + resolution: {integrity: sha512-zfLtNfQqxVqq3uaTqSkh4x4hZw3KHobGUA0fJUj4wawW8bsQLTVqpHdXSIzidh7o+4lEW36tANuAGdaFx6Zgnw==} + hasBin: true + jsdom@29.1.1: resolution: {integrity: sha512-ECi4Fi2f7BdJtUKTflYRTiaMxIB0O6zfR1fX0GXpUrf6flp8QIYn1UT20YQqdSOfk2dfkCwS8LAFoJDEppNK5Q==} engines: {node: ^20.19.0 || ^22.13.0 || >=24.0.0} @@ -3884,8 +3859,8 @@ packages: jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + jsonfile@6.2.1: + resolution: {integrity: sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==} jsonschema-draft4@1.0.0: resolution: {integrity: sha512-sBV3UnQPRiyCTD6uzY/Oao2Yohv6KKgQq7zjPwjFHeR6scg/QSXnzDxdugsGaLQDmFUrUlTbMYdEE+72PizhGA==} @@ -4071,17 +4046,10 @@ packages: lop@0.4.2: resolution: {integrity: sha512-RefILVDQ4DKoRZsJ4Pj22TxE3omDO47yFpkIBoDKzkqPRISs5U1cnAdg/5583YPkWPaLIYHOKRMQSvjFsO26cw==} - lru-cache@11.5.0: - resolution: {integrity: sha512-5YgH9UJd7wVb9hIouI2adWpgqrrICkt070Dnj8EUY1+B4B2P9eRLPAkAAo6NICA7CEhOIeBHl46u9zSNpNu7zA==} - engines: {node: 20 || >=22} - lru-cache@11.5.1: resolution: {integrity: sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==} engines: {node: 20 || >=22} - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lru-cache@7.18.3: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} @@ -4278,18 +4246,13 @@ packages: resolution: {integrity: sha512-3yEfcEaBBhdmYXQRP6nztbuRQAcArdjrb2Vkrvx61+b5bzML34ztUy/b9zDXyhW4h4EESpZzf01A8JNRGo+Jlw==} engines: {node: '>=20.0'} - nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + nanoid@3.3.15: + resolution: {integrity: sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@3.3.12: - resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - nanoid@5.1.11: - resolution: {integrity: sha512-v+KEsUv2ps74PaSKv0gHTxTCgMXOIfBEbaqa6w6ISIGC7ZsvHN4N9oJ8d4cmf0n5oTzQz2SLmThbQWhjd/8eKg==} + nanoid@5.1.16: + resolution: {integrity: sha512-kVrnsrJqMR8+oLJnGEmSWw9BivK5mt7H3FZatVRjrc5wGqFYuBxX1yG7+A7Gi5AefkX6t/oCkizcQgpu0cY1dQ==} engines: {node: ^18 || >=20} hasBin: true @@ -4307,8 +4270,8 @@ packages: resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} engines: {node: '>= 0.6'} - netmask@2.0.2: - resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} + netmask@2.1.1: + resolution: {integrity: sha512-eonl3sLUha+S1GzTPxychyhnUzKyeQkZ7jLjKrBagJgPla13F+uQ71HgpFefyHgqrjEbCPkDArxYsjY8/+gLKA==} engines: {node: '>= 0.4.0'} next-tick@0.2.2: @@ -4319,8 +4282,8 @@ packages: engines: {node: '>=10.5.0'} deprecated: Use your platform's native DOMException instead - node-exports-info@1.6.0: - resolution: {integrity: sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==} + node-exports-info@1.6.2: + resolution: {integrity: sha512-kXs9Go0cah0qHVV2v389IXQLdLCeE1xfFtjOAF+iobu0OIoG1pje8At2vMHyaPMiPMnG/LWP50twML21eMcAag==} engines: {node: '>= 0.4'} node-fetch-commonjs@3.3.2: @@ -4336,8 +4299,9 @@ packages: encoding: optional: true - node-releases@2.0.38: - resolution: {integrity: sha512-3qT/88Y3FbH/Kx4szpQQ4HzUbVrHPKTLVpVocKiLfoYvw9XSGOX2FmD2d6DrXbVYyAQTF2HeF6My8jmzx7/CRw==} + node-releases@2.0.50: + resolution: {integrity: sha512-J6l92tKHX6w8Jy5nO1Vuc01NoIiRGi/d6qBKVxh+IQ8Cr3b6HbVNfKiF8ZpFKufTwpwxMmce2W3iQZ861ZRyTg==} + engines: {node: '>=18'} nodeify@1.0.1: resolution: {integrity: sha512-n7C2NyEze8GCo/z73KdbjRsBiLbv6eBn1FxwYKQ23IqGo7pQY3mhQan61Sv7eEDJCiyUjTVrVkXTzJCo1dW7Aw==} @@ -4567,8 +4531,8 @@ packages: resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} engines: {node: '>=8.6'} - picomatch@4.0.4: - resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} + picomatch@4.0.5: + resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} engines: {node: '>=12'} playwright-core@1.61.1: @@ -4592,10 +4556,6 @@ packages: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} - postcss@8.5.15: - resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==} - engines: {node: ^10 || ^12 || >=14} - postcss@8.5.16: resolution: {integrity: sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==} engines: {node: ^10 || ^12 || >=14} @@ -4634,8 +4594,8 @@ packages: promise@1.3.0: resolution: {integrity: sha512-R9WrbTF3EPkVtWjp7B7umQGVndpsi+rsDAfrR4xAALQpFLa/+2OriecLhawxzvii2gd9+DZFwROWDuUUaqS5yA==} - property-information@7.1.0: - resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} + property-information@7.2.0: + resolution: {integrity: sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==} proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} @@ -4655,8 +4615,8 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - qs@6.15.2: - resolution: {integrity: sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw==} + qs@6.15.3: + resolution: {integrity: sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==} engines: {node: '>=0.6'} queue-microtask@1.2.3: @@ -4676,8 +4636,8 @@ packages: resolution: {integrity: sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==} engines: {node: '>= 0.8'} - range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + range-parser@1.3.0: + resolution: {integrity: sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw==} engines: {node: '>= 0.6'} rate-limiter-flexible@11.2.0: @@ -4833,8 +4793,8 @@ packages: engines: {node: '>= 0.4'} hasBin: true - resolve@2.0.0-next.6: - resolution: {integrity: sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==} + resolve@2.0.0-next.7: + resolution: {integrity: sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==} engines: {node: '>= 0.4'} hasBin: true @@ -4940,8 +4900,8 @@ packages: resolution: {integrity: sha512-Kk+55VwQ5qLWcSD6R0RrxFOEF70SH7BjYj60MCskJvRkuY7MFlAPEn3hY4WzRodWXj5cCOJ4AsDr+4OvtaW/SQ==} engines: {node: '>= 10'} - safe-array-concat@1.1.3: - resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} + safe-array-concat@1.1.4: + resolution: {integrity: sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==} engines: {node: '>=0.4'} safe-buffer@5.1.2: @@ -4983,16 +4943,16 @@ packages: engines: {node: '>=10'} hasBin: true - send@1.2.0: - resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} + send@1.2.1: + resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==} engines: {node: '>= 18'} - serialize-javascript@7.0.5: - resolution: {integrity: sha512-F4LcB0UqUl1zErq+1nYEEzSHJnIwb3AF2XWB94b+afhrekOUijwooAYqFyRbjYkm2PAKBabx6oYv/xDxNi8IBw==} + serialize-javascript@7.0.7: + resolution: {integrity: sha512-YAy8Od6KV+uuwUuU50np8fGB/Aues6Y0nAhA9y/hId74PlKUcme4pXcBD46NWKr1Q4osN/iseZ17YqO1XfmI8g==} engines: {node: '>=20.0.0'} - serve-static@2.2.0: - resolution: {integrity: sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==} + serve-static@2.2.1: + resolution: {integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==} engines: {node: '>= 18'} set-cookie-parser@2.7.2: @@ -5043,8 +5003,8 @@ packages: resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} engines: {node: '>= 0.4'} - side-channel@1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + side-channel@1.1.1: + resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==} engines: {node: '>= 0.4'} siginfo@2.0.0: @@ -5064,8 +5024,8 @@ packages: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - socket.io-adapter@2.5.6: - resolution: {integrity: sha512-DkkO/dz7MGln0dHn5bmN3pPy+JmywNICWrJqVWiVOyvXjWQFIv9c2h24JrQLLFJ2aQVQf/Cvl1vblnd4r2apLQ==} + socket.io-adapter@2.5.8: + resolution: {integrity: sha512-6Oy52pbg+kvdCVvjcN+FnY7BvxZ7cIHNScbvztT/It5d0vbwoJoVZmF2gjJmnV0/4WlXRfG15zc45ySk9Ah8bw==} socket.io-client@4.8.3: resolution: {integrity: sha512-uP0bpjWrjQmUt5DTHq9RuoCBdFJF10cdX9X+a368j/Ft0wmaVgxlrjvK3kjvgCODOMMOz9lcaRzxmso0bTWZ/g==} @@ -5083,8 +5043,8 @@ packages: resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} engines: {node: '>= 14'} - socks@2.8.5: - resolution: {integrity: sha512-iF+tNDQla22geJdTyJB1wM/qrX9DMRwWrciEPwWLPRWAUEM8sQiyxgckLxWT1f7+9VabJS0jTGGr4QgBuvi6Ww==} + socks@2.8.9: + resolution: {integrity: sha512-LJhUYUvItdQ0LkJTmPeaEObWXAqFyfmP85x0tch/ez9cahmhlBBLbIqDFnvBnUJGagb0JbIQrkBs1wJ+yRYpEw==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} source-map-js@1.2.1: @@ -5150,12 +5110,12 @@ packages: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} - string.prototype.trim@1.2.10: - resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} + string.prototype.trim@1.2.11: + resolution: {integrity: sha512-PwvK7BU+CMTJGYQCTZb5RWXIML92lftJLhQz1tBzgKiqGxJaMlBAa48POXaNAC2s4y8jr3EFqrkF9+44neS46w==} engines: {node: '>= 0.4'} - string.prototype.trimend@1.0.9: - resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} + string.prototype.trimend@1.0.10: + resolution: {integrity: sha512-2+3aDAOmPTmuFwjDnmJG2ctEkQKVki7vOSqaxkv42Mowj1V6PnvuwFCRrR5lChUux1TBskPjfkeTOhqczDMxTw==} engines: {node: '>= 0.4'} string.prototype.trimstart@1.0.8: @@ -5222,16 +5182,16 @@ packages: tabbable@6.5.0: resolution: {integrity: sha512-wieBHXygIm7OyQOu5hQlkk62/WyCFYGlWg7L6/ZCUZwx0o398Zkn4pVmMyfYhfMG8kGrj/Krt8eIk6UKC6VzwA==} - tapable@2.3.2: - resolution: {integrity: sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==} + tapable@2.3.3: + resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} engines: {node: '>=6'} - tar@7.5.16: - resolution: {integrity: sha512-56adEpPMouktRlBLXiaYFFzZ/3+JXa8P9n7WbR+ibIjtviN55mEaOkiysCnPnWm+7kkui1Dn8J9l+g6zV8731w==} + tar@7.5.19: + resolution: {integrity: sha512-4LeEWl96twnS2Q7Bz4MGqgazLqO+hJN63GZxXoIqh1T3VweYD997gbU1ItNsQafqqXTXd5WFyFdReLtwvRBNiw==} engines: {node: '>=18'} - tarn@3.0.2: - resolution: {integrity: sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==} + tarn@3.1.0: + resolution: {integrity: sha512-QDihlHbXxQ4SnuQcRd1TPNBHUYo/hafDRDP82COYSVfRcx/3qnfGDkn1WFjozVl+AYr8ZyDKSQ/kIgHH1ri1yg==} engines: {node: '>=8.0.0'} tdigest@0.1.2: @@ -5262,11 +5222,11 @@ packages: resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==} engines: {node: '>=14.0.0'} - tldts-core@7.0.29: - resolution: {integrity: sha512-W99NuU7b1DcG3uJ3v9k9VztCH3WialNbBkBft5wCs8V8mexu0XQqaZEYb9l9RNNzK8+3EJ9PKWB0/RUtTQ/o+Q==} + tldts-core@7.4.6: + resolution: {integrity: sha512-TkQNGJIhlEphpHCjKodMTSe23egUZr/g+flI2qkLgiJ/maAzSgXypSLRTNH3nCmqgayEmtcJBiLcfODSAr1xoA==} - tldts@7.0.29: - resolution: {integrity: sha512-JIXCerhudr/N6OWLwLF1HVsTTUo7ry6qHa5eWZEkiMuxsIiAACL55tGLfqfHfoH7QaMQUW8fngD7u7TxWexYQg==} + tldts@7.4.6: + resolution: {integrity: sha512-rbP0Gyx8b3Ae9yO//CU2wbSnQNoQ66m1nJdSbSHmnwKwzkkz/u8mERYU8T2rmlmy+bJvRNn84yNCW8gYqox44Q==} hasBin: true to-regex-range@5.0.1: @@ -5350,10 +5310,6 @@ packages: resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} engines: {node: '>=16'} - type-is@2.0.1: - resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} - engines: {node: '>= 0.6'} - type-is@2.1.0: resolution: {integrity: sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==} engines: {node: '>= 18'} @@ -5370,8 +5326,8 @@ packages: resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} engines: {node: '>= 0.4'} - typed-array-length@1.0.7: - resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} + typed-array-length@1.0.8: + resolution: {integrity: sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==} engines: {node: '>= 0.4'} typescript@6.0.3: @@ -5438,17 +5394,17 @@ packages: underscore@1.13.8: resolution: {integrity: sha512-DXtD3ZtEQzc7M8m4cXotyHR+FAS18C64asBYY5vqZexfYryNNnDc02W4hKg3rdQuqOYas1jkseX0+nZXjTXnvQ==} - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - undici-types@7.24.5: - resolution: {integrity: sha512-kNh333UBSbgK35OIW7FwJTr9tTfVIG51Fm1tSVT7m8foPHfDVjsb7OIee/q/rs3bB2aV/3qOPgG5mHNWl1odiA==} + undici-types@7.28.0: + resolution: {integrity: sha512-LJAfY+2w6HGeT8d8J1wNQsUGUEGio6NWWpwdwurQe4f6oojzCFuGLizl1KSve4irsTxyLly1QhEeE6iapdaIvQ==} undici-types@8.3.0: resolution: {integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==} - undici@7.27.2: - resolution: {integrity: sha512-uZsKNuzQxDMUY6M3pIMvy5tvlGmtq8XJ2oLAkfRKGNu+1VQAIvLy2xIVG5ATZl5wDXl/tddByAWCizRbOme+TA==} + undici@7.28.0: + resolution: {integrity: sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==} engines: {node: '>=20.18.1'} undici@8.7.0: @@ -5464,9 +5420,6 @@ packages: unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} - unist-util-is@6.0.1: resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} @@ -5548,8 +5501,8 @@ packages: vfile-location@5.0.3: resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} - vfile-message@4.0.2: - resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + vfile-message@4.0.3: + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} @@ -5720,8 +5673,8 @@ packages: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} engines: {node: '>= 0.4'} - which-typed-array@1.1.20: - resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} + which-typed-array@1.1.22: + resolution: {integrity: sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw==} engines: {node: '>= 0.4'} which@2.0.2: @@ -5802,9 +5755,6 @@ packages: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yallist@5.0.0: resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} engines: {node: '>=18'} @@ -5820,8 +5770,8 @@ packages: resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} engines: {node: '>=10'} - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + yargs@17.7.3: + resolution: {integrity: sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g==} engines: {node: '>=12'} yocto-queue@0.1.0: @@ -5834,8 +5784,8 @@ packages: peerDependencies: zod: ^3.25.0 || ^4.0.0 - zod@4.3.6: - resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} + zod@4.4.3: + resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==} zustand@5.0.14: resolution: {integrity: sha512-/8tAspM5LMPr28b3fwLYrtdj77ECpfZviaP75CMTnwO8ISyaE4GDIG/9rDDYq/cH9D2Xw2A2RXglLInmVBQB/g==} @@ -5872,13 +5822,13 @@ snapshots: dependencies: '@jsdevtools/ono': 7.1.3 '@types/json-schema': 7.0.15 - js-yaml: 4.2.0 + js-yaml: 5.2.1 '@asamuzakjp/css-color@5.1.11': dependencies: '@asamuzakjp/generational-cache': 1.0.1 - '@csstools/css-calc': 3.2.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) - '@csstools/css-color-parser': 4.1.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/css-calc': 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/css-color-parser': 4.1.9(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0 @@ -5894,13 +5844,13 @@ snapshots: '@asamuzakjp/nwsapi@2.3.9': {} - '@azure-rest/core-client@2.6.0': + '@azure-rest/core-client@2.7.0': dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.10.1 - '@azure/core-rest-pipeline': 1.23.0 + '@azure/core-rest-pipeline': 1.24.0 '@azure/core-tracing': 1.3.1 - '@typespec/ts-http-runtime': 0.3.5 + '@typespec/ts-http-runtime': 0.3.6 tslib: 2.8.1 transitivePeerDependencies: - supports-color @@ -5917,11 +5867,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@azure/core-client@1.10.1': + '@azure/core-client@1.10.2': dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.10.1 - '@azure/core-rest-pipeline': 1.23.0 + '@azure/core-rest-pipeline': 1.24.0 '@azure/core-tracing': 1.3.1 '@azure/core-util': 1.13.1 '@azure/logger': 1.3.0 @@ -5942,14 +5892,14 @@ snapshots: dependencies: tslib: 2.8.1 - '@azure/core-rest-pipeline@1.23.0': + '@azure/core-rest-pipeline@1.24.0': dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.10.1 '@azure/core-tracing': 1.3.1 '@azure/core-util': 1.13.1 '@azure/logger': 1.3.0 - '@typespec/ts-http-runtime': 0.3.5 + '@typespec/ts-http-runtime': 0.3.6 tslib: 2.8.1 transitivePeerDependencies: - supports-color @@ -5961,7 +5911,7 @@ snapshots: '@azure/core-util@1.13.1': dependencies: '@azure/abort-controller': 2.1.2 - '@typespec/ts-http-runtime': 0.3.5 + '@typespec/ts-http-runtime': 0.3.6 tslib: 2.8.1 transitivePeerDependencies: - supports-color @@ -5970,13 +5920,13 @@ snapshots: dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.10.1 - '@azure/core-client': 1.10.1 - '@azure/core-rest-pipeline': 1.23.0 + '@azure/core-client': 1.10.2 + '@azure/core-rest-pipeline': 1.24.0 '@azure/core-tracing': 1.3.1 '@azure/core-util': 1.13.1 '@azure/logger': 1.3.0 - '@azure/msal-browser': 5.11.0 - '@azure/msal-node': 5.2.2 + '@azure/msal-browser': 5.16.0 + '@azure/msal-node': 5.3.1 open: 10.2.0 tslib: 2.8.1 transitivePeerDependencies: @@ -5984,10 +5934,10 @@ snapshots: '@azure/keyvault-common@2.1.0': dependencies: - '@azure-rest/core-client': 2.6.0 + '@azure-rest/core-client': 2.7.0 '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.10.1 - '@azure/core-rest-pipeline': 1.23.0 + '@azure/core-rest-pipeline': 1.24.0 '@azure/core-tracing': 1.3.1 '@azure/core-util': 1.13.1 '@azure/logger': 1.3.0 @@ -5997,12 +5947,12 @@ snapshots: '@azure/keyvault-keys@4.10.2': dependencies: - '@azure-rest/core-client': 2.6.0 + '@azure-rest/core-client': 2.7.0 '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.10.1 '@azure/core-lro': 2.7.2 '@azure/core-paging': 1.6.2 - '@azure/core-rest-pipeline': 1.23.0 + '@azure/core-rest-pipeline': 1.24.0 '@azure/core-tracing': 1.3.1 '@azure/core-util': 1.13.1 '@azure/keyvault-common': 2.1.0 @@ -6013,167 +5963,139 @@ snapshots: '@azure/logger@1.3.0': dependencies: - '@typespec/ts-http-runtime': 0.3.5 + '@typespec/ts-http-runtime': 0.3.6 tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@azure/msal-browser@5.11.0': + '@azure/msal-browser@5.16.0': dependencies: - '@azure/msal-common': 16.6.2 + '@azure/msal-common': 16.11.0 - '@azure/msal-common@16.6.2': {} + '@azure/msal-common@16.11.0': {} - '@azure/msal-node@5.2.2': + '@azure/msal-node@5.3.1': dependencies: - '@azure/msal-common': 16.6.2 + '@azure/msal-common': 16.11.0 jsonwebtoken: 9.0.3 - '@babel/code-frame@7.29.0': - dependencies: - '@babel/helper-validator-identifier': 7.28.5 - js-tokens: 4.0.0 - picocolors: 1.1.1 - '@babel/code-frame@7.29.7': dependencies: '@babel/helper-validator-identifier': 7.29.7 js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.29.7': {} - - '@babel/core@7.29.7': + '@babel/code-frame@8.0.0': dependencies: - '@babel/code-frame': 7.29.7 - '@babel/generator': 7.29.7 - '@babel/helper-compilation-targets': 7.29.7 - '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) - '@babel/helpers': 7.29.7 - '@babel/parser': 7.29.7 - '@babel/template': 7.29.7 - '@babel/traverse': 7.29.7 - '@babel/types': 7.29.7 - '@jridgewell/remapping': 2.3.5 + '@babel/helper-validator-identifier': 8.0.2 + js-tokens: 10.0.0 + + '@babel/compat-data@8.0.0': {} + + '@babel/core@8.0.1': + dependencies: + '@babel/code-frame': 8.0.0 + '@babel/generator': 8.0.0 + '@babel/helper-compilation-targets': 8.0.0 + '@babel/helpers': 8.0.0 + '@babel/parser': 8.0.0 + '@babel/template': 8.0.0 + '@babel/traverse': 8.0.0 + '@babel/types': 8.0.0 + '@types/gensync': 1.0.5 convert-source-map: 2.0.0 - debug: 4.4.3(supports-color@8.1.1) + empathic: 2.0.1 gensync: 1.0.0-beta.2 + import-meta-resolve: 4.2.0 json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color + obug: 2.1.3 + semver: 7.8.5 - '@babel/generator@7.29.7': + '@babel/generator@8.0.0': dependencies: - '@babel/parser': 7.29.7 - '@babel/types': 7.29.7 + '@babel/parser': 8.0.0 + '@babel/types': 8.0.0 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 + '@types/jsesc': 2.5.1 jsesc: 3.1.0 - '@babel/helper-compilation-targets@7.29.7': + '@babel/helper-compilation-targets@8.0.0': dependencies: - '@babel/compat-data': 7.29.7 - '@babel/helper-validator-option': 7.29.7 - browserslist: 4.28.2 - lru-cache: 5.1.1 - semver: 6.3.1 + '@babel/compat-data': 8.0.0 + '@babel/helper-validator-option': 8.0.0 + browserslist: 4.28.5 + lru-cache: 11.5.1 + semver: 7.8.5 - '@babel/helper-globals@7.29.7': {} - - '@babel/helper-module-imports@7.29.7': - dependencies: - '@babel/traverse': 7.29.7 - '@babel/types': 7.29.7 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-module-imports': 7.29.7 - '@babel/helper-validator-identifier': 7.29.7 - '@babel/traverse': 7.29.7 - transitivePeerDependencies: - - supports-color - - '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-globals@8.0.0': {} '@babel/helper-string-parser@7.29.7': {} - '@babel/helper-validator-identifier@7.27.1': {} - - '@babel/helper-validator-identifier@7.28.5': {} + '@babel/helper-string-parser@8.0.0': {} '@babel/helper-validator-identifier@7.29.7': {} - '@babel/helper-validator-option@7.29.7': {} + '@babel/helper-validator-identifier@8.0.2': {} - '@babel/helpers@7.29.7': - dependencies: - '@babel/template': 7.29.7 - '@babel/types': 7.29.7 + '@babel/helper-validator-option@8.0.0': {} - '@babel/parser@7.29.2': + '@babel/helpers@8.0.0': dependencies: - '@babel/types': 7.29.0 + '@babel/template': 8.0.0 + '@babel/types': 8.0.0 '@babel/parser@7.29.7': dependencies: '@babel/types': 7.29.7 - '@babel/runtime@7.28.6': {} - - '@babel/runtime@7.29.2': {} - - '@babel/template@7.29.7': + '@babel/parser@8.0.0': dependencies: - '@babel/code-frame': 7.29.7 - '@babel/parser': 7.29.7 - '@babel/types': 7.29.7 + '@babel/types': 8.0.0 - '@babel/traverse@7.29.7': - dependencies: - '@babel/code-frame': 7.29.7 - '@babel/generator': 7.29.7 - '@babel/helper-globals': 7.29.7 - '@babel/parser': 7.29.7 - '@babel/template': 7.29.7 - '@babel/types': 7.29.7 - debug: 4.4.3(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color + '@babel/runtime@7.29.7': {} - '@babel/types@7.28.4': + '@babel/template@8.0.0': dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 + '@babel/code-frame': 8.0.0 + '@babel/parser': 8.0.0 + '@babel/types': 8.0.0 - '@babel/types@7.29.0': + '@babel/traverse@8.0.0': dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 + '@babel/code-frame': 8.0.0 + '@babel/generator': 8.0.0 + '@babel/helper-globals': 8.0.0 + '@babel/parser': 8.0.0 + '@babel/template': 8.0.0 + '@babel/types': 8.0.0 + obug: 2.1.3 '@babel/types@7.29.7': dependencies: '@babel/helper-string-parser': 7.29.7 '@babel/helper-validator-identifier': 7.29.7 + '@babel/types@8.0.0': + dependencies: + '@babel/helper-string-parser': 8.0.0 + '@babel/helper-validator-identifier': 8.0.2 + '@bramus/specificity@2.4.2': dependencies: css-tree: 3.2.1 - '@csstools/color-helpers@6.0.2': {} + '@csstools/color-helpers@6.1.0': {} - '@csstools/css-calc@3.2.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': + '@csstools/css-calc@3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': dependencies: '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0 - '@csstools/css-color-parser@4.1.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': + '@csstools/css-color-parser@4.1.9(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': dependencies: - '@csstools/color-helpers': 6.0.2 - '@csstools/css-calc': 3.2.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/color-helpers': 6.1.0 + '@csstools/css-calc': 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0 @@ -6181,7 +6103,7 @@ snapshots: dependencies: '@csstools/css-tokenizer': 4.0.0 - '@csstools/css-syntax-patches-for-csstree@1.1.3(css-tree@3.2.1)': + '@csstools/css-syntax-patches-for-csstree@1.1.6(css-tree@3.2.1)': optionalDependencies: css-tree: 3.2.1 @@ -6195,21 +6117,21 @@ snapshots: '@elastic/elasticsearch@9.4.2': dependencies: - '@elastic/transport': 9.3.6 + '@elastic/transport': 9.3.7 tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@elastic/transport@9.3.6': + '@elastic/transport@9.3.7': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.8.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) debug: 4.4.3(supports-color@8.1.1) hpagent: 1.2.0 ms: 2.1.3 secure-json-parse: 4.1.0 tslib: 2.8.1 - undici: 7.27.2 + undici: 7.28.0 transitivePeerDependencies: - supports-color @@ -6219,11 +6141,22 @@ snapshots: tslib: 2.8.1 optional: true + '@emnapi/core@1.11.2': + dependencies: + '@emnapi/wasi-threads': 1.2.2 + tslib: 2.8.1 + optional: true + '@emnapi/runtime@1.11.1': dependencies: tslib: 2.8.1 optional: true + '@emnapi/runtime@1.11.2': + dependencies: + tslib: 2.8.1 + optional: true + '@emnapi/wasi-threads@1.2.2': dependencies: tslib: 2.8.1 @@ -6339,7 +6272,7 @@ snapshots: '@eslint/core': 1.2.1 levn: 0.4.1 - '@exodus/bytes@1.15.0(@noble/hashes@1.8.0)': + '@exodus/bytes@1.15.1(@noble/hashes@1.8.0)': optionalDependencies: '@noble/hashes': 1.8.0 @@ -6374,11 +6307,6 @@ snapshots: '@jridgewell/sourcemap-codec': 1.5.5 '@jridgewell/trace-mapping': 0.3.31 - '@jridgewell/remapping@2.3.5': - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/sourcemap-codec@1.5.5': {} @@ -6396,7 +6324,7 @@ snapshots: dependencies: vary: 1.1.2 - '@koa/router@15.6.0(koa@3.2.1)': + '@koa/router@15.7.0(koa@3.2.1)': dependencies: debug: 4.4.3(supports-color@8.1.1) http-errors: 2.0.1 @@ -6406,15 +6334,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@mongodb-js/saslprep@1.4.11': + '@mongodb-js/saslprep@1.4.12': dependencies: sparse-bitfield: 3.0.3 '@napi-rs/wasm-runtime@0.2.12': dependencies: - '@emnapi/core': 1.11.1 - '@emnapi/runtime': 1.11.1 - '@tybys/wasm-util': 0.10.2 + '@emnapi/core': 1.11.2 + '@emnapi/runtime': 1.11.2 + '@tybys/wasm-util': 0.10.3 optional: true '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': @@ -6477,16 +6405,14 @@ snapshots: '@oozcitak/util@8.3.4': {} - '@opentelemetry/api@1.9.0': {} - '@opentelemetry/api@1.9.1': {} - '@opentelemetry/core@2.8.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/semantic-conventions': 1.41.1 + '@opentelemetry/semantic-conventions': 1.42.0 - '@opentelemetry/semantic-conventions@1.41.1': {} + '@opentelemetry/semantic-conventions@1.42.0': {} '@oxc-minify/binding-android-arm-eabi@0.139.0': optional: true @@ -6554,7 +6480,7 @@ snapshots: '@oxc-project/types@0.138.0': {} - '@paralleldrive/cuid2@2.2.2': + '@paralleldrive/cuid2@2.3.1': dependencies: '@noble/hashes': 1.8.0 @@ -6805,7 +6731,7 @@ snapshots: '@redocly/config@0.22.0': {} - '@redocly/openapi-core@1.34.14(supports-color@10.2.2)': + '@redocly/openapi-core@1.34.17(supports-color@10.2.2)': dependencies: '@redocly/ajv': 8.11.2 '@redocly/config': 0.22.0 @@ -6968,11 +6894,6 @@ snapshots: '@tootallnate/quickjs-emscripten@0.23.0': {} - '@tybys/wasm-util@0.10.2': - dependencies: - tslib: 2.8.1 - optional: true - '@tybys/wasm-util@0.10.3': dependencies: tslib: 2.8.1 @@ -6980,14 +6901,14 @@ snapshots: '@types/accepts@1.3.7': dependencies: - '@types/node': 26.0.0 + '@types/node': 26.1.0 '@types/async@3.2.25': {} '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 26.0.0 + '@types/node': 26.1.0 '@types/chai@5.2.3': dependencies: @@ -6996,7 +6917,7 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 26.0.0 + '@types/node': 26.1.0 '@types/content-disposition@0.5.9': {} @@ -7006,22 +6927,22 @@ snapshots: '@types/cookiejar@2.1.5': {} - '@types/cookies@0.9.1': + '@types/cookies@0.9.2': dependencies: '@types/connect': 3.4.38 '@types/express': 5.0.6 '@types/keygrip': 1.0.6 - '@types/node': 26.0.0 + '@types/node': 26.1.0 '@types/cors@2.8.19': dependencies: - '@types/node': 26.0.0 + '@types/node': 26.1.0 '@types/cross-spawn@6.0.6': dependencies: - '@types/node': 26.0.0 + '@types/node': 26.1.0 - '@types/debug@4.1.12': + '@types/debug@4.1.13': dependencies: '@types/ms': 2.1.0 @@ -7033,10 +6954,10 @@ snapshots: '@types/estree@1.0.9': {} - '@types/express-serve-static-core@5.1.0': + '@types/express-serve-static-core@5.1.1': dependencies: - '@types/node': 26.0.0 - '@types/qs': 6.14.0 + '@types/node': 26.1.0 + '@types/qs': 6.15.1 '@types/range-parser': 1.2.7 '@types/send': 1.2.1 @@ -7047,16 +6968,18 @@ snapshots: '@types/express@5.0.6': dependencies: '@types/body-parser': 1.19.6 - '@types/express-serve-static-core': 5.1.0 + '@types/express-serve-static-core': 5.1.1 '@types/serve-static': 2.2.0 '@types/formidable@3.5.1': dependencies: - '@types/node': 26.0.0 + '@types/node': 26.1.0 '@types/fs-extra@9.0.13': dependencies: - '@types/node': 26.0.0 + '@types/node': 26.1.0 + + '@types/gensync@1.0.5': {} '@types/hast@3.0.4': dependencies: @@ -7072,10 +6995,12 @@ snapshots: '@types/jsdom@28.0.3': dependencies: - '@types/node': 26.0.0 + '@types/node': 26.1.0 '@types/tough-cookie': 4.0.5 parse5: 8.0.1 - undici-types: 7.24.5 + undici-types: 7.28.0 + + '@types/jsesc@2.5.1': {} '@types/json-schema@7.0.15': {} @@ -7084,24 +7009,24 @@ snapshots: '@types/jsonwebtoken@9.0.10': dependencies: '@types/ms': 2.1.0 - '@types/node': 26.0.0 + '@types/node': 26.1.0 '@types/keygrip@1.0.6': {} - '@types/koa-compose@3.2.8': + '@types/koa-compose@3.2.9': dependencies: - '@types/koa': 3.0.0 + '@types/koa': 3.0.3 - '@types/koa@3.0.0': + '@types/koa@3.0.3': dependencies: '@types/accepts': 1.3.7 '@types/content-disposition': 0.5.9 - '@types/cookies': 0.9.1 + '@types/cookies': 0.9.2 '@types/http-assert': 1.5.6 '@types/http-errors': 2.0.5 '@types/keygrip': 1.0.6 - '@types/koa-compose': 3.2.8 - '@types/node': 26.0.0 + '@types/koa-compose': 3.2.9 + '@types/node': 26.1.0 '@types/linkify-it@5.0.0': {} @@ -7126,18 +7051,14 @@ snapshots: '@types/ms@2.1.0': {} - '@types/node-fetch@2.6.12': + '@types/node-fetch@2.6.13': dependencies: - '@types/node': 26.0.0 + '@types/node': 26.1.0 form-data: 4.0.6 - '@types/node@18.19.130': + '@types/node@20.19.43': dependencies: - undici-types: 5.26.5 - - '@types/node@26.0.0': - dependencies: - undici-types: 8.3.0 + undici-types: 6.21.0 '@types/node@26.1.0': dependencies: @@ -7145,19 +7066,19 @@ snapshots: '@types/nodemailer@8.0.1': dependencies: - '@types/node': 26.0.0 + '@types/node': 26.1.0 '@types/oidc-provider@9.5.0': dependencies: '@types/keygrip': 1.0.6 - '@types/koa': 3.0.0 - '@types/node': 26.0.0 + '@types/koa': 3.0.3 + '@types/node': 26.1.0 '@types/pdfkit@0.17.6': dependencies: - '@types/node': 26.0.0 + '@types/node': 26.1.0 - '@types/qs@6.14.0': {} + '@types/qs@6.15.1': {} '@types/range-parser@1.2.7': {} @@ -7169,20 +7090,20 @@ snapshots: dependencies: csstype: 3.2.3 - '@types/readable-stream@4.0.23': + '@types/readable-stream@4.0.24': dependencies: - '@types/node': 26.0.0 + '@types/node': 26.1.0 '@types/semver@7.7.1': {} '@types/send@1.2.1': dependencies: - '@types/node': 26.0.0 + '@types/node': 26.1.0 '@types/serve-static@2.2.0': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 26.0.0 + '@types/node': 26.1.0 '@types/sinon@22.0.0': dependencies: @@ -7190,21 +7111,21 @@ snapshots: '@types/sinonjs__fake-timers@15.0.1': {} - '@types/superagent@8.1.9': + '@types/superagent@8.1.10': dependencies: '@types/cookiejar': 2.1.5 '@types/methods': 1.1.4 - '@types/node': 26.0.0 + '@types/node': 26.1.0 form-data: 4.0.6 '@types/supertest@7.2.0': dependencies: '@types/methods': 1.1.4 - '@types/superagent': 8.1.9 + '@types/superagent': 8.1.10 '@types/tar@6.1.13': dependencies: - '@types/node': 26.0.0 + '@types/node': 26.1.0 minipass: 4.2.8 '@types/tough-cookie@4.0.5': {} @@ -7225,6 +7146,10 @@ snapshots: dependencies: '@types/webidl-conversions': 7.0.3 + '@types/ws@8.18.1': + dependencies: + '@types/node': 26.1.0 + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0)(typescript@6.0.3)': dependencies: '@eslint-community/regexpp': 4.12.2 @@ -7397,7 +7322,7 @@ snapshots: '@typescript-eslint/types': 8.63.0 eslint-visitor-keys: 5.0.1 - '@typespec/ts-http-runtime@0.3.5': + '@typespec/ts-http-runtime@0.3.6': dependencies: http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 @@ -7405,7 +7330,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@ungap/structured-clone@1.3.0': {} + '@ungap/structured-clone@1.3.2': {} '@unrs/rspack-resolver-binding-darwin-arm64@1.3.0': optional: true @@ -7530,7 +7455,7 @@ snapshots: '@vue/shared': 3.5.39 estree-walker: 2.0.2 magic-string: 0.30.21 - postcss: 8.5.15 + postcss: 8.5.16 source-map-js: 1.2.1 '@vue/compiler-ssr@3.5.39': @@ -7620,9 +7545,7 @@ snapshots: acorn@8.17.0: {} - adm-zip@0.5.17: {} - - agent-base@7.1.3: {} + adm-zip@0.5.18: {} agent-base@7.1.4: {} @@ -7640,7 +7563,7 @@ snapshots: ajv@8.20.0: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.1.2 + fast-uri: 3.1.3 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -7673,7 +7596,7 @@ snapshots: call-bound: 1.0.4 define-properties: 1.2.1 es-abstract: 1.24.2 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 get-intrinsic: 1.3.0 is-string: 1.1.1 math-intrinsics: 1.1.0 @@ -7687,7 +7610,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.24.2 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 es-shim-unscopables: 1.1.0 array.prototype.flat@1.3.3: @@ -7736,7 +7659,7 @@ snapshots: babel-plugin-react-compiler@19.1.0-rc.3: dependencies: - '@babel/types': 7.28.4 + '@babel/types': 7.29.7 bail@2.0.2: {} @@ -7750,7 +7673,7 @@ snapshots: base64id@2.0.0: {} - baseline-browser-mapping@2.10.21: {} + baseline-browser-mapping@2.10.42: {} basic-ftp@5.3.1: {} @@ -7768,7 +7691,7 @@ snapshots: bl@6.1.6: dependencies: - '@types/readable-stream': 4.0.23 + '@types/readable-stream': 4.0.24 buffer: 6.0.3 inherits: 2.0.4 readable-stream: 4.7.0 @@ -7777,17 +7700,17 @@ snapshots: bluebird@3.4.7: {} - body-parser@2.2.1: + body-parser@2.3.0: dependencies: bytes: 3.1.2 - content-type: 1.0.5 + content-type: 2.0.0 debug: 4.4.3(supports-color@8.1.1) http-errors: 2.0.1 - iconv-lite: 0.7.2 + iconv-lite: 0.7.3 on-finished: 2.4.1 - qs: 6.15.2 + qs: 6.15.3 raw-body: 3.0.2 - type-is: 2.0.1 + type-is: 2.1.0 transitivePeerDependencies: - supports-color @@ -7796,7 +7719,7 @@ snapshots: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@5.0.6: + brace-expansion@5.0.7: dependencies: balanced-match: 4.0.4 @@ -7816,15 +7739,15 @@ snapshots: dependencies: pako: 1.0.11 - browserslist@4.28.2: + browserslist@4.28.5: dependencies: - baseline-browser-mapping: 2.10.21 - caniuse-lite: 1.0.30001790 - electron-to-chromium: 1.5.343 - node-releases: 2.0.38 - update-browserslist-db: 1.2.3(browserslist@4.28.2) + baseline-browser-mapping: 2.10.42 + caniuse-lite: 1.0.30001802 + electron-to-chromium: 1.5.387 + node-releases: 2.0.50 + update-browserslist-db: 1.2.3(browserslist@4.28.5) - bson@7.2.0: {} + bson@7.3.1: {} buffer-equal-constant-time@1.0.1: {} @@ -7860,12 +7783,12 @@ snapshots: camelize@1.0.1: {} - caniuse-lite@1.0.30001790: {} + caniuse-lite@1.0.30001802: {} - cassandra-driver@4.8.0: + cassandra-driver@4.9.0: dependencies: - '@types/node': 18.19.130 - adm-zip: 0.5.17 + '@types/node': 20.19.43 + adm-zip: 0.5.18 long: 5.2.5 ccount@2.0.1: {} @@ -7927,6 +7850,8 @@ snapshots: content-disposition@1.0.1: {} + content-disposition@1.1.0: {} + content-type@1.0.5: {} content-type@2.0.0: {} @@ -7957,7 +7882,7 @@ snapshots: core-util-is@1.0.3: {} - cors@2.8.5: + cors@2.8.6: dependencies: object-assign: 4.1.1 vary: 1.1.2 @@ -8017,14 +7942,6 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.4.0: - dependencies: - ms: 2.1.3 - - debug@4.4.1: - dependencies: - ms: 2.1.3 - debug@4.4.3(supports-color@10.2.2): dependencies: ms: 2.1.3 @@ -8175,17 +8092,19 @@ snapshots: ejs@6.0.1: {} - electron-to-chromium@1.5.343: {} + electron-to-chromium@1.5.387: {} emoji-regex@8.0.0: {} + empathic@2.0.1: {} + encodeurl@2.0.0: {} enforce-range@1.0.0: dependencies: '2': 1.0.2 - engine.io-client@6.6.4: + engine.io-client@6.6.6: dependencies: '@socket.io/component-emitter': 3.1.2 debug: 4.4.3(supports-color@8.1.1) @@ -8199,14 +8118,15 @@ snapshots: engine.io-parser@5.2.3: {} - engine.io@6.6.5: + engine.io@6.6.9: dependencies: '@types/cors': 2.8.19 - '@types/node': 26.0.0 + '@types/node': 26.1.0 + '@types/ws': 8.18.1 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 - cors: 2.8.5 + cors: 2.8.6 debug: 4.4.3(supports-color@8.1.1) engine.io-parser: 5.2.3 ws: 8.21.0 @@ -8215,10 +8135,10 @@ snapshots: - supports-color - utf-8-validate - enhanced-resolve@5.20.1: + enhanced-resolve@5.24.2: dependencies: graceful-fs: 4.2.11 - tapable: 2.3.2 + tapable: 2.3.3 ent@2.2.2: dependencies: @@ -8243,6 +8163,13 @@ snapshots: string-template: 0.2.1 xtend: 4.0.2 + es-abstract-get@1.0.0: + dependencies: + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + is-callable: 1.2.7 + object-inspect: 1.13.4 + es-abstract@1.24.2: dependencies: array-buffer-byte-length: 1.0.2 @@ -8255,10 +8182,10 @@ snapshots: data-view-byte-offset: 1.0.1 es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 es-set-tostringtag: 2.1.0 - es-to-primitive: 1.3.0 - function.prototype.name: 1.1.8 + es-to-primitive: 1.3.4 + function.prototype.name: 1.2.0 get-intrinsic: 1.3.0 get-proto: 1.0.1 get-symbol-description: 1.1.0 @@ -8267,7 +8194,7 @@ snapshots: has-property-descriptors: 1.0.2 has-proto: 1.2.0 has-symbols: 1.1.0 - hasown: 2.0.3 + hasown: 2.0.4 internal-slot: 1.1.0 is-array-buffer: 3.0.5 is-callable: 1.2.7 @@ -8285,28 +8212,28 @@ snapshots: object.assign: 4.1.7 own-keys: 1.0.1 regexp.prototype.flags: 1.5.4 - safe-array-concat: 1.1.3 + safe-array-concat: 1.1.4 safe-push-apply: 1.0.0 safe-regex-test: 1.1.0 set-proto: 1.0.0 stop-iteration-iterator: 1.1.0 - string.prototype.trim: 1.2.10 - string.prototype.trimend: 1.0.9 + string.prototype.trim: 1.2.11 + string.prototype.trimend: 1.0.10 string.prototype.trimstart: 1.0.8 typed-array-buffer: 1.0.3 typed-array-byte-length: 1.0.3 typed-array-byte-offset: 1.0.4 - typed-array-length: 1.0.7 + typed-array-length: 1.0.8 unbox-primitive: 1.1.0 - which-typed-array: 1.1.20 + which-typed-array: 1.1.22 es-define-property@1.0.1: {} es-errors@1.3.0: {} - es-module-lexer@2.1.0: {} + es-module-lexer@2.3.0: {} - es-object-atoms@1.1.1: + es-object-atoms@1.1.2: dependencies: es-errors: 1.3.0 @@ -8315,14 +8242,17 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 has-tostringtag: 1.0.2 - hasown: 2.0.3 + hasown: 2.0.4 es-shim-unscopables@1.1.0: dependencies: - hasown: 2.0.3 + hasown: 2.0.4 - es-to-primitive@1.3.0: + es-to-primitive@1.3.4: dependencies: + es-abstract-get: 1.0.0 + es-define-property: 1.0.1 + es-errors: 1.3.0 is-callable: 1.2.7 is-date-object: 1.1.0 is-symbol: 1.1.1 @@ -8401,8 +8331,8 @@ snapshots: eslint-import-resolver-node@0.3.10: dependencies: debug: 3.2.7 - is-core-module: 2.16.1 - resolve: 2.0.0-next.6 + is-core-module: 2.16.2 + resolve: 2.0.0-next.7 transitivePeerDependencies: - supports-color @@ -8421,7 +8351,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0))(eslint@10.6.0): + eslint-module-utils@2.14.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0))(eslint@10.6.0): dependencies: debug: 3.2.7 optionalDependencies: @@ -8461,16 +8391,16 @@ snapshots: doctrine: 2.1.0 eslint: 10.6.0 eslint-import-resolver-node: 0.3.10 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0))(eslint@10.6.0) - hasown: 2.0.2 - is-core-module: 2.16.1 + eslint-module-utils: 2.14.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0))(eslint@10.6.0) + hasown: 2.0.4 + is-core-module: 2.16.2 is-glob: 4.0.3 minimatch: 3.1.5 object.fromentries: 2.0.8 object.groupby: 1.0.3 object.values: 1.2.1 semver: 6.3.1 - string.prototype.trimend: 1.0.9 + string.prototype.trimend: 1.0.10 tsconfig-paths: 3.15.0 optionalDependencies: '@typescript-eslint/parser': 7.18.0(eslint@10.6.0)(typescript@6.0.3) @@ -8489,7 +8419,7 @@ snapshots: eslint-plugin-n@17.24.0(eslint@10.6.0)(typescript@6.0.3): dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.6.0) - enhanced-resolve: 5.20.1 + enhanced-resolve: 5.24.2 eslint: 10.6.0 eslint-plugin-es-x: 7.8.0(eslint@10.6.0) get-tsconfig: 4.14.0 @@ -8511,14 +8441,12 @@ snapshots: eslint-plugin-react-hooks@7.1.1(eslint@10.6.0): dependencies: - '@babel/core': 7.29.7 - '@babel/parser': 7.29.2 + '@babel/core': 8.0.1 + '@babel/parser': 7.29.7 eslint: 10.6.0 hermes-parser: 0.25.1 - zod: 4.3.6 - zod-validation-error: 4.0.2(zod@4.3.6) - transitivePeerDependencies: - - supports-color + zod: 4.4.3 + zod-validation-error: 4.0.2(zod@4.4.3) eslint-plugin-react-refresh@0.5.3(eslint@10.6.0): dependencies: @@ -8628,9 +8556,9 @@ snapshots: events@3.3.0: {} - expect-type@1.3.0: {} + expect-type@1.4.0: {} - express-rate-limit@8.5.1(express@5.2.1): + express-rate-limit@8.5.2(express@5.2.1): dependencies: express: 5.2.1 ip-address: 10.2.0 @@ -8651,8 +8579,8 @@ snapshots: express@5.2.1: dependencies: accepts: 2.0.0 - body-parser: 2.2.1 - content-disposition: 1.0.1 + body-parser: 2.3.0 + content-disposition: 1.1.0 content-type: 1.0.5 cookie: 0.7.2 cookie-signature: 1.2.2 @@ -8670,13 +8598,13 @@ snapshots: once: 1.4.0 parseurl: 1.3.3 proxy-addr: 2.0.7 - qs: 6.15.2 - range-parser: 1.2.1 + qs: 6.15.3 + range-parser: 1.3.0 router: 2.2.0 - send: 1.2.0 - serve-static: 2.2.0 + send: 1.2.1 + serve-static: 2.2.1 statuses: 2.0.2 - type-is: 2.0.1 + type-is: 2.1.0 vary: 1.1.2 transitivePeerDependencies: - supports-color @@ -8699,15 +8627,15 @@ snapshots: fast-safe-stringify@2.1.1: {} - fast-uri@3.1.2: {} + fast-uri@3.1.3: {} fastq@1.20.1: dependencies: reusify: 1.1.0 - fdir@6.5.0(picomatch@4.0.4): + fdir@6.5.0(picomatch@4.0.5): optionalDependencies: - picomatch: 4.0.4 + picomatch: 4.0.5 fetch-blob@3.2.0: dependencies: @@ -8785,7 +8713,7 @@ snapshots: formidable@3.5.4: dependencies: - '@paralleldrive/cuid2': 2.2.2 + '@paralleldrive/cuid2': 2.3.1 dezalgo: 1.0.4 once: 1.4.0 @@ -8798,7 +8726,7 @@ snapshots: fs-extra@10.1.0: dependencies: graceful-fs: 4.2.11 - jsonfile: 6.1.0 + jsonfile: 6.2.1 universalify: 2.0.1 fs-extra@8.1.0: @@ -8815,14 +8743,17 @@ snapshots: function-bind@1.1.2: {} - function.prototype.name@1.1.8: + function.prototype.name@1.2.0: dependencies: call-bind: 1.0.9 call-bound: 1.0.4 - define-properties: 1.2.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 functions-have-names: 1.2.3 - hasown: 2.0.3 + has-property-descriptors: 1.0.2 + hasown: 2.0.4 is-callable: 1.2.7 + is-document.all: 1.0.0 functions-have-names@1.2.3: {} @@ -8841,12 +8772,12 @@ snapshots: call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 function-bind: 1.1.2 get-proto: 1.0.1 gopd: 1.2.0 has-symbols: 1.1.0 - hasown: 2.0.3 + hasown: 2.0.4 math-intrinsics: 1.1.0 get-nonce@1.0.1: {} @@ -8854,7 +8785,7 @@ snapshots: get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 get-symbol-description@1.1.0: dependencies: @@ -8866,7 +8797,7 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 - get-uri@6.0.4: + get-uri@6.0.5: dependencies: basic-ftp: 5.3.1 data-uri-to-buffer: 6.0.2 @@ -8939,14 +8870,6 @@ snapshots: dependencies: has-symbols: 1.1.0 - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 - - hasown@2.0.3: - dependencies: - function-bind: 1.1.2 - hasown@2.0.4: dependencies: function-bind: 1.1.2 @@ -8963,7 +8886,7 @@ snapshots: hast-util-from-parse5: 8.0.3 parse5: 7.3.0 vfile: 6.0.3 - vfile-message: 4.0.2 + vfile-message: 4.0.3 hast-util-from-parse5@8.0.3: dependencies: @@ -8971,7 +8894,7 @@ snapshots: '@types/unist': 3.0.3 devlop: 1.1.0 hastscript: 9.0.1 - property-information: 7.1.0 + property-information: 7.2.0 vfile: 6.0.3 vfile-location: 5.0.3 web-namespaces: 2.0.1 @@ -8986,7 +8909,7 @@ snapshots: hast-util-embedded: 3.0.0 hast-util-is-element: 3.0.0 hast-util-whitespace: 3.0.0 - unist-util-is: 6.0.0 + unist-util-is: 6.0.1 hast-util-parse-selector@4.0.0: dependencies: @@ -9001,7 +8924,7 @@ snapshots: hast-util-whitespace: 3.0.0 html-void-elements: 3.0.0 mdast-util-to-hast: 13.2.1 - property-information: 7.1.0 + property-information: 7.2.0 space-separated-tokens: 2.0.2 stringify-entities: 4.0.4 zwitch: 2.0.4 @@ -9015,7 +8938,7 @@ snapshots: '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 hast-util-parse-selector: 4.0.0 - property-information: 7.1.0 + property-information: 7.2.0 space-separated-tokens: 2.0.2 he@1.2.0: {} @@ -9032,7 +8955,7 @@ snapshots: html-encoding-sniffer@6.0.0(@noble/hashes@1.8.0): dependencies: - '@exodus/bytes': 1.15.0(@noble/hashes@1.8.0) + '@exodus/bytes': 1.15.1(@noble/hashes@1.8.0) transitivePeerDependencies: - '@noble/hashes' @@ -9054,7 +8977,7 @@ snapshots: jszip: 3.10.1 lodash: 4.18.1 mime-types: 2.1.35 - nanoid: 3.3.11 + nanoid: 3.3.15 virtual-dom: 2.1.1 xmlbuilder2: 2.1.2 transitivePeerDependencies: @@ -9127,13 +9050,13 @@ snapshots: i18next-browser-languagedetector@8.2.1: dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.29.7 i18next@26.3.4(typescript@6.0.3): optionalDependencies: typescript: 6.0.3 - iconv-lite@0.7.2: + iconv-lite@0.7.3: dependencies: safer-buffer: 2.1.2 @@ -9155,6 +9078,8 @@ snapshots: immediate@3.0.6: {} + import-meta-resolve@4.2.0: {} + imurmurhash@0.1.4: {} index-to-position@1.2.0: {} @@ -9166,8 +9091,8 @@ snapshots: internal-slot@1.1.0: dependencies: es-errors: 1.3.0 - hasown: 2.0.3 - side-channel: 1.1.0 + hasown: 2.0.4 + side-channel: 1.1.1 ip-address@10.2.0: {} @@ -9202,9 +9127,9 @@ snapshots: is-callable@1.2.7: {} - is-core-module@2.16.1: + is-core-module@2.16.2: dependencies: - hasown: 2.0.2 + hasown: 2.0.4 is-data-view@1.0.2: dependencies: @@ -9219,6 +9144,10 @@ snapshots: is-docker@3.0.0: {} + is-document.all@1.0.0: + dependencies: + call-bound: 1.0.4 + is-extglob@2.1.1: {} is-finalizationregistry@1.1.1: @@ -9275,7 +9204,7 @@ snapshots: call-bound: 1.0.4 gopd: 1.2.0 has-tostringtag: 1.0.2 - hasown: 2.0.3 + hasown: 2.0.4 is-set@2.0.3: {} @@ -9296,7 +9225,7 @@ snapshots: is-typed-array@1.1.15: dependencies: - which-typed-array: 1.1.20 + which-typed-array: 1.1.22 is-unicode-supported@0.1.0: {} @@ -9331,30 +9260,36 @@ snapshots: js-md5@0.8.3: {} + js-tokens@10.0.0: {} + js-tokens@4.0.0: {} js-yaml@4.2.0: dependencies: argparse: 2.0.1 + js-yaml@5.2.1: + dependencies: + argparse: 2.0.1 + jsdom@29.1.1(@noble/hashes@1.8.0): dependencies: '@asamuzakjp/css-color': 5.1.11 '@asamuzakjp/dom-selector': 7.1.1 '@bramus/specificity': 2.4.2 - '@csstools/css-syntax-patches-for-csstree': 1.1.3(css-tree@3.2.1) - '@exodus/bytes': 1.15.0(@noble/hashes@1.8.0) + '@csstools/css-syntax-patches-for-csstree': 1.1.6(css-tree@3.2.1) + '@exodus/bytes': 1.15.1(@noble/hashes@1.8.0) css-tree: 3.2.1 data-urls: 7.0.0(@noble/hashes@1.8.0) decimal.js: 10.6.0 html-encoding-sniffer: 6.0.0(@noble/hashes@1.8.0) is-potential-custom-element-name: 1.0.1 - lru-cache: 11.5.0 + lru-cache: 11.5.1 parse5: 8.0.1 saxes: 6.0.0 symbol-tree: 3.2.4 tough-cookie: 6.0.1 - undici: 7.27.2 + undici: 7.28.0 w3c-xmlserializer: 5.0.0 webidl-conversions: 8.0.1 whatwg-mimetype: 5.0.0 @@ -9385,7 +9320,7 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 - jsonfile@6.1.0: + jsonfile@6.2.1: dependencies: universalify: 2.0.1 optionalDependencies: @@ -9528,14 +9463,14 @@ snapshots: live-plugin-manager@1.1.0: dependencies: - '@types/debug': 4.1.12 + '@types/debug': 4.1.13 '@types/fs-extra': 9.0.13 '@types/lockfile': 1.0.4 - '@types/node-fetch': 2.6.12 + '@types/node-fetch': 2.6.13 '@types/semver': 7.7.1 '@types/tar': 6.1.13 '@types/url-join': 4.0.3 - debug: 4.4.1 + debug: 4.4.3(supports-color@8.1.1) fetch-blob: 4.0.0 formdata-polyfill: 4.0.10 fs-extra: 10.1.0 @@ -9543,7 +9478,7 @@ snapshots: node-fetch-commonjs: 3.3.2 proxy-agent: 6.5.0 semver: 7.8.5 - tar: 7.5.16 + tar: 7.5.19 url-join: 4.0.1 transitivePeerDependencies: - supports-color @@ -9584,7 +9519,7 @@ snapshots: log4js@6.9.1: dependencies: date-format: 4.0.14 - debug: 4.4.0 + debug: 4.4.3(supports-color@8.1.1) flatted: 3.4.2 rfdc: 1.4.1 streamroller: 3.1.5 @@ -9601,14 +9536,8 @@ snapshots: option: 0.2.4 underscore: 1.13.8 - lru-cache@11.5.0: {} - lru-cache@11.5.1: {} - lru-cache@5.1.1: - dependencies: - yallist: 3.1.1 - lru-cache@7.18.3: {} lru.min@1.1.4: {} @@ -9642,7 +9571,7 @@ snapshots: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.3.0 + '@ungap/structured-clone': 1.3.2 devlop: 1.1.0 micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 @@ -9709,7 +9638,7 @@ snapshots: minimatch@10.2.5: dependencies: - brace-expansion: 5.0.6 + brace-expansion: 5.0.7 minimatch@3.1.5: dependencies: @@ -9717,7 +9646,7 @@ snapshots: minimatch@5.1.9: dependencies: - brace-expansion: 5.0.6 + brace-expansion: 5.0.7 minimist@1.2.8: {} @@ -9744,16 +9673,16 @@ snapshots: glob: 13.0.6 he: 1.2.0 is-path-inside: 3.0.3 - js-yaml: 4.2.0 + js-yaml: 5.2.1 log-symbols: 4.1.0 minimatch: 10.2.5 ms: 2.1.3 picocolors: 1.1.1 - serialize-javascript: 7.0.5 + serialize-javascript: 7.0.7 strip-json-comments: 3.1.1 supports-color: 8.1.1 workerpool: 9.3.4 - yargs: 17.7.2 + yargs: 17.7.3 yargs-parser: 21.1.1 yargs-unparser: 2.0.0 @@ -9766,11 +9695,13 @@ snapshots: '@types/whatwg-url': 13.0.0 whatwg-url: 14.2.0 - mongodb@7.4.0: + mongodb@7.4.0(socks@2.8.9): dependencies: - '@mongodb-js/saslprep': 1.4.11 - bson: 7.2.0 + '@mongodb-js/saslprep': 1.4.12 + bson: 7.3.1 mongodb-connection-string-url: 7.0.1 + optionalDependencies: + socks: 2.8.9 ms@2.0.0: {} @@ -9781,7 +9712,7 @@ snapshots: '@tediousjs/connection-string': 1.1.0 commander: 11.1.0 debug: 4.4.3(supports-color@8.1.1) - tarn: 3.0.2 + tarn: 3.1.0 tedious: 20.0.0 transitivePeerDependencies: - supports-color @@ -9792,7 +9723,7 @@ snapshots: aws-ssl-profiles: 1.1.2 denque: 2.1.0 generate-function: 2.3.1 - iconv-lite: 0.7.2 + iconv-lite: 0.7.3 long: 5.3.2 lru.min: 1.1.4 named-placeholders: 1.1.6 @@ -9804,11 +9735,9 @@ snapshots: nano@11.0.6: {} - nanoid@3.3.11: {} + nanoid@3.3.15: {} - nanoid@3.3.12: {} - - nanoid@5.1.11: {} + nanoid@5.1.16: {} native-duplexpair@1.0.0: {} @@ -9818,13 +9747,13 @@ snapshots: negotiator@1.0.0: {} - netmask@2.0.2: {} + netmask@2.1.1: {} next-tick@0.2.2: {} node-domexception@1.0.0: {} - node-exports-info@1.6.0: + node-exports-info@1.6.2: dependencies: array.prototype.flatmap: 1.3.3 es-errors: 1.3.0 @@ -9840,7 +9769,7 @@ snapshots: dependencies: whatwg-url: 5.0.0 - node-releases@2.0.38: {} + node-releases@2.0.50: {} nodeify@1.0.1: dependencies: @@ -9860,7 +9789,7 @@ snapshots: call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 has-symbols: 1.1.0 object-keys: 1.1.1 @@ -9869,14 +9798,14 @@ snapshots: call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 object.fromentries@2.0.8: dependencies: call-bind: 1.0.9 define-properties: 1.2.1 es-abstract: 1.24.2 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 object.groupby@1.0.3: dependencies: @@ -9889,20 +9818,20 @@ snapshots: call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 obug@2.1.3: {} oidc-provider@9.9.0: dependencies: '@koa/cors': 5.0.0 - '@koa/router': 15.6.0(koa@3.2.1) + '@koa/router': 15.7.0(koa@3.2.1) debug: 4.4.3(supports-color@8.1.1) eta: 4.6.0 jose: 6.2.3 jsesc: 3.1.0 koa: 3.2.1 - nanoid: 5.1.11 + nanoid: 5.1.16 quick-lru: 7.3.0 raw-body: 3.0.2 transitivePeerDependencies: @@ -9944,7 +9873,7 @@ snapshots: mock-json-schema: 1.1.2 openapi-schema-validator: 12.1.3 openapi-types: 12.1.3 - qs: 6.15.2 + qs: 6.15.3 openapi-fetch@0.17.0: dependencies: @@ -9975,7 +9904,7 @@ snapshots: openapi-typescript@7.13.0(typescript@6.0.3): dependencies: - '@redocly/openapi-core': 1.34.14(supports-color@10.2.2) + '@redocly/openapi-core': 1.34.17(supports-color@10.2.2) ansi-colors: 4.1.3 change-case: 5.4.4 parse-json: 8.3.0 @@ -10038,7 +9967,7 @@ snapshots: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.4 debug: 4.4.3(supports-color@8.1.1) - get-uri: 6.0.4 + get-uri: 6.0.5 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 pac-resolver: 7.0.1 @@ -10049,7 +9978,7 @@ snapshots: pac-resolver@7.0.1: dependencies: degenerator: 5.0.1 - netmask: 2.0.2 + netmask: 2.1.1 pako@0.2.9: {} @@ -10057,7 +9986,7 @@ snapshots: parse-json@8.3.0: dependencies: - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.29.7 index-to-position: 1.2.0 type-fest: 4.41.0 @@ -10081,7 +10010,7 @@ snapshots: path-scurry@2.0.2: dependencies: - lru-cache: 11.5.0 + lru-cache: 11.5.1 minipass: 7.1.3 path-to-regexp@8.4.2: {} @@ -10140,7 +10069,7 @@ snapshots: picomatch@2.3.2: {} - picomatch@4.0.4: {} + picomatch@4.0.5: {} playwright-core@1.61.1: {} @@ -10158,15 +10087,9 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss@8.5.15: - dependencies: - nanoid: 3.3.12 - picocolors: 1.1.1 - source-map-js: 1.2.1 - postcss@8.5.16: dependencies: - nanoid: 3.3.12 + nanoid: 3.3.15 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -10188,14 +10111,14 @@ snapshots: prom-client@15.1.3: dependencies: - '@opentelemetry/api': 1.9.0 + '@opentelemetry/api': 1.9.1 tdigest: 0.1.2 promise@1.3.0: dependencies: is-promise: 1.0.1 - property-information@7.1.0: {} + property-information@7.2.0: {} proxy-addr@2.0.7: dependencies: @@ -10204,7 +10127,7 @@ snapshots: proxy-agent@6.5.0: dependencies: - agent-base: 7.1.3 + agent-base: 7.1.4 debug: 4.4.3(supports-color@8.1.1) http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 @@ -10221,9 +10144,10 @@ snapshots: punycode@2.3.1: {} - qs@6.15.2: + qs@6.15.3: dependencies: - side-channel: 1.1.0 + es-define-property: 1.0.1 + side-channel: 1.1.1 queue-microtask@1.2.3: {} @@ -10237,7 +10161,7 @@ snapshots: random-bytes@1.0.0: {} - range-parser@1.2.1: {} + range-parser@1.3.0: {} rate-limiter-flexible@11.2.0: {} @@ -10245,7 +10169,7 @@ snapshots: dependencies: bytes: 3.1.2 http-errors: 2.0.1 - iconv-lite: 0.7.2 + iconv-lite: 0.7.3 unpipe: 1.0.0 react-dom@19.2.7(react@19.2.7): @@ -10259,7 +10183,7 @@ snapshots: react-i18next@17.0.8(i18next@26.3.4(typescript@6.0.3))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@6.0.3): dependencies: - '@babel/runtime': 7.29.2 + '@babel/runtime': 7.29.7 html-parse-stringify: 3.0.1 i18next: 26.3.4(typescript@6.0.3) react: 19.2.7 @@ -10356,7 +10280,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.24.2 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 get-intrinsic: 1.3.0 get-proto: 1.0.1 which-builtin-type: 1.2.1 @@ -10413,15 +10337,15 @@ snapshots: resolve@1.22.12: dependencies: es-errors: 1.3.0 - is-core-module: 2.16.1 + is-core-module: 2.16.2 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - resolve@2.0.0-next.6: + resolve@2.0.0-next.7: dependencies: es-errors: 1.3.0 - is-core-module: 2.16.1 - node-exports-info: 1.6.0 + is-core-module: 2.16.2 + node-exports-info: 1.6.2 object-keys: 1.1.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -10534,7 +10458,7 @@ snapshots: rusty-store-kv-win32-arm64-msvc: 1.3.1 rusty-store-kv-win32-x64-msvc: 1.3.1 - safe-array-concat@1.1.3: + safe-array-concat@1.1.4: dependencies: call-bind: 1.0.9 call-bound: 1.0.4 @@ -10573,7 +10497,7 @@ snapshots: semver@7.8.5: {} - send@1.2.0: + send@1.2.1: dependencies: debug: 4.4.3(supports-color@8.1.1) encodeurl: 2.0.0 @@ -10584,19 +10508,19 @@ snapshots: mime-types: 3.0.2 ms: 2.1.3 on-finished: 2.4.1 - range-parser: 1.2.1 + range-parser: 1.3.0 statuses: 2.0.2 transitivePeerDependencies: - supports-color - serialize-javascript@7.0.5: {} + serialize-javascript@7.0.7: {} - serve-static@2.2.0: + serve-static@2.2.1: dependencies: encodeurl: 2.0.0 escape-html: 1.0.3 parseurl: 1.3.3 - send: 1.2.0 + send: 1.2.1 transitivePeerDependencies: - supports-color @@ -10624,7 +10548,7 @@ snapshots: dependencies: dunder-proto: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 setimmediate@1.0.5: {} @@ -10667,7 +10591,7 @@ snapshots: object-inspect: 1.13.4 side-channel-map: 1.0.1 - side-channel@1.1.0: + side-channel@1.1.1: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 @@ -10690,7 +10614,7 @@ snapshots: smart-buffer@4.2.0: {} - socket.io-adapter@2.5.6: + socket.io-adapter@2.5.8: dependencies: debug: 4.4.3(supports-color@8.1.1) ws: 8.21.0 @@ -10703,7 +10627,7 @@ snapshots: dependencies: '@socket.io/component-emitter': 3.1.2 debug: 4.4.3(supports-color@8.1.1) - engine.io-client: 6.6.4 + engine.io-client: 6.6.6 socket.io-parser: 4.2.6 transitivePeerDependencies: - bufferutil @@ -10721,10 +10645,10 @@ snapshots: dependencies: accepts: 1.3.8 base64id: 2.0.0 - cors: 2.8.5 + cors: 2.8.6 debug: 4.4.3(supports-color@8.1.1) - engine.io: 6.6.5 - socket.io-adapter: 2.5.6 + engine.io: 6.6.9 + socket.io-adapter: 2.5.8 socket.io-parser: 4.2.6 transitivePeerDependencies: - bufferutil @@ -10735,11 +10659,11 @@ snapshots: dependencies: agent-base: 7.1.4 debug: 4.4.3(supports-color@8.1.1) - socks: 2.8.5 + socks: 2.8.9 transitivePeerDependencies: - supports-color - socks@2.8.5: + socks@2.8.9: dependencies: ip-address: 10.2.0 smart-buffer: 4.2.0 @@ -10783,7 +10707,7 @@ snapshots: streamroller@3.1.5: dependencies: date-format: 4.0.14 - debug: 4.4.0 + debug: 4.4.3(supports-color@8.1.1) fs-extra: 8.1.0 transitivePeerDependencies: - supports-color @@ -10796,28 +10720,29 @@ snapshots: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - string.prototype.trim@1.2.10: + string.prototype.trim@1.2.11: dependencies: call-bind: 1.0.9 call-bound: 1.0.4 define-data-property: 1.1.4 define-properties: 1.2.1 es-abstract: 1.24.2 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 has-property-descriptors: 1.0.2 + safe-regex-test: 1.1.0 - string.prototype.trimend@1.0.9: + string.prototype.trimend@1.0.10: dependencies: call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 string.prototype.trimstart@1.0.8: dependencies: call-bind: 1.0.9 define-properties: 1.2.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 string_decoder@1.1.1: dependencies: @@ -10850,7 +10775,7 @@ snapshots: formidable: 3.5.4 methods: 1.1.2 mime: 2.6.0 - qs: 6.15.2 + qs: 6.15.3 transitivePeerDependencies: - supports-color @@ -10886,9 +10811,9 @@ snapshots: tabbable@6.5.0: {} - tapable@2.3.2: {} + tapable@2.3.3: {} - tar@7.5.16: + tar@7.5.19: dependencies: '@isaacs/fs-minipass': 4.0.1 chownr: 3.0.0 @@ -10896,7 +10821,7 @@ snapshots: minizlib: 3.1.0 yallist: 5.0.0 - tarn@3.0.2: {} + tarn@3.1.0: {} tdigest@0.1.2: dependencies: @@ -10908,9 +10833,9 @@ snapshots: '@azure/identity': 4.13.1 '@azure/keyvault-keys': 4.10.2 '@js-joda/core': 6.0.1 - '@types/node': 26.0.0 + '@types/node': 26.1.0 bl: 6.1.6 - iconv-lite: 0.7.2 + iconv-lite: 0.7.3 js-md4: 0.3.2 native-duplexpair: 1.0.0 sprintf-js: 1.1.3 @@ -10927,16 +10852,16 @@ snapshots: tinyglobby@0.2.17: dependencies: - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 + fdir: 6.5.0(picomatch@4.0.5) + picomatch: 4.0.5 tinyrainbow@3.1.0: {} - tldts-core@7.0.29: {} + tldts-core@7.4.6: {} - tldts@7.0.29: + tldts@7.4.6: dependencies: - tldts-core: 7.0.29 + tldts-core: 7.4.6 to-regex-range@5.0.1: dependencies: @@ -10946,7 +10871,7 @@ snapshots: tough-cookie@6.0.1: dependencies: - tldts: 7.0.29 + tldts: 7.4.6 tr46@0.0.3: {} @@ -10972,7 +10897,7 @@ snapshots: ts-declaration-location@1.0.7(typescript@6.0.3): dependencies: - picomatch: 4.0.4 + picomatch: 4.0.5 typescript: 6.0.3 tsconfig-paths@3.15.0: @@ -11004,12 +10929,6 @@ snapshots: type-fest@4.41.0: {} - type-is@2.0.1: - dependencies: - content-type: 1.0.5 - media-typer: 1.1.0 - mime-types: 3.0.2 - type-is@2.1.0: dependencies: content-type: 2.0.0 @@ -11040,7 +10959,7 @@ snapshots: is-typed-array: 1.1.15 reflect.getprototypeof: 1.0.10 - typed-array-length@1.0.7: + typed-array-length@1.0.8: dependencies: call-bind: 1.0.9 for-each: 0.3.5 @@ -11051,13 +10970,13 @@ snapshots: typescript@6.0.3: {} - ueberdb2@6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.4.0)(mssql@12.7.0)(mysql2@3.22.6(@types/node@26.1.0))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)): + ueberdb2@6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.22.6(@types/node@26.1.0))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)): optionalDependencies: '@elastic/elasticsearch': 9.4.2 async: 3.2.6 - cassandra-driver: 4.8.0 + cassandra-driver: 4.9.0 dirty-ts: 1.1.8 - mongodb: 7.4.0 + mongodb: 7.4.0(socks@2.8.9) mssql: 12.7.0 mysql2: 3.22.6(@types/node@26.1.0) nano: 11.0.6 @@ -11080,13 +10999,13 @@ snapshots: underscore@1.13.8: {} - undici-types@5.26.5: {} + undici-types@6.21.0: {} - undici-types@7.24.5: {} + undici-types@7.28.0: {} undici-types@8.3.0: {} - undici@7.27.2: {} + undici@7.28.0: {} undici@8.7.0: {} @@ -11110,10 +11029,6 @@ snapshots: trough: 2.2.0 vfile: 6.0.3 - unist-util-is@6.0.0: - dependencies: - '@types/unist': 3.0.3 - unist-util-is@6.0.1: dependencies: '@types/unist': 3.0.3 @@ -11143,9 +11058,9 @@ snapshots: unpipe@1.0.0: {} - update-browserslist-db@1.2.3(browserslist@4.28.2): + update-browserslist-db@1.2.3(browserslist@4.28.5): dependencies: - browserslist: 4.28.2 + browserslist: 4.28.5 escalade: 3.2.0 picocolors: 1.1.1 @@ -11187,7 +11102,7 @@ snapshots: '@types/unist': 3.0.3 vfile: 6.0.3 - vfile-message@4.0.2: + vfile-message@4.0.3: dependencies: '@types/unist': 3.0.3 unist-util-stringify-position: 4.0.0 @@ -11195,7 +11110,7 @@ snapshots: vfile@6.0.3: dependencies: '@types/unist': 3.0.3 - vfile-message: 4.0.2 + vfile-message: 4.0.3 virtual-dom@2.1.1: dependencies: @@ -11208,15 +11123,15 @@ snapshots: x-is-array: 0.1.0 x-is-string: 0.1.0 - vite-plugin-babel@1.7.3(@babel/core@7.29.7)(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0)): + vite-plugin-babel@1.7.3(@babel/core@8.0.1)(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0)): dependencies: - '@babel/core': 7.29.7 + '@babel/core': 8.0.1 vite: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0) vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0): dependencies: lightningcss: 1.32.0 - picomatch: 4.0.4 + picomatch: 4.0.5 postcss: 8.5.16 rolldown: 1.1.4 tinyglobby: 0.2.17 @@ -11284,12 +11199,12 @@ snapshots: '@vitest/snapshot': 4.1.10 '@vitest/spy': 4.1.10 '@vitest/utils': 4.1.10 - es-module-lexer: 2.1.0 - expect-type: 1.3.0 + es-module-lexer: 2.3.0 + expect-type: 1.4.0 magic-string: 0.30.21 obug: 2.1.3 pathe: 2.0.3 - picomatch: 4.0.4 + picomatch: 4.0.5 std-env: 4.1.0 tinybench: 2.9.0 tinyexec: 1.2.4 @@ -11339,7 +11254,7 @@ snapshots: whatwg-url@16.0.1(@noble/hashes@1.8.0): dependencies: - '@exodus/bytes': 1.15.0(@noble/hashes@1.8.0) + '@exodus/bytes': 1.15.1(@noble/hashes@1.8.0) tr46: 6.0.0 webidl-conversions: 8.0.1 transitivePeerDependencies: @@ -11361,7 +11276,7 @@ snapshots: which-builtin-type@1.2.1: dependencies: call-bound: 1.0.4 - function.prototype.name: 1.1.8 + function.prototype.name: 1.2.0 has-tostringtag: 1.0.2 is-async-function: 2.1.1 is-date-object: 1.1.0 @@ -11372,7 +11287,7 @@ snapshots: isarray: 2.0.5 which-boxed-primitive: 1.1.1 which-collection: 1.0.2 - which-typed-array: 1.1.20 + which-typed-array: 1.1.22 which-collection@1.0.2: dependencies: @@ -11381,7 +11296,7 @@ snapshots: is-weakmap: 2.0.2 is-weakset: 2.0.4 - which-typed-array@1.1.20: + which-typed-array@1.1.22: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.9 @@ -11442,8 +11357,6 @@ snapshots: y18n@5.0.8: {} - yallist@3.1.1: {} - yallist@5.0.0: {} yaml-ast-parser@0.0.43: {} @@ -11457,7 +11370,7 @@ snapshots: flat: 5.0.2 is-plain-obj: 2.1.0 - yargs@17.7.2: + yargs@17.7.3: dependencies: cliui: 8.0.1 escalade: 3.2.0 @@ -11469,11 +11382,11 @@ snapshots: yocto-queue@0.1.0: {} - zod-validation-error@4.0.2(zod@4.3.6): + zod-validation-error@4.0.2(zod@4.4.3): dependencies: - zod: 4.3.6 + zod: 4.4.3 - zod@4.3.6: {} + zod@4.4.3: {} zustand@5.0.14(@types/react@19.2.17)(react@19.2.7)(use-sync-external-store@1.6.0(react@19.2.7)): optionalDependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 3e6b40fbf..d7239284c 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -44,3 +44,15 @@ overrides: uuid@<14.0.0: '>=14.0.0' vite@>=7.0.0 <7.3.2: '>=7.3.2' ws@>=8.0.0 <8.21.0: '>=8.21.0' +minimumReleaseAgeExclude: + - '@radix-ui/primitive@1.1.5' + - '@radix-ui/react-collection@1.1.12' + - '@radix-ui/react-context@1.2.0' + - '@radix-ui/react-dialog@1.1.19' + - '@radix-ui/react-dismissable-layer@1.1.15' + - '@radix-ui/react-focus-scope@1.1.12' + - '@radix-ui/react-presence@1.1.7' + - '@radix-ui/react-toast@1.2.19' + - mysql2@3.22.6 + - oidc-provider@9.9.0 + - sql-escaper@1.4.0 From 451df9f01c50c41c71e19fb73bb0679e8cb2756d Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Thu, 9 Jul 2026 14:03:51 +0200 Subject: [PATCH 38/74] Localisation updates from https://translatewiki.net. --- src/locales/ar.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/ar.json b/src/locales/ar.json index 882e1e618..907920f12 100644 --- a/src/locales/ar.json +++ b/src/locales/ar.json @@ -124,7 +124,7 @@ "pad.importExport.exportword": "مايكروسوفت وورد", "pad.importExport.exportpdf": "صيغة المستندات المحمولة", "pad.importExport.exportopen": "ODF (نسق المستند المفتوح)", - "pad.importExport.noConverter.innerHTML": "لا يمكنك الاستيراد إلا من تنسيقات النصوص العادية أو تنسيقات HTML. لمزيد من ميزات الاستيراد المتقدمة، يرجى تثبيت LibreOffice .", + "pad.importExport.noConverter.innerHTML": "يمكنك استيراد النصوص العادية، وملفات HTML، وملفات Microsoft Word (.docx)، وملفات Etherpad مباشرةً. لاستيراد تنسيقات أخرى مثل PDF، وODT، وDOC، وRTF، يحتاج مسؤول الخادم إلى تثبيت LibreOffice - راجع وثائق Etherpad .", "pad.modals.connected": "متصل.", "pad.modals.reconnecting": "إعادة الاتصال ببادك..", "pad.modals.forcereconnect": "فرض إعادة الاتصال", From c045fcf698c20220fc5ddd69e3939dcc6e9da0e5 Mon Sep 17 00:00:00 2001 From: John McLear Date: Thu, 9 Jul 2026 15:23:00 +0100 Subject: [PATCH 39/74] housekeeping: Configure cooldown for Docker dependency updates Added cooldown settings for Docker dependencies. --- .github/dependabot.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 1e7ac79ed..0056e7b43 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -9,6 +9,13 @@ updates: directory: "/" schedule: interval: "daily" + cooldown: + default-days: 1 # fallback for anything not covered below + semver-major-days: 7 + semver-minor-days: 3 + semver-patch-days: 1 + include: + - "*" - package-ecosystem: "npm" directory: "/" schedule: @@ -17,4 +24,4 @@ updates: open-pull-requests-limit: 30 groups: dev-dependencies: - dependency-type: "development" \ No newline at end of file + dependency-type: "development" From 194f1449408b30fd64b2dc5d6392e4e49f0f349b Mon Sep 17 00:00:00 2001 From: John McLear Date: Thu, 9 Jul 2026 15:24:26 +0100 Subject: [PATCH 40/74] housekeeping: Adjust dependabot cooldown settings for NPM Removed cooldown settings for Docker package ecosystem and added them for NPM. --- .github/dependabot.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 0056e7b43..e7fcee26f 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -9,13 +9,6 @@ updates: directory: "/" schedule: interval: "daily" - cooldown: - default-days: 1 # fallback for anything not covered below - semver-major-days: 7 - semver-minor-days: 3 - semver-patch-days: 1 - include: - - "*" - package-ecosystem: "npm" directory: "/" schedule: @@ -25,3 +18,10 @@ updates: groups: dev-dependencies: dependency-type: "development" + cooldown: + default-days: 1 # fallback for anything not covered below + semver-major-days: 7 + semver-minor-days: 3 + semver-patch-days: 1 + include: + - "*" From 0aba424357b0c4926b50c1825d347081cfcbb244 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 9 Jul 2026 16:51:09 +0100 Subject: [PATCH 41/74] build(deps-dev): bump the dev-dependencies group across 1 directory with 2 updates (#8041) Bumps the dev-dependencies group with 2 updates in the / directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) and [i18next](https://github.com/i18next/i18next). Updates `@types/node` from 26.1.0 to 26.1.1 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `i18next` from 26.3.4 to 26.3.5 - [Release notes](https://github.com/i18next/i18next/releases) - [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md) - [Commits](https://github.com/i18next/i18next/compare/v26.3.4...v26.3.5) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 26.1.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: i18next dependency-version: 26.3.5 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- admin/package.json | 2 +- bin/package.json | 2 +- pnpm-lock.yaml | 376 +++++++++++++++++++++++++-------------------- src/package.json | 2 +- 4 files changed, 211 insertions(+), 171 deletions(-) diff --git a/admin/package.json b/admin/package.json index aba545c1b..a768e6167 100644 --- a/admin/package.json +++ b/admin/package.json @@ -34,7 +34,7 @@ "eslint": "^10.6.0", "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-react-refresh": "^0.5.3", - "i18next": "^26.3.4", + "i18next": "^26.3.5", "i18next-browser-languagedetector": "^8.2.1", "lucide-react": "^1.23.0", "openapi-typescript": "^7.13.0", diff --git a/bin/package.json b/bin/package.json index 3e2ef3029..e307ce8e9 100644 --- a/bin/package.json +++ b/bin/package.json @@ -14,7 +14,7 @@ "ueberdb2": "6.1.15" }, "devDependencies": { - "@types/node": "^26.1.0", + "@types/node": "^26.1.1", "@types/semver": "^7.7.1", "typescript": "^6.0.3" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e78db8e60..b9100d0f6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -85,28 +85,28 @@ importers: version: 19.2.3(@types/react@19.2.17) '@typescript-eslint/eslint-plugin': specifier: ^8.63.0 - version: 8.63.0(@typescript-eslint/parser@8.63.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0)(typescript@6.0.3) + version: 8.63.0(@typescript-eslint/parser@8.63.0(eslint@10.6.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.6.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) '@typescript-eslint/parser': specifier: ^8.63.0 - version: 8.63.0(eslint@10.6.0)(typescript@6.0.3) + version: 8.63.0(eslint@10.6.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) '@vitejs/plugin-react': specifier: ^6.0.3 - version: 6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0)) + version: 6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0)) babel-plugin-react-compiler: specifier: 19.1.0-rc.3 version: 19.1.0-rc.3 eslint: specifier: ^10.6.0 - version: 10.6.0 + version: 10.6.0(supports-color@8.1.1) eslint-plugin-react-hooks: specifier: ^7.1.1 - version: 7.1.1(eslint@10.6.0) + version: 7.1.1(eslint@10.6.0(supports-color@8.1.1)) eslint-plugin-react-refresh: specifier: ^0.5.3 - version: 0.5.3(eslint@10.6.0) + version: 0.5.3(eslint@10.6.0(supports-color@8.1.1)) i18next: - specifier: ^26.3.4 - version: 26.3.4(typescript@6.0.3) + specifier: ^26.3.5 + version: 26.3.5(typescript@6.0.3) i18next-browser-languagedetector: specifier: ^8.2.1 version: 8.2.1 @@ -127,13 +127,13 @@ importers: version: 7.81.0(react@19.2.7) react-i18next: specifier: ^17.0.8 - version: 17.0.8(i18next@26.3.4(typescript@6.0.3))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@6.0.3) + version: 17.0.8(i18next@26.3.5(typescript@6.0.3))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@6.0.3) react-router-dom: specifier: ^7.18.1 version: 7.18.1(react-dom@19.2.7(react@19.2.7))(react@19.2.7) socket.io-client: specifier: ^4.8.3 - version: 4.8.3 + version: 4.8.3(supports-color@8.1.1) tsx: specifier: ^4.23.0 version: 4.23.0 @@ -142,10 +142,10 @@ importers: version: 6.0.3 vite: specifier: ^8.1.3 - version: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0) + version: 8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) vite-plugin-babel: specifier: ^1.7.3 - version: 1.7.3(@babel/core@8.0.1)(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0)) + version: 1.7.3(@babel/core@8.0.1)(vite@8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0)) zustand: specifier: ^5.0.14 version: 5.0.14(@types/react@19.2.17)(react@19.2.7)(use-sync-external-store@1.6.0(react@19.2.7)) @@ -157,7 +157,7 @@ importers: version: link:../src log4js: specifier: ^6.9.1 - version: 6.9.1 + version: 6.9.1(supports-color@8.1.1) semver: specifier: ^7.8.5 version: 7.8.5 @@ -166,11 +166,11 @@ importers: version: 4.23.0 ueberdb2: specifier: 6.1.15 - version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.22.6(@types/node@26.1.0))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.22.6(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) devDependencies: '@types/node': - specifier: ^26.1.0 - version: 26.1.0 + specifier: ^26.1.1 + version: 26.1.1 '@types/semver': specifier: ^7.7.1 version: 7.7.1 @@ -189,7 +189,7 @@ importers: version: 0.139.0 vitepress: specifier: ^2.0.0-alpha.18 - version: 2.0.0-alpha.18(@types/node@26.1.0)(change-case@5.4.4)(esbuild@0.28.1)(jwt-decode@4.0.0)(postcss@8.5.16)(tsx@4.23.0)(typescript@6.0.3) + version: 2.0.0-alpha.18(@types/node@26.1.1)(change-case@5.4.4)(esbuild@0.28.1)(jwt-decode@4.0.0)(postcss@8.5.16)(tsx@4.23.0)(typescript@6.0.3) src: dependencies: @@ -222,10 +222,10 @@ importers: version: 0.28.1 express: specifier: ^5.2.1 - version: 5.2.1 + version: 5.2.1(supports-color@8.1.1) express-rate-limit: specifier: ^8.5.1 - version: 8.5.2(express@5.2.1) + version: 8.5.2(express@5.2.1(supports-color@8.1.1)) express-session: specifier: ^1.19.0 version: 1.19.0 @@ -264,13 +264,13 @@ importers: version: 0.1.3 live-plugin-manager: specifier: ^1.1.0 - version: 1.1.0 + version: 1.1.0(supports-color@8.1.1) lodash.clonedeep: specifier: 4.5.0 version: 4.5.0 log4js: specifier: ^6.9.1 - version: 6.9.1 + version: 6.9.1(supports-color@8.1.1) lru-cache: specifier: ^11.5.1 version: 11.5.1 @@ -291,7 +291,7 @@ importers: version: 12.7.0 mysql2: specifier: ^3.22.6 - version: 3.22.6(@types/node@26.1.0) + version: 3.22.6(@types/node@26.1.1) nano: specifier: ^11.0.6 version: 11.0.6 @@ -300,7 +300,7 @@ importers: version: 9.0.3 oidc-provider: specifier: 9.9.0 - version: 9.9.0 + version: 9.9.0(supports-color@8.1.1) openapi-backend: specifier: ^5.18.0 version: 5.18.0 @@ -342,10 +342,10 @@ importers: version: 7.8.5 socket.io: specifier: ^4.8.3 - version: 4.8.3 + version: 4.8.3(supports-color@8.1.1) socket.io-client: specifier: ^4.8.3 - version: 4.8.3 + version: 4.8.3(supports-color@8.1.1) superagent: specifier: 10.3.0 version: 10.3.0 @@ -360,7 +360,7 @@ importers: version: 4.23.0 ueberdb2: specifier: 6.1.15 - version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.22.6(@types/node@26.1.0))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.22.6(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) underscore: specifier: 1.13.8 version: 1.13.8 @@ -417,8 +417,8 @@ importers: specifier: ^10.0.9 version: 10.0.10 '@types/node': - specifier: ^26.1.0 - version: 26.1.0 + specifier: ^26.1.1 + version: 26.1.1 '@types/nodemailer': specifier: ^8.0.1 version: 8.0.1 @@ -451,7 +451,7 @@ importers: version: 10.6.0 eslint-config-etherpad: specifier: ^4.0.5 - version: 4.0.5(eslint@10.6.0)(typescript@6.0.3) + version: 4.0.5(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3) etherpad-cli-client: specifier: ^4.0.3 version: 4.0.3 @@ -484,7 +484,7 @@ importers: version: 6.0.3 vitest: specifier: ^4.1.10 - version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.0)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0)) + version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0)) ui: devDependencies: @@ -496,7 +496,7 @@ importers: version: 6.0.3 vite: specifier: ^8.1.3 - version: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0) + version: 8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) packages: @@ -1858,8 +1858,8 @@ packages: '@types/node@20.19.43': resolution: {integrity: sha512-6oYBAi5ikg4Pl+kGsoYtawUMBT2zZMCvPNF7pVLnHZfd1zf38DRiWn/gT01RYCdUqkv7Fhr+C9ot4/tb+2sVvA==} - '@types/node@26.1.0': - resolution: {integrity: sha512-O0A1G3xPGy4w7AgQdAQYUlQ+BKk2Oovw8eRpofyp5KdBZULnbe+WqaOVNrm705SHphCiG4XHsACrSmPu1f+Kgw==} + '@types/node@26.1.1': + resolution: {integrity: sha512-nxAkRSVkN1Y0JC1W8ky/fTfkGsMmcrRsbx+3XoZE+rMOX71kLYTV7fLXpqud1GpbpP5TuffXFqfX7fH2GgZREw==} '@types/nodemailer@8.0.1': resolution: {integrity: sha512-PxpaInm8V1JQDd4j0ds5HfvWQk8JupS1C0Picb96QJsrrRDjBH+DlK7L4ZdNSqNULhiZRQHc40nLVShaGxXAMw==} @@ -3560,8 +3560,8 @@ packages: i18next-browser-languagedetector@8.2.1: resolution: {integrity: sha512-bZg8+4bdmaOiApD7N7BPT9W8MLZG+nPTOFlLiJiT8uzKXFjhxw4v2ierCXOwB5sFDMtuA5G4kgYZ0AznZxQ/cw==} - i18next@26.3.4: - resolution: {integrity: sha512-pa7m0d7pBDqGHZxljT+WPFeyFgQ7P7SciPPo1tTqYuO0z4sqADYhwnBESmmGp/wEof1inwdls/k8ZgTg8rxFHA==} + i18next@26.3.5: + resolution: {integrity: sha512-cd5lgkvjYQAPDfP3bbrAIE1wJmjTIlsrsjDqlvsHn4wFAerP5O0NfAe8RiDcXRfukN5ETe7Tlmfp6DkyuqDn6Q==} peerDependencies: typescript: ^5 || ^6 peerDependenciesMeta: @@ -6242,6 +6242,11 @@ snapshots: '@esbuild/win32-x64@0.28.1': optional: true + '@eslint-community/eslint-utils@4.9.1(eslint@10.6.0(supports-color@8.1.1))': + dependencies: + eslint: 10.6.0(supports-color@8.1.1) + eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils@4.9.1(eslint@10.6.0)': dependencies: eslint: 10.6.0 @@ -6249,7 +6254,7 @@ snapshots: '@eslint-community/regexpp@4.12.2': {} - '@eslint/config-array@0.23.5': + '@eslint/config-array@0.23.5(supports-color@8.1.1)': dependencies: '@eslint/object-schema': 3.0.5 debug: 4.4.3(supports-color@8.1.1) @@ -6324,7 +6329,7 @@ snapshots: dependencies: vary: 1.1.2 - '@koa/router@15.7.0(koa@3.2.1)': + '@koa/router@15.7.0(koa@3.2.1)(supports-color@8.1.1)': dependencies: debug: 4.4.3(supports-color@8.1.1) http-errors: 2.0.1 @@ -6901,14 +6906,14 @@ snapshots: '@types/accepts@1.3.7': dependencies: - '@types/node': 26.1.0 + '@types/node': 26.1.1 '@types/async@3.2.25': {} '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 26.1.0 + '@types/node': 26.1.1 '@types/chai@5.2.3': dependencies: @@ -6917,7 +6922,7 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 26.1.0 + '@types/node': 26.1.1 '@types/content-disposition@0.5.9': {} @@ -6932,15 +6937,15 @@ snapshots: '@types/connect': 3.4.38 '@types/express': 5.0.6 '@types/keygrip': 1.0.6 - '@types/node': 26.1.0 + '@types/node': 26.1.1 '@types/cors@2.8.19': dependencies: - '@types/node': 26.1.0 + '@types/node': 26.1.1 '@types/cross-spawn@6.0.6': dependencies: - '@types/node': 26.1.0 + '@types/node': 26.1.1 '@types/debug@4.1.13': dependencies: @@ -6956,7 +6961,7 @@ snapshots: '@types/express-serve-static-core@5.1.1': dependencies: - '@types/node': 26.1.0 + '@types/node': 26.1.1 '@types/qs': 6.15.1 '@types/range-parser': 1.2.7 '@types/send': 1.2.1 @@ -6973,11 +6978,11 @@ snapshots: '@types/formidable@3.5.1': dependencies: - '@types/node': 26.1.0 + '@types/node': 26.1.1 '@types/fs-extra@9.0.13': dependencies: - '@types/node': 26.1.0 + '@types/node': 26.1.1 '@types/gensync@1.0.5': {} @@ -6995,7 +7000,7 @@ snapshots: '@types/jsdom@28.0.3': dependencies: - '@types/node': 26.1.0 + '@types/node': 26.1.1 '@types/tough-cookie': 4.0.5 parse5: 8.0.1 undici-types: 7.28.0 @@ -7009,7 +7014,7 @@ snapshots: '@types/jsonwebtoken@9.0.10': dependencies: '@types/ms': 2.1.0 - '@types/node': 26.1.0 + '@types/node': 26.1.1 '@types/keygrip@1.0.6': {} @@ -7026,7 +7031,7 @@ snapshots: '@types/http-errors': 2.0.5 '@types/keygrip': 1.0.6 '@types/koa-compose': 3.2.9 - '@types/node': 26.1.0 + '@types/node': 26.1.1 '@types/linkify-it@5.0.0': {} @@ -7053,30 +7058,30 @@ snapshots: '@types/node-fetch@2.6.13': dependencies: - '@types/node': 26.1.0 + '@types/node': 26.1.1 form-data: 4.0.6 '@types/node@20.19.43': dependencies: undici-types: 6.21.0 - '@types/node@26.1.0': + '@types/node@26.1.1': dependencies: undici-types: 8.3.0 '@types/nodemailer@8.0.1': dependencies: - '@types/node': 26.1.0 + '@types/node': 26.1.1 '@types/oidc-provider@9.5.0': dependencies: '@types/keygrip': 1.0.6 '@types/koa': 3.0.3 - '@types/node': 26.1.0 + '@types/node': 26.1.1 '@types/pdfkit@0.17.6': dependencies: - '@types/node': 26.1.0 + '@types/node': 26.1.1 '@types/qs@6.15.1': {} @@ -7092,18 +7097,18 @@ snapshots: '@types/readable-stream@4.0.24': dependencies: - '@types/node': 26.1.0 + '@types/node': 26.1.1 '@types/semver@7.7.1': {} '@types/send@1.2.1': dependencies: - '@types/node': 26.1.0 + '@types/node': 26.1.1 '@types/serve-static@2.2.0': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 26.1.0 + '@types/node': 26.1.1 '@types/sinon@22.0.0': dependencies: @@ -7115,7 +7120,7 @@ snapshots: dependencies: '@types/cookiejar': 2.1.5 '@types/methods': 1.1.4 - '@types/node': 26.1.0 + '@types/node': 26.1.1 form-data: 4.0.6 '@types/supertest@7.2.0': @@ -7125,7 +7130,7 @@ snapshots: '@types/tar@6.1.13': dependencies: - '@types/node': 26.1.0 + '@types/node': 26.1.1 minipass: 4.2.8 '@types/tough-cookie@4.0.5': {} @@ -7148,14 +7153,14 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 26.1.0 + '@types/node': 26.1.1 - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0)(typescript@6.0.3)': + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 7.18.0(eslint@10.6.0)(typescript@6.0.3) + '@typescript-eslint/parser': 7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3) '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@10.6.0)(typescript@6.0.3) + '@typescript-eslint/type-utils': 7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3) '@typescript-eslint/utils': 7.18.0(eslint@10.6.0)(typescript@6.0.3) '@typescript-eslint/visitor-keys': 7.18.0 eslint: 10.6.0 @@ -7168,15 +7173,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.63.0(@typescript-eslint/parser@8.63.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0)(typescript@6.0.3)': + '@typescript-eslint/eslint-plugin@8.63.0(@typescript-eslint/parser@8.63.0(eslint@10.6.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.6.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.63.0(eslint@10.6.0)(typescript@6.0.3) + '@typescript-eslint/parser': 8.63.0(eslint@10.6.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) '@typescript-eslint/scope-manager': 8.63.0 - '@typescript-eslint/type-utils': 8.63.0(eslint@10.6.0)(typescript@6.0.3) - '@typescript-eslint/utils': 8.63.0(eslint@10.6.0)(typescript@6.0.3) + '@typescript-eslint/type-utils': 8.63.0(eslint@10.6.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) + '@typescript-eslint/utils': 8.63.0(eslint@10.6.0(supports-color@8.1.1))(typescript@6.0.3) '@typescript-eslint/visitor-keys': 8.63.0 - eslint: 10.6.0 + eslint: 10.6.0(supports-color@8.1.1) ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.5.0(typescript@6.0.3) @@ -7184,11 +7189,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3)': + '@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3)': dependencies: '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 7.18.0(supports-color@8.1.1)(typescript@6.0.3) '@typescript-eslint/visitor-keys': 7.18.0 debug: 4.4.3(supports-color@8.1.1) eslint: 10.6.0 @@ -7197,19 +7202,19 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.63.0(eslint@10.6.0)(typescript@6.0.3)': + '@typescript-eslint/parser@8.63.0(eslint@10.6.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3)': dependencies: '@typescript-eslint/scope-manager': 8.63.0 '@typescript-eslint/types': 8.63.0 - '@typescript-eslint/typescript-estree': 8.63.0(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.63.0(supports-color@8.1.1)(typescript@6.0.3) '@typescript-eslint/visitor-keys': 8.63.0 debug: 4.4.3(supports-color@8.1.1) - eslint: 10.6.0 + eslint: 10.6.0(supports-color@8.1.1) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.63.0(typescript@6.0.3)': + '@typescript-eslint/project-service@8.63.0(supports-color@8.1.1)(typescript@6.0.3)': dependencies: '@typescript-eslint/tsconfig-utils': 8.63.0(typescript@6.0.3) '@typescript-eslint/types': 8.63.0 @@ -7232,9 +7237,9 @@ snapshots: dependencies: typescript: 6.0.3 - '@typescript-eslint/type-utils@7.18.0(eslint@10.6.0)(typescript@6.0.3)': + '@typescript-eslint/type-utils@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3)': dependencies: - '@typescript-eslint/typescript-estree': 7.18.0(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 7.18.0(supports-color@8.1.1)(typescript@6.0.3) '@typescript-eslint/utils': 7.18.0(eslint@10.6.0)(typescript@6.0.3) debug: 4.4.3(supports-color@8.1.1) eslint: 10.6.0 @@ -7244,13 +7249,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.63.0(eslint@10.6.0)(typescript@6.0.3)': + '@typescript-eslint/type-utils@8.63.0(eslint@10.6.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3)': dependencies: '@typescript-eslint/types': 8.63.0 - '@typescript-eslint/typescript-estree': 8.63.0(typescript@6.0.3) - '@typescript-eslint/utils': 8.63.0(eslint@10.6.0)(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.63.0(supports-color@8.1.1)(typescript@6.0.3) + '@typescript-eslint/utils': 8.63.0(eslint@10.6.0(supports-color@8.1.1))(typescript@6.0.3) debug: 4.4.3(supports-color@8.1.1) - eslint: 10.6.0 + eslint: 10.6.0(supports-color@8.1.1) ts-api-utils: 2.5.0(typescript@6.0.3) typescript: 6.0.3 transitivePeerDependencies: @@ -7260,7 +7265,7 @@ snapshots: '@typescript-eslint/types@8.63.0': {} - '@typescript-eslint/typescript-estree@7.18.0(typescript@6.0.3)': + '@typescript-eslint/typescript-estree@7.18.0(supports-color@8.1.1)(typescript@6.0.3)': dependencies: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 @@ -7275,9 +7280,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.63.0(typescript@6.0.3)': + '@typescript-eslint/typescript-estree@8.63.0(supports-color@8.1.1)(typescript@6.0.3)': dependencies: - '@typescript-eslint/project-service': 8.63.0(typescript@6.0.3) + '@typescript-eslint/project-service': 8.63.0(supports-color@8.1.1)(typescript@6.0.3) '@typescript-eslint/tsconfig-utils': 8.63.0(typescript@6.0.3) '@typescript-eslint/types': 8.63.0 '@typescript-eslint/visitor-keys': 8.63.0 @@ -7295,19 +7300,19 @@ snapshots: '@eslint-community/eslint-utils': 4.9.1(eslint@10.6.0) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 7.18.0(supports-color@8.1.1)(typescript@6.0.3) eslint: 10.6.0 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.63.0(eslint@10.6.0)(typescript@6.0.3)': + '@typescript-eslint/utils@8.63.0(eslint@10.6.0(supports-color@8.1.1))(typescript@6.0.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.6.0) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.6.0(supports-color@8.1.1)) '@typescript-eslint/scope-manager': 8.63.0 '@typescript-eslint/types': 8.63.0 - '@typescript-eslint/typescript-estree': 8.63.0(typescript@6.0.3) - eslint: 10.6.0 + '@typescript-eslint/typescript-estree': 8.63.0(supports-color@8.1.1)(typescript@6.0.3) + eslint: 10.6.0(supports-color@8.1.1) typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -7379,17 +7384,17 @@ snapshots: '@unrs/rspack-resolver-binding-win32-x64-msvc@1.3.0': optional: true - '@vitejs/plugin-react@6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0))': + '@vitejs/plugin-react@6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0) + vite: 8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) optionalDependencies: babel-plugin-react-compiler: 19.1.0-rc.3 - '@vitejs/plugin-vue@6.0.7(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0))(vue@3.5.39(typescript@6.0.3))': + '@vitejs/plugin-vue@6.0.7(vite@8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0))(vue@3.5.39(typescript@6.0.3))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0) + vite: 8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) vue: 3.5.39(typescript@6.0.3) '@vitest/expect@4.1.10': @@ -7401,13 +7406,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.10(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0))': + '@vitest/mocker@4.1.10(vite@8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0))': dependencies: '@vitest/spy': 4.1.10 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0) + vite: 8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) '@vitest/pretty-format@4.1.10': dependencies: @@ -7700,7 +7705,7 @@ snapshots: bluebird@3.4.7: {} - body-parser@2.3.0: + body-parser@2.3.0(supports-color@8.1.1): dependencies: bytes: 3.1.2 content-type: 2.0.0 @@ -8104,7 +8109,7 @@ snapshots: dependencies: '2': 1.0.2 - engine.io-client@6.6.6: + engine.io-client@6.6.6(supports-color@8.1.1): dependencies: '@socket.io/component-emitter': 3.1.2 debug: 4.4.3(supports-color@8.1.1) @@ -8118,10 +8123,10 @@ snapshots: engine.io-parser@5.2.3: {} - engine.io@6.6.9: + engine.io@6.6.9(supports-color@8.1.1): dependencies: '@types/cors': 2.8.19 - '@types/node': 26.1.0 + '@types/node': 26.1.1 '@types/ws': 8.18.1 accepts: 1.3.8 base64id: 2.0.0 @@ -8307,15 +8312,15 @@ snapshots: eslint: 10.6.0 semver: 7.8.5 - eslint-config-etherpad@4.0.5(eslint@10.6.0)(typescript@6.0.3): + eslint-config-etherpad@4.0.5(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3): dependencies: '@rushstack/eslint-patch': 1.16.1 - '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0)(typescript@6.0.3) - '@typescript-eslint/parser': 7.18.0(eslint@10.6.0)(typescript@6.0.3) - eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0) + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3) + '@typescript-eslint/parser': 7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3) + eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1) eslint-plugin-cypress: 2.15.2(eslint@10.6.0) eslint-plugin-eslint-comments: 3.2.0(eslint@10.6.0) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0))(eslint@10.6.0) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1))(eslint@10.6.0) eslint-plugin-mocha: 10.5.0(eslint@10.6.0) eslint-plugin-n: 17.24.0(eslint@10.6.0)(typescript@6.0.3) eslint-plugin-prefer-arrow: 1.2.3(eslint@10.6.0) @@ -8336,7 +8341,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0): + eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3(supports-color@8.1.1) @@ -8347,18 +8352,18 @@ snapshots: stable-hash: 0.0.5 tinyglobby: 0.2.17 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0))(eslint@10.6.0) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1))(eslint@10.6.0) transitivePeerDependencies: - supports-color - eslint-module-utils@2.14.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0))(eslint@10.6.0): + eslint-module-utils@2.14.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1))(eslint@10.6.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@10.6.0)(typescript@6.0.3) + '@typescript-eslint/parser': 7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3) eslint: 10.6.0 eslint-import-resolver-node: 0.3.10 - eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0) + eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -8380,7 +8385,7 @@ snapshots: eslint: 10.6.0 ignore: 5.3.2 - eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0))(eslint@10.6.0): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1))(eslint@10.6.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -8391,7 +8396,7 @@ snapshots: doctrine: 2.1.0 eslint: 10.6.0 eslint-import-resolver-node: 0.3.10 - eslint-module-utils: 2.14.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0))(eslint@10.6.0) + eslint-module-utils: 2.14.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1))(eslint@10.6.0) hasown: 2.0.4 is-core-module: 2.16.2 is-glob: 4.0.3 @@ -8403,7 +8408,7 @@ snapshots: string.prototype.trimend: 1.0.10 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@10.6.0)(typescript@6.0.3) + '@typescript-eslint/parser': 7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -8439,18 +8444,18 @@ snapshots: dependencies: eslint: 10.6.0 - eslint-plugin-react-hooks@7.1.1(eslint@10.6.0): + eslint-plugin-react-hooks@7.1.1(eslint@10.6.0(supports-color@8.1.1)): dependencies: '@babel/core': 8.0.1 '@babel/parser': 7.29.7 - eslint: 10.6.0 + eslint: 10.6.0(supports-color@8.1.1) hermes-parser: 0.25.1 zod: 4.4.3 zod-validation-error: 4.0.2(zod@4.4.3) - eslint-plugin-react-refresh@0.5.3(eslint@10.6.0): + eslint-plugin-react-refresh@0.5.3(eslint@10.6.0(supports-color@8.1.1)): dependencies: - eslint: 10.6.0 + eslint: 10.6.0(supports-color@8.1.1) eslint-plugin-you-dont-need-lodash-underscore@6.14.0: dependencies: @@ -8478,7 +8483,42 @@ snapshots: dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.6.0) '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.23.5 + '@eslint/config-array': 0.23.5(supports-color@8.1.1) + '@eslint/config-helpers': 0.6.0 + '@eslint/core': 1.2.1 + '@eslint/plugin-kit': 0.7.2 + '@humanfs/node': 0.16.8 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.9 + ajv: 6.15.0 + cross-spawn: 7.0.6 + debug: 4.4.3(supports-color@8.1.1) + escape-string-regexp: 4.0.0 + eslint-scope: 9.1.2 + eslint-visitor-keys: 5.0.1 + espree: 11.2.0 + esquery: 1.7.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + minimatch: 10.2.5 + natural-compare: 1.4.0 + optionator: 0.9.4 + transitivePeerDependencies: + - supports-color + + eslint@10.6.0(supports-color@8.1.1): + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@10.6.0(supports-color@8.1.1)) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.23.5(supports-color@8.1.1) '@eslint/config-helpers': 0.6.0 '@eslint/core': 1.2.1 '@eslint/plugin-kit': 0.7.2 @@ -8541,7 +8581,7 @@ snapshots: etherpad-cli-client@4.0.3: dependencies: - socket.io-client: 4.8.3 + socket.io-client: 4.8.3(supports-color@8.1.1) superagent: 10.3.0 transitivePeerDependencies: - bufferutil @@ -8558,9 +8598,9 @@ snapshots: expect-type@1.4.0: {} - express-rate-limit@8.5.2(express@5.2.1): + express-rate-limit@8.5.2(express@5.2.1(supports-color@8.1.1)): dependencies: - express: 5.2.1 + express: 5.2.1(supports-color@8.1.1) ip-address: 10.2.0 express-session@1.19.0: @@ -8576,10 +8616,10 @@ snapshots: transitivePeerDependencies: - supports-color - express@5.2.1: + express@5.2.1(supports-color@8.1.1): dependencies: accepts: 2.0.0 - body-parser: 2.3.0 + body-parser: 2.3.0(supports-color@8.1.1) content-disposition: 1.1.0 content-type: 1.0.5 cookie: 0.7.2 @@ -8589,7 +8629,7 @@ snapshots: encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 - finalhandler: 2.1.1 + finalhandler: 2.1.1(supports-color@8.1.1) fresh: 2.0.0 http-errors: 2.0.1 merge-descriptors: 2.0.0 @@ -8600,8 +8640,8 @@ snapshots: proxy-addr: 2.0.7 qs: 6.15.3 range-parser: 1.3.0 - router: 2.2.0 - send: 1.2.1 + router: 2.2.0(supports-color@8.1.1) + send: 1.2.1(supports-color@8.1.1) serve-static: 2.2.1 statuses: 2.0.2 type-is: 2.1.0 @@ -8654,7 +8694,7 @@ snapshots: dependencies: to-regex-range: 5.0.1 - finalhandler@2.1.1: + finalhandler@2.1.1(supports-color@8.1.1): dependencies: debug: 4.4.3(supports-color@8.1.1) encodeurl: 2.0.0 @@ -8797,7 +8837,7 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 - get-uri@6.0.5: + get-uri@6.0.5(supports-color@8.1.1): dependencies: basic-ftp: 5.3.1 data-uri-to-buffer: 6.0.2 @@ -9052,7 +9092,7 @@ snapshots: dependencies: '@babel/runtime': 7.29.7 - i18next@26.3.4(typescript@6.0.3): + i18next@26.3.5(typescript@6.0.3): optionalDependencies: typescript: 6.0.3 @@ -9461,7 +9501,7 @@ snapshots: base64-js: 0.0.8 unicode-trie: 2.0.0 - live-plugin-manager@1.1.0: + live-plugin-manager@1.1.0(supports-color@8.1.1): dependencies: '@types/debug': 4.1.13 '@types/fs-extra': 9.0.13 @@ -9476,7 +9516,7 @@ snapshots: fs-extra: 10.1.0 lockfile: 1.0.4 node-fetch-commonjs: 3.3.2 - proxy-agent: 6.5.0 + proxy-agent: 6.5.0(supports-color@8.1.1) semver: 7.8.5 tar: 7.5.19 url-join: 4.0.1 @@ -9516,13 +9556,13 @@ snapshots: chalk: 4.1.2 is-unicode-supported: 0.1.0 - log4js@6.9.1: + log4js@6.9.1(supports-color@8.1.1): dependencies: date-format: 4.0.14 debug: 4.4.3(supports-color@8.1.1) flatted: 3.4.2 rfdc: 1.4.1 - streamroller: 3.1.5 + streamroller: 3.1.5(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -9717,9 +9757,9 @@ snapshots: transitivePeerDependencies: - supports-color - mysql2@3.22.6(@types/node@26.1.0): + mysql2@3.22.6(@types/node@26.1.1): dependencies: - '@types/node': 26.1.0 + '@types/node': 26.1.1 aws-ssl-profiles: 1.1.2 denque: 2.1.0 generate-function: 2.3.1 @@ -9822,10 +9862,10 @@ snapshots: obug@2.1.3: {} - oidc-provider@9.9.0: + oidc-provider@9.9.0(supports-color@8.1.1): dependencies: '@koa/cors': 5.0.0 - '@koa/router': 15.7.0(koa@3.2.1) + '@koa/router': 15.7.0(koa@3.2.1)(supports-color@8.1.1) debug: 4.4.3(supports-color@8.1.1) eta: 4.6.0 jose: 6.2.3 @@ -9962,12 +10002,12 @@ snapshots: dependencies: p-limit: 3.1.0 - pac-proxy-agent@7.2.0: + pac-proxy-agent@7.2.0(supports-color@8.1.1): dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.4 debug: 4.4.3(supports-color@8.1.1) - get-uri: 6.0.5 + get-uri: 6.0.5(supports-color@8.1.1) http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 pac-resolver: 7.0.1 @@ -10125,14 +10165,14 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 - proxy-agent@6.5.0: + proxy-agent@6.5.0(supports-color@8.1.1): dependencies: agent-base: 7.1.4 debug: 4.4.3(supports-color@8.1.1) http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 lru-cache: 7.18.3 - pac-proxy-agent: 7.2.0 + pac-proxy-agent: 7.2.0(supports-color@8.1.1) proxy-from-env: 1.1.0 socks-proxy-agent: 8.0.5 transitivePeerDependencies: @@ -10181,11 +10221,11 @@ snapshots: dependencies: react: 19.2.7 - react-i18next@17.0.8(i18next@26.3.4(typescript@6.0.3))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@6.0.3): + react-i18next@17.0.8(i18next@26.3.5(typescript@6.0.3))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@6.0.3): dependencies: '@babel/runtime': 7.29.7 html-parse-stringify: 3.0.1 - i18next: 26.3.4(typescript@6.0.3) + i18next: 26.3.5(typescript@6.0.3) react: 19.2.7 use-sync-external-store: 1.6.0(react@19.2.7) optionalDependencies: @@ -10381,7 +10421,7 @@ snapshots: '@rolldown/binding-win32-arm64-msvc': 1.1.4 '@rolldown/binding-win32-x64-msvc': 1.1.4 - router@2.2.0: + router@2.2.0(supports-color@8.1.1): dependencies: debug: 4.4.3(supports-color@8.1.1) depd: 2.0.0 @@ -10497,7 +10537,7 @@ snapshots: semver@7.8.5: {} - send@1.2.1: + send@1.2.1(supports-color@8.1.1): dependencies: debug: 4.4.3(supports-color@8.1.1) encodeurl: 2.0.0 @@ -10520,7 +10560,7 @@ snapshots: encodeurl: 2.0.0 escape-html: 1.0.3 parseurl: 1.3.3 - send: 1.2.1 + send: 1.2.1(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -10614,7 +10654,7 @@ snapshots: smart-buffer@4.2.0: {} - socket.io-adapter@2.5.8: + socket.io-adapter@2.5.8(supports-color@8.1.1): dependencies: debug: 4.4.3(supports-color@8.1.1) ws: 8.21.0 @@ -10623,33 +10663,33 @@ snapshots: - supports-color - utf-8-validate - socket.io-client@4.8.3: + socket.io-client@4.8.3(supports-color@8.1.1): dependencies: '@socket.io/component-emitter': 3.1.2 debug: 4.4.3(supports-color@8.1.1) - engine.io-client: 6.6.6 - socket.io-parser: 4.2.6 + engine.io-client: 6.6.6(supports-color@8.1.1) + socket.io-parser: 4.2.6(supports-color@8.1.1) transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - socket.io-parser@4.2.6: + socket.io-parser@4.2.6(supports-color@8.1.1): dependencies: '@socket.io/component-emitter': 3.1.2 debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color - socket.io@4.8.3: + socket.io@4.8.3(supports-color@8.1.1): dependencies: accepts: 1.3.8 base64id: 2.0.0 cors: 2.8.6 debug: 4.4.3(supports-color@8.1.1) - engine.io: 6.6.9 - socket.io-adapter: 2.5.8 - socket.io-parser: 4.2.6 + engine.io: 6.6.9(supports-color@8.1.1) + socket.io-adapter: 2.5.8(supports-color@8.1.1) + socket.io-parser: 4.2.6(supports-color@8.1.1) transitivePeerDependencies: - bufferutil - supports-color @@ -10704,7 +10744,7 @@ snapshots: es-errors: 1.3.0 internal-slot: 1.1.0 - streamroller@3.1.5: + streamroller@3.1.5(supports-color@8.1.1): dependencies: date-format: 4.0.14 debug: 4.4.3(supports-color@8.1.1) @@ -10833,7 +10873,7 @@ snapshots: '@azure/identity': 4.13.1 '@azure/keyvault-keys': 4.10.2 '@js-joda/core': 6.0.1 - '@types/node': 26.1.0 + '@types/node': 26.1.1 bl: 6.1.6 iconv-lite: 0.7.3 js-md4: 0.3.2 @@ -10970,7 +11010,7 @@ snapshots: typescript@6.0.3: {} - ueberdb2@6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.22.6(@types/node@26.1.0))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)): + ueberdb2@6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.22.6(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)): optionalDependencies: '@elastic/elasticsearch': 9.4.2 async: 3.2.6 @@ -10978,7 +11018,7 @@ snapshots: dirty-ts: 1.1.8 mongodb: 7.4.0(socks@2.8.9) mssql: 12.7.0 - mysql2: 3.22.6(@types/node@26.1.0) + mysql2: 3.22.6(@types/node@26.1.1) nano: 11.0.6 pg: 8.22.0 redis: 6.1.0(@opentelemetry/api@1.9.1) @@ -11123,12 +11163,12 @@ snapshots: x-is-array: 0.1.0 x-is-string: 0.1.0 - vite-plugin-babel@1.7.3(@babel/core@8.0.1)(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0)): + vite-plugin-babel@1.7.3(@babel/core@8.0.1)(vite@8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0)): dependencies: '@babel/core': 8.0.1 - vite: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0) + vite: 8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) - vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0): + vite@8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0): dependencies: lightningcss: 1.32.0 picomatch: 4.0.5 @@ -11136,12 +11176,12 @@ snapshots: rolldown: 1.1.4 tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 26.1.0 + '@types/node': 26.1.1 esbuild: 0.28.1 fsevents: 2.3.3 tsx: 4.23.0 - vitepress@2.0.0-alpha.18(@types/node@26.1.0)(change-case@5.4.4)(esbuild@0.28.1)(jwt-decode@4.0.0)(postcss@8.5.16)(tsx@4.23.0)(typescript@6.0.3): + vitepress@2.0.0-alpha.18(@types/node@26.1.1)(change-case@5.4.4)(esbuild@0.28.1)(jwt-decode@4.0.0)(postcss@8.5.16)(tsx@4.23.0)(typescript@6.0.3): dependencies: '@docsearch/css': 4.6.3 '@docsearch/js': 4.6.3 @@ -11151,7 +11191,7 @@ snapshots: '@shikijs/transformers': 4.3.1 '@shikijs/types': 4.3.1 '@types/markdown-it': 14.1.2 - '@vitejs/plugin-vue': 6.0.7(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0))(vue@3.5.39(typescript@6.0.3)) + '@vitejs/plugin-vue': 6.0.7(vite@8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0))(vue@3.5.39(typescript@6.0.3)) '@vue/devtools-api': 8.1.5 '@vue/shared': 3.5.39 '@vueuse/core': 14.3.0(vue@3.5.39(typescript@6.0.3)) @@ -11160,7 +11200,7 @@ snapshots: mark.js: 8.11.1 minisearch: 7.2.0 shiki: 4.3.1 - vite: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0) + vite: 8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) vue: 3.5.39(typescript@6.0.3) optionalDependencies: postcss: 8.5.16 @@ -11190,10 +11230,10 @@ snapshots: - universal-cookie - yaml - vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.0)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0)): + vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0)): dependencies: '@vitest/expect': 4.1.10 - '@vitest/mocker': 4.1.10(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0)) + '@vitest/mocker': 4.1.10(vite@8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0)) '@vitest/pretty-format': 4.1.10 '@vitest/runner': 4.1.10 '@vitest/snapshot': 4.1.10 @@ -11210,11 +11250,11 @@ snapshots: tinyexec: 1.2.4 tinyglobby: 0.2.17 tinyrainbow: 3.1.0 - vite: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(tsx@4.23.0) + vite: 8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.1 - '@types/node': 26.1.0 + '@types/node': 26.1.1 jsdom: 29.1.1(@noble/hashes@1.8.0) transitivePeerDependencies: - msw diff --git a/src/package.json b/src/package.json index 634049336..f1782ce6c 100644 --- a/src/package.json +++ b/src/package.json @@ -110,7 +110,7 @@ "@types/jsonwebtoken": "^9.0.10", "@types/mime-types": "^3.0.1", "@types/mocha": "^10.0.9", - "@types/node": "^26.1.0", + "@types/node": "^26.1.1", "@types/nodemailer": "^8.0.1", "@types/oidc-provider": "^9.5.0", "@types/pdfkit": "^0.17.6", From 631caf911ce1f8934bbcdf4c4ce1a14a267b8130 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 Jul 2026 10:07:06 +0100 Subject: [PATCH 42/74] build(deps): bump lru-cache from 11.5.1 to 11.5.2 (#8037) Bumps [lru-cache](https://github.com/isaacs/node-lru-cache) from 11.5.1 to 11.5.2. - [Changelog](https://github.com/isaacs/node-lru-cache/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/node-lru-cache/compare/v11.5.1...v11.5.2) --- updated-dependencies: - dependency-name: lru-cache dependency-version: 11.5.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 16 ++++++++-------- src/package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b9100d0f6..7351a71ab 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -272,8 +272,8 @@ importers: specifier: ^6.9.1 version: 6.9.1(supports-color@8.1.1) lru-cache: - specifier: ^11.5.1 - version: 11.5.1 + specifier: ^11.5.2 + version: 11.5.2 mammoth: specifier: ^1.12.0 version: 1.12.0 @@ -4046,8 +4046,8 @@ packages: lop@0.4.2: resolution: {integrity: sha512-RefILVDQ4DKoRZsJ4Pj22TxE3omDO47yFpkIBoDKzkqPRISs5U1cnAdg/5583YPkWPaLIYHOKRMQSvjFsO26cw==} - lru-cache@11.5.1: - resolution: {integrity: sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==} + lru-cache@11.5.2: + resolution: {integrity: sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==} engines: {node: 20 || >=22} lru-cache@7.18.3: @@ -6025,7 +6025,7 @@ snapshots: '@babel/compat-data': 8.0.0 '@babel/helper-validator-option': 8.0.0 browserslist: 4.28.5 - lru-cache: 11.5.1 + lru-cache: 11.5.2 semver: 7.8.5 '@babel/helper-globals@8.0.0': {} @@ -9324,7 +9324,7 @@ snapshots: decimal.js: 10.6.0 html-encoding-sniffer: 6.0.0(@noble/hashes@1.8.0) is-potential-custom-element-name: 1.0.1 - lru-cache: 11.5.1 + lru-cache: 11.5.2 parse5: 8.0.1 saxes: 6.0.0 symbol-tree: 3.2.4 @@ -9576,7 +9576,7 @@ snapshots: option: 0.2.4 underscore: 1.13.8 - lru-cache@11.5.1: {} + lru-cache@11.5.2: {} lru-cache@7.18.3: {} @@ -10050,7 +10050,7 @@ snapshots: path-scurry@2.0.2: dependencies: - lru-cache: 11.5.1 + lru-cache: 11.5.2 minipass: 7.1.3 path-to-regexp@8.4.2: {} diff --git a/src/package.json b/src/package.json index f1782ce6c..74339f8c9 100644 --- a/src/package.json +++ b/src/package.json @@ -56,7 +56,7 @@ "live-plugin-manager": "^1.1.0", "lodash.clonedeep": "4.5.0", "log4js": "^6.9.1", - "lru-cache": "^11.5.1", + "lru-cache": "^11.5.2", "mammoth": "^1.12.0", "measured-core": "^2.0.0", "mime-types": "^3.0.2", From 2b5d521923bb6f5a87afab654e06cdc887c4b8b7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 Jul 2026 10:07:14 +0100 Subject: [PATCH 43/74] build(deps): bump oidc-provider from 9.9.0 to 9.9.1 (#8036) Bumps [oidc-provider](https://github.com/panva/node-oidc-provider) from 9.9.0 to 9.9.1. - [Release notes](https://github.com/panva/node-oidc-provider/releases) - [Changelog](https://github.com/panva/node-oidc-provider/blob/main/CHANGELOG.md) - [Commits](https://github.com/panva/node-oidc-provider/compare/v9.9.0...v9.9.1) --- updated-dependencies: - dependency-name: oidc-provider dependency-version: 9.9.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 14 +++++++------- src/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7351a71ab..10e89a474 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -299,8 +299,8 @@ importers: specifier: ^9.0.3 version: 9.0.3 oidc-provider: - specifier: 9.9.0 - version: 9.9.0(supports-color@8.1.1) + specifier: 9.9.1 + version: 9.9.1 openapi-backend: specifier: ^5.18.0 version: 5.18.0 @@ -4346,8 +4346,8 @@ packages: resolution: {integrity: sha512-9miFgM2OFba7hB+pRgvtV84pYTBaoTHohvmIgiRt6dRIzbwEOIaNaP+dIlGs2fNFoB0SeISs0Jz5WFVRid6Xyg==} engines: {node: '>=12.20.0'} - oidc-provider@9.9.0: - resolution: {integrity: sha512-RZVcul1BMSjQLaEbD9AYXLZYrWe7gW3n96akMqQC91Z9wmAHrsYKaUUutzxoYNTQj8UlQdRqtD5F+EqnXy7wGQ==} + oidc-provider@9.9.1: + resolution: {integrity: sha512-2kvtykfLu3FJSzaIStg8Dz58/pLtAwI3j/vLdy7KXJBDuJJAEgZhOSWklc+MTjKBLlQjeFwBXpKoE0Pf23pnIQ==} on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} @@ -6329,7 +6329,7 @@ snapshots: dependencies: vary: 1.1.2 - '@koa/router@15.7.0(koa@3.2.1)(supports-color@8.1.1)': + '@koa/router@15.7.0(koa@3.2.1)': dependencies: debug: 4.4.3(supports-color@8.1.1) http-errors: 2.0.1 @@ -9862,10 +9862,10 @@ snapshots: obug@2.1.3: {} - oidc-provider@9.9.0(supports-color@8.1.1): + oidc-provider@9.9.1: dependencies: '@koa/cors': 5.0.0 - '@koa/router': 15.7.0(koa@3.2.1)(supports-color@8.1.1) + '@koa/router': 15.7.0(koa@3.2.1) debug: 4.4.3(supports-color@8.1.1) eta: 4.6.0 jose: 6.2.3 diff --git a/src/package.json b/src/package.json index 74339f8c9..780adb722 100644 --- a/src/package.json +++ b/src/package.json @@ -65,7 +65,7 @@ "mysql2": "^3.22.6", "nano": "^11.0.6", "nodemailer": "^9.0.3", - "oidc-provider": "9.9.0", + "oidc-provider": "9.9.1", "openapi-backend": "^5.18.0", "pdfkit": "^0.19.1", "pg": "^8.22.0", From 3efcbfd358a3e1290c8ebee1ec781ebad62661f6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 Jul 2026 10:07:23 +0100 Subject: [PATCH 44/74] build(deps): bump ueberdb2 from 6.1.15 to 6.1.16 (#8034) Bumps [ueberdb2](https://github.com/ether/ueberDB) from 6.1.15 to 6.1.16. - [Changelog](https://github.com/ether/ueberDB/blob/main/CHANGELOG.md) - [Commits](https://github.com/ether/ueberDB/compare/v6.1.15...v6.1.16) --- updated-dependencies: - dependency-name: ueberdb2 dependency-version: 6.1.16 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- bin/package.json | 2 +- pnpm-lock.yaml | 14 +++++++------- src/package.json | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/bin/package.json b/bin/package.json index e307ce8e9..c4174d278 100644 --- a/bin/package.json +++ b/bin/package.json @@ -11,7 +11,7 @@ "log4js": "^6.9.1", "semver": "^7.8.5", "tsx": "^4.23.0", - "ueberdb2": "6.1.15" + "ueberdb2": "6.1.16" }, "devDependencies": { "@types/node": "^26.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 10e89a474..33daf7f82 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -165,8 +165,8 @@ importers: specifier: ^4.23.0 version: 4.23.0 ueberdb2: - specifier: 6.1.15 - version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.22.6(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) + specifier: 6.1.16 + version: 6.1.16(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.22.6(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) devDependencies: '@types/node': specifier: ^26.1.1 @@ -359,8 +359,8 @@ importers: specifier: 4.23.0 version: 4.23.0 ueberdb2: - specifier: 6.1.15 - version: 6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.22.6(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) + specifier: 6.1.16 + version: 6.1.16(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.22.6(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) underscore: specifier: 1.13.8 version: 1.13.8 @@ -5335,8 +5335,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - ueberdb2@6.1.15: - resolution: {integrity: sha512-F17WoWfzSPGHzdyMCIeT/l0p0ibVZIxbQ38yWyhaTj/sjIndbkYtiK8zxL9VOZ4/KsUzC97gFPIwPzjruvYMJQ==} + ueberdb2@6.1.16: + resolution: {integrity: sha512-2VlpUIjperGGzZzH2AqrhZfviA3BmA3qgw+LHbDxXgOoiBRMV1P9IFkFK4wBDf3gMyj9/jBNoil5QOwkvXLj4A==} engines: {node: '>=24.0.0'} peerDependencies: '@elastic/elasticsearch': ^9.0.0 @@ -11010,7 +11010,7 @@ snapshots: typescript@6.0.3: {} - ueberdb2@6.1.15(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.22.6(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)): + ueberdb2@6.1.16(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.22.6(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)): optionalDependencies: '@elastic/elasticsearch': 9.4.2 async: 3.2.6 diff --git a/src/package.json b/src/package.json index 780adb722..9dd30929e 100644 --- a/src/package.json +++ b/src/package.json @@ -85,7 +85,7 @@ "surrealdb": "^2.0.4", "tinycon": "0.6.8", "tsx": "4.23.0", - "ueberdb2": "6.1.15", + "ueberdb2": "6.1.16", "underscore": "1.13.8", "undici": "^8.7.0", "wtfnode": "^0.10.1" From 05d0f624033d5fb227664ef23057c86ead6397dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 Jul 2026 10:27:58 +0100 Subject: [PATCH 45/74] build(deps): bump @radix-ui/react-switch from 1.3.2 to 1.3.3 (#8029) Bumps [@radix-ui/react-switch](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/switch) from 1.3.2 to 1.3.3. - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/switch/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/switch) --- updated-dependencies: - dependency-name: "@radix-ui/react-switch" dependency-version: 1.3.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- admin/package.json | 2 +- pnpm-lock.yaml | 42 +++++++++++------------------------------- 2 files changed, 12 insertions(+), 32 deletions(-) diff --git a/admin/package.json b/admin/package.json index a768e6167..36b641d13 100644 --- a/admin/package.json +++ b/admin/package.json @@ -14,7 +14,7 @@ "test": "pnpm gen:api && tsx --test 'src/**/__tests__/*.test.ts' 'src/**/__tests__/*.test.tsx'" }, "dependencies": { - "@radix-ui/react-switch": "^1.3.2", + "@radix-ui/react-switch": "^1.3.3", "@tanstack/react-query": "^5.101.2", "@tanstack/react-query-devtools": "^5.101.2", "jsonc-parser": "^3.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 33daf7f82..b3a910f97 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -50,8 +50,8 @@ importers: admin: dependencies: '@radix-ui/react-switch': - specifier: ^1.3.2 - version: 1.3.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + specifier: ^1.3.3 + version: 1.3.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@tanstack/react-query': specifier: ^5.101.2 version: 5.101.2(react@19.2.7) @@ -300,7 +300,7 @@ importers: version: 9.0.3 oidc-provider: specifier: 9.9.1 - version: 9.9.1 + version: 9.9.1(supports-color@8.1.1) openapi-backend: specifier: ^5.18.0 version: 5.18.0 @@ -1235,9 +1235,6 @@ packages: engines: {node: '>=18'} hasBin: true - '@radix-ui/primitive@1.1.4': - resolution: {integrity: sha512-7AdCK9PQyiljKoBDbN8OuctCbd/esdwZPQ8RtOE3SsyQtUpiPb+ND75q0jEhC1m1ecBI0MFNeLJvwIh9iKHRcQ==} - '@radix-ui/primitive@1.1.5': resolution: {integrity: sha512-d86WIWFYNtGA0H/d8exstrTRTp7eWJYlYJbtNofxr/3ljupZYn6EFDG/Qgu/0Kc8v7yMUxySagqJsL1+PdYjWg==} @@ -1263,15 +1260,6 @@ packages: '@types/react': optional: true - '@radix-ui/react-context@1.1.4': - resolution: {integrity: sha512-QwH4PO5urrbO+FaGd5Aglg+YJgWTyyuZ3g/6mKvsqraLkglDdckw9JafgL5McL5VEJ6EPNduPaT3ZE9BttDAqg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@radix-ui/react-context@1.2.0': resolution: {integrity: sha512-fOE+JtN9rygNZkCnHRBEP0TAvLldlhyOxMsbwFvTP4nAs+nBmfnna+o/Zski2wkmY1YMrFC0aSzsHoLY47iLrg==} peerDependencies: @@ -1386,8 +1374,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-switch@1.3.2': - resolution: {integrity: sha512-tgRBI3DdNwAJYE4BBZyZcz/HRRCvAsPkRvG1wvKc+41tBGMxPn/a87T/wikXAvyDypNQ9kaZwHbeZe+veHCGpA==} + '@radix-ui/react-switch@1.3.3': + resolution: {integrity: sha512-1+mlB4/lxJfk5tgJ4g+R5mUCbRpPE1T9+UsEyeLYbGgMtwiMgmuTnfKz4Mw1nHALHjuwyxw4MLd4cSHn6pNSlQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -6329,7 +6317,7 @@ snapshots: dependencies: vary: 1.1.2 - '@koa/router@15.7.0(koa@3.2.1)': + '@koa/router@15.7.0(koa@3.2.1)(supports-color@8.1.1)': dependencies: debug: 4.4.3(supports-color@8.1.1) http-errors: 2.0.1 @@ -6493,8 +6481,6 @@ snapshots: dependencies: playwright: 1.61.1 - '@radix-ui/primitive@1.1.4': {} - '@radix-ui/primitive@1.1.5': {} '@radix-ui/react-collection@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': @@ -6515,12 +6501,6 @@ snapshots: optionalDependencies: '@types/react': 19.2.17 - '@radix-ui/react-context@1.1.4(@types/react@19.2.17)(react@19.2.7)': - dependencies: - react: 19.2.7 - optionalDependencies: - '@types/react': 19.2.17 - '@radix-ui/react-context@1.2.0(@types/react@19.2.17)(react@19.2.7)': dependencies: react: 19.2.7 @@ -6621,11 +6601,11 @@ snapshots: optionalDependencies: '@types/react': 19.2.17 - '@radix-ui/react-switch@1.3.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + '@radix-ui/react-switch@1.3.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: - '@radix-ui/primitive': 1.1.4 + '@radix-ui/primitive': 1.1.5 '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-context': 1.1.4(@types/react@19.2.17)(react@19.2.7) + '@radix-ui/react-context': 1.2.0(@types/react@19.2.17)(react@19.2.7) '@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.17)(react@19.2.7) '@radix-ui/react-use-previous': 1.1.2(@types/react@19.2.17)(react@19.2.7) @@ -9862,10 +9842,10 @@ snapshots: obug@2.1.3: {} - oidc-provider@9.9.1: + oidc-provider@9.9.1(supports-color@8.1.1): dependencies: '@koa/cors': 5.0.0 - '@koa/router': 15.7.0(koa@3.2.1) + '@koa/router': 15.7.0(koa@3.2.1)(supports-color@8.1.1) debug: 4.4.3(supports-color@8.1.1) eta: 4.6.0 jose: 6.2.3 From 4755bd3e174a420c2930af2c6d14e8d520f05494 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Jul 2026 11:11:18 +0100 Subject: [PATCH 46/74] build(deps-dev): bump the dev-dependencies group with 3 updates (#8043) Bumps the dev-dependencies group with 3 updates: [i18next](https://github.com/i18next/i18next), [react-i18next](https://github.com/i18next/react-i18next) and [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite). Updates `i18next` from 26.3.5 to 26.3.6 - [Release notes](https://github.com/i18next/i18next/releases) - [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md) - [Commits](https://github.com/i18next/i18next/compare/v26.3.5...v26.3.6) Updates `react-i18next` from 17.0.8 to 17.0.9 - [Changelog](https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md) - [Commits](https://github.com/i18next/react-i18next/compare/v17.0.8...v17.0.9) Updates `vite` from 8.1.3 to 8.1.4 - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v8.1.4/packages/vite) --- updated-dependencies: - dependency-name: i18next dependency-version: 26.3.6 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: react-i18next dependency-version: 17.0.9 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: vite dependency-version: 8.1.4 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- admin/package.json | 6 +- pnpm-lock.yaml | 208 ++++++++++++++++++++++----------------------- ui/package.json | 2 +- 3 files changed, 108 insertions(+), 108 deletions(-) diff --git a/admin/package.json b/admin/package.json index 36b641d13..37f640a80 100644 --- a/admin/package.json +++ b/admin/package.json @@ -34,19 +34,19 @@ "eslint": "^10.6.0", "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-react-refresh": "^0.5.3", - "i18next": "^26.3.5", + "i18next": "^26.3.6", "i18next-browser-languagedetector": "^8.2.1", "lucide-react": "^1.23.0", "openapi-typescript": "^7.13.0", "react": "^19.2.7", "react-dom": "^19.2.7", "react-hook-form": "^7.81.0", - "react-i18next": "^17.0.8", + "react-i18next": "^17.0.9", "react-router-dom": "^7.18.1", "socket.io-client": "^4.8.3", "tsx": "^4.23.0", "typescript": "^6.0.3", - "vite": "^8.1.3", + "vite": "^8.1.4", "vite-plugin-babel": "^1.7.3", "zustand": "^5.0.14" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b3a910f97..ecdc88d36 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -91,7 +91,7 @@ importers: version: 8.63.0(eslint@10.6.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) '@vitejs/plugin-react': specifier: ^6.0.3 - version: 6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0)) + version: 6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0)) babel-plugin-react-compiler: specifier: 19.1.0-rc.3 version: 19.1.0-rc.3 @@ -105,8 +105,8 @@ importers: specifier: ^0.5.3 version: 0.5.3(eslint@10.6.0(supports-color@8.1.1)) i18next: - specifier: ^26.3.5 - version: 26.3.5(typescript@6.0.3) + specifier: ^26.3.6 + version: 26.3.6(typescript@6.0.3) i18next-browser-languagedetector: specifier: ^8.2.1 version: 8.2.1 @@ -126,8 +126,8 @@ importers: specifier: ^7.81.0 version: 7.81.0(react@19.2.7) react-i18next: - specifier: ^17.0.8 - version: 17.0.8(i18next@26.3.5(typescript@6.0.3))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@6.0.3) + specifier: ^17.0.9 + version: 17.0.9(i18next@26.3.6(typescript@6.0.3))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@6.0.3) react-router-dom: specifier: ^7.18.1 version: 7.18.1(react-dom@19.2.7(react@19.2.7))(react@19.2.7) @@ -141,11 +141,11 @@ importers: specifier: ^6.0.3 version: 6.0.3 vite: - specifier: ^8.1.3 - version: 8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) + specifier: ^8.1.4 + version: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) vite-plugin-babel: specifier: ^1.7.3 - version: 1.7.3(@babel/core@8.0.1)(vite@8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0)) + version: 1.7.3(@babel/core@8.0.1)(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0)) zustand: specifier: ^5.0.14 version: 5.0.14(@types/react@19.2.17)(react@19.2.7)(use-sync-external-store@1.6.0(react@19.2.7)) @@ -484,7 +484,7 @@ importers: version: 6.0.3 vitest: specifier: ^4.1.10 - version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0)) + version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0)) ui: devDependencies: @@ -495,8 +495,8 @@ importers: specifier: ^6.0.3 version: 6.0.3 vite: - specifier: ^8.1.3 - version: 8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) + specifier: ^8.1.4 + version: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) packages: @@ -1224,8 +1224,8 @@ packages: cpu: [x64] os: [win32] - '@oxc-project/types@0.138.0': - resolution: {integrity: sha512-1a7ZKmrRTCoN1XMZ4L0PyyqrMnrNlLyPuOkdSX2MZg7IiIGRUyurNhAm73ptDOraoBcIordsIGKNPKUzy3ZmfA==} + '@oxc-project/types@0.139.0': + resolution: {integrity: sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==} '@paralleldrive/cuid2@2.3.1': resolution: {integrity: sha512-XO7cAxhnTZl0Yggq6jOgjiOHhbgcO4NqFqwSmQpjK3b6TEE6Uj/jfSk6wzYyemh3+I0sHirKSetjQwn5cZktFw==} @@ -1513,97 +1513,97 @@ packages: resolution: {integrity: sha512-wsV2keCt6B806XpSdezbWZ9aFJYf14YVh+XQf0ESt7M90yqVuxH9//PxvtC70sgj9OCkRM3nRaLfu4MsGQZRig==} engines: {node: '>=18.17.0', npm: '>=9.5.0'} - '@rolldown/binding-android-arm64@1.1.4': - resolution: {integrity: sha512-EZLpf/8y7GXkkra90ML47kzik/GMP3EMcE9bPyHmRfxLC6z9+aW5A8poCsoxjrT5GfEcNAAvWwUHjvP1pUQkfw==} + '@rolldown/binding-android-arm64@1.1.5': + resolution: {integrity: sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.1.4': - resolution: {integrity: sha512-aUi+HBvmYb7j8krl1+qJgkG8C17fO79gk3c+jPw4S8glRFc1DTija9S3EyaTSQUm5GJXYKDAsugBEhFHH2vYiQ==} + '@rolldown/binding-darwin-arm64@1.1.5': + resolution: {integrity: sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.1.4': - resolution: {integrity: sha512-F7hHC3gwY11+vByKPRWqwGbeXWVgKmL+pTGCinaEhdihzBV2aQ0fvZOch9cXYUOKuKKq429HeYXOqQLc7wFCEg==} + '@rolldown/binding-darwin-x64@1.1.5': + resolution: {integrity: sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.1.4': - resolution: {integrity: sha512-sI5yw+7s92SK6odiEhD5lKCBlWcpjHS5qyqpVQbZAJ0fIzEUXrmbl3DH2ybR3PZogulNJF+COLtmA8hUfvkCCQ==} + '@rolldown/binding-freebsd-x64@1.1.5': + resolution: {integrity: sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.1.4': - resolution: {integrity: sha512-mCi0OKgEieFircrtVYmQAFGszRtMnZ6fpZAXrxanXAu7lqZcsK1E1RAaZNG0uKAnxox3B1f4EyQNnoyMfN1vAA==} + '@rolldown/binding-linux-arm-gnueabihf@1.1.5': + resolution: {integrity: sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.1.4': - resolution: {integrity: sha512-B9Ial3Kv5sh0SHnB1g/QWcUQCEvCF6QKGAl4zXypYj65mVI+B4AhFBwPtSN7pDrJeIx8Z7zdy4ntx+wQABom7w==} + '@rolldown/binding-linux-arm64-gnu@1.1.5': + resolution: {integrity: sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-musl@1.1.4': - resolution: {integrity: sha512-lZVym0PuHE1KZ22gmFTC15lAkrg9iTszR617oYRB/iPY1A56ywoJzVKOJBKaot5RiikCObmur6pogpse3gRcng==} + '@rolldown/binding-linux-arm64-musl@1.1.5': + resolution: {integrity: sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@rolldown/binding-linux-ppc64-gnu@1.1.4': - resolution: {integrity: sha512-t2DNiLJWNTbnEHyUzTumldML6ET4/g16467LZoDDJ3tSxGvguL5/NyC2lCsNKuyRycg9XeDQF5SSv+TNOhQEXg==} + '@rolldown/binding-linux-ppc64-gnu@1.1.5': + resolution: {integrity: sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.1.4': - resolution: {integrity: sha512-0WIRnL1Uw4BvTZRLQt+PVgo6ZKTJadlC2btP+/EOXv2f/DWbY0rEgl+y834mIVwP1FkTlWVTrGGJXf12lru7EQ==} + '@rolldown/binding-linux-s390x-gnu@1.1.5': + resolution: {integrity: sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.1.4': - resolution: {integrity: sha512-JWtGshGfX+oENAKonoNkqEJX+7hC8yfhi9GUyPX1VX4mdh1y5r+ZiJLR5XzAB0aoP6s/PcILsGjKq8O0mm24bw==} + '@rolldown/binding-linux-x64-gnu@1.1.5': + resolution: {integrity: sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-musl@1.1.4': - resolution: {integrity: sha512-rT6yQcxUuXs4CnbofqwHRRV0iem349rLMYpTjkgQGLjrY4ado/eDzwPZPTCgTOlF6Nkp8NEv70yLMTn6qkWxsQ==} + '@rolldown/binding-linux-x64-musl@1.1.5': + resolution: {integrity: sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@rolldown/binding-openharmony-arm64@1.1.4': - resolution: {integrity: sha512-KXMGoboq5cyaCQjDA4GLuRiOwBQ0EyFnJoVViLeZ45/3rFItRODEr+NdsBcVpll40hhNArlm/speWGRvj08LzA==} + '@rolldown/binding-openharmony-arm64@1.1.5': + resolution: {integrity: sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-wasm32-wasi@1.1.4': - resolution: {integrity: sha512-5K83rb36oJiY7BCyE9zLZtGcPV4g5wvq+xwdO0XPIwDVZI8cyB/AUjkNXGb92/rnmezEkjMOpgY61rtwjQtFwg==} + '@rolldown/binding-wasm32-wasi@1.1.5': + resolution: {integrity: sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.1.4': - resolution: {integrity: sha512-PnWBtw3TV5KOg69HQQDR0mnQuyCmSGR2pAB4DC1rPF808fgKeTUMj2EOEyKATpgiuxuR5APQmiDO7PDgEjTFSA==} + '@rolldown/binding-win32-arm64-msvc@1.1.5': + resolution: {integrity: sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.1.4': - resolution: {integrity: sha512-M1lpniBePobTfsa7Ks9a199e1akxsXn+GYBUKsEzv3YFzOm1HJAMNwKI3qr0Zq+mxwx9gOZoTdP1yXRYsZUocQ==} + '@rolldown/binding-win32-x64-msvc@1.1.5': + resolution: {integrity: sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -3548,10 +3548,10 @@ packages: i18next-browser-languagedetector@8.2.1: resolution: {integrity: sha512-bZg8+4bdmaOiApD7N7BPT9W8MLZG+nPTOFlLiJiT8uzKXFjhxw4v2ierCXOwB5sFDMtuA5G4kgYZ0AznZxQ/cw==} - i18next@26.3.5: - resolution: {integrity: sha512-cd5lgkvjYQAPDfP3bbrAIE1wJmjTIlsrsjDqlvsHn4wFAerP5O0NfAe8RiDcXRfukN5ETe7Tlmfp6DkyuqDn6Q==} + i18next@26.3.6: + resolution: {integrity: sha512-Bu5Z2nAXgfVyM8xvW3jk9EKRIuX37PudsrBViThNFx7CR7aaYTpP01cxNB/E4c4UUzTDiAZRstEhsRfPOL/8xA==} peerDependencies: - typescript: ^5 || ^6 + typescript: ^5 || ^6 || ^7 peerDependenciesMeta: typescript: optional: true @@ -4646,14 +4646,14 @@ packages: peerDependencies: react: ^16.8.0 || ^17 || ^18 || ^19 - react-i18next@17.0.8: - resolution: {integrity: sha512-0ooKbGLU8JXhe1zwpQUWIeXSgLPOfwJmgheWRIUpcoA0CpyabpGhayjdG+/eA5esC1AQ8h2jWpXjJfzQzeDOCw==} + react-i18next@17.0.9: + resolution: {integrity: sha512-buLzOSqHtXxjf+qgSrLWNTXVZ1jSwO6kUv3uJqSP1roGBPgNnbhFm7OmdVwWcgf2gIbUyP0J333uPyx+Btsi3w==} peerDependencies: i18next: '>= 26.2.0' react: '>= 16.8.0' react-dom: '*' react-native: '*' - typescript: ^5 || ^6 + typescript: ^5 || ^6 || ^7 peerDependenciesMeta: react-dom: optional: true @@ -4800,8 +4800,8 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rolldown@1.1.4: - resolution: {integrity: sha512-IjZYiLxZwpnhwhdBH2ugdTGVSdhCQUmLxLoqyjiL0JxYjyRst+5a0P3xfrTxJ5F638j4Mvvw5FAX5XE6eHpXbA==} + rolldown@1.1.5: + resolution: {integrity: sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -5504,8 +5504,8 @@ packages: '@babel/core': '>=7.29.6' vite: '>=7.3.2' - vite@8.1.3: - resolution: {integrity: sha512-Ds+gBRbj0lwRO2Y5hwnUBdxSwlAve9LeRyU4sNnAr0ewW0gWF0n5bgXgUzbgZ49MV9BVUAQUFYVcDUcilUExMA==} + vite@8.1.4: + resolution: {integrity: sha512-bTT9PsdWO+MQMNG9ZXIP/qM9wGh37DFxTV/sPq9cFpHr3w4jkgef032PkAL9jAqhk3Nz8NQw3O8n6/xFkqO4QQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -6471,7 +6471,7 @@ snapshots: '@oxc-minify/binding-win32-x64-msvc@0.139.0': optional: true - '@oxc-project/types@0.138.0': {} + '@oxc-project/types@0.139.0': {} '@paralleldrive/cuid2@2.3.1': dependencies: @@ -6730,53 +6730,53 @@ snapshots: transitivePeerDependencies: - supports-color - '@rolldown/binding-android-arm64@1.1.4': + '@rolldown/binding-android-arm64@1.1.5': optional: true - '@rolldown/binding-darwin-arm64@1.1.4': + '@rolldown/binding-darwin-arm64@1.1.5': optional: true - '@rolldown/binding-darwin-x64@1.1.4': + '@rolldown/binding-darwin-x64@1.1.5': optional: true - '@rolldown/binding-freebsd-x64@1.1.4': + '@rolldown/binding-freebsd-x64@1.1.5': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.1.4': + '@rolldown/binding-linux-arm-gnueabihf@1.1.5': optional: true - '@rolldown/binding-linux-arm64-gnu@1.1.4': + '@rolldown/binding-linux-arm64-gnu@1.1.5': optional: true - '@rolldown/binding-linux-arm64-musl@1.1.4': + '@rolldown/binding-linux-arm64-musl@1.1.5': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.1.4': + '@rolldown/binding-linux-ppc64-gnu@1.1.5': optional: true - '@rolldown/binding-linux-s390x-gnu@1.1.4': + '@rolldown/binding-linux-s390x-gnu@1.1.5': optional: true - '@rolldown/binding-linux-x64-gnu@1.1.4': + '@rolldown/binding-linux-x64-gnu@1.1.5': optional: true - '@rolldown/binding-linux-x64-musl@1.1.4': + '@rolldown/binding-linux-x64-musl@1.1.5': optional: true - '@rolldown/binding-openharmony-arm64@1.1.4': + '@rolldown/binding-openharmony-arm64@1.1.5': optional: true - '@rolldown/binding-wasm32-wasi@1.1.4': + '@rolldown/binding-wasm32-wasi@1.1.5': dependencies: '@emnapi/core': 1.11.1 '@emnapi/runtime': 1.11.1 '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) optional: true - '@rolldown/binding-win32-arm64-msvc@1.1.4': + '@rolldown/binding-win32-arm64-msvc@1.1.5': optional: true - '@rolldown/binding-win32-x64-msvc@1.1.4': + '@rolldown/binding-win32-x64-msvc@1.1.5': optional: true '@rolldown/pluginutils@1.0.1': {} @@ -7364,17 +7364,17 @@ snapshots: '@unrs/rspack-resolver-binding-win32-x64-msvc@1.3.0': optional: true - '@vitejs/plugin-react@6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0))': + '@vitejs/plugin-react@6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) + vite: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) optionalDependencies: babel-plugin-react-compiler: 19.1.0-rc.3 - '@vitejs/plugin-vue@6.0.7(vite@8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0))(vue@3.5.39(typescript@6.0.3))': + '@vitejs/plugin-vue@6.0.7(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0))(vue@3.5.39(typescript@6.0.3))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) + vite: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) vue: 3.5.39(typescript@6.0.3) '@vitest/expect@4.1.10': @@ -7386,13 +7386,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.10(vite@8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0))': + '@vitest/mocker@4.1.10(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0))': dependencies: '@vitest/spy': 4.1.10 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) + vite: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) '@vitest/pretty-format@4.1.10': dependencies: @@ -9072,7 +9072,7 @@ snapshots: dependencies: '@babel/runtime': 7.29.7 - i18next@26.3.5(typescript@6.0.3): + i18next@26.3.6(typescript@6.0.3): optionalDependencies: typescript: 6.0.3 @@ -10201,11 +10201,11 @@ snapshots: dependencies: react: 19.2.7 - react-i18next@17.0.8(i18next@26.3.5(typescript@6.0.3))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@6.0.3): + react-i18next@17.0.9(i18next@26.3.6(typescript@6.0.3))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@6.0.3): dependencies: '@babel/runtime': 7.29.7 html-parse-stringify: 3.0.1 - i18next: 26.3.5(typescript@6.0.3) + i18next: 26.3.6(typescript@6.0.3) react: 19.2.7 use-sync-external-store: 1.6.0(react@19.2.7) optionalDependencies: @@ -10380,26 +10380,26 @@ snapshots: rfdc@1.4.1: {} - rolldown@1.1.4: + rolldown@1.1.5: dependencies: - '@oxc-project/types': 0.138.0 + '@oxc-project/types': 0.139.0 '@rolldown/pluginutils': 1.0.1 optionalDependencies: - '@rolldown/binding-android-arm64': 1.1.4 - '@rolldown/binding-darwin-arm64': 1.1.4 - '@rolldown/binding-darwin-x64': 1.1.4 - '@rolldown/binding-freebsd-x64': 1.1.4 - '@rolldown/binding-linux-arm-gnueabihf': 1.1.4 - '@rolldown/binding-linux-arm64-gnu': 1.1.4 - '@rolldown/binding-linux-arm64-musl': 1.1.4 - '@rolldown/binding-linux-ppc64-gnu': 1.1.4 - '@rolldown/binding-linux-s390x-gnu': 1.1.4 - '@rolldown/binding-linux-x64-gnu': 1.1.4 - '@rolldown/binding-linux-x64-musl': 1.1.4 - '@rolldown/binding-openharmony-arm64': 1.1.4 - '@rolldown/binding-wasm32-wasi': 1.1.4 - '@rolldown/binding-win32-arm64-msvc': 1.1.4 - '@rolldown/binding-win32-x64-msvc': 1.1.4 + '@rolldown/binding-android-arm64': 1.1.5 + '@rolldown/binding-darwin-arm64': 1.1.5 + '@rolldown/binding-darwin-x64': 1.1.5 + '@rolldown/binding-freebsd-x64': 1.1.5 + '@rolldown/binding-linux-arm-gnueabihf': 1.1.5 + '@rolldown/binding-linux-arm64-gnu': 1.1.5 + '@rolldown/binding-linux-arm64-musl': 1.1.5 + '@rolldown/binding-linux-ppc64-gnu': 1.1.5 + '@rolldown/binding-linux-s390x-gnu': 1.1.5 + '@rolldown/binding-linux-x64-gnu': 1.1.5 + '@rolldown/binding-linux-x64-musl': 1.1.5 + '@rolldown/binding-openharmony-arm64': 1.1.5 + '@rolldown/binding-wasm32-wasi': 1.1.5 + '@rolldown/binding-win32-arm64-msvc': 1.1.5 + '@rolldown/binding-win32-x64-msvc': 1.1.5 router@2.2.0(supports-color@8.1.1): dependencies: @@ -11143,17 +11143,17 @@ snapshots: x-is-array: 0.1.0 x-is-string: 0.1.0 - vite-plugin-babel@1.7.3(@babel/core@8.0.1)(vite@8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0)): + vite-plugin-babel@1.7.3(@babel/core@8.0.1)(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0)): dependencies: '@babel/core': 8.0.1 - vite: 8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) + vite: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) - vite@8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0): + vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0): dependencies: lightningcss: 1.32.0 picomatch: 4.0.5 postcss: 8.5.16 - rolldown: 1.1.4 + rolldown: 1.1.5 tinyglobby: 0.2.17 optionalDependencies: '@types/node': 26.1.1 @@ -11171,7 +11171,7 @@ snapshots: '@shikijs/transformers': 4.3.1 '@shikijs/types': 4.3.1 '@types/markdown-it': 14.1.2 - '@vitejs/plugin-vue': 6.0.7(vite@8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0))(vue@3.5.39(typescript@6.0.3)) + '@vitejs/plugin-vue': 6.0.7(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0))(vue@3.5.39(typescript@6.0.3)) '@vue/devtools-api': 8.1.5 '@vue/shared': 3.5.39 '@vueuse/core': 14.3.0(vue@3.5.39(typescript@6.0.3)) @@ -11180,7 +11180,7 @@ snapshots: mark.js: 8.11.1 minisearch: 7.2.0 shiki: 4.3.1 - vite: 8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) + vite: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) vue: 3.5.39(typescript@6.0.3) optionalDependencies: postcss: 8.5.16 @@ -11210,10 +11210,10 @@ snapshots: - universal-cookie - yaml - vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0)): + vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0)): dependencies: '@vitest/expect': 4.1.10 - '@vitest/mocker': 4.1.10(vite@8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0)) + '@vitest/mocker': 4.1.10(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0)) '@vitest/pretty-format': 4.1.10 '@vitest/runner': 4.1.10 '@vitest/snapshot': 4.1.10 @@ -11230,7 +11230,7 @@ snapshots: tinyexec: 1.2.4 tinyglobby: 0.2.17 tinyrainbow: 3.1.0 - vite: 8.1.3(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) + vite: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.1 diff --git a/ui/package.json b/ui/package.json index 0e9fb9cea..578590117 100644 --- a/ui/package.json +++ b/ui/package.json @@ -12,6 +12,6 @@ "devDependencies": { "ep_etherpad-lite": "workspace:../src", "typescript": "^6.0.3", - "vite": "^8.1.3" + "vite": "^8.1.4" } } From 037f4a25b5e2f6a98ffea37228e60becf5c7fe7d Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 13 Jul 2026 14:04:15 +0200 Subject: [PATCH 47/74] Localisation updates from https://translatewiki.net. --- src/locales/nah.json | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/locales/nah.json b/src/locales/nah.json index a5c40db10..a3ee77470 100644 --- a/src/locales/nah.json +++ b/src/locales/nah.json @@ -28,17 +28,17 @@ "pad.modals.cancel": "Xikxolewa", "pad.modals.deleted": "Omopohpoloh.", "pad.modals.deleted.explanation": "Ōmopoloh inīn Pad.", - "timeslider.version": "Inīc {{version}} Cuepaliztli", - "timeslider.month.january": "Eneroh", - "timeslider.month.february": "Febreroh", - "timeslider.month.march": "Marsoh", - "timeslider.month.april": "April", - "timeslider.month.may": "Mayoh", - "timeslider.month.june": "Honioh", - "timeslider.month.july": "Holioh", - "timeslider.month.august": "Ahostoh", - "timeslider.month.september": "Septiempreh", - "timeslider.month.october": "Oktopreh", - "timeslider.month.november": "Noviempreh", - "timeslider.month.december": "Tisiempreh" + "timeslider.version": "Inic {{version}} Tlacepaliztli", + "timeslider.month.january": "Enero", + "timeslider.month.february": "Febrero", + "timeslider.month.march": "Marzo", + "timeslider.month.april": "Abril", + "timeslider.month.may": "Mayo", + "timeslider.month.june": "Junio", + "timeslider.month.july": "Julio", + "timeslider.month.august": "Agosto", + "timeslider.month.september": "Septiembre", + "timeslider.month.october": "Octubre", + "timeslider.month.november": "Noviembre", + "timeslider.month.december": "Diciembre" } From 9a6109bd1dba05cc9c32b981c4ec96ecf68edc8b Mon Sep 17 00:00:00 2001 From: John McLear Date: Tue, 14 Jul 2026 09:53:11 +0100 Subject: [PATCH 48/74] 10,000 commits. Worth a pause. Thanks to every contributor: PRs, issues, reviews, translations, plugins, answered questions. This project runs on volunteer effort, not one person or one company. That's by design and it's why it's lasted. Thanks to everyone running an instance: schools, newsrooms, gov departments, or just yourself. You trusted us with your documents. We don't take that lightly. Thanks to the wider FOSS community. We've relied on other people's open source work more than we can credit individually, and tried to give some back. If you've never contributed to a FOSS project, this is your sign. Code, docs, translations, bug reports, or just running an instance and telling people about it, all of it counts. The migration to modern JS tooling has been one of the best things to happen to this codebase. Easier to contribute to, easier to maintain, easier to build on, which is what matters for a 15+ year old project that intends to keep going. Going forward: keep Etherpad boring, stable, self-hostable, no enshittification, while staying open to the plugins and integrations that make it useful. We need more maintainers and more instances. If that's you, open an issue. Here's to the next 10,000. John McLear From 2de5d10cafb37317c93b4ad814024de14846e6e5 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 20 Jul 2026 14:05:54 +0200 Subject: [PATCH 49/74] Localisation updates from https://translatewiki.net. --- src/locales/lb.json | 1 + src/locales/ne.json | 318 +++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 318 insertions(+), 1 deletion(-) diff --git a/src/locales/lb.json b/src/locales/lb.json index b868f6307..0eda6f52a 100644 --- a/src/locales/lb.json +++ b/src/locales/lb.json @@ -68,6 +68,7 @@ "index.newPad": "Neie Pad", "index.settings": "Astellungen", "index.copyLink": "2. Link kopéieren", + "index.copyLinkDescription": "Klickt op de Knäppchen ënnen, fir de Link an Ären Tëschespäicher ze kopéieren.", "index.copyLinkButton": "Link an den Tëschespäicher kopéieren", "index.createOpenPad": "oder maacht ee Pad mat dësem Numm op:", "pad.toolbar.bold.title": "Fett (Strg-B)", diff --git a/src/locales/ne.json b/src/locales/ne.json index 9ba6b3f6e..bea3e2eac 100644 --- a/src/locales/ne.json +++ b/src/locales/ne.json @@ -11,12 +11,243 @@ "हिमाल सुबेदी" ] }, + "admin.page-title": "प्रबन्धक ड्यासबोर्ड - इथरप्याड", + "admin.loading": "लोड हुँदैछ...", + "admin.loading_description": "कृपया पृष्ठ लोड हुदै गर्दा प्रतिक्षा गर्नुहोस् ।", + "admin.toggle_sidebar": "छेउपट्टी टगल गर्नुहोस्", + "admin.shout": "सञ्चार", + "admin_shout.online_one": "हाल {{count}} प्रयोगकर्ता अनलाइन छ", + "admin_shout.online_other": "हाल {{count}} प्रयोगकर्ताहरू अनलाइन छन्", + "admin_shout.sticky_toggle": "टाँसिने सन्देश परिवर्तन गर्नुहोस्", + "admin_login.title": "इथरप्याड", + "admin_login.username": "प्रयोगकर्ता नाम", + "admin_login.password": "पासवर्ड", + "admin_login.submit": "लगइन", + "admin_login.failed": "लगइन असफल भयो", + "admin_pads.all_pads": "सबै प्याडहरू", + "admin_pads.bulk.cleanup_history": "इतिहास खाली गर्नुहोस्", + "admin_pads.bulk.clear_selection": "चयन खाली गर्नुहोस्", + "admin_pads.bulk.delete": "मेट्नुहोस्", + "admin_pads.cancel": "रद्द गर्नुहोस्", + "admin_pads.col.pad": "प्याड", + "admin_pads.col.revisions": "संशोधनहरू", + "admin_pads.col.users": "प्रयोगकर्ताहरू", + "admin_pads.confirm_button": "ठीक छ", + "admin_pads.create_pad_dialog_description": "नयाँ प्याडका लागि नाम रोज्नुहोस् ।", + "admin_pads.delete_pad_dialog_description": "प्याड मेटाइ यकीन गर्नुहोस् वा रद्द गर्नुहोस् ।", + "admin_pads.delete_pad_dialog_title": "प्याड मेट्नुहोस्", + "admin_pads.empty_never_edited": "खाली · कहिल्यै सम्पादन गरिएन", + "admin_pads.error_dialog_description": "एउटा त्रुटि देखापर्यो ।", + "admin_pads.error_prefix": "त्रुटि", + "admin_pads.filter.active": "सक्रिय", + "admin_pads.filter.all": "सबै", + "admin_pads.filter.empty": "खाली", + "admin_pads.filter.recent": "यो हप्ता", + "admin_pads.filter.stale": "स्थिर (>1y)", + "admin_pads.open": "खोल्नुहोस्", + "admin_pads.pagination.next": "पछिल्लो", + "admin_pads.pagination.previous": "अघिल्लो", + "admin_pads.refresh": "ताजा पार्नुहोस्", + "admin_pads.relative.days": "{{count}}दिन अगाडि", + "admin_pads.relative.hours": "{{count}}घण्टा अगाडि", + "admin_pads.relative.just_now": "अहिले", + "admin_pads.relative.minutes": "{{count}}मिनेट अगाडि", + "admin_pads.relative.months": "{{count}}mo पहिले", + "admin_pads.relative.weeks": "{{count}}w अगाडि", + "admin_pads.relative.years": "{{county}} पहिले", + "admin_pads.revisions_count": "{{count}} संशोधनहरू", + "admin_pads.selected_count": "{{count}} चयन गरियो", + "admin_pads.show": "देखाउनुहोस्", + "admin_pads.sort.name": "नाम (AZ)", + "admin_pads.sort.revision_number": "संशोधनहरू", + "admin_pads.sort.user_count": "प्रयोगकर्ताहरू", + "admin_pads.stats.across_pads": "सबै प्याडहरूमा", + "admin_pads.stats.active_users": "सक्रिय प्रयोगकर्ताहरू", + "admin_pads.stats.empty_pads": "खाली प्याडहरू", + "admin_pads.stats.last_activity": "अन्तिम क्रियाकलाप", + "admin_pads.stats.no_active_users": "सक्रिय प्रयोगकर्ता छैन", + "admin_pads.stats.revisions_zero": "0 पुनरावलोकन", + "admin_pads.stats.total": "जम्मा प्याडहरू", + "admin_pads.stats.users_active": "{{count}} हाल सक्रिय", + "admin_pads.subtitle": "यस इथरप्याड दृष्टान्तमा सबै प्याडहरूको सिंहावलोकन । खोजी गर्नुहोस्, सफा गर्नुहोस्, खोल्नुहोस् ।", + "admin_plugins": "प्लगइन प्रबन्धक", + "admin_plugins.available": "उपलब्ध प्लगइनहरू", + "admin_plugins.available_not-found": "कुनै प्लगइन फेला परेन ।", + "admin_plugins.available_fetching": "तान्दै...", + "admin_plugins.available_install.value": "स्थापना गर्नुहोस्", + "admin_plugins.available_search.placeholder": "स्थापना गर्नका लागि प्लगइन खोजी गर्नुहोस्", + "admin_plugins.check_updates": "अद्यावधिकका लागि जाँच गर्नुहोस्", + "admin_plugins.core_count": "{{count}} कोर", + "admin_plugins.catalog_disabled": "प्लगइन विवरणिका तपाईँको सञ्चालकद्वारा अक्षम पारिएको छ (privacy.pluginCatalog=false) । प्लगइन स्थापना गर्न, `pnpm run plugins i ep_` सर्भरबाट चलाउनुहोस् ।", + "admin_plugins.crumbs": "प्लगइनहरू", "admin_plugins.description": "विवरण", + "admin_plugins.disables.label": "अक्षम पार्दछ:", + "admin_plugins.disables.warning_title": "यो प्लगइनले जानेर सूचीकृत इथरप्याड सुविधाहरू हटाउँछ ।", + "admin_plugins.error_retrieving": "प्लगइन पुन: प्राप्त गर्दा त्रुटि", + "admin_plugins.install_error": "{{plugin}} स्थापना गर्न असफल: {{error}}", + "admin_plugins.install_error_requires_newer_etherpad": "{{plugin}} स्थापना गर्न सकिँदैन: यसलाई इथरप्याडको नयाँ संस्करण चाहिन्छ । कृपया इथरप्याड स्तरवृद्धि गर्नुहोस् र फेरि प्रयास गर्नुहोस् ।", + "admin_plugins.installed": "स्थापित प्लगइनहरू", + "admin_plugins.installed_fetching": "स्थापित प्लगइनहरू तान्दैछ...", + "admin_plugins.installed_nothing": "तपाईँले अहिलेसम्म कुनै पनि प्लगइन स्थापना गर्नुभएको छैन ।", + "admin_plugins.installed_uninstall.value": "स्थापना रद्द गर्नुहोस्", + "admin_plugins.last-update": "अन्तिम अद्यावधिक", "admin_plugins.name": "नाम", + "admin_plugins.page-title": "प्लगइन प्रबन्धक - इथरप्याड", + "admin_plugins.reload_catalog": "क्याटलग पुन: लोड गर्नुहोस्", + "admin_plugins.search_npm": "npm मा खोजी गर्नुहोस्", + "admin_plugins.sort_ascending": "बढ्दो क्रममा क्रमबद्ध गर्नुहोस्", + "admin_plugins.sort_descending": "घट्दो क्रममा क्रमबद्ध गर्नुहोस्", + "admin_plugins.sort.last_updated": "अन्तिम अद्यावधिक", + "admin_plugins.sort.name": "नाम (AZ)", + "admin_plugins.sort.version": "संस्करण", + "admin_plugins.source": "प्लगइन स्रोत", + "admin_plugins.subtitle": "इथरप्याड प्लगइनहरू स्थापना, अद्यावधिक, र हटाउनुहोस् । परिवर्तनका लागि सर्भर पुनः सुरु गर्नु आवश्यक हुन्छ ।", + "admin_plugins.tag_core": "कोर", + "admin_plugins.update_tooltip": "अद्यतन", + "admin_plugins.updates_available": "अद्यावधिकहरू उपलब्ध छन्", + "admin_plugins.update_now": "अद्यतन", "admin_plugins.version": "संस्करण", + "admin_plugins_info": "समस्या निवारण सूचना", + "admin_plugins_info.bindings_label": "{{count}} बाइन्डिङ", + "admin_plugins_info.copy_diagnostics": "डायग्नोस्टिक्स प्रतिलिपि गर्नुहोस्", + "admin_plugins_info.copy_value": "{{label}} प्रतिलिपि बनाउनुहोस्", + "admin_plugins_info.git_sha": "Git SHA", + "admin_plugins_info.hook_bindings": "हुक बाइन्डिङ", + "admin_plugins_info.hooks": "स्थापित हुकहरू", + "admin_plugins_info.hooks_client": "क्लाइन्ट-साइड हुक", + "admin_plugins_info.hooks_server": "सर्भर-साइड हुकहरू", + "admin_plugins_info.no_hooks": "कुनै हुक फेला परेन", + "admin_plugins_info.parts": "स्थापना गरिएका भागहरू", + "admin_plugins_info.plugins": "स्थापित प्लगइनहरू", + "admin_plugins_info.page-title": "प्लगइन सूचना - इथरप्याड", + "admin_plugins_info.search_placeholder": "हुक वा भाग खोजी गर्नुहोस्...", + "admin_plugins_info.subtitle": "प्रणाली निदान: स्थापित संस्करण, दर्ता गरिएका भागहरू र हुकहरू।", + "admin_plugins_info.tab_client": "ग्राहक", + "admin_plugins_info.tab_server": "सर्भर", + "admin_plugins_info.up_to_date": "अद्यावधिक", + "admin_plugins_info.update_available": "अद्यावधिक उपलब्ध: {{version}}", + "admin_plugins_info.version": "इथरप्याड संस्करण", + "admin_plugins_info.version_latest": "नवीनतम उपलब्ध संस्करण", + "admin_plugins_info.version_number": "संस्करण नम्बर", + "admin_settings": "सेटिङ", + "admin_settings.create_pad": "प्याड सिर्जना गर्नुहोस्", + "admin_settings.current": "हालको कन्फिगरेसन", + "admin_settings.current_example-devel": "उदाहरण विकास सेटिङ टेम्प्लेट", + "admin_settings.current_example-prod": "उदाहरण उत्पादन सेटिङ टेम्प्लेट", + "admin_settings.current_restart.value": "इथरप्याड फेरि सुरु गर्नुहोस्", + "admin_settings.current_save.value": "सेटिङ बचत गर्नुहोस्", + "admin_settings.invalid_json": "अवैध JSON", + "admin_settings.current_test.value": "JSON प्रमाणित गर्नुहोस्", + "admin_settings.current_prettify.value": "JSON सुन्दर बनाउनुहोस्", + "admin_settings.toast.saved": "सेटिङ सफलतापूर्वक बचत गरियो ।", + "admin_settings.toast.save_failed": "बचत असफल भयो: settings.json लेख्न सकिएन ।", + "admin_settings.toast.json_invalid": "वाक्य संरचना त्रुटि: अल्पविरामहरू, जुँगे कोष्ठकहरू, र उद्धरणहरू जाँच गर्नुहोस् ।", + "admin_settings.toast.disconnected": "बचत गर्न सकिँदैन: सर्भरमा जडान भएको छैन ।", + "admin_settings.toast.validation_ok": "JSON वैध छ ।", + "admin_settings.toast.validation_failed": "JSON अवैध छ: कृपया वाक्य संरचना त्रुटिहरू समाधान गर्नुहोस् ।", + "admin_settings.toast.prettify_failed": "प्रशोधन गर्न सकिँदैन: कृपया पहिले वाक्य संरचना त्रुटिहरू समाधान गर्नुहोस् ।", + "admin_settings.prettify_confirm": "सुन्दरताले सबै टिप्पणीहरू हटाउनेछ । जारी राख्नुहुन्छ ?", + "admin_settings.mode.form": "फाराम", + "admin_settings.mode.raw": "कच्चा", + "admin_settings.mode.effective": "प्रभावकारी", + "admin_settings.mode.effective_tooltip": "वातावरण-चल प्रतिस्थापन पछि, इथरप्याडले अहिले प्रयोग गरिरहेको मानहरूको पढ्ने-मात्र दृश्य । गोप्यहरू सम्पादन गरिएका छन् ।", + "admin_settings.mode.aria_label": "सम्पादक मोड", + "admin_settings.envvar_banner.title": "यो फाइल टेम्प्लेट हो, प्रत्यक्ष कन्फिग होइन ।", + "admin_settings.envvar_banner.body": "${VAR:default} जस्ता प्लेसहोल्डरहरू सुरुआतमा स्मृतिमा प्रतिस्थापन गरिन्छ; तिनीहरू कहिले पनि यो फाइलमा लेखिँदैन । समाधान गरिएको मान परिवर्तन गर्न तपाईँको वातावरणमा env vars सम्पादन गर्नुहोस् (Docker compose, systemd, .env) वा यहाँको प्लेसहोल्डरलाई शाब्दिकसँग बदल्नुहोस् । इथरप्याडले अहिले के प्रयोग गरिरहेको छ हेर्न प्रभावकारी ट्याबमा स्विच गर्नुहोस् ।", + "admin_settings.toast.auth_error": "तपाईं प्रशासकको रूपमा प्रमाणित हुनुहुन्न । कृपया पुनः लगइन गर्नुहोस् ।", + "admin_settings.section.general": "सामान्य", + "admin_settings.parse_error.title": "सेटिङ्स.json पद वर्णन गर्न सकिँदैन", + "admin_settings.parse_error.cta": "सम्पादन गर्न कच्चामा स्विच गर्नुहोस्", + "admin_settings.env_pill.tooltip": "{{variable}} परिवेश चलबाट पढिन्छ । तलको मान {{variable}} सेट नगरिएको बेला प्रयोग गरिन्छ ।", + "admin_settings.env_pill.default_label": "पूर्वनिर्धारित", + "admin_settings.env_pill.input_aria": "{{variable}}का लागि पूर्वनिर्धारित मान", + "admin_settings.env_pill.runtime_label": "सक्रिय मान", + "admin_settings.env_pill.runtime_tooltip": "इथरप्याडले हाल यो मान प्रयोग गरिरहेको छ, {{variable}} वा यसको पूर्वनिर्धारितबाट समाधान गरिएको छ ।", + "admin_settings.env_pill.redacted_tooltip": "इथरप्याडले {{variable}}का लागि एउटा मान प्रयोग गरिरहेको छ, तर यो लुकेको छ किनभने यो गोप्य छ ।", + "admin_settings.page-title": "सेटिङ - इथरप्याड", + "admin_settings.save_error": "सेटिङ बचत गर्दा त्रुटि", + "admin_settings.saved_success": "सेटिङ सफलतापूर्वक बचत गरियो", + "update.banner.title": "अद्यावधिक उपलब्ध छ", + "update.banner.body": "इथरप्याड {{latest}} उपलब्ध छ (तपाईँ {{current}} चलाउँदै हुनुहुन्छ)।", + "update.banner.cta": "अद्यावधिक हेर्नुहोस्", + "update.page.title": "इथरप्याड अद्यावधिकहरू", + "update.page.current": "हालको संस्करण", + "update.page.latest": "नवीनतम संस्करण", + "update.page.last_check": "अन्तिम जाँच गरियो", + "update.page.install_method": "स्थापना विधि", + "update.page.tier": "तह अद्यावधिक गर्नुहोस्", + "update.page.changelog": "परिवर्तन लग", + "update.page.up_to_date": "तपाईँ नयाँ संस्करण चलाइरहनु भएको छ ।", + "update.page.disabled": "अद्यावधिक जाँचहरू अक्षम पारिएको छ (updates.tier = \"off\") ।", + "update.page.unauthorized": "तपाईंलाई अद्यावधिक स्थिति हेर्न अधिकार छैन ।", + "update.page.error": "अद्यावधिक स्थिति (स्थिति {{status}}) लोड गर्न सकेन ।", + "update.badge.severe": "यस सर्भरको ईथरप्याड गम्भीर रूपमा अप्रचलित छ । आफ्नो प्रशासकलाई बताउनुहोस् ।", + "update.badge.vulnerable": "यस सर्भरमा इथरप्याडले ज्ञात सुरक्षा समस्याहरूको साथमा संस्करण चलाइरहेको छ। आफ्नो प्रशासकलाई बताउनुहोस्।", + "update.page.apply": "अद्यावधिक लागू गर्नुहोस्", + "update.page.cancel": "रद्द गर्नुहोस्", + "update.page.acknowledge": "स्वीकृति", + "update.page.log": "अद्यावधिक लग (अन्तिम २०० पङ्क्तिहरू)", + "update.page.execution": "वस्तुस्थिति", + "update.page.policy.install-method-not-writable": "प्रबन्धक यूआईबाट अद्यावधिक गर्न गिट स्थापना आवश्यक पर्दछ । तपाईँको प्याकेज प्रबन्धक मार्फत अद्यावधिक गर्नुहोस् ।", + "update.page.policy.rollback-failed-terminal": "अघिल्लो अद्यावधिक असफल भयो र पछाडि रोल गर्न सकिएन। लक खाली गर्न स्थापना स्वस्थ भएपछि स्वीकृति थिच्नुहोस्।", + "update.page.policy.up-to-date": "तपाईँ नयाँ संस्करण चलाइरहनु भएको छ ।", + "update.page.policy.tier-off": "अद्यावधिकहरू अक्षम पारिएको छ (updates.tier = \"off\") ।", + "update.page.policy.maintenance-window-missing": "टियर ४ (स्वतन्त्र) लाई मर्मत सञ्झ्याल चाहिन्छ । स्वायत्त अद्यावधिक सक्षम पार्न settings.json मा अद्यावधिकहरू.मर्मत सञ्झ्याल सेट गर्नुहोस् ।", + "update.page.policy.maintenance-window-invalid": "टियर ४ (स्वतन्त्र) अक्षम पारिएको छ किनभने अद्यावधिकहरू.मर्मत सञ्झ्याल विकृत छ । अपेक्षित {start, end, tz} HH:MM पटक र \"local\" वा \"utc\" को tz सँग ।", + "update.page.last_result.verified": "{{tag}}को अन्तिम अद्यावधिक प्रमाणित भयो ।", + "update.page.last_result.rolled-back": "{{tag}}मा अन्तिम पटक प्रयास गरिएको अद्यावधिक पछाडि सारियो: {{reason}}।", + "update.page.last_result.rollback-failed": "अन्तिम अद्यावधिक प्रयास असफल भयो र रोलब्याक असफल भयो: {{reason}}। म्यानुअल हस्तक्षेप आवश्यक छ।", + "update.page.last_result.preflight-failed": "{{tag}}मा अन्तिम पटक प्रयास गरिएको अद्यावधिक असफल पूर्व उड्डाण: {{reason}}।", + "update.page.last_result.cancelled": "{{tag}} लाई अद्यावधिक गर्ने अन्तिम प्रयास प्रशासकद्वारा रद्द गरियो ।", + "update.execution.idle": "निष्क्रिय", + "update.execution.scheduled": "अद्यावधिक कार्यतालिका", + "update.execution.preflight": "पूर्व-उडान जाँच", + "update.execution.preflight-failed": "पूर्व-फ्लाइट असफल भयो", + "update.execution.draining": "निकास सत्रहरू", + "update.execution.executing": "अद्यावधिक गर्दै...", + "update.execution.pending-verification": "विचाराधिन प्रमाणीकरण", + "update.execution.verified": "प्रमाणित", + "update.execution.rolling-back": "पछाडि घुम्दै", + "update.execution.rolled-back": "पछाडि घुमाइएको", + "update.execution.rollback-failed": "रोलब्याक असफल भयो", + "update.banner.terminal.rollback-failed": "अद्यावधिक प्रयास असफल भयो र पछाडि रोल गर्न सकिएन । म्यानुअल हस्तक्षेप आवश्यक छ ।", + "update.banner.scheduled": "{{tag}} तालिकामा स्वत: अद्यावधिक - {{remaining}} मा लागू हुन्छ।", + "update.banner.maintenance-window-missing": "मर्मत सञ्झ्याल कन्फिगर नभएसम्म स्वायत्त अद्यावधिकहरू अक्षम गरिन्छ ।", + "update.banner.maintenance-window-invalid": "स्वायत्त अद्यावधिकहरू अक्षम पारिएको छ किनभने मर्मत सञ्झ्याल विकृत छ ।", + "update.page.scheduled.title": "अद्यावधिक कार्यतालिका", + "update.page.scheduled.countdown": "इथरप्याडले {{tag}} लाई {{remaining}} मा अद्यावधिक गर्न सुरु गर्नेछ।", + "update.page.scheduled.deferred_until": "मर्मत सञ्झ्याल बाहिर । {{at}} मा सञ्झ्याल खुल्दा अद्यावधिक सुरु हुनेछ ।", + "update.page.scheduled.apply_now": "अहिले लागू गर्नुहोस्", + "update.window.title": "मर्मत सञ्झ्याल", + "update.window.summary": "{{start}}{{end}} ({{tz}})", + "update.window.unset": "कन्फिगर गरिएको छैन ।", + "update.window.next_opens_at": "पछिल्लो सञ्झ्याल {{at}} मा खुल्नेछ ।", + "update.drain.t60": "अद्यावधिक लागू गर्न ईथरप्याड ६० सेकेन्डमा पुनःसुरु हुनेछ ।", + "update.drain.t30": "इथरप्याड अद्यावधिक लागू गर्न ३० सेकेन्डमा पुनः सुरु हुनेछ ।", + "update.drain.t10": "अद्यावधिक लागू गर्न 10 सेकेन्डमा इथरप्याड पुनः सुरु हुनेछ ।", "index.newPad": "नयाँ प्याड", "index.settings": "अभिरुचिहरू", + "index.transferSessionTitle": "सत्र स्थानान्तरण गर्नुहोस्", + "index.receiveSessionTitle": "सत्र प्राप्त गर्नुहोस्", + "index.receiveSessionDescription": "यहाँ तपाईँले अर्को ब्राउजर वा यन्त्रबाट इथरप्याड सत्र प्राप्त गर्न सक्नुहुन्छ । यद्यपि, यदि कुनै भएमा, यसले तपाईँको हालको सत्र मेट्नेछ भन्ने कृपया याद राख्नुहोस् ।", + "index.transferSession": "1. सत्र स्थानान्तरण गर्नुहोस्", + "index.transferSessionNow": "अहिले सत्र स्थानान्तरण गर्नुहोस्", + "index.copyLink": "२. लिङ्क प्रतिलिपि गर्नुहोस्", + "index.copyLinkDescription": "तपाईँको क्लिपबोर्डमा लिङ्क प्रतिलिपि गर्न तलको बटनमा क्लिक गर्नुहोस् ।", + "index.copyLinkButton": "क्लिपबोर्डमा लिङ्क प्रतिलिपि गर्नुहोस्", + "index.transferToSystem": "३. नयाँ प्रणालीमा सत्र प्रतिलिपि गर्नुहोस्", + "index.transferToSystemDescription": "तपाईँको सत्र स्थानान्तरण गर्न लक्षित ब्राउजर वा यन्त्रमा प्रतिलिपि गरिएको लिङ्क खोल्नुहोस् ।", + "index.code": "कोड", + "index.transferSessionDescription": "तलको बटन क्लिक गरेर तपाईँको हालको सत्र ब्राउजर वा यन्त्रमा स्थानान्तरण गर्नुहोस् । यसले पृष्ठमा लिङ्क प्रतिलिपि गर्नेछ जसले लक्षित ब्राउजर वा यन्त्रमा खोल्दा तपाईँको सत्र स्थानान्तरण गर्नेछ ।", "index.createOpenPad": "नाम सहितको नयाँ प्याड सिर्जना गर्ने / खोल्ने :", + "index.openPad": "नामसँग अवस्थित प्याड खोल्नुहोस्:", + "index.recentPads": "हालका प्याडहरू", + "index.recentPadsEmpty": "कुनै पनि हालैका प्याडहरू फेला परेन ।", + "index.generateNewPad": "अनियमित प्याड नाम उत्पन्न गर्नुहोस्", + "index.labelPad": "प्याड नाम (वैकल्पिक)", + "index.placeholderPadEnter": "कृपया प्याड नाम प्रविष्ट गर्नुहोस्...", + "index.createAndShareDocuments": "वास्तविक समयमा कागजातहरू सिर्जना गर्नुहोस् र साझेदारी गर्नुहोस्", + "index.createAndShareDocumentsDescription": "इथरप्याडले तपाईँलाई तपाईँको ब्राउजरमा चलिरहेको प्रत्यक्ष बहु-खेलाडी सम्पादक जस्तै वास्तविक समयमा सहकार्यपूर्वक कागजातहरू सम्पादन गर्न अनुमति दिन्छ ।", "pad.toolbar.bold.title": "मोटो (Ctrl-B)", "pad.toolbar.italic.title": "ढल्के (Ctrl-I)", "pad.toolbar.underline.title": "निम्न रेखाङ्कन (Ctrl-U)", @@ -28,25 +259,47 @@ "pad.toolbar.undo.title": "रद्द (Ctrl-Z)", "pad.toolbar.redo.title": "पुन:लागु (Ctrl-Y)", "pad.toolbar.clearAuthorship.title": "लेखकत्व रङहरू खाली गर्नुहोस् (Ctrl + Shift + C)", + "pad.toolbar.import_export.title": "फरक फाइल ढाँचाबाट/मा आयात/निर्यात गर्नुहोस्", "pad.toolbar.timeslider.title": "टाइमस्लाइडर", "pad.toolbar.savedRevision.title": "पुनरावलोकन संग्रहगर्ने", "pad.toolbar.settings.title": "अभिरुचिहरू", "pad.toolbar.embed.title": "यस प्याडलाई बाड्ने या इम्बेड गर्ने", + "pad.toolbar.home.title": "घर फर्कनुहोस्", "pad.toolbar.showusers.title": "यस प्याडमा रहेका प्रयोगकर्ता देखाउने", "pad.colorpicker.save": "सङ्ग्रह गर्नुहोस्", "pad.colorpicker.cancel": "रद्द गर्नुहोस्", "pad.loading": "खुल्दै छ…", + "pad.noCookie": "कुकी फेला पार्न सकिएन । कृपया तपाईँको ब्राउजरमा कुकीहरू अनुमति दिनुहोस् ! तपाईँको सत्र र सेटिङ भ्रमणको बीचमा बचत गरिने छैन । यो केही ब्राउजरहरूमा आइफ्रेममा ईथरप्याड समावेश भएको कारणले हुन सक्छ । कृपया ईथरप्याड प्रमूल आईफ्रेमको रूपमा उही उपडोमेन/डोमेनमा छ भनी सुनिश्चित गर्नुहोस्", "pad.permissionDenied": "तपाईंलाई यो प्याड खोल्न अनुमति छैन", + "pad.settings.title": "सेटिङ", "pad.settings.padSettings": "प्याड अभिरुचिहरू", + "pad.settings.userSettings": "प्रयोगकर्ता सेटिङ", "pad.settings.myView": "मेरो दृष्य", + "pad.settings.disablechat": "कुराकानी अक्षम पार्नुहोस्", + "pad.settings.darkMode": "गाढा मोड", "pad.settings.stickychat": "पर्दामा सधै च्याट गर्ने", "pad.settings.chatandusers": "वार्ता तथा प्रयोगकर्ताहरू देखाउने", "pad.settings.colorcheck": "लेखकका रङहरू", + "pad.settings.fadeInactiveAuthorColors": "निष्क्रिय लेखक रङ फेड गर्नुहोस्", "pad.settings.linenocheck": "हरफ संख्या", "pad.settings.rtlcheck": "के सामग्री दाहिने देखि देब्रे पढ्ने हो ?", + "pad.settings.enforceSettings": "अन्य प्रयोगकर्ताका लागि सेटिङहरू लागू गर्नुहोस्", + "pad.settings.enforcedNotice": "यी सेटिङहरू यस प्याडको सर्जकद्वारा तपाईँका लागि ताल्चा लगाइएको छ। यदि तपाईँलाई परिवर्तन गर्न आवश्यक छ भने प्याड सर्जकलाई सोध्नुहोस्।", "pad.settings.fontType": "लिपि प्रकार:", "pad.settings.fontType.normal": "सामान्य", "pad.settings.language": "भाषा:", + "pad.settings.deletePad": "प्याड मेट्नुहोस्", + "pad.delete.confirm": "के तपाईँ साँच्चिकै यो प्याड मेट्न चाहनुहुन्छ?", + "pad.deletionToken.modalTitle": "तपाईँको प्याड मेटाइ टोकन बचत गर्नुहोस्", + "pad.deletionToken.modalBody": "यदि तपाईँले आफ्नो ब्राउजर सत्र वा स्विच यन्त्र गुमाउनु भयो भने यो टोकन प्याड मेटाउने एक मात्र तरिका हो । यसलाई सुरक्षित स्थानमा बचत गर्नुहोस् - यो यहाँ ठ्याक्कै एक पटक देखाइएको छ ।", + "pad.deletionToken.copy": "प्रतिलिपि गर्नुहोस्", + "pad.deletionToken.copied": "प्रतिलिपि गरिएको", + "pad.deletionToken.acknowledge": "मैले यसलाई सङ्ग्रह गरेको छु", + "pad.deletionToken.deleteWithToken": "टोकनसँग प्याड मेट्नुहोस्", + "pad.deletionToken.tokenFieldLabel": "प्याड मेट्ने टोकन", + "pad.deletionToken.tokenValueLabel": "तपाईँको प्याड मेटाइ टोकन (पढ्ने-मात्र)", + "pad.deletionToken.invalid": "त्यो टोकन यो प्याडका लागि वैध छैन ।", + "pad.deletionToken.notCreator": "तपाईँ यो प्याडको सिर्जनाकर्ता हुनुहुन्न, त्यसैले तपाईँले यसलाई मेट्न सक्नुहुन्न ।", "pad.settings.about": "बारेमा", "pad.settings.poweredBy": "प्रवर्धक", "pad.importExport.import_export": "आयात/निर्यात", @@ -59,18 +312,45 @@ "pad.importExport.exportword": "माइक्रोसफ्ट वर्ड", "pad.importExport.exportpdf": "पिडिएफ", "pad.importExport.exportopen": "ओडिएफ(खुल्ला कागजात ढाँचा)", + "pad.importExport.exportetherpada.title": "इथरप्याडको रूपमा निर्यात गर्नुहोस्", + "pad.importExport.exporthtmla.title": "HTML को रूपमा निर्यात गर्नुहोस्", + "pad.importExport.exportplaina.title": "सादा पाठको रूपमा निर्यात गर्नुहोस्", + "pad.importExport.exportworda.title": "माइक्रोसफ्ट वर्डको रूपमा निर्यात गर्नुहोस्", + "pad.importExport.exportpdfa.title": "PDF को रूपमा निर्यात गर्नुहोस्", + "pad.importExport.exportopena.title": "ODF (खुला कागजात ढाँचा) को रूपमा निर्यात गर्नुहोस्", + "pad.importExport.noConverter.innerHTML": "तपाईँले सादा पाठ, HTML, Microsoft Word (.docx) र Etherpad फाइलहरू सिधै आयात गर्न सक्नुहुन्छ । PDF, ODT, DOC वा RTF जस्ता अन्य ढाँचाहरू आयात गर्न, सर्भर प्रशासकले LibreOffice स्थापना गर्न आवश्यक छ - Etherpad मिसिलीकरण हेर्नुहोस् ।", "pad.modals.connected": "जोडीएको।", "pad.modals.reconnecting": "तपाईंको प्याडमा पुन: जडान गर्दै", "pad.modals.forcereconnect": "जडानको लागि जोडगर्ने", + "pad.modals.reconnecttimer": "पुन: जडान गर्न प्रयास गर्दै", "pad.modals.cancel": "रद्द गर्नुहोस्", "pad.modals.userdup": "अर्को सन्झ्यालमा खोल्ने", + "pad.modals.userdup.explanation": "यो प्याड यस कम्प्युटरमा एक भन्दा बढी ब्राउजर सञ्झ्यालमा खोलिएको देखिन्छ ।", + "pad.modals.userdup.advice": "सट्टामा यो विन्डो प्रयोग गर्न पुन: जडान गर्नुहोस् ।", "pad.modals.unauth": "अनुमती नदिइएको", + "pad.modals.unauth.explanation": "यो पृष्ठ हेर्दा तपाईँको अनुमति परिवर्तन भएको छ। पुन: जडान गर्ने प्रयास गर्नुहोस्।", + "pad.modals.looping.explanation": "त्यहाँ समक्रमण सर्भरसँग सञ्चार समस्याहरू छन्।", + "pad.modals.looping.cause": "सायद तपाईँले अमिल्दो फायरवाल वा प्रोक्सी मार्फत जडान गर्नुभयो ।", "pad.modals.initsocketfail": "सर्भरमा पहुँच पुर्‍याउन सकिएन ।", + "pad.modals.initsocketfail.explanation": "समक्रमण सर्भरमा जडान गर्न सकेन ।", + "pad.modals.initsocketfail.cause": "यो सम्भवतः तपाईँको ब्राउजर वा इन्टरनेट जडानमा समस्या भएको कारणले हो।", "pad.modals.slowcommit.explanation": "सर्भरसँग सम्पर्क हुने सकेन ।", + "pad.modals.slowcommit.cause": "यो नेटवर्क जडानमा समस्याको कारणले हुन सक्छ।", + "pad.modals.badChangeset.explanation": "तपाईँले बनाउनु भएको सम्पादन समक्रमण सर्भरद्वारा अवैध वर्गीकरण गरिएको थियो ।", + "pad.modals.badChangeset.cause": "यो गलत सर्भर कन्फिगरेसन वा केही अन्य अनपेक्षित व्यवहारको कारणले हुन सक्छ। यदि तपाईँलाई यो त्रुटि हो जस्तो लाग्छ भने, कृपया सेवा प्रशासकलाई सम्पर्क गर्नुहोस्। सम्पादन जारी राख्न पुन: जडान प्रयास गर्नुहोस्।", + "pad.modals.corruptPad.explanation": "तपाईँले पहुँच गर्न खोज्नु भएको प्याड बिग्रिएको छ।", + "pad.modals.corruptPad.cause": "यो गलत सर्भर कन्फिगरेसन वा केही अन्य अनपेक्षित व्यवहारको कारणले हुन सक्छ। कृपया सेवा प्रशासकलाई सम्पर्क गर्नुहोस्।", "pad.modals.deleted": "मेटिएको ।", "pad.modals.deleted.explanation": "यो प्याड हटाइसकेको छ ।", + "pad.modals.rateLimited": "दर सिमित ।", + "pad.modals.rateLimited.explanation": "तपाईँले यो प्याडमा धेरै सन्देशहरू पठाउनुभयो त्यसैले यसले तपाईँलाई विच्छेदन गर्यो।", + "pad.modals.rejected.explanation": "सर्भरले तपाईँको ब्राउजरद्वारा पठाइएको सन्देश अस्वीकार गर्यो ।", + "pad.modals.rejected.cause": "तपाईँले प्याड हेरिरहनुभएको बेलामा सर्भर अद्यावधिक भएको हुन सक्छ, वा त्यहाँ इथरप्याडमा बग हुन सक्छ । पृष्ठ पुन: लोड गर्ने प्रयास गर्नुहोस् ।", "pad.modals.disconnected": "तपाईंको जडान अवरुद्ध भयो ।", "pad.modals.disconnected.explanation": "तपाईंको सर्भरसँगको जडान अवरुद्ध भयो", + "pad.modals.disconnected.cause": "सर्भर अनुपलब्ध हुन सक्छ । यदि यो हुन जारी छ भने कृपया सेवा प्रशासकलाई सूचित गर्नुहोस् ।", + "pad.gritter.unacceptedCommit.title": "बचत नगरिएको सम्पादन", + "pad.gritter.unacceptedCommit.text": "तपाईँको हालको सम्पादन अझै पनि बचत गरिएको छैन । पुन: जडान गर्नुहोस् र फेरि प्रयास गर्नुहोस् ।", "pad.share": "यस प्यडलाई बाड्ने", "pad.share.readonly": "पढ्ने मात्र", "pad.share.link": "कडी", @@ -78,14 +358,41 @@ "pad.chat": "कुराकानी", "pad.chat.title": "यस प्याडको लागि कुराकानी खोल्ने", "pad.chat.loadmessages": "थप सन्देशहरू खोल्ने", + "pad.chat.stick.title": "स्क्रिनमा कुराकानी टाँस्नुहोस्", + "pad.chat.writeMessage.placeholder": "तपाईँको सन्देश यहाँ लेख्नुहोस्", + "timeslider.followContents": "प्याड सामग्री अद्यावधिकहरू पछ्याउनुहोस्", "timeslider.pageTitle": "{{appTitle}} समय रेखा", "timeslider.toolbar.returnbutton": "प्याडमा फर्कनुहोस्", + "pad.historyMode.banner": "इतिहास हेर्दै", + "pad.historyMode.return": "प्रत्यक्षमा फर्कनुहोस्", + "pad.historyMode.revisionLabel": "संशोधन {{rev}}", + "pad.historyMode.controlsLabel": "प्याड इतिहास नियन्त्रणहरू", + "pad.historyMode.sliderLabel": "प्याड संशोधन", + "pad.historyMode.settings.title": "इतिहास प्लेब्याक", + "pad.historyMode.settings.follow": "प्याड सामग्री अद्यावधिकहरू पछ्याउनुहोस्", + "pad.historyMode.settings.followShort": "अनुशरण गर्नुहोस्", + "pad.historyMode.followOn": "प्याड परिवर्तनहरू पछ्याउँदै पछ्याउन रोक्न क्लिक गर्नुहोस्", + "pad.historyMode.followOff": "प्याड परिवर्तनहरू पछ्याइरहेको छैन पछ्याउन क्लिक गर्नुहोस्", + "pad.historyMode.settings.playbackSpeed": "प्लेब्याक गति:", + "pad.historyMode.chat.replayHeader": "{{time}} सम्मको कुराकानी", + "pad.historyMode.users.authorsHeader": "यस संशोधनका लेखकहरू", + "pad.editor.skipToContent": "सम्पादकमा फड्काउनुहोस्", + "pad.editor.keyboardHint": "सम्पादकबाट बाहिरिनका लागि Escape थिच्नुहोस् । उपकरणपट्टी पहुँच गर्न Alt+F9 थिच्नुहोस् ।", + "pad.editor.toolbar.formatting": "उपकरणपट्टी ढाँचा गर्दा", + "pad.editor.toolbar.actions": "प्याड कार्य उपकरणपट्टी", + "pad.editor.toolbar.showMore": "थप उपकरणपट्टी बटनहरू देखाउनुहोस्", "timeslider.toolbar.authors": "लेखकहरु:", "timeslider.toolbar.authorsList": "कुनै पनि लेखकहरू छैनन्", "timeslider.toolbar.exportlink.title": "निर्यात", "timeslider.exportCurrent": "हालको संस्करण निम्म रुपमा निर्यात गर्ने :", "timeslider.version": "संस्करण {{version}}", "timeslider.saved": "सङ्ग्रह गरिएको {{month}} {{day}}, {{year}}", + "timeslider.settings.playbackSpeed": "प्लेब्याक गति:", + "timeslider.settings.playbackSpeed.original": "मौलिक गति", + "timeslider.settings.playbackSpeed.realtime": "वास्तविक समय", + "timeslider.settings.playbackSpeed.200ms": "२०० ms", + "timeslider.settings.playbackSpeed.500ms": "५०० ms", + "timeslider.settings.playbackSpeed.1000ms": "१००० ms", "timeslider.playPause": "प्याडको सामग्रीहरूलाई चालु / बन्द गर्नुहोस्", "timeslider.backRevision": "यो प्याडको एक संस्करण पहिले जानुहोस्", "timeslider.forwardRevision": "यो प्याडको एक संस्करण पछि जानुहोस्", @@ -104,11 +411,20 @@ "timeslider.month.december": "डिसेम्बर", "timeslider.unnamedauthors": "{{num}} unnamed {[plural(num) one: author, other: authors ]}", "pad.savedrevs.marked": "यस संस्करणलाई संग्रहितको रुपमा चिनो लगाइएको छैन", + "pad.savedrevs.timeslider": "समय स्लाइडरमा गएर तपाईँले बचत गरिएका संशोधनहरू हेर्न सक्नुहुन्छ", "pad.userlist.entername": "तपाईंको नाम लेख्नुहोस्", "pad.userlist.unnamed": "नाम नखुलाइएको", + "pad.userlist.onlineCount": "{[ plural(count) one: {{count}} connected user, other: {{count}} connected users ]}", + "pad.editbar.clearcolors": "सम्पूर्ण कागजातमा लेखकता रङ खाली गर्नुहोस्? यो पूर्वस्थितिमा फर्काउन सकिँदैन", "pad.impexp.importbutton": "अहिले आयात गर्ने", "pad.impexp.importing": "आयात गर्ने...", + "pad.impexp.confirmimport": "फाइल आयात गर्दा प्याडको हालको पाठ अधिलेखन हुनेछ । तपाईँ अगाडि बढ्न निश्चित हुनुहुन्छ ?", + "pad.impexp.convertFailed": "हामी यो फाइल आयात गर्न असक्षम भयौँ । कृपया फरक कागजात ढाँचा प्रयोग गर्नुहोस् वा म्यानुअली टाँस्नुहोस्", + "pad.impexp.padHasData": "यो प्याडमा पहिले नै परिवर्तन भएकाले हामी यो फाइल आयात गर्न असक्षम भयौँ, कृपया नयाँ प्याडमा आयात गर्नुहोस्", "pad.impexp.uploadFailed": "अपलोड असफल भयो , कृपया पुन: प्रयास गर्नुहोस् ।", "pad.impexp.importfailed": "आयात असफल भयो", - "pad.impexp.copypaste": "कृपया कपी पेस्ट गर्नुहोस" + "pad.impexp.copypaste": "कृपया कपी पेस्ट गर्नुहोस", + "pad.impexp.exportdisabled": "{{type}} ढाँचाको रूपमा निर्यात गर्न अक्षम पारिएको छ। कृपया विस्तृत जानकारीको लागि तपाईँको प्रणाली प्रशासकलाई सम्पर्क गर्नुहोस्।", + "pad.impexp.maxFileSize": "फाइल अति ठूलो छ। आयातका लागि अनुमति प्राप्त फाइल साइज बढाउन आफ्नो साइट प्रशासकलाई सम्पर्क गर्नुहोस्", + "pad.social.description": "सबैजनाले वास्तविक समयमा सम्पादन गर्न सक्ने सहयोगी कागजात ।" } From 36aba18c6504d77312286823a1525333ca862420 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 27 Jul 2026 14:04:23 +0200 Subject: [PATCH 50/74] Localisation updates from https://translatewiki.net. --- src/locales/lb.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/locales/lb.json b/src/locales/lb.json index 0eda6f52a..92635e6be 100644 --- a/src/locales/lb.json +++ b/src/locales/lb.json @@ -56,8 +56,11 @@ "admin_plugins_info.version_latest": "Lescht disponibel Versioun", "admin_plugins_info.version_number": "Versiounsnummer", "admin_settings": "Astellungen", + "admin_settings.current": "Aktuell Konfiguratioun", "admin_settings.current_save.value": "Astellunge späicheren", "admin_settings.invalid_json": "Ongültegen JSON", + "admin_settings.toast.validation_ok": "Den JSON ass gülteg.", + "admin_settings.toast.validation_failed": "Den JSON ass ongülteg: Verbessert wgl. d'Syntaxfeeler.", "admin_settings.toast.auth_error": "Dir sidd net als Admin authentifizéiert. Loggt Iech wgl. nei an.", "admin_settings.env_pill.runtime_label": "aktive Wäert", "admin_settings.page-title": "Astellungen - Etherpad", From 9f288a730d62091bd66f3c32cf31a865b0249d8d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Jul 2026 19:31:15 +0200 Subject: [PATCH 51/74] build(deps): bump undici from 8.7.0 to 8.9.0 (#8077) Bumps [undici](https://github.com/nodejs/undici) from 8.7.0 to 8.9.0. - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](https://github.com/nodejs/undici/compare/v8.7.0...v8.9.0) --- updated-dependencies: - dependency-name: undici dependency-version: 8.9.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 10 +++++----- src/package.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ecdc88d36..e2f8a5f6c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -365,8 +365,8 @@ importers: specifier: 1.13.8 version: 1.13.8 undici: - specifier: ^8.7.0 - version: 8.7.0 + specifier: ^8.9.0 + version: 8.9.0 wtfnode: specifier: ^0.10.1 version: 0.10.1 @@ -5395,8 +5395,8 @@ packages: resolution: {integrity: sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==} engines: {node: '>=20.18.1'} - undici@8.7.0: - resolution: {integrity: sha512-N7iQtfyLhIMOFgQubvmLV26svHpO0bqKnAiWotTQCVKCmWrcGbBotPuW1x+xwYZ2VHdSTVUfPQQnlEt1/LouTQ==} + undici@8.9.0: + resolution: {integrity: sha512-aWZpUj7XoGonMClx4gdDRfgBjqeA+F473aDmROQQbM9n6PRfK/u1q/a0X4wMTgcHfT8H6fpbt98PFuDUwFg2YA==} engines: {node: '>=22.19.0'} unicode-properties@1.4.1: @@ -11027,7 +11027,7 @@ snapshots: undici@7.28.0: {} - undici@8.7.0: {} + undici@8.9.0: {} unicode-properties@1.4.1: dependencies: diff --git a/src/package.json b/src/package.json index 9dd30929e..ba5d82619 100644 --- a/src/package.json +++ b/src/package.json @@ -87,7 +87,7 @@ "tsx": "4.23.0", "ueberdb2": "6.1.16", "underscore": "1.13.8", - "undici": "^8.7.0", + "undici": "^8.9.0", "wtfnode": "^0.10.1" }, "bin": { From 64c67252a79ac130919afefbebc636ca3c7d6501 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Jul 2026 19:31:19 +0200 Subject: [PATCH 52/74] build(deps): bump @radix-ui/react-switch from 1.3.3 to 1.3.7 (#8076) Bumps [@radix-ui/react-switch](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/switch) from 1.3.3 to 1.3.7. - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/switch/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/switch) --- updated-dependencies: - dependency-name: "@radix-ui/react-switch" dependency-version: 1.3.7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- admin/package.json | 2 +- pnpm-lock.yaml | 144 +++++++++++++++++++++++++++++++++++++++------ 2 files changed, 126 insertions(+), 20 deletions(-) diff --git a/admin/package.json b/admin/package.json index 37f640a80..43be601eb 100644 --- a/admin/package.json +++ b/admin/package.json @@ -14,7 +14,7 @@ "test": "pnpm gen:api && tsx --test 'src/**/__tests__/*.test.ts' 'src/**/__tests__/*.test.tsx'" }, "dependencies": { - "@radix-ui/react-switch": "^1.3.3", + "@radix-ui/react-switch": "^1.3.7", "@tanstack/react-query": "^5.101.2", "@tanstack/react-query-devtools": "^5.101.2", "jsonc-parser": "^3.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e2f8a5f6c..c09d30b48 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -50,8 +50,8 @@ importers: admin: dependencies: '@radix-ui/react-switch': - specifier: ^1.3.3 - version: 1.3.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + specifier: ^1.3.7 + version: 1.3.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@tanstack/react-query': specifier: ^5.101.2 version: 5.101.2(react@19.2.7) @@ -1238,6 +1238,9 @@ packages: '@radix-ui/primitive@1.1.5': resolution: {integrity: sha512-d86WIWFYNtGA0H/d8exstrTRTp7eWJYlYJbtNofxr/3ljupZYn6EFDG/Qgu/0Kc8v7yMUxySagqJsL1+PdYjWg==} + '@radix-ui/primitive@1.1.7': + resolution: {integrity: sha512-rqWnm76nYT8HoNNqEjpgJ7Pw/DrBj5iBTrmEPo6HTX5+VJyBNOqTdv4g89G63HuR5g0AaENoAcH7Is5fF2kZ8Q==} + '@radix-ui/react-collection@1.1.12': resolution: {integrity: sha512-nb67INpE0IahJKN7EYPp9m9YGwYeKlnzxT3MwXVkgCskaSJia97kG4T0ywpjNUSSnoJk/uvk12V8vbrEHEj+/Q==} peerDependencies: @@ -1260,6 +1263,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-compose-refs@1.1.5': + resolution: {integrity: sha512-+48PbAAbq3didjJxa+OaWY2ZwgAKsNiRGyeHKszblZMQ+kcpd9pAaT11cMkGEie0vsOi3QdeTE6d5Fe3Gn61kA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-context@1.2.0': resolution: {integrity: sha512-fOE+JtN9rygNZkCnHRBEP0TAvLldlhyOxMsbwFvTP4nAs+nBmfnna+o/Zski2wkmY1YMrFC0aSzsHoLY47iLrg==} peerDependencies: @@ -1269,6 +1281,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-context@1.2.2': + resolution: {integrity: sha512-RHCUGwKHDr0hDGg4X7ma4JG4/+12qxw8rkh5QKdDldlCvtja6nUx1Ef/8HVrJze81lEsgLQlqjzjGNHantgnQA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-dialog@1.1.19': resolution: {integrity: sha512-+HhbN2+YtkRgVirjZ2afMeutQRuGOrdkWR5+EFC58SJojGmtyNQwYzgi6tHBpOxvFHefMtPeHdgtjz0BOGxFQg==} peerDependencies: @@ -1352,6 +1373,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-primitive@2.1.10': + resolution: {integrity: sha512-MucOnzh6hR5mid6VpkbglRAMYMjKLqRnGBbjXkzjK52fuQDd1qbkx78a5P40mkcnVXJdEVxm26E9OPAiUq7nBg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-primitive@2.1.7': resolution: {integrity: sha512-bC3NiwsprbxKjuon9l7X6BUTw7FPVzEYaL92MPEY5SCd/9hUTPXVFtVwRix7778wtRsVao+zE062gL79FZleeQ==} peerDependencies: @@ -1374,8 +1408,17 @@ packages: '@types/react': optional: true - '@radix-ui/react-switch@1.3.3': - resolution: {integrity: sha512-1+mlB4/lxJfk5tgJ4g+R5mUCbRpPE1T9+UsEyeLYbGgMtwiMgmuTnfKz4Mw1nHALHjuwyxw4MLd4cSHn6pNSlQ==} + '@radix-ui/react-slot@1.3.3': + resolution: {integrity: sha512-qx7oqnYbxnK9kYI9m317qmFmEgo6ywqWvbTogdj7cL9p3/yx4M48p7Rnw5z3H890cL/ow/EeWJsuTykeZVXP5Q==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-switch@1.3.7': + resolution: {integrity: sha512-48tB/4dn2UVLBCYhTu9AuR63IHl73l/qLbLgxd86noTUor4/K4LFDAcYjK+isP5313qxaFpjPVogE7+Y0/V3Kw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1418,6 +1461,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-use-controllable-state@1.2.6': + resolution: {integrity: sha512-uEQJGT97ZA/TgP/Hydw47lHu+/vQj6z/0jA+WeTbK1o9Rx45GImjpD0tc3W5ad3D6XTSR6e1yEO0FvGq6WQfVQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-use-effect-event@0.0.3': resolution: {integrity: sha512-6c8ZqvPTWILEKnyVkP53EGRCcpnJiKTC21sS/6R1GF5xKyHJJWQEPfkqlcgUkdRQivd6tb23abUwe4ngWmY0JA==} peerDependencies: @@ -1427,6 +1479,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-use-effect-event@0.0.5': + resolution: {integrity: sha512-7cshFL8HGS/7HEiHH+9kL9HBwp2sa9yX18Knwek6KYWmXwM7pegMgta2AXMQKI+rq3JnfSj9x8wYqFMTdG1Jgg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-use-layout-effect@1.1.2': resolution: {integrity: sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA==} peerDependencies: @@ -1436,8 +1497,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-previous@1.1.2': - resolution: {integrity: sha512-IGBQPtRFdhN6MQ8dbegVmBq1LVZluya3F1jWY+puIcQC3MHctRwTDSBWCkL/3ZcnMJLTMJ++Z+ktmvg0F89iCw==} + '@radix-ui/react-use-layout-effect@1.1.4': + resolution: {integrity: sha512-K20DkRkUwDnxEYMBPcg3Y6voLkEy5p5QQmszZgLngKKiC7dzBR/aEuK3w1qlx2JWDUNH6FluahYdgR3BP+QbYw==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1445,8 +1506,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-size@1.1.2': - resolution: {integrity: sha512-giWQp+4mxjBPt4KZ0MmyuykFNWfbDxKt4x+fPkRYmgRFJSbCZFzUglvMb/Kjn38tm10YP4ufiQZDx3zna4LU6w==} + '@radix-ui/react-use-size@1.1.4': + resolution: {integrity: sha512-D3anSY15EJoxrihpsXI6SMrmmonnQtR2ni7arO+Lfdg3O95b9hNXxONk8jA5C8ANdF/h5HMAxejgs8PWJ6rlhw==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -6483,6 +6544,8 @@ snapshots: '@radix-ui/primitive@1.1.5': {} + '@radix-ui/primitive@1.1.7': {} + '@radix-ui/react-collection@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@19.2.7) @@ -6501,12 +6564,24 @@ snapshots: optionalDependencies: '@types/react': 19.2.17 + '@radix-ui/react-compose-refs@1.1.5(@types/react@19.2.17)(react@19.2.7)': + dependencies: + react: 19.2.7 + optionalDependencies: + '@types/react': 19.2.17 + '@radix-ui/react-context@1.2.0(@types/react@19.2.17)(react@19.2.7)': dependencies: react: 19.2.7 optionalDependencies: '@types/react': 19.2.17 + '@radix-ui/react-context@1.2.2(@types/react@19.2.17)(react@19.2.7)': + dependencies: + react: 19.2.7 + optionalDependencies: + '@types/react': 19.2.17 + '@radix-ui/react-dialog@1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: '@radix-ui/primitive': 1.1.5 @@ -6585,6 +6660,15 @@ snapshots: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) + '@radix-ui/react-primitive@2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + dependencies: + '@radix-ui/react-slot': 1.3.3(@types/react@19.2.17)(react@19.2.7) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) + '@radix-ui/react-primitive@2.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: '@radix-ui/react-slot': 1.3.0(@types/react@19.2.17)(react@19.2.7) @@ -6601,15 +6685,21 @@ snapshots: optionalDependencies: '@types/react': 19.2.17 - '@radix-ui/react-switch@1.3.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + '@radix-ui/react-slot@1.3.3(@types/react@19.2.17)(react@19.2.7)': dependencies: - '@radix-ui/primitive': 1.1.5 - '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-context': 1.2.0(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-use-previous': 1.1.2(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-use-size': 1.1.2(@types/react@19.2.17)(react@19.2.7) + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.7) + react: 19.2.7 + optionalDependencies: + '@types/react': 19.2.17 + + '@radix-ui/react-switch@1.3.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + dependencies: + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.7) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.7) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.7) + '@radix-ui/react-use-size': 1.1.4(@types/react@19.2.17)(react@19.2.7) react: 19.2.7 react-dom: 19.2.7(react@19.2.7) optionalDependencies: @@ -6650,6 +6740,15 @@ snapshots: optionalDependencies: '@types/react': 19.2.17 + '@radix-ui/react-use-controllable-state@1.2.6(@types/react@19.2.17)(react@19.2.7)': + dependencies: + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-use-effect-event': 0.0.5(@types/react@19.2.17)(react@19.2.7) + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.7) + react: 19.2.7 + optionalDependencies: + '@types/react': 19.2.17 + '@radix-ui/react-use-effect-event@0.0.3(@types/react@19.2.17)(react@19.2.7)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.17)(react@19.2.7) @@ -6657,21 +6756,28 @@ snapshots: optionalDependencies: '@types/react': 19.2.17 + '@radix-ui/react-use-effect-event@0.0.5(@types/react@19.2.17)(react@19.2.7)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.7) + react: 19.2.7 + optionalDependencies: + '@types/react': 19.2.17 + '@radix-ui/react-use-layout-effect@1.1.2(@types/react@19.2.17)(react@19.2.7)': dependencies: react: 19.2.7 optionalDependencies: '@types/react': 19.2.17 - '@radix-ui/react-use-previous@1.1.2(@types/react@19.2.17)(react@19.2.7)': + '@radix-ui/react-use-layout-effect@1.1.4(@types/react@19.2.17)(react@19.2.7)': dependencies: react: 19.2.7 optionalDependencies: '@types/react': 19.2.17 - '@radix-ui/react-use-size@1.1.2(@types/react@19.2.17)(react@19.2.7)': + '@radix-ui/react-use-size@1.1.4(@types/react@19.2.17)(react@19.2.7)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.17)(react@19.2.7) + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.7) react: 19.2.7 optionalDependencies: '@types/react': 19.2.17 From 80c0910f8b0408ce8df7d6065143a63cbc39ad2e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Jul 2026 19:31:22 +0200 Subject: [PATCH 53/74] build(deps): bump jose from 6.2.3 to 6.2.4 (#8065) Bumps [jose](https://github.com/panva/jose) from 6.2.3 to 6.2.4. - [Release notes](https://github.com/panva/jose/releases) - [Changelog](https://github.com/panva/jose/blob/main/CHANGELOG.md) - [Commits](https://github.com/panva/jose/compare/v6.2.3...v6.2.4) --- updated-dependencies: - dependency-name: jose dependency-version: 6.2.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 12 ++++++------ src/package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c09d30b48..6d54f94a9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -242,8 +242,8 @@ importers: specifier: ^2.0.1 version: 2.0.1 jose: - specifier: ^6.2.3 - version: 6.2.3 + specifier: ^6.2.4 + version: 6.2.4 js-cookie: specifier: ^3.0.8 version: 3.0.8 @@ -3837,8 +3837,8 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - jose@6.2.3: - resolution: {integrity: sha512-YYVDInQKFJfR/xa3ojUTl8c2KoTwiL1R5Wg9YCydwH0x0B9grbzlg5HC7mMjCtUJjbQ/YnGEZIhI5tCgfTb4Hw==} + jose@6.2.4: + resolution: {integrity: sha512-N8acGzVsQy6M/fjFcxtysNc4Q379TcM5dM/qKkNtsHFji88yANnXTr7BLeP75iPnFwBfQzM/jg2BZ9+HZrHCZA==} js-cookie@3.0.8: resolution: {integrity: sha512-yeJd4aNAdYZQjaon2bpD/Gb0B/omw7HQOsynXXcOiWVCacbBcPlgn8S/d1X6blFSaHao7ozqtW7NZW19xpCtIw==} @@ -9376,7 +9376,7 @@ snapshots: isexe@2.0.0: {} - jose@6.2.3: {} + jose@6.2.4: {} js-cookie@3.0.8: {} @@ -9954,7 +9954,7 @@ snapshots: '@koa/router': 15.7.0(koa@3.2.1)(supports-color@8.1.1) debug: 4.4.3(supports-color@8.1.1) eta: 4.6.0 - jose: 6.2.3 + jose: 6.2.4 jsesc: 3.1.0 koa: 3.2.1 nanoid: 5.1.16 diff --git a/src/package.json b/src/package.json index ba5d82619..c839728e7 100644 --- a/src/package.json +++ b/src/package.json @@ -46,7 +46,7 @@ "html-to-docx": "^1.8.0", "htmlparser2": "^12.0.0", "http-errors": "^2.0.1", - "jose": "^6.2.3", + "jose": "^6.2.4", "js-cookie": "^3.0.8", "jsdom": "^29.1.1", "jsonc-parser": "^3.3.1", From 3f965fae9581f7b50e62b0f162eca01922caf86a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Jul 2026 19:31:26 +0200 Subject: [PATCH 54/74] build(deps): bump mysql2 from 3.22.6 to 3.23.1 (#8063) Bumps [mysql2](https://github.com/sidorares/node-mysql2) from 3.22.6 to 3.23.1. - [Release notes](https://github.com/sidorares/node-mysql2/releases) - [Changelog](https://github.com/sidorares/node-mysql2/blob/master/Changelog.md) - [Commits](https://github.com/sidorares/node-mysql2/compare/v3.22.6...v3.23.1) --- updated-dependencies: - dependency-name: mysql2 dependency-version: 3.23.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 26 +++++++++++++------------- src/package.json | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6d54f94a9..2cd2c8899 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -166,7 +166,7 @@ importers: version: 4.23.0 ueberdb2: specifier: 6.1.16 - version: 6.1.16(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.22.6(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.16(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.23.1(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) devDependencies: '@types/node': specifier: ^26.1.1 @@ -290,8 +290,8 @@ importers: specifier: ^12.6.0 version: 12.7.0 mysql2: - specifier: ^3.22.6 - version: 3.22.6(@types/node@26.1.1) + specifier: ^3.23.1 + version: 3.23.1(@types/node@26.1.1) nano: specifier: ^11.0.6 version: 11.0.6 @@ -360,7 +360,7 @@ importers: version: 4.23.0 ueberdb2: specifier: 6.1.16 - version: 6.1.16(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.22.6(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.16(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.23.1(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) underscore: specifier: 1.13.8 version: 1.13.8 @@ -4281,8 +4281,8 @@ packages: engines: {node: '>=18.19.0'} hasBin: true - mysql2@3.22.6: - resolution: {integrity: sha512-fPKmeDGUzvFP7bMD5SASlJ5zIgvCC4hbanTmhbUlEmhyrY1hR4Hi3xLOWgTd3luYjLVifx6uGvMNJ2m/LlqEpg==} + mysql2@3.23.1: + resolution: {integrity: sha512-tTuRnC7qCet2IOfSNMYZ5SwXuBnfvBPAcIA28P0gtruXyZlU1LMxA6uha32kYypoFgyYklMqhLWwt4laYwXR/Q==} engines: {node: '>= 8.0'} peerDependencies: '@types/node': '>= 8' @@ -5123,8 +5123,8 @@ packages: sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} - sql-escaper@1.4.0: - resolution: {integrity: sha512-Ti/Zx9J3aITMYUMFhCKbkplQjyi7Kk2SyYXp+rzrkyKZetIy19XbQtVZ+0ZR5aVm/178tIJ6+aVvBqXkH+Xs7w==} + sql-escaper@1.5.1: + resolution: {integrity: sha512-4toX5E1fQbBrpfXidaHnF0669nkAdETeIPTs2SUjxxD7RRIs9ICG4gtpmfc68JCEKehsdwLFqBu9VlQqZ1P1gg==} engines: {bun: '>=1.0.0', deno: '>=2.0.0', node: '>=12.0.0'} stable-hash@0.0.5: @@ -9843,7 +9843,7 @@ snapshots: transitivePeerDependencies: - supports-color - mysql2@3.22.6(@types/node@26.1.1): + mysql2@3.23.1(@types/node@26.1.1): dependencies: '@types/node': 26.1.1 aws-ssl-profiles: 1.1.2 @@ -9853,7 +9853,7 @@ snapshots: long: 5.3.2 lru.min: 1.1.4 named-placeholders: 1.1.6 - sql-escaper: 1.4.0 + sql-escaper: 1.5.1 named-placeholders@1.1.6: dependencies: @@ -10813,7 +10813,7 @@ snapshots: sprintf-js@1.1.3: {} - sql-escaper@1.4.0: {} + sql-escaper@1.5.1: {} stable-hash@0.0.5: {} @@ -11096,7 +11096,7 @@ snapshots: typescript@6.0.3: {} - ueberdb2@6.1.16(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.22.6(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)): + ueberdb2@6.1.16(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.23.1(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)): optionalDependencies: '@elastic/elasticsearch': 9.4.2 async: 3.2.6 @@ -11104,7 +11104,7 @@ snapshots: dirty-ts: 1.1.8 mongodb: 7.4.0(socks@2.8.9) mssql: 12.7.0 - mysql2: 3.22.6(@types/node@26.1.1) + mysql2: 3.23.1(@types/node@26.1.1) nano: 11.0.6 pg: 8.22.0 redis: 6.1.0(@opentelemetry/api@1.9.1) diff --git a/src/package.json b/src/package.json index c839728e7..ddba051a5 100644 --- a/src/package.json +++ b/src/package.json @@ -62,7 +62,7 @@ "mime-types": "^3.0.2", "mongodb": "^7.4.0", "mssql": "^12.6.0", - "mysql2": "^3.22.6", + "mysql2": "^3.23.1", "nano": "^11.0.6", "nodemailer": "^9.0.3", "oidc-provider": "9.9.1", From 5dedafe5153263a9afe6fd038f22a215d7dc69e7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Jul 2026 19:31:29 +0200 Subject: [PATCH 55/74] build(deps): bump @tanstack/react-query-devtools from 5.101.2 to 5.101.4 (#8062) Bumps [@tanstack/react-query-devtools](https://github.com/TanStack/query/tree/HEAD/packages/react-query-devtools) from 5.101.2 to 5.101.4. - [Release notes](https://github.com/TanStack/query/releases) - [Changelog](https://github.com/TanStack/query/blob/main/packages/react-query-devtools/CHANGELOG.md) - [Commits](https://github.com/TanStack/query/commits/@tanstack/react-query-devtools@5.101.4/packages/react-query-devtools) --- updated-dependencies: - dependency-name: "@tanstack/react-query-devtools" dependency-version: 5.101.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- admin/package.json | 2 +- pnpm-lock.yaml | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/admin/package.json b/admin/package.json index 43be601eb..9d539881c 100644 --- a/admin/package.json +++ b/admin/package.json @@ -16,7 +16,7 @@ "dependencies": { "@radix-ui/react-switch": "^1.3.7", "@tanstack/react-query": "^5.101.2", - "@tanstack/react-query-devtools": "^5.101.2", + "@tanstack/react-query-devtools": "^5.101.4", "jsonc-parser": "^3.3.1", "openapi-fetch": "^0.17.0", "openapi-react-query": "^0.5.4" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2cd2c8899..0d24f9105 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -56,8 +56,8 @@ importers: specifier: ^5.101.2 version: 5.101.2(react@19.2.7) '@tanstack/react-query-devtools': - specifier: ^5.101.2 - version: 5.101.2(@tanstack/react-query@5.101.2(react@19.2.7))(react@19.2.7) + specifier: ^5.101.4 + version: 5.101.4(@tanstack/react-query@5.101.2(react@19.2.7))(react@19.2.7) jsonc-parser: specifier: ^3.3.1 version: 3.3.1 @@ -1744,13 +1744,13 @@ packages: '@tanstack/query-core@5.101.2': resolution: {integrity: sha512-hH5MLoJhF7KaIGd7q3xTXGXvslI+GYlM1Z/35aSHHWaCJWB7XvTSHYuV3eM7tw+aE0mT/xMro4M4Q9rCGHT0lw==} - '@tanstack/query-devtools@5.101.2': - resolution: {integrity: sha512-o+wHcqgN7Pp0s8v1i0UGq/ZrrEKrxdIiMQmKRdYb2w7NPtylYSJ4+wg/tIn71m9DLstwUwdEGAvROdly6HXP6w==} + '@tanstack/query-devtools@5.101.4': + resolution: {integrity: sha512-z5IPHnDX3aUWeTWlRKLyooBQekaCAw4xRpZqPQ390RiWTDBcTynjpPT221BArw0u2+pnQMdGvPQI9YNNubBcmA==} - '@tanstack/react-query-devtools@5.101.2': - resolution: {integrity: sha512-eU7HctdA9gDjqoERoEdzLbw9DiqnBDfh5+Hu0u26gjqoHJezOpQAuiesDL2VvkU+2cPV76zgv0tMZsOrI4LjnQ==} + '@tanstack/react-query-devtools@5.101.4': + resolution: {integrity: sha512-VeK2gtmfj7kvRBjtxS7TKxt/6qKhn8VzabY4UiYMr7NV9CddjSRYRgeYyld+NpjAkgMV9dd+2Qdr8ah5I03NeA==} peerDependencies: - '@tanstack/react-query': ^5.101.2 + '@tanstack/react-query': ^5.101.4 react: ^18 || ^19 '@tanstack/react-query@5.101.2': @@ -6968,11 +6968,11 @@ snapshots: '@tanstack/query-core@5.101.2': {} - '@tanstack/query-devtools@5.101.2': {} + '@tanstack/query-devtools@5.101.4': {} - '@tanstack/react-query-devtools@5.101.2(@tanstack/react-query@5.101.2(react@19.2.7))(react@19.2.7)': + '@tanstack/react-query-devtools@5.101.4(@tanstack/react-query@5.101.2(react@19.2.7))(react@19.2.7)': dependencies: - '@tanstack/query-devtools': 5.101.2 + '@tanstack/query-devtools': 5.101.4 '@tanstack/react-query': 5.101.2(react@19.2.7) react: 19.2.7 From c6db7470890bd702d3d25915e0c9d9ba9af92a8a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Jul 2026 19:31:36 +0200 Subject: [PATCH 56/74] build(deps): bump express-rate-limit from 8.5.2 to 8.6.0 (#8052) Bumps [express-rate-limit](https://github.com/express-rate-limit/express-rate-limit) from 8.5.2 to 8.6.0. - [Release notes](https://github.com/express-rate-limit/express-rate-limit/releases) - [Commits](https://github.com/express-rate-limit/express-rate-limit/compare/v8.5.2...v8.6.0) --- updated-dependencies: - dependency-name: express-rate-limit dependency-version: 8.6.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 13 ++++++++----- src/package.json | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0d24f9105..1d2e4a89e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -224,8 +224,8 @@ importers: specifier: ^5.2.1 version: 5.2.1(supports-color@8.1.1) express-rate-limit: - specifier: ^8.5.1 - version: 8.5.2(express@5.2.1(supports-color@8.1.1)) + specifier: ^8.6.0 + version: 8.6.0(express@5.2.1(supports-color@8.1.1)) express-session: specifier: ^1.19.0 version: 1.19.0 @@ -3262,8 +3262,8 @@ packages: resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==} engines: {node: '>=12.0.0'} - express-rate-limit@8.5.2: - resolution: {integrity: sha512-5Kb34ipNX694DH48vN9irak1Qx30nb0PLYHXfJgw4YEjiC3ZEmZJhwOp+VfiCYwFzvFTdB9QkArYS5kXa2cx2A==} + express-rate-limit@8.6.0: + resolution: {integrity: sha512-XKJXDsASUOo0LLtFwW5hCcQGH0N4WQc/Rn8/Pvoia+TJFOkkFPvrtW9lZOeeNcxQJspvOIERMwiRLsVFlhHEkA==} engines: {node: '>= 16'} peerDependencies: express: '>= 4.11' @@ -8684,10 +8684,13 @@ snapshots: expect-type@1.4.0: {} - express-rate-limit@8.5.2(express@5.2.1(supports-color@8.1.1)): + express-rate-limit@8.6.0(express@5.2.1(supports-color@8.1.1)): dependencies: + debug: 4.4.3(supports-color@8.1.1) express: 5.2.1(supports-color@8.1.1) ip-address: 10.2.0 + transitivePeerDependencies: + - supports-color express-session@1.19.0: dependencies: diff --git a/src/package.json b/src/package.json index ddba051a5..57daa6c8e 100644 --- a/src/package.json +++ b/src/package.json @@ -40,7 +40,7 @@ "ejs": "^6.0.1", "esbuild": "^0.28.1", "express": "^5.2.1", - "express-rate-limit": "^8.5.1", + "express-rate-limit": "^8.6.0", "express-session": "^1.19.0", "formidable": "^3.5.4", "html-to-docx": "^1.8.0", From 111c9c3864178bc83e586c95104a686ba240defe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Jul 2026 19:31:40 +0200 Subject: [PATCH 57/74] build(deps): bump tsx from 4.23.0 to 4.23.1 (#8047) Bumps [tsx](https://github.com/privatenumber/tsx) from 4.23.0 to 4.23.1. - [Release notes](https://github.com/privatenumber/tsx/releases) - [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs) - [Commits](https://github.com/privatenumber/tsx/compare/v4.23.0...v4.23.1) --- updated-dependencies: - dependency-name: tsx dependency-version: 4.23.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- admin/package.json | 2 +- bin/package.json | 2 +- pnpm-lock.yaml | 62 +++++++++++++++++++++++----------------------- src/package.json | 2 +- 4 files changed, 34 insertions(+), 34 deletions(-) diff --git a/admin/package.json b/admin/package.json index 9d539881c..4471e1f86 100644 --- a/admin/package.json +++ b/admin/package.json @@ -44,7 +44,7 @@ "react-i18next": "^17.0.9", "react-router-dom": "^7.18.1", "socket.io-client": "^4.8.3", - "tsx": "^4.23.0", + "tsx": "^4.23.1", "typescript": "^6.0.3", "vite": "^8.1.4", "vite-plugin-babel": "^1.7.3", diff --git a/bin/package.json b/bin/package.json index c4174d278..e34967b5d 100644 --- a/bin/package.json +++ b/bin/package.json @@ -10,7 +10,7 @@ "ep_etherpad-lite": "workspace:../src", "log4js": "^6.9.1", "semver": "^7.8.5", - "tsx": "^4.23.0", + "tsx": "^4.23.1", "ueberdb2": "6.1.16" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1d2e4a89e..6303aa80d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -91,7 +91,7 @@ importers: version: 8.63.0(eslint@10.6.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) '@vitejs/plugin-react': specifier: ^6.0.3 - version: 6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0)) + version: 6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1)) babel-plugin-react-compiler: specifier: 19.1.0-rc.3 version: 19.1.0-rc.3 @@ -135,17 +135,17 @@ importers: specifier: ^4.8.3 version: 4.8.3(supports-color@8.1.1) tsx: - specifier: ^4.23.0 - version: 4.23.0 + specifier: ^4.23.1 + version: 4.23.1 typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.1.4 - version: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) + version: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1) vite-plugin-babel: specifier: ^1.7.3 - version: 1.7.3(@babel/core@8.0.1)(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0)) + version: 1.7.3(@babel/core@8.0.1)(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1)) zustand: specifier: ^5.0.14 version: 5.0.14(@types/react@19.2.17)(react@19.2.7)(use-sync-external-store@1.6.0(react@19.2.7)) @@ -162,8 +162,8 @@ importers: specifier: ^7.8.5 version: 7.8.5 tsx: - specifier: ^4.23.0 - version: 4.23.0 + specifier: ^4.23.1 + version: 4.23.1 ueberdb2: specifier: 6.1.16 version: 6.1.16(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.23.1(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) @@ -189,7 +189,7 @@ importers: version: 0.139.0 vitepress: specifier: ^2.0.0-alpha.18 - version: 2.0.0-alpha.18(@types/node@26.1.1)(change-case@5.4.4)(esbuild@0.28.1)(jwt-decode@4.0.0)(postcss@8.5.16)(tsx@4.23.0)(typescript@6.0.3) + version: 2.0.0-alpha.18(@types/node@26.1.1)(change-case@5.4.4)(esbuild@0.28.1)(jwt-decode@4.0.0)(postcss@8.5.16)(tsx@4.23.1)(typescript@6.0.3) src: dependencies: @@ -356,8 +356,8 @@ importers: specifier: 0.6.8 version: 0.6.8 tsx: - specifier: 4.23.0 - version: 4.23.0 + specifier: 4.23.1 + version: 4.23.1 ueberdb2: specifier: 6.1.16 version: 6.1.16(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.23.1(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) @@ -484,7 +484,7 @@ importers: version: 6.0.3 vitest: specifier: ^4.1.10 - version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0)) + version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1)) ui: devDependencies: @@ -496,7 +496,7 @@ importers: version: 6.0.3 vite: specifier: ^8.1.4 - version: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) + version: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1) packages: @@ -5334,8 +5334,8 @@ packages: resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} engines: {node: '>=0.6.x'} - tsx@4.23.0: - resolution: {integrity: sha512-eUdUIaCr963q2h5u3+QwvYp0+eqPvn+egeqZUm0hwERCqqx1E3kK5ehbGCvqSE5MQAULr67ww0cA3jKc3YkM1w==} + tsx@4.23.1: + resolution: {integrity: sha512-GQHnkIfxyx1wYCOS/wonik5MVRZU9hi1TEZmzGZSCJB1y9YgoZ8H6itNE/u4suE+yLmOzuE4E5S4TZ/ZX2wcWQ==} engines: {node: '>=18.0.0'} hasBin: true @@ -7470,17 +7470,17 @@ snapshots: '@unrs/rspack-resolver-binding-win32-x64-msvc@1.3.0': optional: true - '@vitejs/plugin-react@6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0))': + '@vitejs/plugin-react@6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) + vite: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1) optionalDependencies: babel-plugin-react-compiler: 19.1.0-rc.3 - '@vitejs/plugin-vue@6.0.7(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0))(vue@3.5.39(typescript@6.0.3))': + '@vitejs/plugin-vue@6.0.7(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1))(vue@3.5.39(typescript@6.0.3))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) + vite: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1) vue: 3.5.39(typescript@6.0.3) '@vitest/expect@4.1.10': @@ -7492,13 +7492,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.10(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0))': + '@vitest/mocker@4.1.10(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1))': dependencies: '@vitest/spy': 4.1.10 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) + vite: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1) '@vitest/pretty-format@4.1.10': dependencies: @@ -11040,7 +11040,7 @@ snapshots: tsscmp@1.0.6: {} - tsx@4.23.0: + tsx@4.23.1: dependencies: esbuild: 0.28.1 optionalDependencies: @@ -11252,12 +11252,12 @@ snapshots: x-is-array: 0.1.0 x-is-string: 0.1.0 - vite-plugin-babel@1.7.3(@babel/core@8.0.1)(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0)): + vite-plugin-babel@1.7.3(@babel/core@8.0.1)(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1)): dependencies: '@babel/core': 8.0.1 - vite: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) + vite: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1) - vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0): + vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1): dependencies: lightningcss: 1.32.0 picomatch: 4.0.5 @@ -11268,9 +11268,9 @@ snapshots: '@types/node': 26.1.1 esbuild: 0.28.1 fsevents: 2.3.3 - tsx: 4.23.0 + tsx: 4.23.1 - vitepress@2.0.0-alpha.18(@types/node@26.1.1)(change-case@5.4.4)(esbuild@0.28.1)(jwt-decode@4.0.0)(postcss@8.5.16)(tsx@4.23.0)(typescript@6.0.3): + vitepress@2.0.0-alpha.18(@types/node@26.1.1)(change-case@5.4.4)(esbuild@0.28.1)(jwt-decode@4.0.0)(postcss@8.5.16)(tsx@4.23.1)(typescript@6.0.3): dependencies: '@docsearch/css': 4.6.3 '@docsearch/js': 4.6.3 @@ -11280,7 +11280,7 @@ snapshots: '@shikijs/transformers': 4.3.1 '@shikijs/types': 4.3.1 '@types/markdown-it': 14.1.2 - '@vitejs/plugin-vue': 6.0.7(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0))(vue@3.5.39(typescript@6.0.3)) + '@vitejs/plugin-vue': 6.0.7(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1))(vue@3.5.39(typescript@6.0.3)) '@vue/devtools-api': 8.1.5 '@vue/shared': 3.5.39 '@vueuse/core': 14.3.0(vue@3.5.39(typescript@6.0.3)) @@ -11289,7 +11289,7 @@ snapshots: mark.js: 8.11.1 minisearch: 7.2.0 shiki: 4.3.1 - vite: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) + vite: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1) vue: 3.5.39(typescript@6.0.3) optionalDependencies: postcss: 8.5.16 @@ -11319,10 +11319,10 @@ snapshots: - universal-cookie - yaml - vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0)): + vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1)): dependencies: '@vitest/expect': 4.1.10 - '@vitest/mocker': 4.1.10(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0)) + '@vitest/mocker': 4.1.10(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1)) '@vitest/pretty-format': 4.1.10 '@vitest/runner': 4.1.10 '@vitest/snapshot': 4.1.10 @@ -11339,7 +11339,7 @@ snapshots: tinyexec: 1.2.4 tinyglobby: 0.2.17 tinyrainbow: 3.1.0 - vite: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.0) + vite: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.1 diff --git a/src/package.json b/src/package.json index 57daa6c8e..33aba3c3a 100644 --- a/src/package.json +++ b/src/package.json @@ -84,7 +84,7 @@ "superagent": "10.3.0", "surrealdb": "^2.0.4", "tinycon": "0.6.8", - "tsx": "4.23.0", + "tsx": "4.23.1", "ueberdb2": "6.1.16", "underscore": "1.13.8", "undici": "^8.9.0", From 87a8b2a5c26041ede3692e84fab33f2094459861 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Jul 2026 20:15:15 +0200 Subject: [PATCH 58/74] build(deps): bump @tanstack/react-query from 5.101.2 to 5.101.4 (#8060) Bumps [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) from 5.101.2 to 5.101.4. - [Release notes](https://github.com/TanStack/query/releases) - [Changelog](https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md) - [Commits](https://github.com/TanStack/query/commits/@tanstack/react-query@5.101.4/packages/react-query) --- updated-dependencies: - dependency-name: "@tanstack/react-query" dependency-version: 5.101.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- admin/package.json | 2 +- pnpm-lock.yaml | 34 +++++++++++++++++----------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/admin/package.json b/admin/package.json index 4471e1f86..f49f6183d 100644 --- a/admin/package.json +++ b/admin/package.json @@ -15,7 +15,7 @@ }, "dependencies": { "@radix-ui/react-switch": "^1.3.7", - "@tanstack/react-query": "^5.101.2", + "@tanstack/react-query": "^5.101.4", "@tanstack/react-query-devtools": "^5.101.4", "jsonc-parser": "^3.3.1", "openapi-fetch": "^0.17.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6303aa80d..a1a8d9232 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -53,11 +53,11 @@ importers: specifier: ^1.3.7 version: 1.3.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@tanstack/react-query': - specifier: ^5.101.2 - version: 5.101.2(react@19.2.7) + specifier: ^5.101.4 + version: 5.101.4(react@19.2.7) '@tanstack/react-query-devtools': specifier: ^5.101.4 - version: 5.101.4(@tanstack/react-query@5.101.2(react@19.2.7))(react@19.2.7) + version: 5.101.4(@tanstack/react-query@5.101.4(react@19.2.7))(react@19.2.7) jsonc-parser: specifier: ^3.3.1 version: 3.3.1 @@ -66,7 +66,7 @@ importers: version: 0.17.0 openapi-react-query: specifier: ^0.5.4 - version: 0.5.4(@tanstack/react-query@5.101.2(react@19.2.7))(openapi-fetch@0.17.0) + version: 0.5.4(@tanstack/react-query@5.101.4(react@19.2.7))(openapi-fetch@0.17.0) devDependencies: '@radix-ui/react-dialog': specifier: ^1.1.19 @@ -225,7 +225,7 @@ importers: version: 5.2.1(supports-color@8.1.1) express-rate-limit: specifier: ^8.6.0 - version: 8.6.0(express@5.2.1(supports-color@8.1.1)) + version: 8.6.0(express@5.2.1(supports-color@8.1.1))(supports-color@8.1.1) express-session: specifier: ^1.19.0 version: 1.19.0 @@ -1741,8 +1741,8 @@ packages: '@swc/helpers@0.5.23': resolution: {integrity: sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==} - '@tanstack/query-core@5.101.2': - resolution: {integrity: sha512-hH5MLoJhF7KaIGd7q3xTXGXvslI+GYlM1Z/35aSHHWaCJWB7XvTSHYuV3eM7tw+aE0mT/xMro4M4Q9rCGHT0lw==} + '@tanstack/query-core@5.101.4': + resolution: {integrity: sha512-gNwcvOJcRbLWPOLG/2OBm+zM+Yv+MKsXKEOWC57USuZDEsI71hEErQsiEGx5wX9rzWWkfwM0fVSPoiIFSsxfiw==} '@tanstack/query-devtools@5.101.4': resolution: {integrity: sha512-z5IPHnDX3aUWeTWlRKLyooBQekaCAw4xRpZqPQ390RiWTDBcTynjpPT221BArw0u2+pnQMdGvPQI9YNNubBcmA==} @@ -1753,8 +1753,8 @@ packages: '@tanstack/react-query': ^5.101.4 react: ^18 || ^19 - '@tanstack/react-query@5.101.2': - resolution: {integrity: sha512-seDkr6kzGzX1okaaTtZPtgA688CDPlXUz1C6xSg0ESqn04Vuc8tlrYms1s3de+znBqhPVxFRfpAfUf+6XvfPWg==} + '@tanstack/react-query@5.101.4': + resolution: {integrity: sha512-yRg2pfOCxIs4ZJW3XYYHU/WgtD04FHSnfHlpRT7h7pR77hwkdRG4wxbKe4aq6P0RvXUTBSQpQeadS1SUYUe+KA==} peerDependencies: react: ^18 || ^19 @@ -6966,19 +6966,19 @@ snapshots: dependencies: tslib: 2.8.1 - '@tanstack/query-core@5.101.2': {} + '@tanstack/query-core@5.101.4': {} '@tanstack/query-devtools@5.101.4': {} - '@tanstack/react-query-devtools@5.101.4(@tanstack/react-query@5.101.2(react@19.2.7))(react@19.2.7)': + '@tanstack/react-query-devtools@5.101.4(@tanstack/react-query@5.101.4(react@19.2.7))(react@19.2.7)': dependencies: '@tanstack/query-devtools': 5.101.4 - '@tanstack/react-query': 5.101.2(react@19.2.7) + '@tanstack/react-query': 5.101.4(react@19.2.7) react: 19.2.7 - '@tanstack/react-query@5.101.2(react@19.2.7)': + '@tanstack/react-query@5.101.4(react@19.2.7)': dependencies: - '@tanstack/query-core': 5.101.2 + '@tanstack/query-core': 5.101.4 react: 19.2.7 '@tediousjs/connection-string@1.1.0': {} @@ -8684,7 +8684,7 @@ snapshots: expect-type@1.4.0: {} - express-rate-limit@8.6.0(express@5.2.1(supports-color@8.1.1)): + express-rate-limit@8.6.0(express@5.2.1(supports-color@8.1.1))(supports-color@8.1.1): dependencies: debug: 4.4.3(supports-color@8.1.1) express: 5.2.1(supports-color@8.1.1) @@ -10008,9 +10008,9 @@ snapshots: dependencies: openapi-typescript-helpers: 0.1.0 - openapi-react-query@0.5.4(@tanstack/react-query@5.101.2(react@19.2.7))(openapi-fetch@0.17.0): + openapi-react-query@0.5.4(@tanstack/react-query@5.101.4(react@19.2.7))(openapi-fetch@0.17.0): dependencies: - '@tanstack/react-query': 5.101.2(react@19.2.7) + '@tanstack/react-query': 5.101.4(react@19.2.7) openapi-fetch: 0.17.0 openapi-typescript-helpers: 0.1.0 From 4d95a12845d42ce4cbc1f5cda5460a44269c2574 Mon Sep 17 00:00:00 2001 From: John McLear Date: Mon, 27 Jul 2026 19:18:36 +0100 Subject: [PATCH 59/74] security(collab): apply queued USER_CHANGES to the enqueue-time pad (cross-pad write TOCTOU) (#8075) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * security(collab): apply queued USER_CHANGES to the enqueue-time pad (cross-pad write TOCTOU) GHSA-6mcx-x5h6-rpw2. handleUserChanges re-read the mutable sessioninfos[socket.id].padId at apply time, while the authorization / read-only gate and the channel key were taken at enqueue time. Because per-socket messages are processed concurrently and a thrown handler does not disconnect the socket, a same-socket CLIENT_READY could swap the session's padId between enqueue and apply — redirecting a queued write onto a read-only or otherwise unauthorized pad (runtime-proven cross-pad write; a read-only share holder could overwrite the pad). Thread the enqueue-time pad id (already the padChannels channel key) into handleUserChanges as `authorizedPadId` and use it for the write instead of re-reading the session. The gate and the write now refer to the same pad, closing the TOCTOU window. Normal (non-racing) flows are unaffected because the session padId equals the enqueue-time padId. Adds a deterministic regression test that invokes handleUserChanges with the session padId already swapped to a victim pad and asserts the change lands on the authorized (argument) pad, never the victim. Verified it fails when the vulnerable read is reintroduced. Co-Authored-By: Claude Opus 4.8 (1M context) * security(collab): pin pad snapshot before awaits to fully close cross-pad write TOCTOU Addresses Qodo review on #8075: the first cut used the padChannels channel key as the write target, but that key was still read from thisSession.padId at enqueue time — AFTER the awaits in handleMessage() (checkAccess and the handleMessageSecurity/handleMessage hooks). A concurrent same-socket CLIENT_READY can mutate sessioninfos[socket.id] in place during those awaits (the object-identity disconnect check does not catch an in-place mutation), so the queue key — and thus the write — could still be redirected onto a read-only / unauthorized pad after the read-only gate passed. Pin the pad id and read-only flag into a consistent snapshot (messagePadId / messageReadonly) together with `auth`, BEFORE any of those awaits, and use the snapshot for the read-only gate, the hook context, the queue key and the write. The gate, the queue key and the write now all refer to the same pad regardless of concurrent CLIENT_READY swaps. handleUserChanges keeps using its authorizedPadId argument (defence for the enqueue->apply window). The test now drives a real USER_CHANGES over a socket and swaps the session padId mid-message via a handleMessageSecurity hook (the concurrent-CLIENT_READY race), asserting the write lands on the authorized pad and never the victim — verified RED when the pinned key is reverted to thisSession.padId. This also drops the handleUserChanges export and the direct-call test (Qodo maintainability / pendingEdits / cleanup findings). Co-Authored-By: Claude Opus 4.8 (1M context) --------- Co-authored-by: Claude Opus 4.8 (1M context) --- src/node/handler/PadMessageHandler.ts | 42 +++++++-- .../backend/specs/crossPadWriteToctou.ts | 92 +++++++++++++++++++ 2 files changed, 125 insertions(+), 9 deletions(-) create mode 100644 src/tests/backend/specs/crossPadWriteToctou.ts diff --git a/src/node/handler/PadMessageHandler.ts b/src/node/handler/PadMessageHandler.ts index 7ede7d391..764ec2e6e 100644 --- a/src/node/handler/PadMessageHandler.ts +++ b/src/node/handler/PadMessageHandler.ts @@ -204,7 +204,14 @@ class Channels { /** * A changeset queue per pad that is processed by handleUserChanges() */ -const padChannels = new Channels((ch, {socket, message}) => handleUserChanges(socket, message)); +// The channel key `ch` is the pad id captured at enqueue time (see the enqueue +// call). Pass it through to handleUserChanges so the write targets the pad that +// was authorized when the message arrived — NOT whatever pad the mutable +// sessioninfos[socket.id].padId happens to point at by apply time. A concurrent +// same-socket CLIENT_READY can swap that padId between enqueue and apply, which +// otherwise redirects the queued write onto a read-only / unauthorized pad +// (GHSA-6mcx-x5h6-rpw2). +const padChannels = new Channels((ch, {socket, message}) => handleUserChanges(socket, message, ch)); /** * This Method is called by server.ts to tell the message handler on which socket it should send @@ -505,6 +512,17 @@ exports.handleMessage = async (socket:any, message: ClientVarMessage) => { throw new Error(`pre-CLIENT_READY message from IP ${ip}: ${msg}`); } + // Pin the pad this message is authorized against — together with `auth` and + // the read-only flag — BEFORE any of the awaits below (checkAccess and the + // handleMessageSecurity/handleMessage hooks). A concurrent same-socket + // CLIENT_READY can mutate sessioninfos[socket.id] (padId/readonly/auth) IN + // PLACE during those awaits (the object identity check below does not catch an + // in-place mutation). Using these pinned values for the read-only gate, the + // queue key and the write keeps them all referring to the SAME pad, closing + // the cross-pad write TOCTOU (GHSA-6mcx-x5h6-rpw2). + const messagePadId = thisSession.padId; + const messageReadonly = thisSession.readonly; + const {session: {user} = {}} = socket.client.request as SocketClientRequest; const {accessStatus, authorID} = await securityManager.checkAccess(auth.padID, auth.sessionID, auth.token, user); @@ -526,14 +544,15 @@ exports.handleMessage = async (socket:any, message: ClientVarMessage) => { } thisSession.author = authorID; - // Allow plugins to bypass the readonly message blocker - let readOnly = thisSession.readonly; + // Allow plugins to bypass the readonly message blocker. Base the decision on + // the value pinned above so a concurrent CLIENT_READY can't flip it mid-message. + let readOnly = messageReadonly; const context = { message, sessionInfo: { authorId: thisSession.author, - padId: thisSession.padId, - readOnly: thisSession.readonly, + padId: messagePadId, + readOnly: messageReadonly, }, socket, get client() { @@ -580,7 +599,10 @@ exports.handleMessage = async (socket:any, message: ClientVarMessage) => { switch (type) { case 'USER_CHANGES': stats.counter('pendingEdits').inc(); - await padChannels.enqueue(thisSession.padId, {socket, message}); + // Queue key = the pinned pad, NOT the (possibly-swapped) live + // session padId. This value is forwarded to handleUserChanges as + // the write target (see the padChannels executor). + await padChannels.enqueue(messagePadId, {socket, message}); break; case 'PAD_DELETE': await handlePadDelete(socket, message.data as unknown as PadDeleteMessage); break; case 'USERINFO_UPDATE': await handleUserInfoUpdate(socket, message as unknown as UserNewInfoMessage); break; @@ -823,7 +845,7 @@ const handleUserInfoUpdate = async (socket:any, {data: {userInfo: {name, colorId */ const handleUserChanges = async (socket:any, message: { data: ClientUserChangesMessage -}) => { +}, authorizedPadId: string) => { // This one's no longer pending, as we're gonna process it now stats.counter('pendingEdits').dec(); @@ -850,7 +872,9 @@ const handleUserChanges = async (socket:any, message: { if (apool == null) throw new Error('missing apool'); if (changeset == null) throw new Error('missing changeset'); const wireApool = (new AttributePool()).fromJsonable(apool); - const pad = await padManager.getPad(thisSession.padId, null, thisSession.author); + // Use the pad id captured at enqueue time, not the (mutable) session padId, + // which a concurrent CLIENT_READY may have swapped (GHSA-6mcx-x5h6-rpw2). + const pad = await padManager.getPad(authorizedPadId, null, thisSession.author); // Verify that the changeset has valid syntax and is in canonical form checkRep(changeset); @@ -1004,7 +1028,7 @@ const handleUserChanges = async (socket:any, message: { socket.emit('message', {disconnect: 'badChangeset'}); stats.meter('failedChangesets').mark(); messageLogger.warn(`Failed to apply USER_CHANGES from author ${thisSession.author} ` + - `(socket ${socket.id}) on pad ${thisSession.padId}: ${err.stack || err}`); + `(socket ${socket.id}) on pad ${authorizedPadId}: ${err.stack || err}`); } finally { stopWatch.end(); } diff --git a/src/tests/backend/specs/crossPadWriteToctou.ts b/src/tests/backend/specs/crossPadWriteToctou.ts new file mode 100644 index 000000000..ebac77fea --- /dev/null +++ b/src/tests/backend/specs/crossPadWriteToctou.ts @@ -0,0 +1,92 @@ +'use strict'; + +/** + * Regression for GHSA-6mcx-x5h6-rpw2 (PadMessageHandler cross-pad write TOCTOU). + * + * A USER_CHANGES message is authorized (access + read-only gate) against the pad + * the session points at when the message arrives, but the write ran later off + * mutable session state. A concurrent same-socket CLIENT_READY could swap + * sessioninfos[socket.id].padId during the awaits in handleMessage(), redirecting + * the queued write onto a read-only / unauthorized pad. + * + * This test drives a real USER_CHANGES over a socket and, via a + * handleMessageSecurity hook (which runs during those awaits), swaps the + * session's padId to a victim pad — exactly the concurrent-CLIENT_READY race. + * The change must still land on the pad the message was authorized against, and + * never on the victim. + */ + +import {MapArrayType} from '../../../node/types/MapType'; + +const assert = require('assert').strict; +const common = require('../common'); +const padManager = require('../../../node/db/PadManager'); +const plugins = require('../../../static/js/pluginfw/plugin_defs'); +const padMessageHandler = require('../../../node/handler/PadMessageHandler'); + +describe(__filename, function () { + this.timeout(30000); + let agent: any; + const backups: MapArrayType = {}; + + before(async function () { agent = await common.init(); }); + + beforeEach(function () { + backups.hooks = {handleMessageSecurity: plugins.hooks.handleMessageSecurity}; + plugins.hooks.handleMessageSecurity = []; + }); + afterEach(function () { + Object.assign(plugins.hooks, backups.hooks); + }); + + it('a mid-message pad swap cannot redirect the write onto another pad', async function () { + // Authorized (writable) pad the client is editing. + const authorizedId = `toctou_ok_${common.randomString()}`; + const authorizedPad = await padManager.getPad(authorizedId, 'seed\n'); + await authorizedPad.setText('seed\n'); + // Victim pad with identical text, so the changeset is valid against either + // pad — the test distinguishes purely by which pad receives the write. + const victimId = `toctou_victim_${common.randomString()}`; + const victimPad = await padManager.getPad(victimId, 'seed\n'); + await victimPad.setText('seed\n'); + + const res = await agent.get(`/p/${authorizedId}`).expect(200); + const socket = await common.connect(res); + try { + const {data: clientVars} = await common.handshake(socket, authorizedId); + const rev = clientVars.collab_client_vars.rev; + const authorId = clientVars.userId; + + // Simulate the concurrent same-socket CLIENT_READY: while THIS USER_CHANGES + // is mid-flight (handleMessageSecurity runs during handleMessage's awaits), + // swap the session's padId to the victim pad in place. + plugins.hooks.handleMessageSecurity = [{ + hook_fn: (hookName: string, ctx: any) => { + if (ctx.message?.data?.type === 'USER_CHANGES') { + padMessageHandler.sessioninfos[ctx.socket.id].padId = victimId; + } + }, + hook_fn_name: 'toctou/handleMessageSecurity', + hook_name: 'handleMessageSecurity', + part: {plugin: 'toctou'}, + }]; + + const accept = common.waitForSocketEvent(socket, 'message'); + await common.sendUserChanges(socket, { + baseRev: rev, + changeset: 'Z:5>2*0+2$ZZ', + apool: {numToAttrib: {0: ['author', authorId]}, nextNum: 1}, + }); + await accept; // wait for the server to finish applying + + assert.equal(victimPad.text(), 'seed\n', + 'the victim pad (swapped session padId) must NOT be modified'); + assert.equal(authorizedPad.text(), 'ZZseed\n', + 'the change must land on the pad the message was authorized against'); + } finally { + socket.close(); + await authorizedPad.remove(); + await victimPad.remove(); + } + }); +}); From fa6df9a9ff68920c1d11d4c3cfce60b88e9a7828 Mon Sep 17 00:00:00 2001 From: John McLear Date: Mon, 27 Jul 2026 19:18:40 +0100 Subject: [PATCH 60/74] security(auth): regenerate session id on authentication (session fixation) (#8074) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * security(auth): regenerate session id on authentication (session fixation) GHSA-73h9-c5xp-gfg4. Etherpad never rotated the express-session id when an anonymous session was upgraded to an authenticated one. Any auth scheme that establishes a pre-authentication session — every OIDC/OAuth RP, including the official ep_openid_connect plugin, which persists OAuth state before redirecting to the IdP — was exposed to CWE-384: an attacker who planted or captured the pre-auth cookie ends up owning the victim's authenticated (possibly admin) session after they log in. webaccess now calls req.session.regenerate() at the authentication boundary (after the authenticate hook / HTTP-Basic path establishes req.session.user), preserving the session data onto the new id. It fires only on a *fresh* login (already-authenticated requests short-circuit in Step 2) and no-ops when the store doesn't expose regenerate(). This lives in core, so it protects every SSO/auth plugin. Adds a regression test proving the session id changes across the auth boundary and that the rotated session stays authenticated. Co-Authored-By: Claude Opus 4.8 (1M context) * security(auth): rotate session on identity/privilege change, not just anon->auth Addresses Qodo review on #8074. The first cut only regenerated when the request started with no session.user, so a privilege upgrade reaching the authenticate step for an already-authenticated session (e.g. non-admin -> admin re-authentication) would NOT rotate the id, leaving a fixation window on the privilege change. Rotate whenever authentication changes the principal — anonymous -> user, or a username / is_admin change — while still leaving a no-op re-auth of the same principal alone (no per-request churn). Adds a deterministic test for the non-admin -> admin rotation. Also derives the session cookie name from settings.cookie.prefix in the test instead of hardcoding 'express_sid'. Co-Authored-By: Claude Opus 4.8 (1M context) --------- Co-authored-by: Claude Opus 4.8 (1M context) --- src/node/hooks/express/webaccess.ts | 41 +++++++ src/tests/backend/specs/sessionFixation.ts | 133 +++++++++++++++++++++ 2 files changed, 174 insertions(+) create mode 100644 src/tests/backend/specs/sessionFixation.ts diff --git a/src/node/hooks/express/webaccess.ts b/src/node/hooks/express/webaccess.ts index 890a6f37a..440cb3525 100644 --- a/src/node/hooks/express/webaccess.ts +++ b/src/node/hooks/express/webaccess.ts @@ -22,6 +22,22 @@ const aCallFirst0 = // @ts-ignore async (hookName: string, context:any, pred = null) => (await aCallFirst(hookName, context, pred))[0]; +// Rotate the express-session id while preserving the session's data. Used at the +// authentication boundary to prevent session fixation (GHSA-73h9-c5xp-gfg4). +// The freshly minted cookie for the new id is kept; all other session data +// (notably req.session.user) is carried across onto the new session. +const regenerateSessionPreservingData = (req: any) => new Promise((resolve, reject) => { + // Session prototype methods (regenerate/save/...) are non-enumerable, so the + // spread captures only data properties. Drop `cookie` so the new session keeps + // the fresh cookie regenerate() creates. + const {cookie, ...data} = req.session; + req.session.regenerate((err: any) => { + if (err) return reject(err); + Object.assign(req.session, data); + req.session.save((saveErr: any) => saveErr != null ? reject(saveErr) : resolve()); + }); +}); + exports.normalizeAuthzLevel = (level: string|boolean) => { if (!level) return false; switch (level) { @@ -158,6 +174,11 @@ const checkAccess = async (req:any, res:any, next: Function) => { if (settings.users == null) settings.users = {}; const ctx:WebAccessTypes = {req, res, users: settings.users, next}; + // Identity carried by the session BEFORE the authenticate step runs. Used + // below to decide whether authentication changed the principal (anonymous -> + // user, or a privilege/identity change such as non-admin -> admin), which is + // the point at which the session id must be rotated (see below). + const prevUser = req.session != null ? req.session.user : null; // If the HTTP basic auth header is present, extract the username and password so it can be given // to authn plugins. const httpBasicAuth = req.headers.authorization && req.headers.authorization.startsWith('Basic '); @@ -206,6 +227,26 @@ const checkAccess = async (req:any, res:any, next: Function) => { httpLogger.error('authenticate hook failed to add user settings to session'); return res.status(500).send('Internal Server Error'); } + // Session fixation defense (GHSA-73h9-c5xp-gfg4): rotate the session id + // whenever authentication changed the principal — an anonymous session + // becoming authenticated, OR an authenticated session changing identity or + // privilege level (e.g. non-admin -> admin re-authentication). This prevents a + // pre-auth / lower-privilege id (which an attacker may have planted or + // captured — e.g. one an SSO plugin persisted before redirecting to the IdP) + // from owning the resulting session. A no-op re-authentication of the same + // principal is left alone (no churn), and the rotation is skipped when the + // session store doesn't expose regenerate(). + const identityChanged = prevUser == null || + prevUser.username !== req.session.user.username || + !!prevUser.is_admin !== !!req.session.user.is_admin; + if (identityChanged && typeof req.session.regenerate === 'function') { + try { + await regenerateSessionPreservingData(req); + } catch (err) { + httpLogger.error(`failed to regenerate session on authentication: ${err}`); + return res.status(500).send('Internal Server Error'); + } + } const {username = ''} = req.session.user; httpLogger.info( `Successful authentication from IP ${anonymizeIp(req.ip, settings.ipLogging)} ` + diff --git a/src/tests/backend/specs/sessionFixation.ts b/src/tests/backend/specs/sessionFixation.ts new file mode 100644 index 000000000..26a0c8826 --- /dev/null +++ b/src/tests/backend/specs/sessionFixation.ts @@ -0,0 +1,133 @@ +'use strict'; + +/** + * Regression for GHSA-73h9-c5xp-gfg4 (SSO session fixation). Etherpad + * establishes a pre-authentication express-session (e.g. an SSO plugin persists + * OAuth state before redirecting to the IdP). If the session id is NOT rotated + * when the session becomes authenticated, an attacker who planted / captured the + * pre-auth cookie ends up owning the victim's authenticated session. + * + * webaccess must call req.session.regenerate() at the authentication boundary so + * the id issued after login differs from the one held before it. + */ + +const assert = require('assert').strict; +const common = require('../common'); +const plugins = require('../../../static/js/pluginfw/plugin_defs'); +import settings from '../../../node/utils/Settings'; + +const makeHook = (hookName: string, hookFn: Function) => ({ + hook_fn: hookFn, + hook_fn_name: `sessfix/${hookName}`, + hook_name: hookName, + part: {plugin: 'sessfix'}, +}); + +// Etherpad names the session cookie `${cookie.prefix}express_sid`. +const sessionCookieName = () => `${settings.cookie.prefix || ''}express_sid`; + +// Pull a raw Set-Cookie value (e.g. the signed `s%3A.` blob) by name. +const getSetCookie = (res: any, name: string): string | null => { + const arr: string[] = res.headers['set-cookie'] || []; + for (const c of arr) { + if (c.startsWith(`${name}=`)) return c.slice(name.length + 1).split(';')[0]; + } + return null; +}; + +describe(__filename, function () { + this.timeout(30000); + let agent: any; + const backup: any = {}; + + before(async function () { agent = await common.init(); }); + + beforeEach(function () { + backup.authenticate = plugins.hooks.authenticate; + backup.requireAuthentication = settings.requireAuthentication; + backup.requireAuthorization = settings.requireAuthorization; + settings.requireAuthentication = true; + settings.requireAuthorization = false; + // An authn plugin that: (a) always touches the session so express-session + // persists a cookie even pre-auth, and (b) only establishes req.session.user + // when the login header is present (simulating a completed SSO callback). + plugins.hooks.authenticate = [makeHook('authenticate', (hookName: string, ctx: any, cb: Function) => { + ctx.req.session.sessfixTouched = true; + if (ctx.req.headers['x-do-login'] === '1') { + ctx.req.session.user = {username: 'victim'}; + return cb([true]); + } + return cb([false]); + })]; + }); + + afterEach(function () { + plugins.hooks.authenticate = backup.authenticate; + settings.requireAuthentication = backup.requireAuthentication; + settings.requireAuthorization = backup.requireAuthorization; + }); + + it('rotates the session id when a pre-auth session authenticates', async function () { + // Step 1 — anonymous request establishes a server-issued pre-auth session. + const r1 = await agent.get('/').expect(401); + const preSid = getSetCookie(r1, sessionCookieName()); + assert.ok(preSid, 'server issued a pre-auth session cookie'); + + // Step 2 — same session cookie, now authenticate. + const r2 = await agent.get('/') + .set('Cookie', `${sessionCookieName()}=${preSid}`) + .set('x-do-login', '1') + .expect(200); + const postSid = getSetCookie(r2, sessionCookieName()); + assert.ok(postSid, + 'the authentication response must rotate the session cookie (Set-Cookie present)'); + assert.notEqual(postSid, preSid, + 'session id must change at the authentication boundary (session fixation)'); + }); + + it('rotates the session id on a privilege upgrade (non-admin -> admin)', async function () { + // Reach Step 3 (authenticate) for an ALREADY-authenticated session by making + // authorization deny unless an `x-authz` header is present. + settings.requireAuthorization = true; + const authzBackup = plugins.hooks.authorize; + plugins.hooks.authorize = [makeHook('authorize', (hookName: string, ctx: any, cb: Function) => + cb([ctx.req.headers['x-authz'] === '1']))]; + plugins.hooks.authenticate = [makeHook('authenticate', (hookName: string, ctx: any, cb: Function) => { + const login = ctx.req.headers['x-login']; + if (login === 'user') { ctx.req.session.user = {username: 'u', is_admin: false}; return cb([true]); } + if (login === 'admin') { ctx.req.session.user = {username: 'u', is_admin: true}; return cb([true]); } + return cb([false]); + })]; + try { + // Log in as a non-admin (authorization granted via x-authz). + const r1 = await agent.get('/').set('x-login', 'user').set('x-authz', '1').expect(200); + const sid1 = getSetCookie(r1, sessionCookieName()); + assert.ok(sid1, 'non-admin login issued a session cookie'); + + // Re-authenticate as admin carrying sid1 and NO x-authz, so Step 2 + // authorization denies and Step 3 runs the privilege upgrade. + const r2 = await agent.get('/') + .set('Cookie', `${sessionCookieName()}=${sid1}`) + .set('x-login', 'admin') + .expect(200); + const sid2 = getSetCookie(r2, sessionCookieName()); + assert.ok(sid2, 'the privilege upgrade rotated the session cookie'); + assert.notEqual(sid2, sid1, 'session id must change on a privilege upgrade'); + } finally { + plugins.hooks.authorize = authzBackup; + } + }); + + it('preserves the authenticated user across the rotation', async function () { + const r1 = await agent.get('/').expect(401); + const preSid = getSetCookie(r1, sessionCookieName()); + const r2 = await agent.get('/') + .set('Cookie', `${sessionCookieName()}=${preSid}`) + .set('x-do-login', '1') + .expect(200); + const postSid = getSetCookie(r2, sessionCookieName()); + // The rotated session must still be authenticated: a follow-up request with + // the NEW cookie (and no login header) is authorized, not bounced to 401. + await agent.get('/').set('Cookie', `${sessionCookieName()}=${postSid}`).expect(200); + }); +}); From f3ccc6c718194c74d7412d307fb32a3163dbf8f9 Mon Sep 17 00:00:00 2001 From: John McLear Date: Mon, 27 Jul 2026 19:18:44 +0100 Subject: [PATCH 61/74] security(proxy-path): set Vary on public routes that echo x-proxy-path (cache poisoning) (#8072) * security(proxy-path): set Vary on public routes that echo x-proxy-path (cache poisoning) The home page, pad page and timeslider (and the legacy timeslider redirect) echo the sanitised x-proxy-path prefix into rendered URLs, social-preview metadata, manifest links and the redirect target, but did not advertise Vary. A shared cache/CDN keyed on URL alone could store a prefix injected by one client and serve it to others. The admin routes already emit Vary: x-proxy-path (GHSA-fjgc-3mj7-8rg8); this extends the same protection to the public routes the earlier fix left uncovered. The value is still passed through sanitizeProxyPath (quotes/angle-brackets/protocol-relative/.. already blocked), so this is cache-correctness hardening, not XSS/open-redirect. Adds a varyOnProxyPath() helper applied at every sanitizeProxyPath call site, plus a regression test asserting Vary: x-proxy-path on /, /p/:pad, the timeslider embed page and the legacy redirect. Reported by meifukun. Co-Authored-By: Claude Opus 4.8 (1M context) * security(proxy-path): only Vary on trust-gated headers when trustProxy is enabled Addresses Qodo review on #8072. varyOnProxyPath() unconditionally varied on x-forwarded-prefix and x-ingress-path, but sanitizeProxyPath() ignores those two headers unless settings.trustProxy is true. Advertising them in Vary when trustProxy is false does not reflect a real dependency and only fragments shared caches on attacker-supplied header values. Always vary on x-proxy-path (always honored); add the two standard headers only when trustProxy is enabled. Test asserts the exclusion when trustProxy=false and inclusion when true. Co-Authored-By: Claude Opus 4.8 (1M context) --------- Co-authored-by: Claude Opus 4.8 (1M context) --- src/node/hooks/express/specialpages.ts | 22 ++++++ src/tests/backend/specs/proxyPathVary.ts | 93 ++++++++++++++++++++++++ 2 files changed, 115 insertions(+) create mode 100644 src/tests/backend/specs/proxyPathVary.ts diff --git a/src/node/hooks/express/specialpages.ts b/src/node/hooks/express/specialpages.ts index f3df19bc2..ca5e6e6e1 100644 --- a/src/node/hooks/express/specialpages.ts +++ b/src/node/hooks/express/specialpages.ts @@ -25,6 +25,21 @@ let ioI: { sockets: { sockets: any[]; }; } | null = null // rules. Reused by admin.ts so both call sites share one definition. import {sanitizeProxyPath} from '../../utils/sanitizeProxyPath'; +// Public routes echo the proxy-path headers into rendered URLs, social-preview +// metadata, manifest links and the legacy timeslider redirect. Advertise the +// headers in Vary so a shared cache/CDN in front of Etherpad keys on them and +// can't serve a proxy-path injected by one client to another (cache poisoning). +// Mirrors the admin-route fix in admin.ts (GHSA-fjgc-3mj7-8rg8). +// +// Only vary on the headers sanitizeProxyPath() actually consults for the +// current config: x-proxy-path is always honored, but x-forwarded-prefix and +// x-ingress-path are ignored unless trustProxy is enabled — varying on them +// then would only fragment shared caches without affecting the response. +const varyOnProxyPath = (res: any) => { + res.vary('x-proxy-path'); + if (settings.trustProxy) res.vary(['x-forwarded-prefix', 'x-ingress-path']); +}; + exports.socketio = (hookName: string, {io}: any) => { ioI = io @@ -173,6 +188,7 @@ const handleLiveReload = async (args: ArgsExpressType, padString: string, timeSl }) setRouteHandler('/', (req: any, res: any) => { const proxyPath = sanitizeProxyPath(req); + varyOnProxyPath(res); const socialMetaHtml = renderSocialMeta({ req, settings, availableLangs: i18n.availableLangs, locales: i18n.locales, kind: 'home', proxyPath, @@ -202,6 +218,7 @@ const handleLiveReload = async (args: ArgsExpressType, padString: string, timeSl }); const proxyPath = sanitizeProxyPath(req); + varyOnProxyPath(res); const socialMetaHtml = renderSocialMeta({ req, settings, availableLangs: i18n.availableLangs, locales: i18n.locales, kind: 'pad', padName: req.params.pad, proxyPath, @@ -246,6 +263,7 @@ const handleLiveReload = async (args: ArgsExpressType, padString: string, timeSl }); const proxyPath = sanitizeProxyPath(req); + varyOnProxyPath(res); const socialMetaHtml = renderSocialMeta({ req, settings, availableLangs: i18n.availableLangs, locales: i18n.locales, kind: 'timeslider', padName: req.params.pad, proxyPath, @@ -369,6 +387,7 @@ exports.expressCreateServer = async (_hookName: string, args: ArgsExpressType, c // serve index.html under / args.app.get('/', (req: any, res: any) => { const proxyPath = sanitizeProxyPath(req); + varyOnProxyPath(res); const socialMetaHtml = renderSocialMeta({ req, settings, availableLangs: i18n.availableLangs, locales: i18n.locales, kind: 'home', proxyPath, @@ -389,6 +408,7 @@ exports.expressCreateServer = async (_hookName: string, args: ArgsExpressType, c }); const proxyPath = sanitizeProxyPath(req); + varyOnProxyPath(res); const socialMetaHtml = renderSocialMeta({ req, settings, availableLangs: i18n.availableLangs, locales: i18n.locales, kind: 'pad', padName: req.params.pad, proxyPath, @@ -417,6 +437,7 @@ exports.expressCreateServer = async (_hookName: string, args: ArgsExpressType, c // technically well-defined but Firefox dropped a trailing-slash // case once that flaked the legacy-URL test (#7710). const proxyPath = sanitizeProxyPath(req); + varyOnProxyPath(res); return res.redirect(302, `${proxyPath}/p/${encodeURIComponent(req.params.pad)}`); } ensureAuthorTokenCookie(req, res, settings); @@ -425,6 +446,7 @@ exports.expressCreateServer = async (_hookName: string, args: ArgsExpressType, c }); const proxyPath = sanitizeProxyPath(req); + varyOnProxyPath(res); const socialMetaHtml = renderSocialMeta({ req, settings, availableLangs: i18n.availableLangs, locales: i18n.locales, kind: 'timeslider', padName: req.params.pad, proxyPath, diff --git a/src/tests/backend/specs/proxyPathVary.ts b/src/tests/backend/specs/proxyPathVary.ts new file mode 100644 index 000000000..bab9450df --- /dev/null +++ b/src/tests/backend/specs/proxyPathVary.ts @@ -0,0 +1,93 @@ +'use strict'; + +/** + * Cache-poisoning hardening for the `x-proxy-path` header on public routes. + * + * Etherpad echoes the (sanitised) `x-proxy-path` prefix into rendered URLs, + * social-preview metadata, PWA manifest links, and the legacy timeslider + * redirect on `/`, `/p/:pad`, and `/p/:pad/timeslider`. If a shared cache / + * reverse proxy in front of Etherpad stores these responses keyed on URL alone, + * a value injected by one client is served to every other client. These + * responses must therefore advertise `Vary: x-proxy-path` so a conforming cache + * keeps prefixed and non-prefixed variants separate. Reported by `meifukun`; + * companion to the already-fixed admin-route variant (GHSA-fjgc-3mj7-8rg8). + */ + +const assert = require('assert').strict; +const common = require('../common'); +const padManager = require('../../../node/db/PadManager'); +import settings from '../../../node/utils/Settings'; + +let agent: any; + +const varyList = (res: any): string[] => + String(res.headers.vary || '').toLowerCase().split(',').map((s: string) => s.trim()); + +const assertVariesOnProxyPath = (res: any, where: string) => { + if (!varyList(res).includes('x-proxy-path')) { + throw new Error( + `${where}: response must advertise "Vary: x-proxy-path" so a shared ` + + `cache cannot serve a poisoned proxy-path to another user ` + + `(got Vary: "${res.headers.vary || ''}")`); + } +}; + +describe(__filename, function () { + this.timeout(30000); + const padId = 'ProxyPathVaryTest'; + let trustProxyBackup: any; + + before(async function () { + agent = await common.init(); + await padManager.getPad(padId, 'test content'); + trustProxyBackup = settings.trustProxy; + }); + + after(function () { + settings.trustProxy = trustProxyBackup; + }); + + it('sets Vary: x-proxy-path on the home page', async function () { + const res = await agent.get('/').expect(200); + assertVariesOnProxyPath(res, 'GET /'); + }); + + it('sets Vary: x-proxy-path on the pad page', async function () { + const res = await agent.get(`/p/${padId}`).expect(200); + assertVariesOnProxyPath(res, `GET /p/${padId}`); + }); + + it('sets Vary: x-proxy-path on the timeslider embed page', async function () { + const res = await agent.get(`/p/${padId}/timeslider?embed=1`).expect(200); + assertVariesOnProxyPath(res, `GET /p/${padId}/timeslider?embed=1`); + }); + + it('sets Vary: x-proxy-path on the legacy timeslider redirect', async function () { + const res = await agent.get(`/p/${padId}/timeslider`).expect(302); + assertVariesOnProxyPath(res, `GET /p/${padId}/timeslider (redirect)`); + }); + + it('does NOT vary on the trust-gated headers when trustProxy is false', async function () { + // sanitizeProxyPath ignores x-forwarded-prefix / x-ingress-path unless + // trustProxy is enabled, so varying on them would only fragment caches. + settings.trustProxy = false; + const res = await agent.get('/').expect(200); + const vary = varyList(res); + assert.ok(vary.includes('x-proxy-path'), `expected x-proxy-path, got "${res.headers.vary}"`); + assert.ok(!vary.includes('x-forwarded-prefix'), + `must not vary on x-forwarded-prefix when trustProxy=false (got "${res.headers.vary}")`); + assert.ok(!vary.includes('x-ingress-path'), + `must not vary on x-ingress-path when trustProxy=false (got "${res.headers.vary}")`); + }); + + it('varies on all proxy-path headers when trustProxy is true', async function () { + settings.trustProxy = true; + const res = await agent.get('/').expect(200); + const vary = varyList(res); + assert.ok(vary.includes('x-proxy-path'), `expected x-proxy-path, got "${res.headers.vary}"`); + assert.ok(vary.includes('x-forwarded-prefix'), + `expected x-forwarded-prefix when trustProxy=true (got "${res.headers.vary}")`); + assert.ok(vary.includes('x-ingress-path'), + `expected x-ingress-path when trustProxy=true (got "${res.headers.vary}")`); + }); +}); From 492b158d93ddbe71013b3ee994cfc1fc3f3180ea Mon Sep 17 00:00:00 2001 From: John McLear Date: Mon, 27 Jul 2026 19:18:47 +0100 Subject: [PATCH 62/74] security(export): strip remote images on the soffice path to match the native path (#8071) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * security(export): strip remote images on the soffice path to match the native path Defense-in-depth / consistency fix — not a core vulnerability on its own. Core Etherpad never emits tags in export HTML; they only appear when a plugin/hook injects them, so sanitising such content is primarily the injecting plugin's responsibility. However, the native in-process export path (issue #7538) already calls stripRemoteImages() defensively, while the LibreOffice (soffice) path wrote the HTML to the temp file verbatim. soffice is the only export path that actually performs outbound fetches for remote URLs during conversion, so a plugin-injected remote image there becomes a blind SSRF sink. This makes the soffice path consistent with the native path core already ships. Adds a regression test that injects a remote image via exportHTMLAdditionalContent, intercepts the temp file via the exportConvert hook, and asserts no remote image URL survives. Remote-image behaviour reported privately by meifukun. Co-Authored-By: Claude Opus 4.8 (1M context) * export: preserve doctype and comments in stripRemoteImages Addresses Qodo review on #8071. Applying stripRemoteImages() to the full export document for the soffice path dropped `` and HTML comments, because the htmlparser2 handler only emitted open/text/close tags. A missing doctype can flip LibreOffice's HTML import into quirks mode, subtly changing rendering for all soffice exports. Add onprocessinginstruction (doctype) and oncomment handlers so the serializer round-trips document directives and comments while still stripping remote images. The native path is unaffected (it strips only extractBody() output, which has no doctype). Adds regression tests. Co-Authored-By: Claude Opus 4.8 (1M context) --------- Co-authored-by: Claude Opus 4.8 (1M context) --- src/node/handler/ExportHandler.ts | 8 +- src/node/utils/ExportSanitizeHtml.ts | 11 ++ src/tests/backend/specs/export.ts | 20 ++++ .../backend/specs/sofficeExportRemoteImage.ts | 108 ++++++++++++++++++ 4 files changed, 146 insertions(+), 1 deletion(-) create mode 100644 src/tests/backend/specs/sofficeExportRemoteImage.ts diff --git a/src/node/handler/ExportHandler.ts b/src/node/handler/ExportHandler.ts index 655cf6497..d141aba67 100644 --- a/src/node/handler/ExportHandler.ts +++ b/src/node/handler/ExportHandler.ts @@ -163,7 +163,13 @@ exports.doExport = async (req: any, res: any, padId: string, readOnlyId: string, // for the temp path token (see matching note in ImportHandler.ts). const randNum = crypto.randomBytes(16).toString('hex'); const srcFile = `${tempDirectory}/etherpad_export_${randNum}.html`; - await fsp_writeFile(srcFile, html); + // Strip remote tags before handing the document to LibreOffice. + // soffice fetches remote image URLs during conversion, so any plugin/hook + // that injects an into export HTML would otherwise + // turn export into a blind SSRF sink. The native path already does this + // (see stripRemoteImages above); apply it here so both paths match. + const {stripRemoteImages} = require('../utils/ExportSanitizeHtml'); + await fsp_writeFile(srcFile, stripRemoteImages(html)); // ensure html can be collected by the garbage collector html = null; diff --git a/src/node/utils/ExportSanitizeHtml.ts b/src/node/utils/ExportSanitizeHtml.ts index bc2028bcd..91e287c88 100644 --- a/src/node/utils/ExportSanitizeHtml.ts +++ b/src/node/utils/ExportSanitizeHtml.ts @@ -208,6 +208,17 @@ export const stripRemoteImages = (html: string): string => { if (VOID_TAGS.has(name)) return; out += ``; }, + // Preserve document-level directives (notably ``) and + // comments. stripRemoteImages() runs on the FULL export document for the + // soffice path, so dropping the doctype would flip LibreOffice into quirks + // mode. htmlparser2 surfaces the doctype as a processing instruction whose + // `data` is e.g. `!doctype html`. + onprocessinginstruction(name, data) { + out += `<${data}>`; + }, + oncomment(data) { + out += ``; + }, }, {decodeEntities: false, lowerCaseTags: true}); parser.write(html); parser.end(); diff --git a/src/tests/backend/specs/export.ts b/src/tests/backend/specs/export.ts index b3fb94c67..0a78d27e0 100644 --- a/src/tests/backend/specs/export.ts +++ b/src/tests/backend/specs/export.ts @@ -150,6 +150,26 @@ describe(__filename, function () { const html = '

hi

body link

'; assert.strictEqual(stripRemoteImages(html), html); }); + + it('preserves the doctype directive (soffice reads a full document)', function () { + const html = '

hi

'; + const out = stripRemoteImages(html); + assert.match(out, //i); + }); + + it('preserves HTML comments', function () { + const html = '

hi

'; + const out = stripRemoteImages(html); + assert.match(out, //); + }); + + it('preserves the doctype while still dropping a remote image', function () { + const html = + 'a'; + const out = stripRemoteImages(html); + assert.match(out, //i); + assert.doesNotMatch(out, /evil\.example/); + }); }); describe('extractBody', function () { diff --git a/src/tests/backend/specs/sofficeExportRemoteImage.ts b/src/tests/backend/specs/sofficeExportRemoteImage.ts new file mode 100644 index 000000000..270f926b5 --- /dev/null +++ b/src/tests/backend/specs/sofficeExportRemoteImage.ts @@ -0,0 +1,108 @@ +'use strict'; + +/** + * SSRF regression for the LibreOffice (`soffice`) export path. + * + * The native (in-process) export path strips remote `` tags before + * rendering, but the `soffice` path historically wrote the full export HTML to + * disk verbatim and handed it to LibreOffice, which fetches remote image URLs + * during conversion — a blind SSRF sink reachable whenever a plugin/hook injects + * image tags into export HTML. Reported by `meifukun`. + * + * This test drives the real export handler with: + * - an `exportHTMLAdditionalContent` hook that injects a remote image (the + * documented plugin extension point from the PoC), and + * - an `exportConvert` hook that stands in for LibreOffice: it captures the + * exact HTML written to the temp file and writes a dummy output so the + * request completes. + * It then asserts the captured HTML contains no remote image URL. + */ + +import {MapArrayType} from "../../../node/types/MapType"; +import fs from 'node:fs'; +const fsp = fs.promises; + +const assert = require('assert').strict; +const common = require('../common'); +const padManager = require('../../../node/db/PadManager'); +const plugins = require('../../../static/js/pluginfw/plugin_defs'); +import settings from '../../../node/utils/Settings'; + +const REMOTE_IMG = 'probe'; + +describe(__filename, function () { + this.timeout(30000); + let agent: any; + const settingsBackup: MapArrayType = {}; + const hookBackup: MapArrayType = {}; + const hookNames = ['exportHTMLAdditionalContent', 'exportConvert']; + let capturedHtml = ''; + + const makeHook = (hookName: string, hookFn: Function) => ({ + hook_fn: hookFn, + hook_fn_name: `ssrf_test/${hookName}`, + hook_name: hookName, + part: {plugin: 'ssrf_test'}, + }); + + before(async function () { + agent = await common.init(); + settingsBackup.soffice = settings.soffice; + await padManager.getPad('sofficeSsrfPad', 'test content'); + }); + + beforeEach(function () { + for (const h of hookNames) { + hookBackup[h] = plugins.hooks[h]; + } + capturedHtml = ''; + // Inject a remote image the way a plugin extension point would. + plugins.hooks.exportHTMLAdditionalContent = [ + makeHook('exportHTMLAdditionalContent', () => REMOTE_IMG), + ]; + // Stand in for LibreOffice: capture what was written, produce a dummy file. + plugins.hooks.exportConvert = [ + makeHook('exportConvert', async (hookName: string, {srcFile, destFile}: any) => { + capturedHtml = await fsp.readFile(srcFile, 'utf8'); + await fsp.writeFile(destFile, 'dummy-converted-output'); + return 'handled'; + }), + ]; + // Force the soffice conversion path (non-null => sofficeAvailable() === 'yes' + // on non-Windows). The binary is never actually spawned because the + // exportConvert hook short-circuits the converter. + settings.soffice = '/usr/bin/soffice'; + }); + + afterEach(function () { + for (const h of hookNames) { + plugins.hooks[h] = hookBackup[h]; + } + }); + + after(function () { + Object.assign(settings, settingsBackup); + }); + + it('confirms the injected remote image reaches the export HTML', async function () { + // Sanity check on the harness: the raw HTML export (which is NOT run through + // the soffice temp-file path) must contain the injected image, proving the + // hook fires and the marker would otherwise be present. + const res = await agent.get('/p/sofficeSsrfPad/export/html').expect(200); + assert.ok( + res.text.includes('ssrf-marker-soffice'), + 'expected the injected remote image to appear in the html export'); + }); + + it('strips remote images from the HTML handed to the soffice converter', + async function () { + await agent.get('/p/sofficeSsrfPad/export/odt').expect(200); + assert.ok(capturedHtml.length > 0, 'exportConvert hook did not capture any HTML'); + assert.ok( + !capturedHtml.includes('ssrf-marker-soffice'), + `soffice temp file still contains the remote image URL:\n${capturedHtml}`); + assert.ok( + !/]+src\s*=\s*["']?https?:/i.test(capturedHtml), + `soffice temp file still contains a remote :\n${capturedHtml}`); + }); +}); From 2eec87cfe483ac24260a0097a6273b0b68283aed Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Jul 2026 20:31:18 +0200 Subject: [PATCH 63/74] build(deps): bump oidc-provider from 9.9.1 to 9.10.0 (#8064) Bumps [oidc-provider](https://github.com/panva/node-oidc-provider) from 9.9.1 to 9.10.0. - [Release notes](https://github.com/panva/node-oidc-provider/releases) - [Changelog](https://github.com/panva/node-oidc-provider/blob/main/CHANGELOG.md) - [Commits](https://github.com/panva/node-oidc-provider/compare/v9.9.1...v9.10.0) --- updated-dependencies: - dependency-name: oidc-provider dependency-version: 9.10.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 35 ++++++++++++++++++++++------------- src/package.json | 2 +- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a1a8d9232..ec2a0481b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -299,8 +299,8 @@ importers: specifier: ^9.0.3 version: 9.0.3 oidc-provider: - specifier: 9.9.1 - version: 9.9.1(supports-color@8.1.1) + specifier: 9.10.0 + version: 9.10.0 openapi-backend: specifier: ^5.18.0 version: 5.18.0 @@ -4300,9 +4300,9 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@5.1.16: - resolution: {integrity: sha512-kVrnsrJqMR8+oLJnGEmSWw9BivK5mt7H3FZatVRjrc5wGqFYuBxX1yG7+A7Gi5AefkX6t/oCkizcQgpu0cY1dQ==} - engines: {node: ^18 || >=20} + nanoid@6.0.0: + resolution: {integrity: sha512-mkUH+rPkwU2qPadJ0oJZOjeZ5Mxn8Q1UhevwkTRWNuUZzyia3h4rhzK39hxaHTk0o2OxB8W2SQ6A8k23ZDi1pQ==} + engines: {node: ^22 || ^24 || >=26} hasBin: true native-duplexpair@1.0.0: @@ -4395,8 +4395,8 @@ packages: resolution: {integrity: sha512-9miFgM2OFba7hB+pRgvtV84pYTBaoTHohvmIgiRt6dRIzbwEOIaNaP+dIlGs2fNFoB0SeISs0Jz5WFVRid6Xyg==} engines: {node: '>=12.20.0'} - oidc-provider@9.9.1: - resolution: {integrity: sha512-2kvtykfLu3FJSzaIStg8Dz58/pLtAwI3j/vLdy7KXJBDuJJAEgZhOSWklc+MTjKBLlQjeFwBXpKoE0Pf23pnIQ==} + oidc-provider@9.10.0: + resolution: {integrity: sha512-Olmg6oxgHIviZnrf9yaey6vdaWG1f19UiyvpSj0gCgj6wl9YMcOw3uDv3FHj+x62EXeFj7GfZeTL09MCgIEKnw==} on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} @@ -4696,6 +4696,10 @@ packages: resolution: {integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==} engines: {node: '>= 0.10'} + raw-body@4.0.0: + resolution: {integrity: sha512-TMHtwexrgOt9VJ2E5JF9RO8mRXGNgC5wXvKkc5AVSJUt1L5gxvjg7eiCQl96EqUEpCWrnNEkCnbAplYtyuq1IA==} + engines: {node: '>=22'} + react-dom@19.2.7: resolution: {integrity: sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==} peerDependencies: @@ -6378,7 +6382,7 @@ snapshots: dependencies: vary: 1.1.2 - '@koa/router@15.7.0(koa@3.2.1)(supports-color@8.1.1)': + '@koa/router@15.7.0(koa@3.2.1)': dependencies: debug: 4.4.3(supports-color@8.1.1) http-errors: 2.0.1 @@ -9866,7 +9870,7 @@ snapshots: nanoid@3.3.15: {} - nanoid@5.1.16: {} + nanoid@6.0.0: {} native-duplexpair@1.0.0: {} @@ -9951,18 +9955,18 @@ snapshots: obug@2.1.3: {} - oidc-provider@9.9.1(supports-color@8.1.1): + oidc-provider@9.10.0: dependencies: '@koa/cors': 5.0.0 - '@koa/router': 15.7.0(koa@3.2.1)(supports-color@8.1.1) + '@koa/router': 15.7.0(koa@3.2.1) debug: 4.4.3(supports-color@8.1.1) eta: 4.6.0 jose: 6.2.4 jsesc: 3.1.0 koa: 3.2.1 - nanoid: 5.1.16 + nanoid: 6.0.0 quick-lru: 7.3.0 - raw-body: 3.0.2 + raw-body: 4.0.0 transitivePeerDependencies: - supports-color @@ -10301,6 +10305,11 @@ snapshots: iconv-lite: 0.7.3 unpipe: 1.0.0 + raw-body@4.0.0: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.1 + react-dom@19.2.7(react@19.2.7): dependencies: react: 19.2.7 diff --git a/src/package.json b/src/package.json index 33aba3c3a..ffa842d45 100644 --- a/src/package.json +++ b/src/package.json @@ -65,7 +65,7 @@ "mysql2": "^3.23.1", "nano": "^11.0.6", "nodemailer": "^9.0.3", - "oidc-provider": "9.9.1", + "oidc-provider": "9.10.0", "openapi-backend": "^5.18.0", "pdfkit": "^0.19.1", "pg": "^8.22.0", From a0a56ad406f4c3eb5c715b2e272ad2cea2eca099 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Jul 2026 20:31:26 +0200 Subject: [PATCH 64/74] build(deps): bump surrealdb from 2.0.4 to 2.0.8 (#8061) Bumps [surrealdb](https://github.com/surrealdb/surrealdb.js) from 2.0.4 to 2.0.8. - [Release notes](https://github.com/surrealdb/surrealdb.js/releases) - [Commits](https://github.com/surrealdb/surrealdb.js/compare/v2.0.4...v2.0.8) --- updated-dependencies: - dependency-name: surrealdb dependency-version: 2.0.8 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 18 +++++++++--------- src/package.json | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ec2a0481b..834dcadaa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -166,7 +166,7 @@ importers: version: 4.23.1 ueberdb2: specifier: 6.1.16 - version: 6.1.16(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.23.1(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.16(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.23.1(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.8(tslib@2.8.1)(typescript@6.0.3)) devDependencies: '@types/node': specifier: ^26.1.1 @@ -350,8 +350,8 @@ importers: specifier: 10.3.0 version: 10.3.0 surrealdb: - specifier: ^2.0.4 - version: 2.0.4(tslib@2.8.1)(typescript@6.0.3) + specifier: ^2.0.8 + version: 2.0.8(tslib@2.8.1)(typescript@6.0.3) tinycon: specifier: 0.6.8 version: 0.6.8 @@ -360,7 +360,7 @@ importers: version: 4.23.1 ueberdb2: specifier: 6.1.16 - version: 6.1.16(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.23.1(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.16(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.23.1(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.8(tslib@2.8.1)(typescript@6.0.3)) underscore: specifier: 1.13.8 version: 1.13.8 @@ -5220,8 +5220,8 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - surrealdb@2.0.4: - resolution: {integrity: sha512-tCmMzcsLB/CVDZtxsj/xOWY6NWy9MrX2abMuwnVpAI5xj7kvnq9noRtc1nhjuDihei/Njfkxe/NYMxy7ZLLl4g==} + surrealdb@2.0.8: + resolution: {integrity: sha512-nkoTAdnfJYc0EvB2Hut0MET/UiWTOT6+TJODoubHzoC952gJvjEbHMx5TLrecUYo1vIN3/qBgwMIcLKK0WC7zQ==} peerDependencies: tslib: ^2.6.3 typescript: ^5.0.0 || ^6.0.0 @@ -10937,7 +10937,7 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3): + surrealdb@2.0.8(tslib@2.8.1)(typescript@6.0.3): dependencies: '@surrealdb/sqon': 0.1.0(tslib@2.8.1)(typescript@6.0.3) tslib: 2.8.1 @@ -11108,7 +11108,7 @@ snapshots: typescript@6.0.3: {} - ueberdb2@6.1.16(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.23.1(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.4(tslib@2.8.1)(typescript@6.0.3)): + ueberdb2@6.1.16(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.23.1(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.8(tslib@2.8.1)(typescript@6.0.3)): optionalDependencies: '@elastic/elasticsearch': 9.4.2 async: 3.2.6 @@ -11122,7 +11122,7 @@ snapshots: redis: 6.1.0(@opentelemetry/api@1.9.1) rethinkdb: 2.4.2 rusty-store-kv: 1.3.1 - surrealdb: 2.0.4(tslib@2.8.1)(typescript@6.0.3) + surrealdb: 2.0.8(tslib@2.8.1)(typescript@6.0.3) uid-safe@2.1.5: dependencies: diff --git a/src/package.json b/src/package.json index ffa842d45..3f7800d2b 100644 --- a/src/package.json +++ b/src/package.json @@ -82,7 +82,7 @@ "socket.io": "^4.8.3", "socket.io-client": "^4.8.3", "superagent": "10.3.0", - "surrealdb": "^2.0.4", + "surrealdb": "^2.0.8", "tinycon": "0.6.8", "tsx": "4.23.1", "ueberdb2": "6.1.16", From 9706e082609fc10bfdc681592497694fd1495844 Mon Sep 17 00:00:00 2001 From: John McLear Date: Mon, 27 Jul 2026 19:36:24 +0100 Subject: [PATCH 65/74] security(padid): reject ueberdb delimiter ':' in pad ids (copyPad/movePad injection) (#8073) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * security(padid): reject ueberdb delimiter ':' in pad ids (copyPad/movePad injection) GHSA-wg58-mhwv-35pq. copyPad / movePad / copyPadWithoutHistory take their destination via the `destinationID` API field, which — unlike padID / padName — is never run through sanitizePadId. Because isValidPadId only forbade `$`, a destinationID like `victim:revs:0` survived into the engine: the embedded `:` (the ueberdb key-namespace delimiter) let it address another pad's internal `pad::revs:` records. That both bypassed the force=false "destination already exists" guard (which checks only the top-level `atext`) and clobbered the victim pad's revision history. - isValidPadId now rejects `:` (never legal in a pad id; it's the DB key delimiter). The name portion excludes `$` and `:`. - Pad.copy() and Pad.copyPadWithoutHistory() validate destinationID via isValidPadId before any db write; movePad routes through copy(), so the check runs before the source is removed. Adds isValidPadId unit cases and an integration test proving copyPad / copyPadWithoutHistory reject a `:`-bearing destinationID with force=false and leave the victim's rev-0 changeset untouched, while a normal copy still works. Reported privately (finder credited on the advisory). Co-Authored-By: Claude Opus 4.8 (1M context) * security(padid): sanitize pad URL before validating so legacy ":" URLs still redirect Addresses Qodo review on #8073. Rejecting ":" in isValidPadId made padurlsanitize's validate-first ordering return 404 for a browser visiting a legacy `/p/` URL, instead of redirecting it to the sanitized `_` form. Reorder padurlsanitize to sanitize FIRST (sanitizePadId maps whitespace and ":" to "_"), then validate the sanitized id. `/p/foo:bar` now redirects to `/p/foo_bar` as before; an id that stays invalid after sanitizing (e.g. containing "$") is still forbidden. This restores the pre-fix redirect behavior while keeping ":" out of stored pad ids. Adds a regression test for the ":" redirect, the "$" 404, and a clean id. Co-Authored-By: Claude Opus 4.8 (1M context) * security(padid): keep existing pads with ":" reachable Rejecting ":" in isValidPadId also gates padManager.getPad(), so pads whose id contains a ":" — legal before GHSA-wg58-mhwv-35pq, which is why padIdTransforms maps ":" at all — became unopenable, not just uncreatable: sanitizePadId returns such an id unchanged once the pad exists, and getPad then threw. Refuse an invalid id only when no pad with that exact id exists (in getPad and in the pad-URL param). The injection primitive stays closed: doesPadExist() requires a top-level `atext`, which the `pad::revs:` sub-records an injected destinationID addresses do not have. Copy destinations keep the strict check, so no new ":" id can be created. Co-Authored-By: Claude Opus 5 (1M context) --------- Co-authored-by: Claude Opus 4.8 (1M context) Co-authored-by: SamTV12345 <40429738+samtv12345@users.noreply.github.com> --- src/node/db/Pad.ts | 15 +++++ src/node/db/PadManager.ts | 17 +++++- src/node/hooks/express/padurlsanitize.ts | 22 ++++++- src/tests/backend/specs/PadManager.ts | 10 ++++ .../backend/specs/copyPadColonInjection.ts | 57 +++++++++++++++++++ .../backend/specs/padIdColonLegacyPad.ts | 57 +++++++++++++++++++ .../backend/specs/padUrlColonRedirect.ts | 34 +++++++++++ 7 files changed, 208 insertions(+), 4 deletions(-) create mode 100644 src/tests/backend/specs/copyPadColonInjection.ts create mode 100644 src/tests/backend/specs/padIdColonLegacyPad.ts create mode 100644 src/tests/backend/specs/padUrlColonRedirect.ts diff --git a/src/node/db/Pad.ts b/src/node/db/Pad.ts index 8ab3ac9d9..d879f9eae 100644 --- a/src/node/db/Pad.ts +++ b/src/node/db/Pad.ts @@ -632,6 +632,15 @@ class Pad { } async copy(destinationID: string, force: boolean) { + // Reject a destinationID that isn't a valid pad id BEFORE any db write. The + // copy path writes `pad:${destinationID}...` records directly (bypassing + // getPad), so a destinationID carrying the ueberdb delimiter `:` would + // otherwise clobber another pad's internal sub-records and slip past the + // force=false existence guard. (GHSA-wg58-mhwv-35pq.) + if (!padManager.isValidPadId(destinationID)) { + throw new CustomError('destinationID is not a valid padId', 'apierror'); + } + // Kick everyone from this pad. // This was commented due to https://github.com/ether/etherpad-lite/issues/3183. // Do we really need to kick everyone out? @@ -729,6 +738,12 @@ class Pad { } async copyPadWithoutHistory(destinationID: string, force: string|boolean, authorId = '') { + // See copy(): reject an invalid destinationID (notably one containing the + // ueberdb delimiter `:`) before any db write. (GHSA-wg58-mhwv-35pq.) + if (!padManager.isValidPadId(destinationID)) { + throw new CustomError('destinationID is not a valid padId', 'apierror'); + } + // flush the source pad this.saveToDatabase(); diff --git a/src/node/db/PadManager.ts b/src/node/db/PadManager.ts index 28b0588fe..67a5af886 100644 --- a/src/node/db/PadManager.ts +++ b/src/node/db/PadManager.ts @@ -108,7 +108,15 @@ const padList = new class { */ exports.getPad = async (id: string, text?: string|null, authorId:string|null = ''):Promise => { // check if this is a valid padId - if (!exports.isValidPadId(id)) { + // + // An id that is no longer valid to *create* is still served when a pad with + // that exact id already exists: `:` was accepted until GHSA-wg58-mhwv-35pq, so + // pads carrying one exist in the wild (that is why padIdTransforms maps `:` at + // all) and rejecting them here would lock their content away. doesPadExist() + // requires a top-level `atext`, which only a real pad record has — the + // `pad::revs:` / `:chat:` sub-records an injected id would address do + // not have one, so they stay unreachable. + if (!exports.isValidPadId(id) && !(await exports.doesPadExist(id))) { throw new CustomError(`${id} is not a valid padId`, 'apierror'); } @@ -199,8 +207,13 @@ exports.sanitizePadId = async (padId: string) => { // can never be created. const dotSegmentPadId = /^\.{1,2}$/; +// `:` is the ueberdb key-namespace delimiter (records are stored under +// `pad:`, `pad::revs:`, `pad::chat:`). A pad id containing a +// `:` can therefore address another pad's internal sub-records, so it is never +// valid — the name portion excludes `$` (group-pad separator) and `:`. +// (GHSA-wg58-mhwv-35pq: copyPad/movePad destinationID injection.) exports.isValidPadId = (padId: string) => - /^(g.[a-zA-Z0-9]{16}\$)?[^$]{1,50}$/.test(padId) && !dotSegmentPadId.test(padId); + /^(g.[a-zA-Z0-9]{16}\$)?[^$:]{1,50}$/.test(padId) && !dotSegmentPadId.test(padId); /** * Removes the pad from database and unloads it. diff --git a/src/node/hooks/express/padurlsanitize.ts b/src/node/hooks/express/padurlsanitize.ts index 8679bcfe3..650f1315e 100644 --- a/src/node/hooks/express/padurlsanitize.ts +++ b/src/node/hooks/express/padurlsanitize.ts @@ -8,14 +8,32 @@ exports.expressCreateServer = (hookName:string, args:ArgsExpressType, cb:Functio // redirects browser to the pad's sanitized url if needed. otherwise, renders the html args.app.param('pad', (req:any, res:any, next:Function, padId:string) => { (async () => { - // ensure the padname is valid and the url doesn't end with a / - if (!padManager.isValidPadId(padId) || /\/$/.test(req.url)) { + // Reject URLs ending in `/` outright. + if (/\/$/.test(req.url)) { res.status(404).send('Such a padname is forbidden'); return; } + // Sanitize FIRST, then validate the sanitized result. sanitizePadId maps + // legacy characters (whitespace and the ueberdb delimiter `:`) to `_`, so + // a URL like `/p/foo:bar` still redirects to `/p/foo_bar` even though `:` + // is not itself a valid pad id (GHSA-wg58-mhwv-35pq). An id that stays + // invalid after sanitizing (e.g. one containing `$`) is forbidden. const sanitizedPadId = await padManager.sanitizePadId(padId); + // A pad that already exists keeps its URL even if its id is no longer a + // valid one to *create*: `:` was accepted by isValidPadId until + // GHSA-wg58-mhwv-35pq, so pads carrying one exist in the wild (that is why + // padIdTransforms maps `:` in the first place) and 404ing them would lock + // their content away. Only ids that are invalid AND unknown are rejected — + // opening a pad URL creates the pad, so this is what keeps new invalid ids + // out. + if (!padManager.isValidPadId(sanitizedPadId) && + !(await padManager.doesPadExist(sanitizedPadId))) { + res.status(404).send('Such a padname is forbidden'); + return; + } + if (sanitizedPadId === padId) { // the pad id was fine, so just render it next(); diff --git a/src/tests/backend/specs/PadManager.ts b/src/tests/backend/specs/PadManager.ts index c4ddf79a0..39f4b476d 100644 --- a/src/tests/backend/specs/PadManager.ts +++ b/src/tests/backend/specs/PadManager.ts @@ -44,5 +44,15 @@ describe(__filename, function () { assert.equal(padManager.isValidPadId(''), false); assert.equal(padManager.isValidPadId('a$b'), false); }); + + // `:` is the ueberdb key-namespace delimiter (`pad::revs:`). A pad id + // carrying a `:` can address another pad's internal sub-records, so it must + // never be a valid pad id. Regression for the copyPad/movePad destinationID + // injection (GHSA-wg58-mhwv-35pq). + it('rejects ids containing the ueberdb delimiter ":"', async function () { + assert.equal(padManager.isValidPadId('victim:revs:0'), false); + assert.equal(padManager.isValidPadId('a:b'), false); + assert.equal(padManager.isValidPadId('g.s8oes9dhwrvt0zif$bar:revs:0'), false); + }); }); }); diff --git a/src/tests/backend/specs/copyPadColonInjection.ts b/src/tests/backend/specs/copyPadColonInjection.ts new file mode 100644 index 000000000..7924e5dd3 --- /dev/null +++ b/src/tests/backend/specs/copyPadColonInjection.ts @@ -0,0 +1,57 @@ +'use strict'; + +/** + * Regression for GHSA-wg58-mhwv-35pq: copyPad/movePad/copyPadWithoutHistory + * accepted a `destinationID` containing the ueberdb key delimiter `:` + * (e.g. `victim:revs:0`), which bypassed the force=false overwrite guard and + * clobbered another pad's internal revision records. + */ + +const assert = require('assert').strict; +const common = require('../common'); +const api = require('../../../node/db/API'); +const padManager = require('../../../node/db/PadManager'); + +describe(__filename, function () { + this.timeout(30000); + + before(async function () { + await common.init(); + }); + + it('rejects a copyPad destinationID that targets another pad\'s revs record', async function () { + const victim = 'wg58_victim'; + const src = 'wg58_src'; + await padManager.getPad(victim, 'TOP-SECRET-victim-content\n'); + await padManager.getPad(src, 'attacker source\n'); + + const before = await api.getRevisionChangeset(victim, '0'); + assert.ok(before, 'victim rev-0 changeset exists before the attack'); + + // force=false — the whole point is that `:` bypassed the existence guard. + await assert.rejects( + api.copyPad(src, `${victim}:revs:0`, false), + /valid padId|apierror/i, + 'copyPad must reject a destinationID containing ":"'); + + const after = await api.getRevisionChangeset(victim, '0'); + assert.equal(after, before, 'victim rev-0 changeset must be untouched'); + }); + + it('rejects copyPadWithoutHistory with a ":" destinationID', async function () { + const src = 'wg58_src2'; + await padManager.getPad(src, 'src2\n'); + await assert.rejects( + api.copyPadWithoutHistory(src, 'other:revs:0', false), + /valid padId|apierror/i); + }); + + it('still allows a normal copyPad to a clean destination', async function () { + const src = 'wg58_ok_src'; + await padManager.getPad(src, 'hello\n'); + // force=true so the test is idempotent across runs (the backend DB persists + // pads between runs); the point here is that a valid destinationID copies. + await api.copyPad(src, 'wg58_ok_dst', true); + assert.ok(await padManager.doesPadExist('wg58_ok_dst'), 'destination pad exists after copy'); + }); +}); diff --git a/src/tests/backend/specs/padIdColonLegacyPad.ts b/src/tests/backend/specs/padIdColonLegacyPad.ts new file mode 100644 index 000000000..eb98a9e20 --- /dev/null +++ b/src/tests/backend/specs/padIdColonLegacyPad.ts @@ -0,0 +1,57 @@ +'use strict'; + +/** + * GHSA-wg58-mhwv-35pq made `:` invalid in a pad id. `:` was legal before, so + * pads carrying one exist in the wild (padIdTransforms maps `:` -> `_` precisely + * to keep those reachable). Rejecting them outright would lock their content + * away, so an invalid id is only refused when no pad with that exact id exists. + * + * The injection primitive the advisory closes stays closed: doesPadExist() + * requires a top-level `atext`, which only a real pad record has — the + * `pad::revs:` sub-records an injected id addresses do not have one. + */ + +const assert = require('assert').strict; +const common = require('../common'); +const db = require('../../../node/db/DB'); +const padManager = require('../../../node/db/PadManager'); + +const LEGACY_ID = 'wg58legacy:pad'; + +let agent: any; + +describe(__filename, function () { + this.timeout(30000); + + before(async function () { + agent = await common.init(); + // Plant a legacy pad the way an old Etherpad would have stored it: `:` in the + // id is no longer creatable through getPad(), so write the record directly. + const donor = await padManager.getPad('wg58legacy_donor', 'legacy content\n'); + await donor.saveToDatabase(); + await db.set(`pad:${LEGACY_ID}`, await db.get('pad:wg58legacy_donor')); + padManager.unloadPad(LEGACY_ID); + }); + + it('getPad still serves an existing pad whose id contains ":"', async function () { + const pad = await padManager.getPad(LEGACY_ID); + assert.equal(pad.id, LEGACY_ID); + assert.match(pad.text(), /legacy content/); + }); + + it('the legacy pad URL is not 404ed', async function () { + const res = await agent.get(`/p/${encodeURIComponent(LEGACY_ID)}`); + assert.notEqual(res.status, 404, 'an existing legacy pad must stay reachable'); + }); + + it('getPad still rejects a ":" id that is not an existing pad', async function () { + // The injection target: `pad::revs:0` exists as a db record but is not + // a pad (no top-level atext), so it must not be addressable as a pad id. + const victim = await padManager.getPad('wg58legacy_victim', 'victim\n'); + await victim.saveToDatabase(); + assert.ok(await db.get('pad:wg58legacy_victim:revs:0'), 'victim rev-0 record exists'); + await assert.rejects( + padManager.getPad('wg58legacy_victim:revs:0'), + /valid padId|apierror/i); + }); +}); diff --git a/src/tests/backend/specs/padUrlColonRedirect.ts b/src/tests/backend/specs/padUrlColonRedirect.ts new file mode 100644 index 000000000..b5f6fc30d --- /dev/null +++ b/src/tests/backend/specs/padUrlColonRedirect.ts @@ -0,0 +1,34 @@ +'use strict'; + +/** + * `:` is rejected as a pad id (GHSA-wg58-mhwv-35pq), but a browser visiting a + * legacy `/p/` URL must still be redirected to the sanitized `_` + * form (padManager.sanitizePadId maps `:` -> `_`) rather than getting a 404. + * Regression guard for the padurlsanitize ordering. + */ + +const assert = require('assert').strict; +const common = require('../common'); + +let agent: any; + +describe(__filename, function () { + this.timeout(30000); + before(async function () { agent = await common.init(); }); + + it('redirects a legacy pad URL containing ":" to the sanitized "_" form', async function () { + const res = await agent.get('/p/foo:bar').expect(302); + assert.match(res.headers.location, /foo_bar/, + `expected redirect to the sanitized id, got Location: ${res.headers.location}`); + }); + + it('still 404s a pad id containing "$" (no sanitizing transform)', async function () { + await agent.get('/p/foo$bar').expect(404); + }); + + it('serves a clean pad id without redirecting', async function () { + // A valid id renders (200) or is handled normally — never a sanitize redirect. + const res = await agent.get('/p/CleanPadId123'); + assert.notEqual(res.status, 404); + }); +}); From 682cb65625c710792623159175c8d129644e2423 Mon Sep 17 00:00:00 2001 From: John McLear Date: Mon, 27 Jul 2026 19:36:27 +0100 Subject: [PATCH 66/74] security(oidc): stop shipping a hardcoded cookie key and reflecting all CORS origins (#8070) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * security(oidc): stop shipping a hardcoded OIDC cookie key and reflecting all CORS origins The embedded OIDC provider signed its interaction/session/grant cookies with the committed literal key `['oidc']`, so anyone with the public source could forge valid `.sig` cookies (defeating the provider's cookie-integrity boundary), and `clientBasedCORS` returned `true` for every origin, reflecting arbitrary `Origin` values into `Access-Control-Allow-Origin` on the token/userinfo endpoints. Adds OidcProviderSecurity.ts with two unit-tested pure helpers: - resolveOidcCookieKeys(): prefers an operator-supplied `settings.sso.cookieKeys` (ordered array for rotation), otherwise derives a secret key from the persisted session secret via a domain-separated SHA-256 — stable across restarts and multi-pod, never committed to source; falls back to an ephemeral random key. - isOriginAllowedForOidcClient(): allows a CORS origin only when it matches the origin of one of the client's registered redirect URIs. Verified end-to-end against a real oidc-provider@9.9.1 instance (cookies.keys accepted, Client.redirectUris read correctly, attacker origin blocked). Reported privately by meifukun. Co-Authored-By: Claude Opus 4.8 (1M context) * security(oidc): use DB-backed SecretRotator for cookie keys under default rotation config Addresses Qodo review on #8070. With Etherpad's default cookie settings (keyRotationInterval + sessionLifetime set), key rotation is enabled and `settings.sessionKey` stays null unless SESSIONKEY.txt is provisioned, so the previous fallback handed the OIDC provider a per-process random key — breaking in-flight OIDC cookies on restart and across horizontally-scaled pods on a default install. resolveOidcCookieKeys() now takes an optional rotatedSecrets array (priority: operator cookieKeys > rotated secrets > session-key derivation > random) and returns it by reference so a live rotation propagates to keygrip. OAuth2Provider.expressCreateServer() creates a dedicated `oidcCookieSecrets` SecretRotator — the same DB-backed mechanism the Express session cookies use — when the operator hasn't pinned settings.sso.cookieKeys and rotation is enabled. Adds unit tests for the rotatedSecrets priority/by-reference behavior and an integration test proving the default config yields stable DB-backed secrets rather than a random key. Co-Authored-By: Claude Opus 4.8 (1M context) * docs(settings): give sso.cookieKeys a real key in the template The doc block sat above `sso.clients` with no `cookieKeys` property, so the admin UI's template-comment extractor (which attaches leading comments to the next property node) would have shown it as documentation for `clients`. An unset OIDC_COOKIE_KEY yields [""], which resolveOidcCookieKeys() filters out, so the derived/rotated key path is unchanged. Co-Authored-By: Claude Opus 5 (1M context) --------- Co-authored-by: Claude Opus 4.8 (1M context) Co-authored-by: SamTV12345 <40429738+samtv12345@users.noreply.github.com> --- settings.json.template | 8 ++ src/node/security/OAuth2Provider.ts | 58 +++++++- src/node/security/OidcProviderSecurity.ts | 96 +++++++++++++ src/node/utils/Settings.ts | 4 + .../backend/specs/OidcProviderSecurity.ts | 128 ++++++++++++++++++ src/tests/backend/specs/oidcCookieRotator.ts | 54 ++++++++ 6 files changed, 341 insertions(+), 7 deletions(-) create mode 100644 src/node/security/OidcProviderSecurity.ts create mode 100644 src/tests/backend/specs/OidcProviderSecurity.ts create mode 100644 src/tests/backend/specs/oidcCookieRotator.ts diff --git a/settings.json.template b/settings.json.template index 5f5ae29f2..5c01460a6 100644 --- a/settings.json.template +++ b/settings.json.template @@ -966,6 +966,14 @@ "sso": { "issuer": "${SSO_ISSUER:http://localhost:9001}", + /* + * Signing keys for the embedded OIDC provider's cookies. Leave empty and + * Etherpad derives a secret key from the persisted session secret + * (SESSIONKEY.txt), which is stable across restarts and shared across + * horizontally-scaled pods. Set an explicit ordered array to rotate: the + * first key signs, the rest are still accepted for verify. + */ + "cookieKeys": ["${OIDC_COOKIE_KEY:}"], "clients": [ { "client_id": "${ADMIN_CLIENT:admin_client}", diff --git a/src/node/security/OAuth2Provider.ts b/src/node/security/OAuth2Provider.ts index 8bfb46831..551ca32f9 100644 --- a/src/node/security/OAuth2Provider.ts +++ b/src/node/security/OAuth2Provider.ts @@ -10,6 +10,12 @@ import {format} from 'url' import {ParsedUrlQuery} from "node:querystring"; import {MapArrayType} from "../types/MapType"; import crypto from "node:crypto"; +import {resolveOidcCookieKeys, isOriginAllowedForOidcClient} from "./OidcProviderSecurity"; +import SecretRotator from "./SecretRotator"; + +// Held at module scope so the rotator (and its refresh timer) is not garbage +// collected for the lifetime of the process, mirroring express.ts. +let oidcCookieSecretRotator: SecretRotator | null = null; // Small fixed delay applied to every failed interactive login, mirroring // webaccess.authnFailureDelayMs, so failures take a consistent amount of time. @@ -68,9 +74,13 @@ const configuration: Configuration = { profile: ['name'], admin: ['admin'] }, - cookies: { - keys: ['oidc'], - }, + // NOTE: cookies.keys is deliberately NOT set here. A committed literal key + // (historically ['oidc']) lets anyone with the public source forge valid + // OIDC provider `.sig` cookies. The real key material is resolved at + // provider-construction time in expressCreateServer() via + // resolveOidcCookieKeys(), which prefers an operator-supplied + // settings.sso.cookieKeys and otherwise derives a secret, stable key from + // the persisted session secret. See OidcProviderSecurity.ts. features:{ devInteractions: {enabled: false}, }, @@ -92,8 +102,39 @@ export const expressCreateServer = async (hookName: string, args: ArgsExpressTyp publicKeyExported = publicKey privateKeyExported = privateKey + // Resolve the OIDC provider's cookie-signing keys. Never a committed literal. + // When the operator hasn't pinned settings.sso.cookieKeys and cookie key + // rotation is enabled (the default), reuse the same DB-backed SecretRotator + // mechanism as the Express session cookies so the key is stable across + // restarts and shared across horizontally-scaled pods. `settings.sessionKey` + // is commonly null under default rotation settings, so relying on it alone + // would hand the provider an unstable per-process random key. + const operatorCookieKeys = (settings.sso as {cookieKeys?: unknown}).cookieKeys; + const hasOperatorKeys = Array.isArray(operatorCookieKeys) && + operatorCookieKeys.some((k) => typeof k === 'string' && k.length > 0); + const {keyRotationInterval, sessionLifetime} = settings.cookie; + let rotatedSecrets: string[] | null = null; + if (!hasOperatorKeys && keyRotationInterval && sessionLifetime) { + if (oidcCookieSecretRotator == null) { + oidcCookieSecretRotator = new SecretRotator( + 'oidcCookieSecrets', keyRotationInterval, sessionLifetime, settings.sessionKey); + await oidcCookieSecretRotator.start(); + } + rotatedSecrets = oidcCookieSecretRotator.secrets; + } + const oidc = new Provider(settings.sso.issuer, { - ...configuration, jwks: { + ...configuration, + cookies: { + // Secret, deployment-stable signing keys — never a committed literal. + // See resolveOidcCookieKeys(). + keys: resolveOidcCookieKeys({ + cookieKeys: operatorCookieKeys, + rotatedSecrets, + sessionKey: settings.sessionKey, + }), + }, + jwks: { keys: [ privateKeyJWK ], @@ -127,9 +168,12 @@ export const expressCreateServer = async (hookName: string, args: ArgsExpressTyp }, jwtResponseModes: {enabled: true}, }, - clientBasedCORS: (ctx, origin, client) => { - return true - }, + clientBasedCORS: (ctx, origin, client) => + // Only allow cross-origin reads from an origin registered as one of + // the client's redirect URIs. Returning `true` unconditionally + // reflected any Origin into Access-Control-Allow-Origin. See + // isOriginAllowedForOidcClient(). + isOriginAllowedForOidcClient(origin, client as {redirectUris?: unknown}), extraParams: [], extraTokenClaims: async (ctx, token) => { if(token.kind === 'AccessToken') { diff --git a/src/node/security/OidcProviderSecurity.ts b/src/node/security/OidcProviderSecurity.ts new file mode 100644 index 000000000..a5bfc6c1f --- /dev/null +++ b/src/node/security/OidcProviderSecurity.ts @@ -0,0 +1,96 @@ +import crypto from 'node:crypto'; + +/** + * Security helpers for the embedded OIDC provider (`OAuth2Provider.ts`). + * + * Kept in a dependency-light module (only `node:crypto`) so the pure decisions + * can be unit-tested without constructing an `oidc-provider` instance. + */ + +// Domain-separation label so the derived cookie key is cryptographically +// unrelated to any other use of the session secret. The trailing NUL keeps the +// label from ambiguously running into the appended secret. +export const COOKIE_KEY_DERIVATION_LABEL = 'etherpad-oidc-provider-cookie-signing-key\0'; + +/** + * Resolve the cookie-signing keys for the embedded OIDC provider. + * + * oidc-provider signs its short-lived interaction/session/grant cookies + * (`_interaction`, `_interaction_resume`, `_grant`, `_session`) with an HMAC + * keyed by these values. Shipping a hardcoded key (historically `['oidc']`) let + * anyone with the public source forge valid `.sig` cookies, defeating the + * provider's cookie-integrity guarantee. Reported by `meifukun`. + * + * Resolution order: + * 1. An explicit operator-supplied `settings.sso.cookieKeys` array — use this + * for controlled rotation: `[newKey, ...oldKeys]`. + * 2. The live secrets array of a DB-backed `SecretRotator` (the same mechanism + * the Express session-cookie stack uses). This is the default path: it is + * stable across restarts, shared across horizontally-scaled pods via the + * database, and rotates automatically. The array is returned BY REFERENCE + * so a later in-place rotation propagates to oidc-provider/keygrip without + * reconstructing the provider. + * 3. A value derived from the persisted Etherpad session secret + * (`SESSIONKEY.txt`) via a domain-separated SHA-256 — used when rotation is + * disabled but a static session key exists. Stable across restarts/pods, + * never committed to source. + * 4. As a last resort (no key material at all), an ephemeral per-process + * random key. The integrity boundary holds, but interactions won't survive + * a restart or span multiple pods. + */ +export const resolveOidcCookieKeys = ( + opts: {cookieKeys?: unknown, rotatedSecrets?: string[] | null, sessionKey?: string | null}, +): string[] => { + const {cookieKeys, rotatedSecrets, sessionKey} = opts; + + if (Array.isArray(cookieKeys)) { + const usable = cookieKeys.filter((k): k is string => typeof k === 'string' && k.length > 0); + if (usable.length > 0) return usable; + } + + // Return the rotator's array by reference (do not copy/filter) so in-place + // rotation is observed live by keygrip. + if (Array.isArray(rotatedSecrets) && + rotatedSecrets.some((k) => typeof k === 'string' && k.length > 0)) { + return rotatedSecrets; + } + + if (typeof sessionKey === 'string' && sessionKey.length > 0) { + const derived = crypto.createHash('sha256') + .update(COOKIE_KEY_DERIVATION_LABEL) + .update(sessionKey) + .digest('hex'); + return [derived]; + } + + return [crypto.randomBytes(32).toString('hex')]; +}; + +/** + * Origin allow-list decision for the embedded OIDC provider's CORS-enabled + * endpoints (`/oidc/token`, `/oidc/me`, ...). oidc-provider invokes + * `clientBasedCORS(ctx, origin, client)` for every cross-origin request; + * returning `true` unconditionally (the historical behavior) reflected ANY + * `Origin` into `Access-Control-Allow-Origin`, letting unregistered origins read + * token/userinfo responses that use non-cookie credentials (Authorization + * headers, POST-body client credentials). Reported by `meifukun`. + * + * An origin is allowed only when it exactly matches the origin (scheme + host + + * port) of one of the client's registered redirect URIs. + */ +export const isOriginAllowedForOidcClient = ( + origin: string | undefined | null, + client: {redirectUris?: unknown} | undefined | null, +): boolean => { + if (!origin || !client) return false; + const uris = (client as {redirectUris?: unknown}).redirectUris; + if (!Array.isArray(uris)) return false; + return uris.some((uri: unknown) => { + if (typeof uri !== 'string') return false; + try { + return new URL(uri).origin === origin; + } catch { + return false; + } + }); +}; diff --git a/src/node/utils/Settings.ts b/src/node/utils/Settings.ts index 9d8aa3f1c..b0762b72f 100644 --- a/src/node/utils/Settings.ts +++ b/src/node/utils/Settings.ts @@ -304,6 +304,10 @@ export type SettingsType = { sso: { issuer: string, clients?: {client_id: string}[] + // Optional operator-supplied signing keys for the embedded OIDC provider's + // cookies. When unset, a secret key is derived from the session secret. + // Provide an ordered array `[newKey, ...oldKeys]` to rotate. + cookieKeys?: string[] }, showSettingsInAdminPage: boolean, cleanup: { diff --git a/src/tests/backend/specs/OidcProviderSecurity.ts b/src/tests/backend/specs/OidcProviderSecurity.ts new file mode 100644 index 000000000..792e6013d --- /dev/null +++ b/src/tests/backend/specs/OidcProviderSecurity.ts @@ -0,0 +1,128 @@ +'use strict'; + +/** + * Unit coverage for the embedded OIDC provider's cookie-signing key derivation + * and CORS origin allow-list. Both were reported by `meifukun`: + * - the provider historically signed its cookies with the hardcoded key + * `['oidc']`, so anyone with the public source could forge valid `.sig` + * cookies; + * - `clientBasedCORS` returned `true` for every origin, reflecting arbitrary + * `Origin` values into `Access-Control-Allow-Origin`. + */ + +const assert = require('assert').strict; +import { + resolveOidcCookieKeys, + isOriginAllowedForOidcClient, +} from '../../../node/security/OidcProviderSecurity'; + +describe(__filename, function () { + describe('resolveOidcCookieKeys', function () { + it('never returns the historical hardcoded key', function () { + const keys = resolveOidcCookieKeys({sessionKey: 'a-persisted-session-secret'}); + assert.ok(!keys.includes('oidc')); + }); + + it('uses operator-supplied cookieKeys when provided', function () { + const keys = resolveOidcCookieKeys({cookieKeys: ['k1', 'k2'], sessionKey: 'x'}); + assert.deepEqual(keys, ['k1', 'k2']); + }); + + it('ignores empty/invalid entries in cookieKeys and falls through', function () { + const keys = resolveOidcCookieKeys({cookieKeys: ['', null as any], sessionKey: 'secret'}); + assert.equal(keys.length, 1); + assert.notEqual(keys[0], 'oidc'); + assert.ok(keys[0].length >= 32); + }); + + it('prefers rotated DB-backed secrets over the session-key derivation', function () { + const rotated = ['rot-new', 'rot-old']; + const keys = resolveOidcCookieKeys({rotatedSecrets: rotated, sessionKey: 'secret'}); + assert.deepEqual(keys, ['rot-new', 'rot-old']); + }); + + it('returns the live rotatedSecrets array by reference (so rotation propagates)', function () { + // oidc-provider/keygrip holds the array by reference and reads it live on + // each sign/verify, so returning the same object means a rotation that + // mutates the array in place is picked up without reconstructing the provider. + const rotated = ['rot-new']; + const keys = resolveOidcCookieKeys({rotatedSecrets: rotated, sessionKey: 'secret'}); + assert.strictEqual(keys, rotated); + }); + + it('ignores an empty rotatedSecrets array and falls through', function () { + const keys = resolveOidcCookieKeys({rotatedSecrets: [], sessionKey: 'secret'}); + assert.equal(keys.length, 1); + assert.notEqual(keys[0], 'oidc'); + // fell through to the session-key derivation (stable, deterministic) + assert.deepEqual(keys, resolveOidcCookieKeys({sessionKey: 'secret'})); + }); + + it('lets operator cookieKeys win over rotated secrets', function () { + const keys = resolveOidcCookieKeys({ + cookieKeys: ['operator'], rotatedSecrets: ['rot'], sessionKey: 'secret', + }); + assert.deepEqual(keys, ['operator']); + }); + + it('derives a stable key from the session secret (survives restart/multi-pod)', function () { + const a = resolveOidcCookieKeys({sessionKey: 'secret'}); + const b = resolveOidcCookieKeys({sessionKey: 'secret'}); + assert.deepEqual(a, b); + }); + + it('derives different keys for different session secrets', function () { + const a = resolveOidcCookieKeys({sessionKey: 'secret-a'}); + const b = resolveOidcCookieKeys({sessionKey: 'secret-b'}); + assert.notDeepEqual(a, b); + }); + + it('does not reuse the raw session secret as the cookie key', function () { + const keys = resolveOidcCookieKeys({sessionKey: 'secret'}); + assert.ok(!keys.includes('secret')); + }); + + it('falls back to a fresh random key when no session secret exists', function () { + const a = resolveOidcCookieKeys({sessionKey: null}); + const b = resolveOidcCookieKeys({sessionKey: null}); + assert.equal(a.length, 1); + assert.notEqual(a[0], 'oidc'); + assert.ok(a[0].length >= 32); + assert.notDeepEqual(a, b); // random => different each call + }); + }); + + describe('isOriginAllowedForOidcClient', function () { + const client = { + redirectUris: ['https://app.example.com/admin/', 'https://app.example.com/'], + }; + + it('allows an origin matching a registered redirect URI', function () { + assert.equal(isOriginAllowedForOidcClient('https://app.example.com', client), true); + }); + + it('rejects an unregistered attacker origin', function () { + assert.equal(isOriginAllowedForOidcClient('https://evil.attacker.com', client), false); + }); + + it('rejects a look-alike suffix origin (no substring matching)', function () { + assert.equal(isOriginAllowedForOidcClient('https://app.example.com.evil.com', client), false); + }); + + it('rejects a scheme mismatch (http vs https)', function () { + assert.equal(isOriginAllowedForOidcClient('http://app.example.com', client), false); + }); + + it('rejects when origin is missing', function () { + assert.equal(isOriginAllowedForOidcClient(undefined, client), false); + }); + + it('rejects when client is missing', function () { + assert.equal(isOriginAllowedForOidcClient('https://app.example.com', null), false); + }); + + it('rejects when client has no redirect URIs', function () { + assert.equal(isOriginAllowedForOidcClient('https://app.example.com', {}), false); + }); + }); +}); diff --git a/src/tests/backend/specs/oidcCookieRotator.ts b/src/tests/backend/specs/oidcCookieRotator.ts new file mode 100644 index 000000000..f252f35de --- /dev/null +++ b/src/tests/backend/specs/oidcCookieRotator.ts @@ -0,0 +1,54 @@ +'use strict'; + +/** + * Integration coverage for the OIDC provider cookie-key source under the + * DEFAULT deployment config (cookie key rotation enabled, no SESSIONKEY.txt so + * `settings.sessionKey` is null). Without the DB-backed SecretRotator path the + * provider would fall back to a per-process random key, breaking OIDC cookies on + * restart and across horizontally-scaled pods. This test proves the default + * path yields a stable, non-random, DB-backed key. + */ + +const assert = require('assert').strict; +const common = require('../common'); +const SecretRotator = require('../../../node/security/SecretRotator').SecretRotator; +import {resolveOidcCookieKeys} from '../../../node/security/OidcProviderSecurity'; +import settings from '../../../node/utils/Settings'; + +describe(__filename, function () { + this.timeout(30000); + + before(async function () { + // Boots the server, which initialises the database the rotator writes to. + await common.init(); + }); + + it('default config yields DB-backed rotator secrets, not a random key', async function () { + const {keyRotationInterval, sessionLifetime} = settings.cookie; + assert.ok(keyRotationInterval && sessionLifetime, + 'precondition: cookie key rotation is enabled by default'); + + const rotator = new SecretRotator( + 'oidcCookieSecretsTest', keyRotationInterval, sessionLifetime, settings.sessionKey); + await rotator.start(); + try { + assert.ok(Array.isArray(rotator.secrets) && rotator.secrets.length > 0, + 'rotator produced at least one secret'); + assert.ok(rotator.secrets.every((s: any) => typeof s === 'string' && s.length > 0), + 'all rotator secrets are non-empty strings'); + + // The provider would select these rotated secrets (by reference) over any + // session-key derivation or random fallback. + const keys = resolveOidcCookieKeys({ + cookieKeys: (settings.sso as any).cookieKeys, + rotatedSecrets: rotator.secrets, + sessionKey: settings.sessionKey, + }); + assert.strictEqual(keys, rotator.secrets, 'resolver returns the live rotator array'); + assert.ok(!keys.includes('oidc'), 'never the historical hardcoded key'); + } finally { + // stop the refresh timer so it does not keep the event loop alive + if (typeof rotator.stop === 'function') await rotator.stop(); + } + }); +}); From b7bbacc2b27f890b4af91f12551c09ac2f05198b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Jul 2026 20:36:49 +0200 Subject: [PATCH 67/74] build(deps): bump actions/setup-node from 6 to 7 (#8046) Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6 to 7. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/setup-node dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/backend-tests.yml | 8 ++++---- .github/workflows/build-and-deploy-docs.yml | 2 +- .github/workflows/deb-package.yml | 2 +- .github/workflows/docker.yml | 2 +- .github/workflows/downstream-smoke.yml | 2 +- .github/workflows/frontend-admin-tests.yml | 2 +- .github/workflows/frontend-tests.yml | 8 ++++---- .github/workflows/handleRelease.yml | 2 +- .github/workflows/installer-test.yml | 4 ++-- .github/workflows/load-test.yml | 6 +++--- .github/workflows/perform-type-check.yml | 2 +- .github/workflows/rate-limit.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/releaseEtherpad.yml | 2 +- .github/workflows/update-plugins.yml | 2 +- .github/workflows/upgrade-from-latest-release.yml | 2 +- 16 files changed, 25 insertions(+), 25 deletions(-) diff --git a/.github/workflows/backend-tests.yml b/.github/workflows/backend-tests.yml index 64ba0e90c..19c655a4c 100644 --- a/.github/workflows/backend-tests.yml +++ b/.github/workflows/backend-tests.yml @@ -45,7 +45,7 @@ jobs: with: run_install: false - name: Use Node.js - uses: actions/setup-node@v6 + uses: actions/setup-node@v7 with: node-version: ${{ matrix.node }} cache: pnpm @@ -101,7 +101,7 @@ jobs: with: run_install: false - name: Use Node.js - uses: actions/setup-node@v6 + uses: actions/setup-node@v7 with: node-version: ${{ matrix.node }} cache: pnpm @@ -181,7 +181,7 @@ jobs: with: run_install: false - name: Use Node.js - uses: actions/setup-node@v6 + uses: actions/setup-node@v7 with: node-version: ${{ matrix.node }} cache: pnpm @@ -247,7 +247,7 @@ jobs: with: run_install: false - name: Use Node.js - uses: actions/setup-node@v6 + uses: actions/setup-node@v7 with: node-version: ${{ matrix.node }} cache: pnpm diff --git a/.github/workflows/build-and-deploy-docs.yml b/.github/workflows/build-and-deploy-docs.yml index f49cf2974..0733c08e4 100644 --- a/.github/workflows/build-and-deploy-docs.yml +++ b/.github/workflows/build-and-deploy-docs.yml @@ -58,7 +58,7 @@ jobs: # Pin Node so the build does not silently fall back to whatever the # runner image ships with. The repo declares engines.node >=24.0.0. - name: Use Node.js - uses: actions/setup-node@v6 + uses: actions/setup-node@v7 with: node-version: 24 cache: pnpm diff --git a/.github/workflows/deb-package.yml b/.github/workflows/deb-package.yml index 51bad3b93..3825852ff 100644 --- a/.github/workflows/deb-package.yml +++ b/.github/workflows/deb-package.yml @@ -69,7 +69,7 @@ jobs: - uses: pnpm/action-setup@v6 - name: Setup Node - uses: actions/setup-node@v6 + uses: actions/setup-node@v7 with: node-version: '24' cache: pnpm diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index cca0feb45..44354474f 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -57,7 +57,7 @@ jobs: # packageManager in a root package.json. package_json_file: etherpad/package.json - name: Use Node.js - uses: actions/setup-node@v6 + uses: actions/setup-node@v7 with: node-version: 24 cache: pnpm diff --git a/.github/workflows/downstream-smoke.yml b/.github/workflows/downstream-smoke.yml index fc42cfe3e..08208f882 100644 --- a/.github/workflows/downstream-smoke.yml +++ b/.github/workflows/downstream-smoke.yml @@ -42,7 +42,7 @@ jobs: run_install: false - name: Use Node.js - uses: actions/setup-node@v6 + uses: actions/setup-node@v7 with: node-version: 24 cache: pnpm diff --git a/.github/workflows/frontend-admin-tests.yml b/.github/workflows/frontend-admin-tests.yml index 5ff9dea29..9283eb5da 100644 --- a/.github/workflows/frontend-admin-tests.yml +++ b/.github/workflows/frontend-admin-tests.yml @@ -40,7 +40,7 @@ jobs: with: run_install: false - name: Use Node.js - uses: actions/setup-node@v6 + uses: actions/setup-node@v7 with: node-version: ${{ matrix.node }} cache: pnpm diff --git a/.github/workflows/frontend-tests.yml b/.github/workflows/frontend-tests.yml index 0def07b51..c948082c8 100644 --- a/.github/workflows/frontend-tests.yml +++ b/.github/workflows/frontend-tests.yml @@ -40,7 +40,7 @@ jobs: with: run_install: false - name: Use Node.js - uses: actions/setup-node@v6 + uses: actions/setup-node@v7 with: node-version: 24 cache: pnpm @@ -112,7 +112,7 @@ jobs: with: run_install: false - name: Use Node.js - uses: actions/setup-node@v6 + uses: actions/setup-node@v7 with: node-version: 24 cache: pnpm @@ -188,7 +188,7 @@ jobs: with: run_install: false - name: Use Node.js - uses: actions/setup-node@v6 + uses: actions/setup-node@v7 with: node-version: 24 cache: pnpm @@ -289,7 +289,7 @@ jobs: with: run_install: false - name: Use Node.js - uses: actions/setup-node@v6 + uses: actions/setup-node@v7 with: node-version: 24 cache: pnpm diff --git a/.github/workflows/handleRelease.yml b/.github/workflows/handleRelease.yml index 03ca88667..ee71ae696 100644 --- a/.github/workflows/handleRelease.yml +++ b/.github/workflows/handleRelease.yml @@ -40,7 +40,7 @@ jobs: with: run_install: false - name: Use Node.js - uses: actions/setup-node@v6 + uses: actions/setup-node@v7 with: node-version: 24 cache: pnpm diff --git a/.github/workflows/installer-test.yml b/.github/workflows/installer-test.yml index a40cd9db2..7ae984574 100644 --- a/.github/workflows/installer-test.yml +++ b/.github/workflows/installer-test.yml @@ -40,7 +40,7 @@ jobs: steps: - uses: actions/checkout@v7 - - uses: actions/setup-node@v6 + - uses: actions/setup-node@v7 with: node-version: 24 @@ -116,7 +116,7 @@ jobs: steps: - uses: actions/checkout@v7 - - uses: actions/setup-node@v6 + - uses: actions/setup-node@v7 with: node-version: 24 diff --git a/.github/workflows/load-test.yml b/.github/workflows/load-test.yml index 9b498416c..c5b5dbcb9 100644 --- a/.github/workflows/load-test.yml +++ b/.github/workflows/load-test.yml @@ -37,7 +37,7 @@ jobs: with: run_install: false - name: Use Node.js - uses: actions/setup-node@v6 + uses: actions/setup-node@v7 with: node-version: 24 cache: pnpm @@ -75,7 +75,7 @@ jobs: with: run_install: false - name: Use Node.js - uses: actions/setup-node@v6 + uses: actions/setup-node@v7 with: node-version: 24 cache: pnpm @@ -138,7 +138,7 @@ jobs: with: run_install: false - name: Use Node.js - uses: actions/setup-node@v6 + uses: actions/setup-node@v7 with: node-version: 24 cache: pnpm diff --git a/.github/workflows/perform-type-check.yml b/.github/workflows/perform-type-check.yml index fbed6df2c..c4602f13e 100644 --- a/.github/workflows/perform-type-check.yml +++ b/.github/workflows/perform-type-check.yml @@ -37,7 +37,7 @@ jobs: with: run_install: false - name: Use Node.js - uses: actions/setup-node@v6 + uses: actions/setup-node@v7 with: node-version: 24 cache: pnpm diff --git a/.github/workflows/rate-limit.yml b/.github/workflows/rate-limit.yml index 3cd791164..9d7671765 100644 --- a/.github/workflows/rate-limit.yml +++ b/.github/workflows/rate-limit.yml @@ -40,7 +40,7 @@ jobs: with: run_install: false - name: Use Node.js - uses: actions/setup-node@v6 + uses: actions/setup-node@v7 with: node-version: 24 cache: pnpm diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b0b697845..4e27607b2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -62,7 +62,7 @@ jobs: # packageManager in a root package.json. package_json_file: etherpad/package.json - name: Use Node.js - uses: actions/setup-node@v6 + uses: actions/setup-node@v7 with: node-version: 24 cache: pnpm diff --git a/.github/workflows/releaseEtherpad.yml b/.github/workflows/releaseEtherpad.yml index dd53cf9ae..a80b4a207 100644 --- a/.github/workflows/releaseEtherpad.yml +++ b/.github/workflows/releaseEtherpad.yml @@ -46,7 +46,7 @@ jobs: exit 1 - name: Checkout repository uses: actions/checkout@v7 - - uses: actions/setup-node@v6 + - uses: actions/setup-node@v7 with: # OIDC trusted publishing needs npm >= 11.5.1, which requires # Node >= 22.9.0. Node 24 satisfies that and matches the rest of CI. diff --git a/.github/workflows/update-plugins.yml b/.github/workflows/update-plugins.yml index 2f3ca4783..33f463fd4 100644 --- a/.github/workflows/update-plugins.yml +++ b/.github/workflows/update-plugins.yml @@ -24,7 +24,7 @@ jobs: run_install: false - name: Use Node.js - uses: actions/setup-node@v6 + uses: actions/setup-node@v7 with: node-version: 24 diff --git a/.github/workflows/upgrade-from-latest-release.yml b/.github/workflows/upgrade-from-latest-release.yml index 02c527e70..5528b7f94 100644 --- a/.github/workflows/upgrade-from-latest-release.yml +++ b/.github/workflows/upgrade-from-latest-release.yml @@ -50,7 +50,7 @@ jobs: with: run_install: false - name: Use Node.js - uses: actions/setup-node@v6 + uses: actions/setup-node@v7 with: node-version: ${{ matrix.node }} cache: pnpm From 66dd45512439abd0ca542e9ccfbb7cf2af071be0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EA=B1=B4=EC=9A=B0=28ignite=29?= Date: Tue, 28 Jul 2026 04:00:32 +0900 Subject: [PATCH 68/74] Migrate server to TypeScript 7 (tsgo) (#8039) * Migrate server to TypeScript 7 (tsgo) Bump typescript to ^7.0.0 in ep_etherpad-lite and bin. Fix the two diagnostics the new compiler reports: an unguarded spread of splitTextLines' nullable result in TextLinesMutator (silenced with @ts-ignore, matching the sibling push calls), and per-element overload errors on the hooks.ts test-case concat that a single @ts-ignore no longer covers (replaced with an explicit any[] cast). admin and ui intentionally stay on TypeScript 6: their build depends on openapi-typescript, which uses the JS compiler API that tsgo does not expose until 7.1. pnpm-workspace.yaml gains minimum-release-age exclusions for the freshly released typescript 7 packages. * Address review: null-safe splitTextLines spread, typed hook test cases Replace the @ts-ignore-only approach with a real null guard (splitTextLines(text) ?? []) in TextLinesMutator.insert, and replace the any[] cast in hooks.ts with an explicit HookFnTestCase type so the concatenated test cases stay shape-checked. * Type _curSplice as [number, number, ...string[]], drop 21 ts-ignores The tuple was declared [number, number?] but it actually carries the lines to insert after the two splice numbers (the JSDoc already said so). Typing it correctly removes every curSplice-related ts-ignore in the file, including the one added earlier in this branch. The two remaining ignores are about StringArrayLike lines, unrelated to this migration. No behavior change: types and casts only. tsc --noEmit clean, easysync mutation tests pass. --------- Co-authored-by: SamTV12345 <40429738+samtv12345@users.noreply.github.com> --- bin/package.json | 2 +- pnpm-lock.yaml | 324 ++++++++++++++++++++++++------ pnpm-workspace.yaml | 21 ++ src/package.json | 2 +- src/static/js/TextLinesMutator.ts | 56 ++---- src/tests/backend/specs/hooks.ts | 10 +- 6 files changed, 316 insertions(+), 99 deletions(-) diff --git a/bin/package.json b/bin/package.json index e34967b5d..c96444e71 100644 --- a/bin/package.json +++ b/bin/package.json @@ -16,7 +16,7 @@ "devDependencies": { "@types/node": "^26.1.1", "@types/semver": "^7.7.1", - "typescript": "^6.0.3" + "typescript": "^7.0.0" }, "scripts": { "makeDocs": "node --import tsx make_docs.ts", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 834dcadaa..11a7a96fc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -166,7 +166,7 @@ importers: version: 4.23.1 ueberdb2: specifier: 6.1.16 - version: 6.1.16(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.23.1(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.8(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.16(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.23.1(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.8(tslib@2.8.1)(typescript@7.0.2)) devDependencies: '@types/node': specifier: ^26.1.1 @@ -175,8 +175,8 @@ importers: specifier: ^7.7.1 version: 7.7.1 typescript: - specifier: ^6.0.3 - version: 6.0.3 + specifier: ^7.0.0 + version: 7.0.2 doc: dependencies: @@ -300,7 +300,7 @@ importers: version: 9.0.3 oidc-provider: specifier: 9.10.0 - version: 9.10.0 + version: 9.10.0(supports-color@8.1.1) openapi-backend: specifier: ^5.18.0 version: 5.18.0 @@ -351,7 +351,7 @@ importers: version: 10.3.0 surrealdb: specifier: ^2.0.8 - version: 2.0.8(tslib@2.8.1)(typescript@6.0.3) + version: 2.0.8(tslib@2.8.1)(typescript@7.0.2) tinycon: specifier: 0.6.8 version: 0.6.8 @@ -360,7 +360,7 @@ importers: version: 4.23.1 ueberdb2: specifier: 6.1.16 - version: 6.1.16(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.23.1(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.8(tslib@2.8.1)(typescript@6.0.3)) + version: 6.1.16(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.23.1(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.8(tslib@2.8.1)(typescript@7.0.2)) underscore: specifier: 1.13.8 version: 1.13.8 @@ -451,7 +451,7 @@ importers: version: 10.6.0 eslint-config-etherpad: specifier: ^4.0.5 - version: 4.0.5(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3) + version: 4.0.5(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2) etherpad-cli-client: specifier: ^4.0.3 version: 4.0.3 @@ -480,8 +480,8 @@ importers: specifier: ^7.2.2 version: 7.2.2 typescript: - specifier: ^6.0.3 - version: 6.0.3 + specifier: ^7.0.0 + version: 7.0.2 vitest: specifier: ^4.1.10 version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1)) @@ -2104,6 +2104,126 @@ packages: resolution: {integrity: sha512-UexrHGnGTpbuQHct2ExOc2ZcFbGUS9FOesCxxqdBGcpI1BxYu/LZ6U8Aq6/72XtF/qRBk9nhuGHFJIXXMhPMdw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript/typescript-aix-ppc64@7.0.2': + resolution: {integrity: sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [aix] + + '@typescript/typescript-darwin-arm64@7.0.2': + resolution: {integrity: sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [darwin] + + '@typescript/typescript-darwin-x64@7.0.2': + resolution: {integrity: sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [darwin] + + '@typescript/typescript-freebsd-arm64@7.0.2': + resolution: {integrity: sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [freebsd] + + '@typescript/typescript-freebsd-x64@7.0.2': + resolution: {integrity: sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [freebsd] + + '@typescript/typescript-linux-arm64@7.0.2': + resolution: {integrity: sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [linux] + + '@typescript/typescript-linux-arm@7.0.2': + resolution: {integrity: sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==} + engines: {node: '>=16.20.0'} + cpu: [arm] + os: [linux] + + '@typescript/typescript-linux-loong64@7.0.2': + resolution: {integrity: sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==} + engines: {node: '>=16.20.0'} + cpu: [loong64] + os: [linux] + + '@typescript/typescript-linux-mips64el@7.0.2': + resolution: {integrity: sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==} + engines: {node: '>=16.20.0'} + cpu: [mips64el] + os: [linux] + + '@typescript/typescript-linux-ppc64@7.0.2': + resolution: {integrity: sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [linux] + + '@typescript/typescript-linux-riscv64@7.0.2': + resolution: {integrity: sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==} + engines: {node: '>=16.20.0'} + cpu: [riscv64] + os: [linux] + + '@typescript/typescript-linux-s390x@7.0.2': + resolution: {integrity: sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==} + engines: {node: '>=16.20.0'} + cpu: [s390x] + os: [linux] + + '@typescript/typescript-linux-x64@7.0.2': + resolution: {integrity: sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [linux] + + '@typescript/typescript-netbsd-arm64@7.0.2': + resolution: {integrity: sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [netbsd] + + '@typescript/typescript-netbsd-x64@7.0.2': + resolution: {integrity: sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [netbsd] + + '@typescript/typescript-openbsd-arm64@7.0.2': + resolution: {integrity: sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [openbsd] + + '@typescript/typescript-openbsd-x64@7.0.2': + resolution: {integrity: sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [openbsd] + + '@typescript/typescript-sunos-x64@7.0.2': + resolution: {integrity: sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [sunos] + + '@typescript/typescript-win32-arm64@7.0.2': + resolution: {integrity: sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [win32] + + '@typescript/typescript-win32-x64@7.0.2': + resolution: {integrity: sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [win32] + '@typespec/ts-http-runtime@0.3.6': resolution: {integrity: sha512-jIXhD0eWQ1JA6ln/5Dltyx22UxWNrw0hZmhy2rlv6m6KgF7kplHx3g0fzi09lNmTJQRR91OlemYp3xFnvDK9og==} engines: {node: '>=20.0.0'} @@ -5388,6 +5508,11 @@ packages: engines: {node: '>=14.17'} hasBin: true + typescript@7.0.2: + resolution: {integrity: sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==} + engines: {node: '>=16.20.0'} + hasBin: true + ueberdb2@6.1.16: resolution: {integrity: sha512-2VlpUIjperGGzZzH2AqrhZfviA3BmA3qgw+LHbDxXgOoiBRMV1P9IFkFK4wBDf3gMyj9/jBNoil5QOwkvXLj4A==} engines: {node: '>=24.0.0'} @@ -6382,7 +6507,7 @@ snapshots: dependencies: vary: 1.1.2 - '@koa/router@15.7.0(koa@3.2.1)': + '@koa/router@15.7.0(koa@3.2.1)(supports-color@8.1.1)': dependencies: debug: 4.4.3(supports-color@8.1.1) http-errors: 2.0.1 @@ -6959,11 +7084,11 @@ snapshots: '@surrealdb/cbor@2.0.0-alpha.4': {} - '@surrealdb/sqon@0.1.0(tslib@2.8.1)(typescript@6.0.3)': + '@surrealdb/sqon@0.1.0(tslib@2.8.1)(typescript@7.0.2)': dependencies: '@surrealdb/cbor': 2.0.0-alpha.4 tslib: 2.8.1 - typescript: 6.0.3 + typescript: 7.0.2 uuidv7: 1.2.1 '@swc/helpers@0.5.23': @@ -7245,21 +7370,21 @@ snapshots: dependencies: '@types/node': 26.1.1 - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3)': + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3) + '@typescript-eslint/parser': 7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2) '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3) - '@typescript-eslint/utils': 7.18.0(eslint@10.6.0)(typescript@6.0.3) + '@typescript-eslint/type-utils': 7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2) + '@typescript-eslint/utils': 7.18.0(eslint@10.6.0)(typescript@7.0.2) '@typescript-eslint/visitor-keys': 7.18.0 eslint: 10.6.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@6.0.3) + ts-api-utils: 1.4.3(typescript@7.0.2) optionalDependencies: - typescript: 6.0.3 + typescript: 7.0.2 transitivePeerDependencies: - supports-color @@ -7279,16 +7404,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3)': + '@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2)': dependencies: '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(supports-color@8.1.1)(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 7.18.0(supports-color@8.1.1)(typescript@7.0.2) '@typescript-eslint/visitor-keys': 7.18.0 debug: 4.4.3(supports-color@8.1.1) eslint: 10.6.0 optionalDependencies: - typescript: 6.0.3 + typescript: 7.0.2 transitivePeerDependencies: - supports-color @@ -7327,15 +7452,15 @@ snapshots: dependencies: typescript: 6.0.3 - '@typescript-eslint/type-utils@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3)': + '@typescript-eslint/type-utils@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2)': dependencies: - '@typescript-eslint/typescript-estree': 7.18.0(supports-color@8.1.1)(typescript@6.0.3) - '@typescript-eslint/utils': 7.18.0(eslint@10.6.0)(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 7.18.0(supports-color@8.1.1)(typescript@7.0.2) + '@typescript-eslint/utils': 7.18.0(eslint@10.6.0)(typescript@7.0.2) debug: 4.4.3(supports-color@8.1.1) eslint: 10.6.0 - ts-api-utils: 1.4.3(typescript@6.0.3) + ts-api-utils: 1.4.3(typescript@7.0.2) optionalDependencies: - typescript: 6.0.3 + typescript: 7.0.2 transitivePeerDependencies: - supports-color @@ -7355,7 +7480,7 @@ snapshots: '@typescript-eslint/types@8.63.0': {} - '@typescript-eslint/typescript-estree@7.18.0(supports-color@8.1.1)(typescript@6.0.3)': + '@typescript-eslint/typescript-estree@7.18.0(supports-color@8.1.1)(typescript@7.0.2)': dependencies: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 @@ -7364,9 +7489,9 @@ snapshots: is-glob: 4.0.3 minimatch: 10.2.5 semver: 7.8.5 - ts-api-utils: 1.4.3(typescript@6.0.3) + ts-api-utils: 1.4.3(typescript@7.0.2) optionalDependencies: - typescript: 6.0.3 + typescript: 7.0.2 transitivePeerDependencies: - supports-color @@ -7385,12 +7510,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.18.0(eslint@10.6.0)(typescript@6.0.3)': + '@typescript-eslint/utils@7.18.0(eslint@10.6.0)(typescript@7.0.2)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.6.0) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(supports-color@8.1.1)(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 7.18.0(supports-color@8.1.1)(typescript@7.0.2) eslint: 10.6.0 transitivePeerDependencies: - supports-color @@ -7417,6 +7542,66 @@ snapshots: '@typescript-eslint/types': 8.63.0 eslint-visitor-keys: 5.0.1 + '@typescript/typescript-aix-ppc64@7.0.2': + optional: true + + '@typescript/typescript-darwin-arm64@7.0.2': + optional: true + + '@typescript/typescript-darwin-x64@7.0.2': + optional: true + + '@typescript/typescript-freebsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-freebsd-x64@7.0.2': + optional: true + + '@typescript/typescript-linux-arm64@7.0.2': + optional: true + + '@typescript/typescript-linux-arm@7.0.2': + optional: true + + '@typescript/typescript-linux-loong64@7.0.2': + optional: true + + '@typescript/typescript-linux-mips64el@7.0.2': + optional: true + + '@typescript/typescript-linux-ppc64@7.0.2': + optional: true + + '@typescript/typescript-linux-riscv64@7.0.2': + optional: true + + '@typescript/typescript-linux-s390x@7.0.2': + optional: true + + '@typescript/typescript-linux-x64@7.0.2': + optional: true + + '@typescript/typescript-netbsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-netbsd-x64@7.0.2': + optional: true + + '@typescript/typescript-openbsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-openbsd-x64@7.0.2': + optional: true + + '@typescript/typescript-sunos-x64@7.0.2': + optional: true + + '@typescript/typescript-win32-arm64@7.0.2': + optional: true + + '@typescript/typescript-win32-x64@7.0.2': + optional: true + '@typespec/ts-http-runtime@0.3.6': dependencies: http-proxy-agent: 7.0.2 @@ -8402,17 +8587,17 @@ snapshots: eslint: 10.6.0 semver: 7.8.5 - eslint-config-etherpad@4.0.5(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3): + eslint-config-etherpad@4.0.5(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2): dependencies: '@rushstack/eslint-patch': 1.16.1 - '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3) - '@typescript-eslint/parser': 7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3) - eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1) + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2) + '@typescript-eslint/parser': 7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2) + eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1) eslint-plugin-cypress: 2.15.2(eslint@10.6.0) eslint-plugin-eslint-comments: 3.2.0(eslint@10.6.0) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1))(eslint@10.6.0) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1))(eslint@10.6.0) eslint-plugin-mocha: 10.5.0(eslint@10.6.0) - eslint-plugin-n: 17.24.0(eslint@10.6.0)(typescript@6.0.3) + eslint-plugin-n: 17.24.0(eslint@10.6.0)(typescript@7.0.2) eslint-plugin-prefer-arrow: 1.2.3(eslint@10.6.0) eslint-plugin-promise: 6.6.0(eslint@10.6.0) eslint-plugin-you-dont-need-lodash-underscore: 6.14.0 @@ -8431,7 +8616,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1): + eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3(supports-color@8.1.1) @@ -8442,18 +8627,18 @@ snapshots: stable-hash: 0.0.5 tinyglobby: 0.2.17 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1))(eslint@10.6.0) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1))(eslint@10.6.0) transitivePeerDependencies: - supports-color - eslint-module-utils@2.14.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1))(eslint@10.6.0): + eslint-module-utils@2.14.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1))(eslint@10.6.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3) + '@typescript-eslint/parser': 7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2) eslint: 10.6.0 eslint-import-resolver-node: 0.3.10 - eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1) + eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -8475,7 +8660,7 @@ snapshots: eslint: 10.6.0 ignore: 5.3.2 - eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1))(eslint@10.6.0): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1))(eslint@10.6.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -8486,7 +8671,7 @@ snapshots: doctrine: 2.1.0 eslint: 10.6.0 eslint-import-resolver-node: 0.3.10 - eslint-module-utils: 2.14.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1))(eslint@10.6.0) + eslint-module-utils: 2.14.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1))(eslint@10.6.0) hasown: 2.0.4 is-core-module: 2.16.2 is-glob: 4.0.3 @@ -8498,7 +8683,7 @@ snapshots: string.prototype.trimend: 1.0.10 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@6.0.3) + '@typescript-eslint/parser': 7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -8511,7 +8696,7 @@ snapshots: globals: 13.24.0 rambda: 7.5.0 - eslint-plugin-n@17.24.0(eslint@10.6.0)(typescript@6.0.3): + eslint-plugin-n@17.24.0(eslint@10.6.0)(typescript@7.0.2): dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.6.0) enhanced-resolve: 5.24.2 @@ -8522,7 +8707,7 @@ snapshots: globrex: 0.1.2 ignore: 5.3.2 semver: 7.8.5 - ts-declaration-location: 1.0.7(typescript@6.0.3) + ts-declaration-location: 1.0.7(typescript@7.0.2) transitivePeerDependencies: - typescript @@ -9955,10 +10140,10 @@ snapshots: obug@2.1.3: {} - oidc-provider@9.10.0: + oidc-provider@9.10.0(supports-color@8.1.1): dependencies: '@koa/cors': 5.0.0 - '@koa/router': 15.7.0(koa@3.2.1) + '@koa/router': 15.7.0(koa@3.2.1)(supports-color@8.1.1) debug: 4.4.3(supports-color@8.1.1) eta: 4.6.0 jose: 6.2.4 @@ -10937,11 +11122,11 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - surrealdb@2.0.8(tslib@2.8.1)(typescript@6.0.3): + surrealdb@2.0.8(tslib@2.8.1)(typescript@7.0.2): dependencies: - '@surrealdb/sqon': 0.1.0(tslib@2.8.1)(typescript@6.0.3) + '@surrealdb/sqon': 0.1.0(tslib@2.8.1)(typescript@7.0.2) tslib: 2.8.1 - typescript: 6.0.3 + typescript: 7.0.2 swagger-schema-official@2.0.0-bab6bed: {} @@ -11025,18 +11210,18 @@ snapshots: trough@2.2.0: {} - ts-api-utils@1.4.3(typescript@6.0.3): + ts-api-utils@1.4.3(typescript@7.0.2): dependencies: - typescript: 6.0.3 + typescript: 7.0.2 ts-api-utils@2.5.0(typescript@6.0.3): dependencies: typescript: 6.0.3 - ts-declaration-location@1.0.7(typescript@6.0.3): + ts-declaration-location@1.0.7(typescript@7.0.2): dependencies: picomatch: 4.0.5 - typescript: 6.0.3 + typescript: 7.0.2 tsconfig-paths@3.15.0: dependencies: @@ -11108,7 +11293,30 @@ snapshots: typescript@6.0.3: {} - ueberdb2@6.1.16(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.23.1(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.8(tslib@2.8.1)(typescript@6.0.3)): + typescript@7.0.2: + optionalDependencies: + '@typescript/typescript-aix-ppc64': 7.0.2 + '@typescript/typescript-darwin-arm64': 7.0.2 + '@typescript/typescript-darwin-x64': 7.0.2 + '@typescript/typescript-freebsd-arm64': 7.0.2 + '@typescript/typescript-freebsd-x64': 7.0.2 + '@typescript/typescript-linux-arm': 7.0.2 + '@typescript/typescript-linux-arm64': 7.0.2 + '@typescript/typescript-linux-loong64': 7.0.2 + '@typescript/typescript-linux-mips64el': 7.0.2 + '@typescript/typescript-linux-ppc64': 7.0.2 + '@typescript/typescript-linux-riscv64': 7.0.2 + '@typescript/typescript-linux-s390x': 7.0.2 + '@typescript/typescript-linux-x64': 7.0.2 + '@typescript/typescript-netbsd-arm64': 7.0.2 + '@typescript/typescript-netbsd-x64': 7.0.2 + '@typescript/typescript-openbsd-arm64': 7.0.2 + '@typescript/typescript-openbsd-x64': 7.0.2 + '@typescript/typescript-sunos-x64': 7.0.2 + '@typescript/typescript-win32-arm64': 7.0.2 + '@typescript/typescript-win32-x64': 7.0.2 + + ueberdb2@6.1.16(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.9.0)(dirty-ts@1.1.8)(mongodb@7.4.0(socks@2.8.9))(mssql@12.7.0)(mysql2@3.23.1(@types/node@26.1.1))(nano@11.0.6)(pg@8.22.0)(redis@6.1.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.8(tslib@2.8.1)(typescript@7.0.2)): optionalDependencies: '@elastic/elasticsearch': 9.4.2 async: 3.2.6 @@ -11122,7 +11330,7 @@ snapshots: redis: 6.1.0(@opentelemetry/api@1.9.1) rethinkdb: 2.4.2 rusty-store-kv: 1.3.1 - surrealdb: 2.0.8(tslib@2.8.1)(typescript@6.0.3) + surrealdb: 2.0.8(tslib@2.8.1)(typescript@7.0.2) uid-safe@2.1.5: dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index d7239284c..a23cc8768 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -56,3 +56,24 @@ minimumReleaseAgeExclude: - mysql2@3.22.6 - oidc-provider@9.9.0 - sql-escaper@1.4.0 + - '@typescript/typescript-aix-ppc64@7.0.2' + - '@typescript/typescript-darwin-arm64@7.0.2' + - '@typescript/typescript-darwin-x64@7.0.2' + - '@typescript/typescript-freebsd-arm64@7.0.2' + - '@typescript/typescript-freebsd-x64@7.0.2' + - '@typescript/typescript-linux-arm64@7.0.2' + - '@typescript/typescript-linux-arm@7.0.2' + - '@typescript/typescript-linux-loong64@7.0.2' + - '@typescript/typescript-linux-mips64el@7.0.2' + - '@typescript/typescript-linux-ppc64@7.0.2' + - '@typescript/typescript-linux-riscv64@7.0.2' + - '@typescript/typescript-linux-s390x@7.0.2' + - '@typescript/typescript-linux-x64@7.0.2' + - '@typescript/typescript-netbsd-arm64@7.0.2' + - '@typescript/typescript-netbsd-x64@7.0.2' + - '@typescript/typescript-openbsd-arm64@7.0.2' + - '@typescript/typescript-openbsd-x64@7.0.2' + - '@typescript/typescript-sunos-x64@7.0.2' + - '@typescript/typescript-win32-arm64@7.0.2' + - '@typescript/typescript-win32-x64@7.0.2' + - typescript@7.0.2 diff --git a/src/package.json b/src/package.json index 3f7800d2b..8cf5f53fd 100644 --- a/src/package.json +++ b/src/package.json @@ -131,7 +131,7 @@ "sinon": "^22.0.0", "split-grid": "^1.0.11", "supertest": "^7.2.2", - "typescript": "^6.0.3", + "typescript": "^7.0.0", "vitest": "^4.1.10" }, "engines": { diff --git a/src/static/js/TextLinesMutator.ts b/src/static/js/TextLinesMutator.ts index c6d3c9303..3cc23ebef 100644 --- a/src/static/js/TextLinesMutator.ts +++ b/src/static/js/TextLinesMutator.ts @@ -13,7 +13,10 @@ import {splitTextLines} from "./Changeset"; */ class TextLinesMutator { private _lines: string[]; - private _curSplice: [number, number?]; + // Args for a future this._lines.splice(): [index, deleteCount, ...linesToInsert]. + // Indexing past the two leading numbers yields `string | number` to the compiler even though + // elements from index 2 on are always strings, hence the `as string` casts below. + private _curSplice: [number, number, ...string[]]; private _inSplice: boolean; private _curLine: number; private _curCol: number; @@ -132,9 +135,7 @@ class TextLinesMutator { */ _putCurLineInSplice() { if (!this._isCurLineInSplice()) { - // @ts-ignore this._curSplice.push(this._linesGet(this._curSplice[0] + this._curSplice[1])); - // @ts-ignore this._curSplice[1]++; } // TODO should be the same as this._curSplice.length - 1 @@ -211,7 +212,6 @@ class TextLinesMutator { * @returns {string} joined lines */ const nextKLinesText = (k: number) => { - // @ts-ignore const m = this._curSplice[0] + this._curSplice[1]; return this._linesSlice(m, m + k).join(''); }; @@ -219,29 +219,22 @@ class TextLinesMutator { let removed = ''; if (this._isCurLineInSplice()) { if (this._curCol === 0) { - // @ts-ignore - removed = this._curSplice[this._curSplice.length - 1]; + removed = this._curSplice[this._curSplice.length - 1] as string; this._curSplice.length--; removed += nextKLinesText(L - 1); - // @ts-ignore this._curSplice[1] += L - 1; } else { removed = nextKLinesText(L - 1); - // @ts-ignore this._curSplice[1] += L - 1; const sline = this._curSplice.length - 1; - // @ts-ignore - removed = this._curSplice[sline].substring(this._curCol) + removed; - // @ts-ignore - this._curSplice[sline] = this._curSplice[sline].substring(0, this._curCol) + - // @ts-ignore + removed = (this._curSplice[sline] as string).substring(this._curCol) + removed; + this._curSplice[sline] = (this._curSplice[sline] as string).substring(0, this._curCol) + this._linesGet(this._curSplice[0] + this._curSplice[1]); - // @ts-ignore this._curSplice[1] += 1; } } else { removed = nextKLinesText(L); - this._curSplice[1]! += L; + this._curSplice[1] += L; } return removed; } @@ -260,12 +253,9 @@ class TextLinesMutator { // although the line is put into splice, curLine is not increased, because // only some chars are removed not the whole line const sline = this._putCurLineInSplice(); - // @ts-ignore - const removed = this._curSplice[sline].substring(this._curCol, this._curCol + N); - // @ts-ignore - this._curSplice[sline] = this._curSplice[sline].substring(0, this._curCol) + - // @ts-ignore - this._curSplice[sline].substring(this._curCol + N); + const line = this._curSplice[sline] as string; + const removed = line.substring(this._curCol, this._curCol + N); + this._curSplice[sline] = line.substring(0, this._curCol) + line.substring(this._curCol + N); return removed; } @@ -275,34 +265,29 @@ class TextLinesMutator { * @param {string} text - the text to insert * @param {number} L - number of newlines in text */ - insert(text: string | any[], L: any) { + insert(text: string, L: number) { if (!text) return; if (!this._inSplice) this._enterSplice(); if (L) { - // @ts-ignore - const newLines = splitTextLines(text); + const newLines = splitTextLines(text) ?? []; if (this._isCurLineInSplice()) { const sline = this._curSplice.length - 1; - /** @type {string} */ - const theLine = this._curSplice[sline]; + const theLine = this._curSplice[sline] as string; const lineCol = this._curCol; // Insert the chars up to `curCol` and the first new line. - // @ts-ignore this._curSplice[sline] = theLine.substring(0, lineCol) + newLines[0]; this._curLine++; - newLines!.splice(0, 1); + newLines.splice(0, 1); // insert the remaining new lines - // @ts-ignore this._curSplice.push(...newLines); - this._curLine += newLines!.length; + this._curLine += newLines.length; // insert the remaining chars from the "old" line (e.g. the line we were in // when we started to insert new lines) - // @ts-ignore this._curSplice.push(theLine.substring(lineCol)); this._curCol = 0; // TODO(doc) why is this not set to the length of last line? } else { this._curSplice.push(...newLines); - this._curLine += newLines!.length; + this._curLine += newLines.length; } } else { // There are no additional lines. Although the line is put into splice, curLine is not @@ -315,10 +300,8 @@ class TextLinesMutator { 'https://github.com/ether/etherpad-lite/issues/2802'); console.error(err.stack || err.toString()); } - // @ts-ignore - this._curSplice[sline] = this._curSplice[sline].substring(0, this._curCol) + text + - // @ts-ignore - this._curSplice[sline].substring(this._curCol); + const line = this._curSplice[sline] as string; + this._curSplice[sline] = line.substring(0, this._curCol) + text + line.substring(this._curCol); this._curCol += text.length; } } @@ -331,7 +314,6 @@ class TextLinesMutator { hasMore() { let docLines = this._linesLength(); if (this._inSplice) { - // @ts-ignore docLines += this._curSplice.length - 2 - this._curSplice[1]; } return this._curLine < docLines; diff --git a/src/tests/backend/specs/hooks.ts b/src/tests/backend/specs/hooks.ts index 07c6e262e..be5bec4b5 100644 --- a/src/tests/backend/specs/hooks.ts +++ b/src/tests/backend/specs/hooks.ts @@ -65,7 +65,14 @@ describe(__filename, function () { }); // Hook functions that should work for both synchronous and asynchronous hooks. - const supportedSyncHookFunctions = [ + type HookFnTestCase = { + name: string; + fn: (hn: any, ctx: any, cb?: any) => any; + want?: unknown; + wantErr?: string; + syncOk?: boolean; + }; + const supportedSyncHookFunctions: HookFnTestCase[] = [ { name: 'return non-Promise value, with callback parameter', fn: (hn:Function, ctx:any, cb:Function) => 'val', @@ -563,7 +570,6 @@ describe(__filename, function () { }); describe('supported hook function styles', function () { - // @ts-ignore const supportedHookFunctions = supportedSyncHookFunctions.concat([ { name: 'legacy async cb', From 0aee6a7d7da2e9451aa30364425b874d12a9470b Mon Sep 17 00:00:00 2001 From: John McLear Date: Mon, 27 Jul 2026 20:03:15 +0100 Subject: [PATCH 69/74] fix(editor): PageDown/PageUp now advance on consecutive long wrapped lines (#7555) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The page up/down handler advances the caret by numberOfLinesInViewport computed from scroll.getVisibleLineRange(). That helper returns indices into rep.lines (logical lines, not visual/wrapped rows), so when one wrapped logical line fills the viewport — e.g., three consecutive lines of ~2000 chars each — the range collapses to [n, n] and the advance count becomes 0. The caret stays on line n, scroll stays at 0, and the user sees "PageDown does nothing". Clamp the advance to at least one logical line so the caret and viewport always move. Includes a Playwright regression test covering the reporter's repro (three very long lines, Ctrl+Home, PageDown). Closes #4562 Co-authored-by: Claude Opus 4.7 (1M context) --- .../specs/pagedown_wrapped_lines.spec.ts | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 src/tests/frontend-new/specs/pagedown_wrapped_lines.spec.ts diff --git a/src/tests/frontend-new/specs/pagedown_wrapped_lines.spec.ts b/src/tests/frontend-new/specs/pagedown_wrapped_lines.spec.ts new file mode 100644 index 000000000..6f9ed38ef --- /dev/null +++ b/src/tests/frontend-new/specs/pagedown_wrapped_lines.spec.ts @@ -0,0 +1,77 @@ +import {expect, test} from "@playwright/test"; +import {clearPadContent, goToNewPad} from "../helper/padHelper"; + +test.beforeEach(async ({page}) => { + await goToNewPad(page); +}); + +// Regression test for https://github.com/ether/etherpad/issues/4562 +// PageDown failed to scroll when the cursor was on a very long wrapped line and +// the following lines were also very long, because getVisibleLineRange returns +// indices into rep.lines (logical lines) and collapsed to [n, n] — so the +// advance count was 0 and both caret and scroll stayed put. +test.describe('PageDown on consecutive long wrapped lines (#4562)', function () { + test.describe.configure({retries: 2}); + + test('PageDown scrolls when three very long lines fill the viewport', async function ({page}) { + await clearPadContent(page); + + const innerFrame = page.frame('ace_inner')!; + + // Insert three long lines via the editor directly — each ~2000 chars, which + // wraps to many visual rows in the viewport. + await innerFrame.evaluate(() => { + const body = document.getElementById('innerdocbody')!; + const longText = 'invisible '.repeat(200).trim(); + body.innerHTML = ''; + for (let i = 0; i < 3; i++) { + const div = document.createElement('div'); + div.textContent = `${i + 1} ${longText}`; + body.appendChild(div); + } + // Trigger the editor to pick up the content + body.dispatchEvent(new Event('input', {bubbles: true})); + }); + + // Type a character at the end to make the editor register the long content + // via its normal input path (the raw innerHTML edit above is just a scaffold). + await page.keyboard.press('End'); + await page.keyboard.type('!'); + await page.waitForTimeout(300); + + // Move caret to start of pad + await page.keyboard.down('Control'); + await page.keyboard.press('Home'); + await page.keyboard.up('Control'); + await page.waitForTimeout(200); + + // Capture initial scroll position of the outer (scrollable) frame + const outerFrame = page.frame('ace_outer')!; + const before = await outerFrame.evaluate( + () => (document.getElementById('outerdocbody') as HTMLElement).scrollTop || + document.scrollingElement?.scrollTop || 0); + + // Press PageDown — the ace handler uses a 200ms setTimeout internally. + await page.keyboard.press('PageDown'); + await page.waitForTimeout(800); + + const after = await outerFrame.evaluate( + () => (document.getElementById('outerdocbody') as HTMLElement).scrollTop || + document.scrollingElement?.scrollTop || 0); + + // Either the viewport scrolled, or the caret advanced to a later logical line. + const caretLine = await innerFrame.evaluate(() => { + const sel = document.getSelection(); + if (!sel || !sel.focusNode) return 0; + let node = sel.focusNode as HTMLElement; + while (node && node.tagName !== 'DIV') node = node.parentElement!; + if (!node) return 0; + const divs = Array.from(document.getElementById('innerdocbody')!.children); + return divs.indexOf(node); + }); + + // Pre-fix behavior (#4562): after == before AND caretLine === 0. + // Fixed behavior: caret advances at least 1 logical line, or the viewport scrolls. + expect(after > before || caretLine > 0).toBe(true); + }); +}); From 63f95d602905aa3f5b105c49d60ec706b37da6c3 Mon Sep 17 00:00:00 2001 From: John McLear Date: Mon, 27 Jul 2026 20:03:21 +0100 Subject: [PATCH 70/74] perf: avoid throw-as-control-flow in SessionManager hot path (#7756) (#7775) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CPU profile of the SUT at the 100-400 author dive sweep (load-test workflow run 25956384097) attributed about 6% of total process CPU to the throw + catch around getSessionInfo: - ~1.82% to `new CustomError('sessionID does not exist', 'apierror')` construction (stack trace capture) - ~4.12% downstream, via the catch block's `console.debug(...)` routed through log4js -> sendToListeners -> sendLogEventToAppender Both call sites (`findAuthorID` on every CLIENT_READY, and `listSessionsWithDBKey` on session listing) immediately caught `apierror` and discarded it. The public `exports.getSessionInfo` contract still has to throw for the HTTP API (returning code:1 for missing sessionID), so introduce a private `getSessionInfoOrNull` helper that returns null and have the hot-path callers use it directly. `exports.getSessionInfo` is kept as a thin wrapper that preserves the existing throw semantics. No behaviour change for the HTTP API — sessionsAndGroups.ts test file (32 cases, including "getSessionInfo of deleted session" expecting code:1) passes unchanged. Co-authored-by: Claude Opus 4.7 (1M context) --- src/node/db/SessionManager.ts | 42 +++++++++++++++++------------------ 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/src/node/db/SessionManager.ts b/src/node/db/SessionManager.ts index b8b1b2562..e2f785d82 100644 --- a/src/node/db/SessionManager.ts +++ b/src/node/db/SessionManager.ts @@ -62,18 +62,8 @@ exports.findAuthorID = async (groupID:string, sessionCookie: string) => { * Also, see #3820. */ const sessionIDs = sessionCookie.replace(/^"|"$/g, '').split(','); - const sessionInfoPromises = sessionIDs.map(async (id) => { - try { - return await exports.getSessionInfo(id); - } catch (err:any) { - if (err.message === 'sessionID does not exist') { - console.debug(`SessionManager getAuthorID: no session exists with ID ${id}`); - } else { - throw err; - } - } - return undefined; - }); + const sessionInfoPromises = sessionIDs.map(async (id) => + (await getSessionInfoOrNull(id)) || undefined); const now = Math.floor(Date.now() / 1000); const isMatch = (si: { groupID: string; @@ -163,9 +153,20 @@ exports.createSession = async (groupID: string, authorID: string, validUntil: nu * @param {String} sessionID The id of the session * @return {Promise} the sessioninfos */ +// Non-throwing variant for hot-path callers. Hot path uses +// `findAuthorID` on every CLIENT_READY and `listSessionsWithDBKey` on +// session listing; both wrap getSessionInfo in try/catch and discard +// "sessionID does not exist" CustomError. Profiling against develop at +// 100-400 author sweep (ether/etherpad#7756) attributed ~6% of total +// CPU to that throw+catch pair: ~1.8% to CustomError construction and +// ~4% to the cascading `console.debug` call routed through log4js. A +// null return collapses the cost to a single nullable check. +const getSessionInfoOrNull = async (sessionID: string) => + await db.get(`session:${sessionID}`); + exports.getSessionInfo = async (sessionID:string) => { // check if the database entry of this session exists - const session = await db.get(`session:${sessionID}`); + const session = await getSessionInfoOrNull(sessionID); if (session == null) { // session does not exist @@ -250,15 +251,12 @@ const listSessionsWithDBKey = async (dbkey: string) => { // iterate through the sessions and get the sessioninfos for (const sessionID of Object.keys(sessions || {})) { - try { - sessions[sessionID] = await exports.getSessionInfo(sessionID); - } catch (err:any) { - if (err.name === 'apierror') { - console.warn(`Found bad session ${sessionID} in ${dbkey}`); - sessions[sessionID] = null; - } else { - throw err; - } + const info = await getSessionInfoOrNull(sessionID); + if (info == null) { + console.warn(`Found bad session ${sessionID} in ${dbkey}`); + sessions[sessionID] = null; + } else { + sessions[sessionID] = info; } } From e1c2fcd1f1a8bb9e3bbdc0db503172635d1177ff Mon Sep 17 00:00:00 2001 From: John McLear Date: Mon, 27 Jul 2026 20:03:26 +0100 Subject: [PATCH 71/74] perf: don't log settings.loadTest warning per-message (#7756) (#7776) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * perf: don't log settings.loadTest warning per-message (#7756) CPU profile of develop (and of the open #7775 branch) at the 100-400 author dive sweep attributed ~4% of total process CPU to log4js inside SecurityManager.checkAccess. Tracing the actual log call: line 79-80 emits `console.warn('bypassing socket.io authentication...')` on every checkAccess invocation when settings.loadTest is true — once per inbound message. With log4js's replaceConsole + cluster-mode dispatch enabled, that warning allocated, formatted, and dispatched a LogEvent through sendToListeners -> sendLogEventToAppender for every CLIENT_READY, COMMIT_CHANGESET, USERINFO_UPDATE, etc. settings.loadTest is a configuration choice, not a per-request condition. The warning belongs at startup. Move it to Settings.ts init alongside the other "you set X, beware" warnings, and drop the per-message branch (the loadTest short-circuit still applies). Test plan: - tests/backend/specs/api/sessionsAndGroups.ts: 32 passing - tests/backend/specs/socketio.ts: 39 passing (handleMessage paths) Co-Authored-By: Claude Opus 4.7 (1M context) * fixup: address Qodo review on #7776 Three issues flagged: 1. Indentation: outdented the continuation lines inside the new `if (settings.loadTest)` block from 10 spaces to 8 (one level from `logger.warn(`), matching 2-space indent rule for added code. 2. Warning scope: the original wording said only socket.io authn/authz is bypassed, but settings.loadTest short-circuits SecurityManager.checkAccess() which is called from both HTTP (padaccess, importexport) and socket.io (PadMessageHandler) paths. Reword to "SecurityManager.checkAccess() will bypass authentication and authorization for both HTTP and socket.io requests". 3. Misleading "fires once at startup" comment in SecurityManager.ts: the warning is logged from Settings.ts reloadSettings(), which is also called on admin restart and plugin install. Rephrase to "logged from Settings.ts during settings load/reload, not on every request". All three issues are accurate. No behaviour change for the fix itself; only comment + warning text. Co-Authored-By: Claude Opus 4.7 (1M context) --------- Co-authored-by: Claude Opus 4.7 (1M context) --- src/node/db/SecurityManager.ts | 11 +++++++---- src/node/utils/Settings.ts | 7 +++++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/node/db/SecurityManager.ts b/src/node/db/SecurityManager.ts index 219d3f2be..33996c155 100644 --- a/src/node/db/SecurityManager.ts +++ b/src/node/db/SecurityManager.ts @@ -75,10 +75,13 @@ exports.checkAccess = async (padID:string, sessionCookie:string, token:string, u } // Authentication and authorization checks. - if (settings.loadTest) { - console.warn( - 'bypassing socket.io authentication and authorization checks due to settings.loadTest'); - } else if (settings.requireAuthentication) { + // settings.loadTest just short-circuits authn/authz; the user-facing + // warning about this configuration choice is logged from Settings.ts + // during settings load/reload, not on every request. Re-logging it + // here was costing ~4% of process CPU in the 100-400 author dive + // sweep (#7756): the routed-console-warn went through log4js's + // clustering dispatch on every message. + if (!settings.loadTest && settings.requireAuthentication) { if (userSettings == null) { authLogger.debug('access denied: authentication is required'); return DENY; diff --git a/src/node/utils/Settings.ts b/src/node/utils/Settings.ts index b0762b72f..f1ed4e4e0 100644 --- a/src/node/utils/Settings.ts +++ b/src/node/utils/Settings.ts @@ -1266,6 +1266,13 @@ export const reloadSettings = () => { logger.warn("logLayoutType: " + settings.logLayoutType); initLogging(settings.logconfig); + if (settings.loadTest) { + logger.warn( + 'settings.loadTest is true: SecurityManager.checkAccess() will bypass ' + + 'authentication and authorization for both HTTP and socket.io requests. ' + + 'Do NOT enable this in production.'); + } + if (!settings.skinName) { logger.warn('No "skinName" parameter found. Please check out settings.json.template and ' + 'update your settings.json. Falling back to the default "colibris".'); From e829ca77fe8b62d58192d9f8266e530402c29a59 Mon Sep 17 00:00:00 2001 From: SamTV12345 <40429738+SamTV12345@users.noreply.github.com> Date: Mon, 27 Jul 2026 21:26:11 +0200 Subject: [PATCH 72/74] build(deps-dev): dev-dependencies group (16 updates, typescript excluded) (#8078) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build(deps-dev): bump the dev-dependencies group across 1 directory with 18 updates Bumps the dev-dependencies group with 18 updates in the / directory: | Package | From | To | | --- | --- | --- | | [@types/supertest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/supertest) | `7.2.0` | `7.2.1` | | [eslint](https://github.com/eslint/eslint) | `10.6.0` | `10.7.0` | | [set-cookie-parser](https://github.com/nfriedly/set-cookie-parser) | `3.1.1` | `3.1.2` | | [sinon](https://github.com/sinonjs/sinon) | `22.0.0` | `22.1.0` | | [typescript](https://github.com/microsoft/TypeScript) | `6.0.3` | `7.0.2` | | [@radix-ui/react-dialog](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dialog) | `1.1.19` | `1.1.23` | | [@radix-ui/react-toast](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/toast) | `1.2.19` | `1.2.23` | | [@radix-ui/react-visually-hidden](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/visually-hidden) | `1.2.7` | `1.2.11` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.63.0` | `8.65.0` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.63.0` | `8.65.0` | | [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `6.0.3` | `6.0.4` | | [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.23.0` | `1.26.0` | | [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.7` | `19.2.8` | | [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.7` | `19.2.8` | | [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.81.0` | `7.82.0` | | [react-i18next](https://github.com/i18next/react-i18next) | `17.0.9` | `17.0.11` | | [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.1.4` | `8.1.5` | | [oxc-minify](https://github.com/oxc-project/oxc/tree/HEAD/napi/minify) | `0.139.0` | `0.141.0` | Updates `@types/supertest` from 7.2.0 to 7.2.1 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/supertest) Updates `eslint` from 10.6.0 to 10.7.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](https://github.com/eslint/eslint/compare/v10.6.0...v10.7.0) Updates `set-cookie-parser` from 3.1.1 to 3.1.2 - [Changelog](https://github.com/nfriedly/set-cookie-parser/blob/master/CHANGELOG.md) - [Commits](https://github.com/nfriedly/set-cookie-parser/compare/v3.1.1...v3.1.2) Updates `sinon` from 22.0.0 to 22.1.0 - [Release notes](https://github.com/sinonjs/sinon/releases) - [Changelog](https://github.com/sinonjs/sinon/blob/main/CHANGES.md) - [Commits](https://github.com/sinonjs/sinon/compare/v22.0.0...v22.1.0) Updates `typescript` from 6.0.3 to 7.0.2 - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Commits](https://github.com/microsoft/TypeScript/commits) Updates `@radix-ui/react-dialog` from 1.1.19 to 1.1.23 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/dialog/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dialog) Updates `@radix-ui/react-toast` from 1.2.19 to 1.2.23 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/toast/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/toast) Updates `@radix-ui/react-visually-hidden` from 1.2.7 to 1.2.11 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/visually-hidden/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/visually-hidden) Updates `@typescript-eslint/eslint-plugin` from 8.63.0 to 8.65.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.65.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.63.0 to 8.65.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.65.0/packages/parser) Updates `@vitejs/plugin-react` from 6.0.3 to 6.0.4 - [Release notes](https://github.com/vitejs/vite-plugin-react/releases) - [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@6.0.4/packages/plugin-react) Updates `lucide-react` from 1.23.0 to 1.26.0 - [Release notes](https://github.com/lucide-icons/lucide/releases) - [Commits](https://github.com/lucide-icons/lucide/commits/1.26.0/packages/lucide-react) Updates `react` from 19.2.7 to 19.2.8 - [Release notes](https://github.com/react/react/releases) - [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/react/react/commits/v19.2.8/packages/react) Updates `react-dom` from 19.2.7 to 19.2.8 - [Release notes](https://github.com/react/react/releases) - [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/react/react/commits/v19.2.8/packages/react-dom) Updates `react-hook-form` from 7.81.0 to 7.82.0 - [Release notes](https://github.com/react-hook-form/react-hook-form/releases) - [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md) - [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.81.0...v7.82.0) Updates `react-i18next` from 17.0.9 to 17.0.11 - [Changelog](https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md) - [Commits](https://github.com/i18next/react-i18next/compare/v17.0.9...v17.0.11) Updates `vite` from 8.1.4 to 8.1.5 - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v8.1.5/packages/vite) Updates `oxc-minify` from 0.139.0 to 0.141.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/napi/minify/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/crates_v0.141.0/napi/minify) --- updated-dependencies: - dependency-name: "@radix-ui/react-dialog" dependency-version: 1.1.21 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@radix-ui/react-toast" dependency-version: 1.2.21 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@radix-ui/react-visually-hidden" dependency-version: 1.2.9 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@types/supertest" dependency-version: 7.2.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.65.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@typescript-eslint/parser" dependency-version: 8.65.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@vitejs/plugin-react" dependency-version: 6.0.4 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: eslint dependency-version: 10.7.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: lucide-react dependency-version: 1.25.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: oxc-minify dependency-version: 0.140.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: react dependency-version: 19.2.8 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: react-dom dependency-version: 19.2.8 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: react-hook-form dependency-version: 7.82.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: react-i18next dependency-version: 17.0.11 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: set-cookie-parser dependency-version: 3.1.2 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: sinon dependency-version: 22.1.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: typescript dependency-version: 7.0.2 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: vite dependency-version: 8.1.5 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies ... Signed-off-by: dependabot[bot] * fix(types): make TextLinesMutator and the hook test cases check under TypeScript 7 The dev-dependency bump takes typescript to 7 (tsgo), which reports two diagnostics the old compiler let through: - TextLinesMutator: `_curSplice` was declared `[number, number?]` although it holds `[start, deleteCount, ...lines]` — that mismatch is why nearly every access to it carries a `@ts-ignore`. Declare the documented tuple, destructure it for the `splice()` call instead of spreading an optional element, and treat `splitTextLines()`'s String.match() result as possibly-null (it cannot be null here: L > 0 means the text contains a newline). - hooks spec: the `concat()` of the async cases onto the sync ones no longer type-checks element-wise against the inferred literal type. Give both arrays an explicit `HookFnTestCase` type — the cases vary in arity and return type by design, so `fn` keeps loose parameters and an `unknown` result. `admin` and `ui` stay on typescript 6: their build runs `openapi-typescript`, which drives the JS compiler API (`ts.factory.*`) that tsgo does not expose, so TS7 there fails the vite build with "Cannot read properties of undefined (reading 'createKeywordTypeNode')". Type fixes taken over from #8039 by @zi-gae, without the `@ts-ignore` / `as any[]` suppressions. Co-Authored-By: Claude Opus 5 (1M context) --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 5 (1M context) --- admin/package.json | 26 +- doc/package.json | 2 +- pnpm-lock.yaml | 1256 ++++++++++++++++++++------------------------ src/package.json | 8 +- ui/package.json | 2 +- 5 files changed, 603 insertions(+), 691 deletions(-) diff --git a/admin/package.json b/admin/package.json index f49f6183d..0428e2391 100644 --- a/admin/package.json +++ b/admin/package.json @@ -22,31 +22,31 @@ "openapi-react-query": "^0.5.4" }, "devDependencies": { - "@radix-ui/react-dialog": "^1.1.19", - "@radix-ui/react-toast": "^1.2.19", - "@radix-ui/react-visually-hidden": "^1.2.7", + "@radix-ui/react-dialog": "^1.1.23", + "@radix-ui/react-toast": "^1.2.23", + "@radix-ui/react-visually-hidden": "^1.2.11", "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", - "@typescript-eslint/eslint-plugin": "^8.63.0", - "@typescript-eslint/parser": "^8.63.0", - "@vitejs/plugin-react": "^6.0.3", + "@typescript-eslint/eslint-plugin": "^8.65.0", + "@typescript-eslint/parser": "^8.65.0", + "@vitejs/plugin-react": "^6.0.4", "babel-plugin-react-compiler": "19.1.0-rc.3", - "eslint": "^10.6.0", + "eslint": "^10.7.0", "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-react-refresh": "^0.5.3", "i18next": "^26.3.6", "i18next-browser-languagedetector": "^8.2.1", - "lucide-react": "^1.23.0", + "lucide-react": "^1.26.0", "openapi-typescript": "^7.13.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", - "react-hook-form": "^7.81.0", - "react-i18next": "^17.0.9", + "react": "^19.2.8", + "react-dom": "^19.2.8", + "react-hook-form": "^7.82.0", + "react-i18next": "^17.0.11", "react-router-dom": "^7.18.1", "socket.io-client": "^4.8.3", "tsx": "^4.23.1", "typescript": "^6.0.3", - "vite": "^8.1.4", + "vite": "^8.1.5", "vite-plugin-babel": "^1.7.3", "zustand": "^5.0.14" } diff --git a/doc/package.json b/doc/package.json index 989c21d69..a03388bac 100644 --- a/doc/package.json +++ b/doc/package.json @@ -1,6 +1,6 @@ { "devDependencies": { - "oxc-minify": "^0.139.0", + "oxc-minify": "^0.141.0", "vitepress": "^2.0.0-alpha.18" }, "scripts": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 11a7a96fc..6404a8a88 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -51,13 +51,13 @@ importers: dependencies: '@radix-ui/react-switch': specifier: ^1.3.7 - version: 1.3.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + version: 1.3.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) '@tanstack/react-query': specifier: ^5.101.4 - version: 5.101.4(react@19.2.7) + version: 5.101.4(react@19.2.8) '@tanstack/react-query-devtools': specifier: ^5.101.4 - version: 5.101.4(@tanstack/react-query@5.101.4(react@19.2.7))(react@19.2.7) + version: 5.101.4(@tanstack/react-query@5.101.4(react@19.2.8))(react@19.2.8) jsonc-parser: specifier: ^3.3.1 version: 3.3.1 @@ -66,17 +66,17 @@ importers: version: 0.17.0 openapi-react-query: specifier: ^0.5.4 - version: 0.5.4(@tanstack/react-query@5.101.4(react@19.2.7))(openapi-fetch@0.17.0) + version: 0.5.4(@tanstack/react-query@5.101.4(react@19.2.8))(openapi-fetch@0.17.0) devDependencies: '@radix-ui/react-dialog': - specifier: ^1.1.19 - version: 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + specifier: ^1.1.23 + version: 1.1.23(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) '@radix-ui/react-toast': - specifier: ^1.2.19 - version: 1.2.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + specifier: ^1.2.23 + version: 1.2.23(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) '@radix-ui/react-visually-hidden': - specifier: ^1.2.7 - version: 1.2.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + specifier: ^1.2.11 + version: 1.2.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) '@types/react': specifier: ^19.2.17 version: 19.2.17 @@ -84,26 +84,26 @@ importers: specifier: ^19.2.3 version: 19.2.3(@types/react@19.2.17) '@typescript-eslint/eslint-plugin': - specifier: ^8.63.0 - version: 8.63.0(@typescript-eslint/parser@8.63.0(eslint@10.6.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.6.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) + specifier: ^8.65.0 + version: 8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0)(typescript@6.0.3))(eslint@10.8.0)(typescript@6.0.3) '@typescript-eslint/parser': - specifier: ^8.63.0 - version: 8.63.0(eslint@10.6.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) + specifier: ^8.65.0 + version: 8.65.0(eslint@10.8.0)(typescript@6.0.3) '@vitejs/plugin-react': - specifier: ^6.0.3 - version: 6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1)) + specifier: ^6.0.4 + version: 6.0.4(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.5(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1)) babel-plugin-react-compiler: specifier: 19.1.0-rc.3 version: 19.1.0-rc.3 eslint: - specifier: ^10.6.0 - version: 10.6.0(supports-color@8.1.1) + specifier: ^10.7.0 + version: 10.8.0 eslint-plugin-react-hooks: specifier: ^7.1.1 - version: 7.1.1(eslint@10.6.0(supports-color@8.1.1)) + version: 7.1.1(eslint@10.8.0) eslint-plugin-react-refresh: specifier: ^0.5.3 - version: 0.5.3(eslint@10.6.0(supports-color@8.1.1)) + version: 0.5.3(eslint@10.8.0) i18next: specifier: ^26.3.6 version: 26.3.6(typescript@6.0.3) @@ -111,26 +111,26 @@ importers: specifier: ^8.2.1 version: 8.2.1 lucide-react: - specifier: ^1.23.0 - version: 1.23.0(react@19.2.7) + specifier: ^1.26.0 + version: 1.27.0(react@19.2.8) openapi-typescript: specifier: ^7.13.0 version: 7.13.0(typescript@6.0.3) react: - specifier: ^19.2.7 - version: 19.2.7 + specifier: ^19.2.8 + version: 19.2.8 react-dom: - specifier: ^19.2.7 - version: 19.2.7(react@19.2.7) + specifier: ^19.2.8 + version: 19.2.8(react@19.2.8) react-hook-form: - specifier: ^7.81.0 - version: 7.81.0(react@19.2.7) + specifier: ^7.82.0 + version: 7.83.0(react@19.2.8) react-i18next: - specifier: ^17.0.9 - version: 17.0.9(i18next@26.3.6(typescript@6.0.3))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@6.0.3) + specifier: ^17.0.11 + version: 17.0.11(i18next@26.3.6(typescript@6.0.3))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3) react-router-dom: specifier: ^7.18.1 - version: 7.18.1(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + version: 7.18.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8) socket.io-client: specifier: ^4.8.3 version: 4.8.3(supports-color@8.1.1) @@ -141,14 +141,14 @@ importers: specifier: ^6.0.3 version: 6.0.3 vite: - specifier: ^8.1.4 - version: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1) + specifier: ^8.1.5 + version: 8.1.5(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1) vite-plugin-babel: specifier: ^1.7.3 - version: 1.7.3(@babel/core@8.0.1)(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1)) + version: 1.7.3(@babel/core@8.0.1)(vite@8.1.5(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1)) zustand: specifier: ^5.0.14 - version: 5.0.14(@types/react@19.2.17)(react@19.2.7)(use-sync-external-store@1.6.0(react@19.2.7)) + version: 5.0.14(@types/react@19.2.17)(react@19.2.8)(use-sync-external-store@1.6.0(react@19.2.8)) bin: dependencies: @@ -185,8 +185,8 @@ importers: version: 2.17.3 devDependencies: oxc-minify: - specifier: ^0.139.0 - version: 0.139.0 + specifier: ^0.141.0 + version: 0.141.0 vitepress: specifier: ^2.0.0-alpha.18 version: 2.0.0-alpha.18(@types/node@26.1.1)(change-case@5.4.4)(esbuild@0.28.1)(jwt-decode@4.0.0)(postcss@8.5.16)(tsx@4.23.1)(typescript@6.0.3) @@ -435,8 +435,8 @@ importers: specifier: ^22.0.0 version: 22.0.0 '@types/supertest': - specifier: ^7.2.0 - version: 7.2.0 + specifier: ^7.2.1 + version: 7.2.1 '@types/underscore': specifier: ^1.13.0 version: 1.13.0 @@ -447,11 +447,11 @@ importers: specifier: ^5.0.0 version: 5.0.0 eslint: - specifier: ^10.6.0 - version: 10.6.0 + specifier: ^10.7.0 + version: 10.8.0 eslint-config-etherpad: specifier: ^4.0.5 - version: 4.0.5(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2) + version: 4.0.5(eslint@10.8.0)(supports-color@8.1.1)(typescript@7.0.2) etherpad-cli-client: specifier: ^4.0.3 version: 4.0.3 @@ -468,11 +468,11 @@ importers: specifier: ^0.4.2 version: 0.4.2 set-cookie-parser: - specifier: ^3.1.1 - version: 3.1.1 + specifier: ^3.1.2 + version: 3.1.2 sinon: - specifier: ^22.0.0 - version: 22.0.0 + specifier: ^22.1.0 + version: 22.1.0 split-grid: specifier: ^1.0.11 version: 1.0.11 @@ -484,7 +484,7 @@ importers: version: 7.0.2 vitest: specifier: ^4.1.10 - version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1)) + version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.5(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1)) ui: devDependencies: @@ -495,8 +495,8 @@ importers: specifier: ^6.0.3 version: 6.0.3 vite: - specifier: ^8.1.4 - version: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1) + specifier: ^8.1.5 + version: 8.1.5(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1) packages: @@ -923,8 +923,8 @@ packages: resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/config-helpers@0.6.0': - resolution: {integrity: sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==} + '@eslint/config-helpers@0.7.0': + resolution: {integrity: sha512-DObd/KKUsU+FaFv4PLxSRenpXfQWmPXXP3pPZ6/K1PCrMu2vQpMDMuQe/BqYeoLcz8ro0bVDF1RxOJgfVEdhUw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@eslint/core@1.2.1': @@ -1097,129 +1097,129 @@ packages: resolution: {integrity: sha512-icc5xCzndZfhuJMy5oqk5AvloWquR7jtae74qzpkKkhGp8BivK+oCcEXgGnjCdTfp8hA44l+w8gE8yYJbocJJw==} engines: {node: '>=14'} - '@oxc-minify/binding-android-arm-eabi@0.139.0': - resolution: {integrity: sha512-aXrJvvhQ09YMg/atuVixnCdK9IE3hvogna+/ZqRuzs69n6DRrq7MbuRJnrfw+tQvtym9m7vNwQa3fENTemibGQ==} + '@oxc-minify/binding-android-arm-eabi@0.141.0': + resolution: {integrity: sha512-tt3ekadMhd/Q+9/mU1RaZWCUAJhOQgHsUD9tn0btFhEkZyeTg1rKt2+wzv+wjBE3QXlxVdV6sYMLKnbt8XdR+g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxc-minify/binding-android-arm64@0.139.0': - resolution: {integrity: sha512-2LX1Wpsw+LtvOw/dxWVeMT/zBpfw9wdW7FBhFoXwhO24o6F7LPcsCh2BjxygsM8+D4pyJhPwlPekeGGPT/KH2A==} + '@oxc-minify/binding-android-arm64@0.141.0': + resolution: {integrity: sha512-i7OGI2bFipaSlgwap/qiXcCmPbZMhlYdKAQvUtNziX8CJamNzhlqMNw4jz7wYdVNfcKuQ1eoyi7XMYCbNnKRtg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxc-minify/binding-darwin-arm64@0.139.0': - resolution: {integrity: sha512-5AWuNuJaZxZLcyX7eptAac2nBycrjRIIPaPjiXEq9ozBemp8cXXjr2jkAUIaVcoohiKEYg3EegoaqPFeDPvOGw==} + '@oxc-minify/binding-darwin-arm64@0.141.0': + resolution: {integrity: sha512-YOp5tcQRkLUbvII+EVwDss+Ww16b/V8XfrqNRDOTaLb/azGTb87iyS5drXfRosONv7Jp8/t8qRFC9K0aj1yYZA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxc-minify/binding-darwin-x64@0.139.0': - resolution: {integrity: sha512-RnvVqNNiy0FIhn9y+EPoiC9me9QZxb6O/wuhr+uE7pZm6eG5kw37SvudwaYjYmH/7Xfo87bqEffdowEi7CGsOA==} + '@oxc-minify/binding-darwin-x64@0.141.0': + resolution: {integrity: sha512-9Z25dRX02krxcFXTIoZ3ym0+CF3gZ6RiU+bbckFT4l+d5LcQePfM1tR12zEW+GDTl0atCNG2TuEu61tT4L2LIQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxc-minify/binding-freebsd-x64@0.139.0': - resolution: {integrity: sha512-azE4rCmII0FYcX3qRCAqJXWeJZSC5YO/T+VKrZhk8270WRahRmhxJeZCIjmZPXmO7+BkORwUdlDtXYGe2GdIEA==} + '@oxc-minify/binding-freebsd-x64@0.141.0': + resolution: {integrity: sha512-QtFX48viQb3Di8GkxhH9SPYZaafIwyEa51iFBALXz2x1WdYvZeAxgl33GjETq5/YXS7MiPYrZ7FNs3UHtPsTdg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxc-minify/binding-linux-arm-gnueabihf@0.139.0': - resolution: {integrity: sha512-sfhONQwXir/KWbyrSf4TOkbtSW0n+JNeiXCsgSMTsSRqIdjRrxF6Z2XA2hHrlgWQnxdkdzTU3+aui3IXLzvcKw==} + '@oxc-minify/binding-linux-arm-gnueabihf@0.141.0': + resolution: {integrity: sha512-HcgqdmJY+0qWnolOTxrvzilDTvs3q7RF2XcvO0q0iDld8SZBNARVqrWY9k5WwCMTZSJKCWfL/QqpUMBnyIHQAA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-minify/binding-linux-arm-musleabihf@0.139.0': - resolution: {integrity: sha512-6SZAlnCtNkLZVj8DgSSu59iVN/nELyRwTER1ZUB16fY9Isojtp/JY/Ho6AzanDSdq3sHXWcUZoPWP/2oRVhTAA==} + '@oxc-minify/binding-linux-arm-musleabihf@0.141.0': + resolution: {integrity: sha512-u8c4OPT8A6lx+mnFkMczIHCQQNqbqdEGwep2PlOoCgQhwsWR3auvs4cyD1JJW6huZQjeq0gJJ0dJtvJq3yLy+w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-minify/binding-linux-arm64-gnu@0.139.0': - resolution: {integrity: sha512-ikuSX44sYfuRwt9MA2kEyqQIqhZFBpxVxUaoym9bY8seTbLatBXPVX6UC+iXtZCm+zi5rfcBJkwGuE8X/YXEPg==} + '@oxc-minify/binding-linux-arm64-gnu@0.141.0': + resolution: {integrity: sha512-n+ljU1cOCpIqVDxYiYmNimXGKNYlPIkdWVrkC4hOQF3B7YqkSRtEWbHcvedinBqNCwUF+azynDWor5Bq3/BdDw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxc-minify/binding-linux-arm64-musl@0.139.0': - resolution: {integrity: sha512-ccPpGIncYRDtLWocKQ/l24mRGyf6O/0zQOSpjmqlSx3M1tWPQgVkoAfFcEmehC0V7rGTBFpTOgECbr2UO9grwQ==} + '@oxc-minify/binding-linux-arm64-musl@0.141.0': + resolution: {integrity: sha512-Xkb5QCOywz/YbL+8LVQSzOxuz2jhRweBjr4BnQO7CQXAtQLLCNoll7v2qLg9OCzdqdhFw9uNgZ6aTBVADBhiPg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxc-minify/binding-linux-ppc64-gnu@0.139.0': - resolution: {integrity: sha512-qIfSeJdK65jNunUtjdYTbc1MuHnvYU8HV/ZtTJcj7bO3Xv7FQwl6OKxvx0ZiMm6vi5wNP+LsZy3QP0NI3O2Oiw==} + '@oxc-minify/binding-linux-ppc64-gnu@0.141.0': + resolution: {integrity: sha512-IbVb+m0iL053WitFNnQbtmd8OjYGr4Xn5NTuAiYz8tJBtn82okEZFi0OgaeaHQE4aPZGOKPcSVlt1OMPtMoPCw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxc-minify/binding-linux-riscv64-gnu@0.139.0': - resolution: {integrity: sha512-tpboSbuRf37MYwhRwO530ChIXLWi32gKDjgsGzKHoUA02P/+YNSvOOVW0vTHNM9kRds1NETvtMGKIXT/MIaD6g==} + '@oxc-minify/binding-linux-riscv64-gnu@0.141.0': + resolution: {integrity: sha512-Sc/GAiyelxg8oXlBgmJI6OuKKHmg4rF0RvTLC8eL5V3qKDXrMdVWiJziwVBqN5oiFEog35ZM1/YNF63IZOdZjw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxc-minify/binding-linux-riscv64-musl@0.139.0': - resolution: {integrity: sha512-15aFEJ4MgsWN5hv7uWeY6D5xnsj8pbcet9BrxNMLx8+mwBa5LrYgd1+MPyuDAgZY8ibsC9Js40Rz3gWBk+ET5Q==} + '@oxc-minify/binding-linux-riscv64-musl@0.141.0': + resolution: {integrity: sha512-KHYS3oQJ5r1QBVAVubUy6UPRWYghqkjCOfNlGeH/sWlmfeM2OD74+Stc8eHmVm7QI2wDooOIlZfUso0Yz0jyRg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxc-minify/binding-linux-s390x-gnu@0.139.0': - resolution: {integrity: sha512-k7VZzIYhiWhBhdMuS9IZFvsdisPVU30x/y7oH8WeQcxY3xL9HCtGaHPzIZWA2p47Ob+ye07wZpTIInfIrVnOjQ==} + '@oxc-minify/binding-linux-s390x-gnu@0.141.0': + resolution: {integrity: sha512-WyacIrs13ewOnGngxNmPF00xn0+aOYHTMSSMljNN3VShSbqB0A7ZEikR7q9fmmnBTf/jloQUO6bjzK85BFfl0w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxc-minify/binding-linux-x64-gnu@0.139.0': - resolution: {integrity: sha512-tIuF2sFUUQWTS0UIcSHXhYHGNb8Jug2T77wAX/Tf7C5hdEoUwUAy61H1U1wYtKkn/9nEEVzrsxPVRaJ3CSHGWA==} + '@oxc-minify/binding-linux-x64-gnu@0.141.0': + resolution: {integrity: sha512-mP69bh2L/VVq10UEQ3wb0EsO0472TzOIZUfS/ADmxnr4gSxAzhRbO8w5QryL3BNyyyjSaXIlrAnAKO6G3srGwg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxc-minify/binding-linux-x64-musl@0.139.0': - resolution: {integrity: sha512-dKJKmbmQ0I69vGSbljah85X8/TS2nLNUh6ExVag3vLw0BFmbRJakmA2A1zpSRQ9W/rgPH6pZ4VpFnjP9L+EAJg==} + '@oxc-minify/binding-linux-x64-musl@0.141.0': + resolution: {integrity: sha512-B4w1uz+GPVD5iRNn9StLSG0ug5DNAy5YQVswjPy5fXNNO6JyADvmu4KZyE6tWCA6Kbz/84icD6RJ1TKVis2HSg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxc-minify/binding-openharmony-arm64@0.139.0': - resolution: {integrity: sha512-Wu8CslB8A6Pmnp0O2Hmg1xdvGmoLoajpVZOAduK0vAxCk5DrKAueAwlsniAPmTlbJ5INhhGBlpG9V4kEuCNyOw==} + '@oxc-minify/binding-openharmony-arm64@0.141.0': + resolution: {integrity: sha512-p3nU1bo2t+QRvvqOPUqI8aEk8puhYdMq5cnjulovfKykWRi8cMcJJvuLp+RPkf45lUcTQdNG/YMFqR5eYGZfwA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxc-minify/binding-wasm32-wasi@0.139.0': - resolution: {integrity: sha512-z0RctlQnmafehWz8LwPrWr1r0xlk0o9KQZnF10yl8fJbFIgWRXTcj+8DDuUGKtTdEqb5ZGN93fQdOAdV5p2KxQ==} + '@oxc-minify/binding-wasm32-wasi@0.141.0': + resolution: {integrity: sha512-Qb72fqFRs2Xu+KvAwisc1Fxn/rd/KROnFIdkFv77dTVmrKsq2HOCjWvxlPzjHcxNIgGUUJtpmNolrs7GYcopKg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] - '@oxc-minify/binding-win32-arm64-msvc@0.139.0': - resolution: {integrity: sha512-s48mEefXP42a3YQhPmZbtSj8j1ZqtVQe0xxnWupGznfsneW+6kZk4DqwJtbwQVNQW6M3xyT4x7lW8NeKDWY9/A==} + '@oxc-minify/binding-win32-arm64-msvc@0.141.0': + resolution: {integrity: sha512-C+lcoyJycCgq4MIgGe2K/xYZHKjaSfRMa+Bm88UoPK7U/mFHYoAnICbftkLh3IVnIuQAr9vGItp0w/m39VajgQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxc-minify/binding-win32-ia32-msvc@0.139.0': - resolution: {integrity: sha512-hD5AxmkJxYGX33uwlQKBUq+GGKNzH4faeB66c3JASXryDqZZuqa/ZmuGeiOWAcFdKr/PBVby7SslOvRk74epsQ==} + '@oxc-minify/binding-win32-ia32-msvc@0.141.0': + resolution: {integrity: sha512-MAtLZpArekuD94sTmQYz7YAn3xDrq4wqT/71CUrv8ij2TSbYZGqDtA44ujP3977180ITcffPQYfHKXYX7arsgg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxc-minify/binding-win32-x64-msvc@0.139.0': - resolution: {integrity: sha512-y0G8o/M+1vIkSYl/1tY5wTK2U3XpyNseK8ca29hM287Gx46AfWFc7MRnMY1Dq8n/80clBL+3O6GNPVOxXRO7XA==} + '@oxc-minify/binding-win32-x64-msvc@0.141.0': + resolution: {integrity: sha512-9B0SzKsstTUETz2SblLd2gZJ2H36GyBmZmwcZVwEaFOYW+luVm78yCSjZwja/xyl+PV6JsLhxQv+rgH46rpxQw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -1235,14 +1235,11 @@ packages: engines: {node: '>=18'} hasBin: true - '@radix-ui/primitive@1.1.5': - resolution: {integrity: sha512-d86WIWFYNtGA0H/d8exstrTRTp7eWJYlYJbtNofxr/3ljupZYn6EFDG/Qgu/0Kc8v7yMUxySagqJsL1+PdYjWg==} - '@radix-ui/primitive@1.1.7': resolution: {integrity: sha512-rqWnm76nYT8HoNNqEjpgJ7Pw/DrBj5iBTrmEPo6HTX5+VJyBNOqTdv4g89G63HuR5g0AaENoAcH7Is5fF2kZ8Q==} - '@radix-ui/react-collection@1.1.12': - resolution: {integrity: sha512-nb67INpE0IahJKN7EYPp9m9YGwYeKlnzxT3MwXVkgCskaSJia97kG4T0ywpjNUSSnoJk/uvk12V8vbrEHEj+/Q==} + '@radix-ui/react-collection@1.1.15': + resolution: {integrity: sha512-9W+B9NPF0NaaPh/1NJd3+KqsnlLqU9H7T2rvww+fp+T/evVXdNAyYcnfRQZFOjkR1ajQp3yORlqnI8soawLvNA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1254,15 +1251,6 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-compose-refs@1.1.3': - resolution: {integrity: sha512-rYOP8OMnuuPMQF1uhPVlGNcCDlkokKqGFE3JcxFViIkAXP7EvFWUliJAstrapypaBLJNHbZL6jGhbVDGTwmVhA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@radix-ui/react-compose-refs@1.1.5': resolution: {integrity: sha512-+48PbAAbq3didjJxa+OaWY2ZwgAKsNiRGyeHKszblZMQ+kcpd9pAaT11cMkGEie0vsOi3QdeTE6d5Fe3Gn61kA==} peerDependencies: @@ -1272,15 +1260,6 @@ packages: '@types/react': optional: true - '@radix-ui/react-context@1.2.0': - resolution: {integrity: sha512-fOE+JtN9rygNZkCnHRBEP0TAvLldlhyOxMsbwFvTP4nAs+nBmfnna+o/Zski2wkmY1YMrFC0aSzsHoLY47iLrg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@radix-ui/react-context@1.2.2': resolution: {integrity: sha512-RHCUGwKHDr0hDGg4X7ma4JG4/+12qxw8rkh5QKdDldlCvtja6nUx1Ef/8HVrJze81lEsgLQlqjzjGNHantgnQA==} peerDependencies: @@ -1290,8 +1269,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-dialog@1.1.19': - resolution: {integrity: sha512-+HhbN2+YtkRgVirjZ2afMeutQRuGOrdkWR5+EFC58SJojGmtyNQwYzgi6tHBpOxvFHefMtPeHdgtjz0BOGxFQg==} + '@radix-ui/react-dialog@1.1.23': + resolution: {integrity: sha512-Ksw4WeROkO4rC9k/onilX/Ao2Cr1ku1unMNH+XSCcP4jSXYu7HDsg9n4ojMjVb22XpYjAQ9qfrFlVbru1vXDUA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1303,8 +1282,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-dismissable-layer@1.1.15': - resolution: {integrity: sha512-b0XaRlzn2QKuo10XyNgi2DAJDf5XC9d1nD3FJcuvCjbR7+4Ad28zmZsLsqx+hvDEzMnRuZaZxZm9gYObV6RmRA==} + '@radix-ui/react-dismissable-layer@1.1.19': + resolution: {integrity: sha512-8g4pfOL9HoKKLWGiypT+dphVqjFfmcXO5GBnhsG6zI+lxAx/8feQpr+1LSN8Re3hiZ+XkLNS4O9ztK11/LzQ6w==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1316,8 +1295,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-focus-guards@1.1.4': - resolution: {integrity: sha512-cot/aB/mOm0IYVYTTmQcEEK1M48lZWi8FlYe5nDPQQ8NYZUlXEFgncJ9p2Kzer3RKSrY7cTTpEMLZKNo9QoP5Q==} + '@radix-ui/react-focus-guards@1.1.6': + resolution: {integrity: sha512-RNOJjfZMTyBM6xYmV3IVGXkPjIhcBAuv48POevAXwrGJhkWZ9p1rFoIS1JFooPuT193AZmRsCPhpoVJxx6OPoQ==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1325,8 +1304,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-focus-scope@1.1.12': - resolution: {integrity: sha512-jjk/lqTeNL0azUx5ZYzVrl4NgaDIrdzTNE4mABV9yBFI7FQqN7pIgzV1bTleUezP2QiTGA1BFTqY8MegDgWX9A==} + '@radix-ui/react-focus-scope@1.1.16': + resolution: {integrity: sha512-wmRZ2WWLvmt6KHy2rNPOdPUjwq5xOHY02+m+udwJTn0aNIox/rkskAvJTyTLGhPK6KgrUjlJUJpgmx/+wFiFIQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1338,8 +1317,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-id@1.1.2': - resolution: {integrity: sha512-orBC88futVpqCmhX1p4cvquNHsELQ+w+vBJnuj3ftETI5bJb0bZn3Tqu3SWN2IOcPycTnMGnhwoermvISt72sA==} + '@radix-ui/react-id@1.1.4': + resolution: {integrity: sha512-TMQp2llA+RYn7JcjnrMnz7wN4pcVttPZnRZo52PLQsoLVKzNlVwUeHmfePgTgRluXFvlD3GD5g5MOVVTJCO0qA==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1347,8 +1326,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-portal@1.1.13': - resolution: {integrity: sha512-z3oXfmaHLJTF1wktbjgD6cn9jiEbq3WSondB10LIuIt2m2Ym4iJlrW04/euMwENDdWDdE7z+OuY7Qyp1YpRSwA==} + '@radix-ui/react-portal@1.1.17': + resolution: {integrity: sha512-vKQLcWypUnwZVvfV7UkGahH2g6ySe8M8R+zYBwPrv5byZ9QAW6cQVvNKo7GgmD+p8aYb6D9JBuvy8/WhOno2wQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1360,8 +1339,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-presence@1.1.7': - resolution: {integrity: sha512-zBZ4QM5XG3JRanDmqXYf3MD6th4AFXFmgU6KNMFzUaV6F3uw9I5/zjMUvFriSEn5ewo1nxuibvyxJdmLlDcslA==} + '@radix-ui/react-presence@1.1.10': + resolution: {integrity: sha512-3wyzCQ6+ubRA+D4uv9m95JYLXxmOHp05qjrkjeA7uKHHtjpPggQzc6DAb0URl7j67oR0K2foO4ip27TiX037Bw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1386,28 +1365,6 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-primitive@2.1.7': - resolution: {integrity: sha512-bC3NiwsprbxKjuon9l7X6BUTw7FPVzEYaL92MPEY5SCd/9hUTPXVFtVwRix7778wtRsVao+zE062gL79FZleeQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-slot@1.3.0': - resolution: {integrity: sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@radix-ui/react-slot@1.3.3': resolution: {integrity: sha512-qx7oqnYbxnK9kYI9m317qmFmEgo6ywqWvbTogdj7cL9p3/yx4M48p7Rnw5z3H890cL/ow/EeWJsuTykeZVXP5Q==} peerDependencies: @@ -1430,8 +1387,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-toast@1.2.19': - resolution: {integrity: sha512-SxfVZfVOibWKWdkf0Xx1awW2d09fQu4V4PXDY1j5hi4MVf7MWdJZqTBJMa1KWtOr1S6GGtCk02nniZ0Iia+dHw==} + '@radix-ui/react-toast@1.2.23': + resolution: {integrity: sha512-ofhyAsYaocRGOs/n0XWdUOSVzEAG6BfrMVM8z0c0kLEWY38w/0WuMFPTJP/HVaZPYkMvHZoKIIhNcjbTCBILPg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1443,17 +1400,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-use-callback-ref@1.1.2': - resolution: {integrity: sha512-xCso9j1/u8sEgP1RNHjFrXJLApL8LiqOkI1R4ywuN00rxWdYg4oQXuwKLS3i0j5NWLromUD27/4nlxj2UFVvIw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-controllable-state@1.2.3': - resolution: {integrity: sha512-PLzC90MS+ReootmjC597dvopoelpZ8Q61HJkDXZSExitIq7PL55vHNnesAHwguHK0aPfBnpdNzQtv1uliaqQrA==} + '@radix-ui/react-use-callback-ref@1.1.4': + resolution: {integrity: sha512-R6OUY2e2fA6Yn6s+VSx5KBV6Nx8LQEhu+cz7LCej18rQ1HLyg9PSC9jP/ZNx0o6FAIK9c0F1kHylzSxKsdlkrQ==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1470,15 +1418,6 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-effect-event@0.0.3': - resolution: {integrity: sha512-6c8ZqvPTWILEKnyVkP53EGRCcpnJiKTC21sS/6R1GF5xKyHJJWQEPfkqlcgUkdRQivd6tb23abUwe4ngWmY0JA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@radix-ui/react-use-effect-event@0.0.5': resolution: {integrity: sha512-7cshFL8HGS/7HEiHH+9kL9HBwp2sa9yX18Knwek6KYWmXwM7pegMgta2AXMQKI+rq3JnfSj9x8wYqFMTdG1Jgg==} peerDependencies: @@ -1488,15 +1427,6 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-layout-effect@1.1.2': - resolution: {integrity: sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@radix-ui/react-use-layout-effect@1.1.4': resolution: {integrity: sha512-K20DkRkUwDnxEYMBPcg3Y6voLkEy5p5QQmszZgLngKKiC7dzBR/aEuK3w1qlx2JWDUNH6FluahYdgR3BP+QbYw==} peerDependencies: @@ -1515,8 +1445,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-visually-hidden@1.2.7': - resolution: {integrity: sha512-1wNZBggTDK3GRuuQ6nP4k2yi7a6l7I5qbMPbZcRsrGsGVead/f/d5FhEzUvqFs0bcrDLx7n1zKQ3JvLR6whaaw==} + '@radix-ui/react-visually-hidden@1.2.11': + resolution: {integrity: sha512-NFS86RYYZb4/exihaESBGOpMJFz8MGLAfu3mOBSGByVnVPC9JPASfYubxd/8KbkQK0sYAv8lVQDEQukDX/qXvQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1954,8 +1884,8 @@ packages: '@types/superagent@8.1.10': resolution: {integrity: sha512-nbt4IWXABhW0jGmmpRzCFNlbmwCTzZ2gTUsNIr+X+ItdqPms+PAJZbWsNzpS2USqXjcoNLQcO6nXo60zcPQiIg==} - '@types/supertest@7.2.0': - resolution: {integrity: sha512-uh2Lv57xvggst6lCqNdFAmDSvoMG7M/HDtX4iUCquxQ5EGPtaPM5PL5Hmi7LCvOG8db7YaCPNJEeoI8s/WzIQw==} + '@types/supertest@7.2.1': + resolution: {integrity: sha512-4CbBvoYVLHL7+yhbYrZET0vsvuyXTC05aRe7dNQkwMzm56auceoy6Yu3K50uZmwfHna1os3CMSgM/3QVkUtPTw==} '@types/tar@6.1.13': resolution: {integrity: sha512-IznnlmU5f4WcGTh2ltRu/Ijpmk8wiWXfF0VA4s+HPjHZgvFggk1YaIkbo5krX/zUCzWF8N/l4+W/LNxnvAJ8nw==} @@ -1998,11 +1928,11 @@ packages: typescript: optional: true - '@typescript-eslint/eslint-plugin@8.63.0': - resolution: {integrity: sha512-rvwSgqT+DHpWdzfSzPatRLm02a0GlESt++9iy3hLCDY4BgkaLcl8LBi9Yh7XGFBpwcBE/K3024QuXWTpbz4FfQ==} + '@typescript-eslint/eslint-plugin@8.65.0': + resolution: {integrity: sha512-IEgob78X12rHpUmtcwFsXhZdVGJtwTVP8FiCLZkR6GlYVrl2PcuB+KhCE5BlVC/eQpQnu8WXRtkHZuPar+gCRA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.63.0 + '@typescript-eslint/parser': ^8.65.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' @@ -2016,15 +1946,15 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.63.0': - resolution: {integrity: sha512-gwh4gvvlaVDKKxyfxMG+Gnu1u9X0OQBwyGLkbwB65dIzBKnxeRiJlNFqlI3zwVhNXJIs6qV7mlFCn/BIajlVig==} + '@typescript-eslint/parser@8.65.0': + resolution: {integrity: sha512-CZ4nMxWwgu1HEEFNkeaCptra9QCtkmKdgf3sWh1rl1trIhmxLilgTV4cwcbQ4wemnT4sWQN8CaKOmdYx+g2gMA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.63.0': - resolution: {integrity: sha512-e5dh0/UI0ok53AlZ5wRkXCB32z/f2jUZqPR/ygAw5WYaSw8j9EoJWlS7wQjr/dmOaqWjnPIn2m+HhVPCMWGZVQ==} + '@typescript-eslint/project-service@8.65.0': + resolution: {integrity: sha512-SxnPhbTsGahizDgbu7oqFH/xVtzIqMd/s+WtnSxNxJZJpLbdT5IPdzg8EZxO3+PoKahXmwJLeNQOpKJb3/bi7Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' @@ -2033,12 +1963,12 @@ packages: resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@8.63.0': - resolution: {integrity: sha512-uUyfMWCnDSN8bCpcrY8nGP2BLkQ9Xn0GsipcONcpIDWhwhO4ZSyHvyS14U3X75mzxWxL3I2UZIrenTzdzcJO8A==} + '@typescript-eslint/scope-manager@8.65.0': + resolution: {integrity: sha512-Esbl8OSYiVxBokYgWPf7VVWg/BE798wXhimnn9ML9Pt5qoDf8bfQlgjlKXR/k98+AcNzlLKYrpCcrcuZ9DZLgg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.63.0': - resolution: {integrity: sha512-sUAbkulqBAsncKnbRP3+7CtQFRKicexnj7ZwNC6ddCR7EmrXvjvdCYMJbUIqMd6lwoEriZjwLo08aS5tSjVMHg==} + '@typescript-eslint/tsconfig-utils@8.65.0': + resolution: {integrity: sha512-j6GzGqCiRdA7Qhur2VVmKZAkBLfnHFQfx4TaJGL9RMveZqCo48jSHHO0DTgizEnGhtWnqmbtCUSrqSkdiY/0Hg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' @@ -2053,8 +1983,8 @@ packages: typescript: optional: true - '@typescript-eslint/type-utils@8.63.0': - resolution: {integrity: sha512-Nzzh/OGxVCOjObjaj1CQF2RUasyYy2Jfuh+zZ3PjLzG2fYRriAiZLib9UKtO+CpQAS3YHiAS+ckZDclwqI1TPA==} + '@typescript-eslint/type-utils@8.65.0': + resolution: {integrity: sha512-YjaZ7PRI5qY7ax2L3PbvX0rRyGtipAReCWs0mhhDBHjH/vl0g0BonaGXrKdKpMbIIsMIwDgbk/xzkBTyAltS5g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -2064,8 +1994,8 @@ packages: resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@8.63.0': - resolution: {integrity: sha512-xyLtl9DUBBFrcJS4x2pIqGLH68/tC2uOa4Z7pUteW09D3bXnnXUom4dyPikzWgB7llmIc1zoeI3aoUdC4rPK/Q==} + '@typescript-eslint/types@8.65.0': + resolution: {integrity: sha512-JSSwWNy+H0E/01jJEM+hrX6N0OFDzFzeIhHFSAS01tlVaevpG8cFyYRPhS5yjGOvBUx3sqQHVMjCL1CAZZMxBg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@7.18.0': @@ -2077,8 +2007,8 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.63.0': - resolution: {integrity: sha512-ygBkU+B7ex5UI/gKhaqexWev79uISfIv7XQCRNYO/jmD8rGLPyWLAb3KMRT6nd8Gt9bmUBi9+iX6tBdYfOY81Q==} + '@typescript-eslint/typescript-estree@8.65.0': + resolution: {integrity: sha512-JboAE2swaYt4tb1fHhHTABE2K+OLy09XfcTbhnk4Pw96f9dd2e9iYsJ28gBggHlo5z5x1rkyWvcPoTuNTd4oGg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' @@ -2089,8 +2019,8 @@ packages: peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/utils@8.63.0': - resolution: {integrity: sha512-fUKaeAvrTuQg/Tgt3nliAUSZHJM6DlCcfyEmxCvlX8kieWSStBX+5O5Fnidtc3i2JrH+9c/GL4RY2iasd/GPTA==} + '@typescript-eslint/utils@8.65.0': + resolution: {integrity: sha512-gXiwIHsYreboxeJucHKPvgwl7dXt50mF8s1/c00cP/WoVTyWKFdtfhRWwZiXYFU5H2O8vVoSLNrexFZjYS/SGA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -2100,8 +2030,8 @@ packages: resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@8.63.0': - resolution: {integrity: sha512-UexrHGnGTpbuQHct2ExOc2ZcFbGUS9FOesCxxqdBGcpI1BxYu/LZ6U8Aq6/72XtF/qRBk9nhuGHFJIXXMhPMdw==} + '@typescript-eslint/visitor-keys@8.65.0': + resolution: {integrity: sha512-8C71BQkGjiMmXtop7pHVJu1l2NNShFdkCyD6a2ezzs5vU/L3LRtb69EtcteFwz0mYMPzIgOw0n6OV4VBUWZd7A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript/typescript-aix-ppc64@7.0.2': @@ -2312,8 +2242,8 @@ packages: cpu: [x64] os: [win32] - '@vitejs/plugin-react@6.0.3': - resolution: {integrity: sha512-vmFvco5/QuC2f9Oj+wTk0+9XeDFkHxSamwZKYc7MxYwKICfvUvlMhqKI0VuICPltGqh1neqBKDvO4kes1ya8vg==} + '@vitejs/plugin-react@6.0.4': + resolution: {integrity: sha512-XcCQz0TBpBgljhj0gMuuDj49i6Ytqh5q1osT/Gp5uAVJUCTWxyskk/l1jwYYiu2xcNHHipdMz40EGfM1VdamVg==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: '@rolldown/plugin-babel': ^0.1.7 || ^0.2.0 @@ -3313,8 +3243,8 @@ packages: resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint@10.6.0: - resolution: {integrity: sha512-6lVbcqSodALYo+4ELD0heG6lFiFxnLMuLkiMi2qV8LMp54N8tE8FT1GMH+ev4Ti00nFjNze2+Su6DsV5OQW3Dg==} + eslint@10.8.0: + resolution: {integrity: sha512-nuKKvN+oIBO0koN7Tm7dlkmnkc21mtt0QJLwAKzjLq14y6lRTdVG36MZHJ8eQHwdJMwZbQNMlPOYedMq/oVJvQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: @@ -3687,8 +3617,8 @@ packages: html-entities@2.6.0: resolution: {integrity: sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==} - html-parse-stringify@3.0.1: - resolution: {integrity: sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==} + html-parse-stringify@4.0.1: + resolution: {integrity: sha512-0zHsZJrK7S3K2aucXWL6ycoYJ/iNtIcFHC/nYQgFklPtrv5LpJctIiSCroWZWeuoXvuyFdzp6KzjJQ+OT5MfFw==} html-to-docx@1.8.0: resolution: {integrity: sha512-IiMBWIqXM4+cEsW//RKoonWV7DlXAJBmmKI73XJSVWTIXjGUaxSr2ck1jqzVRZknpvO8xsFnVicldKVAWrBYBA==} @@ -4227,8 +4157,8 @@ packages: resolution: {integrity: sha512-DqC6n3QQ77zdFpCMASA1a3Jlb64Hv2N2DciFGkO/4L9+q/IpIAuRlKOvCXabtRW6cQf8usbmM6BE/TOPysCdIA==} engines: {bun: '>=1.0.0', deno: '>=1.30.0', node: '>=8.0.0'} - lucide-react@1.23.0: - resolution: {integrity: sha512-38BpJcD0JhFosxHApP/BYsBetLpQFRoTRzEzstM/XCc3jsAG7wqaY1lgVwxiUe3xqYE+lNxo2PkCmYwXWrwwIw==} + lucide-react@1.27.0: + resolution: {integrity: sha512-rJicGl/3Fly/E0rOH1YmPZ6e49JCnKknh1ox1vpHnkfjujAkKA6sqUZvH3MTAaXXjgexyUwgNwTJzTtYuAFYJw==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -4420,6 +4350,11 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + nanoid@3.3.16: + resolution: {integrity: sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + nanoid@6.0.0: resolution: {integrity: sha512-mkUH+rPkwU2qPadJ0oJZOjeZ5Mxn8Q1UhevwkTRWNuUZzyia3h4rhzK39hxaHTk0o2OxB8W2SQ6A8k23ZDi1pQ==} engines: {node: ^22 || ^24 || >=26} @@ -4584,8 +4519,8 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} - oxc-minify@0.139.0: - resolution: {integrity: sha512-RC814aVzfb73cj/I5IVmN3MpGO/SKPvubT3nRYWtMD5WVeg87PWn/VX6/P3sWr0WI8a39WN9Cwckmp5nuZvY5w==} + oxc-minify@0.141.0: + resolution: {integrity: sha512-+T/r+nBaKTT7UL5WDZHH8+l0bz+IZ495jHXiY2J6DWYkJXKrBCQRBS+u+hmlnhRfC5b0Uq1poZs0FLVMiDAmbw==} engines: {node: ^20.19.0 || >=22.12.0} p-limit@3.1.0: @@ -4729,6 +4664,10 @@ packages: resolution: {integrity: sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.23: + resolution: {integrity: sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==} + engines: {node: ^10 || ^12 || >=14} + postgres-array@2.0.0: resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} engines: {node: '>=4'} @@ -4820,19 +4759,19 @@ packages: resolution: {integrity: sha512-TMHtwexrgOt9VJ2E5JF9RO8mRXGNgC5wXvKkc5AVSJUt1L5gxvjg7eiCQl96EqUEpCWrnNEkCnbAplYtyuq1IA==} engines: {node: '>=22'} - react-dom@19.2.7: - resolution: {integrity: sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==} + react-dom@19.2.8: + resolution: {integrity: sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==} peerDependencies: - react: ^19.2.7 + react: ^19.2.8 - react-hook-form@7.81.0: - resolution: {integrity: sha512-ocbmr2p5KBMoAfj4WCUvped33lVi1Kd5DuDUvQDnB6VEAacOjPI/jMbtDdbhco4y9ct4xUuCmMY0b/C9L0QHjw==} + react-hook-form@7.83.0: + resolution: {integrity: sha512-AXt8cMCmx5a7u4uvpb2uRFVrWQhllI4pV+LSykxIac/hjt44TnQkmX9BKuQi2i+LDC62esmiLpilkav+kjVf/A==} engines: {node: '>=18.0.0'} peerDependencies: react: ^16.8.0 || ^17 || ^18 || ^19 - react-i18next@17.0.9: - resolution: {integrity: sha512-buLzOSqHtXxjf+qgSrLWNTXVZ1jSwO6kUv3uJqSP1roGBPgNnbhFm7OmdVwWcgf2gIbUyP0J333uPyx+Btsi3w==} + react-i18next@17.0.11: + resolution: {integrity: sha512-cDtkXgxjuFTWUH6V+aQn1Ve5vDiUztCNPWW5GtSHDccsgRXO1nE6QFWCEmc1KAutrb3OUv87wFShJL5RhUwPXg==} peerDependencies: i18next: '>= 26.2.0' react: '>= 16.8.0' @@ -4894,8 +4833,8 @@ packages: '@types/react': optional: true - react@19.2.7: - resolution: {integrity: sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==} + react@19.2.8: + resolution: {integrity: sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==} engines: {node: '>=0.10.0'} readable-stream@2.3.8: @@ -5131,8 +5070,8 @@ packages: set-cookie-parser@2.7.2: resolution: {integrity: sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==} - set-cookie-parser@3.1.1: - resolution: {integrity: sha512-vM9SUhjsUYs6UeJUmygc5Ofm5eQGe85riob5ju6XCgFGJI5PLV4nrDAQpQjd+LkFBpAkADn5BQQpZ9EUNkyLuA==} + set-cookie-parser@3.1.2: + resolution: {integrity: sha512-5/r/lTwbJ3zQ+qwdUFZYeRNqda7P5HD8zQKqlSjdGt1/S0cjLAphHusj4Y58ahDtWn/g32xrIS58/ikOvwl0Lw==} set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} @@ -5186,8 +5125,8 @@ packages: signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - sinon@22.0.0: - resolution: {integrity: sha512-sq/6DpdXOrLyfbKlXLg/Usc7xu8YXPeLkOFZRvA3bNUSA2lhbrZ06yuXbH1fkzBPCbz9O10+7hznzUsjaYNm0Q==} + sinon@22.1.0: + resolution: {integrity: sha512-n1ajF2rBWMTtEwbKcw4UdFg4nCnDdq/U6RDoxtOd7oapOlRoJ5ynwFx60owROyhDpA9QhMZi0pCO/xtmwFjG7w==} slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} @@ -5737,6 +5676,49 @@ packages: yaml: optional: true + vite@8.1.5: + resolution: {integrity: sha512-7ULLwsCdYx/nRyrpiEwvqb5TFHrMVZyBt+rg/OAXT7rgj/z+DtTDyKFeLAdDkubDVDKD8jOsndmy7m55XcfUsw==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + '@vitejs/devtools': ^0.3.0 + esbuild: '>=0.28.1' + 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 + vitepress@2.0.0-alpha.18: resolution: {integrity: sha512-Lk1G2/QqSf+MwNLICl9fmzWOtoCEwjZoWgaQy41QvWTfcGpLE9XwJDbcCyES/9rj6R2g1zFqFvLVkYKLLDALFw==} hasBin: true @@ -5790,10 +5772,6 @@ packages: jsdom: optional: true - void-elements@3.1.0: - resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} - engines: {node: '>=0.10.0'} - vue@3.5.39: resolution: {integrity: sha512-xmZCYabFGcirU8r0fTuvl/LICc1OU620rnqepaJDL/a141ZigkG7AyaxQLdqJ02ZRYzWe6YPaDHeQx7MfknQfA==} peerDependencies: @@ -6420,19 +6398,14 @@ snapshots: '@esbuild/win32-x64@0.28.1': optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@10.6.0(supports-color@8.1.1))': + '@eslint-community/eslint-utils@4.9.1(eslint@10.8.0)': dependencies: - eslint: 10.6.0(supports-color@8.1.1) - eslint-visitor-keys: 3.4.3 - - '@eslint-community/eslint-utils@4.9.1(eslint@10.6.0)': - dependencies: - eslint: 10.6.0 + eslint: 10.8.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} - '@eslint/config-array@0.23.5(supports-color@8.1.1)': + '@eslint/config-array@0.23.5': dependencies: '@eslint/object-schema': 3.0.5 debug: 4.4.3(supports-color@8.1.1) @@ -6440,7 +6413,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.6.0': + '@eslint/config-helpers@0.7.0': dependencies: '@eslint/core': 1.2.1 @@ -6535,6 +6508,13 @@ snapshots: '@tybys/wasm-util': 0.10.3 optional: true + '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)': + dependencies: + '@emnapi/core': 1.11.2 + '@emnapi/runtime': 1.11.2 + '@tybys/wasm-util': 0.10.3 + optional: true + '@noble/ciphers@1.3.0': {} '@noble/hashes@1.8.0': {} @@ -6597,68 +6577,68 @@ snapshots: '@opentelemetry/semantic-conventions@1.42.0': {} - '@oxc-minify/binding-android-arm-eabi@0.139.0': + '@oxc-minify/binding-android-arm-eabi@0.141.0': optional: true - '@oxc-minify/binding-android-arm64@0.139.0': + '@oxc-minify/binding-android-arm64@0.141.0': optional: true - '@oxc-minify/binding-darwin-arm64@0.139.0': + '@oxc-minify/binding-darwin-arm64@0.141.0': optional: true - '@oxc-minify/binding-darwin-x64@0.139.0': + '@oxc-minify/binding-darwin-x64@0.141.0': optional: true - '@oxc-minify/binding-freebsd-x64@0.139.0': + '@oxc-minify/binding-freebsd-x64@0.141.0': optional: true - '@oxc-minify/binding-linux-arm-gnueabihf@0.139.0': + '@oxc-minify/binding-linux-arm-gnueabihf@0.141.0': optional: true - '@oxc-minify/binding-linux-arm-musleabihf@0.139.0': + '@oxc-minify/binding-linux-arm-musleabihf@0.141.0': optional: true - '@oxc-minify/binding-linux-arm64-gnu@0.139.0': + '@oxc-minify/binding-linux-arm64-gnu@0.141.0': optional: true - '@oxc-minify/binding-linux-arm64-musl@0.139.0': + '@oxc-minify/binding-linux-arm64-musl@0.141.0': optional: true - '@oxc-minify/binding-linux-ppc64-gnu@0.139.0': + '@oxc-minify/binding-linux-ppc64-gnu@0.141.0': optional: true - '@oxc-minify/binding-linux-riscv64-gnu@0.139.0': + '@oxc-minify/binding-linux-riscv64-gnu@0.141.0': optional: true - '@oxc-minify/binding-linux-riscv64-musl@0.139.0': + '@oxc-minify/binding-linux-riscv64-musl@0.141.0': optional: true - '@oxc-minify/binding-linux-s390x-gnu@0.139.0': + '@oxc-minify/binding-linux-s390x-gnu@0.141.0': optional: true - '@oxc-minify/binding-linux-x64-gnu@0.139.0': + '@oxc-minify/binding-linux-x64-gnu@0.141.0': optional: true - '@oxc-minify/binding-linux-x64-musl@0.139.0': + '@oxc-minify/binding-linux-x64-musl@0.141.0': optional: true - '@oxc-minify/binding-openharmony-arm64@0.139.0': + '@oxc-minify/binding-openharmony-arm64@0.141.0': optional: true - '@oxc-minify/binding-wasm32-wasi@0.139.0': + '@oxc-minify/binding-wasm32-wasi@0.141.0': dependencies: - '@emnapi/core': 1.11.1 - '@emnapi/runtime': 1.11.1 - '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) + '@emnapi/core': 1.11.2 + '@emnapi/runtime': 1.11.2 + '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) optional: true - '@oxc-minify/binding-win32-arm64-msvc@0.139.0': + '@oxc-minify/binding-win32-arm64-msvc@0.141.0': optional: true - '@oxc-minify/binding-win32-ia32-msvc@0.139.0': + '@oxc-minify/binding-win32-ia32-msvc@0.141.0': optional: true - '@oxc-minify/binding-win32-x64-msvc@0.139.0': + '@oxc-minify/binding-win32-x64-msvc@0.141.0': optional: true '@oxc-project/types@0.139.0': {} @@ -6671,251 +6651,201 @@ snapshots: dependencies: playwright: 1.61.1 - '@radix-ui/primitive@1.1.5': {} - '@radix-ui/primitive@1.1.7': {} - '@radix-ui/react-collection@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + '@radix-ui/react-collection@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-context': 1.2.0(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@radix-ui/react-slot': 1.3.0(@types/react@19.2.17)(react@19.2.7) - react: 19.2.7 - react-dom: 19.2.7(react@19.2.7) + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-slot': 1.3.3(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) optionalDependencies: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-compose-refs@1.1.3(@types/react@19.2.17)(react@19.2.7)': + '@radix-ui/react-compose-refs@1.1.5(@types/react@19.2.17)(react@19.2.8)': dependencies: - react: 19.2.7 + react: 19.2.8 optionalDependencies: '@types/react': 19.2.17 - '@radix-ui/react-compose-refs@1.1.5(@types/react@19.2.17)(react@19.2.7)': + '@radix-ui/react-context@1.2.2(@types/react@19.2.17)(react@19.2.8)': dependencies: - react: 19.2.7 + react: 19.2.8 optionalDependencies: '@types/react': 19.2.17 - '@radix-ui/react-context@1.2.0(@types/react@19.2.17)(react@19.2.7)': + '@radix-ui/react-dialog@1.1.23(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - react: 19.2.7 - optionalDependencies: - '@types/react': 19.2.17 - - '@radix-ui/react-context@1.2.2(@types/react@19.2.17)(react@19.2.7)': - dependencies: - react: 19.2.7 - optionalDependencies: - '@types/react': 19.2.17 - - '@radix-ui/react-dialog@1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': - dependencies: - '@radix-ui/primitive': 1.1.5 - '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-context': 1.2.0(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-dismissable-layer': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@radix-ui/react-focus-guards': 1.1.4(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-focus-scope': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@radix-ui/react-id': 1.1.2(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-portal': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@radix-ui/react-presence': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@radix-ui/react-slot': 1.3.0(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.17)(react@19.2.7) + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-focus-guards': 1.1.6(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-focus-scope': 1.1.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-id': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-slot': 1.3.3(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) aria-hidden: 1.2.6 - react: 19.2.7 - react-dom: 19.2.7(react@19.2.7) - react-remove-scroll: 2.7.2(@types/react@19.2.17)(react@19.2.7) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + react-remove-scroll: 2.7.2(@types/react@19.2.17)(react@19.2.8) optionalDependencies: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-dismissable-layer@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': - dependencies: - '@radix-ui/primitive': 1.1.5 - '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-use-effect-event': 0.0.3(@types/react@19.2.17)(react@19.2.7) - react: 19.2.7 - react-dom: 19.2.7(react@19.2.7) - optionalDependencies: - '@types/react': 19.2.17 - '@types/react-dom': 19.2.3(@types/react@19.2.17) - - '@radix-ui/react-focus-guards@1.1.4(@types/react@19.2.17)(react@19.2.7)': - dependencies: - react: 19.2.7 - optionalDependencies: - '@types/react': 19.2.17 - - '@radix-ui/react-focus-scope@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.17)(react@19.2.7) - react: 19.2.7 - react-dom: 19.2.7(react@19.2.7) - optionalDependencies: - '@types/react': 19.2.17 - '@types/react-dom': 19.2.3(@types/react@19.2.17) - - '@radix-ui/react-id@1.1.2(@types/react@19.2.17)(react@19.2.7)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.17)(react@19.2.7) - react: 19.2.7 - optionalDependencies: - '@types/react': 19.2.17 - - '@radix-ui/react-portal@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': - dependencies: - '@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.17)(react@19.2.7) - react: 19.2.7 - react-dom: 19.2.7(react@19.2.7) - optionalDependencies: - '@types/react': 19.2.17 - '@types/react-dom': 19.2.3(@types/react@19.2.17) - - '@radix-ui/react-presence@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.17)(react@19.2.7) - react: 19.2.7 - react-dom: 19.2.7(react@19.2.7) - optionalDependencies: - '@types/react': 19.2.17 - '@types/react-dom': 19.2.3(@types/react@19.2.17) - - '@radix-ui/react-primitive@2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': - dependencies: - '@radix-ui/react-slot': 1.3.3(@types/react@19.2.17)(react@19.2.7) - react: 19.2.7 - react-dom: 19.2.7(react@19.2.7) - optionalDependencies: - '@types/react': 19.2.17 - '@types/react-dom': 19.2.3(@types/react@19.2.17) - - '@radix-ui/react-primitive@2.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': - dependencies: - '@radix-ui/react-slot': 1.3.0(@types/react@19.2.17)(react@19.2.7) - react: 19.2.7 - react-dom: 19.2.7(react@19.2.7) - optionalDependencies: - '@types/react': 19.2.17 - '@types/react-dom': 19.2.3(@types/react@19.2.17) - - '@radix-ui/react-slot@1.3.0(@types/react@19.2.17)(react@19.2.7)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@19.2.7) - react: 19.2.7 - optionalDependencies: - '@types/react': 19.2.17 - - '@radix-ui/react-slot@1.3.3(@types/react@19.2.17)(react@19.2.7)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.7) - react: 19.2.7 - optionalDependencies: - '@types/react': 19.2.17 - - '@radix-ui/react-switch@1.3.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + '@radix-ui/react-dismissable-layer@1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: '@radix-ui/primitive': 1.1.7 - '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-use-size': 1.1.4(@types/react@19.2.17)(react@19.2.7) - react: 19.2.7 - react-dom: 19.2.7(react@19.2.7) + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-effect-event': 0.0.5(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) optionalDependencies: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-toast@1.2.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + '@radix-ui/react-focus-guards@1.1.6(@types/react@19.2.17)(react@19.2.8)': dependencies: - '@radix-ui/primitive': 1.1.5 - '@radix-ui/react-collection': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-context': 1.2.0(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-dismissable-layer': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@radix-ui/react-portal': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@radix-ui/react-presence': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-visually-hidden': 1.2.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - react: 19.2.7 - react-dom: 19.2.7(react@19.2.7) + react: 19.2.8 + optionalDependencies: + '@types/react': 19.2.17 + + '@radix-ui/react-focus-scope@1.1.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) optionalDependencies: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-use-callback-ref@1.1.2(@types/react@19.2.17)(react@19.2.7)': + '@radix-ui/react-id@1.1.4(@types/react@19.2.17)(react@19.2.8)': dependencies: - react: 19.2.7 + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 optionalDependencies: '@types/react': 19.2.17 - '@radix-ui/react-use-controllable-state@1.2.3(@types/react@19.2.17)(react@19.2.7)': + '@radix-ui/react-portal@1.1.17(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@radix-ui/react-use-effect-event': 0.0.3(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.17)(react@19.2.7) - react: 19.2.7 + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) + + '@radix-ui/react-presence@1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) + + '@radix-ui/react-primitive@2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + dependencies: + '@radix-ui/react-slot': 1.3.3(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) + + '@radix-ui/react-slot@1.3.3(@types/react@19.2.17)(react@19.2.8)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 optionalDependencies: '@types/react': 19.2.17 - '@radix-ui/react-use-controllable-state@1.2.6(@types/react@19.2.17)(react@19.2.7)': + '@radix-ui/react-switch@1.3.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: '@radix-ui/primitive': 1.1.7 - '@radix-ui/react-use-effect-event': 0.0.5(@types/react@19.2.17)(react@19.2.7) - '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.7) - react: 19.2.7 + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-size': 1.1.4(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) + + '@radix-ui/react-toast@1.2.23(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + dependencies: + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-visually-hidden': 1.2.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) + + '@radix-ui/react-use-callback-ref@1.1.4(@types/react@19.2.17)(react@19.2.8)': + dependencies: + react: 19.2.8 optionalDependencies: '@types/react': 19.2.17 - '@radix-ui/react-use-effect-event@0.0.3(@types/react@19.2.17)(react@19.2.7)': + '@radix-ui/react-use-controllable-state@1.2.6(@types/react@19.2.17)(react@19.2.8)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.17)(react@19.2.7) - react: 19.2.7 + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-use-effect-event': 0.0.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 optionalDependencies: '@types/react': 19.2.17 - '@radix-ui/react-use-effect-event@0.0.5(@types/react@19.2.17)(react@19.2.7)': + '@radix-ui/react-use-effect-event@0.0.5(@types/react@19.2.17)(react@19.2.8)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.7) - react: 19.2.7 + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 optionalDependencies: '@types/react': 19.2.17 - '@radix-ui/react-use-layout-effect@1.1.2(@types/react@19.2.17)(react@19.2.7)': + '@radix-ui/react-use-layout-effect@1.1.4(@types/react@19.2.17)(react@19.2.8)': dependencies: - react: 19.2.7 + react: 19.2.8 optionalDependencies: '@types/react': 19.2.17 - '@radix-ui/react-use-layout-effect@1.1.4(@types/react@19.2.17)(react@19.2.7)': + '@radix-ui/react-use-size@1.1.4(@types/react@19.2.17)(react@19.2.8)': dependencies: - react: 19.2.7 + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 optionalDependencies: '@types/react': 19.2.17 - '@radix-ui/react-use-size@1.1.4(@types/react@19.2.17)(react@19.2.7)': + '@radix-ui/react-visually-hidden@1.2.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.7) - react: 19.2.7 - optionalDependencies: - '@types/react': 19.2.17 - - '@radix-ui/react-visually-hidden@1.2.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': - dependencies: - '@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - react: 19.2.7 - react-dom: 19.2.7(react@19.2.7) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) optionalDependencies: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) @@ -7099,16 +7029,16 @@ snapshots: '@tanstack/query-devtools@5.101.4': {} - '@tanstack/react-query-devtools@5.101.4(@tanstack/react-query@5.101.4(react@19.2.7))(react@19.2.7)': + '@tanstack/react-query-devtools@5.101.4(@tanstack/react-query@5.101.4(react@19.2.8))(react@19.2.8)': dependencies: '@tanstack/query-devtools': 5.101.4 - '@tanstack/react-query': 5.101.4(react@19.2.7) - react: 19.2.7 + '@tanstack/react-query': 5.101.4(react@19.2.8) + react: 19.2.8 - '@tanstack/react-query@5.101.4(react@19.2.7)': + '@tanstack/react-query@5.101.4(react@19.2.8)': dependencies: '@tanstack/query-core': 5.101.4 - react: 19.2.7 + react: 19.2.8 '@tediousjs/connection-string@1.1.0': {} @@ -7338,7 +7268,7 @@ snapshots: '@types/node': 26.1.1 form-data: 4.0.6 - '@types/supertest@7.2.0': + '@types/supertest@7.2.1': dependencies: '@types/methods': 1.1.4 '@types/superagent': 8.1.10 @@ -7370,15 +7300,15 @@ snapshots: dependencies: '@types/node': 26.1.1 - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2)': + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.8.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.8.0)(supports-color@8.1.1)(typescript@7.0.2)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2) + '@typescript-eslint/parser': 7.18.0(eslint@10.8.0)(supports-color@8.1.1)(typescript@7.0.2) '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2) - '@typescript-eslint/utils': 7.18.0(eslint@10.6.0)(typescript@7.0.2) + '@typescript-eslint/type-utils': 7.18.0(eslint@10.8.0)(supports-color@8.1.1)(typescript@7.0.2) + '@typescript-eslint/utils': 7.18.0(eslint@10.8.0)(typescript@7.0.2) '@typescript-eslint/visitor-keys': 7.18.0 - eslint: 10.6.0 + eslint: 10.8.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -7388,15 +7318,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.63.0(@typescript-eslint/parser@8.63.0(eslint@10.6.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.6.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3)': + '@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0)(typescript@6.0.3))(eslint@10.8.0)(typescript@6.0.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.63.0(eslint@10.6.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) - '@typescript-eslint/scope-manager': 8.63.0 - '@typescript-eslint/type-utils': 8.63.0(eslint@10.6.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) - '@typescript-eslint/utils': 8.63.0(eslint@10.6.0(supports-color@8.1.1))(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.63.0 - eslint: 10.6.0(supports-color@8.1.1) + '@typescript-eslint/parser': 8.65.0(eslint@10.8.0)(typescript@6.0.3) + '@typescript-eslint/scope-manager': 8.65.0 + '@typescript-eslint/type-utils': 8.65.0(eslint@10.8.0)(typescript@6.0.3) + '@typescript-eslint/utils': 8.65.0(eslint@10.8.0)(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.65.0 + eslint: 10.8.0 ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.5.0(typescript@6.0.3) @@ -7404,35 +7334,35 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2)': + '@typescript-eslint/parser@7.18.0(eslint@10.8.0)(supports-color@8.1.1)(typescript@7.0.2)': dependencies: '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(supports-color@8.1.1)(typescript@7.0.2) '@typescript-eslint/visitor-keys': 7.18.0 debug: 4.4.3(supports-color@8.1.1) - eslint: 10.6.0 + eslint: 10.8.0 optionalDependencies: typescript: 7.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.63.0(eslint@10.6.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3)': + '@typescript-eslint/parser@8.65.0(eslint@10.8.0)(typescript@6.0.3)': dependencies: - '@typescript-eslint/scope-manager': 8.63.0 - '@typescript-eslint/types': 8.63.0 - '@typescript-eslint/typescript-estree': 8.63.0(supports-color@8.1.1)(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.63.0 + '@typescript-eslint/scope-manager': 8.65.0 + '@typescript-eslint/types': 8.65.0 + '@typescript-eslint/typescript-estree': 8.65.0(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.65.0 debug: 4.4.3(supports-color@8.1.1) - eslint: 10.6.0(supports-color@8.1.1) + eslint: 10.8.0 typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.63.0(supports-color@8.1.1)(typescript@6.0.3)': + '@typescript-eslint/project-service@8.65.0(typescript@6.0.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.63.0(typescript@6.0.3) - '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/tsconfig-utils': 8.65.0(typescript@6.0.3) + '@typescript-eslint/types': 8.65.0 debug: 4.4.3(supports-color@8.1.1) typescript: 6.0.3 transitivePeerDependencies: @@ -7443,34 +7373,34 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/scope-manager@8.63.0': + '@typescript-eslint/scope-manager@8.65.0': dependencies: - '@typescript-eslint/types': 8.63.0 - '@typescript-eslint/visitor-keys': 8.63.0 + '@typescript-eslint/types': 8.65.0 + '@typescript-eslint/visitor-keys': 8.65.0 - '@typescript-eslint/tsconfig-utils@8.63.0(typescript@6.0.3)': + '@typescript-eslint/tsconfig-utils@8.65.0(typescript@6.0.3)': dependencies: typescript: 6.0.3 - '@typescript-eslint/type-utils@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2)': + '@typescript-eslint/type-utils@7.18.0(eslint@10.8.0)(supports-color@8.1.1)(typescript@7.0.2)': dependencies: '@typescript-eslint/typescript-estree': 7.18.0(supports-color@8.1.1)(typescript@7.0.2) - '@typescript-eslint/utils': 7.18.0(eslint@10.6.0)(typescript@7.0.2) + '@typescript-eslint/utils': 7.18.0(eslint@10.8.0)(typescript@7.0.2) debug: 4.4.3(supports-color@8.1.1) - eslint: 10.6.0 + eslint: 10.8.0 ts-api-utils: 1.4.3(typescript@7.0.2) optionalDependencies: typescript: 7.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.63.0(eslint@10.6.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3)': + '@typescript-eslint/type-utils@8.65.0(eslint@10.8.0)(typescript@6.0.3)': dependencies: - '@typescript-eslint/types': 8.63.0 - '@typescript-eslint/typescript-estree': 8.63.0(supports-color@8.1.1)(typescript@6.0.3) - '@typescript-eslint/utils': 8.63.0(eslint@10.6.0(supports-color@8.1.1))(typescript@6.0.3) + '@typescript-eslint/types': 8.65.0 + '@typescript-eslint/typescript-estree': 8.65.0(typescript@6.0.3) + '@typescript-eslint/utils': 8.65.0(eslint@10.8.0)(typescript@6.0.3) debug: 4.4.3(supports-color@8.1.1) - eslint: 10.6.0(supports-color@8.1.1) + eslint: 10.8.0 ts-api-utils: 2.5.0(typescript@6.0.3) typescript: 6.0.3 transitivePeerDependencies: @@ -7478,7 +7408,7 @@ snapshots: '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/types@8.63.0': {} + '@typescript-eslint/types@8.65.0': {} '@typescript-eslint/typescript-estree@7.18.0(supports-color@8.1.1)(typescript@7.0.2)': dependencies: @@ -7495,12 +7425,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.63.0(supports-color@8.1.1)(typescript@6.0.3)': + '@typescript-eslint/typescript-estree@8.65.0(typescript@6.0.3)': dependencies: - '@typescript-eslint/project-service': 8.63.0(supports-color@8.1.1)(typescript@6.0.3) - '@typescript-eslint/tsconfig-utils': 8.63.0(typescript@6.0.3) - '@typescript-eslint/types': 8.63.0 - '@typescript-eslint/visitor-keys': 8.63.0 + '@typescript-eslint/project-service': 8.65.0(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.65.0(typescript@6.0.3) + '@typescript-eslint/types': 8.65.0 + '@typescript-eslint/visitor-keys': 8.65.0 debug: 4.4.3(supports-color@8.1.1) minimatch: 10.2.5 semver: 7.8.5 @@ -7510,24 +7440,24 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.18.0(eslint@10.6.0)(typescript@7.0.2)': + '@typescript-eslint/utils@7.18.0(eslint@10.8.0)(typescript@7.0.2)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.6.0) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.8.0) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(supports-color@8.1.1)(typescript@7.0.2) - eslint: 10.6.0 + eslint: 10.8.0 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.63.0(eslint@10.6.0(supports-color@8.1.1))(typescript@6.0.3)': + '@typescript-eslint/utils@8.65.0(eslint@10.8.0)(typescript@6.0.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.6.0(supports-color@8.1.1)) - '@typescript-eslint/scope-manager': 8.63.0 - '@typescript-eslint/types': 8.63.0 - '@typescript-eslint/typescript-estree': 8.63.0(supports-color@8.1.1)(typescript@6.0.3) - eslint: 10.6.0(supports-color@8.1.1) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.8.0) + '@typescript-eslint/scope-manager': 8.65.0 + '@typescript-eslint/types': 8.65.0 + '@typescript-eslint/typescript-estree': 8.65.0(typescript@6.0.3) + eslint: 10.8.0 typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -7537,9 +7467,9 @@ snapshots: '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.63.0': + '@typescript-eslint/visitor-keys@8.65.0': dependencies: - '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/types': 8.65.0 eslint-visitor-keys: 5.0.1 '@typescript/typescript-aix-ppc64@7.0.2': @@ -7659,10 +7589,10 @@ snapshots: '@unrs/rspack-resolver-binding-win32-x64-msvc@1.3.0': optional: true - '@vitejs/plugin-react@6.0.3(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1))': + '@vitejs/plugin-react@6.0.4(babel-plugin-react-compiler@19.1.0-rc.3)(vite@8.1.5(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1) + vite: 8.1.5(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1) optionalDependencies: babel-plugin-react-compiler: 19.1.0-rc.3 @@ -7681,13 +7611,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.10(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1))': + '@vitest/mocker@4.1.10(vite@8.1.5(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1))': dependencies: '@vitest/spy': 4.1.10 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1) + vite: 8.1.5(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1) '@vitest/pretty-format@4.1.10': dependencies: @@ -8582,24 +8512,24 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-compat-utils@0.5.1(eslint@10.6.0): + eslint-compat-utils@0.5.1(eslint@10.8.0): dependencies: - eslint: 10.6.0 + eslint: 10.8.0 semver: 7.8.5 - eslint-config-etherpad@4.0.5(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2): + eslint-config-etherpad@4.0.5(eslint@10.8.0)(supports-color@8.1.1)(typescript@7.0.2): dependencies: '@rushstack/eslint-patch': 1.16.1 - '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2) - '@typescript-eslint/parser': 7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2) - eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1) - eslint-plugin-cypress: 2.15.2(eslint@10.6.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@10.6.0) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1))(eslint@10.6.0) - eslint-plugin-mocha: 10.5.0(eslint@10.6.0) - eslint-plugin-n: 17.24.0(eslint@10.6.0)(typescript@7.0.2) - eslint-plugin-prefer-arrow: 1.2.3(eslint@10.6.0) - eslint-plugin-promise: 6.6.0(eslint@10.6.0) + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.8.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.8.0)(supports-color@8.1.1)(typescript@7.0.2) + '@typescript-eslint/parser': 7.18.0(eslint@10.8.0)(supports-color@8.1.1)(typescript@7.0.2) + eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.8.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.8.0))(eslint@10.8.0)(supports-color@8.1.1) + eslint-plugin-cypress: 2.15.2(eslint@10.8.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@10.8.0) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.8.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.8.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.8.0))(eslint@10.8.0)(supports-color@8.1.1))(eslint@10.8.0) + eslint-plugin-mocha: 10.5.0(eslint@10.8.0) + eslint-plugin-n: 17.24.0(eslint@10.8.0)(typescript@7.0.2) + eslint-plugin-prefer-arrow: 1.2.3(eslint@10.8.0) + eslint-plugin-promise: 6.6.0(eslint@10.8.0) eslint-plugin-you-dont-need-lodash-underscore: 6.14.0 transitivePeerDependencies: - eslint @@ -8616,51 +8546,51 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1): + eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.8.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.8.0))(eslint@10.8.0)(supports-color@8.1.1): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3(supports-color@8.1.1) - eslint: 10.6.0 + eslint: 10.8.0 get-tsconfig: 4.14.0 is-bun-module: 1.3.0 rspack-resolver: 1.3.0 stable-hash: 0.0.5 tinyglobby: 0.2.17 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1))(eslint@10.6.0) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.8.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.8.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.8.0))(eslint@10.8.0)(supports-color@8.1.1))(eslint@10.8.0) transitivePeerDependencies: - supports-color - eslint-module-utils@2.14.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1))(eslint@10.6.0): + eslint-module-utils@2.14.0(@typescript-eslint/parser@7.18.0(eslint@10.8.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.8.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.8.0))(eslint@10.8.0)(supports-color@8.1.1))(eslint@10.8.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2) - eslint: 10.6.0 + '@typescript-eslint/parser': 7.18.0(eslint@10.8.0)(supports-color@8.1.1)(typescript@7.0.2) + eslint: 10.8.0 eslint-import-resolver-node: 0.3.10 - eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1) + eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.8.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.8.0))(eslint@10.8.0)(supports-color@8.1.1) transitivePeerDependencies: - supports-color - eslint-plugin-cypress@2.15.2(eslint@10.6.0): + eslint-plugin-cypress@2.15.2(eslint@10.8.0): dependencies: - eslint: 10.6.0 + eslint: 10.8.0 globals: 13.24.0 - eslint-plugin-es-x@7.8.0(eslint@10.6.0): + eslint-plugin-es-x@7.8.0(eslint@10.8.0): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.6.0) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.8.0) '@eslint-community/regexpp': 4.12.2 - eslint: 10.6.0 - eslint-compat-utils: 0.5.1(eslint@10.6.0) + eslint: 10.8.0 + eslint-compat-utils: 0.5.1(eslint@10.8.0) - eslint-plugin-eslint-comments@3.2.0(eslint@10.6.0): + eslint-plugin-eslint-comments@3.2.0(eslint@10.8.0): dependencies: escape-string-regexp: 1.0.5 - eslint: 10.6.0 + eslint: 10.8.0 ignore: 5.3.2 - eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1))(eslint@10.6.0): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.8.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.8.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.8.0))(eslint@10.8.0)(supports-color@8.1.1))(eslint@10.8.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -8669,9 +8599,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 10.6.0 + eslint: 10.8.0 eslint-import-resolver-node: 0.3.10 - eslint-module-utils: 2.14.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.6.0))(eslint@10.6.0)(supports-color@8.1.1))(eslint@10.6.0) + eslint-module-utils: 2.14.0(@typescript-eslint/parser@7.18.0(eslint@10.8.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.8.0)(supports-color@8.1.1)(typescript@7.0.2))(eslint@10.8.0))(eslint@10.8.0)(supports-color@8.1.1))(eslint@10.8.0) hasown: 2.0.4 is-core-module: 2.16.2 is-glob: 4.0.3 @@ -8683,25 +8613,25 @@ snapshots: string.prototype.trimend: 1.0.10 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@10.6.0)(supports-color@8.1.1)(typescript@7.0.2) + '@typescript-eslint/parser': 7.18.0(eslint@10.8.0)(supports-color@8.1.1)(typescript@7.0.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-mocha@10.5.0(eslint@10.6.0): + eslint-plugin-mocha@10.5.0(eslint@10.8.0): dependencies: - eslint: 10.6.0 - eslint-utils: 3.0.0(eslint@10.6.0) + eslint: 10.8.0 + eslint-utils: 3.0.0(eslint@10.8.0) globals: 13.24.0 rambda: 7.5.0 - eslint-plugin-n@17.24.0(eslint@10.6.0)(typescript@7.0.2): + eslint-plugin-n@17.24.0(eslint@10.8.0)(typescript@7.0.2): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.6.0) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.8.0) enhanced-resolve: 5.24.2 - eslint: 10.6.0 - eslint-plugin-es-x: 7.8.0(eslint@10.6.0) + eslint: 10.8.0 + eslint-plugin-es-x: 7.8.0(eslint@10.8.0) get-tsconfig: 4.14.0 globals: 15.15.0 globrex: 0.1.2 @@ -8711,26 +8641,26 @@ snapshots: transitivePeerDependencies: - typescript - eslint-plugin-prefer-arrow@1.2.3(eslint@10.6.0): + eslint-plugin-prefer-arrow@1.2.3(eslint@10.8.0): dependencies: - eslint: 10.6.0 + eslint: 10.8.0 - eslint-plugin-promise@6.6.0(eslint@10.6.0): + eslint-plugin-promise@6.6.0(eslint@10.8.0): dependencies: - eslint: 10.6.0 + eslint: 10.8.0 - eslint-plugin-react-hooks@7.1.1(eslint@10.6.0(supports-color@8.1.1)): + eslint-plugin-react-hooks@7.1.1(eslint@10.8.0): dependencies: '@babel/core': 8.0.1 '@babel/parser': 7.29.7 - eslint: 10.6.0(supports-color@8.1.1) + eslint: 10.8.0 hermes-parser: 0.25.1 zod: 4.4.3 zod-validation-error: 4.0.2(zod@4.4.3) - eslint-plugin-react-refresh@0.5.3(eslint@10.6.0(supports-color@8.1.1)): + eslint-plugin-react-refresh@0.5.3(eslint@10.8.0): dependencies: - eslint: 10.6.0(supports-color@8.1.1) + eslint: 10.8.0 eslint-plugin-you-dont-need-lodash-underscore@6.14.0: dependencies: @@ -8743,9 +8673,9 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-utils@3.0.0(eslint@10.6.0): + eslint-utils@3.0.0(eslint@10.8.0): dependencies: - eslint: 10.6.0 + eslint: 10.8.0 eslint-visitor-keys: 2.1.0 eslint-visitor-keys@2.1.0: {} @@ -8754,47 +8684,12 @@ snapshots: eslint-visitor-keys@5.0.1: {} - eslint@10.6.0: + eslint@10.8.0: dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.6.0) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.8.0) '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.23.5(supports-color@8.1.1) - '@eslint/config-helpers': 0.6.0 - '@eslint/core': 1.2.1 - '@eslint/plugin-kit': 0.7.2 - '@humanfs/node': 0.16.8 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.9 - ajv: 6.15.0 - cross-spawn: 7.0.6 - debug: 4.4.3(supports-color@8.1.1) - escape-string-regexp: 4.0.0 - eslint-scope: 9.1.2 - eslint-visitor-keys: 5.0.1 - espree: 11.2.0 - esquery: 1.7.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 8.0.0 - find-up: 5.0.0 - glob-parent: 6.0.2 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - json-stable-stringify-without-jsonify: 1.0.1 - minimatch: 10.2.5 - natural-compare: 1.4.0 - optionator: 0.9.4 - transitivePeerDependencies: - - supports-color - - eslint@10.6.0(supports-color@8.1.1): - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.6.0(supports-color@8.1.1)) - '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.23.5(supports-color@8.1.1) - '@eslint/config-helpers': 0.6.0 + '@eslint/config-array': 0.23.5 + '@eslint/config-helpers': 0.7.0 '@eslint/core': 1.2.1 '@eslint/plugin-kit': 0.7.2 '@humanfs/node': 0.16.8 @@ -9279,9 +9174,7 @@ snapshots: html-entities@2.6.0: {} - html-parse-stringify@3.0.1: - dependencies: - void-elements: 3.1.0 + html-parse-stringify@4.0.1: {} html-to-docx@1.8.0: dependencies: @@ -9860,9 +9753,9 @@ snapshots: lru.min@1.1.4: {} - lucide-react@1.23.0(react@19.2.7): + lucide-react@1.27.0(react@19.2.8): dependencies: - react: 19.2.7 + react: 19.2.8 magic-string@0.30.21: dependencies: @@ -10055,6 +9948,8 @@ snapshots: nanoid@3.3.15: {} + nanoid@3.3.16: {} + nanoid@6.0.0: {} native-duplexpair@1.0.0: {} @@ -10197,9 +10092,9 @@ snapshots: dependencies: openapi-typescript-helpers: 0.1.0 - openapi-react-query@0.5.4(@tanstack/react-query@5.101.4(react@19.2.7))(openapi-fetch@0.17.0): + openapi-react-query@0.5.4(@tanstack/react-query@5.101.4(react@19.2.8))(openapi-fetch@0.17.0): dependencies: - '@tanstack/react-query': 5.101.4(react@19.2.7) + '@tanstack/react-query': 5.101.4(react@19.2.8) openapi-fetch: 0.17.0 openapi-typescript-helpers: 0.1.0 @@ -10249,28 +10144,28 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 - oxc-minify@0.139.0: + oxc-minify@0.141.0: optionalDependencies: - '@oxc-minify/binding-android-arm-eabi': 0.139.0 - '@oxc-minify/binding-android-arm64': 0.139.0 - '@oxc-minify/binding-darwin-arm64': 0.139.0 - '@oxc-minify/binding-darwin-x64': 0.139.0 - '@oxc-minify/binding-freebsd-x64': 0.139.0 - '@oxc-minify/binding-linux-arm-gnueabihf': 0.139.0 - '@oxc-minify/binding-linux-arm-musleabihf': 0.139.0 - '@oxc-minify/binding-linux-arm64-gnu': 0.139.0 - '@oxc-minify/binding-linux-arm64-musl': 0.139.0 - '@oxc-minify/binding-linux-ppc64-gnu': 0.139.0 - '@oxc-minify/binding-linux-riscv64-gnu': 0.139.0 - '@oxc-minify/binding-linux-riscv64-musl': 0.139.0 - '@oxc-minify/binding-linux-s390x-gnu': 0.139.0 - '@oxc-minify/binding-linux-x64-gnu': 0.139.0 - '@oxc-minify/binding-linux-x64-musl': 0.139.0 - '@oxc-minify/binding-openharmony-arm64': 0.139.0 - '@oxc-minify/binding-wasm32-wasi': 0.139.0 - '@oxc-minify/binding-win32-arm64-msvc': 0.139.0 - '@oxc-minify/binding-win32-ia32-msvc': 0.139.0 - '@oxc-minify/binding-win32-x64-msvc': 0.139.0 + '@oxc-minify/binding-android-arm-eabi': 0.141.0 + '@oxc-minify/binding-android-arm64': 0.141.0 + '@oxc-minify/binding-darwin-arm64': 0.141.0 + '@oxc-minify/binding-darwin-x64': 0.141.0 + '@oxc-minify/binding-freebsd-x64': 0.141.0 + '@oxc-minify/binding-linux-arm-gnueabihf': 0.141.0 + '@oxc-minify/binding-linux-arm-musleabihf': 0.141.0 + '@oxc-minify/binding-linux-arm64-gnu': 0.141.0 + '@oxc-minify/binding-linux-arm64-musl': 0.141.0 + '@oxc-minify/binding-linux-ppc64-gnu': 0.141.0 + '@oxc-minify/binding-linux-riscv64-gnu': 0.141.0 + '@oxc-minify/binding-linux-riscv64-musl': 0.141.0 + '@oxc-minify/binding-linux-s390x-gnu': 0.141.0 + '@oxc-minify/binding-linux-x64-gnu': 0.141.0 + '@oxc-minify/binding-linux-x64-musl': 0.141.0 + '@oxc-minify/binding-openharmony-arm64': 0.141.0 + '@oxc-minify/binding-wasm32-wasi': 0.141.0 + '@oxc-minify/binding-win32-arm64-msvc': 0.141.0 + '@oxc-minify/binding-win32-ia32-msvc': 0.141.0 + '@oxc-minify/binding-win32-x64-msvc': 0.141.0 p-limit@3.1.0: dependencies: @@ -10411,6 +10306,12 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postcss@8.5.23: + dependencies: + nanoid: 3.3.16 + picocolors: 1.1.1 + source-map-js: 1.2.1 + postgres-array@2.0.0: {} postgres-bytea@1.0.1: {} @@ -10495,68 +10396,68 @@ snapshots: bytes: 3.1.2 http-errors: 2.0.1 - react-dom@19.2.7(react@19.2.7): + react-dom@19.2.8(react@19.2.8): dependencies: - react: 19.2.7 + react: 19.2.8 scheduler: 0.27.0 - react-hook-form@7.81.0(react@19.2.7): + react-hook-form@7.83.0(react@19.2.8): dependencies: - react: 19.2.7 + react: 19.2.8 - react-i18next@17.0.9(i18next@26.3.6(typescript@6.0.3))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@6.0.3): + react-i18next@17.0.11(i18next@26.3.6(typescript@6.0.3))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3): dependencies: '@babel/runtime': 7.29.7 - html-parse-stringify: 3.0.1 + html-parse-stringify: 4.0.1 i18next: 26.3.6(typescript@6.0.3) - react: 19.2.7 - use-sync-external-store: 1.6.0(react@19.2.7) + react: 19.2.8 + use-sync-external-store: 1.6.0(react@19.2.8) optionalDependencies: - react-dom: 19.2.7(react@19.2.7) + react-dom: 19.2.8(react@19.2.8) typescript: 6.0.3 - react-remove-scroll-bar@2.3.8(@types/react@19.2.17)(react@19.2.7): + react-remove-scroll-bar@2.3.8(@types/react@19.2.17)(react@19.2.8): dependencies: - react: 19.2.7 - react-style-singleton: 2.2.3(@types/react@19.2.17)(react@19.2.7) + react: 19.2.8 + react-style-singleton: 2.2.3(@types/react@19.2.17)(react@19.2.8) tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.17 - react-remove-scroll@2.7.2(@types/react@19.2.17)(react@19.2.7): + react-remove-scroll@2.7.2(@types/react@19.2.17)(react@19.2.8): dependencies: - react: 19.2.7 - react-remove-scroll-bar: 2.3.8(@types/react@19.2.17)(react@19.2.7) - react-style-singleton: 2.2.3(@types/react@19.2.17)(react@19.2.7) + react: 19.2.8 + react-remove-scroll-bar: 2.3.8(@types/react@19.2.17)(react@19.2.8) + react-style-singleton: 2.2.3(@types/react@19.2.17)(react@19.2.8) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.2.17)(react@19.2.7) - use-sidecar: 1.1.3(@types/react@19.2.17)(react@19.2.7) + use-callback-ref: 1.3.3(@types/react@19.2.17)(react@19.2.8) + use-sidecar: 1.1.3(@types/react@19.2.17)(react@19.2.8) optionalDependencies: '@types/react': 19.2.17 - react-router-dom@7.18.1(react-dom@19.2.7(react@19.2.7))(react@19.2.7): + react-router-dom@7.18.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8): dependencies: - react: 19.2.7 - react-dom: 19.2.7(react@19.2.7) - react-router: 7.18.1(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + react-router: 7.18.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - react-router@7.18.1(react-dom@19.2.7(react@19.2.7))(react@19.2.7): + react-router@7.18.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8): dependencies: cookie: 1.1.1 - react: 19.2.7 + react: 19.2.8 set-cookie-parser: 2.7.2 optionalDependencies: - react-dom: 19.2.7(react@19.2.7) + react-dom: 19.2.8(react@19.2.8) - react-style-singleton@2.2.3(@types/react@19.2.17)(react@19.2.7): + react-style-singleton@2.2.3(@types/react@19.2.17)(react@19.2.8): dependencies: get-nonce: 1.0.1 - react: 19.2.7 + react: 19.2.8 tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.17 - react@19.2.7: {} + react@19.2.8: {} readable-stream@2.3.8: dependencies: @@ -10849,7 +10750,7 @@ snapshots: set-cookie-parser@2.7.2: {} - set-cookie-parser@3.1.1: {} + set-cookie-parser@3.1.2: {} set-function-length@1.2.2: dependencies: @@ -10926,7 +10827,7 @@ snapshots: signal-exit@3.0.7: {} - sinon@22.0.0: + sinon@22.1.0: dependencies: '@sinonjs/commons': 3.0.1 '@sinonjs/fake-timers': 15.4.0 @@ -11418,24 +11319,24 @@ snapshots: url-join@4.0.1: {} - use-callback-ref@1.3.3(@types/react@19.2.17)(react@19.2.7): + use-callback-ref@1.3.3(@types/react@19.2.17)(react@19.2.8): dependencies: - react: 19.2.7 + react: 19.2.8 tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.17 - use-sidecar@1.1.3(@types/react@19.2.17)(react@19.2.7): + use-sidecar@1.1.3(@types/react@19.2.17)(react@19.2.8): dependencies: detect-node-es: 1.1.0 - react: 19.2.7 + react: 19.2.8 tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.17 - use-sync-external-store@1.6.0(react@19.2.7): + use-sync-external-store@1.6.0(react@19.2.8): dependencies: - react: 19.2.7 + react: 19.2.8 util-deprecate@1.0.2: {} @@ -11469,10 +11370,10 @@ snapshots: x-is-array: 0.1.0 x-is-string: 0.1.0 - vite-plugin-babel@1.7.3(@babel/core@8.0.1)(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1)): + vite-plugin-babel@1.7.3(@babel/core@8.0.1)(vite@8.1.5(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1)): dependencies: '@babel/core': 8.0.1 - vite: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1) + vite: 8.1.5(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1) vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1): dependencies: @@ -11487,6 +11388,19 @@ snapshots: fsevents: 2.3.3 tsx: 4.23.1 + vite@8.1.5(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1): + dependencies: + lightningcss: 1.32.0 + picomatch: 4.0.5 + postcss: 8.5.23 + rolldown: 1.1.5 + tinyglobby: 0.2.17 + optionalDependencies: + '@types/node': 26.1.1 + esbuild: 0.28.1 + fsevents: 2.3.3 + tsx: 4.23.1 + vitepress@2.0.0-alpha.18(@types/node@26.1.1)(change-case@5.4.4)(esbuild@0.28.1)(jwt-decode@4.0.0)(postcss@8.5.16)(tsx@4.23.1)(typescript@6.0.3): dependencies: '@docsearch/css': 4.6.3 @@ -11536,10 +11450,10 @@ snapshots: - universal-cookie - yaml - vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1)): + vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(jsdom@29.1.1(@noble/hashes@1.8.0))(vite@8.1.5(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1)): dependencies: '@vitest/expect': 4.1.10 - '@vitest/mocker': 4.1.10(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1)) + '@vitest/mocker': 4.1.10(vite@8.1.5(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1)) '@vitest/pretty-format': 4.1.10 '@vitest/runner': 4.1.10 '@vitest/snapshot': 4.1.10 @@ -11556,7 +11470,7 @@ snapshots: tinyexec: 1.2.4 tinyglobby: 0.2.17 tinyrainbow: 3.1.0 - vite: 8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1) + vite: 8.1.5(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.1 @@ -11565,8 +11479,6 @@ snapshots: transitivePeerDependencies: - msw - void-elements@3.1.0: {} - vue@3.5.39(typescript@6.0.3): dependencies: '@vue/compiler-dom': 3.5.39 @@ -11734,10 +11646,10 @@ snapshots: zod@4.4.3: {} - zustand@5.0.14(@types/react@19.2.17)(react@19.2.7)(use-sync-external-store@1.6.0(react@19.2.7)): + zustand@5.0.14(@types/react@19.2.17)(react@19.2.8)(use-sync-external-store@1.6.0(react@19.2.8)): optionalDependencies: '@types/react': 19.2.17 - react: 19.2.7 - use-sync-external-store: 1.6.0(react@19.2.7) + react: 19.2.8 + use-sync-external-store: 1.6.0(react@19.2.8) zwitch@2.0.4: {} diff --git a/src/package.json b/src/package.json index 8cf5f53fd..9683909d6 100644 --- a/src/package.json +++ b/src/package.json @@ -116,19 +116,19 @@ "@types/pdfkit": "^0.17.6", "@types/semver": "^7.7.1", "@types/sinon": "^22.0.0", - "@types/supertest": "^7.2.0", + "@types/supertest": "^7.2.1", "@types/underscore": "^1.13.0", "@types/whatwg-mimetype": "^5.0.0", "chokidar": "^5.0.0", - "eslint": "^10.6.0", + "eslint": "^10.7.0", "eslint-config-etherpad": "^4.0.5", "etherpad-cli-client": "^4.0.3", "mocha": "^11.7.6", "mocha-froth": "^0.2.10", "nodeify": "^1.0.1", "openapi-schema-validation": "^0.4.2", - "set-cookie-parser": "^3.1.1", - "sinon": "^22.0.0", + "set-cookie-parser": "^3.1.2", + "sinon": "^22.1.0", "split-grid": "^1.0.11", "supertest": "^7.2.2", "typescript": "^7.0.0", diff --git a/ui/package.json b/ui/package.json index 578590117..d66f220c7 100644 --- a/ui/package.json +++ b/ui/package.json @@ -12,6 +12,6 @@ "devDependencies": { "ep_etherpad-lite": "workspace:../src", "typescript": "^6.0.3", - "vite": "^8.1.4" + "vite": "^8.1.5" } } From da03e99676a1d0befdbc61716bd0a70512cfc2a8 Mon Sep 17 00:00:00 2001 From: John McLear Date: Mon, 27 Jul 2026 20:34:47 +0100 Subject: [PATCH 73/74] docs: document docker-compose credential + TRUST_PROXY changes (#7907 follow-up) (#7908) #7907 made the production docker-compose require ADMIN_PASSWORD and the DB password (no insecure fallback) and defaulted TRUST_PROXY to false, but only changed docker-compose.yml. This brings the docs in line: - .env.default: document DOCKER_COMPOSE_APP_TRUST_PROXY (set true behind a trusted reverse proxy) and note ADMIN_PASSWORD is required (compose won't start while it's empty). - .env.dev.default: document the dev DOCKER_COMPOSE_APP_DEV_ENV_TRUST_PROXY. - README.md / doc/docker.md: update the embedded compose snippets to match the merged file (required ADMIN_PASSWORD/DB password, TRUST_PROXY default false). Co-authored-by: Claude Opus 4.8 (1M context) --- .env.default | 10 ++++++++++ .env.dev.default | 4 ++++ README.md | 8 ++++---- doc/docker.md | 8 ++++---- 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/.env.default b/.env.default index e9b560b72..d4254427e 100644 --- a/.env.default +++ b/.env.default @@ -11,8 +11,18 @@ DOCKER_COMPOSE_APP_PORT_TARGET=9001 # The env var DEFAULT_PAD_TEXT seems to be mandatory in the latest version of etherpad. DOCKER_COMPOSE_APP_DEV_ENV_DEFAULT_PAD_TEXT="Welcome to etherpad" +# REQUIRED. The /admin account password. docker-compose refuses to start while +# this is empty (the value has no insecure fallback). Set a strong value — the +# /admin UI can install plugins, which is arbitrary code execution. DOCKER_COMPOSE_APP_ADMIN_PASSWORD= +# Set to true ONLY when Etherpad runs behind a trusted reverse proxy that sets +# the X-Forwarded-* headers (Traefik, Nginx, Kubernetes Ingress, …). On a +# directly-exposed instance keep it false so clients can't spoof their IP. If you +# DO run behind a proxy you must set this to true, otherwise HTTPS detection +# (secure cookies) and client-IP / rate-limiting will be wrong. +DOCKER_COMPOSE_APP_TRUST_PROXY=false + DOCKER_COMPOSE_POSTGRES_DATABASE=db DOCKER_COMPOSE_POSTGRES_PASSWORD=etherpad-lite-password DOCKER_COMPOSE_POSTGRES_USER=etherpad-lite-user diff --git a/.env.dev.default b/.env.dev.default index b78b5599a..8aa1709f8 100644 --- a/.env.dev.default +++ b/.env.dev.default @@ -13,6 +13,10 @@ DOCKER_COMPOSE_APP_DEV_ENV_DEFAULT_PAD_TEXT="Welcome to etherpad" DOCKER_COMPOSE_APP_DEV_ADMIN_PASSWORD= +# docker-compose.dev.yml defaults this to true (dev convenience). Set to false if +# you are not running the dev container behind a reverse proxy. +DOCKER_COMPOSE_APP_DEV_ENV_TRUST_PROXY=true + DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_DATABASE=db DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_PASSWORD=etherpad-lite-password DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_USER=etherpad-lite-user \ No newline at end of file diff --git a/README.md b/README.md index 3be539f4c..b52dec31f 100644 --- a/README.md +++ b/README.md @@ -117,11 +117,11 @@ services: - postgres environment: NODE_ENV: production - ADMIN_PASSWORD: ${DOCKER_COMPOSE_APP_ADMIN_PASSWORD:-admin} + ADMIN_PASSWORD: "${DOCKER_COMPOSE_APP_ADMIN_PASSWORD:?Set DOCKER_COMPOSE_APP_ADMIN_PASSWORD to a strong value}" DB_CHARSET: ${DOCKER_COMPOSE_APP_DB_CHARSET:-utf8mb4} DB_HOST: postgres DB_NAME: ${DOCKER_COMPOSE_POSTGRES_DATABASE:-etherpad} - DB_PASS: ${DOCKER_COMPOSE_POSTGRES_PASSWORD:-admin} + DB_PASS: "${DOCKER_COMPOSE_POSTGRES_PASSWORD:?Set DOCKER_COMPOSE_POSTGRES_PASSWORD to a strong value}" DB_PORT: ${DOCKER_COMPOSE_POSTGRES_PORT:-5432} DB_TYPE: "postgres" DB_USER: ${DOCKER_COMPOSE_POSTGRES_USER:-admin} @@ -129,7 +129,7 @@ services: DEFAULT_PAD_TEXT: ${DOCKER_COMPOSE_APP_DEFAULT_PAD_TEXT:- } DISABLE_IP_LOGGING: ${DOCKER_COMPOSE_APP_DISABLE_IP_LOGGING:-false} SOFFICE: ${DOCKER_COMPOSE_APP_SOFFICE:-null} - TRUST_PROXY: ${DOCKER_COMPOSE_APP_TRUST_PROXY:-true} + TRUST_PROXY: ${DOCKER_COMPOSE_APP_TRUST_PROXY:-false} restart: always ports: - "${DOCKER_COMPOSE_APP_PORT_PUBLISHED:-9001}:${DOCKER_COMPOSE_APP_PORT_TARGET:-9001}" @@ -138,7 +138,7 @@ services: image: postgres:15-alpine environment: POSTGRES_DB: ${DOCKER_COMPOSE_POSTGRES_DATABASE:-etherpad} - POSTGRES_PASSWORD: ${DOCKER_COMPOSE_POSTGRES_PASSWORD:-admin} + POSTGRES_PASSWORD: "${DOCKER_COMPOSE_POSTGRES_PASSWORD:?Set DOCKER_COMPOSE_POSTGRES_PASSWORD to a strong value}" POSTGRES_PORT: ${DOCKER_COMPOSE_POSTGRES_PORT:-5432} POSTGRES_USER: ${DOCKER_COMPOSE_POSTGRES_USER:-admin} PGDATA: /var/lib/postgresql/data/pgdata diff --git a/doc/docker.md b/doc/docker.md index ad7d21f17..3e99c77cb 100644 --- a/doc/docker.md +++ b/doc/docker.md @@ -374,11 +374,11 @@ services: - postgres environment: NODE_ENV: production - ADMIN_PASSWORD: ${DOCKER_COMPOSE_APP_ADMIN_PASSWORD:-admin} + ADMIN_PASSWORD: "${DOCKER_COMPOSE_APP_ADMIN_PASSWORD:?Set DOCKER_COMPOSE_APP_ADMIN_PASSWORD to a strong value}" DB_CHARSET: ${DOCKER_COMPOSE_APP_DB_CHARSET:-utf8mb4} DB_HOST: postgres DB_NAME: ${DOCKER_COMPOSE_POSTGRES_DATABASE:-etherpad} - DB_PASS: ${DOCKER_COMPOSE_POSTGRES_PASSWORD:-admin} + DB_PASS: "${DOCKER_COMPOSE_POSTGRES_PASSWORD:?Set DOCKER_COMPOSE_POSTGRES_PASSWORD to a strong value}" DB_PORT: ${DOCKER_COMPOSE_POSTGRES_PORT:-5432} DB_TYPE: "postgres" DB_USER: ${DOCKER_COMPOSE_POSTGRES_USER:-admin} @@ -386,7 +386,7 @@ services: DEFAULT_PAD_TEXT: ${DOCKER_COMPOSE_APP_DEFAULT_PAD_TEXT:- } DISABLE_IP_LOGGING: ${DOCKER_COMPOSE_APP_DISABLE_IP_LOGGING:-false} SOFFICE: ${DOCKER_COMPOSE_APP_SOFFICE:-null} - TRUST_PROXY: ${DOCKER_COMPOSE_APP_TRUST_PROXY:-true} + TRUST_PROXY: ${DOCKER_COMPOSE_APP_TRUST_PROXY:-false} restart: always ports: - "${DOCKER_COMPOSE_APP_PORT_PUBLISHED:-9001}:${DOCKER_COMPOSE_APP_PORT_TARGET:-9001}" @@ -395,7 +395,7 @@ services: image: postgres:15-alpine environment: POSTGRES_DB: ${DOCKER_COMPOSE_POSTGRES_DATABASE:-etherpad} - POSTGRES_PASSWORD: ${DOCKER_COMPOSE_POSTGRES_PASSWORD:-admin} + POSTGRES_PASSWORD: "${DOCKER_COMPOSE_POSTGRES_PASSWORD:?Set DOCKER_COMPOSE_POSTGRES_PASSWORD to a strong value}" POSTGRES_PORT: ${DOCKER_COMPOSE_POSTGRES_PORT:-5432} POSTGRES_USER: ${DOCKER_COMPOSE_POSTGRES_USER:-admin} PGDATA: /var/lib/postgresql/data/pgdata From f8686dda1043b4003efe0d06afce2aea68d814aa Mon Sep 17 00:00:00 2001 From: Alazar Keneni <112463751+alazarlemma02@users.noreply.github.com> Date: Mon, 27 Jul 2026 22:44:30 +0300 Subject: [PATCH 74/74] docker: make `plugin_packages` volume mountpoint writable (#8042) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docker: prepare plugin volume mountpoint Create src/plugin_packages in the development and production runtime image stages so a fresh Docker named volume is initialized with Etherpad user ownership instead of root-only ownership. Fixes #8026 * tests: align docker plugin volume regression test with project style Replace CommonJS imports with Node.js module imports and reformat the test to match the project's coding style. This change is purely stylistic and does not alter the regression test's behavior. * tests: make docker plugin volume test less brittle Match Dockerfile instructions with regexes instead of exact substrings so the regression test validates the required behavior without rejecting harmless formatting or equivalent command changes. * docker: explain the plugin_packages mountpoint, drop the Dockerfile-text test The reason the two `mkdir`s exist is not obvious from the Dockerfile, so state it where the next reader will be: a named volume inherits the mountpoint's ownership from the image, and USER is already etherpad at that point. Removes dockerfilePluginVolume.ts. It asserted that the Dockerfile *text* contains `mkdir -p ./src/plugin_packages` after the `COPY ./src` line — it fails when the Dockerfile is refactored (a `.gitkeep`, a `VOLUME`, a different order all keep the behaviour intact) and it cannot fail when the actual bug returns, since it never inspects a built image. The build-test job already builds both runtime stages. Co-Authored-By: Claude Opus 5 (1M context) --------- Co-authored-by: SamTV12345 <40429738+samtv12345@users.noreply.github.com> Co-authored-by: Claude Opus 5 (1M context) --- Dockerfile | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Dockerfile b/Dockerfile index be7a201ca..f0ad8351c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -171,6 +171,12 @@ ARG ETHERPAD_GITHUB_PLUGINS= COPY --chown=etherpad:etherpad ./src/ ./src/ COPY --chown=etherpad:etherpad --from=adminbuild /opt/etherpad-lite/src/templates/admin ./src/templates/admin COPY --chown=etherpad:etherpad --from=adminbuild /opt/etherpad-lite/src/static/oidc ./src/static/oidc +# docker-compose mounts a named volume over src/plugin_packages. Docker seeds a +# fresh named volume from the mountpoint in the image, so the directory has to +# exist here (owned by etherpad, since USER is already etherpad) — otherwise +# Docker creates it root:root and plugin installs cannot write install.lock. +# See ether/etherpad#8026. +RUN mkdir -p ./src/plugin_packages COPY --chown=etherpad:etherpad ./local_plugin[s] ./local_plugins/ @@ -203,6 +209,12 @@ RUN printf 'packages:\n - src\n - bin\nonlyBuiltDependencies:\n - esbuild\nig COPY --chown=etherpad:etherpad ./src ./src COPY --chown=etherpad:etherpad --from=adminbuild /opt/etherpad-lite/src/templates/admin ./src/templates/admin COPY --chown=etherpad:etherpad --from=adminbuild /opt/etherpad-lite/src/static/oidc ./src/static/oidc +# docker-compose mounts a named volume over src/plugin_packages. Docker seeds a +# fresh named volume from the mountpoint in the image, so the directory has to +# exist here (owned by etherpad, since USER is already etherpad) — otherwise +# Docker creates it root:root and plugin installs cannot write install.lock. +# See ether/etherpad#8026. +RUN mkdir -p ./src/plugin_packages COPY --chown=etherpad:etherpad ./local_plugin[s] ./local_plugins/