diff --git a/.config/docker_example.env b/.config/docker_example.env
index 4fe8e76b784b..c61248da2e46 100644
--- a/.config/docker_example.env
+++ b/.config/docker_example.env
@@ -1,5 +1,11 @@
+# misskey settings
+# MISSKEY_URL=https://example.tld/
+
# db settings
POSTGRES_PASSWORD=example-misskey-pass
+# DATABASE_PASSWORD=${POSTGRES_PASSWORD}
POSTGRES_USER=example-misskey-user
+# DATABASE_USER=${POSTGRES_USER}
POSTGRES_DB=misskey
+# DATABASE_DB=${POSTGRES_DB}
DATABASE_URL="postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}"
diff --git a/.config/docker_example.yml b/.config/docker_example.yml
index 42ac18de1b50..d347882d1a91 100644
--- a/.config/docker_example.yml
+++ b/.config/docker_example.yml
@@ -6,6 +6,7 @@
#───┘ URL └─────────────────────────────────────────────────────
# Final accessible URL seen by a user.
+# You can set url from an environment variable instead.
url: https://example.tld/
# ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE
@@ -38,9 +39,11 @@ db:
port: 5432
# Database name
+ # You can set db from an environment variable instead.
db: misskey
# Auth
+ # You can set user and pass from environment variables instead.
user: example-misskey-user
pass: example-misskey-pass
diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/compose.yml
similarity index 93%
rename from .devcontainer/docker-compose.yml
rename to .devcontainer/compose.yml
index 2809cd2ca469..d02d2a8f4a89 100644
--- a/.devcontainer/docker-compose.yml
+++ b/.devcontainer/compose.yml
@@ -1,5 +1,3 @@
-version: '3.8'
-
services:
app:
build:
@@ -8,6 +6,7 @@ services:
volumes:
- ../:/workspace:cached
+ - node_modules:/workspace/node_modules
command: sleep infinity
@@ -46,6 +45,7 @@ services:
volumes:
postgres-data:
redis-data:
+ node_modules:
networks:
internal_network:
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index 31b6212cb5c4..7ea23e314ea4 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -1,6 +1,6 @@
{
"name": "Misskey",
- "dockerComposeFile": "docker-compose.yml",
+ "dockerComposeFile": "compose.yml",
"service": "app",
"workspaceFolder": "/workspace",
"features": {
@@ -10,7 +10,7 @@
"ghcr.io/devcontainers-contrib/features/corepack:1": {}
},
"forwardPorts": [3000],
- "postCreateCommand": "sudo chmod 755 .devcontainer/init.sh && .devcontainer/init.sh",
+ "postCreateCommand": "/bin/bash .devcontainer/init.sh",
"customizations": {
"vscode": {
"extensions": [
diff --git a/.devcontainer/init.sh b/.devcontainer/init.sh
index 729e1a9d2d9d..55fb1e6fa687 100755
--- a/.devcontainer/init.sh
+++ b/.devcontainer/init.sh
@@ -2,7 +2,8 @@
set -xe
-sudo chown -R node /workspace
+sudo chown node node_modules
+git config --global --add safe.directory /workspace
git submodule update --init
corepack install
corepack enable
diff --git a/.dockerignore b/.dockerignore
index 1de0c7982bcd..7dbb06e1d0e6 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -7,7 +7,7 @@ Dockerfile
build/
built/
db/
-docker-compose.yml
+.devcontainer/compose.yml
node_modules/
packages/*/node_modules
redis/
@@ -28,4 +28,4 @@ fluent-emojis/
.idea/
packages/*/.vscode/
-packages/backend/test/docker-compose.yml
+packages/backend/test/compose.yml
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index e8b65dc3b9fc..5acad83336d3 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -2,3 +2,7 @@ contact_links:
- name: 💬 Misskey official Discord
url: https://discord.gg/Wp8gVStHW3
about: Chat freely about Misskey
+ # 仮
+ - name: 💬 Start discussion
+ url: https://github.com/misskey-dev/misskey/discussions
+ about: The official forum to join conversation and ask question
diff --git a/.github/workflows/api-misskey-js.yml b/.github/workflows/api-misskey-js.yml
index 1b7b68b14f05..e7db18316cb3 100644
--- a/.github/workflows/api-misskey-js.yml
+++ b/.github/workflows/api-misskey-js.yml
@@ -4,10 +4,11 @@ on:
push:
paths:
- packages/misskey-js/**
+ - .github/workflows/api-misskey-js.yml
pull_request:
paths:
- packages/misskey-js/**
-
+ - .github/workflows/api-misskey-js.yml
jobs:
report:
@@ -20,7 +21,7 @@ jobs:
- run: corepack enable
- name: Setup Node.js
- uses: actions/setup-node@v4.0.2
+ uses: actions/setup-node@v4.0.3
with:
node-version-file: '.node-version'
cache: 'pnpm'
diff --git a/.github/workflows/changelog-check.yml b/.github/workflows/changelog-check.yml
index f254af0d1fd0..d4e99f966ef0 100644
--- a/.github/workflows/changelog-check.yml
+++ b/.github/workflows/changelog-check.yml
@@ -14,7 +14,7 @@ jobs:
- name: Checkout head
uses: actions/checkout@v4.1.1
- name: Setup Node.js
- uses: actions/setup-node@v4.0.2
+ uses: actions/setup-node@v4.0.3
with:
node-version-file: '.node-version'
diff --git a/.github/workflows/check-misskey-js-autogen.yml b/.github/workflows/check-misskey-js-autogen.yml
index 39acad8bc348..3a2a2d5f8dd7 100644
--- a/.github/workflows/check-misskey-js-autogen.yml
+++ b/.github/workflows/check-misskey-js-autogen.yml
@@ -28,7 +28,7 @@ jobs:
- name: setup node
id: setup-node
- uses: actions/setup-node@v4.0.2
+ uses: actions/setup-node@v4.0.3
with:
node-version-file: '.node-version'
cache: pnpm
diff --git a/.github/workflows/check-misskey-js-version.yml b/.github/workflows/check-misskey-js-version.yml
index 325a893605b3..99c29ac974cf 100644
--- a/.github/workflows/check-misskey-js-version.yml
+++ b/.github/workflows/check-misskey-js-version.yml
@@ -6,12 +6,13 @@ on:
paths:
- packages/misskey-js/package.json
- package.json
+ - .github/workflows/check-misskey-js-version.yml
pull_request:
branches: [ develop ]
paths:
- packages/misskey-js/package.json
- package.json
-
+ - .github/workflows/check-misskey-js-version.yml
jobs:
check-version:
# ルートの package.json と packages/misskey-js/package.json のバージョンが一致しているかを確認する
diff --git a/.github/workflows/docker-develop.yml b/.github/workflows/docker-develop.yml
index cb84849580ce..ac2b1b4d358a 100644
--- a/.github/workflows/docker-develop.yml
+++ b/.github/workflows/docker-develop.yml
@@ -37,7 +37,7 @@ jobs:
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push by digest
id: build
- uses: docker/build-push-action@v5
+ uses: docker/build-push-action@v6
with:
context: .
push: true
diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
index 23c1bdbc1686..db899ba386be 100644
--- a/.github/workflows/docker.yml
+++ b/.github/workflows/docker.yml
@@ -48,7 +48,7 @@ jobs:
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and Push to Docker Hub
id: build
- uses: docker/build-push-action@v5
+ uses: docker/build-push-action@v6
with:
context: .
push: true
diff --git a/.github/workflows/dockle.yml b/.github/workflows/dockle.yml
index eee7a78fedfa..c3dba4213d31 100644
--- a/.github/workflows/dockle.yml
+++ b/.github/workflows/dockle.yml
@@ -13,14 +13,16 @@ jobs:
runs-on: ubuntu-latest
env:
DOCKER_CONTENT_TRUST: 1
+ DOCKLE_VERSION: 0.4.14
steps:
- uses: actions/checkout@v4.1.1
- - run: |
- curl -L -o dockle.deb "https://github.com/goodwithtech/dockle/releases/download/v0.4.10/dockle_0.4.10_Linux-64bit.deb"
+ - name: Download and install dockle v${{ env.DOCKLE_VERSION }}
+ run: |
+ curl -L -o dockle.deb "https://github.com/goodwithtech/dockle/releases/download/v${DOCKLE_VERSION}/dockle_${DOCKLE_VERSION}_Linux-64bit.deb"
sudo dpkg -i dockle.deb
- run: |
cp .config/docker_example.env .config/docker.env
- cp ./docker-compose_example.yml ./docker-compose.yml
+ cp ./compose_example.yml ./compose.yml
- run: |
docker compose up -d web
docker tag "$(docker compose images web | awk 'OFS=":" {print $4}' | tail -n +2)" misskey-web:latest
diff --git a/.github/workflows/get-api-diff.yml b/.github/workflows/get-api-diff.yml
index 9b9c8f11c413..4afafabf2ead 100644
--- a/.github/workflows/get-api-diff.yml
+++ b/.github/workflows/get-api-diff.yml
@@ -9,7 +9,7 @@ on:
paths:
- packages/backend/**
- .github/workflows/get-api-diff.yml
-
+ - .github/workflows/get-api-diff.yml
jobs:
get-from-misskey:
runs-on: ubuntu-latest
@@ -34,7 +34,7 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4.0.2
+ uses: actions/setup-node@v4.0.3
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 76616ec5a71a..c21fc951239f 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -10,15 +10,16 @@ on:
- packages/frontend/**
- packages/sw/**
- packages/misskey-js/**
- - packages/shared/.eslintrc.js
+ - packages/shared/eslint.config.js
+ - .github/workflows/lint.yml
pull_request:
paths:
- packages/backend/**
- packages/frontend/**
- packages/sw/**
- packages/misskey-js/**
- - packages/shared/.eslintrc.js
-
+ - packages/shared/eslint.config.js
+ - .github/workflows/lint.yml
jobs:
pnpm_install:
runs-on: ubuntu-latest
@@ -28,7 +29,7 @@ jobs:
fetch-depth: 0
submodules: true
- uses: pnpm/action-setup@v4
- - uses: actions/setup-node@v4.0.2
+ - uses: actions/setup-node@v4.0.3
with:
node-version-file: '.node-version'
cache: 'pnpm'
@@ -39,6 +40,8 @@ jobs:
needs: [pnpm_install]
runs-on: ubuntu-latest
continue-on-error: true
+ env:
+ eslint-cache-version: v1
strategy:
matrix:
workspace:
@@ -52,13 +55,20 @@ jobs:
fetch-depth: 0
submodules: true
- uses: pnpm/action-setup@v4
- - uses: actions/setup-node@v4.0.2
+ - uses: actions/setup-node@v4.0.3
with:
node-version-file: '.node-version'
cache: 'pnpm'
- run: corepack enable
- run: pnpm i --frozen-lockfile
- - run: pnpm --filter ${{ matrix.workspace }} run eslint
+ - name: Restore eslint cache
+ uses: actions/cache@v4.0.2
+ with:
+ path: node_modules/.cache/eslint
+ key: eslint-${{ env.eslint-cache-version }}-${{ hashFiles('/pnpm-lock.yaml') }}-${{ github.ref_name }}-${{ github.sha }}
+ restore-keys: |
+ eslint-${{ env.eslint-cache-version }}-${{ hashFiles('/pnpm-lock.yaml') }}-
+ - run: pnpm --filter ${{ matrix.workspace }} run eslint --cache --cache-location node_modules/.cache/eslint --cache-strategy content
typecheck:
needs: [pnpm_install]
@@ -75,7 +85,7 @@ jobs:
fetch-depth: 0
submodules: true
- uses: pnpm/action-setup@v4
- - uses: actions/setup-node@v4.0.2
+ - uses: actions/setup-node@v4.0.3
with:
node-version-file: '.node-version'
cache: 'pnpm'
diff --git a/.github/workflows/locale.yml b/.github/workflows/locale.yml
index de2247e77277..95251bfe31e0 100644
--- a/.github/workflows/locale.yml
+++ b/.github/workflows/locale.yml
@@ -4,10 +4,11 @@ on:
push:
paths:
- locales/**
+ - .github/workflows/locale.yml
pull_request:
paths:
- locales/**
-
+ - .github/workflows/locale.yml
jobs:
locale_verify:
runs-on: ubuntu-latest
@@ -18,7 +19,7 @@ jobs:
fetch-depth: 0
submodules: true
- uses: pnpm/action-setup@v4
- - uses: actions/setup-node@v4.0.2
+ - uses: actions/setup-node@v4.0.3
with:
node-version-file: '.node-version'
cache: 'pnpm'
diff --git a/.github/workflows/on-release-created.yml b/.github/workflows/on-release-created.yml
index edfdab99e930..22c04ff29711 100644
--- a/.github/workflows/on-release-created.yml
+++ b/.github/workflows/on-release-created.yml
@@ -26,7 +26,7 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4.0.2
+ uses: actions/setup-node@v4.0.3
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
diff --git a/.github/workflows/release-edit-with-push.yml b/.github/workflows/release-edit-with-push.yml
index 86ee0b3fb54b..f86c1948f8b0 100644
--- a/.github/workflows/release-edit-with-push.yml
+++ b/.github/workflows/release-edit-with-push.yml
@@ -3,10 +3,10 @@ name: "Release Manager: sync changelog with PR"
on:
push:
branches:
- - release/**
+ - develop
paths:
- 'CHANGELOG.md'
-
+ # - .github/workflows/release-edit-with-push.yml
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -20,24 +20,29 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- # headがrelease/かつopenのPRを1つ取得
+ # headが$GITHUB_REF_NAME, baseが$STABLE_BRANCHかつopenのPRを1つ取得
- name: Get PR
run: |
- echo "pr_number=$(gh pr list --limit 1 --head "$GITHUB_REF_NAME" --json number --jq '.[] | .number')" >> $GITHUB_OUTPUT
+ echo "pr_number=$(gh pr list --limit 1 --search "head:$GITHUB_REF_NAME base:$STABLE_BRANCH is:open" --json number --jq '.[] | .number')" >> $GITHUB_OUTPUT
id: get_pr
+ env:
+ STABLE_BRANCH: ${{ vars.STABLE_BRANCH }}
- name: Get target version
- uses: misskey-dev/release-manager-actions/.github/actions/get-target-version@v1
+ if: steps.get_pr.outputs.pr_number != ''
+ uses: misskey-dev/release-manager-actions/.github/actions/get-target-version@v2
id: v
# CHANGELOG.mdの内容を取得
- name: Get changelog
- uses: misskey-dev/release-manager-actions/.github/actions/get-changelog@v1
+ if: steps.get_pr.outputs.pr_number != ''
+ uses: misskey-dev/release-manager-actions/.github/actions/get-changelog@v2
with:
version: ${{ steps.v.outputs.target_version }}
id: changelog
# PRのnotesを更新
- name: Update PR
+ if: steps.get_pr.outputs.pr_number != ''
run: |
gh pr edit "$PR_NUMBER" --body "$CHANGELOG"
env:
- CHANGELOG: ${{ steps.changelog.outputs.changelog }}
PR_NUMBER: ${{ steps.get_pr.outputs.pr_number }}
+ CHANGELOG: ${{ steps.changelog.outputs.changelog }}
diff --git a/.github/workflows/release-with-dispatch.yml b/.github/workflows/release-with-dispatch.yml
index bc6448cb37d8..0936bc0ae8b9 100644
--- a/.github/workflows/release-with-dispatch.yml
+++ b/.github/workflows/release-with-dispatch.yml
@@ -33,18 +33,21 @@ jobs:
pr_number: ${{ steps.get_pr.outputs.pr_number }}
steps:
- uses: actions/checkout@v4
- # headがrelease/かつopenのPRを1つ取得
+ # headが$GITHUB_REF_NAME, baseが$STABLE_BRANCHかつopenのPRを1つ取得
- name: Get PRs
run: |
- echo "pr_number=$(gh pr list --limit 1 --search "head:release/ is:open" --json number --jq '.[] | .number')" >> $GITHUB_OUTPUT
+ echo "pr_number=$(gh pr list --limit 1 --search "head:$GITHUB_REF_NAME base:$STABLE_BRANCH is:open" --json number --jq '.[] | .number')" >> $GITHUB_OUTPUT
id: get_pr
+ env:
+ STABLE_BRANCH: ${{ vars.STABLE_BRANCH }}
merge:
- uses: misskey-dev/release-manager-actions/.github/workflows/merge.yml@v1
+ uses: misskey-dev/release-manager-actions/.github/workflows/merge.yml@v2
needs: get-pr
if: ${{ needs.get-pr.outputs.pr_number != '' && inputs.merge == true }}
with:
pr_number: ${{ needs.get-pr.outputs.pr_number }}
+ user: 'github-actions[bot]'
package_jsons_to_rewrite: ${{ vars.PACKAGE_JSONS_TO_REWRITE }}
# Text to prepend to the changelog
# The first line must be `## Unreleased`
@@ -65,15 +68,14 @@ jobs:
secrets:
RELEASE_APP_ID: ${{ secrets.RELEASE_APP_ID }}
RELEASE_APP_PRIVATE_KEY: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
- RULESET_EDIT_APP_ID: ${{ secrets.RULESET_EDIT_APP_ID }}
- RULESET_EDIT_APP_PRIVATE_KEY: ${{ secrets.RULESET_EDIT_APP_PRIVATE_KEY }}
create-prerelease:
- uses: misskey-dev/release-manager-actions/.github/workflows/create-prerelease.yml@v1
+ uses: misskey-dev/release-manager-actions/.github/workflows/create-prerelease.yml@v2
needs: get-pr
if: ${{ needs.get-pr.outputs.pr_number != '' && inputs.merge != true }}
with:
pr_number: ${{ needs.get-pr.outputs.pr_number }}
+ user: 'github-actions[bot]'
package_jsons_to_rewrite: ${{ vars.PACKAGE_JSONS_TO_REWRITE }}
use_external_app_to_release: ${{ vars.USE_RELEASE_APP == 'true' }}
indent: ${{ vars.INDENT }}
@@ -82,10 +84,11 @@ jobs:
RELEASE_APP_PRIVATE_KEY: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
create-target:
- uses: misskey-dev/release-manager-actions/.github/workflows/create-target.yml@v1
+ uses: misskey-dev/release-manager-actions/.github/workflows/create-target.yml@v2
needs: get-pr
if: ${{ needs.get-pr.outputs.pr_number == '' }}
with:
+ user: 'github-actions[bot]'
# The script for version increment.
# process.env.CURRENT_VERSION: The current version.
#
@@ -118,8 +121,7 @@ jobs:
package_jsons_to_rewrite: ${{ vars.PACKAGE_JSONS_TO_REWRITE }}
use_external_app_to_release: ${{ vars.USE_RELEASE_APP == 'true' }}
indent: ${{ vars.INDENT }}
+ stable_branch: ${{ vars.STABLE_BRANCH }}
secrets:
RELEASE_APP_ID: ${{ secrets.RELEASE_APP_ID }}
RELEASE_APP_PRIVATE_KEY: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
- RULESET_EDIT_APP_ID: ${{ secrets.RULESET_EDIT_APP_ID }}
- RULESET_EDIT_APP_PRIVATE_KEY: ${{ secrets.RULESET_EDIT_APP_PRIVATE_KEY }}
diff --git a/.github/workflows/release-with-ready.yml b/.github/workflows/release-with-ready.yml
index a0fad0e336b8..79b6ade01285 100644
--- a/.github/workflows/release-with-ready.yml
+++ b/.github/workflows/release-with-ready.yml
@@ -16,23 +16,26 @@ jobs:
check:
runs-on: ubuntu-latest
outputs:
- ref: ${{ steps.get_pr.outputs.ref }}
+ head: ${{ steps.get_pr.outputs.head }}
+ base: ${{ steps.get_pr.outputs.base }}
steps:
- uses: actions/checkout@v4
# PR情報を取得
- name: Get PR
run: |
- pr_json=$(gh pr view "$PR_NUMBER" --json isDraft,headRefName)
- echo "ref=$(echo $pr_json | jq -r '.headRefName')" >> $GITHUB_OUTPUT
+ pr_json=$(gh pr view "$PR_NUMBER" --json isDraft,headRefName,baseRefName)
+ echo "head=$(echo $pr_json | jq -r '.headRefName')" >> $GITHUB_OUTPUT
+ echo "base=$(echo $pr_json | jq -r '.baseRefName')" >> $GITHUB_OUTPUT
id: get_pr
env:
PR_NUMBER: ${{ github.event.pull_request.number }}
release:
- uses: misskey-dev/release-manager-actions/.github/workflows/create-prerelease.yml@v1
+ uses: misskey-dev/release-manager-actions/.github/workflows/create-prerelease.yml@v2
needs: check
- if: startsWith(needs.check.outputs.ref, 'release/')
+ if: needs.check.outputs.head == github.event.repository.default_branch && needs.check.outputs.base == vars.STABLE_BRANCH
with:
pr_number: ${{ github.event.pull_request.number }}
+ user: 'github-actions[bot]'
package_jsons_to_rewrite: ${{ vars.PACKAGE_JSONS_TO_REWRITE }}
use_external_app_to_release: ${{ vars.USE_RELEASE_APP == 'true' }}
indent: ${{ vars.INDENT }}
diff --git a/.github/workflows/storybook.yml b/.github/workflows/storybook.yml
index c52883ffdde9..68452aacaf88 100644
--- a/.github/workflows/storybook.yml
+++ b/.github/workflows/storybook.yml
@@ -36,7 +36,7 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Use Node.js 20.x
- uses: actions/setup-node@v4.0.2
+ uses: actions/setup-node@v4.0.3
with:
node-version-file: '.node-version'
cache: 'pnpm'
@@ -88,7 +88,7 @@ jobs:
if [ "$BRANCH" = "misskey-dev:$HEAD_REF" ]; then
BRANCH="$HEAD_REF"
fi
- pnpm --filter frontend chromatic --exit-once-uploaded -d storybook-static --branch-name $BRANCH $(echo "$CHROMATIC_PARAMETER")
+ pnpm --filter frontend chromatic --exit-once-uploaded -d storybook-static --branch-name "$BRANCH" $(echo "$CHROMATIC_PARAMETER")
env:
HEAD_REF: ${{ github.event.pull_request.head.ref }}
CHROMATIC_PROJECT_TOKEN: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
diff --git a/.github/workflows/test-backend.yml b/.github/workflows/test-backend.yml
index b1c54bb3e77e..bfb79ef09013 100644
--- a/.github/workflows/test-backend.yml
+++ b/.github/workflows/test-backend.yml
@@ -9,12 +9,13 @@ on:
- packages/backend/**
# for permissions
- packages/misskey-js/**
+ - .github/workflows/test-backend.yml
pull_request:
paths:
- packages/backend/**
# for permissions
- packages/misskey-js/**
-
+ - .github/workflows/test-backend.yml
jobs:
unit:
runs-on: ubuntu-latest
@@ -45,7 +46,7 @@ jobs:
- name: Install FFmpeg
uses: FedericoCarboni/setup-ffmpeg@v3
- name: Use Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4.0.2
+ uses: actions/setup-node@v4.0.3
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
@@ -92,7 +93,7 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4.0.2
+ uses: actions/setup-node@v4.0.3
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
diff --git a/.github/workflows/test-frontend.yml b/.github/workflows/test-frontend.yml
index 9d5053b82aa8..c17a9fd3877a 100644
--- a/.github/workflows/test-frontend.yml
+++ b/.github/workflows/test-frontend.yml
@@ -11,7 +11,7 @@ on:
- packages/misskey-js/**
# for e2e
- packages/backend/**
-
+ - .github/workflows/test-frontend.yml
pull_request:
paths:
- packages/frontend/**
@@ -19,7 +19,7 @@ on:
- packages/misskey-js/**
# for e2e
- packages/backend/**
-
+ - .github/workflows/test-frontend.yml
jobs:
vitest:
runs-on: ubuntu-latest
@@ -35,7 +35,7 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4.0.2
+ uses: actions/setup-node@v4.0.3
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
@@ -90,7 +90,7 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4.0.2
+ uses: actions/setup-node@v4.0.3
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
diff --git a/.github/workflows/test-misskey-js.yml b/.github/workflows/test-misskey-js.yml
index 2589d908b8d4..6ee67e8735bf 100644
--- a/.github/workflows/test-misskey-js.yml
+++ b/.github/workflows/test-misskey-js.yml
@@ -8,11 +8,12 @@ on:
branches: [ develop ]
paths:
- packages/misskey-js/**
+ - .github/workflows/test-misskey-js.yml
pull_request:
branches: [ develop ]
paths:
- packages/misskey-js/**
-
+ - .github/workflows/test-misskey-js.yml
jobs:
test:
@@ -30,7 +31,7 @@ jobs:
- run: corepack enable
- name: Setup Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4.0.2
+ uses: actions/setup-node@v4.0.3
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
diff --git a/.github/workflows/test-production.yml b/.github/workflows/test-production.yml
index 7f8db652938f..18d02ec030ee 100644
--- a/.github/workflows/test-production.yml
+++ b/.github/workflows/test-production.yml
@@ -25,7 +25,7 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4.0.2
+ uses: actions/setup-node@v4.0.3
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
diff --git a/.github/workflows/validate-api-json.yml b/.github/workflows/validate-api-json.yml
index 24340e7d81f2..90f2929a2566 100644
--- a/.github/workflows/validate-api-json.yml
+++ b/.github/workflows/validate-api-json.yml
@@ -7,10 +7,11 @@ on:
- develop
paths:
- packages/backend/**
+ - .github/workflows/validate-api-json.yml
pull_request:
paths:
- packages/backend/**
-
+ - .github/workflows/validate-api-json.yml
jobs:
validate-api-json:
runs-on: ubuntu-latest
@@ -26,7 +27,7 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4.0.2
+ uses: actions/setup-node@v4.0.3
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
diff --git a/.gitignore b/.gitignore
index bdc14fea0aba..3466984cf648 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,8 +35,8 @@ coverage
!/.config/example.yml
!/.config/docker_example.yml
!/.config/docker_example.env
-docker-compose.yml
-!/.devcontainer/docker-compose.yml
+.devcontainer/compose.yml
+!/.devcontainer/compose.yml
# misskey
/build
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b48523e0e317..174e88bc8525 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,15 +1,70 @@
## Unreleased
+### Note
+- デッキUIの新着ノートをサウンドで通知する機能の追加(v2024.5.0)に伴い、以前から動作しなくなっていたクライアント設定内の「アンテナ受信」「チャンネル通知」サウンドを削除しました。
+
### General
- Feat: 通報を受けた際、または解決した際に、予め登録した宛先に通知を飛ばせるように(mail or webhook) #13705
+- Feat: ユーザーのアイコン/バナーの変更可否をロールで設定可能に
+ - 変更不可となっていても、設定済みのものを解除してデフォルト画像に戻すことは出来ます
- Fix: 配信停止したインスタンス一覧が見れなくなる問題を修正
+- Fix: Dockerコンテナの立ち上げ時に`pnpm`のインストールで固まることがある問題
+- Fix: デフォルトテーマに無効なテーマコードを入力するとUIが使用できなくなる問題を修正
+- Enhance: Allow negative delay for MFM animation elements (`tada`, `jelly`, `twitch`, `shake`, `spin`, `jump`, `bounce`, `rainbow`)
### Client
+- Enhance: 内蔵APIドキュメントのデザイン・パフォーマンスを改善
+- Enhance: 非ログイン時に他サーバーに遷移するアクションを追加
+- Enhance: 非ログイン時のハイライトTLのデザインを改善
+- Enhance: フロントエンドのアクセシビリティ改善
+ (Based on https://github.com/taiyme/misskey/pull/226)
+- Enhance: サーバー情報ページ・お問い合わせページを改善
+ (Cherry-picked from https://github.com/taiyme/misskey/pull/238)
+- Fix: `/about#federation` ページなどで各インスタンスのチャートが表示されなくなっていた問題を修正
+- Fix: ユーザーページの追加情報のラベルを投稿者のサーバーの絵文字で表示する (#13968)
+- Fix: リバーシの対局を正しく共有できないことがある問題を修正
+- Fix: コントロールパネルでベースロールのポリシーを編集してもUI上では変更が反映されない問題を修正
+- Fix: アンテナの編集画面のボタンに隙間を追加
+- Fix: テーマプレビューが見れない問題を修正
+- Fix: ショートカットキーが連打できる問題を修正
+ (Cherry-picked from https://github.com/taiyme/misskey/pull/234)
+- Fix: MkSignin.vueのcredentialRequestからReactivityを削除(ProxyがPasskey認証処理に渡ることを避けるため)
- ノートを畳む条件を「高精度の算出方法(MFMの引数なども考慮する)」、「旧式の算出方法(従来通り)」、「実際の表示の大きさ」から選べるように
### Server
-- チャート生成時にinstance.suspentionStateに置き換えられたinstance.isSuspendedが参照されてしまう問題を修正
-
+- Feat: レートリミット制限に引っかかったときに`Retry-After`ヘッダーを返すように (#13949)
+- Enhance: エンドポイント`clips/update`の必須項目を`clipId`のみに
+- Enhance: エンドポイント`admin/roles/update`の必須項目を`roleId`のみに
+- Enhance: エンドポイント`pages/update`の必須項目を`pageId`のみに
+- Enhance: エンドポイント`gallery/posts/update`の必須項目を`postId`のみに
+- Enhance: エンドポイント`i/webhook/update`の必須項目を`webhookId`のみに
+- Enhance: エンドポイント`admin/ad/update`の必須項目を`id`のみに
+- Enhance: `default.yml`内の`url`, `db.db`, `db.user`, `db.pass`を環境変数から読み込めるように
+- Fix: チャート生成時にinstance.suspentionStateに置き換えられたinstance.isSuspendedが参照されてしまう問題を修正
+- Fix: ユーザーのフィードページのMFMをHTMLに展開するように (#14006)
+- Fix: アンテナ・クリップ・リスト・ウェブフックがロールポリシーの上限より一つ多く作れてしまうのを修正 (#14036)
+- Fix: notRespondingSinceが実装される前に不通になったインスタンスが自動的に配信停止にならない (#14059)
+- Fix: FTT有効時、タイムライン用エンドポイントで`sinceId`にキャッシュ内最古のものより古いものを指定した場合に正しく結果が返ってこない問題を修正
+- Fix: 自分以外のクリップ内のノート個数が見えることがあるのを修正
+- Fix: 空文字列のリアクションはフォールバックされるように
+- Fix: リノートにリアクションできないように
+- Fix: ユーザー名の前後に空白文字列がある場合は省略するように
+- Fix: プロフィール編集時に名前を空白文字列のみにできる問題を修正
+- Fix: ユーザ名のサジェスト時に表示される内容と順番を調整(以下の順番になります) #14149
+ 1. フォロー中かつアクティブなユーザ
+ 2. フォロー中かつ非アクティブなユーザ
+ 3. フォローしていないアクティブなユーザ
+ 4. フォローしていない非アクティブなユーザ
+
+ また、自分自身のアカウントもサジェストされるようになりました。
+- Fix: 一般ユーザーから見たユーザーのバッジの一覧に公開されていないものが含まれることがある問題を修正
+ (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/652)
+- Fix: ユーザーのリアクション一覧でミュート/ブロックが機能していなかった問題を修正
+- Fix: エラーメッセージの誤字を修正 (#14213)
+
+### Misskey.js
+- Feat: `/drive/files/create` のリクエストに対応(`multipart/form-data`に対応)
+- Feat: `/admin/role/create` のロールポリシーの型を修正
## 2024.5.0
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index dcb625626d6f..b718f3703f87 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -165,7 +165,7 @@ cp .github/misskey/test.yml .config/
```
Prepare DB/Redis for testing.
```
-docker compose -f packages/backend/test/docker-compose.yml up
+docker compose -f packages/backend/test/compose.yml up
```
Alternatively, prepare an empty (data can be erased) DB and edit `.config/test.yml`.
diff --git a/Dockerfile b/Dockerfile
index 9fc2d611cd82..d6ca6b8cdffb 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -82,6 +82,10 @@ RUN apt-get update \
USER misskey
WORKDIR /misskey
+# add package.json to add pnpm
+COPY --chown=misskey:misskey ./package.json ./package.json
+RUN corepack install
+
COPY --chown=misskey:misskey --from=target-builder /misskey/node_modules ./node_modules
COPY --chown=misskey:misskey --from=target-builder /misskey/packages/backend/node_modules ./packages/backend/node_modules
COPY --chown=misskey:misskey --from=target-builder /misskey/packages/misskey-js/node_modules ./packages/misskey-js/node_modules
diff --git a/docker-compose.local-db.yml b/compose.local-db.yml
similarity index 98%
rename from docker-compose.local-db.yml
rename to compose.local-db.yml
index 16ba4b49e179..3835cb23dbad 100644
--- a/docker-compose.local-db.yml
+++ b/compose.local-db.yml
@@ -1,5 +1,3 @@
-version: "3"
-
# このconfigは、 dockerでMisskey本体を起動せず、 redisとpostgresql などだけを起動します
services:
diff --git a/docker-compose_example.yml b/compose_example.yml
similarity index 97%
rename from docker-compose_example.yml
rename to compose_example.yml
index 5cebbe416467..336bd814a793 100644
--- a/docker-compose_example.yml
+++ b/compose_example.yml
@@ -1,5 +1,3 @@
-version: "3"
-
services:
web:
build: .
@@ -19,6 +17,8 @@ services:
networks:
- internal_network
- external_network
+ # env_file:
+ # - .config/docker.env
volumes:
- ./files:/misskey/files
- ./.config:/misskey/.config:ro
diff --git a/locales/index.d.ts b/locales/index.d.ts
index acdc1fc421c3..694ee53a1f0e 100644
--- a/locales/index.d.ts
+++ b/locales/index.d.ts
@@ -736,6 +736,22 @@ export interface Locale extends ILocale {
* リモートで表示
*/
"showOnRemote": string;
+ /**
+ * リモートで続行
+ */
+ "continueOnRemote": string;
+ /**
+ * Misskey Hubからサーバーを選択
+ */
+ "chooseServerOnMisskeyHub": string;
+ /**
+ * サーバーのドメインを直接指定
+ */
+ "specifyServerHost": string;
+ /**
+ * ドメインを入力してください
+ */
+ "inputHostName": string;
/**
* 全般
*/
@@ -1921,9 +1937,13 @@ export interface Locale extends ILocale {
*/
"onlyOneFileCanBeAttached": string;
/**
- * 続行する前に、サインアップまたはサインインが必要です
+ * 続行する前に、登録またはログインが必要です
*/
"signinRequired": string;
+ /**
+ * 続行するには、お使いのサーバーに移動するか、このサーバーに登録・ログインする必要があります
+ */
+ "signinOrContinueOnRemote": string;
/**
* 招待
*/
@@ -4984,6 +5004,10 @@ export interface Locale extends ILocale {
* お問い合わせ
*/
"inquiry": string;
+ /**
+ * もう一度お試しください。
+ */
+ "tryAgain": string;
"_delivery": {
/**
* 配信状態
@@ -6594,6 +6618,10 @@ export interface Locale extends ILocale {
* ファイルにNSFWを常に付与
*/
"alwaysMarkNsfw": string;
+ /**
+ * アイコンとバナーの更新を許可
+ */
+ "canUpdateBioMedia": string;
/**
* ノートのピン留めの最大数
*/
@@ -7515,14 +7543,6 @@ export interface Locale extends ILocale {
* 通知
*/
"notification": string;
- /**
- * アンテナ受信
- */
- "antenna": string;
- /**
- * チャンネル通知
- */
- "channel": string;
/**
* リアクション選択時
*/
@@ -9761,7 +9781,7 @@ export interface Locale extends ILocale {
"_dataSaver": {
"_media": {
/**
- * メディアの読み込み
+ * メディアの読み込みを無効化
*/
"title": string;
/**
@@ -9771,7 +9791,7 @@ export interface Locale extends ILocale {
};
"_avatar": {
/**
- * アイコン画像
+ * アイコン画像のアニメーションを無効化
*/
"title": string;
/**
@@ -9781,7 +9801,7 @@ export interface Locale extends ILocale {
};
"_urlPreview": {
/**
- * URLプレビューのサムネイル
+ * URLプレビューのサムネイルを非表示
*/
"title": string;
/**
@@ -9791,7 +9811,7 @@ export interface Locale extends ILocale {
};
"_code": {
/**
- * コードハイライト
+ * コードハイライトを非表示
*/
"title": string;
/**
diff --git a/locales/index.js b/locales/index.js
index 650e55233776..c2738884eb34 100644
--- a/locales/index.js
+++ b/locales/index.js
@@ -52,7 +52,11 @@ const primaries = {
const clean = (text) => text.replace(new RegExp(String.fromCodePoint(0x08), 'g'), '');
export function build() {
- const locales = languages.reduce((a, c) => (a[c] = yaml.load(clean(fs.readFileSync(new URL(`${c}.yml`, import.meta.url), 'utf-8'))) || {}, a), {});
+ // vitestの挙動を調整するため、一度ローカル変数化する必要がある
+ // https://github.com/vitest-dev/vitest/issues/3988#issuecomment-1686599577
+ // https://github.com/misskey-dev/misskey/pull/14057#issuecomment-2192833785
+ const metaUrl = import.meta.url;
+ const locales = languages.reduce((a, c) => (a[c] = yaml.load(clean(fs.readFileSync(new URL(`${c}.yml`, metaUrl), 'utf-8'))) || {}, a), {});
// 空文字列が入ることがあり、フォールバックが動作しなくなるのでプロパティごと消す
const removeEmpty = (obj) => {
diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index 95730766f07e..638c3b013b85 100644
--- a/locales/ja-JP.yml
+++ b/locales/ja-JP.yml
@@ -180,6 +180,10 @@ addAccount: "アカウントを追加"
reloadAccountsList: "アカウントリストの情報を更新"
loginFailed: "ログインに失敗しました"
showOnRemote: "リモートで表示"
+continueOnRemote: "リモートで続行"
+chooseServerOnMisskeyHub: "Misskey Hubからサーバーを選択"
+specifyServerHost: "サーバーのドメインを直接指定"
+inputHostName: "ドメインを入力してください"
general: "全般"
wallpaper: "壁紙"
setWallpaper: "壁紙を設定"
@@ -476,7 +480,8 @@ attachAsFileQuestion: "クリップボードのテキストが長いです。テ
noMessagesYet: "まだチャットはありません"
newMessageExists: "新しいメッセージがあります"
onlyOneFileCanBeAttached: "メッセージに添付できるファイルはひとつです"
-signinRequired: "続行する前に、サインアップまたはサインインが必要です"
+signinRequired: "続行する前に、登録またはログインが必要です"
+signinOrContinueOnRemote: "続行するには、お使いのサーバーに移動するか、このサーバーに登録・ログインする必要があります"
invitations: "招待"
invitationCode: "招待コード"
checking: "確認しています"
@@ -1247,6 +1252,7 @@ keepOriginalFilenameDescription: "この設定をオフにすると、アップ
noDescription: "説明文はありません"
alwaysConfirmFollow: "フォローの際常に確認する"
inquiry: "お問い合わせ"
+tryAgain: "もう一度お試しください。"
_delivery:
status: "配信状態"
@@ -1710,6 +1716,7 @@ _role:
canManageAvatarDecorations: "アバターデコレーションの管理"
driveCapacity: "ドライブ容量"
alwaysMarkNsfw: "ファイルにNSFWを常に付与"
+ canUpdateBioMedia: "アイコンとバナーの更新を許可"
pinMax: "ノートのピン留めの最大数"
antennaMax: "アンテナの作成可能数"
wordMuteMax: "ワードミュートの最大文字数"
@@ -1976,8 +1983,6 @@ _sfx:
note: "ノート"
noteMy: "ノート(自分)"
notification: "通知"
- antenna: "アンテナ受信"
- channel: "チャンネル通知"
reaction: "リアクション選択時"
_soundSettings:
@@ -2604,16 +2609,16 @@ _externalResourceInstaller:
_dataSaver:
_media:
- title: "メディアの読み込み"
+ title: "メディアの読み込みを無効化"
description: "画像・動画が自動で読み込まれるのを防止します。隠れている画像・動画はタップすると読み込まれます。"
_avatar:
- title: "アイコン画像"
+ title: "アイコン画像のアニメーションを無効化"
description: "アイコン画像のアニメーションが停止します。アニメーション画像は通常の画像よりファイルサイズが大きいことがあるので、データ通信量をさらに削減できます。"
_urlPreview:
- title: "URLプレビューのサムネイル"
+ title: "URLプレビューのサムネイルを非表示"
description: "URLプレビューのサムネイル画像が読み込まれなくなります。"
_code:
- title: "コードハイライト"
+ title: "コードハイライトを非表示"
description: "MFMなどでコードハイライト記法が使われている場合、タップするまで読み込まれなくなります。コードハイライトではハイライトする言語ごとにその定義ファイルを読み込む必要がありますが、それらが自動で読み込まれなくなるため、通信量の削減が見込めます。"
_hemisphere:
diff --git a/package.json b/package.json
index b1786e16f196..bf8415d21217 100644
--- a/package.json
+++ b/package.json
@@ -55,20 +55,22 @@
"js-yaml": "4.1.0",
"postcss": "8.4.38",
"tar": "6.2.1",
- "terser": "5.30.3",
- "typescript": "5.4.5",
- "esbuild": "0.20.2",
+ "terser": "5.31.1",
+ "typescript": "5.5.3",
+ "esbuild": "0.22.0",
"glob": "10.3.12"
},
"devDependencies": {
- "@types/node": "20.12.7",
- "@typescript-eslint/eslint-plugin": "7.7.1",
- "@typescript-eslint/parser": "7.7.1",
+ "@misskey-dev/eslint-plugin": "2.0.2",
+ "@types/node": "20.14.9",
+ "@typescript-eslint/eslint-plugin": "7.15.0",
+ "@typescript-eslint/parser": "7.15.0",
"cross-env": "7.0.3",
- "cypress": "13.7.3",
- "eslint": "8.57.0",
+ "cypress": "13.13.0",
+ "eslint": "9.6.0",
+ "globals": "15.7.0",
"ncp": "2.0.0",
- "start-server-and-test": "2.0.3"
+ "start-server-and-test": "2.0.4"
},
"optionalDependencies": {
"@tensorflow/tfjs-core": "4.4.0"
diff --git a/packages/backend/.eslintignore b/packages/backend/.eslintignore
deleted file mode 100644
index 790eb90145b4..000000000000
--- a/packages/backend/.eslintignore
+++ /dev/null
@@ -1,4 +0,0 @@
-node_modules
-/built
-/.eslintrc.js
-/@types/**/*
diff --git a/packages/backend/.eslintrc.cjs b/packages/backend/.eslintrc.cjs
deleted file mode 100644
index f9fe4814e671..000000000000
--- a/packages/backend/.eslintrc.cjs
+++ /dev/null
@@ -1,32 +0,0 @@
-module.exports = {
- parserOptions: {
- tsconfigRootDir: __dirname,
- project: ['./tsconfig.json', './test/tsconfig.json'],
- },
- extends: [
- '../shared/.eslintrc.js',
- ],
- rules: {
- 'import/order': ['warn', {
- 'groups': ['builtin', 'external', 'internal', 'parent', 'sibling', 'index', 'object', 'type'],
- 'pathGroups': [
- {
- 'pattern': '@/**',
- 'group': 'external',
- 'position': 'after'
- }
- ],
- }],
- 'no-restricted-globals': [
- 'error',
- {
- 'name': '__dirname',
- 'message': 'Not in ESModule. Use `import.meta.url` instead.'
- },
- {
- 'name': '__filename',
- 'message': 'Not in ESModule. Use `import.meta.url` instead.'
- }
- ]
- },
-};
diff --git a/packages/backend/assets/api-doc.html b/packages/backend/assets/api-doc.html
new file mode 100644
index 000000000000..19e0349d47d9
--- /dev/null
+++ b/packages/backend/assets/api-doc.html
@@ -0,0 +1,20 @@
+
+
+
+ Misskey API
+
+
+
+
+
+
+
+
+
diff --git a/packages/backend/assets/redoc.html b/packages/backend/assets/redoc.html
deleted file mode 100644
index 2557b4532ec3..000000000000
--- a/packages/backend/assets/redoc.html
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
- Misskey API
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/packages/backend/eslint.config.js b/packages/backend/eslint.config.js
new file mode 100644
index 000000000000..318b7fd340f3
--- /dev/null
+++ b/packages/backend/eslint.config.js
@@ -0,0 +1,46 @@
+import tsParser from '@typescript-eslint/parser';
+import sharedConfig from '../shared/eslint.config.js';
+
+export default [
+ ...sharedConfig,
+ {
+ ignores: ['**/node_modules', 'built', '@types/**/*'],
+ },
+ {
+ files: ['**/*.ts', '**/*.tsx'],
+ languageOptions: {
+ parserOptions: {
+ parser: tsParser,
+ project: ['./tsconfig.json', './test/tsconfig.json'],
+ sourceType: 'module',
+ tsconfigRootDir: import.meta.dirname,
+ },
+ },
+ rules: {
+ 'import/order': ['warn', {
+ groups: [
+ 'builtin',
+ 'external',
+ 'internal',
+ 'parent',
+ 'sibling',
+ 'index',
+ 'object',
+ 'type',
+ ],
+ pathGroups: [{
+ pattern: '@/**',
+ group: 'external',
+ position: 'after',
+ }],
+ }],
+ 'no-restricted-globals': ['error', {
+ name: '__dirname',
+ message: 'Not in ESModule. Use `import.meta.url` instead.',
+ }, {
+ name: '__filename',
+ message: 'Not in ESModule. Use `import.meta.url` instead.',
+ }],
+ },
+ },
+];
diff --git a/packages/backend/package.json b/packages/backend/package.json
index e034f75dc55e..22fdc5cf1681 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -4,7 +4,7 @@
"private": true,
"type": "module",
"engines": {
- "node": "^20.10.0"
+ "node": "^20.10.0 || ^22.0.0"
},
"scripts": {
"start": "node ./built/boot/entry.js",
@@ -65,43 +65,43 @@
"utf-8-validate": "6.0.3"
},
"dependencies": {
- "@aws-sdk/client-s3": "3.412.0",
- "@aws-sdk/lib-storage": "3.412.0",
- "@bull-board/api": "5.17.0",
- "@bull-board/fastify": "5.17.0",
- "@bull-board/ui": "5.17.0",
+ "@aws-sdk/client-s3": "3.600.0",
+ "@aws-sdk/lib-storage": "3.600.0",
+ "@bull-board/api": "5.20.5",
+ "@bull-board/fastify": "5.20.5",
+ "@bull-board/ui": "5.20.5",
"@discordapp/twemoji": "15.0.3",
"@fastify/accepts": "4.3.0",
"@fastify/cookie": "9.3.1",
"@fastify/cors": "9.0.1",
"@fastify/express": "3.0.0",
"@fastify/http-proxy": "9.5.0",
- "@fastify/multipart": "8.2.0",
- "@fastify/static": "7.0.3",
+ "@fastify/multipart": "8.3.0",
+ "@fastify/static": "7.0.4",
"@fastify/view": "9.1.0",
"@misskey-dev/sharp-read-bmp": "1.2.0",
"@misskey-dev/summaly": "5.1.0",
- "@napi-rs/canvas": "^0.1.52",
- "@nestjs/common": "10.3.8",
- "@nestjs/core": "10.3.8",
- "@nestjs/testing": "10.3.8",
+ "@napi-rs/canvas": "^0.1.53",
+ "@nestjs/common": "10.3.10",
+ "@nestjs/core": "10.3.10",
+ "@nestjs/testing": "10.3.10",
"@peertube/http-signature": "1.7.0",
- "@sentry/node": "^8.5.0",
- "@sentry/profiling-node": "^8.5.0",
+ "@sentry/node": "8.13.0",
+ "@sentry/profiling-node": "8.13.0",
"@simplewebauthn/server": "10.0.0",
"@sinonjs/fake-timers": "11.2.2",
"@smithy/node-http-handler": "2.5.0",
"@swc/cli": "0.3.12",
- "@swc/core": "1.4.17",
+ "@swc/core": "1.6.6",
"@twemoji/parser": "15.1.1",
"accepts": "1.3.8",
- "ajv": "8.13.0",
+ "ajv": "8.16.0",
"archiver": "7.0.1",
"async-mutex": "0.5.0",
"bcryptjs": "2.4.3",
"blurhash": "2.0.5",
"body-parser": "1.20.2",
- "bullmq": "5.7.8",
+ "bullmq": "5.8.3",
"cacheable-lookup": "7.0.0",
"cbor": "9.0.2",
"chalk": "5.3.0",
@@ -112,27 +112,27 @@
"content-disposition": "0.5.4",
"date-fns": "2.30.0",
"deep-email-validator": "0.1.21",
- "fastify": "4.26.2",
+ "fastify": "4.28.1",
"fastify-raw-body": "4.3.0",
"feed": "4.2.2",
"file-type": "19.0.0",
- "fluent-ffmpeg": "2.1.2",
+ "fluent-ffmpeg": "2.1.3",
"form-data": "4.0.0",
- "got": "14.2.1",
+ "got": "14.4.1",
"happy-dom": "10.0.3",
"hpagent": "1.2.0",
"htmlescape": "1.1.1",
"http-link-header": "1.1.3",
"ioredis": "5.4.1",
- "ip-cidr": "3.1.0",
+ "ip-cidr": "4.0.1",
"ipaddr.js": "2.2.0",
- "is-svg": "5.0.0",
+ "is-svg": "5.0.1",
"js-yaml": "4.1.0",
- "jsdom": "24.0.0",
+ "jsdom": "24.1.0",
"json5": "2.2.3",
"jsonld": "8.3.2",
"jsrsasign": "11.1.0",
- "meilisearch": "0.38.0",
+ "meilisearch": "0.41.0",
"mfm-js": "0.24.0",
"microformats-parser": "2.0.2",
"mime-types": "2.1.35",
@@ -142,24 +142,24 @@
"nanoid": "5.0.7",
"nested-property": "4.0.0",
"node-fetch": "3.3.2",
- "nodemailer": "6.9.13",
+ "nodemailer": "6.9.14",
"nsfwjs": "2.4.2",
"oauth": "0.10.0",
"oauth2orize": "1.12.0",
"oauth2orize-pkce": "0.1.2",
"os-utils": "0.0.14",
- "otpauth": "9.2.3",
+ "otpauth": "9.3.1",
"parse5": "7.1.2",
- "pg": "8.11.5",
+ "pg": "8.12.0",
"pkce-challenge": "4.1.0",
"probe-image-size": "7.2.3",
"promise-limit": "2.7.0",
- "pug": "3.0.2",
+ "pug": "3.0.3",
"punycode": "2.3.1",
"qrcode": "1.5.3",
"random-seed": "0.3.0",
"ratelimiter": "3.4.1",
- "re2": "1.20.10",
+ "re2": "1.21.3",
"redis-lock": "0.1.4",
"reflect-metadata": "0.2.2",
"rename": "1.0.4",
@@ -167,27 +167,26 @@
"rxjs": "7.8.1",
"sanitize-html": "2.13.0",
"secure-json-parse": "2.7.0",
- "sharp": "0.33.3",
+ "sharp": "0.33.4",
"slacc": "0.0.10",
"strict-event-emitter-types": "2.0.0",
"stringz": "2.1.0",
- "systeminformation": "5.22.7",
+ "systeminformation": "5.22.11",
"tinycolor2": "1.6.0",
"tmp": "0.2.3",
- "tsc-alias": "1.8.8",
+ "tsc-alias": "1.8.10",
"tsconfig-paths": "4.2.0",
"typeorm": "0.3.20",
- "typescript": "5.4.5",
+ "typescript": "5.5.3",
"ulid": "2.3.0",
"vary": "1.1.2",
"web-push": "3.6.7",
- "ws": "8.17.0",
+ "ws": "8.17.1",
"xev": "3.0.2"
},
"devDependencies": {
"@jest/globals": "29.7.0",
- "@misskey-dev/eslint-plugin": "1.0.0",
- "@nestjs/platform-express": "10.3.8",
+ "@nestjs/platform-express": "10.3.10",
"@simplewebauthn/types": "10.0.0",
"@swc/jest": "0.2.36",
"@types/accepts": "1.3.7",
@@ -197,22 +196,21 @@
"@types/color-convert": "2.0.3",
"@types/content-disposition": "0.5.8",
"@types/fluent-ffmpeg": "2.1.24",
- "@types/htmlescape": "^1.1.3",
- "@types/http-link-header": "1.0.5",
+ "@types/htmlescape": "1.1.3",
+ "@types/http-link-header": "1.0.7",
"@types/jest": "29.5.12",
"@types/js-yaml": "4.0.9",
- "@types/jsdom": "21.1.6",
- "@types/jsonld": "1.5.13",
+ "@types/jsdom": "21.1.7",
+ "@types/jsonld": "1.5.14",
"@types/jsrsasign": "10.5.14",
"@types/mime-types": "2.1.4",
"@types/ms": "0.7.34",
- "@types/node": "20.12.7",
- "@types/node-fetch": "3.0.3",
+ "@types/node": "20.14.9",
"@types/nodemailer": "6.4.15",
- "@types/oauth": "0.9.4",
+ "@types/oauth": "0.9.5",
"@types/oauth2orize": "1.11.5",
"@types/oauth2orize-pkce": "0.1.2",
- "@types/pg": "8.11.5",
+ "@types/pg": "8.11.6",
"@types/pug": "2.0.10",
"@types/punycode": "2.1.4",
"@types/qrcode": "1.5.5",
@@ -228,18 +226,17 @@
"@types/vary": "1.1.3",
"@types/web-push": "3.6.3",
"@types/ws": "8.5.10",
- "@typescript-eslint/eslint-plugin": "7.7.1",
- "@typescript-eslint/parser": "7.7.1",
- "aws-sdk-client-mock": "3.0.1",
+ "@typescript-eslint/eslint-plugin": "7.15.0",
+ "@typescript-eslint/parser": "7.15.0",
+ "aws-sdk-client-mock": "4.0.1",
"cross-env": "7.0.3",
- "eslint": "8.57.0",
"eslint-plugin-import": "2.29.1",
- "execa": "8.0.1",
- "fkill": "^9.0.0",
+ "execa": "9.2.0",
+ "fkill": "9.0.0",
"jest": "29.7.0",
"jest-mock": "29.7.0",
- "nodemon": "3.1.0",
+ "nodemon": "3.1.4",
"pid-port": "1.0.0",
- "simple-oauth2": "5.0.0"
+ "simple-oauth2": "5.0.1"
}
}
diff --git a/packages/backend/scripts/dev.mjs b/packages/backend/scripts/dev.mjs
index 2d0de0f91666..a3e0558abd97 100644
--- a/packages/backend/scripts/dev.mjs
+++ b/packages/backend/scripts/dev.mjs
@@ -30,6 +30,7 @@ function execStart() {
async function killProc() {
if (backendProcess) {
+ backendProcess.catch(() => {}); // backendProcess.kill()によって発生する例外を無視するためにcatch()を呼び出す
backendProcess.kill();
await new Promise(resolve => backendProcess.on('exit', resolve));
backendProcess = undefined;
@@ -46,6 +47,7 @@ async function killProc() {
],
{
stdio: [process.stdin, process.stdout, process.stderr, 'ipc'],
+ serialization: "json",
})
.on('message', async (message) => {
if (message.type === 'exit') {
diff --git a/packages/backend/src/config.ts b/packages/backend/src/config.ts
index 0ac521d4094e..3e5a1e81cd70 100644
--- a/packages/backend/src/config.ts
+++ b/packages/backend/src/config.ts
@@ -23,7 +23,7 @@ type RedisOptionsSource = Partial & {
* 設定ファイルの型
*/
type Source = {
- url: string;
+ url?: string;
port?: number;
socket?: string;
chmodSocket?: string;
@@ -31,9 +31,9 @@ type Source = {
db: {
host: string;
port: number;
- db: string;
- user: string;
- pass: string;
+ db?: string;
+ user?: string;
+ pass?: string;
disableCache?: boolean;
extra?: { [x: string]: string };
};
@@ -202,13 +202,17 @@ export function loadConfig(): Config {
: { 'src/_boot_.ts': { file: 'src/_boot_.ts' } };
const config = yaml.load(fs.readFileSync(path, 'utf-8')) as Source;
- const url = tryCreateUrl(config.url);
+ const url = tryCreateUrl(config.url ?? process.env.MISSKEY_URL ?? '');
const version = meta.version;
const host = url.host;
const hostname = url.hostname;
const scheme = url.protocol.replace(/:$/, '');
const wsScheme = scheme.replace('http', 'ws');
+ const dbDb = config.db.db ?? process.env.DATABASE_DB ?? '';
+ const dbUser = config.db.user ?? process.env.DATABASE_USER ?? '';
+ const dbPass = config.db.pass ?? process.env.DATABASE_PASSWORD ?? '';
+
const externalMediaProxy = config.mediaProxy ?
config.mediaProxy.endsWith('/') ? config.mediaProxy.substring(0, config.mediaProxy.length - 1) : config.mediaProxy
: null;
@@ -231,7 +235,7 @@ export function loadConfig(): Config {
apiUrl: `${scheme}://${host}/api`,
authUrl: `${scheme}://${host}/auth`,
driveUrl: `${scheme}://${host}/files`,
- db: config.db,
+ db: { ...config.db, db: dbDb, user: dbUser, pass: dbPass },
dbReplications: config.dbReplications,
dbSlaves: config.dbSlaves,
meilisearch: config.meilisearch,
@@ -259,7 +263,7 @@ export function loadConfig(): Config {
deliverJobMaxAttempts: config.deliverJobMaxAttempts,
inboxJobMaxAttempts: config.inboxJobMaxAttempts,
proxyRemoteFiles: config.proxyRemoteFiles,
- signToActivityPubGet: config.signToActivityPubGet,
+ signToActivityPubGet: config.signToActivityPubGet ?? true,
mediaProxy: externalMediaProxy ?? internalMediaProxy,
externalMediaProxyEnabled: externalMediaProxy !== null && externalMediaProxy !== internalMediaProxy,
videoThumbnailGenerator: config.videoThumbnailGenerator ?
diff --git a/packages/backend/src/const.ts b/packages/backend/src/const.ts
index a238f4973a95..4dc689238bf2 100644
--- a/packages/backend/src/const.ts
+++ b/packages/backend/src/const.ts
@@ -3,6 +3,7 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
+// dummy
export const MAX_NOTE_TEXT_LENGTH = 3000;
export const USER_ONLINE_THRESHOLD = 1000 * 60 * 10; // 10min
diff --git a/packages/backend/src/core/AbuseReportNotificationService.ts b/packages/backend/src/core/AbuseReportNotificationService.ts
index df752afcd876..42e5931212f7 100644
--- a/packages/backend/src/core/AbuseReportNotificationService.ts
+++ b/packages/backend/src/core/AbuseReportNotificationService.ts
@@ -10,7 +10,6 @@ import sanitizeHtml from 'sanitize-html';
import { DI } from '@/di-symbols.js';
import { bindThis } from '@/decorators.js';
import { GlobalEvents, GlobalEventService } from '@/core/GlobalEventService.js';
-import { isNotNull } from '@/misc/is-not-null.js';
import type {
AbuseReportNotificationRecipientRepository,
MiAbuseReportNotificationRecipient,
@@ -91,7 +90,7 @@ export class AbuseReportNotificationService implements OnApplicationShutdown {
const recipientEMailAddresses = await this.fetchEMailRecipients().then(it => it
.filter(it => it.isActive && it.userProfile?.emailVerified)
.map(it => it.userProfile?.email)
- .filter(isNotNull),
+ .filter(x => x != null),
);
// 送信先の鮮度を保つため、毎回取得する
@@ -138,7 +137,7 @@ export class AbuseReportNotificationService implements OnApplicationShutdown {
.then(it => it
.filter(it => it.isActive && it.systemWebhookId && it.method === 'webhook')
.map(it => it.systemWebhookId)
- .filter(isNotNull));
+ .filter(x => x != null));
for (const webhookId of recipientWebhookIds) {
await Promise.all(
abuseReports.map(it => {
@@ -340,7 +339,7 @@ export class AbuseReportNotificationService implements OnApplicationShutdown {
@bindThis
private async removeUnauthorizedRecipientUsers(recipients: MiAbuseReportNotificationRecipient[]): Promise {
const userRecipients = recipients.filter(it => it.userId !== null);
- const recipientUserIds = new Set(userRecipients.map(it => it.userId).filter(isNotNull));
+ const recipientUserIds = new Set(userRecipients.map(it => it.userId).filter(x => x != null));
if (recipientUserIds.size <= 0) {
// ユーザが通知先として設定されていない場合、この関数での処理を行うべきレコードが無い
return recipients;
diff --git a/packages/backend/src/core/ClipService.ts b/packages/backend/src/core/ClipService.ts
index 9fd1ebad8724..929a9db0645a 100644
--- a/packages/backend/src/core/ClipService.ts
+++ b/packages/backend/src/core/ClipService.ts
@@ -41,7 +41,7 @@ export class ClipService {
const currentCount = await this.clipsRepository.countBy({
userId: me.id,
});
- if (currentCount > (await this.roleService.getUserPolicies(me.id)).clipLimit) {
+ if (currentCount >= (await this.roleService.getUserPolicies(me.id)).clipLimit) {
throw new ClipService.TooManyClipsError();
}
@@ -102,7 +102,7 @@ export class ClipService {
const currentCount = await this.clipNotesRepository.countBy({
clipId: clip.id,
});
- if (currentCount > (await this.roleService.getUserPolicies(me.id)).noteEachClipsLimit) {
+ if (currentCount >= (await this.roleService.getUserPolicies(me.id)).noteEachClipsLimit) {
throw new ClipService.TooManyClipNotesError();
}
diff --git a/packages/backend/src/core/CoreModule.ts b/packages/backend/src/core/CoreModule.ts
index b5b34487ec81..0208540afa7b 100644
--- a/packages/backend/src/core/CoreModule.ts
+++ b/packages/backend/src/core/CoreModule.ts
@@ -12,6 +12,7 @@ import {
} from '@/core/entities/AbuseReportNotificationRecipientEntityService.js';
import { AbuseReportNotificationService } from '@/core/AbuseReportNotificationService.js';
import { SystemWebhookService } from '@/core/SystemWebhookService.js';
+import { UserSearchService } from '@/core/UserSearchService.js';
import { AccountMoveService } from './AccountMoveService.js';
import { AccountUpdateService } from './AccountUpdateService.js';
import { AiService } from './AiService.js';
@@ -202,6 +203,7 @@ const $UserFollowingService: Provider = { provide: 'UserFollowingService', useEx
const $UserKeypairService: Provider = { provide: 'UserKeypairService', useExisting: UserKeypairService };
const $UserListService: Provider = { provide: 'UserListService', useExisting: UserListService };
const $UserMutingService: Provider = { provide: 'UserMutingService', useExisting: UserMutingService };
+const $UserSearchService: Provider = { provide: 'UserSearchService', useExisting: UserSearchService };
const $UserSuspendService: Provider = { provide: 'UserSuspendService', useExisting: UserSuspendService };
const $UserAuthService: Provider = { provide: 'UserAuthService', useExisting: UserAuthService };
const $VideoProcessingService: Provider = { provide: 'VideoProcessingService', useExisting: VideoProcessingService };
@@ -348,6 +350,7 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
UserKeypairService,
UserListService,
UserMutingService,
+ UserSearchService,
UserSuspendService,
UserAuthService,
VideoProcessingService,
@@ -490,6 +493,7 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
$UserKeypairService,
$UserListService,
$UserMutingService,
+ $UserSearchService,
$UserSuspendService,
$UserAuthService,
$VideoProcessingService,
@@ -633,6 +637,7 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
UserKeypairService,
UserListService,
UserMutingService,
+ UserSearchService,
UserSuspendService,
UserAuthService,
VideoProcessingService,
@@ -774,6 +779,7 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
$UserKeypairService,
$UserListService,
$UserMutingService,
+ $UserSearchService,
$UserSuspendService,
$UserAuthService,
$VideoProcessingService,
diff --git a/packages/backend/src/core/FanoutTimelineEndpointService.ts b/packages/backend/src/core/FanoutTimelineEndpointService.ts
index d5058f37c2a5..b05af99c5e5e 100644
--- a/packages/backend/src/core/FanoutTimelineEndpointService.ts
+++ b/packages/backend/src/core/FanoutTimelineEndpointService.ts
@@ -55,9 +55,6 @@ export class FanoutTimelineEndpointService {
@bindThis
private async getMiNotes(ps: TimelineOptions): Promise {
- let noteIds: string[];
- let shouldFallbackToDb = false;
-
// 呼び出し元と以下の処理をシンプルにするためにdbFallbackを置き換える
if (!ps.useDbFallback) ps.dbFallback = () => Promise.resolve([]);
@@ -67,12 +64,11 @@ export class FanoutTimelineEndpointService {
const redisResult = await this.fanoutTimelineService.getMulti(ps.redisTimelines, ps.untilId, ps.sinceId);
// TODO: いい感じにgetMulti内でソート済だからuniqするときにredisResultが全てソート済なのを利用して再ソートを避けたい
- const redisResultIds = Array.from(new Set(redisResult.flat(1)));
-
- redisResultIds.sort(idCompare);
- noteIds = redisResultIds.slice(0, ps.limit);
+ const redisResultIds = Array.from(new Set(redisResult.flat(1))).sort(idCompare);
- shouldFallbackToDb = shouldFallbackToDb || (noteIds.length === 0);
+ let noteIds = redisResultIds.slice(0, ps.limit);
+ const oldestNoteId = ascending ? redisResultIds[0] : redisResultIds[redisResultIds.length - 1];
+ const shouldFallbackToDb = noteIds.length === 0 || ps.sinceId != null && ps.sinceId < oldestNoteId;
if (!shouldFallbackToDb) {
let filter = ps.noteFilter ?? (_note => true);
diff --git a/packages/backend/src/core/FederatedInstanceService.ts b/packages/backend/src/core/FederatedInstanceService.ts
index 6799f2c5bbdc..7aeeb781786c 100644
--- a/packages/backend/src/core/FederatedInstanceService.ts
+++ b/packages/backend/src/core/FederatedInstanceService.ts
@@ -40,6 +40,7 @@ export class FederatedInstanceService implements OnApplicationShutdown {
firstRetrievedAt: new Date(parsed.firstRetrievedAt),
latestRequestReceivedAt: parsed.latestRequestReceivedAt ? new Date(parsed.latestRequestReceivedAt) : null,
infoUpdatedAt: parsed.infoUpdatedAt ? new Date(parsed.infoUpdatedAt) : null,
+ notRespondingSince: parsed.notRespondingSince ? new Date(parsed.notRespondingSince) : null,
};
},
});
diff --git a/packages/backend/src/core/MfmService.ts b/packages/backend/src/core/MfmService.ts
index 9786f8b8bb7a..74536c68f515 100644
--- a/packages/backend/src/core/MfmService.ts
+++ b/packages/backend/src/core/MfmService.ts
@@ -13,10 +13,12 @@ import { intersperse } from '@/misc/prelude/array.js';
import { normalizeForSearch } from '@/misc/normalize-for-search.js';
import type { IMentionedRemoteUsers } from '@/models/Note.js';
import { bindThis } from '@/decorators.js';
-import * as TreeAdapter from '../../node_modules/parse5/dist/tree-adapters/default.js';
+import type { DefaultTreeAdapterMap } from 'parse5';
import type * as mfm from 'mfm-js';
-const treeAdapter = TreeAdapter.defaultTreeAdapter;
+const treeAdapter = parse5.defaultTreeAdapter;
+type Node = DefaultTreeAdapterMap['node'];
+type ChildNode = DefaultTreeAdapterMap['childNode'];
const urlRegex = /^https?:\/\/[\w\/:%#@$&?!()\[\]~.,=+\-]+/;
const urlRegexFull = /^https?:\/\/[\w\/:%#@$&?!()\[\]~.,=+\-]+$/;
@@ -46,7 +48,7 @@ export class MfmService {
return text.trim();
- function getText(node: TreeAdapter.Node): string {
+ function getText(node: Node): string {
if (treeAdapter.isTextNode(node)) return node.value;
if (!treeAdapter.isElementNode(node)) return '';
if (node.nodeName === 'br') return '\n';
@@ -58,7 +60,7 @@ export class MfmService {
return '';
}
- function appendChildren(childNodes: TreeAdapter.ChildNode[]): void {
+ function appendChildren(childNodes: ChildNode[]): void {
if (childNodes) {
for (const n of childNodes) {
analyze(n);
@@ -66,14 +68,16 @@ export class MfmService {
}
}
- function analyze(node: TreeAdapter.Node) {
+ function analyze(node: Node) {
if (treeAdapter.isTextNode(node)) {
text += node.value;
return;
}
// Skip comment or document type node
- if (!treeAdapter.isElementNode(node)) return;
+ if (!treeAdapter.isElementNode(node)) {
+ return;
+ }
switch (node.nodeName) {
case 'br': {
@@ -81,8 +85,7 @@ export class MfmService {
break;
}
- case 'a':
- {
+ case 'a': {
const txt = getText(node);
const rel = node.attrs.find(x => x.name === 'rel');
const href = node.attrs.find(x => x.name === 'href');
@@ -90,7 +93,7 @@ export class MfmService {
// ハッシュタグ
if (normalizedHashtagNames && href && normalizedHashtagNames.has(normalizeForSearch(txt))) {
text += txt;
- // メンション
+ // メンション
} else if (txt.startsWith('@') && !(rel && rel.value.startsWith('me '))) {
const part = txt.split('@');
@@ -102,7 +105,7 @@ export class MfmService {
} else if (part.length === 3) {
text += txt;
}
- // その他
+ // その他
} else {
const generateLink = () => {
if (!href && !txt) {
@@ -130,8 +133,7 @@ export class MfmService {
break;
}
- case 'h1':
- {
+ case 'h1': {
text += '【';
appendChildren(node.childNodes);
text += '】\n';
@@ -139,16 +141,14 @@ export class MfmService {
}
case 'b':
- case 'strong':
- {
+ case 'strong': {
text += '**';
appendChildren(node.childNodes);
text += '**';
break;
}
- case 'small':
- {
+ case 'small': {
text += '';
appendChildren(node.childNodes);
text += '';
@@ -156,8 +156,7 @@ export class MfmService {
}
case 's':
- case 'del':
- {
+ case 'del': {
text += '~~';
appendChildren(node.childNodes);
text += '~~';
@@ -165,8 +164,7 @@ export class MfmService {
}
case 'i':
- case 'em':
- {
+ case 'em': {
text += '';
appendChildren(node.childNodes);
text += '';
@@ -207,8 +205,7 @@ export class MfmService {
case 'h3':
case 'h4':
case 'h5':
- case 'h6':
- {
+ case 'h6': {
text += '\n\n';
appendChildren(node.childNodes);
break;
@@ -221,8 +218,7 @@ export class MfmService {
case 'article':
case 'li':
case 'dt':
- case 'dd':
- {
+ case 'dd': {
text += '\n';
appendChildren(node.childNodes);
break;
diff --git a/packages/backend/src/core/NoteCreateService.ts b/packages/backend/src/core/NoteCreateService.ts
index 0c9de117d2c3..a2c3aaa70162 100644
--- a/packages/backend/src/core/NoteCreateService.ts
+++ b/packages/backend/src/core/NoteCreateService.ts
@@ -59,7 +59,6 @@ import { UtilityService } from '@/core/UtilityService.js';
import { UserBlockingService } from '@/core/UserBlockingService.js';
import { isReply } from '@/misc/is-reply.js';
import { trackPromise } from '@/misc/promise-tracker.js';
-import { isNotNull } from '@/misc/is-not-null.js';
import { IdentifiableError } from '@/misc/identifiable-error.js';
type NotificationType = 'reply' | 'renote' | 'quote' | 'mention';
@@ -839,7 +838,7 @@ export class NoteCreateService implements OnApplicationShutdown {
const mentions = extractMentions(tokens);
let mentionedUsers = (await Promise.all(mentions.map(m =>
this.remoteUserResolveService.resolveUser(m.username, m.host ?? user.host).catch(() => null),
- ))).filter(isNotNull);
+ ))).filter(x => x != null);
// Drop duplicate users
mentionedUsers = mentionedUsers.filter((u, i, self) =>
diff --git a/packages/backend/src/core/ReactionService.ts b/packages/backend/src/core/ReactionService.ts
index cb0b079df0dd..64c7b2ed032c 100644
--- a/packages/backend/src/core/ReactionService.ts
+++ b/packages/backend/src/core/ReactionService.ts
@@ -29,6 +29,7 @@ import { CustomEmojiService } from '@/core/CustomEmojiService.js';
import { RoleService } from '@/core/RoleService.js';
import { FeaturedService } from '@/core/FeaturedService.js';
import { trackPromise } from '@/misc/promise-tracker.js';
+import { isQuote, isRenote } from '@/misc/is-renote.js';
const FALLBACK = '\u2764';
const PER_NOTE_REACTION_USER_PAIR_CACHE_MAX = 16;
@@ -117,11 +118,16 @@ export class ReactionService {
throw new IdentifiableError('68e9d2d1-48bf-42c2-b90a-b20e09fd3d48', 'Note not accessible for you.');
}
+ // Check if note is Renote
+ if (isRenote(note) && !isQuote(note)) {
+ throw new IdentifiableError('12c35529-3c79-4327-b1cc-e2cf63a71925', 'You cannot react to Renote.');
+ }
+
let reaction = _reaction ?? FALLBACK;
if (note.reactionAcceptance === 'likeOnly' || ((note.reactionAcceptance === 'likeOnlyForRemote' || note.reactionAcceptance === 'nonSensitiveOnlyForLocalLikeOnlyForRemote') && (user.host != null))) {
reaction = '\u2764';
- } else if (_reaction) {
+ } else if (_reaction != null) {
const custom = reaction.match(isCustomEmojiRegexp);
if (custom) {
const reacterHost = this.utilityService.toPunyNullable(user.host);
diff --git a/packages/backend/src/core/RoleService.ts b/packages/backend/src/core/RoleService.ts
index e2ebecb99f4f..94026fd5030e 100644
--- a/packages/backend/src/core/RoleService.ts
+++ b/packages/backend/src/core/RoleService.ts
@@ -47,6 +47,7 @@ export type RolePolicies = {
canHideAds: boolean;
driveCapacityMb: number;
alwaysMarkNsfw: boolean;
+ canUpdateBioMedia: boolean;
pinLimit: number;
antennaLimit: number;
wordMuteLimit: number;
@@ -75,6 +76,7 @@ export const DEFAULT_POLICIES: RolePolicies = {
canHideAds: false,
driveCapacityMb: 100,
alwaysMarkNsfw: false,
+ canUpdateBioMedia: true,
pinLimit: 5,
antennaLimit: 5,
wordMuteLimit: 200,
@@ -376,6 +378,7 @@ export class RoleService implements OnApplicationShutdown, OnModuleInit {
canHideAds: calc('canHideAds', vs => vs.some(v => v === true)),
driveCapacityMb: calc('driveCapacityMb', vs => Math.max(...vs)),
alwaysMarkNsfw: calc('alwaysMarkNsfw', vs => vs.some(v => v === true)),
+ canUpdateBioMedia: calc('canUpdateBioMedia', vs => vs.some(v => v === true)),
pinLimit: calc('pinLimit', vs => Math.max(...vs)),
antennaLimit: calc('antennaLimit', vs => Math.max(...vs)),
wordMuteLimit: calc('wordMuteLimit', vs => Math.max(...vs)),
diff --git a/packages/backend/src/core/UserListService.ts b/packages/backend/src/core/UserListService.ts
index bbdcfed73836..6333356fe9e8 100644
--- a/packages/backend/src/core/UserListService.ts
+++ b/packages/backend/src/core/UserListService.ts
@@ -95,7 +95,7 @@ export class UserListService implements OnApplicationShutdown, OnModuleInit {
const currentCount = await this.userListMembershipsRepository.countBy({
userListId: list.id,
});
- if (currentCount > (await this.roleService.getUserPolicies(me.id)).userEachUserListsLimit) {
+ if (currentCount >= (await this.roleService.getUserPolicies(me.id)).userEachUserListsLimit) {
throw new UserListService.TooManyUsersError();
}
diff --git a/packages/backend/src/core/UserSearchService.ts b/packages/backend/src/core/UserSearchService.ts
new file mode 100644
index 000000000000..0d03cf6ee00f
--- /dev/null
+++ b/packages/backend/src/core/UserSearchService.ts
@@ -0,0 +1,205 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { Inject, Injectable } from '@nestjs/common';
+import { Brackets, SelectQueryBuilder } from 'typeorm';
+import { DI } from '@/di-symbols.js';
+import { type FollowingsRepository, MiUser, type UsersRepository } from '@/models/_.js';
+import { bindThis } from '@/decorators.js';
+import { sqlLikeEscape } from '@/misc/sql-like-escape.js';
+import type { Config } from '@/config.js';
+import { UserEntityService } from '@/core/entities/UserEntityService.js';
+import { Packed } from '@/misc/json-schema.js';
+
+function defaultActiveThreshold() {
+ return new Date(Date.now() - 1000 * 60 * 60 * 24 * 30);
+}
+
+@Injectable()
+export class UserSearchService {
+ constructor(
+ @Inject(DI.config)
+ private config: Config,
+ @Inject(DI.usersRepository)
+ private usersRepository: UsersRepository,
+ @Inject(DI.followingsRepository)
+ private followingsRepository: FollowingsRepository,
+ private userEntityService: UserEntityService,
+ ) {
+ }
+
+ /**
+ * ユーザ名とホスト名によるユーザ検索を行う.
+ *
+ * - 検索結果には優先順位がつけられており、以下の順序で検索が行われる.
+ * 1. フォローしているユーザのうち、一定期間以内(※)に更新されたユーザ
+ * 2. フォローしているユーザのうち、一定期間以内に更新されていないユーザ
+ * 3. フォローしていないユーザのうち、一定期間以内に更新されたユーザ
+ * 4. フォローしていないユーザのうち、一定期間以内に更新されていないユーザ
+ * - ログインしていない場合は、以下の順序で検索が行われる.
+ * 1. 一定期間以内に更新されたユーザ
+ * 2. 一定期間以内に更新されていないユーザ
+ * - それぞれの検索結果はユーザ名の昇順でソートされる.
+ * - 動作的には先に登場した検索結果の登場位置が優先される(条件的にユーザIDが重複することはないが).
+ * (1で既にヒットしていた場合、2, 3, 4でヒットしても無視される)
+ * - ユーザ名とホスト名の検索条件はそれぞれ前方一致で検索される.
+ * - ユーザ名の検索は大文字小文字を区別しない.
+ * - ホスト名の検索は大文字小文字を区別しない.
+ * - 検索結果は最大で {@link opts.limit} 件までとなる.
+ *
+ * ※一定期間とは {@link params.activeThreshold} で指定された日時から現在までの期間を指す.
+ *
+ * @param params 検索条件.
+ * @param opts 関数の動作を制御するオプション.
+ * @param me 検索を実行するユーザの情報. 未ログインの場合は指定しない.
+ * @see {@link UserSearchService#buildSearchUserQueries}
+ * @see {@link UserSearchService#buildSearchUserNoLoginQueries}
+ */
+ @bindThis
+ public async search(
+ params: {
+ username?: string | null,
+ host?: string | null,
+ activeThreshold?: Date,
+ },
+ opts?: {
+ limit?: number,
+ detail?: boolean,
+ },
+ me?: MiUser | null,
+ ): Promise[]> {
+ const queries = me ? this.buildSearchUserQueries(me, params) : this.buildSearchUserNoLoginQueries(params);
+
+ let resultSet = new Set();
+ const limit = opts?.limit ?? 10;
+ for (const query of queries) {
+ const ids = await query
+ .select('user.id')
+ .limit(limit - resultSet.size)
+ .orderBy('user.usernameLower', 'ASC')
+ .getRawMany<{ user_id: MiUser['id'] }>()
+ .then(res => res.map(x => x.user_id));
+
+ resultSet = new Set([...resultSet, ...ids]);
+ if (resultSet.size >= limit) {
+ break;
+ }
+ }
+
+ return this.userEntityService.packMany<'UserLite' | 'UserDetailed'>(
+ [...resultSet].slice(0, limit),
+ me,
+ { schema: opts?.detail ? 'UserDetailed' : 'UserLite' },
+ );
+ }
+
+ /**
+ * ログイン済みユーザによる検索実行時のクエリ一覧を構築する.
+ * @param me
+ * @param params
+ * @private
+ */
+ @bindThis
+ private buildSearchUserQueries(
+ me: MiUser,
+ params: {
+ username?: string | null,
+ host?: string | null,
+ activeThreshold?: Date,
+ },
+ ) {
+ // デフォルト30日以内に更新されたユーザーをアクティブユーザーとする
+ const activeThreshold = params.activeThreshold ?? defaultActiveThreshold();
+
+ const followingUserQuery = this.followingsRepository.createQueryBuilder('following')
+ .select('following.followeeId')
+ .where('following.followerId = :followerId', { followerId: me.id });
+
+ const activeFollowingUsersQuery = this.generateUserQueryBuilder(params)
+ .andWhere(`user.id IN (${followingUserQuery.getQuery()})`)
+ .andWhere('user.updatedAt > :activeThreshold', { activeThreshold });
+ activeFollowingUsersQuery.setParameters(followingUserQuery.getParameters());
+
+ const inactiveFollowingUsersQuery = this.generateUserQueryBuilder(params)
+ .andWhere(`user.id IN (${followingUserQuery.getQuery()})`)
+ .andWhere(new Brackets(qb => {
+ qb
+ .where('user.updatedAt IS NULL')
+ .orWhere('user.updatedAt <= :activeThreshold', { activeThreshold });
+ }));
+ inactiveFollowingUsersQuery.setParameters(followingUserQuery.getParameters());
+
+ // 自分自身がヒットするとしたらここ
+ const activeUserQuery = this.generateUserQueryBuilder(params)
+ .andWhere(`user.id NOT IN (${followingUserQuery.getQuery()})`)
+ .andWhere('user.updatedAt > :activeThreshold', { activeThreshold });
+ activeUserQuery.setParameters(followingUserQuery.getParameters());
+
+ const inactiveUserQuery = this.generateUserQueryBuilder(params)
+ .andWhere(`user.id NOT IN (${followingUserQuery.getQuery()})`)
+ .andWhere('user.updatedAt <= :activeThreshold', { activeThreshold });
+ inactiveUserQuery.setParameters(followingUserQuery.getParameters());
+
+ return [activeFollowingUsersQuery, inactiveFollowingUsersQuery, activeUserQuery, inactiveUserQuery];
+ }
+
+ /**
+ * ログインしていないユーザによる検索実行時のクエリ一覧を構築する.
+ * @param params
+ * @private
+ */
+ @bindThis
+ private buildSearchUserNoLoginQueries(params: {
+ username?: string | null,
+ host?: string | null,
+ activeThreshold?: Date,
+ }) {
+ // デフォルト30日以内に更新されたユーザーをアクティブユーザーとする
+ const activeThreshold = params.activeThreshold ?? defaultActiveThreshold();
+
+ const activeUserQuery = this.generateUserQueryBuilder(params)
+ .andWhere(new Brackets(qb => {
+ qb
+ .where('user.updatedAt IS NULL')
+ .orWhere('user.updatedAt > :activeThreshold', { activeThreshold });
+ }));
+
+ const inactiveUserQuery = this.generateUserQueryBuilder(params)
+ .andWhere('user.updatedAt <= :activeThreshold', { activeThreshold });
+
+ return [activeUserQuery, inactiveUserQuery];
+ }
+
+ /**
+ * ユーザ検索クエリで共通する抽出条件をあらかじめ設定したクエリビルダを生成する.
+ * @param params
+ * @private
+ */
+ @bindThis
+ private generateUserQueryBuilder(params: {
+ username?: string | null,
+ host?: string | null,
+ }): SelectQueryBuilder {
+ const userQuery = this.usersRepository.createQueryBuilder('user');
+
+ if (params.username) {
+ userQuery.andWhere('user.usernameLower LIKE :username', { username: sqlLikeEscape(params.username.toLowerCase()) + '%' });
+ }
+
+ if (params.host) {
+ if (params.host === this.config.hostname || params.host === '.') {
+ userQuery.andWhere('user.host IS NULL');
+ } else {
+ userQuery.andWhere('user.host LIKE :host', {
+ host: sqlLikeEscape(params.host.toLowerCase()) + '%',
+ });
+ }
+ }
+
+ userQuery.andWhere('user.isSuspended = FALSE');
+
+ return userQuery;
+ }
+}
diff --git a/packages/backend/src/core/activitypub/ApAudienceService.ts b/packages/backend/src/core/activitypub/ApAudienceService.ts
index 0fccc7b95086..5a5a76f7d65f 100644
--- a/packages/backend/src/core/activitypub/ApAudienceService.ts
+++ b/packages/backend/src/core/activitypub/ApAudienceService.ts
@@ -8,7 +8,6 @@ import promiseLimit from 'promise-limit';
import type { MiRemoteUser, MiUser } from '@/models/User.js';
import { concat, unique } from '@/misc/prelude/array.js';
import { bindThis } from '@/decorators.js';
-import { isNotNull } from '@/misc/is-not-null.js';
import { getApIds } from './type.js';
import { ApPersonService } from './models/ApPersonService.js';
import type { ApObject } from './type.js';
@@ -41,7 +40,7 @@ export class ApAudienceService {
const limit = promiseLimit(2);
const mentionedUsers = (await Promise.all(
others.map(id => limit(() => this.apPersonService.resolvePerson(id, resolver).catch(() => null))),
- )).filter(isNotNull);
+ )).filter(x => x != null);
if (toGroups.public.length > 0) {
return {
diff --git a/packages/backend/src/core/activitypub/ApInboxService.ts b/packages/backend/src/core/activitypub/ApInboxService.ts
index de3178b4827f..e2164fec1d93 100644
--- a/packages/backend/src/core/activitypub/ApInboxService.ts
+++ b/packages/backend/src/core/activitypub/ApInboxService.ts
@@ -27,7 +27,6 @@ import { QueueService } from '@/core/QueueService.js';
import type { UsersRepository, NotesRepository, FollowingsRepository, AbuseUserReportsRepository, FollowRequestsRepository } from '@/models/_.js';
import { bindThis } from '@/decorators.js';
import type { MiRemoteUser } from '@/models/User.js';
-import { isNotNull } from '@/misc/is-not-null.js';
import { GlobalEventService } from '@/core/GlobalEventService.js';
import { AbuseReportService } from '@/core/AbuseReportService.js';
import { getApHrefNullable, getApId, getApIds, getApType, isAccept, isActor, isAdd, isAnnounce, isBlock, isCollection, isCollectionOrOrderedCollection, isCreate, isDelete, isFlag, isFollow, isLike, isMove, isPost, isReject, isRemove, isTombstone, isUndo, isUpdate, validActor, validPost } from './type.js';
@@ -538,7 +537,7 @@ export class ApInboxService {
const userIds = uris
.filter(uri => uri.startsWith(this.config.url + '/users/'))
.map(uri => uri.split('/').at(-1))
- .filter(isNotNull);
+ .filter(x => x != null);
const users = await this.usersRepository.findBy({
id: In(userIds),
});
diff --git a/packages/backend/src/core/activitypub/ApMfmService.ts b/packages/backend/src/core/activitypub/ApMfmService.ts
index ab75b9abbd99..4036d2794a4c 100644
--- a/packages/backend/src/core/activitypub/ApMfmService.ts
+++ b/packages/backend/src/core/activitypub/ApMfmService.ts
@@ -25,7 +25,7 @@ export class ApMfmService {
}
@bindThis
- public getNoteHtml(note: MiNote, apAppend?: string) {
+ public getNoteHtml(note: Pick, apAppend?: string) {
let noMisskeyContent = false;
const srcMfm = (note.text ?? '') + (apAppend ?? '');
diff --git a/packages/backend/src/core/activitypub/ApRendererService.ts b/packages/backend/src/core/activitypub/ApRendererService.ts
index 4fc724b5480e..98e944f347a5 100644
--- a/packages/backend/src/core/activitypub/ApRendererService.ts
+++ b/packages/backend/src/core/activitypub/ApRendererService.ts
@@ -26,7 +26,6 @@ import type { MiUserKeypair } from '@/models/UserKeypair.js';
import type { UsersRepository, UserProfilesRepository, NotesRepository, DriveFilesRepository, PollsRepository } from '@/models/_.js';
import { bindThis } from '@/decorators.js';
import { CustomEmojiService } from '@/core/CustomEmojiService.js';
-import { isNotNull } from '@/misc/is-not-null.js';
import { IdService } from '@/core/IdService.js';
import { JsonLdService } from './JsonLdService.js';
import { ApMfmService } from './ApMfmService.js';
@@ -317,7 +316,7 @@ export class ApRendererService {
const getPromisedFiles = async (ids: string[]): Promise => {
if (ids.length === 0) return [];
const items = await this.driveFilesRepository.findBy({ id: In(ids) });
- return ids.map(id => items.find(item => item.id === id)).filter(isNotNull);
+ return ids.map(id => items.find(item => item.id === id)).filter(x => x != null);
};
let inReplyTo;
@@ -686,7 +685,7 @@ export class ApRendererService {
if (names.length === 0) return [];
const allEmojis = await this.customEmojiService.localEmojisCache.fetch();
- const emojis = names.map(name => allEmojis.get(name)).filter(isNotNull);
+ const emojis = names.map(name => allEmojis.get(name)).filter(x => x != null);
return emojis;
}
diff --git a/packages/backend/src/core/activitypub/models/ApMentionService.ts b/packages/backend/src/core/activitypub/models/ApMentionService.ts
index 0ced7e88aff2..2cd151fa048f 100644
--- a/packages/backend/src/core/activitypub/models/ApMentionService.ts
+++ b/packages/backend/src/core/activitypub/models/ApMentionService.ts
@@ -8,7 +8,6 @@ import promiseLimit from 'promise-limit';
import type { MiUser } from '@/models/_.js';
import { toArray, unique } from '@/misc/prelude/array.js';
import { bindThis } from '@/decorators.js';
-import { isNotNull } from '@/misc/is-not-null.js';
import { isMention } from '../type.js';
import { Resolver } from '../ApResolverService.js';
import { ApPersonService } from './ApPersonService.js';
@@ -28,7 +27,7 @@ export class ApMentionService {
const limit = promiseLimit(2);
const mentionedUsers = (await Promise.all(
hrefs.map(x => limit(() => this.apPersonService.resolvePerson(x, resolver).catch(() => null))),
- )).filter(isNotNull);
+ )).filter(x => x != null);
return mentionedUsers;
}
diff --git a/packages/backend/src/core/activitypub/models/ApNoteService.ts b/packages/backend/src/core/activitypub/models/ApNoteService.ts
index c6e6b3a1e8db..fc7aa1e0b972 100644
--- a/packages/backend/src/core/activitypub/models/ApNoteService.ts
+++ b/packages/backend/src/core/activitypub/models/ApNoteService.ts
@@ -24,7 +24,6 @@ import { UtilityService } from '@/core/UtilityService.js';
import { bindThis } from '@/decorators.js';
import { checkHttps } from '@/misc/check-https.js';
import { IdentifiableError } from '@/misc/identifiable-error.js';
-import { isNotNull } from '@/misc/is-not-null.js';
import { getOneApId, getApId, getOneApHrefNullable, validPost, isEmoji, getApType } from '../type.js';
import { ApLoggerService } from '../ApLoggerService.js';
import { ApMfmService } from '../ApMfmService.js';
@@ -253,7 +252,7 @@ export class ApNoteService {
}
};
- const uris = unique([note._misskey_quote, note.quoteUrl].filter(isNotNull));
+ const uris = unique([note._misskey_quote, note.quoteUrl].filter(x => x != null));
const results = await Promise.all(uris.map(tryResolveNote));
quote = results.filter((x): x is { status: 'ok', res: MiNote } => x.status === 'ok').map(x => x.res).at(0);
diff --git a/packages/backend/src/core/activitypub/models/ApPersonService.ts b/packages/backend/src/core/activitypub/models/ApPersonService.ts
index 744b1ea68376..457205e0238e 100644
--- a/packages/backend/src/core/activitypub/models/ApPersonService.ts
+++ b/packages/backend/src/core/activitypub/models/ApPersonService.ts
@@ -34,11 +34,11 @@ import { StatusError } from '@/misc/status-error.js';
import type { UtilityService } from '@/core/UtilityService.js';
import type { UserEntityService } from '@/core/entities/UserEntityService.js';
import { bindThis } from '@/decorators.js';
+import { RoleService } from '@/core/RoleService.js';
import { MetaService } from '@/core/MetaService.js';
import { DriveFileEntityService } from '@/core/entities/DriveFileEntityService.js';
import type { AccountMoveService } from '@/core/AccountMoveService.js';
import { checkHttps } from '@/misc/check-https.js';
-import { isNotNull } from '@/misc/is-not-null.js';
import { getApId, getApType, getOneApHrefNullable, isActor, isCollection, isCollectionOrOrderedCollection, isPropertyValue } from '../type.js';
import { extractApHashtags } from './tag.js';
import type { OnModuleInit } from '@nestjs/common';
@@ -101,6 +101,8 @@ export class ApPersonService implements OnModuleInit {
@Inject(DI.followingsRepository)
private followingsRepository: FollowingsRepository,
+
+ private roleService: RoleService,
) {
}
@@ -239,6 +241,11 @@ export class ApPersonService implements OnModuleInit {
return this.apImageService.resolveImage(user, img).catch(() => null);
}));
+ if (((avatar != null && avatar.id != null) || (banner != null && banner.id != null))
+ && !(await this.roleService.getUserPolicies(user.id)).canUpdateBioMedia) {
+ return {};
+ }
+
/*
we don't want to return nulls on errors! if the database fields
are already null, nothing changes; if the database has old
@@ -637,7 +644,7 @@ export class ApPersonService implements OnModuleInit {
// とりあえずidを別の時間で生成して順番を維持
let td = 0;
- for (const note of featuredNotes.filter(isNotNull)) {
+ for (const note of featuredNotes.filter(x => x != null)) {
td -= 1000;
transactionalEntityManager.insert(MiUserNotePining, {
id: this.idService.gen(Date.now() + td),
diff --git a/packages/backend/src/core/activitypub/models/ApQuestionService.ts b/packages/backend/src/core/activitypub/models/ApQuestionService.ts
index d1936cfe1dff..73004d10b0c5 100644
--- a/packages/backend/src/core/activitypub/models/ApQuestionService.ts
+++ b/packages/backend/src/core/activitypub/models/ApQuestionService.ts
@@ -10,7 +10,6 @@ import type { Config } from '@/config.js';
import type { IPoll } from '@/models/Poll.js';
import type Logger from '@/logger.js';
import { bindThis } from '@/decorators.js';
-import { isNotNull } from '@/misc/is-not-null.js';
import { isQuestion } from '../type.js';
import { ApLoggerService } from '../ApLoggerService.js';
import { ApResolverService } from '../ApResolverService.js';
@@ -52,7 +51,7 @@ export class ApQuestionService {
const choices = question[multiple ? 'anyOf' : 'oneOf']
?.map((x) => x.name)
- .filter(isNotNull)
+ .filter(x => x != null)
?? [];
const votes = question[multiple ? 'anyOf' : 'oneOf']?.map((x) => x.replies?.totalItems ?? x._misskey_votes ?? 0);
@@ -75,10 +74,10 @@ export class ApQuestionService {
//#region このサーバーに既に登録されているか
const note = await this.notesRepository.findOneBy({ uri });
- if (note == null) throw new Error('Question is not registed');
+ if (note == null) throw new Error('Question is not registered');
const poll = await this.pollsRepository.findOneBy({ noteId: note.id });
- if (poll == null) throw new Error('Question is not registed');
+ if (poll == null) throw new Error('Question is not registered');
//#endregion
// resolve new Question object
diff --git a/packages/backend/src/core/activitypub/models/tag.ts b/packages/backend/src/core/activitypub/models/tag.ts
index e7ceec3262a3..f75cc45f7e4f 100644
--- a/packages/backend/src/core/activitypub/models/tag.ts
+++ b/packages/backend/src/core/activitypub/models/tag.ts
@@ -4,7 +4,6 @@
*/
import { toArray } from '@/misc/prelude/array.js';
-import { isNotNull } from '@/misc/is-not-null.js';
import { isHashtag } from '../type.js';
import type { IObject, IApHashtag } from '../type.js';
@@ -16,7 +15,7 @@ export function extractApHashtags(tags: IObject | IObject[] | null | undefined):
return hashtags.map(tag => {
const m = tag.name.match(/^#(.+)/);
return m ? m[1] : null;
- }).filter(isNotNull);
+ }).filter(x => x != null);
}
export function extractApHashtagObjects(tags: IObject | IObject[] | null | undefined): IApHashtag[] {
diff --git a/packages/backend/src/core/entities/AbuseReportNotificationRecipientEntityService.ts b/packages/backend/src/core/entities/AbuseReportNotificationRecipientEntityService.ts
index 6819afafd9f5..1e23c194c58f 100644
--- a/packages/backend/src/core/entities/AbuseReportNotificationRecipientEntityService.ts
+++ b/packages/backend/src/core/entities/AbuseReportNotificationRecipientEntityService.ts
@@ -11,7 +11,6 @@ import { bindThis } from '@/decorators.js';
import { UserEntityService } from '@/core/entities/UserEntityService.js';
import { Packed } from '@/misc/json-schema.js';
import { SystemWebhookEntityService } from '@/core/entities/SystemWebhookEntityService.js';
-import { isNotNull } from '@/misc/is-not-null.js';
@Injectable()
export class AbuseReportNotificationRecipientEntityService {
@@ -66,13 +65,13 @@ export class AbuseReportNotificationRecipientEntityService {
);
}
- const userIds = objs.map(it => it.userId).filter(isNotNull);
+ const userIds = objs.map(it => it.userId).filter(x => x != null);
const users: Map> = (userIds.length > 0)
? await this.userEntityService.packMany(userIds)
.then(it => new Map(it.map(it => [it.id, it])))
: new Map();
- const systemWebhookIds = objs.map(it => it.systemWebhookId).filter(isNotNull);
+ const systemWebhookIds = objs.map(it => it.systemWebhookId).filter(x => x != null);
const systemWebhooks: Map> = (systemWebhookIds.length > 0)
? await this.systemWebhookEntityService.packMany(systemWebhookIds)
.then(it => new Map(it.map(it => [it.id, it])))
diff --git a/packages/backend/src/core/entities/AbuseUserReportEntityService.ts b/packages/backend/src/core/entities/AbuseUserReportEntityService.ts
index b0e1d1ab3659..a13c244c19a1 100644
--- a/packages/backend/src/core/entities/AbuseUserReportEntityService.ts
+++ b/packages/backend/src/core/entities/AbuseUserReportEntityService.ts
@@ -10,7 +10,6 @@ import { awaitAll } from '@/misc/prelude/await-all.js';
import type { MiAbuseUserReport } from '@/models/AbuseUserReport.js';
import { bindThis } from '@/decorators.js';
import { IdService } from '@/core/IdService.js';
-import { isNotNull } from '@/misc/is-not-null.js';
import type { Packed } from '@/misc/json-schema.js';
import { UserEntityService } from './UserEntityService.js';
@@ -63,7 +62,7 @@ export class AbuseUserReportEntityService {
) {
const _reporters = reports.map(({ reporter, reporterId }) => reporter ?? reporterId);
const _targetUsers = reports.map(({ targetUser, targetUserId }) => targetUser ?? targetUserId);
- const _assignees = reports.map(({ assignee, assigneeId }) => assignee ?? assigneeId).filter(isNotNull);
+ const _assignees = reports.map(({ assignee, assigneeId }) => assignee ?? assigneeId).filter(x => x != null);
const _userMap = await this.userEntityService.packMany(
[..._reporters, ..._targetUsers, ..._assignees],
null,
diff --git a/packages/backend/src/core/entities/ClipEntityService.ts b/packages/backend/src/core/entities/ClipEntityService.ts
index 3855a2843688..d91564590692 100644
--- a/packages/backend/src/core/entities/ClipEntityService.ts
+++ b/packages/backend/src/core/entities/ClipEntityService.ts
@@ -53,7 +53,7 @@ export class ClipEntityService {
isPublic: clip.isPublic,
favoritedCount: await this.clipFavoritesRepository.countBy({ clipId: clip.id }),
isFavorited: meId ? await this.clipFavoritesRepository.exists({ where: { clipId: clip.id, userId: meId } }) : undefined,
- notesCount: meId ? await this.clipNotesRepository.countBy({ clipId: clip.id }) : undefined,
+ notesCount: (meId === clip.userId) ? await this.clipNotesRepository.countBy({ clipId: clip.id }) : undefined,
});
}
diff --git a/packages/backend/src/core/entities/DriveFileEntityService.ts b/packages/backend/src/core/entities/DriveFileEntityService.ts
index 02ff2e775468..c485555f90f9 100644
--- a/packages/backend/src/core/entities/DriveFileEntityService.ts
+++ b/packages/backend/src/core/entities/DriveFileEntityService.ts
@@ -16,7 +16,6 @@ import { appendQuery, query } from '@/misc/prelude/url.js';
import { deepClone } from '@/misc/clone.js';
import { bindThis } from '@/decorators.js';
import { isMimeImage } from '@/misc/is-mime-image.js';
-import { isNotNull } from '@/misc/is-not-null.js';
import { IdService } from '@/core/IdService.js';
import { UtilityService } from '../UtilityService.js';
import { VideoProcessingService } from '../VideoProcessingService.js';
@@ -261,11 +260,11 @@ export class DriveFileEntityService {
files: MiDriveFile[],
options?: PackOptions,
): Promise[]> {
- const _user = files.map(({ user, userId }) => user ?? userId).filter(isNotNull);
+ const _user = files.map(({ user, userId }) => user ?? userId).filter(x => x != null);
const _userMap = await this.userEntityService.packMany(_user)
.then(users => new Map(users.map(user => [user.id, user])));
const items = await Promise.all(files.map(f => this.packNullable(f, options, f.userId ? { packedUser: _userMap.get(f.userId) } : {})));
- return items.filter(isNotNull);
+ return items.filter(x => x != null);
}
@bindThis
@@ -290,6 +289,6 @@ export class DriveFileEntityService {
): Promise[]> {
if (fileIds.length === 0) return [];
const filesMap = await this.packManyByIdsMap(fileIds, options);
- return fileIds.map(id => filesMap.get(id)).filter(isNotNull);
+ return fileIds.map(id => filesMap.get(id)).filter(x => x != null);
}
}
diff --git a/packages/backend/src/core/entities/InviteCodeEntityService.ts b/packages/backend/src/core/entities/InviteCodeEntityService.ts
index 26f57e129903..5d3e823a2a9d 100644
--- a/packages/backend/src/core/entities/InviteCodeEntityService.ts
+++ b/packages/backend/src/core/entities/InviteCodeEntityService.ts
@@ -12,7 +12,6 @@ import type { MiUser } from '@/models/User.js';
import type { MiRegistrationTicket } from '@/models/RegistrationTicket.js';
import { bindThis } from '@/decorators.js';
import { IdService } from '@/core/IdService.js';
-import { isNotNull } from '@/misc/is-not-null.js';
import { UserEntityService } from './UserEntityService.js';
@Injectable()
@@ -59,8 +58,8 @@ export class InviteCodeEntityService {
tickets: MiRegistrationTicket[],
me: { id: MiUser['id'] },
) {
- const _createdBys = tickets.map(({ createdBy, createdById }) => createdBy ?? createdById).filter(isNotNull);
- const _usedBys = tickets.map(({ usedBy, usedById }) => usedBy ?? usedById).filter(isNotNull);
+ const _createdBys = tickets.map(({ createdBy, createdById }) => createdBy ?? createdById).filter(x => x != null);
+ const _usedBys = tickets.map(({ usedBy, usedById }) => usedBy ?? usedById).filter(x => x != null);
const _userMap = await this.userEntityService.packMany([..._createdBys, ..._usedBys], me)
.then(users => new Map(users.map(u => [u.id, u])));
return Promise.all(
diff --git a/packages/backend/src/core/entities/MetaEntityService.ts b/packages/backend/src/core/entities/MetaEntityService.ts
index 5dfec589e12a..09641ce48552 100644
--- a/packages/backend/src/core/entities/MetaEntityService.ts
+++ b/packages/backend/src/core/entities/MetaEntityService.ts
@@ -50,6 +50,22 @@ export class MetaEntityService {
}))
.getMany();
+ // クライアントの手間を減らすためあらかじめJSONに変換しておく
+ let defaultLightTheme = null;
+ let defaultDarkTheme = null;
+ if (instance.defaultLightTheme) {
+ try {
+ defaultLightTheme = JSON.stringify(JSON5.parse(instance.defaultLightTheme));
+ } catch (e) {
+ }
+ }
+ if (instance.defaultDarkTheme) {
+ try {
+ defaultDarkTheme = JSON.stringify(JSON5.parse(instance.defaultDarkTheme));
+ } catch (e) {
+ }
+ }
+
const packed: Packed<'MetaLite'> = {
maintainerName: instance.maintainerName,
maintainerEmail: instance.maintainerEmail,
@@ -90,9 +106,8 @@ export class MetaEntityService {
backgroundImageUrl: instance.backgroundImageUrl,
logoImageUrl: instance.logoImageUrl,
maxNoteTextLength: MAX_NOTE_TEXT_LENGTH,
- // クライアントの手間を減らすためあらかじめJSONに変換しておく
- defaultLightTheme: instance.defaultLightTheme ? JSON.stringify(JSON5.parse(instance.defaultLightTheme)) : null,
- defaultDarkTheme: instance.defaultDarkTheme ? JSON.stringify(JSON5.parse(instance.defaultDarkTheme)) : null,
+ defaultLightTheme,
+ defaultDarkTheme,
ads: ads.map(ad => ({
id: ad.id,
url: ad.url,
diff --git a/packages/backend/src/core/entities/NoteEntityService.ts b/packages/backend/src/core/entities/NoteEntityService.ts
index 2ce72c50b87f..2cd092231cf5 100644
--- a/packages/backend/src/core/entities/NoteEntityService.ts
+++ b/packages/backend/src/core/entities/NoteEntityService.ts
@@ -14,7 +14,6 @@ import type { MiNote } from '@/models/Note.js';
import type { MiNoteReaction } from '@/models/NoteReaction.js';
import type { UsersRepository, NotesRepository, FollowingsRepository, PollsRepository, PollVotesRepository, NoteReactionsRepository, ChannelsRepository } from '@/models/_.js';
import { bindThis } from '@/decorators.js';
-import { isNotNull } from '@/misc/is-not-null.js';
import { DebounceLoader } from '@/misc/loader.js';
import { IdService } from '@/core/IdService.js';
import type { OnModuleInit } from '@nestjs/common';
@@ -276,7 +275,7 @@ export class NoteEntityService implements OnModuleInit {
packedFiles.set(k, v);
}
}
- return fileIds.map(id => packedFiles.get(id)).filter(isNotNull);
+ return fileIds.map(id => packedFiles.get(id)).filter(x => x != null);
}
@bindThis
@@ -449,12 +448,12 @@ export class NoteEntityService implements OnModuleInit {
await this.customEmojiService.prefetchEmojis(this.aggregateNoteEmojis(notes));
// TODO: 本当は renote とか reply がないのに renoteId とか replyId があったらここで解決しておく
- const fileIds = notes.map(n => [n.fileIds, n.renote?.fileIds, n.reply?.fileIds]).flat(2).filter(isNotNull);
+ const fileIds = notes.map(n => [n.fileIds, n.renote?.fileIds, n.reply?.fileIds]).flat(2).filter(x => x != null);
const packedFiles = fileIds.length > 0 ? await this.driveFileEntityService.packManyByIdsMap(fileIds) : new Map();
const users = [
...notes.map(({ user, userId }) => user ?? userId),
- ...notes.map(({ replyUserId }) => replyUserId).filter(isNotNull),
- ...notes.map(({ renoteUserId }) => renoteUserId).filter(isNotNull),
+ ...notes.map(({ replyUserId }) => replyUserId).filter(x => x != null),
+ ...notes.map(({ renoteUserId }) => renoteUserId).filter(x => x != null),
];
const packedUsers = await this.userEntityService.packMany(users, me)
.then(users => new Map(users.map(u => [u.id, u])));
diff --git a/packages/backend/src/core/entities/NotificationEntityService.ts b/packages/backend/src/core/entities/NotificationEntityService.ts
index 94d56c883bfb..f393513510e4 100644
--- a/packages/backend/src/core/entities/NotificationEntityService.ts
+++ b/packages/backend/src/core/entities/NotificationEntityService.ts
@@ -13,7 +13,6 @@ import type { MiGroupedNotification, MiNotification } from '@/models/Notificatio
import type { MiNote } from '@/models/Note.js';
import type { Packed } from '@/misc/json-schema.js';
import { bindThis } from '@/decorators.js';
-import { isNotNull } from '@/misc/is-not-null.js';
import { FilterUnionByProperty, groupedNotificationTypes } from '@/types.js';
import { CacheService } from '@/core/CacheService.js';
import { RoleEntityService } from './RoleEntityService.js';
@@ -103,7 +102,7 @@ export class NotificationEntityService implements OnModuleInit {
user,
reaction: reaction.reaction,
};
- }))).filter(r => isNotNull(r.user));
+ }))).filter(r => r.user != null);
// if all users have been deleted, don't show this notification
if (reactions.length === 0) {
return null;
@@ -124,7 +123,7 @@ export class NotificationEntityService implements OnModuleInit {
}
return this.userEntityService.pack(userId, { id: meId });
- }))).filter(isNotNull);
+ }))).filter(x => x != null);
// if all users have been deleted, don't show this notification
if (users.length === 0) {
return null;
@@ -181,7 +180,7 @@ export class NotificationEntityService implements OnModuleInit {
validNotifications = await this.#filterValidNotifier(validNotifications, meId);
- const noteIds = validNotifications.map(x => 'noteId' in x ? x.noteId : null).filter(isNotNull);
+ const noteIds = validNotifications.map(x => 'noteId' in x ? x.noteId : null).filter(x => x != null);
const notes = noteIds.length > 0 ? await this.notesRepository.find({
where: { id: In(noteIds) },
relations: ['user', 'reply', 'reply.user', 'renote', 'renote.user'],
@@ -223,7 +222,7 @@ export class NotificationEntityService implements OnModuleInit {
);
});
- return (await Promise.all(packPromises)).filter(isNotNull);
+ return (await Promise.all(packPromises)).filter(x => x != null);
}
@bindThis
@@ -305,7 +304,7 @@ export class NotificationEntityService implements OnModuleInit {
this.cacheService.userProfileCache.fetch(meId).then(p => new Set(p.mutedInstances)),
]);
- const notifierIds = notifications.map(notification => 'notifierId' in notification ? notification.notifierId : null).filter(isNotNull);
+ const notifierIds = notifications.map(notification => 'notifierId' in notification ? notification.notifierId : null).filter(x => x != null);
const notifiers = notifierIds.length > 0 ? await this.usersRepository.find({
where: { id: In(notifierIds) },
}) : [];
@@ -313,7 +312,7 @@ export class NotificationEntityService implements OnModuleInit {
const filteredNotifications = ((await Promise.all(notifications.map(async (notification) => {
const isValid = this.#validateNotifier(notification, userIdsWhoMeMuting, userMutedInstances, notifiers);
return isValid ? notification : null;
- }))) as [T | null] ).filter(isNotNull);
+ }))) as [T | null] ).filter(x => x != null);
return filteredNotifications;
}
diff --git a/packages/backend/src/core/entities/PageEntityService.ts b/packages/backend/src/core/entities/PageEntityService.ts
index 142d9e81dbc8..46bf51bb6d28 100644
--- a/packages/backend/src/core/entities/PageEntityService.ts
+++ b/packages/backend/src/core/entities/PageEntityService.ts
@@ -14,7 +14,6 @@ import type { MiPage } from '@/models/Page.js';
import type { MiDriveFile } from '@/models/DriveFile.js';
import { bindThis } from '@/decorators.js';
import { IdService } from '@/core/IdService.js';
-import { isNotNull } from '@/misc/is-not-null.js';
import { UserEntityService } from './UserEntityService.js';
import { DriveFileEntityService } from './DriveFileEntityService.js';
@@ -106,7 +105,7 @@ export class PageEntityService {
script: page.script,
eyeCatchingImageId: page.eyeCatchingImageId,
eyeCatchingImage: page.eyeCatchingImageId ? await this.driveFileEntityService.pack(page.eyeCatchingImageId) : null,
- attachedFiles: this.driveFileEntityService.packMany((await Promise.all(attachedFiles)).filter(isNotNull)),
+ attachedFiles: this.driveFileEntityService.packMany((await Promise.all(attachedFiles)).filter(x => x != null)),
likedCount: page.likedCount,
isLiked: meId ? await this.pageLikesRepository.exists({ where: { pageId: page.id, userId: meId } }) : undefined,
});
diff --git a/packages/backend/src/core/entities/UserEntityService.ts b/packages/backend/src/core/entities/UserEntityService.ts
index b80a1ec206b4..7fd093c1913a 100644
--- a/packages/backend/src/core/entities/UserEntityService.ts
+++ b/packages/backend/src/core/entities/UserEntityService.ts
@@ -47,7 +47,6 @@ import { IdService } from '@/core/IdService.js';
import type { AnnouncementService } from '@/core/AnnouncementService.js';
import type { CustomEmojiService } from '@/core/CustomEmojiService.js';
import { AvatarDecorationService } from '@/core/AvatarDecorationService.js';
-import { isNotNull } from '@/misc/is-not-null.js';
import type { OnModuleInit } from '@nestjs/common';
import type { NoteEntityService } from './NoteEntityService.js';
import type { DriveFileEntityService } from './DriveFileEntityService.js';
@@ -502,11 +501,15 @@ export class UserEntityService implements OnModuleInit {
emojis: this.customEmojiService.populateEmojis(user.emojis, user.host),
onlineStatus: this.getOnlineStatus(user),
// パフォーマンス上の理由でローカルユーザーのみ
- badgeRoles: user.host == null ? this.roleService.getUserBadgeRoles(user.id).then(rs => rs.sort((a, b) => b.displayOrder - a.displayOrder).map(r => ({
- name: r.name,
- iconUrl: r.iconUrl,
- displayOrder: r.displayOrder,
- }))) : undefined,
+ badgeRoles: user.host == null ? this.roleService.getUserBadgeRoles(user.id).then((rs) => rs
+ .filter((r) => r.isPublic || iAmModerator)
+ .sort((a, b) => b.displayOrder - a.displayOrder)
+ .map((r) => ({
+ name: r.name,
+ iconUrl: r.iconUrl,
+ displayOrder: r.displayOrder,
+ }))
+ ) : undefined,
...(isDetailed ? {
url: profile!.url,
@@ -514,7 +517,7 @@ export class UserEntityService implements OnModuleInit {
movedTo: user.movedToUri ? this.apPersonService.resolvePerson(user.movedToUri).then(user => user.id).catch(() => null) : null,
alsoKnownAs: user.alsoKnownAs
? Promise.all(user.alsoKnownAs.map(uri => this.apPersonService.fetchPerson(uri).then(user => user?.id).catch(() => null)))
- .then(xs => xs.length === 0 ? null : xs.filter(isNotNull))
+ .then(xs => xs.length === 0 ? null : xs.filter(x => x != null))
: null,
createdAt: this.idService.parse(user.id).date.toISOString(),
updatedAt: user.updatedAt ? user.updatedAt.toISOString() : null,
diff --git a/packages/backend/src/misc/is-not-null.ts b/packages/backend/src/misc/is-not-null.ts
deleted file mode 100644
index 8d9dc8bb396e..000000000000
--- a/packages/backend/src/misc/is-not-null.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * SPDX-FileCopyrightText: syuilo and misskey-project
- * SPDX-License-Identifier: AGPL-3.0-only
- */
-
-export function isNotNull>(input: T | undefined | null): input is T {
- return input != null;
-}
diff --git a/packages/backend/src/misc/is-user-related.ts b/packages/backend/src/misc/is-user-related.ts
index 93c9b2b814bf..862d6e6a3839 100644
--- a/packages/backend/src/misc/is-user-related.ts
+++ b/packages/backend/src/misc/is-user-related.ts
@@ -4,6 +4,10 @@
*/
export function isUserRelated(note: any, userIds: Set, ignoreAuthor = false): boolean {
+ if (!note) {
+ return false;
+ }
+
if (userIds.has(note.userId) && !ignoreAuthor) {
return true;
}
diff --git a/packages/backend/src/misc/prelude/array.ts b/packages/backend/src/misc/prelude/array.ts
index dbfe1fff18c6..f741a0c91339 100644
--- a/packages/backend/src/misc/prelude/array.ts
+++ b/packages/backend/src/misc/prelude/array.ts
@@ -65,44 +65,6 @@ export function maximum(xs: number[]): number {
return Math.max(...xs);
}
-/**
- * Splits an array based on the equivalence relation.
- * The concatenation of the result is equal to the argument.
- */
-export function groupBy(f: EndoRelation, xs: T[]): T[][] {
- const groups = [] as T[][];
- for (const x of xs) {
- const lastGroup = groups.at(-1);
- if (lastGroup !== undefined && f(lastGroup[0], x)) {
- lastGroup.push(x);
- } else {
- groups.push([x]);
- }
- }
- return groups;
-}
-
-/**
- * Splits an array based on the equivalence relation induced by the function.
- * The concatenation of the result is equal to the argument.
- */
-export function groupOn(f: (x: T) => S, xs: T[]): T[][] {
- return groupBy((a, b) => f(a) === f(b), xs);
-}
-
-export function groupByX(collections: T[], keySelector: (x: T) => string) {
- return collections.reduce((obj: Record, item: T) => {
- const key = keySelector(item);
- if (!Object.prototype.hasOwnProperty.call(obj, key)) {
- obj[key] = [];
- }
-
- obj[key].push(item);
-
- return obj;
- }, {});
-}
-
/**
* Compare two arrays by lexicographical order
*/
diff --git a/packages/backend/src/misc/prelude/math.ts b/packages/backend/src/misc/prelude/math.ts
deleted file mode 100644
index 38556def2dcf..000000000000
--- a/packages/backend/src/misc/prelude/math.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * SPDX-FileCopyrightText: syuilo and misskey-project
- * SPDX-License-Identifier: AGPL-3.0-only
- */
-
-export function gcd(a: number, b: number): number {
- return b === 0 ? a : gcd(b, a % b);
-}
diff --git a/packages/backend/src/misc/prelude/maybe.ts b/packages/backend/src/misc/prelude/maybe.ts
deleted file mode 100644
index 1c58ccb9c778..000000000000
--- a/packages/backend/src/misc/prelude/maybe.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * SPDX-FileCopyrightText: syuilo and misskey-project
- * SPDX-License-Identifier: AGPL-3.0-only
- */
-
-export interface IMaybe {
- isJust(): this is IJust;
-}
-
-export interface IJust extends IMaybe {
- get(): T;
-}
-
-export function just(value: T): IJust {
- return {
- isJust: () => true,
- get: () => value,
- };
-}
-
-export function nothing(): IMaybe {
- return {
- isJust: () => false,
- };
-}
diff --git a/packages/backend/src/misc/prelude/string.ts b/packages/backend/src/misc/prelude/string.ts
deleted file mode 100644
index 67ea5299619c..000000000000
--- a/packages/backend/src/misc/prelude/string.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * SPDX-FileCopyrightText: syuilo and misskey-project
- * SPDX-License-Identifier: AGPL-3.0-only
- */
-
-export function concat(xs: string[]): string {
- return xs.join('');
-}
-
-export function capitalize(s: string): string {
- return toUpperCase(s.charAt(0)) + toLowerCase(s.slice(1));
-}
-
-export function toUpperCase(s: string): string {
- return s.toUpperCase();
-}
-
-export function toLowerCase(s: string): string {
- return s.toLowerCase();
-}
diff --git a/packages/backend/src/misc/prelude/symbol.ts b/packages/backend/src/misc/prelude/symbol.ts
deleted file mode 100644
index 7e8d39bdb6b9..000000000000
--- a/packages/backend/src/misc/prelude/symbol.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
- * SPDX-FileCopyrightText: syuilo and misskey-project
- * SPDX-License-Identifier: AGPL-3.0-only
- */
-
-export const fallback = Symbol('fallback');
diff --git a/packages/backend/src/models/_.ts b/packages/backend/src/models/_.ts
index d366ce48d035..c72bdaa72726 100644
--- a/packages/backend/src/models/_.ts
+++ b/packages/backend/src/models/_.ts
@@ -82,34 +82,14 @@ import { MiReversiGame } from '@/models/ReversiGame.js';
import type { QueryDeepPartialEntity } from 'typeorm/query-builder/QueryPartialEntity.js';
export interface MiRepository {
- createTableColumnNames(this: Repository & MiRepository, queryBuilder: InsertQueryBuilder): string[];
- createTableColumnNamesWithPrimaryKey(this: Repository & MiRepository, queryBuilder: InsertQueryBuilder): string[];
+ createTableColumnNames(this: Repository & MiRepository): string[];
insertOne(this: Repository & MiRepository, entity: QueryDeepPartialEntity, findOptions?: Pick, 'relations'>): Promise;
selectAliasColumnNames(this: Repository & MiRepository, queryBuilder: InsertQueryBuilder, builder: SelectQueryBuilder): void;
}
export const miRepository = {
- createTableColumnNames(queryBuilder) {
- // @ts-expect-error -- protected
- const insertedColumns = queryBuilder.getInsertedColumns();
- if (insertedColumns.length) {
- return insertedColumns.map(column => column.databaseName);
- }
- if (!queryBuilder.expressionMap.mainAlias?.hasMetadata && !queryBuilder.expressionMap.insertColumns.length) {
- // @ts-expect-error -- protected
- const valueSets = queryBuilder.getValueSets();
- if (valueSets.length === 1) {
- return Object.keys(valueSets[0]);
- }
- }
- return queryBuilder.expressionMap.insertColumns;
- },
- createTableColumnNamesWithPrimaryKey(queryBuilder) {
- const columnNames = this.createTableColumnNames(queryBuilder);
- if (!columnNames.includes('id')) {
- columnNames.unshift('id');
- }
- return columnNames;
+ createTableColumnNames() {
+ return this.metadata.columns.filter(column => column.isSelect && !column.isVirtual).map(column => column.databaseName);
},
async insertOne(entity, findOptions?) {
const queryBuilder = this.createQueryBuilder().insert().values(entity);
@@ -117,7 +97,7 @@ export const miRepository = {
const mainAlias = queryBuilder.expressionMap.mainAlias!;
const name = mainAlias.name;
mainAlias.name = 't';
- const columnNames = this.createTableColumnNamesWithPrimaryKey(queryBuilder);
+ const columnNames = this.createTableColumnNames();
queryBuilder.returning(columnNames.reduce((a, c) => `${a}, ${queryBuilder.escape(c)}`, '').slice(2));
const builder = this.createQueryBuilder().addCommonTableExpression(queryBuilder, 'cte', { columnNames });
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
@@ -138,7 +118,7 @@ export const miRepository = {
selectOrAddSelect = (selection, selectionAliasName) => builder.addSelect(selection, selectionAliasName);
return builder.select(selection, selectionAliasName);
};
- for (const columnName of this.createTableColumnNamesWithPrimaryKey(queryBuilder)) {
+ for (const columnName of this.createTableColumnNames()) {
selectOrAddSelect(`${builder.alias}.${columnName}`, `${builder.alias}_${columnName}`);
}
},
diff --git a/packages/backend/src/models/json-schema/drive-file.ts b/packages/backend/src/models/json-schema/drive-file.ts
index ca88cc0e3975..5ee1561c50c4 100644
--- a/packages/backend/src/models/json-schema/drive-file.ts
+++ b/packages/backend/src/models/json-schema/drive-file.ts
@@ -20,7 +20,7 @@ export const packedDriveFileSchema = {
name: {
type: 'string',
optional: false, nullable: false,
- example: 'lenna.jpg',
+ example: '192.jpg',
},
type: {
type: 'string',
diff --git a/packages/backend/src/models/json-schema/role.ts b/packages/backend/src/models/json-schema/role.ts
index d9987a70c381..7366f053560d 100644
--- a/packages/backend/src/models/json-schema/role.ts
+++ b/packages/backend/src/models/json-schema/role.ts
@@ -228,6 +228,10 @@ export const packedRolePoliciesSchema = {
type: 'boolean',
optional: false, nullable: false,
},
+ canUpdateBioMedia: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
pinLimit: {
type: 'integer',
optional: false, nullable: false,
diff --git a/packages/backend/src/queue/processors/DeliverProcessorService.ts b/packages/backend/src/queue/processors/DeliverProcessorService.ts
index b73195afc3f8..d665945861e2 100644
--- a/packages/backend/src/queue/processors/DeliverProcessorService.ts
+++ b/packages/backend/src/queue/processors/DeliverProcessorService.ts
@@ -109,6 +109,12 @@ export class DeliverProcessorService {
suspensionState: 'autoSuspendedForNotResponding',
});
}
+ } else {
+ // isNotRespondingがtrueでnotRespondingSinceがnullの場合はnotRespondingSinceをセット
+ // notRespondingSinceは新たな機能なので、それ以前のデータにはnotRespondingSinceがない場合がある
+ this.federatedInstanceService.update(i.id, {
+ notRespondingSince: new Date(),
+ });
}
this.apRequestChart.deliverFail();
diff --git a/packages/backend/src/server/api/ApiCallService.ts b/packages/backend/src/server/api/ApiCallService.ts
index 166f9c8675fd..47f64f660939 100644
--- a/packages/backend/src/server/api/ApiCallService.ts
+++ b/packages/backend/src/server/api/ApiCallService.ts
@@ -73,6 +73,16 @@ export class ApiCallService implements OnApplicationShutdown {
reply.header('WWW-Authenticate', `Bearer realm="Misskey", error="insufficient_scope", error_description="${err.message}"`);
}
statusCode = statusCode ?? 403;
+ } else if (err.code === 'RATE_LIMIT_EXCEEDED') {
+ const info: unknown = err.info;
+ const unixEpochInSeconds = Date.now();
+ if (typeof(info) === 'object' && info && 'resetMs' in info && typeof(info.resetMs) === 'number') {
+ const cooldownInSeconds = Math.ceil((info.resetMs - unixEpochInSeconds) / 1000);
+ // もしかするとマイナスになる可能性がなくはないのでマイナスだったら0にしておく
+ reply.header('Retry-After', Math.max(cooldownInSeconds, 0).toString(10));
+ } else {
+ this.logger.warn(`rate limit information has unexpected type ${typeof(err.info?.reset)}`);
+ }
} else if (!statusCode) {
statusCode = 500;
}
@@ -308,12 +318,17 @@ export class ApiCallService implements OnApplicationShutdown {
if (factor > 0) {
// Rate limit
await this.rateLimiterService.limit(limit as IEndpointMeta['limit'] & { key: NonNullable }, limitActor, factor).catch(err => {
- throw new ApiError({
- message: 'Rate limit exceeded. Please try again later.',
- code: 'RATE_LIMIT_EXCEEDED',
- id: 'd5826d14-3982-4d2e-8011-b9e9f02499ef',
- httpStatusCode: 429,
- });
+ if ('info' in err) {
+ // errはLimiter.LimiterInfoであることが期待される
+ throw new ApiError({
+ message: 'Rate limit exceeded. Please try again later.',
+ code: 'RATE_LIMIT_EXCEEDED',
+ id: 'd5826d14-3982-4d2e-8011-b9e9f02499ef',
+ httpStatusCode: 429,
+ }, err.info);
+ } else {
+ throw new TypeError('information must be a rate-limiter information.');
+ }
});
}
}
diff --git a/packages/backend/src/server/api/RateLimiterService.ts b/packages/backend/src/server/api/RateLimiterService.ts
index 0439cdfe5e03..52d73baa0adf 100644
--- a/packages/backend/src/server/api/RateLimiterService.ts
+++ b/packages/backend/src/server/api/RateLimiterService.ts
@@ -32,11 +32,13 @@ export class RateLimiterService {
@bindThis
public limit(limitation: IEndpointMeta['limit'] & { key: NonNullable }, actor: string, factor = 1) {
- return new Promise((ok, reject) => {
- if (this.disabled) ok();
+ {
+ if (this.disabled) {
+ return Promise.resolve();
+ }
// Short-term limit
- const min = (): void => {
+ const min = new Promise((ok, reject) => {
const minIntervalLimiter = new Limiter({
id: `${actor}:${limitation.key}:min`,
duration: limitation.minInterval! * factor,
@@ -46,25 +48,25 @@ export class RateLimiterService {
minIntervalLimiter.get((err, info) => {
if (err) {
- return reject('ERR');
+ return reject({ code: 'ERR', info });
}
this.logger.debug(`${actor} ${limitation.key} min remaining: ${info.remaining}`);
if (info.remaining === 0) {
- reject('BRIEF_REQUEST_INTERVAL');
+ return reject({ code: 'BRIEF_REQUEST_INTERVAL', info });
} else {
if (hasLongTermLimit) {
- max();
+ return max.then(ok, reject);
} else {
- ok();
+ return ok();
}
}
});
- };
+ });
// Long term limit
- const max = (): void => {
+ const max = new Promise((ok, reject) => {
const limiter = new Limiter({
id: `${actor}:${limitation.key}`,
duration: limitation.duration! * factor,
@@ -74,18 +76,18 @@ export class RateLimiterService {
limiter.get((err, info) => {
if (err) {
- return reject('ERR');
+ return reject({ code: 'ERR', info });
}
this.logger.debug(`${actor} ${limitation.key} max remaining: ${info.remaining}`);
if (info.remaining === 0) {
- reject('RATE_LIMIT_EXCEEDED');
+ return reject({ code: 'RATE_LIMIT_EXCEEDED', info });
} else {
- ok();
+ return ok();
}
});
- };
+ });
const hasShortTermLimit = typeof limitation.minInterval === 'number';
@@ -94,12 +96,12 @@ export class RateLimiterService {
typeof limitation.max === 'number';
if (hasShortTermLimit) {
- min();
+ return min;
} else if (hasLongTermLimit) {
- max();
+ return max;
} else {
- ok();
+ return Promise.resolve();
}
- });
+ }
}
}
diff --git a/packages/backend/src/server/api/endpoints/admin/ad/update.ts b/packages/backend/src/server/api/endpoints/admin/ad/update.ts
index 62358457ff76..4e3d731acac9 100644
--- a/packages/backend/src/server/api/endpoints/admin/ad/update.ts
+++ b/packages/backend/src/server/api/endpoints/admin/ad/update.ts
@@ -40,7 +40,7 @@ export const paramDef = {
startsAt: { type: 'integer' },
dayOfWeek: { type: 'integer' },
},
- required: ['id', 'memo', 'url', 'imageUrl', 'place', 'priority', 'ratio', 'expiresAt', 'startsAt', 'dayOfWeek'],
+ required: ['id'],
} as const;
@Injectable()
@@ -63,8 +63,8 @@ export default class extends Endpoint { // eslint-
ratio: ps.ratio,
memo: ps.memo,
imageUrl: ps.imageUrl,
- expiresAt: new Date(ps.expiresAt),
- startsAt: new Date(ps.startsAt),
+ expiresAt: ps.expiresAt ? new Date(ps.expiresAt) : undefined,
+ startsAt: ps.startsAt ? new Date(ps.startsAt) : undefined,
dayOfWeek: ps.dayOfWeek,
});
diff --git a/packages/backend/src/server/api/endpoints/admin/drive/show-file.ts b/packages/backend/src/server/api/endpoints/admin/drive/show-file.ts
index 459d8880fad3..a7136d8c8cc8 100644
--- a/packages/backend/src/server/api/endpoints/admin/drive/show-file.ts
+++ b/packages/backend/src/server/api/endpoints/admin/drive/show-file.ts
@@ -61,7 +61,7 @@ export const meta = {
name: {
type: 'string',
optional: false, nullable: false,
- example: 'lenna.jpg',
+ example: '192.jpg',
},
type: {
type: 'string',
diff --git a/packages/backend/src/server/api/endpoints/admin/roles/update.ts b/packages/backend/src/server/api/endpoints/admin/roles/update.ts
index 5242e0be2f96..465ad7aaafbf 100644
--- a/packages/backend/src/server/api/endpoints/admin/roles/update.ts
+++ b/packages/backend/src/server/api/endpoints/admin/roles/update.ts
@@ -6,7 +6,6 @@
import { Inject, Injectable } from '@nestjs/common';
import { Endpoint } from '@/server/api/endpoint-base.js';
import type { RolesRepository } from '@/models/_.js';
-import { GlobalEventService } from '@/core/GlobalEventService.js';
import { DI } from '@/di-symbols.js';
import { ApiError } from '@/server/api/error.js';
import { RoleService } from '@/core/RoleService.js';
@@ -50,19 +49,6 @@ export const paramDef = {
},
required: [
'roleId',
- 'name',
- 'description',
- 'color',
- 'iconUrl',
- 'target',
- 'condFormula',
- 'isPublic',
- 'isModerator',
- 'isAdministrator',
- 'asBadge',
- 'canEditMembersByModerator',
- 'displayOrder',
- 'policies',
],
} as const;
diff --git a/packages/backend/src/server/api/endpoints/antennas/create.ts b/packages/backend/src/server/api/endpoints/antennas/create.ts
index ec081985142c..577b9e1b1f8c 100644
--- a/packages/backend/src/server/api/endpoints/antennas/create.ts
+++ b/packages/backend/src/server/api/endpoints/antennas/create.ts
@@ -93,7 +93,7 @@ export default class extends Endpoint { // eslint-
const currentAntennasCount = await this.antennasRepository.countBy({
userId: me.id,
});
- if (currentAntennasCount > (await this.roleService.getUserPolicies(me.id)).antennaLimit) {
+ if (currentAntennasCount >= (await this.roleService.getUserPolicies(me.id)).antennaLimit) {
throw new ApiError(meta.errors.tooManyAntennas);
}
diff --git a/packages/backend/src/server/api/endpoints/clips/update.ts b/packages/backend/src/server/api/endpoints/clips/update.ts
index 3b44ba81b3e6..603a3ccf3dc5 100644
--- a/packages/backend/src/server/api/endpoints/clips/update.ts
+++ b/packages/backend/src/server/api/endpoints/clips/update.ts
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
-import { Inject, Injectable } from '@nestjs/common';
+import { Injectable } from '@nestjs/common';
import { Endpoint } from '@/server/api/endpoint-base.js';
import { ClipEntityService } from '@/core/entities/ClipEntityService.js';
import { ClipService } from '@/core/ClipService.js';
@@ -41,7 +41,7 @@ export const paramDef = {
isPublic: { type: 'boolean' },
description: { type: 'string', nullable: true, minLength: 1, maxLength: 2048 },
},
- required: ['clipId', 'name'],
+ required: ['clipId'],
} as const;
@Injectable()
diff --git a/packages/backend/src/server/api/endpoints/drive/folders/update.ts b/packages/backend/src/server/api/endpoints/drive/folders/update.ts
index 52b8b335b501..62b04e1df36d 100644
--- a/packages/backend/src/server/api/endpoints/drive/folders/update.ts
+++ b/packages/backend/src/server/api/endpoints/drive/folders/update.ts
@@ -95,15 +95,14 @@ export default class extends Endpoint { // eslint-
// Check if the circular reference will occur
const checkCircle = async (folderId: string): Promise => {
- // Fetch folder
- const folder2 = await this.driveFoldersRepository.findOneBy({
+ const folder2 = await this.driveFoldersRepository.findOneByOrFail({
id: folderId,
});
- if (folder2!.id === folder!.id) {
+ if (folder2.id === folder.id) {
return true;
- } else if (folder2!.parentId) {
- return await checkCircle(folder2!.parentId);
+ } else if (folder2.parentId) {
+ return await checkCircle(folder2.parentId);
} else {
return false;
}
diff --git a/packages/backend/src/server/api/endpoints/gallery/posts/create.ts b/packages/backend/src/server/api/endpoints/gallery/posts/create.ts
index 46f8998810d4..504a9c789e8d 100644
--- a/packages/backend/src/server/api/endpoints/gallery/posts/create.ts
+++ b/packages/backend/src/server/api/endpoints/gallery/posts/create.ts
@@ -12,7 +12,6 @@ import type { MiDriveFile } from '@/models/DriveFile.js';
import { IdService } from '@/core/IdService.js';
import { GalleryPostEntityService } from '@/core/entities/GalleryPostEntityService.js';
import { DI } from '@/di-symbols.js';
-import { isNotNull } from '@/misc/is-not-null.js';
export const meta = {
tags: ['gallery'],
@@ -70,7 +69,7 @@ export default class extends Endpoint { // eslint-
id: fileId,
userId: me.id,
}),
- ))).filter(isNotNull);
+ ))).filter(x => x != null);
if (files.length === 0) {
throw new Error();
diff --git a/packages/backend/src/server/api/endpoints/gallery/posts/update.ts b/packages/backend/src/server/api/endpoints/gallery/posts/update.ts
index 8bd83ff5ba0a..5243ee960314 100644
--- a/packages/backend/src/server/api/endpoints/gallery/posts/update.ts
+++ b/packages/backend/src/server/api/endpoints/gallery/posts/update.ts
@@ -10,7 +10,6 @@ import type { DriveFilesRepository, GalleryPostsRepository } from '@/models/_.js
import type { MiDriveFile } from '@/models/DriveFile.js';
import { GalleryPostEntityService } from '@/core/entities/GalleryPostEntityService.js';
import { DI } from '@/di-symbols.js';
-import { isNotNull } from '@/misc/is-not-null.js';
export const meta = {
tags: ['gallery'],
@@ -48,7 +47,7 @@ export const paramDef = {
} },
isSensitive: { type: 'boolean', default: false },
},
- required: ['postId', 'title', 'fileIds'],
+ required: ['postId'],
} as const;
@Injectable()
@@ -63,15 +62,19 @@ export default class extends Endpoint { // eslint-
private galleryPostEntityService: GalleryPostEntityService,
) {
super(meta, paramDef, async (ps, me) => {
- const files = (await Promise.all(ps.fileIds.map(fileId =>
- this.driveFilesRepository.findOneBy({
- id: fileId,
- userId: me.id,
- }),
- ))).filter(isNotNull);
-
- if (files.length === 0) {
- throw new Error();
+ let files: Array | undefined;
+
+ if (ps.fileIds) {
+ files = (await Promise.all(ps.fileIds.map(fileId =>
+ this.driveFilesRepository.findOneBy({
+ id: fileId,
+ userId: me.id,
+ }),
+ ))).filter(x => x != null);
+
+ if (files.length === 0) {
+ throw new Error();
+ }
}
await this.galleryPostsRepository.update({
@@ -82,7 +85,7 @@ export default class extends Endpoint { // eslint-
title: ps.title,
description: ps.description,
isSensitive: ps.isSensitive,
- fileIds: files.map(file => file.id),
+ fileIds: files ? files.map(file => file.id) : undefined,
});
const post = await this.galleryPostsRepository.findOneByOrFail({ id: ps.postId });
diff --git a/packages/backend/src/server/api/endpoints/i/import-antennas.ts b/packages/backend/src/server/api/endpoints/i/import-antennas.ts
index b4661a93e2b1..bc46163e3d27 100644
--- a/packages/backend/src/server/api/endpoints/i/import-antennas.ts
+++ b/packages/backend/src/server/api/endpoints/i/import-antennas.ts
@@ -78,7 +78,7 @@ export default class extends Endpoint {
if (file.size === 0) throw new ApiError(meta.errors.emptyFile);
const antennas: (_Antenna & { userListAccts: string[] | null })[] = JSON.parse(await this.downloadService.downloadTextFile(file.url));
const currentAntennasCount = await this.antennasRepository.countBy({ userId: me.id });
- if (currentAntennasCount + antennas.length > (await this.roleService.getUserPolicies(me.id)).antennaLimit) {
+ if (currentAntennasCount + antennas.length >= (await this.roleService.getUserPolicies(me.id)).antennaLimit) {
throw new ApiError(meta.errors.tooManyAntennas);
}
this.queueService.createImportAntennasJob(me, antennas);
diff --git a/packages/backend/src/server/api/endpoints/i/update.ts b/packages/backend/src/server/api/endpoints/i/update.ts
index a8e702f328e6..a1e2fa5e4cdf 100644
--- a/packages/backend/src/server/api/endpoints/i/update.ts
+++ b/packages/backend/src/server/api/endpoints/i/update.ts
@@ -25,7 +25,7 @@ import { UserFollowingService } from '@/core/UserFollowingService.js';
import { AccountUpdateService } from '@/core/AccountUpdateService.js';
import { HashtagService } from '@/core/HashtagService.js';
import { DI } from '@/di-symbols.js';
-import { RoleService } from '@/core/RoleService.js';
+import { RolePolicies, RoleService } from '@/core/RoleService.js';
import { CacheService } from '@/core/CacheService.js';
import { RemoteUserResolveService } from '@/core/RemoteUserResolveService.js';
import { DriveFileEntityService } from '@/core/entities/DriveFileEntityService.js';
@@ -256,8 +256,16 @@ export default class extends Endpoint { // eslint-
const profileUpdates = {} as Partial;
const profile = await this.userProfilesRepository.findOneByOrFail({ userId: user.id });
-
- if (ps.name !== undefined) updates.name = ps.name;
+ let policies: RolePolicies | null = null;
+
+ if (ps.name !== undefined) {
+ if (ps.name === null) {
+ updates.name = null;
+ } else {
+ const trimmedName = ps.name.trim();
+ updates.name = trimmedName === '' ? null : trimmedName;
+ }
+ }
if (ps.description !== undefined) profileUpdates.description = ps.description;
if (ps.lang !== undefined) profileUpdates.lang = ps.lang;
if (ps.location !== undefined) profileUpdates.location = ps.location;
@@ -289,14 +297,16 @@ export default class extends Endpoint { // eslint-
}
if (ps.mutedWords !== undefined) {
- checkMuteWordCount(ps.mutedWords, (await this.roleService.getUserPolicies(user.id)).wordMuteLimit);
+ policies ??= await this.roleService.getUserPolicies(user.id);
+ checkMuteWordCount(ps.mutedWords, policies.wordMuteLimit);
validateMuteWordRegex(ps.mutedWords);
profileUpdates.mutedWords = ps.mutedWords;
profileUpdates.enableWordMute = ps.mutedWords.length > 0;
}
if (ps.hardMutedWords !== undefined) {
- checkMuteWordCount(ps.hardMutedWords, (await this.roleService.getUserPolicies(user.id)).wordMuteLimit);
+ policies ??= await this.roleService.getUserPolicies(user.id);
+ checkMuteWordCount(ps.hardMutedWords, policies.wordMuteLimit);
validateMuteWordRegex(ps.hardMutedWords);
profileUpdates.hardMutedWords = ps.hardMutedWords;
}
@@ -315,13 +325,17 @@ export default class extends Endpoint { // eslint-
if (typeof ps.injectFeaturedNote === 'boolean') profileUpdates.injectFeaturedNote = ps.injectFeaturedNote;
if (typeof ps.receiveAnnouncementEmail === 'boolean') profileUpdates.receiveAnnouncementEmail = ps.receiveAnnouncementEmail;
if (typeof ps.alwaysMarkNsfw === 'boolean') {
- if ((await roleService.getUserPolicies(user.id)).alwaysMarkNsfw) throw new ApiError(meta.errors.restrictedByRole);
+ policies ??= await this.roleService.getUserPolicies(user.id);
+ if (policies.alwaysMarkNsfw) throw new ApiError(meta.errors.restrictedByRole);
profileUpdates.alwaysMarkNsfw = ps.alwaysMarkNsfw;
}
if (typeof ps.autoSensitive === 'boolean') profileUpdates.autoSensitive = ps.autoSensitive;
if (ps.emailNotificationTypes !== undefined) profileUpdates.emailNotificationTypes = ps.emailNotificationTypes;
if (ps.avatarId) {
+ policies ??= await this.roleService.getUserPolicies(user.id);
+ if (!policies.canUpdateBioMedia) throw new ApiError(meta.errors.restrictedByRole);
+
const avatar = await this.driveFilesRepository.findOneBy({ id: ps.avatarId });
if (avatar == null || avatar.userId !== user.id) throw new ApiError(meta.errors.noSuchAvatar);
@@ -337,6 +351,9 @@ export default class extends Endpoint { // eslint-
}
if (ps.bannerId) {
+ policies ??= await this.roleService.getUserPolicies(user.id);
+ if (!policies.canUpdateBioMedia) throw new ApiError(meta.errors.restrictedByRole);
+
const banner = await this.driveFilesRepository.findOneBy({ id: ps.bannerId });
if (banner == null || banner.userId !== user.id) throw new ApiError(meta.errors.noSuchBanner);
@@ -352,14 +369,15 @@ export default class extends Endpoint { // eslint-
}
if (ps.avatarDecorations) {
+ policies ??= await this.roleService.getUserPolicies(user.id);
const decorations = await this.avatarDecorationService.getAll(true);
- const [myRoles, myPolicies] = await Promise.all([this.roleService.getUserRoles(user.id), this.roleService.getUserPolicies(user.id)]);
+ const myRoles = await this.roleService.getUserRoles(user.id);
const allRoles = await this.roleService.getRoles();
const decorationIds = decorations
.filter(d => d.roleIdsThatCanBeUsedThisDecoration.filter(roleId => allRoles.some(r => r.id === roleId)).length === 0 || myRoles.some(r => d.roleIdsThatCanBeUsedThisDecoration.includes(r.id)))
.map(d => d.id);
- if (ps.avatarDecorations.length > myPolicies.avatarDecorationLimit) throw new ApiError(meta.errors.restrictedByRole);
+ if (ps.avatarDecorations.length > policies.avatarDecorationLimit) throw new ApiError(meta.errors.restrictedByRole);
updates.avatarDecorations = ps.avatarDecorations.filter(d => decorationIds.includes(d.id)).map(d => ({
id: d.id,
diff --git a/packages/backend/src/server/api/endpoints/i/webhooks/create.ts b/packages/backend/src/server/api/endpoints/i/webhooks/create.ts
index c69238028804..9eb7f5b3a033 100644
--- a/packages/backend/src/server/api/endpoints/i/webhooks/create.ts
+++ b/packages/backend/src/server/api/endpoints/i/webhooks/create.ts
@@ -85,7 +85,7 @@ export default class extends Endpoint { // eslint-
const currentWebhooksCount = await this.webhooksRepository.countBy({
userId: me.id,
});
- if (currentWebhooksCount > (await this.roleService.getUserPolicies(me.id)).webhookLimit) {
+ if (currentWebhooksCount >= (await this.roleService.getUserPolicies(me.id)).webhookLimit) {
throw new ApiError(meta.errors.tooManyWebhooks);
}
diff --git a/packages/backend/src/server/api/endpoints/i/webhooks/update.ts b/packages/backend/src/server/api/endpoints/i/webhooks/update.ts
index 6e380d76f89e..07a25bd82aad 100644
--- a/packages/backend/src/server/api/endpoints/i/webhooks/update.ts
+++ b/packages/backend/src/server/api/endpoints/i/webhooks/update.ts
@@ -34,13 +34,13 @@ export const paramDef = {
webhookId: { type: 'string', format: 'misskey:id' },
name: { type: 'string', minLength: 1, maxLength: 100 },
url: { type: 'string', minLength: 1, maxLength: 1024 },
- secret: { type: 'string', maxLength: 1024, default: '' },
+ secret: { type: 'string', nullable: true, maxLength: 1024 },
on: { type: 'array', items: {
type: 'string', enum: webhookEventTypes,
} },
active: { type: 'boolean' },
},
- required: ['webhookId', 'name', 'url', 'on', 'active'],
+ required: ['webhookId'],
} as const;
// TODO: ロジックをサービスに切り出す
@@ -66,7 +66,7 @@ export default class extends Endpoint { // eslint-
await this.webhooksRepository.update(webhook.id, {
name: ps.name,
url: ps.url,
- secret: ps.secret,
+ secret: ps.secret === null ? '' : ps.secret,
on: ps.on,
active: ps.active,
});
diff --git a/packages/backend/src/server/api/endpoints/notes/reactions/create.ts b/packages/backend/src/server/api/endpoints/notes/reactions/create.ts
index b9899608bf16..0f0dcca605ab 100644
--- a/packages/backend/src/server/api/endpoints/notes/reactions/create.ts
+++ b/packages/backend/src/server/api/endpoints/notes/reactions/create.ts
@@ -36,6 +36,12 @@ export const meta = {
code: 'YOU_HAVE_BEEN_BLOCKED',
id: '20ef5475-9f38-4e4c-bd33-de6d979498ec',
},
+
+ cannotReactToRenote: {
+ message: 'You cannot react to Renote.',
+ code: 'CANNOT_REACT_TO_RENOTE',
+ id: 'eaccdc08-ddef-43fe-908f-d108faad57f5',
+ },
},
} as const;
@@ -62,6 +68,7 @@ export default class extends Endpoint { // eslint-
await this.reactionService.create(me, note, ps.reaction).catch(err => {
if (err.id === '51c42bb4-931a-456b-bff7-e5a8a70dd298') throw new ApiError(meta.errors.alreadyReacted);
if (err.id === 'e70412a4-7197-4726-8e74-f3e0deb92aa7') throw new ApiError(meta.errors.youHaveBeenBlocked);
+ if (err.id === '12c35529-3c79-4327-b1cc-e2cf63a71925') throw new ApiError(meta.errors.cannotReactToRenote);
throw err;
});
return;
diff --git a/packages/backend/src/server/api/endpoints/pages/update.ts b/packages/backend/src/server/api/endpoints/pages/update.ts
index b8e5e70a25a4..f11bbbcb1a47 100644
--- a/packages/backend/src/server/api/endpoints/pages/update.ts
+++ b/packages/backend/src/server/api/endpoints/pages/update.ts
@@ -70,7 +70,7 @@ export const paramDef = {
alignCenter: { type: 'boolean' },
hideTitleWhenPinned: { type: 'boolean' },
},
- required: ['pageId', 'title', 'name', 'content', 'variables', 'script'],
+ required: ['pageId'],
} as const;
@Injectable()
@@ -91,9 +91,8 @@ export default class extends Endpoint { // eslint-
throw new ApiError(meta.errors.accessDenied);
}
- let eyeCatchingImage = null;
if (ps.eyeCatchingImageId != null) {
- eyeCatchingImage = await this.driveFilesRepository.findOneBy({
+ const eyeCatchingImage = await this.driveFilesRepository.findOneBy({
id: ps.eyeCatchingImageId,
userId: me.id,
});
@@ -116,23 +115,15 @@ export default class extends Endpoint { // eslint-
await this.pagesRepository.update(page.id, {
updatedAt: new Date(),
title: ps.title,
- // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
- name: ps.name === undefined ? page.name : ps.name,
+ name: ps.name,
summary: ps.summary === undefined ? page.summary : ps.summary,
content: ps.content,
variables: ps.variables,
script: ps.script,
- // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
- alignCenter: ps.alignCenter === undefined ? page.alignCenter : ps.alignCenter,
- // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
- hideTitleWhenPinned: ps.hideTitleWhenPinned === undefined ? page.hideTitleWhenPinned : ps.hideTitleWhenPinned,
- // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
- font: ps.font === undefined ? page.font : ps.font,
- eyeCatchingImageId: ps.eyeCatchingImageId === null
- ? null
- : ps.eyeCatchingImageId === undefined
- ? page.eyeCatchingImageId
- : eyeCatchingImage!.id,
+ alignCenter: ps.alignCenter,
+ hideTitleWhenPinned: ps.hideTitleWhenPinned,
+ font: ps.font,
+ eyeCatchingImageId: ps.eyeCatchingImageId,
});
});
}
diff --git a/packages/backend/src/server/api/endpoints/pinned-users.ts b/packages/backend/src/server/api/endpoints/pinned-users.ts
index 784766bcb551..15832ef7f8d7 100644
--- a/packages/backend/src/server/api/endpoints/pinned-users.ts
+++ b/packages/backend/src/server/api/endpoints/pinned-users.ts
@@ -12,7 +12,6 @@ import { Endpoint } from '@/server/api/endpoint-base.js';
import { MetaService } from '@/core/MetaService.js';
import { UserEntityService } from '@/core/entities/UserEntityService.js';
import { DI } from '@/di-symbols.js';
-import { isNotNull } from '@/misc/is-not-null.js';
export const meta = {
tags: ['users'],
@@ -53,7 +52,7 @@ export default class extends Endpoint { // eslint-
host: acct.host ?? IsNull(),
})));
- return await this.userEntityService.packMany(users.filter(isNotNull), me, { schema: 'UserDetailed' });
+ return await this.userEntityService.packMany(users.filter(x => x != null), me, { schema: 'UserDetailed' });
});
}
}
diff --git a/packages/backend/src/server/api/endpoints/users/lists/create-from-public.ts b/packages/backend/src/server/api/endpoints/users/lists/create-from-public.ts
index 8504da0209d2..7e44d501ab31 100644
--- a/packages/backend/src/server/api/endpoints/users/lists/create-from-public.ts
+++ b/packages/backend/src/server/api/endpoints/users/lists/create-from-public.ts
@@ -100,7 +100,7 @@ export default class extends Endpoint { // eslint-
const currentCount = await this.userListsRepository.countBy({
userId: me.id,
});
- if (currentCount > (await this.roleService.getUserPolicies(me.id)).userListLimit) {
+ if (currentCount >= (await this.roleService.getUserPolicies(me.id)).userListLimit) {
throw new ApiError(meta.errors.tooManyUserLists);
}
diff --git a/packages/backend/src/server/api/endpoints/users/lists/create.ts b/packages/backend/src/server/api/endpoints/users/lists/create.ts
index 9378bde5cb55..7daf05ba4ece 100644
--- a/packages/backend/src/server/api/endpoints/users/lists/create.ts
+++ b/packages/backend/src/server/api/endpoints/users/lists/create.ts
@@ -61,7 +61,7 @@ export default class extends Endpoint { // eslint-
const currentCount = await this.userListsRepository.countBy({
userId: me.id,
});
- if (currentCount > (await this.roleService.getUserPolicies(me.id)).userListLimit) {
+ if (currentCount >= (await this.roleService.getUserPolicies(me.id)).userListLimit) {
throw new ApiError(meta.errors.tooManyUserLists);
}
diff --git a/packages/backend/src/server/api/endpoints/users/reactions.ts b/packages/backend/src/server/api/endpoints/users/reactions.ts
index aca883a052bb..7805ae328861 100644
--- a/packages/backend/src/server/api/endpoints/users/reactions.ts
+++ b/packages/backend/src/server/api/endpoints/users/reactions.ts
@@ -12,6 +12,7 @@ import { DI } from '@/di-symbols.js';
import { CacheService } from '@/core/CacheService.js';
import { UserEntityService } from '@/core/entities/UserEntityService.js';
import { RoleService } from '@/core/RoleService.js';
+import { isUserRelated } from '@/misc/is-user-related.js';
import { ApiError } from '../../error.js';
export const meta = {
@@ -74,6 +75,7 @@ export default class extends Endpoint { // eslint-
private roleService: RoleService,
) {
super(meta, paramDef, async (ps, me) => {
+ const userIdsWhoBlockingMe = me ? await this.cacheService.userBlockedCache.fetch(me.id) : new Set();
const iAmModerator = me ? await this.roleService.isModerator(me) : false; // Moderators can see reactions of all users
if (!iAmModerator) {
const user = await this.cacheService.findUserById(ps.userId);
@@ -85,8 +87,15 @@ export default class extends Endpoint { // eslint-
if ((me == null || me.id !== ps.userId) && !profile.publicReactions) {
throw new ApiError(meta.errors.reactionsNotPublic);
}
+
+ // early return if me is blocked by requesting user
+ if (userIdsWhoBlockingMe.has(ps.userId)) {
+ return [];
+ }
}
+ const userIdsWhoMeMuting = me ? await this.cacheService.userMutingsCache.fetch(me.id) : new Set();
+
const query = this.queryService.makePaginationQuery(this.noteReactionsRepository.createQueryBuilder('reaction'),
ps.sinceId, ps.untilId, ps.sinceDate, ps.untilDate)
.andWhere('reaction.userId = :userId', { userId: ps.userId })
@@ -94,9 +103,15 @@ export default class extends Endpoint { // eslint-
this.queryService.generateVisibilityQuery(query, me);
- const reactions = await query
+ const reactions = (await query
.limit(ps.limit)
- .getMany();
+ .getMany()).filter(reaction => {
+ if (reaction.note?.userId === ps.userId) return true; // we can see reactions to note of requesting user
+ if (me && isUserRelated(reaction.note, userIdsWhoBlockingMe)) return false;
+ if (me && isUserRelated(reaction.note, userIdsWhoMeMuting)) return false;
+
+ return true;
+ });
return await this.noteReactionEntityService.packMany(reactions, me, { withNote: true });
});
diff --git a/packages/backend/src/server/api/endpoints/users/search-by-username-and-host.ts b/packages/backend/src/server/api/endpoints/users/search-by-username-and-host.ts
index 7b3bdab327eb..8ff952dcb544 100644
--- a/packages/backend/src/server/api/endpoints/users/search-by-username-and-host.ts
+++ b/packages/backend/src/server/api/endpoints/users/search-by-username-and-host.ts
@@ -3,15 +3,9 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
-import { Brackets } from 'typeorm';
-import { Inject, Injectable } from '@nestjs/common';
-import type { UsersRepository, FollowingsRepository } from '@/models/_.js';
-import type { Config } from '@/config.js';
-import type { MiUser } from '@/models/User.js';
+import { Injectable } from '@nestjs/common';
import { Endpoint } from '@/server/api/endpoint-base.js';
-import { UserEntityService } from '@/core/entities/UserEntityService.js';
-import { DI } from '@/di-symbols.js';
-import { sqlLikeEscape } from '@/misc/sql-like-escape.js';
+import { UserSearchService } from '@/core/UserSearchService.js';
export const meta = {
tags: ['users'],
@@ -49,89 +43,16 @@ export const paramDef = {
@Injectable()
export default class extends Endpoint { // eslint-disable-line import/no-default-export
constructor(
- @Inject(DI.config)
- private config: Config,
-
- @Inject(DI.usersRepository)
- private usersRepository: UsersRepository,
-
- @Inject(DI.followingsRepository)
- private followingsRepository: FollowingsRepository,
-
- private userEntityService: UserEntityService,
+ private userSearchService: UserSearchService,
) {
- super(meta, paramDef, async (ps, me) => {
- const setUsernameAndHostQuery = (query = this.usersRepository.createQueryBuilder('user')) => {
- if (ps.username) {
- query.andWhere('user.usernameLower LIKE :username', { username: sqlLikeEscape(ps.username.toLowerCase()) + '%' });
- }
-
- if (ps.host) {
- if (ps.host === this.config.hostname || ps.host === '.') {
- query.andWhere('user.host IS NULL');
- } else {
- query.andWhere('user.host LIKE :host', {
- host: sqlLikeEscape(ps.host.toLowerCase()) + '%',
- });
- }
- }
-
- return query;
- };
-
- const activeThreshold = new Date(Date.now() - (1000 * 60 * 60 * 24 * 30)); // 30日
-
- let users: MiUser[] = [];
-
- if (me) {
- const followingQuery = this.followingsRepository.createQueryBuilder('following')
- .select('following.followeeId')
- .where('following.followerId = :followerId', { followerId: me.id });
-
- const query = setUsernameAndHostQuery()
- .andWhere(`user.id IN (${ followingQuery.getQuery() })`)
- .andWhere('user.id != :meId', { meId: me.id })
- .andWhere('user.isSuspended = FALSE')
- .andWhere(new Brackets(qb => {
- qb
- .where('user.updatedAt IS NULL')
- .orWhere('user.updatedAt > :activeThreshold', { activeThreshold: activeThreshold });
- }));
-
- query.setParameters(followingQuery.getParameters());
-
- users = await query
- .orderBy('user.usernameLower', 'ASC')
- .limit(ps.limit)
- .getMany();
-
- if (users.length < ps.limit) {
- const otherQuery = setUsernameAndHostQuery()
- .andWhere(`user.id NOT IN (${ followingQuery.getQuery() })`)
- .andWhere('user.isSuspended = FALSE')
- .andWhere('user.updatedAt IS NOT NULL');
-
- otherQuery.setParameters(followingQuery.getParameters());
-
- const otherUsers = await otherQuery
- .orderBy('user.updatedAt', 'DESC')
- .limit(ps.limit - users.length)
- .getMany();
-
- users = users.concat(otherUsers);
- }
- } else {
- const query = setUsernameAndHostQuery()
- .andWhere('user.isSuspended = FALSE')
- .andWhere('user.updatedAt IS NOT NULL');
-
- users = await query
- .orderBy('user.updatedAt', 'DESC')
- .limit(ps.limit - users.length)
- .getMany();
- }
-
- return await this.userEntityService.packMany(users, me, { schema: ps.detail ? 'UserDetailed' : 'UserLite' });
+ super(meta, paramDef, (ps, me) => {
+ return this.userSearchService.search({
+ username: ps.username,
+ host: ps.host,
+ }, {
+ limit: ps.limit,
+ detail: ps.detail,
+ }, me);
});
}
}
diff --git a/packages/backend/src/server/api/openapi/OpenApiServerService.ts b/packages/backend/src/server/api/openapi/OpenApiServerService.ts
index 5210e4d2bc3c..f124aa9f39e8 100644
--- a/packages/backend/src/server/api/openapi/OpenApiServerService.ts
+++ b/packages/backend/src/server/api/openapi/OpenApiServerService.ts
@@ -25,7 +25,7 @@ export class OpenApiServerService {
public createServer(fastify: FastifyInstance, _options: FastifyPluginOptions, done: (err?: Error) => void) {
fastify.get('/api-doc', async (_request, reply) => {
reply.header('Cache-Control', 'public, max-age=86400');
- return await reply.sendFile('/redoc.html', staticAssets);
+ return await reply.sendFile('/api-doc.html', staticAssets);
});
fastify.get('/api.json', (_request, reply) => {
reply.header('Cache-Control', 'public, max-age=600');
diff --git a/packages/backend/src/server/api/openapi/gen-spec.ts b/packages/backend/src/server/api/openapi/gen-spec.ts
index 2a14270a2497..efa47a698624 100644
--- a/packages/backend/src/server/api/openapi/gen-spec.ts
+++ b/packages/backend/src/server/api/openapi/gen-spec.ts
@@ -15,7 +15,6 @@ export function genOpenapiSpec(config: Config, includeSelfRef = false) {
info: {
version: config.version,
title: 'Misskey API',
- 'x-logo': { url: '/static-assets/api-doc.png' },
},
externalDocs: {
diff --git a/packages/backend/src/server/web/FeedService.ts b/packages/backend/src/server/web/FeedService.ts
index 10e3ed26820c..9d810ddc846b 100644
--- a/packages/backend/src/server/web/FeedService.ts
+++ b/packages/backend/src/server/web/FeedService.ts
@@ -14,6 +14,8 @@ import { UserEntityService } from '@/core/entities/UserEntityService.js';
import { DriveFileEntityService } from '@/core/entities/DriveFileEntityService.js';
import { bindThis } from '@/decorators.js';
import { IdService } from '@/core/IdService.js';
+import { MfmService } from "@/core/MfmService.js";
+import { parse as mfmParse } from 'mfm-js';
@Injectable()
export class FeedService {
@@ -33,6 +35,7 @@ export class FeedService {
private userEntityService: UserEntityService,
private driveFileEntityService: DriveFileEntityService,
private idService: IdService,
+ private mfmService: MfmService,
) {
}
@@ -76,13 +79,14 @@ export class FeedService {
id: In(note.fileIds),
}) : [];
const file = files.find(file => file.type.startsWith('image/'));
+ const text = note.text;
feed.addItem({
title: `New note by ${author.name}`,
link: `${this.config.url}/notes/${note.id}`,
date: this.idService.parse(note.id).date,
description: note.cw ?? undefined,
- content: note.text ?? undefined,
+ content: text ? this.mfmService.toHtml(mfmParse(text), JSON.parse(note.mentionedRemoteUsers)) ?? undefined : undefined,
image: file ? this.driveFileEntityService.getPublicUrl(file) : undefined,
});
}
diff --git a/packages/backend/src/server/web/boot.js b/packages/backend/src/server/web/boot.js
index 396536948ef4..4275dc952715 100644
--- a/packages/backend/src/server/web/boot.js
+++ b/packages/backend/src/server/web/boot.js
@@ -29,7 +29,8 @@
let forceError = localStorage.getItem('forceError');
if (forceError != null) {
- renderError('FORCED_ERROR', 'This error is forced by having forceError in local storage.')
+ renderError('FORCED_ERROR', 'This error is forced by having forceError in local storage.');
+ return;
}
//#region Detect language & fetch translations
@@ -155,7 +156,12 @@
document.head.appendChild(css);
}
- function renderError(code, details) {
+ async function renderError(code, details) {
+ // Cannot set property 'innerHTML' of null を回避
+ if (document.readyState === 'loading') {
+ await new Promise(resolve => window.addEventListener('DOMContentLoaded', resolve));
+ }
+
let errorsElement = document.getElementById('errors');
if (!errorsElement) {
@@ -314,6 +320,6 @@
#errorInfo {
width: 50%;
}
- `)
+ }`)
}
})();
diff --git a/packages/backend/test-server/.eslintrc.cjs b/packages/backend/test-server/.eslintrc.cjs
deleted file mode 100644
index c261741a36a1..000000000000
--- a/packages/backend/test-server/.eslintrc.cjs
+++ /dev/null
@@ -1,32 +0,0 @@
-module.exports = {
- parserOptions: {
- tsconfigRootDir: __dirname,
- project: ['./tsconfig.json'],
- },
- extends: [
- '../../shared/.eslintrc.js',
- ],
- rules: {
- 'import/order': ['warn', {
- 'groups': ['builtin', 'external', 'internal', 'parent', 'sibling', 'index', 'object', 'type'],
- 'pathGroups': [
- {
- 'pattern': '@/**',
- 'group': 'external',
- 'position': 'after'
- }
- ],
- }],
- 'no-restricted-globals': [
- 'error',
- {
- 'name': '__dirname',
- 'message': 'Not in ESModule. Use `import.meta.url` instead.'
- },
- {
- 'name': '__filename',
- 'message': 'Not in ESModule. Use `import.meta.url` instead.'
- }
- ]
- },
-};
diff --git a/packages/backend/test-server/eslint.config.js b/packages/backend/test-server/eslint.config.js
new file mode 100644
index 000000000000..b9c16d469fc3
--- /dev/null
+++ b/packages/backend/test-server/eslint.config.js
@@ -0,0 +1,43 @@
+import tsParser from '@typescript-eslint/parser';
+import sharedConfig from '../../shared/eslint.config.js';
+
+export default [
+ ...sharedConfig,
+ {
+ files: ['**/*.ts', '**/*.tsx'],
+ languageOptions: {
+ parserOptions: {
+ parser: tsParser,
+ project: ['./tsconfig.json'],
+ sourceType: 'module',
+ tsconfigRootDir: import.meta.dirname,
+ },
+ },
+ rules: {
+ 'import/order': ['warn', {
+ groups: [
+ 'builtin',
+ 'external',
+ 'internal',
+ 'parent',
+ 'sibling',
+ 'index',
+ 'object',
+ 'type',
+ ],
+ pathGroups: [{
+ pattern: '@/**',
+ group: 'external',
+ position: 'after',
+ }],
+ }],
+ 'no-restricted-globals': ['error', {
+ name: '__dirname',
+ message: 'Not in ESModule. Use `import.meta.url` instead.',
+ }, {
+ name: '__filename',
+ message: 'Not in ESModule. Use `import.meta.url` instead.',
+ }],
+ },
+ },
+];
diff --git a/packages/backend/test/.eslintrc.cjs b/packages/backend/test/.eslintrc.cjs
deleted file mode 100644
index 41ecea0c3fba..000000000000
--- a/packages/backend/test/.eslintrc.cjs
+++ /dev/null
@@ -1,11 +0,0 @@
-module.exports = {
- parserOptions: {
- tsconfigRootDir: __dirname,
- project: ['./tsconfig.json'],
- },
- extends: ['../.eslintrc.cjs'],
- env: {
- node: true,
- jest: true,
- },
-};
diff --git a/packages/backend/test/docker-compose.yml b/packages/backend/test/compose.yml
similarity index 94%
rename from packages/backend/test/docker-compose.yml
rename to packages/backend/test/compose.yml
index f2d899075808..6593fc33dd6c 100644
--- a/packages/backend/test/docker-compose.yml
+++ b/packages/backend/test/compose.yml
@@ -1,5 +1,3 @@
-version: "3"
-
services:
redistest:
image: redis:7
diff --git a/packages/backend/test/e2e/2fa.ts b/packages/backend/test/e2e/2fa.ts
index 13c56b88a693..06548fa7da03 100644
--- a/packages/backend/test/e2e/2fa.ts
+++ b/packages/backend/test/e2e/2fa.ts
@@ -206,7 +206,7 @@ describe('2要素認証', () => {
username,
}, alice);
assert.strictEqual(usersShowResponse.status, 200);
- assert.strictEqual(usersShowResponse.body.twoFactorEnabled, true);
+ assert.strictEqual((usersShowResponse.body as unknown as { twoFactorEnabled: boolean }).twoFactorEnabled, true);
const signinResponse = await api('signin', {
...signinParam(),
@@ -248,7 +248,7 @@ describe('2要素認証', () => {
keyName,
credentialId,
creationOptions: registerKeyResponse.body,
- }) as any, alice);
+ } as any) as any, alice);
assert.strictEqual(keyDoneResponse.status, 200);
assert.strictEqual(keyDoneResponse.body.id, credentialId.toString('base64url'));
assert.strictEqual(keyDoneResponse.body.name, keyName);
@@ -257,22 +257,22 @@ describe('2要素認証', () => {
username,
});
assert.strictEqual(usersShowResponse.status, 200);
- assert.strictEqual(usersShowResponse.body.securityKeys, true);
+ assert.strictEqual((usersShowResponse.body as unknown as { securityKeys: boolean }).securityKeys, true);
const signinResponse = await api('signin', {
...signinParam(),
});
assert.strictEqual(signinResponse.status, 200);
assert.strictEqual(signinResponse.body.i, undefined);
- assert.notEqual(signinResponse.body.challenge, undefined);
- assert.notEqual(signinResponse.body.allowCredentials, undefined);
- assert.strictEqual(signinResponse.body.allowCredentials[0].id, credentialId.toString('base64url'));
+ assert.notEqual((signinResponse.body as unknown as { challenge: unknown | undefined }).challenge, undefined);
+ assert.notEqual((signinResponse.body as unknown as { allowCredentials: unknown | undefined }).allowCredentials, undefined);
+ assert.strictEqual((signinResponse.body as unknown as { allowCredentials: {id: string}[] }).allowCredentials[0].id, credentialId.toString('base64url'));
const signinResponse2 = await api('signin', signinWithSecurityKeyParam({
keyName,
credentialId,
requestOptions: signinResponse.body,
- }));
+ } as any));
assert.strictEqual(signinResponse2.status, 200);
assert.notEqual(signinResponse2.body.i, undefined);
@@ -307,7 +307,7 @@ describe('2要素認証', () => {
keyName,
credentialId,
creationOptions: registerKeyResponse.body,
- }) as any, alice);
+ } as any) as any, alice);
assert.strictEqual(keyDoneResponse.status, 200);
const passwordLessResponse = await api('i/2fa/password-less', {
@@ -319,7 +319,7 @@ describe('2要素認証', () => {
username,
});
assert.strictEqual(usersShowResponse.status, 200);
- assert.strictEqual(usersShowResponse.body.usePasswordLessLogin, true);
+ assert.strictEqual((usersShowResponse.body as unknown as { usePasswordLessLogin: boolean }).usePasswordLessLogin, true);
const signinResponse = await api('signin', {
...signinParam(),
@@ -333,7 +333,7 @@ describe('2要素認証', () => {
keyName,
credentialId,
requestOptions: signinResponse.body,
- }),
+ } as any),
password: '',
});
assert.strictEqual(signinResponse2.status, 200);
@@ -370,7 +370,7 @@ describe('2要素認証', () => {
keyName,
credentialId,
creationOptions: registerKeyResponse.body,
- }) as any, alice);
+ } as any) as any, alice);
assert.strictEqual(keyDoneResponse.status, 200);
const renamedKey = 'other-key';
@@ -383,6 +383,7 @@ describe('2要素認証', () => {
const iResponse = await api('i', {
}, alice);
assert.strictEqual(iResponse.status, 200);
+ assert.ok(iResponse.body.securityKeysList);
const securityKeys = iResponse.body.securityKeysList.filter((s: { id: string; }) => s.id === credentialId.toString('base64url'));
assert.strictEqual(securityKeys.length, 1);
assert.strictEqual(securityKeys[0].name, renamedKey);
@@ -419,13 +420,14 @@ describe('2要素認証', () => {
keyName,
credentialId,
creationOptions: registerKeyResponse.body,
- }) as any, alice);
+ } as any) as any, alice);
assert.strictEqual(keyDoneResponse.status, 200);
// テストの実行順によっては複数残ってるので全部消す
const iResponse = await api('i', {
}, alice);
assert.strictEqual(iResponse.status, 200);
+ assert.ok(iResponse.body.securityKeysList);
for (const key of iResponse.body.securityKeysList) {
const removeKeyResponse = await api('i/2fa/remove-key', {
token: otpToken(registerResponse.body.secret),
@@ -439,7 +441,7 @@ describe('2要素認証', () => {
username,
});
assert.strictEqual(usersShowResponse.status, 200);
- assert.strictEqual(usersShowResponse.body.securityKeys, false);
+ assert.strictEqual((usersShowResponse.body as unknown as { securityKeys: boolean }).securityKeys, false);
const signinResponse = await api('signin', {
...signinParam(),
@@ -470,7 +472,7 @@ describe('2要素認証', () => {
username,
});
assert.strictEqual(usersShowResponse.status, 200);
- assert.strictEqual(usersShowResponse.body.twoFactorEnabled, true);
+ assert.strictEqual((usersShowResponse.body as unknown as { twoFactorEnabled: boolean }).twoFactorEnabled, true);
const unregisterResponse = await api('i/2fa/unregister', {
token: otpToken(registerResponse.body.secret),
diff --git a/packages/backend/test/e2e/antennas.ts b/packages/backend/test/e2e/antennas.ts
index 101238b60150..6ac14cd8dcde 100644
--- a/packages/backend/test/e2e/antennas.ts
+++ b/packages/backend/test/e2e/antennas.ts
@@ -163,8 +163,7 @@ describe('アンテナ', () => {
});
test('が上限いっぱいまで作成できること', async () => {
- // antennaLimit + 1まで作れるのがキモ
- const response = await Promise.all([...Array(DEFAULT_POLICIES.antennaLimit + 1)].map(() => successfulApiCall({
+ const response = await Promise.all([...Array(DEFAULT_POLICIES.antennaLimit)].map(() => successfulApiCall({
endpoint: 'antennas/create',
parameters: { ...defaultParam },
user: alice,
diff --git a/packages/backend/test/e2e/api-visibility.ts b/packages/backend/test/e2e/api-visibility.ts
index c61b0c2a8674..2dd645d97a99 100644
--- a/packages/backend/test/e2e/api-visibility.ts
+++ b/packages/backend/test/e2e/api-visibility.ts
@@ -410,21 +410,21 @@ describe('API visibility', () => {
test('[HTL] public-post が 自分が見れる', async () => {
const res = await api('notes/timeline', { limit: 100 }, alice);
assert.strictEqual(res.status, 200);
- const notes = res.body.filter((n: any) => n.id === pub.id);
+ const notes = res.body.filter(n => n.id === pub.id);
assert.strictEqual(notes[0].text, 'x');
});
test('[HTL] public-post が 非フォロワーから見れない', async () => {
const res = await api('notes/timeline', { limit: 100 }, other);
assert.strictEqual(res.status, 200);
- const notes = res.body.filter((n: any) => n.id === pub.id);
+ const notes = res.body.filter(n => n.id === pub.id);
assert.strictEqual(notes.length, 0);
});
test('[HTL] followers-post が フォロワーから見れる', async () => {
const res = await api('notes/timeline', { limit: 100 }, follower);
assert.strictEqual(res.status, 200);
- const notes = res.body.filter((n: any) => n.id === fol.id);
+ const notes = res.body.filter(n => n.id === fol.id);
assert.strictEqual(notes[0].text, 'x');
});
//#endregion
@@ -433,21 +433,21 @@ describe('API visibility', () => {
test('[replies] followers-reply が フォロワーから見れる', async () => {
const res = await api('notes/replies', { noteId: tgt.id, limit: 100 }, follower);
assert.strictEqual(res.status, 200);
- const notes = res.body.filter((n: any) => n.id === folR.id);
+ const notes = res.body.filter(n => n.id === folR.id);
assert.strictEqual(notes[0].text, 'x');
});
test('[replies] followers-reply が 非フォロワー (リプライ先ではない) から見れない', async () => {
const res = await api('notes/replies', { noteId: tgt.id, limit: 100 }, other);
assert.strictEqual(res.status, 200);
- const notes = res.body.filter((n: any) => n.id === folR.id);
+ const notes = res.body.filter(n => n.id === folR.id);
assert.strictEqual(notes.length, 0);
});
test('[replies] followers-reply が 非フォロワー (リプライ先である) から見れる', async () => {
const res = await api('notes/replies', { noteId: tgt.id, limit: 100 }, target);
assert.strictEqual(res.status, 200);
- const notes = res.body.filter((n: any) => n.id === folR.id);
+ const notes = res.body.filter(n => n.id === folR.id);
assert.strictEqual(notes[0].text, 'x');
});
//#endregion
@@ -456,14 +456,14 @@ describe('API visibility', () => {
test('[mentions] followers-reply が 非フォロワー (リプライ先である) から見れる', async () => {
const res = await api('notes/mentions', { limit: 100 }, target);
assert.strictEqual(res.status, 200);
- const notes = res.body.filter((n: any) => n.id === folR.id);
+ const notes = res.body.filter(n => n.id === folR.id);
assert.strictEqual(notes[0].text, 'x');
});
test('[mentions] followers-mention が 非フォロワー (メンション先である) から見れる', async () => {
const res = await api('notes/mentions', { limit: 100 }, target);
assert.strictEqual(res.status, 200);
- const notes = res.body.filter((n: any) => n.id === folM.id);
+ const notes = res.body.filter(n => n.id === folM.id);
assert.strictEqual(notes[0].text, '@target x');
});
//#endregion
diff --git a/packages/backend/test/e2e/block.ts b/packages/backend/test/e2e/block.ts
index e4f798498f56..35b0e59383fb 100644
--- a/packages/backend/test/e2e/block.ts
+++ b/packages/backend/test/e2e/block.ts
@@ -6,7 +6,7 @@
process.env.NODE_ENV = 'test';
import * as assert from 'assert';
-import { api, post, signup } from '../utils.js';
+import { api, castAsError, post, signup } from '../utils.js';
import type * as misskey from 'misskey-js';
describe('Block', () => {
@@ -33,7 +33,7 @@ describe('Block', () => {
const res = await api('following/create', { userId: alice.id }, bob);
assert.strictEqual(res.status, 400);
- assert.strictEqual(res.body.error.id, 'c4ab57cc-4e41-45e9-bfd9-584f61e35ce0');
+ assert.strictEqual(castAsError(res.body).error.id, 'c4ab57cc-4e41-45e9-bfd9-584f61e35ce0');
});
test('ブロックされているユーザーにリアクションできない', async () => {
@@ -42,7 +42,8 @@ describe('Block', () => {
const res = await api('notes/reactions/create', { noteId: note.id, reaction: '👍' }, bob);
assert.strictEqual(res.status, 400);
- assert.strictEqual(res.body.error.id, '20ef5475-9f38-4e4c-bd33-de6d979498ec');
+ assert.ok(res.body);
+ assert.strictEqual(castAsError(res.body).error.id, '20ef5475-9f38-4e4c-bd33-de6d979498ec');
});
test('ブロックされているユーザーに返信できない', async () => {
@@ -51,7 +52,8 @@ describe('Block', () => {
const res = await api('notes/create', { replyId: note.id, text: 'yo' }, bob);
assert.strictEqual(res.status, 400);
- assert.strictEqual(res.body.error.id, 'b390d7e1-8a5e-46ed-b625-06271cafd3d3');
+ assert.ok(res.body);
+ assert.strictEqual(castAsError(res.body).error.id, 'b390d7e1-8a5e-46ed-b625-06271cafd3d3');
});
test('ブロックされているユーザーのノートをRenoteできない', async () => {
@@ -60,7 +62,7 @@ describe('Block', () => {
const res = await api('notes/create', { renoteId: note.id, text: 'yo' }, bob);
assert.strictEqual(res.status, 400);
- assert.strictEqual(res.body.error.id, 'b390d7e1-8a5e-46ed-b625-06271cafd3d3');
+ assert.strictEqual(castAsError(res.body).error.id, 'b390d7e1-8a5e-46ed-b625-06271cafd3d3');
});
// TODO: ユーザーリストに入れられないテスト
diff --git a/packages/backend/test/e2e/clips.ts b/packages/backend/test/e2e/clips.ts
index ba6f9d6a651c..a130c3698db7 100644
--- a/packages/backend/test/e2e/clips.ts
+++ b/packages/backend/test/e2e/clips.ts
@@ -79,14 +79,14 @@ describe('クリップ', () => {
};
const deleteClip = async (parameters: Misskey.entities.ClipsDeleteRequest, request: Partial> = {}): Promise => {
- return await successfulApiCall({
+ await successfulApiCall({
endpoint: 'clips/delete',
parameters,
user: alice,
...request,
}, {
status: 204,
- }) as any as void;
+ });
};
const show = async (parameters: Misskey.entities.ClipsShowRequest, request: Partial> = {}): Promise => {
@@ -153,8 +153,7 @@ describe('クリップ', () => {
});
test('の作成はポリシーで定められた数以上はできない。', async () => {
- // ポリシー + 1まで作れるという所がミソ
- const clipLimit = DEFAULT_POLICIES.clipLimit + 1;
+ const clipLimit = DEFAULT_POLICIES.clipLimit;
for (let i = 0; i < clipLimit; i++) {
await create();
}
@@ -327,7 +326,7 @@ describe('クリップ', () => {
});
test('の一覧(clips/list)が取得できる(上限いっぱい)', async () => {
- const clipLimit = DEFAULT_POLICIES.clipLimit + 1;
+ const clipLimit = DEFAULT_POLICIES.clipLimit;
const clips = await createMany({}, clipLimit);
const res = await list({
parameters: { limit: 1 }, // FIXME: 無視されて11全部返ってくる
@@ -455,25 +454,25 @@ describe('クリップ', () => {
let aliceClip: Misskey.entities.Clip;
const favorite = async (parameters: Misskey.entities.ClipsFavoriteRequest, request: Partial> = {}): Promise => {
- return successfulApiCall({
+ await successfulApiCall({
endpoint: 'clips/favorite',
parameters,
user: alice,
...request,
}, {
status: 204,
- }) as any as void;
+ });
};
const unfavorite = async (parameters: Misskey.entities.ClipsUnfavoriteRequest, request: Partial> = {}): Promise => {
- return successfulApiCall({
+ await successfulApiCall({
endpoint: 'clips/unfavorite',
parameters,
user: alice,
...request,
}, {
status: 204,
- }) as any as void;
+ });
};
const myFavorites = async (request: Partial> = {}): Promise => {
@@ -705,7 +704,7 @@ describe('クリップ', () => {
// TODO: 17000msくらいかかる...
test('をポリシーで定められた上限いっぱい(200)を超えて追加はできない。', async () => {
- const noteLimit = DEFAULT_POLICIES.noteEachClipsLimit + 1;
+ const noteLimit = DEFAULT_POLICIES.noteEachClipsLimit;
const noteList = await Promise.all([...Array(noteLimit)].map((_, i) => post(alice, {
text: `test ${i}`,
}) as unknown)) as Misskey.entities.Note[];
diff --git a/packages/backend/test/e2e/drive.ts b/packages/backend/test/e2e/drive.ts
index 828c5200ef0d..43a73163ebab 100644
--- a/packages/backend/test/e2e/drive.ts
+++ b/packages/backend/test/e2e/drive.ts
@@ -23,7 +23,7 @@ describe('Drive', () => {
const marker = Math.random().toString();
- const url = 'https://raw.githubusercontent.com/misskey-dev/misskey/develop/packages/backend/test/resources/Lenna.jpg';
+ const url = 'https://raw.githubusercontent.com/misskey-dev/misskey/develop/packages/backend/test/resources/192.jpg';
const catcher = makeStreamCatcher(
alice,
@@ -41,14 +41,14 @@ describe('Drive', () => {
const file = await catcher;
assert.strictEqual(res.status, 204);
- assert.strictEqual(file.name, 'Lenna.jpg');
+ assert.strictEqual(file.name, '192.jpg');
assert.strictEqual(file.type, 'image/jpeg');
});
test('ローカルからアップロードできる', async () => {
// APIレスポンスを直接使用するので utils.js uploadFile が通過することで成功とする
- const res = await uploadFile(alice, { path: 'Lenna.jpg', name: 'テスト画像' });
+ const res = await uploadFile(alice, { path: '192.jpg', name: 'テスト画像' });
assert.strictEqual(res.body?.name, 'テスト画像.jpg');
assert.strictEqual(res.body.type, 'image/jpeg');
diff --git a/packages/backend/test/e2e/endpoints.ts b/packages/backend/test/e2e/endpoints.ts
index bc89dc37f4d8..5aaec7f6f9d0 100644
--- a/packages/backend/test/e2e/endpoints.ts
+++ b/packages/backend/test/e2e/endpoints.ts
@@ -10,7 +10,7 @@ import * as assert from 'assert';
// https://github.com/node-fetch/node-fetch/pull/1664
import { Blob } from 'node-fetch';
import { MiUser } from '@/models/_.js';
-import { api, initTestDb, post, signup, simpleGet, uploadFile } from '../utils.js';
+import { api, castAsError, initTestDb, post, signup, simpleGet, uploadFile } from '../utils.js';
import type * as misskey from 'misskey-js';
describe('Endpoints', () => {
@@ -117,12 +117,21 @@ describe('Endpoints', () => {
assert.strictEqual(res.body.birthday, myBirthday);
});
- test('名前を空白にできる', async () => {
+ test('名前を空白のみにした場合nullになる', async () => {
const res = await api('i/update', {
name: ' ',
}, alice);
assert.strictEqual(res.status, 200);
- assert.strictEqual(res.body.name, ' ');
+ assert.strictEqual(res.body.name, null);
+ });
+
+ test('名前の前後に空白(ホワイトスペース)を入れてもトリムされる', async () => {
+ const res = await api('i/update', {
+ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#white_space
+ name: ' あ い う \u0009\u000b\u000c\u0020\u00a0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\ufeff',
+ }, alice);
+ assert.strictEqual(res.status, 200);
+ assert.strictEqual(res.body.name, 'あ い う');
});
test('誕生日の設定を削除できる', async () => {
@@ -155,7 +164,7 @@ describe('Endpoints', () => {
assert.strictEqual(res.status, 200);
assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true);
- assert.strictEqual(res.body.id, alice.id);
+ assert.strictEqual((res.body as unknown as { id: string }).id, alice.id);
});
test('ユーザーが存在しなかったら怒る', async () => {
@@ -266,6 +275,68 @@ describe('Endpoints', () => {
assert.strictEqual(res.status, 400);
});
+ test('リノートにリアクションできない', async () => {
+ const bobNote = await post(bob, { text: 'hi' });
+ const bobRenote = await post(bob, { renoteId: bobNote.id });
+
+ const res = await api('notes/reactions/create', {
+ noteId: bobRenote.id,
+ reaction: '🚀',
+ }, alice);
+
+ assert.strictEqual(res.status, 400);
+ assert.ok(res.body);
+ assert.strictEqual(castAsError(res.body).error.code, 'CANNOT_REACT_TO_RENOTE');
+ });
+
+ test('引用にリアクションできる', async () => {
+ const bobNote = await post(bob, { text: 'hi' });
+ const bobRenote = await post(bob, { text: 'hi again', renoteId: bobNote.id });
+
+ const res = await api('notes/reactions/create', {
+ noteId: bobRenote.id,
+ reaction: '🚀',
+ }, alice);
+
+ assert.strictEqual(res.status, 204);
+ });
+
+ test('空文字列のリアクションは\u2764にフォールバックされる', async () => {
+ const bobNote = await post(bob, { text: 'hi' });
+
+ const res = await api('notes/reactions/create', {
+ noteId: bobNote.id,
+ reaction: '',
+ }, alice);
+
+ assert.strictEqual(res.status, 204);
+
+ const reaction = await api('notes/reactions', {
+ noteId: bobNote.id,
+ });
+
+ assert.strictEqual(reaction.body.length, 1);
+ assert.strictEqual(reaction.body[0].type, '\u2764');
+ });
+
+ test('絵文字ではない文字列のリアクションは\u2764にフォールバックされる', async () => {
+ const bobNote = await post(bob, { text: 'hi' });
+
+ const res = await api('notes/reactions/create', {
+ noteId: bobNote.id,
+ reaction: 'Hello!',
+ }, alice);
+
+ assert.strictEqual(res.status, 204);
+
+ const reaction = await api('notes/reactions', {
+ noteId: bobNote.id,
+ });
+
+ assert.strictEqual(reaction.body.length, 1);
+ assert.strictEqual(reaction.body[0].type, '\u2764');
+ });
+
test('空のパラメータで怒られる', async () => {
// @ts-expect-error param must not be empty
const res = await api('notes/reactions/create', {}, alice);
@@ -523,7 +594,7 @@ describe('Endpoints', () => {
assert.strictEqual(res.status, 200);
assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true);
- assert.strictEqual(res.body!.name, 'Lenna.jpg');
+ assert.strictEqual(res.body!.name, '192.jpg');
});
test('ファイルに名前を付けられる', async () => {
@@ -993,7 +1064,7 @@ describe('Endpoints', () => {
userId: bob.id,
}, alice);
assert.strictEqual(res1.status, 204);
- assert.strictEqual(res2.body?.memo, memo);
+ assert.strictEqual((res2.body as unknown as { memo: string })?.memo, memo);
});
test('自分に関するメモを更新できる', async () => {
@@ -1008,7 +1079,7 @@ describe('Endpoints', () => {
userId: alice.id,
}, alice);
assert.strictEqual(res1.status, 204);
- assert.strictEqual(res2.body?.memo, memo);
+ assert.strictEqual((res2.body as unknown as { memo: string })?.memo, memo);
});
test('メモを削除できる', async () => {
@@ -1029,7 +1100,7 @@ describe('Endpoints', () => {
}, alice);
// memoには常に文字列かnullが入っている(5cac151)
- assert.strictEqual(res.body.memo, null);
+ assert.strictEqual((res.body as unknown as { memo: string | null }).memo, null);
});
test('メモは個人ごとに独立して保存される', async () => {
@@ -1056,8 +1127,8 @@ describe('Endpoints', () => {
}, carol),
]);
- assert.strictEqual(resAlice.body.memo, memoAliceToBob);
- assert.strictEqual(resCarol.body.memo, memoCarolToBob);
+ assert.strictEqual((resAlice.body as unknown as { memo: string }).memo, memoAliceToBob);
+ assert.strictEqual((resCarol.body as unknown as { memo: string }).memo, memoCarolToBob);
});
});
});
diff --git a/packages/backend/test/e2e/exports.ts b/packages/backend/test/e2e/exports.ts
index 80a5331a6dce..4bcecc9716cb 100644
--- a/packages/backend/test/e2e/exports.ts
+++ b/packages/backend/test/e2e/exports.ts
@@ -61,14 +61,14 @@ describe('export-clips', () => {
});
test('basic export', async () => {
- let res = await api('clips/create', {
+ const res1 = await api('clips/create', {
name: 'foo',
description: 'bar',
}, alice);
- assert.strictEqual(res.status, 200);
+ assert.strictEqual(res1.status, 200);
- res = await api('i/export-clips', {}, alice);
- assert.strictEqual(res.status, 204);
+ const res2 = await api('i/export-clips', {}, alice);
+ assert.strictEqual(res2.status, 204);
const exported = await pollFirstDriveFile();
assert.strictEqual(exported[0].name, 'foo');
@@ -77,7 +77,7 @@ describe('export-clips', () => {
});
test('export with notes', async () => {
- let res = await api('clips/create', {
+ const res = await api('clips/create', {
name: 'foo',
description: 'bar',
}, alice);
@@ -96,15 +96,15 @@ describe('export-clips', () => {
});
for (const note of [note1, note2]) {
- res = await api('clips/add-note', {
+ const res2 = await api('clips/add-note', {
clipId: clip.id,
noteId: note.id,
}, alice);
- assert.strictEqual(res.status, 204);
+ assert.strictEqual(res2.status, 204);
}
- res = await api('i/export-clips', {}, alice);
- assert.strictEqual(res.status, 204);
+ const res3 = await api('i/export-clips', {}, alice);
+ assert.strictEqual(res3.status, 204);
const exported = await pollFirstDriveFile();
assert.strictEqual(exported[0].name, 'foo');
@@ -116,19 +116,19 @@ describe('export-clips', () => {
});
test('multiple clips', async () => {
- let res = await api('clips/create', {
+ const res1 = await api('clips/create', {
name: 'kawaii',
description: 'kawaii',
}, alice);
- assert.strictEqual(res.status, 200);
- const clip1 = res.body;
+ assert.strictEqual(res1.status, 200);
+ const clip1 = res1.body;
- res = await api('clips/create', {
+ const res2 = await api('clips/create', {
name: 'yuri',
description: 'yuri',
}, alice);
- assert.strictEqual(res.status, 200);
- const clip2 = res.body;
+ assert.strictEqual(res2.status, 200);
+ const clip2 = res2.body;
const note1 = await post(alice, {
text: 'baz1',
@@ -138,20 +138,26 @@ describe('export-clips', () => {
text: 'baz2',
});
- res = await api('clips/add-note', {
- clipId: clip1.id,
- noteId: note1.id,
- }, alice);
- assert.strictEqual(res.status, 204);
+ {
+ const res = await api('clips/add-note', {
+ clipId: clip1.id,
+ noteId: note1.id,
+ }, alice);
+ assert.strictEqual(res.status, 204);
+ }
- res = await api('clips/add-note', {
- clipId: clip2.id,
- noteId: note2.id,
- }, alice);
- assert.strictEqual(res.status, 204);
+ {
+ const res = await api('clips/add-note', {
+ clipId: clip2.id,
+ noteId: note2.id,
+ }, alice);
+ assert.strictEqual(res.status, 204);
+ }
- res = await api('i/export-clips', {}, alice);
- assert.strictEqual(res.status, 204);
+ {
+ const res = await api('i/export-clips', {}, alice);
+ assert.strictEqual(res.status, 204);
+ }
const exported = await pollFirstDriveFile();
assert.strictEqual(exported[0].name, 'kawaii');
@@ -163,7 +169,7 @@ describe('export-clips', () => {
});
test('Clipping other user\'s note', async () => {
- let res = await api('clips/create', {
+ const res = await api('clips/create', {
name: 'kawaii',
description: 'kawaii',
}, alice);
@@ -175,14 +181,14 @@ describe('export-clips', () => {
visibility: 'followers',
});
- res = await api('clips/add-note', {
+ const res2 = await api('clips/add-note', {
clipId: clip.id,
noteId: note.id,
}, alice);
- assert.strictEqual(res.status, 204);
+ assert.strictEqual(res2.status, 204);
- res = await api('i/export-clips', {}, alice);
- assert.strictEqual(res.status, 204);
+ const res3 = await api('i/export-clips', {}, alice);
+ assert.strictEqual(res3.status, 204);
const exported = await pollFirstDriveFile();
assert.strictEqual(exported[0].name, 'kawaii');
diff --git a/packages/backend/test/e2e/fetch-resource.ts b/packages/backend/test/e2e/fetch-resource.ts
index 4851ed14be6a..7efd688ec279 100644
--- a/packages/backend/test/e2e/fetch-resource.ts
+++ b/packages/backend/test/e2e/fetch-resource.ts
@@ -153,6 +153,23 @@ describe('Webリソース', () => {
path: path('nonexisting'),
status: 404,
}));
+
+ describe(' has entry such ', () => {
+ beforeEach(() => {
+ post(alice, { text: "**a**" })
+ });
+
+ test('MFMを含まない。', async () => {
+ const content = await simpleGet(path(alice.username), "*/*", undefined, res => res.text());
+ const _body: unknown = content.body;
+ // JSONフィードのときは改めて文字列化する
+ const body: string = typeof (_body) === "object" ? JSON.stringify(_body) : _body as string;
+
+ if (body.includes("**a**")) {
+ throw new Error("MFM shouldn't be included");
+ }
+ });
+ })
});
describe.each([{ path: '/api/foo' }])('$path', ({ path }) => {
diff --git a/packages/backend/test/e2e/move.ts b/packages/backend/test/e2e/move.ts
index 74cf61a7857a..fd798bdb25bc 100644
--- a/packages/backend/test/e2e/move.ts
+++ b/packages/backend/test/e2e/move.ts
@@ -7,19 +7,20 @@ import { INestApplicationContext } from '@nestjs/common';
process.env.NODE_ENV = 'test';
+import { setTimeout } from 'node:timers/promises';
import * as assert from 'assert';
import { loadConfig } from '@/config.js';
import { MiRepository, MiUser, UsersRepository, miRepository } from '@/models/_.js';
import { secureRndstr } from '@/misc/secure-rndstr.js';
import { jobQueue } from '@/boot/common.js';
-import { api, initTestDb, signup, sleep, successfulApiCall, uploadFile } from '../utils.js';
+import { api, castAsError, initTestDb, signup, successfulApiCall, uploadFile } from '../utils.js';
import type * as misskey from 'misskey-js';
describe('Account Move', () => {
let jq: INestApplicationContext;
let url: URL;
- let root: any;
+ let root: misskey.entities.SignupResponse;
let alice: misskey.entities.SignupResponse;
let bob: misskey.entities.SignupResponse;
let carol: misskey.entities.SignupResponse;
@@ -92,8 +93,8 @@ describe('Account Move', () => {
}, bob);
assert.strictEqual(res.status, 400);
- assert.strictEqual(res.body.error.code, 'NO_SUCH_USER');
- assert.strictEqual(res.body.error.id, 'fcd2eef9-a9b2-4c4f-8624-038099e90aa5');
+ assert.strictEqual(castAsError(res.body).error.code, 'NO_SUCH_USER');
+ assert.strictEqual(castAsError(res.body).error.id, 'fcd2eef9-a9b2-4c4f-8624-038099e90aa5');
});
test('Unable to add duplicated aliases to alsoKnownAs', async () => {
@@ -102,8 +103,8 @@ describe('Account Move', () => {
}, bob);
assert.strictEqual(res.status, 400);
- assert.strictEqual(res.body.error.code, 'INVALID_PARAM');
- assert.strictEqual(res.body.error.id, '3d81ceae-475f-4600-b2a8-2bc116157532');
+ assert.strictEqual(castAsError(res.body).error.code, 'INVALID_PARAM');
+ assert.strictEqual(castAsError(res.body).error.id, '3d81ceae-475f-4600-b2a8-2bc116157532');
});
test('Unable to add itself', async () => {
@@ -112,8 +113,8 @@ describe('Account Move', () => {
}, bob);
assert.strictEqual(res.status, 400);
- assert.strictEqual(res.body.error.code, 'FORBIDDEN_TO_SET_YOURSELF');
- assert.strictEqual(res.body.error.id, '25c90186-4ab0-49c8-9bba-a1fa6c202ba4');
+ assert.strictEqual(castAsError(res.body).error.code, 'FORBIDDEN_TO_SET_YOURSELF');
+ assert.strictEqual(castAsError(res.body).error.id, '25c90186-4ab0-49c8-9bba-a1fa6c202ba4');
});
test('Unable to add a nonexisting local account to alsoKnownAs', async () => {
@@ -122,16 +123,16 @@ describe('Account Move', () => {
}, bob);
assert.strictEqual(res1.status, 400);
- assert.strictEqual(res1.body.error.code, 'NO_SUCH_USER');
- assert.strictEqual(res1.body.error.id, 'fcd2eef9-a9b2-4c4f-8624-038099e90aa5');
+ assert.strictEqual(castAsError(res1.body).error.code, 'NO_SUCH_USER');
+ assert.strictEqual(castAsError(res1.body).error.id, 'fcd2eef9-a9b2-4c4f-8624-038099e90aa5');
const res2 = await api('i/update', {
alsoKnownAs: ['@alice', 'nonexist'],
}, bob);
assert.strictEqual(res2.status, 400);
- assert.strictEqual(res2.body.error.code, 'NO_SUCH_USER');
- assert.strictEqual(res2.body.error.id, 'fcd2eef9-a9b2-4c4f-8624-038099e90aa5');
+ assert.strictEqual(castAsError(res2.body).error.code, 'NO_SUCH_USER');
+ assert.strictEqual(castAsError(res2.body).error.id, 'fcd2eef9-a9b2-4c4f-8624-038099e90aa5');
});
test('Able to add two existing local account to alsoKnownAs', async () => {
@@ -240,8 +241,8 @@ describe('Account Move', () => {
}, root);
assert.strictEqual(res.status, 400);
- assert.strictEqual(res.body.error.code, 'NOT_ROOT_FORBIDDEN');
- assert.strictEqual(res.body.error.id, '4362e8dc-731f-4ad8-a694-be2a88922a24');
+ assert.strictEqual(castAsError(res.body).error.code, 'NOT_ROOT_FORBIDDEN');
+ assert.strictEqual(castAsError(res.body).error.id, '4362e8dc-731f-4ad8-a694-be2a88922a24');
});
test('Unable to move to a nonexisting local account', async () => {
@@ -250,8 +251,8 @@ describe('Account Move', () => {
}, alice);
assert.strictEqual(res.status, 400);
- assert.strictEqual(res.body.error.code, 'NO_SUCH_USER');
- assert.strictEqual(res.body.error.id, 'fcd2eef9-a9b2-4c4f-8624-038099e90aa5');
+ assert.strictEqual(castAsError(res.body).error.code, 'NO_SUCH_USER');
+ assert.strictEqual(castAsError(res.body).error.id, 'fcd2eef9-a9b2-4c4f-8624-038099e90aa5');
});
test('Unable to move if alsoKnownAs is invalid', async () => {
@@ -260,8 +261,8 @@ describe('Account Move', () => {
}, alice);
assert.strictEqual(res.status, 400);
- assert.strictEqual(res.body.error.code, 'DESTINATION_ACCOUNT_FORBIDS');
- assert.strictEqual(res.body.error.id, 'b5c90186-4ab0-49c8-9bba-a1f766282ba4');
+ assert.strictEqual(castAsError(res.body).error.code, 'DESTINATION_ACCOUNT_FORBIDS');
+ assert.strictEqual(castAsError(res.body).error.id, 'b5c90186-4ab0-49c8-9bba-a1f766282ba4');
});
test('Relationships have been properly migrated', async () => {
@@ -271,43 +272,51 @@ describe('Account Move', () => {
assert.strictEqual(move.status, 200);
- await sleep(1000 * 3); // wait for jobs to finish
+ await setTimeout(1000 * 3); // wait for jobs to finish
// Unfollow delayed?
const aliceFollowings = await api('users/following', {
userId: alice.id,
}, alice);
assert.strictEqual(aliceFollowings.status, 200);
+ assert.ok(aliceFollowings);
assert.strictEqual(aliceFollowings.body.length, 3);
const carolFollowings = await api('users/following', {
userId: carol.id,
}, carol);
assert.strictEqual(carolFollowings.status, 200);
+ assert.ok(carolFollowings);
assert.strictEqual(carolFollowings.body.length, 2);
assert.strictEqual(carolFollowings.body[0].followeeId, bob.id);
assert.strictEqual(carolFollowings.body[1].followeeId, alice.id);
const blockings = await api('blocking/list', {}, dave);
assert.strictEqual(blockings.status, 200);
+ assert.ok(blockings);
assert.strictEqual(blockings.body.length, 2);
assert.strictEqual(blockings.body[0].blockeeId, bob.id);
assert.strictEqual(blockings.body[1].blockeeId, alice.id);
const mutings = await api('mute/list', {}, dave);
assert.strictEqual(mutings.status, 200);
+ assert.ok(mutings);
assert.strictEqual(mutings.body.length, 2);
assert.strictEqual(mutings.body[0].muteeId, bob.id);
assert.strictEqual(mutings.body[1].muteeId, alice.id);
const rootLists = await api('users/lists/list', {}, root);
assert.strictEqual(rootLists.status, 200);
+ assert.ok(rootLists);
+ assert.ok(rootLists.body[0].userIds);
assert.strictEqual(rootLists.body[0].userIds.length, 2);
assert.ok(rootLists.body[0].userIds.find((id: string) => id === bob.id));
assert.ok(rootLists.body[0].userIds.find((id: string) => id === alice.id));
const eveLists = await api('users/lists/list', {}, eve);
assert.strictEqual(eveLists.status, 200);
+ assert.ok(eveLists);
+ assert.ok(eveLists.body[0].userIds);
assert.strictEqual(eveLists.body[0].userIds.length, 1);
assert.ok(eveLists.body[0].userIds.find((id: string) => id === bob.id));
});
@@ -330,7 +339,7 @@ describe('Account Move', () => {
});
test('Unfollowed after 10 sec (24 hours in production).', async () => {
- await sleep(1000 * 8);
+ await setTimeout(1000 * 8);
const following = await api('users/following', {
userId: alice.id,
@@ -346,8 +355,8 @@ describe('Account Move', () => {
}, bob);
assert.strictEqual(res.status, 400);
- assert.strictEqual(res.body.error.code, 'DESTINATION_ACCOUNT_FORBIDS');
- assert.strictEqual(res.body.error.id, 'b5c90186-4ab0-49c8-9bba-a1f766282ba4');
+ assert.strictEqual(castAsError(res.body).error.code, 'DESTINATION_ACCOUNT_FORBIDS');
+ assert.strictEqual(castAsError(res.body).error.id, 'b5c90186-4ab0-49c8-9bba-a1f766282ba4');
});
test('Follow and follower counts are properly adjusted', async () => {
@@ -418,8 +427,9 @@ describe('Account Move', () => {
] as const)('Prohibit access after moving: %s', async (endpoint) => {
const res = await api(endpoint, {}, alice);
assert.strictEqual(res.status, 403);
- assert.strictEqual(res.body.error.code, 'YOUR_ACCOUNT_MOVED');
- assert.strictEqual(res.body.error.id, '56f20ec9-fd06-4fa5-841b-edd6d7d4fa31');
+ assert.ok(res.body);
+ assert.strictEqual(castAsError(res.body).error.code, 'YOUR_ACCOUNT_MOVED');
+ assert.strictEqual(castAsError(res.body).error.id, '56f20ec9-fd06-4fa5-841b-edd6d7d4fa31');
});
test('Prohibit access after moving: /antennas/update', async () => {
@@ -437,16 +447,19 @@ describe('Account Move', () => {
}, alice);
assert.strictEqual(res.status, 403);
- assert.strictEqual(res.body.error.code, 'YOUR_ACCOUNT_MOVED');
- assert.strictEqual(res.body.error.id, '56f20ec9-fd06-4fa5-841b-edd6d7d4fa31');
+ assert.ok(res.body);
+ assert.strictEqual(castAsError(res.body).error.code, 'YOUR_ACCOUNT_MOVED');
+ assert.strictEqual(castAsError(res.body).error.id, '56f20ec9-fd06-4fa5-841b-edd6d7d4fa31');
});
test('Prohibit access after moving: /drive/files/create', async () => {
+ // FIXME: 一旦逃げておく
const res = await uploadFile(alice);
assert.strictEqual(res.status, 403);
- assert.strictEqual((res.body! as any as { error: misskey.api.APIError }).error.code, 'YOUR_ACCOUNT_MOVED');
- assert.strictEqual((res.body! as any as { error: misskey.api.APIError }).error.id, '56f20ec9-fd06-4fa5-841b-edd6d7d4fa31');
+ assert.ok(res.body);
+ assert.strictEqual(castAsError(res.body).error.code, 'YOUR_ACCOUNT_MOVED');
+ assert.strictEqual(castAsError(res.body).error.id, '56f20ec9-fd06-4fa5-841b-edd6d7d4fa31');
});
test('Prohibit updating alsoKnownAs after moving', async () => {
@@ -455,8 +468,8 @@ describe('Account Move', () => {
}, alice);
assert.strictEqual(res.status, 403);
- assert.strictEqual(res.body.error.code, 'YOUR_ACCOUNT_MOVED');
- assert.strictEqual(res.body.error.id, '56f20ec9-fd06-4fa5-841b-edd6d7d4fa31');
+ assert.strictEqual(castAsError(res.body).error.code, 'YOUR_ACCOUNT_MOVED');
+ assert.strictEqual(castAsError(res.body).error.id, '56f20ec9-fd06-4fa5-841b-edd6d7d4fa31');
});
});
});
diff --git a/packages/backend/test/e2e/mute.ts b/packages/backend/test/e2e/mute.ts
index 0e52c5decc37..f37da288b776 100644
--- a/packages/backend/test/e2e/mute.ts
+++ b/packages/backend/test/e2e/mute.ts
@@ -47,8 +47,8 @@ describe('Mute', () => {
assert.strictEqual(res.status, 200);
assert.strictEqual(Array.isArray(res.body), true);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
- assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === carolNote.id), false);
});
test('ミュートしているユーザーからメンションされても、hasUnreadMentions が true にならない', async () => {
@@ -92,9 +92,9 @@ describe('Mute', () => {
assert.strictEqual(res.status, 200);
assert.strictEqual(Array.isArray(res.body), true);
- assert.strictEqual(res.body.some((note: any) => note.id === aliceNote.id), true);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
- assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === aliceNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === carolNote.id), false);
});
test('タイムラインにミュートしているユーザーの投稿のRenoteが含まれない', async () => {
@@ -108,9 +108,9 @@ describe('Mute', () => {
assert.strictEqual(res.status, 200);
assert.strictEqual(Array.isArray(res.body), true);
- assert.strictEqual(res.body.some((note: any) => note.id === aliceNote.id), true);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
- assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === aliceNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === carolNote.id), false);
});
});
@@ -124,8 +124,8 @@ describe('Mute', () => {
assert.strictEqual(res.status, 200);
assert.strictEqual(Array.isArray(res.body), true);
- assert.strictEqual(res.body.some((notification: any) => notification.userId === bob.id), true);
- assert.strictEqual(res.body.some((notification: any) => notification.userId === carol.id), false);
+ assert.strictEqual(res.body.some(notification => 'userId' in notification && notification.userId === bob.id), true);
+ assert.strictEqual(res.body.some(notification => 'userId' in notification && notification.userId === carol.id), false);
});
test('通知にミュートしているユーザーからのリプライが含まれない', async () => {
@@ -138,8 +138,8 @@ describe('Mute', () => {
assert.strictEqual(res.status, 200);
assert.strictEqual(Array.isArray(res.body), true);
- assert.strictEqual(res.body.some((notification: any) => notification.userId === bob.id), true);
- assert.strictEqual(res.body.some((notification: any) => notification.userId === carol.id), false);
+ assert.strictEqual(res.body.some(notification => 'userId' in notification && notification.userId === bob.id), true);
+ assert.strictEqual(res.body.some(notification => 'userId' in notification && notification.userId === carol.id), false);
});
test('通知にミュートしているユーザーからのリプライが含まれない', async () => {
@@ -152,8 +152,8 @@ describe('Mute', () => {
assert.strictEqual(res.status, 200);
assert.strictEqual(Array.isArray(res.body), true);
- assert.strictEqual(res.body.some((notification: any) => notification.userId === bob.id), true);
- assert.strictEqual(res.body.some((notification: any) => notification.userId === carol.id), false);
+ assert.strictEqual(res.body.some(notification => 'userId' in notification && notification.userId === bob.id), true);
+ assert.strictEqual(res.body.some(notification => 'userId' in notification && notification.userId === carol.id), false);
});
test('通知にミュートしているユーザーからの引用リノートが含まれない', async () => {
@@ -166,8 +166,8 @@ describe('Mute', () => {
assert.strictEqual(res.status, 200);
assert.strictEqual(Array.isArray(res.body), true);
- assert.strictEqual(res.body.some((notification: any) => notification.userId === bob.id), true);
- assert.strictEqual(res.body.some((notification: any) => notification.userId === carol.id), false);
+ assert.strictEqual(res.body.some(notification => 'userId' in notification && notification.userId === bob.id), true);
+ assert.strictEqual(res.body.some(notification => 'userId' in notification && notification.userId === carol.id), false);
});
test('通知にミュートしているユーザーからのリノートが含まれない', async () => {
@@ -180,8 +180,8 @@ describe('Mute', () => {
assert.strictEqual(res.status, 200);
assert.strictEqual(Array.isArray(res.body), true);
- assert.strictEqual(res.body.some((notification: any) => notification.userId === bob.id), true);
- assert.strictEqual(res.body.some((notification: any) => notification.userId === carol.id), false);
+ assert.strictEqual(res.body.some(notification => 'userId' in notification && notification.userId === bob.id), true);
+ assert.strictEqual(res.body.some(notification => 'userId' in notification && notification.userId === carol.id), false);
});
test('通知にミュートしているユーザーからのフォロー通知が含まれない', async () => {
@@ -193,8 +193,8 @@ describe('Mute', () => {
assert.strictEqual(res.status, 200);
assert.strictEqual(Array.isArray(res.body), true);
- assert.strictEqual(res.body.some((notification: any) => notification.userId === bob.id), true);
- assert.strictEqual(res.body.some((notification: any) => notification.userId === carol.id), false);
+ assert.strictEqual(res.body.some(notification => 'userId' in notification && notification.userId === bob.id), true);
+ assert.strictEqual(res.body.some(notification => 'userId' in notification && notification.userId === carol.id), false);
await api('following/delete', { userId: alice.id }, bob);
await api('following/delete', { userId: alice.id }, carol);
@@ -210,8 +210,8 @@ describe('Mute', () => {
assert.strictEqual(res.status, 200);
assert.strictEqual(Array.isArray(res.body), true);
- assert.strictEqual(res.body.some((notification: any) => notification.userId === bob.id), true);
- assert.strictEqual(res.body.some((notification: any) => notification.userId === carol.id), false);
+ assert.strictEqual(res.body.some(notification => 'userId' in notification && notification.userId === bob.id), true);
+ assert.strictEqual(res.body.some(notification => 'userId' in notification && notification.userId === carol.id), false);
await api('following/delete', { userId: alice.id }, bob);
await api('following/delete', { userId: alice.id }, carol);
@@ -228,8 +228,8 @@ describe('Mute', () => {
assert.strictEqual(res.status, 200);
assert.strictEqual(Array.isArray(res.body), true);
- assert.strictEqual(res.body.some((notification: any) => notification.userId === bob.id), true);
- assert.strictEqual(res.body.some((notification: any) => notification.userId === carol.id), false);
+ assert.strictEqual(res.body.some(notification => 'userId' in notification && notification.userId === bob.id), true);
+ assert.strictEqual(res.body.some(notification => 'userId' in notification && notification.userId === carol.id), false);
});
test('通知にミュートしているユーザーからのリプライが含まれない', async () => {
const aliceNote = await post(alice, { text: 'hi' });
@@ -241,8 +241,8 @@ describe('Mute', () => {
assert.strictEqual(res.status, 200);
assert.strictEqual(Array.isArray(res.body), true);
- assert.strictEqual(res.body.some((notification: any) => notification.userId === bob.id), true);
- assert.strictEqual(res.body.some((notification: any) => notification.userId === carol.id), false);
+ assert.strictEqual(res.body.some(notification => 'userId' in notification && notification.userId === bob.id), true);
+ assert.strictEqual(res.body.some(notification => 'userId' in notification && notification.userId === carol.id), false);
});
test('通知にミュートしているユーザーからのリプライが含まれない', async () => {
@@ -255,8 +255,8 @@ describe('Mute', () => {
assert.strictEqual(res.status, 200);
assert.strictEqual(Array.isArray(res.body), true);
- assert.strictEqual(res.body.some((notification: any) => notification.userId === bob.id), true);
- assert.strictEqual(res.body.some((notification: any) => notification.userId === carol.id), false);
+ assert.strictEqual(res.body.some(notification => 'userId' in notification && notification.userId === bob.id), true);
+ assert.strictEqual(res.body.some(notification => 'userId' in notification && notification.userId === carol.id), false);
});
test('通知にミュートしているユーザーからの引用リノートが含まれない', async () => {
@@ -269,8 +269,8 @@ describe('Mute', () => {
assert.strictEqual(res.status, 200);
assert.strictEqual(Array.isArray(res.body), true);
- assert.strictEqual(res.body.some((notification: any) => notification.userId === bob.id), true);
- assert.strictEqual(res.body.some((notification: any) => notification.userId === carol.id), false);
+ assert.strictEqual(res.body.some(notification => 'userId' in notification && notification.userId === bob.id), true);
+ assert.strictEqual(res.body.some(notification => 'userId' in notification && notification.userId === carol.id), false);
});
test('通知にミュートしているユーザーからのリノートが含まれない', async () => {
@@ -283,8 +283,8 @@ describe('Mute', () => {
assert.strictEqual(res.status, 200);
assert.strictEqual(Array.isArray(res.body), true);
- assert.strictEqual(res.body.some((notification: any) => notification.userId === bob.id), true);
- assert.strictEqual(res.body.some((notification: any) => notification.userId === carol.id), false);
+ assert.strictEqual(res.body.some(notification => 'userId' in notification && notification.userId === bob.id), true);
+ assert.strictEqual(res.body.some(notification => 'userId' in notification && notification.userId === carol.id), false);
});
test('通知にミュートしているユーザーからのフォロー通知が含まれない', async () => {
@@ -296,8 +296,8 @@ describe('Mute', () => {
assert.strictEqual(res.status, 200);
assert.strictEqual(Array.isArray(res.body), true);
- assert.strictEqual(res.body.some((notification: any) => notification.userId === bob.id), true);
- assert.strictEqual(res.body.some((notification: any) => notification.userId === carol.id), false);
+ assert.strictEqual(res.body.some(notification => 'userId' in notification && notification.userId === bob.id), true);
+ assert.strictEqual(res.body.some(notification => 'userId' in notification && notification.userId === carol.id), false);
await api('following/delete', { userId: alice.id }, bob);
await api('following/delete', { userId: alice.id }, carol);
@@ -313,8 +313,8 @@ describe('Mute', () => {
assert.strictEqual(res.status, 200);
assert.strictEqual(Array.isArray(res.body), true);
- assert.strictEqual(res.body.some((notification: any) => notification.userId === bob.id), true);
- assert.strictEqual(res.body.some((notification: any) => notification.userId === carol.id), false);
+ assert.strictEqual(res.body.some(notification => 'userId' in notification && notification.userId === bob.id), true);
+ assert.strictEqual(res.body.some(notification => 'userId' in notification && notification.userId === carol.id), false);
});
});
});
diff --git a/packages/backend/test/e2e/note.ts b/packages/backend/test/e2e/note.ts
index bda31d964074..5937eb9b4924 100644
--- a/packages/backend/test/e2e/note.ts
+++ b/packages/backend/test/e2e/note.ts
@@ -3,16 +3,18 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
+import type { Repository } from "typeorm";
+
process.env.NODE_ENV = 'test';
import * as assert from 'assert';
import { MiNote } from '@/models/Note.js';
import { MAX_NOTE_TEXT_LENGTH } from '@/const.js';
-import { api, initTestDb, post, role, signup, uploadFile, uploadUrl } from '../utils.js';
+import { api, castAsError, initTestDb, post, role, signup, uploadFile, uploadUrl } from '../utils.js';
import type * as misskey from 'misskey-js';
describe('Note', () => {
- let Notes: any;
+ let Notes: Repository;
let root: misskey.entities.SignupResponse;
let alice: misskey.entities.SignupResponse;
@@ -41,7 +43,7 @@ describe('Note', () => {
});
test('ファイルを添付できる', async () => {
- const file = await uploadUrl(alice, 'https://raw.githubusercontent.com/misskey-dev/misskey/develop/packages/backend/test/resources/Lenna.jpg');
+ const file = await uploadUrl(alice, 'https://raw.githubusercontent.com/misskey-dev/misskey/develop/packages/backend/test/resources/192.jpg');
const res = await api('notes/create', {
fileIds: [file.id],
@@ -53,7 +55,7 @@ describe('Note', () => {
}, 1000 * 10);
test('他人のファイルで怒られる', async () => {
- const file = await uploadUrl(bob, 'https://raw.githubusercontent.com/misskey-dev/misskey/develop/packages/backend/test/resources/Lenna.jpg');
+ const file = await uploadUrl(bob, 'https://raw.githubusercontent.com/misskey-dev/misskey/develop/packages/backend/test/resources/192.jpg');
const res = await api('notes/create', {
text: 'test',
@@ -61,8 +63,8 @@ describe('Note', () => {
}, alice);
assert.strictEqual(res.status, 400);
- assert.strictEqual(res.body.error.code, 'NO_SUCH_FILE');
- assert.strictEqual(res.body.error.id, 'b6992544-63e7-67f0-fa7f-32444b1b5306');
+ assert.strictEqual(castAsError(res.body).error.code, 'NO_SUCH_FILE');
+ assert.strictEqual(castAsError(res.body).error.id, 'b6992544-63e7-67f0-fa7f-32444b1b5306');
}, 1000 * 10);
test('存在しないファイルで怒られる', async () => {
@@ -72,8 +74,8 @@ describe('Note', () => {
}, alice);
assert.strictEqual(res.status, 400);
- assert.strictEqual(res.body.error.code, 'NO_SUCH_FILE');
- assert.strictEqual(res.body.error.id, 'b6992544-63e7-67f0-fa7f-32444b1b5306');
+ assert.strictEqual(castAsError(res.body).error.code, 'NO_SUCH_FILE');
+ assert.strictEqual(castAsError(res.body).error.id, 'b6992544-63e7-67f0-fa7f-32444b1b5306');
});
test('不正なファイルIDで怒られる', async () => {
@@ -81,8 +83,8 @@ describe('Note', () => {
fileIds: ['kyoppie'],
}, alice);
assert.strictEqual(res.status, 400);
- assert.strictEqual(res.body.error.code, 'NO_SUCH_FILE');
- assert.strictEqual(res.body.error.id, 'b6992544-63e7-67f0-fa7f-32444b1b5306');
+ assert.strictEqual(castAsError(res.body).error.code, 'NO_SUCH_FILE');
+ assert.strictEqual(castAsError(res.body).error.id, 'b6992544-63e7-67f0-fa7f-32444b1b5306');
});
test('返信できる', async () => {
@@ -101,6 +103,7 @@ describe('Note', () => {
assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true);
assert.strictEqual(res.body.createdNote.text, alicePost.text);
assert.strictEqual(res.body.createdNote.replyId, alicePost.replyId);
+ assert.ok(res.body.createdNote.reply);
assert.strictEqual(res.body.createdNote.reply.text, bobPost.text);
});
@@ -118,6 +121,7 @@ describe('Note', () => {
assert.strictEqual(res.status, 200);
assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true);
assert.strictEqual(res.body.createdNote.renoteId, alicePost.renoteId);
+ assert.ok(res.body.createdNote.renote);
assert.strictEqual(res.body.createdNote.renote.text, bobPost.text);
});
@@ -137,6 +141,7 @@ describe('Note', () => {
assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true);
assert.strictEqual(res.body.createdNote.text, alicePost.text);
assert.strictEqual(res.body.createdNote.renoteId, alicePost.renoteId);
+ assert.ok(res.body.createdNote.renote);
assert.strictEqual(res.body.createdNote.renote.text, bobPost.text);
});
@@ -218,7 +223,7 @@ describe('Note', () => {
}, bob);
assert.strictEqual(bobReply.status, 400);
- assert.strictEqual(bobReply.body.error.code, 'CANNOT_REPLY_TO_AN_INVISIBLE_NOTE');
+ assert.strictEqual(castAsError(bobReply.body).error.code, 'CANNOT_REPLY_TO_AN_INVISIBLE_NOTE');
});
test('visibility: specifiedなノートに対してvisibility: specifiedで返信できる', async () => {
@@ -256,7 +261,7 @@ describe('Note', () => {
}, bob);
assert.strictEqual(bobReply.status, 400);
- assert.strictEqual(bobReply.body.error.code, 'CANNOT_REPLY_TO_SPECIFIED_VISIBILITY_NOTE_WITH_EXTENDED_VISIBILITY');
+ assert.strictEqual(castAsError(bobReply.body).error.code, 'CANNOT_REPLY_TO_SPECIFIED_VISIBILITY_NOTE_WITH_EXTENDED_VISIBILITY');
});
test('文字数ぎりぎりで怒られない', async () => {
@@ -333,6 +338,7 @@ describe('Note', () => {
assert.strictEqual(res.body.createdNote.text, post.text);
const noteDoc = await Notes.findOneBy({ id: res.body.createdNote.id });
+ assert.ok(noteDoc);
assert.deepStrictEqual(noteDoc.mentions, [bob.id]);
});
@@ -345,6 +351,7 @@ describe('Note', () => {
assert.strictEqual(res.status, 200);
assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true);
+ assert.ok(res.body.createdNote.files);
assert.strictEqual(res.body.createdNote.files.length, 1);
assert.strictEqual(res.body.createdNote.files[0].id, file.body!.id);
});
@@ -363,8 +370,9 @@ describe('Note', () => {
assert.strictEqual(res.status, 200);
assert.strictEqual(Array.isArray(res.body), true);
- const myNote = res.body.find((note: { id: string; files: { id: string }[] }) => note.id === createdNote.body.createdNote.id);
- assert.notEqual(myNote, null);
+ const myNote = res.body.find(note => note.id === createdNote.body.createdNote.id);
+ assert.ok(myNote);
+ assert.ok(myNote.files);
assert.strictEqual(myNote.files.length, 1);
assert.strictEqual(myNote.files[0].id, file.body!.id);
});
@@ -389,7 +397,9 @@ describe('Note', () => {
assert.strictEqual(res.status, 200);
assert.strictEqual(Array.isArray(res.body), true);
const myNote = res.body.find((note: { id: string }) => note.id === renoted.body.createdNote.id);
- assert.notEqual(myNote, null);
+ assert.ok(myNote);
+ assert.ok(myNote.renote);
+ assert.ok(myNote.renote.files);
assert.strictEqual(myNote.renote.files.length, 1);
assert.strictEqual(myNote.renote.files[0].id, file.body!.id);
});
@@ -415,7 +425,9 @@ describe('Note', () => {
assert.strictEqual(res.status, 200);
assert.strictEqual(Array.isArray(res.body), true);
const myNote = res.body.find((note: { id: string }) => note.id === reply.body.createdNote.id);
- assert.notEqual(myNote, null);
+ assert.ok(myNote);
+ assert.ok(myNote.reply);
+ assert.ok(myNote.reply.files);
assert.strictEqual(myNote.reply.files.length, 1);
assert.strictEqual(myNote.reply.files[0].id, file.body!.id);
});
@@ -446,7 +458,10 @@ describe('Note', () => {
assert.strictEqual(res.status, 200);
assert.strictEqual(Array.isArray(res.body), true);
const myNote = res.body.find((note: { id: string }) => note.id === renoted.body.createdNote.id);
- assert.notEqual(myNote, null);
+ assert.ok(myNote);
+ assert.ok(myNote.renote);
+ assert.ok(myNote.renote.reply);
+ assert.ok(myNote.renote.reply.files);
assert.strictEqual(myNote.renote.reply.files.length, 1);
assert.strictEqual(myNote.renote.reply.files[0].id, file.body!.id);
});
@@ -474,7 +489,7 @@ describe('Note', () => {
priority: 0,
value: true,
},
- } as any,
+ },
}, root);
assert.strictEqual(res.status, 200);
@@ -498,7 +513,7 @@ describe('Note', () => {
}, alice);
assert.strictEqual(liftnsfw.status, 400);
- assert.strictEqual(liftnsfw.body.error.code, 'RESTRICTED_BY_ROLE');
+ assert.strictEqual(castAsError(liftnsfw.body).error.code, 'RESTRICTED_BY_ROLE');
const oldaddnsfw = await api('drive/files/update', {
fileId: file.body!.id,
@@ -710,7 +725,7 @@ describe('Note', () => {
}, alice);
assert.strictEqual(note1.status, 400);
- assert.strictEqual(note1.body.error.code, 'CONTAINS_PROHIBITED_WORDS');
+ assert.strictEqual(castAsError(note1.body).error.code, 'CONTAINS_PROHIBITED_WORDS');
});
test('禁止ワードを含む投稿はエラーになる (正規表現)', async () => {
@@ -727,7 +742,7 @@ describe('Note', () => {
}, alice);
assert.strictEqual(note2.status, 400);
- assert.strictEqual(note2.body.error.code, 'CONTAINS_PROHIBITED_WORDS');
+ assert.strictEqual(castAsError(note2.body).error.code, 'CONTAINS_PROHIBITED_WORDS');
});
test('禁止ワードを含む投稿はエラーになる (スペースアンド)', async () => {
@@ -744,7 +759,7 @@ describe('Note', () => {
}, alice);
assert.strictEqual(note2.status, 400);
- assert.strictEqual(note2.body.error.code, 'CONTAINS_PROHIBITED_WORDS');
+ assert.strictEqual(castAsError(note2.body).error.code, 'CONTAINS_PROHIBITED_WORDS');
});
test('禁止ワードを含んでるリモートノートもエラーになる', async () => {
@@ -786,7 +801,7 @@ describe('Note', () => {
priority: 1,
value: 0,
},
- } as any,
+ },
}, root);
assert.strictEqual(res.status, 200);
@@ -807,7 +822,7 @@ describe('Note', () => {
}, alice);
assert.strictEqual(note.status, 400);
- assert.strictEqual(note.body.error.code, 'CONTAINS_TOO_MANY_MENTIONS');
+ assert.strictEqual(castAsError(note.body).error.code, 'CONTAINS_TOO_MANY_MENTIONS');
await api('admin/roles/unassign', {
userId: alice.id,
@@ -840,7 +855,7 @@ describe('Note', () => {
priority: 1,
value: 0,
},
- } as any,
+ },
}, root);
assert.strictEqual(res.status, 200);
@@ -863,7 +878,7 @@ describe('Note', () => {
}, alice);
assert.strictEqual(note.status, 400);
- assert.strictEqual(note.body.error.code, 'CONTAINS_TOO_MANY_MENTIONS');
+ assert.strictEqual(castAsError(note.body).error.code, 'CONTAINS_TOO_MANY_MENTIONS');
await api('admin/roles/unassign', {
userId: alice.id,
@@ -896,7 +911,7 @@ describe('Note', () => {
priority: 1,
value: 1,
},
- } as any,
+ },
}, root);
assert.strictEqual(res.status, 200);
@@ -951,6 +966,7 @@ describe('Note', () => {
assert.strictEqual(deleteOneRes.status, 204);
let mainNote = await Notes.findOneBy({ id: mainNoteRes.body.createdNote.id });
+ assert.ok(mainNote);
assert.strictEqual(mainNote.repliesCount, 1);
const deleteTwoRes = await api('notes/delete', {
@@ -959,6 +975,7 @@ describe('Note', () => {
assert.strictEqual(deleteTwoRes.status, 204);
mainNote = await Notes.findOneBy({ id: mainNoteRes.body.createdNote.id });
+ assert.ok(mainNote);
assert.strictEqual(mainNote.repliesCount, 0);
});
});
@@ -980,7 +997,7 @@ describe('Note', () => {
}, alice);
assert.strictEqual(res.status, 400);
- assert.strictEqual(res.body.error.code, 'UNAVAILABLE');
+ assert.strictEqual(castAsError(res.body).error.code, 'UNAVAILABLE');
});
afterAll(async () => {
@@ -992,7 +1009,7 @@ describe('Note', () => {
const res = await api('notes/translate', { noteId: 'foo', targetLang: 'ja' }, alice);
assert.strictEqual(res.status, 400);
- assert.strictEqual(res.body.error.code, 'NO_SUCH_NOTE');
+ assert.strictEqual(castAsError(res.body).error.code, 'NO_SUCH_NOTE');
});
test('不可視なノートは翻訳できない', async () => {
@@ -1000,7 +1017,7 @@ describe('Note', () => {
const bobTranslateAttempt = await api('notes/translate', { noteId: aliceNote.id, targetLang: 'ja' }, bob);
assert.strictEqual(bobTranslateAttempt.status, 400);
- assert.strictEqual(bobTranslateAttempt.body.error.code, 'CANNOT_TRANSLATE_INVISIBLE_NOTE');
+ assert.strictEqual(castAsError(bobTranslateAttempt.body).error.code, 'CANNOT_TRANSLATE_INVISIBLE_NOTE');
});
test('text: null なノートを翻訳すると空のレスポンスが返ってくる', async () => {
@@ -1016,7 +1033,7 @@ describe('Note', () => {
// NOTE: デフォルトでは登録されていないので落ちる
assert.strictEqual(res.status, 400);
- assert.strictEqual(res.body.error.code, 'UNAVAILABLE');
+ assert.strictEqual(castAsError(res.body).error.code, 'UNAVAILABLE');
});
});
});
diff --git a/packages/backend/test/e2e/renote-mute.ts b/packages/backend/test/e2e/renote-mute.ts
index 1abbb4f04494..0f636b9ae205 100644
--- a/packages/backend/test/e2e/renote-mute.ts
+++ b/packages/backend/test/e2e/renote-mute.ts
@@ -6,7 +6,8 @@
process.env.NODE_ENV = 'test';
import * as assert from 'assert';
-import { api, post, signup, sleep, waitFire } from '../utils.js';
+import { setTimeout } from 'node:timers/promises';
+import { api, post, signup, waitFire } from '../utils.js';
import type * as misskey from 'misskey-js';
describe('Renote Mute', () => {
@@ -35,15 +36,15 @@ describe('Renote Mute', () => {
const carolNote = await post(carol, { text: 'hi' });
// redisに追加されるのを待つ
- await sleep(100);
+ await setTimeout(100);
const res = await api('notes/local-timeline', {}, alice);
assert.strictEqual(res.status, 200);
assert.strictEqual(Array.isArray(res.body), true);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
- assert.strictEqual(res.body.some((note: any) => note.id === carolRenote.id), false);
- assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === carolRenote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === carolNote.id), true);
});
test('タイムラインにリノートミュートしているユーザーの引用が含まれる', async () => {
@@ -52,15 +53,15 @@ describe('Renote Mute', () => {
const carolNote = await post(carol, { text: 'hi' });
// redisに追加されるのを待つ
- await sleep(100);
+ await setTimeout(100);
const res = await api('notes/local-timeline', {}, alice);
assert.strictEqual(res.status, 200);
assert.strictEqual(Array.isArray(res.body), true);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
- assert.strictEqual(res.body.some((note: any) => note.id === carolRenote.id), true);
- assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === carolRenote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === carolNote.id), true);
});
// #12956
@@ -69,14 +70,14 @@ describe('Renote Mute', () => {
const bobRenote = await post(bob, { renoteId: carolNote.id });
// redisに追加されるのを待つ
- await sleep(100);
+ await setTimeout(100);
const res = await api('notes/local-timeline', {}, alice);
assert.strictEqual(res.status, 200);
assert.strictEqual(Array.isArray(res.body), true);
- assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), true);
- assert.strictEqual(res.body.some((note: any) => note.id === bobRenote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === carolNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobRenote.id), true);
});
test('ストリームにリノートミュートしているユーザーのリノートが流れない', async () => {
diff --git a/packages/backend/test/e2e/thread-mute.ts b/packages/backend/test/e2e/thread-mute.ts
index 53bb6eb765a6..1ac99df884fe 100644
--- a/packages/backend/test/e2e/thread-mute.ts
+++ b/packages/backend/test/e2e/thread-mute.ts
@@ -33,9 +33,9 @@ describe('Note thread mute', () => {
assert.strictEqual(res.status, 200);
assert.strictEqual(Array.isArray(res.body), true);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
- assert.strictEqual(res.body.some((note: any) => note.id === carolReply.id), false);
- assert.strictEqual(res.body.some((note: any) => note.id === carolReplyWithoutMention.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === carolReply.id), false);
+ assert.strictEqual(res.body.some(note => note.id === carolReplyWithoutMention.id), false);
});
test('ミュートしているスレッドからメンションされても、hasUnreadMentions が true にならない', async () => {
@@ -93,8 +93,8 @@ describe('Note thread mute', () => {
assert.strictEqual(res.status, 200);
assert.strictEqual(Array.isArray(res.body), true);
- assert.strictEqual(res.body.some((notification: any) => notification.note.id === carolReply.id), false);
- assert.strictEqual(res.body.some((notification: any) => notification.note.id === carolReplyWithoutMention.id), false);
+ assert.strictEqual(res.body.some(notification => 'note' in notification && notification.note.id === carolReply.id), false);
+ assert.strictEqual(res.body.some(notification => 'note' in notification && notification.note.id === carolReplyWithoutMention.id), false);
// NOTE: bobの投稿はスレッドミュート前に行われたため通知に含まれていてもよい
});
diff --git a/packages/backend/test/e2e/timelines.ts b/packages/backend/test/e2e/timelines.ts
index 5487292afcd5..540b866b2816 100644
--- a/packages/backend/test/e2e/timelines.ts
+++ b/packages/backend/test/e2e/timelines.ts
@@ -7,17 +7,26 @@
// pnpm jest -- e2e/timelines.ts
import * as assert from 'assert';
-import { api, post, randomString, sendEnvUpdateRequest, signup, sleep, uploadUrl } from '../utils.js';
+import { setTimeout } from 'node:timers/promises';
+import { Redis } from 'ioredis';
+import { loadConfig } from '@/config.js';
+import { api, post, randomString, sendEnvUpdateRequest, signup, uploadUrl } from '../utils.js';
function genHost() {
return randomString() + '.example.com';
}
function waitForPushToTl() {
- return sleep(500);
+ return setTimeout(500);
}
+let redisForTimelines: Redis;
+
describe('Timelines', () => {
+ beforeAll(() => {
+ redisForTimelines = new Redis(loadConfig().redisForTimelines);
+ });
+
describe('Home TL', () => {
test.concurrent('自分の visibility: followers なノートが含まれる', async () => {
const [alice] = await Promise.all([signup()]);
@@ -28,15 +37,15 @@ describe('Timelines', () => {
const res = await api('notes/timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === aliceNote.id), true);
- assert.strictEqual(res.body.find((note: any) => note.id === aliceNote.id).text, 'hi');
+ assert.strictEqual(res.body.some(note => note.id === aliceNote.id), true);
+ assert.strictEqual(res.body.find(note => note.id === aliceNote.id)?.text, 'hi');
});
test.concurrent('フォローしているユーザーのノートが含まれる', async () => {
const [alice, bob, carol] = await Promise.all([signup(), signup(), signup()]);
await api('following/create', { userId: bob.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const bobNote = await post(bob, { text: 'hi' });
const carolNote = await post(carol, { text: 'hi' });
@@ -44,15 +53,15 @@ describe('Timelines', () => {
const res = await api('notes/timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
- assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === carolNote.id), false);
});
test.concurrent('フォローしているユーザーの visibility: followers なノートが含まれる', async () => {
const [alice, bob, carol] = await Promise.all([signup(), signup(), signup()]);
await api('following/create', { userId: bob.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const bobNote = await post(bob, { text: 'hi', visibility: 'followers' });
const carolNote = await post(carol, { text: 'hi' });
@@ -60,16 +69,16 @@ describe('Timelines', () => {
const res = await api('notes/timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
- assert.strictEqual(res.body.find((note: any) => note.id === bobNote.id).text, 'hi');
- assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.find(note => note.id === bobNote.id)?.text, 'hi');
+ assert.strictEqual(res.body.some(note => note.id === carolNote.id), false);
});
test.concurrent('withReplies: false でフォローしているユーザーの他人への返信が含まれない', async () => {
const [alice, bob, carol] = await Promise.all([signup(), signup(), signup()]);
await api('following/create', { userId: bob.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const carolNote = await post(carol, { text: 'hi' });
const bobNote = await post(bob, { text: 'hi', replyId: carolNote.id });
@@ -77,8 +86,8 @@ describe('Timelines', () => {
const res = await api('notes/timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
- assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === carolNote.id), false);
});
test.concurrent('withReplies: true でフォローしているユーザーの他人への返信が含まれる', async () => {
@@ -86,7 +95,7 @@ describe('Timelines', () => {
await api('following/create', { userId: bob.id }, alice);
await api('following/update', { userId: bob.id, withReplies: true }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const carolNote = await post(carol, { text: 'hi' });
const bobNote = await post(bob, { text: 'hi', replyId: carolNote.id });
@@ -94,8 +103,8 @@ describe('Timelines', () => {
const res = await api('notes/timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
- assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === carolNote.id), false);
});
test.concurrent('withReplies: true でフォローしているユーザーの他人へのDM返信が含まれない', async () => {
@@ -103,7 +112,7 @@ describe('Timelines', () => {
await api('following/create', { userId: bob.id }, alice);
await api('following/update', { userId: bob.id, withReplies: true }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const carolNote = await post(carol, { text: 'hi' });
const bobNote = await post(bob, { text: 'hi', replyId: carolNote.id, visibility: 'specified', visibleUserIds: [carolNote.id] });
@@ -111,8 +120,8 @@ describe('Timelines', () => {
const res = await api('notes/timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
- assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === carolNote.id), false);
});
test.concurrent('withReplies: true でフォローしているユーザーの他人の visibility: followers な投稿への返信が含まれない', async () => {
@@ -120,7 +129,7 @@ describe('Timelines', () => {
await api('following/create', { userId: bob.id }, alice);
await api('following/update', { userId: bob.id, withReplies: true }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const carolNote = await post(carol, { text: 'hi', visibility: 'followers' });
const bobNote = await post(bob, { text: 'hi', replyId: carolNote.id });
@@ -128,8 +137,8 @@ describe('Timelines', () => {
const res = await api('notes/timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
- assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === carolNote.id), false);
});
test.concurrent('withReplies: true でフォローしているユーザーの行った別のフォローしているユーザーの visibility: followers な投稿への返信が含まれる', async () => {
@@ -139,7 +148,7 @@ describe('Timelines', () => {
await api('following/create', { userId: carol.id }, alice);
await api('following/create', { userId: carol.id }, bob);
await api('following/update', { userId: bob.id, withReplies: true }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const carolNote = await post(carol, { text: 'hi', visibility: 'followers' });
const bobNote = await post(bob, { text: 'hi', replyId: carolNote.id });
@@ -147,9 +156,9 @@ describe('Timelines', () => {
const res = await api('notes/timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
- assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), true);
- assert.strictEqual(res.body.find((note: any) => note.id === carolNote.id).text, 'hi');
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === carolNote.id), true);
+ assert.strictEqual(res.body.find(note => note.id === carolNote.id)?.text, 'hi');
});
test.concurrent('withReplies: true でフォローしているユーザーの行った別のフォローしているユーザーの投稿への visibility: specified な返信が含まれない', async () => {
@@ -158,7 +167,7 @@ describe('Timelines', () => {
await api('following/create', { userId: bob.id }, alice);
await api('following/create', { userId: carol.id }, alice);
await api('following/update', { userId: bob.id, withReplies: true }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const carolNote = await post(carol, { text: 'hi' });
const bobNote = await post(bob, { text: 'hi', replyId: carolNote.id, visibility: 'specified', visibleUserIds: [carolNote.id] });
@@ -166,15 +175,15 @@ describe('Timelines', () => {
const res = await api('notes/timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
- assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === carolNote.id), true);
});
test.concurrent('withReplies: false でフォローしているユーザーのそのユーザー自身への返信が含まれる', async () => {
const [alice, bob] = await Promise.all([signup(), signup()]);
await api('following/create', { userId: bob.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const bobNote1 = await post(bob, { text: 'hi' });
const bobNote2 = await post(bob, { text: 'hi', replyId: bobNote1.id });
@@ -182,15 +191,15 @@ describe('Timelines', () => {
const res = await api('notes/timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote1.id), true);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote2.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote1.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote2.id), true);
});
test.concurrent('withReplies: false でフォローしているユーザーからの自分への返信が含まれる', async () => {
const [alice, bob] = await Promise.all([signup(), signup()]);
await api('following/create', { userId: bob.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const aliceNote = await post(alice, { text: 'hi' });
const bobNote = await post(bob, { text: 'hi', replyId: aliceNote.id });
@@ -198,8 +207,8 @@ describe('Timelines', () => {
const res = await api('notes/timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === aliceNote.id), true);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === aliceNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
});
test.concurrent('自分の他人への返信が含まれる', async () => {
@@ -212,15 +221,15 @@ describe('Timelines', () => {
const res = await api('notes/timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
- assert.strictEqual(res.body.some((note: any) => note.id === aliceNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === aliceNote.id), true);
});
test.concurrent('フォローしているユーザーの他人の投稿のリノートが含まれる', async () => {
const [alice, bob, carol] = await Promise.all([signup(), signup(), signup()]);
await api('following/create', { userId: bob.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const carolNote = await post(carol, { text: 'hi' });
const bobNote = await post(bob, { renoteId: carolNote.id });
@@ -228,15 +237,15 @@ describe('Timelines', () => {
const res = await api('notes/timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
- assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === carolNote.id), false);
});
test.concurrent('[withRenotes: false] フォローしているユーザーの他人の投稿のリノートが含まれない', async () => {
const [alice, bob, carol] = await Promise.all([signup(), signup(), signup()]);
await api('following/create', { userId: bob.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const carolNote = await post(carol, { text: 'hi' });
const bobNote = await post(bob, { renoteId: carolNote.id });
@@ -246,15 +255,15 @@ describe('Timelines', () => {
withRenotes: false,
}, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
- assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === carolNote.id), false);
});
test.concurrent('[withRenotes: false] フォローしているユーザーの他人の投稿の引用が含まれる', async () => {
const [alice, bob, carol] = await Promise.all([signup(), signup(), signup()]);
await api('following/create', { userId: bob.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const carolNote = await post(carol, { text: 'hi' });
const bobNote = await post(bob, { text: 'hi', renoteId: carolNote.id });
@@ -264,22 +273,22 @@ describe('Timelines', () => {
withRenotes: false,
}, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
- assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === carolNote.id), false);
});
test.concurrent('フォローしているユーザーの他人への visibility: specified なノートが含まれない', async () => {
const [alice, bob, carol] = await Promise.all([signup(), signup(), signup()]);
await api('following/create', { userId: bob.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const bobNote = await post(bob, { text: 'hi', visibility: 'specified', visibleUserIds: [carol.id] });
await waitForPushToTl();
const res = await api('notes/timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
});
test.concurrent('フォローしているユーザーが行ったミュートしているユーザーのリノートが含まれない', async () => {
@@ -287,7 +296,7 @@ describe('Timelines', () => {
await api('following/create', { userId: bob.id }, alice);
await api('mute/create', { userId: carol.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const carolNote = await post(carol, { text: 'hi' });
const bobNote = await post(bob, { text: 'hi', renoteId: carolNote.id });
@@ -295,8 +304,8 @@ describe('Timelines', () => {
const res = await api('notes/timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
- assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === carolNote.id), false);
});
test.concurrent('withReplies: true でフォローしているユーザーが行ったミュートしているユーザーの投稿への返信が含まれない', async () => {
@@ -305,7 +314,7 @@ describe('Timelines', () => {
await api('following/create', { userId: bob.id }, alice);
await api('following/update', { userId: bob.id, withReplies: true }, alice);
await api('mute/create', { userId: carol.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const carolNote = await post(carol, { text: 'hi' });
const bobNote = await post(bob, { text: 'hi', replyId: carolNote.id });
@@ -313,8 +322,8 @@ describe('Timelines', () => {
const res = await api('notes/timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
- assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === carolNote.id), false);
});
test.concurrent('フォローしているリモートユーザーのノートが含まれる', async () => {
@@ -329,7 +338,7 @@ describe('Timelines', () => {
const res = await api('notes/timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
});
test.concurrent('フォローしているリモートユーザーの visibility: home なノートが含まれる', async () => {
@@ -344,14 +353,14 @@ describe('Timelines', () => {
const res = await api('notes/timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
});
test.concurrent('[withFiles: true] フォローしているユーザーのファイル付きノートのみ含まれる', async () => {
const [alice, bob, carol] = await Promise.all([signup(), signup(), signup()]);
await api('following/create', { userId: bob.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const [bobFile, carolFile] = await Promise.all([
uploadUrl(bob, 'https://raw.githubusercontent.com/misskey-dev/assets/main/public/icon.png'),
uploadUrl(carol, 'https://raw.githubusercontent.com/misskey-dev/assets/main/public/icon.png'),
@@ -365,10 +374,10 @@ describe('Timelines', () => {
const res = await api('notes/timeline', { limit: 100, withFiles: true }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote1.id), false);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote2.id), true);
- assert.strictEqual(res.body.some((note: any) => note.id === carolNote1.id), false);
- assert.strictEqual(res.body.some((note: any) => note.id === carolNote2.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote1.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote2.id), true);
+ assert.strictEqual(res.body.some(note => note.id === carolNote1.id), false);
+ assert.strictEqual(res.body.some(note => note.id === carolNote2.id), false);
}, 1000 * 10);
test.concurrent('フォローしているユーザーのチャンネル投稿が含まれない', async () => {
@@ -376,14 +385,14 @@ describe('Timelines', () => {
const channel = await api('channels/create', { name: 'channel' }, bob).then(x => x.body);
await api('following/create', { userId: bob.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const bobNote = await post(bob, { text: 'hi', channelId: channel.id });
await waitForPushToTl();
const res = await api('notes/timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
});
test.concurrent('自分の visibility: specified なノートが含まれる', async () => {
@@ -395,23 +404,23 @@ describe('Timelines', () => {
const res = await api('notes/timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === aliceNote.id), true);
- assert.strictEqual(res.body.find((note: any) => note.id === aliceNote.id).text, 'hi');
+ assert.strictEqual(res.body.some(note => note.id === aliceNote.id), true);
+ assert.strictEqual(res.body.find(note => note.id === aliceNote.id)?.text, 'hi');
});
test.concurrent('フォローしているユーザーの自身を visibleUserIds に指定した visibility: specified なノートが含まれる', async () => {
const [alice, bob] = await Promise.all([signup(), signup()]);
await api('following/create', { userId: bob.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const bobNote = await post(bob, { text: 'hi', visibility: 'specified', visibleUserIds: [alice.id] });
await waitForPushToTl();
const res = await api('notes/timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
- assert.strictEqual(res.body.find((note: any) => note.id === bobNote.id).text, 'hi');
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.find(note => note.id === bobNote.id)?.text, 'hi');
});
test.concurrent('フォローしていないユーザーの自身を visibleUserIds に指定した visibility: specified なノートが含まれない', async () => {
@@ -423,21 +432,21 @@ describe('Timelines', () => {
const res = await api('notes/timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
});
test.concurrent('フォローしているユーザーの自身を visibleUserIds に指定していない visibility: specified なノートが含まれない', async () => {
const [alice, bob, carol] = await Promise.all([signup(), signup(), signup()]);
await api('following/create', { userId: bob.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const bobNote = await post(bob, { text: 'hi', visibility: 'specified', visibleUserIds: [carol.id] });
await waitForPushToTl();
const res = await api('notes/timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
});
test.concurrent('フォローしていないユーザーからの visibility: specified なノートに返信したときの自身のノートが含まれる', async () => {
@@ -450,8 +459,8 @@ describe('Timelines', () => {
const res = await api('notes/timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === aliceNote.id), true);
- assert.strictEqual(res.body.find((note: any) => note.id === aliceNote.id).text, 'ok');
+ assert.strictEqual(res.body.some(note => note.id === aliceNote.id), true);
+ assert.strictEqual(res.body.find(note => note.id === aliceNote.id)?.text, 'ok');
});
/* TODO
@@ -465,8 +474,8 @@ describe('Timelines', () => {
const res = await api('notes/timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
- assert.strictEqual(res.body.find((note: any) => note.id === bobNote.id).text, 'ok');
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.find(note => note.id === bobNote.id).text, 'ok');
});
*/
@@ -481,7 +490,7 @@ describe('Timelines', () => {
const res = await api('notes/timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
});
});
@@ -496,8 +505,8 @@ describe('Timelines', () => {
const res = await api('notes/local-timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
- assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === carolNote.id), false);
});
test.concurrent('他人の他人への返信が含まれない', async () => {
@@ -510,8 +519,8 @@ describe('Timelines', () => {
const res = await api('notes/local-timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
- assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === carolNote.id), true);
});
test.concurrent('他人のその人自身への返信が含まれる', async () => {
@@ -524,8 +533,8 @@ describe('Timelines', () => {
const res = await api('notes/local-timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote1.id), true);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote2.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote1.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote2.id), true);
});
test.concurrent('チャンネル投稿が含まれない', async () => {
@@ -538,7 +547,7 @@ describe('Timelines', () => {
const res = await api('notes/local-timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
});
test.concurrent('リモートユーザーのノートが含まれない', async () => {
@@ -550,7 +559,7 @@ describe('Timelines', () => {
const res = await api('notes/local-timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
});
// 含まれても良いと思うけど実装が面倒なので含まれない
@@ -558,7 +567,7 @@ describe('Timelines', () => {
const [alice, bob, carol] = await Promise.all([signup(), signup(), signup()]);
await api('following/create', { userId: carol.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const carolNote = await post(carol, { text: 'hi', visibility: 'home' });
const bobNote = await post(bob, { text: 'hi' });
@@ -566,15 +575,15 @@ describe('Timelines', () => {
const res = await api('notes/local-timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
- assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === carolNote.id), false);
});
test.concurrent('ミュートしているユーザーのノートが含まれない', async () => {
const [alice, bob, carol] = await Promise.all([signup(), signup(), signup()]);
await api('mute/create', { userId: carol.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const carolNote = await post(carol, { text: 'hi' });
const bobNote = await post(bob, { text: 'hi' });
@@ -582,8 +591,8 @@ describe('Timelines', () => {
const res = await api('notes/local-timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
- assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === carolNote.id), false);
});
test.concurrent('フォローしているユーザーが行ったミュートしているユーザーのリノートが含まれない', async () => {
@@ -591,7 +600,7 @@ describe('Timelines', () => {
await api('following/create', { userId: bob.id }, alice);
await api('mute/create', { userId: carol.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const carolNote = await post(carol, { text: 'hi' });
const bobNote = await post(bob, { text: 'hi', renoteId: carolNote.id });
@@ -599,8 +608,8 @@ describe('Timelines', () => {
const res = await api('notes/local-timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
- assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === carolNote.id), false);
});
test.concurrent('withReplies: true でフォローしているユーザーが行ったミュートしているユーザーの投稿への返信が含まれない', async () => {
@@ -609,7 +618,7 @@ describe('Timelines', () => {
await api('following/create', { userId: bob.id }, alice);
await api('following/update', { userId: bob.id, withReplies: true }, alice);
await api('mute/create', { userId: carol.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const carolNote = await post(carol, { text: 'hi' });
const bobNote = await post(bob, { text: 'hi', replyId: carolNote.id });
@@ -617,15 +626,15 @@ describe('Timelines', () => {
const res = await api('notes/local-timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
- assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === carolNote.id), false);
});
test.concurrent('withReplies: false でフォローしているユーザーからの自分への返信が含まれる', async () => {
const [alice, bob] = await Promise.all([signup(), signup()]);
await api('following/create', { userId: bob.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const aliceNote = await post(alice, { text: 'hi' });
const bobNote = await post(bob, { text: 'hi', replyId: aliceNote.id });
@@ -633,8 +642,8 @@ describe('Timelines', () => {
const res = await api('notes/local-timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === aliceNote.id), true);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === aliceNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
});
test.concurrent('[withReplies: true] 他人の他人への返信が含まれる', async () => {
@@ -647,7 +656,7 @@ describe('Timelines', () => {
const res = await api('notes/local-timeline', { limit: 100, withReplies: true }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
});
test.concurrent('[withFiles: true] ファイル付きノートのみ含まれる', async () => {
@@ -661,8 +670,8 @@ describe('Timelines', () => {
const res = await api('notes/local-timeline', { limit: 100, withFiles: true }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote1.id), false);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote2.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote1.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote2.id), true);
}, 1000 * 10);
});
@@ -676,7 +685,7 @@ describe('Timelines', () => {
const res = await api('notes/hybrid-timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
});
test.concurrent('ローカルユーザーの visibility: home なノートが含まれない', async () => {
@@ -688,28 +697,28 @@ describe('Timelines', () => {
const res = await api('notes/hybrid-timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
});
test.concurrent('フォローしているローカルユーザーの visibility: home なノートが含まれる', async () => {
const [alice, bob] = await Promise.all([signup(), signup()]);
await api('following/create', { userId: bob.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const bobNote = await post(bob, { text: 'hi', visibility: 'home' });
await waitForPushToTl();
const res = await api('notes/hybrid-timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
});
test.concurrent('withReplies: false でフォローしているユーザーからの自分への返信が含まれる', async () => {
const [alice, bob] = await Promise.all([signup(), signup()]);
await api('following/create', { userId: bob.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const aliceNote = await post(alice, { text: 'hi' });
const bobNote = await post(bob, { text: 'hi', replyId: aliceNote.id });
@@ -717,8 +726,8 @@ describe('Timelines', () => {
const res = await api('notes/hybrid-timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === aliceNote.id), true);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === aliceNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
});
test.concurrent('他人の他人への返信が含まれない', async () => {
@@ -731,8 +740,8 @@ describe('Timelines', () => {
const res = await api('notes/hybrid-timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
- assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === carolNote.id), true);
});
test.concurrent('リモートユーザーのノートが含まれない', async () => {
@@ -744,7 +753,7 @@ describe('Timelines', () => {
const res = await api('notes/local-timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
});
test.concurrent('フォローしているリモートユーザーのノートが含まれる', async () => {
@@ -759,7 +768,7 @@ describe('Timelines', () => {
const res = await api('notes/hybrid-timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
});
test.concurrent('フォローしているリモートユーザーの visibility: home なノートが含まれる', async () => {
@@ -774,7 +783,7 @@ describe('Timelines', () => {
const res = await api('notes/hybrid-timeline', { limit: 100 }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
});
test.concurrent('[withReplies: true] 他人の他人への返信が含まれる', async () => {
@@ -787,7 +796,7 @@ describe('Timelines', () => {
const res = await api('notes/hybrid-timeline', { limit: 100, withReplies: true }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
});
test.concurrent('[withFiles: true] ファイル付きノートのみ含まれる', async () => {
@@ -801,8 +810,8 @@ describe('Timelines', () => {
const res = await api('notes/hybrid-timeline', { limit: 100, withFiles: true }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote1.id), false);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote2.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote1.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote2.id), true);
}, 1000 * 10);
});
@@ -812,14 +821,14 @@ describe('Timelines', () => {
const list = await api('users/lists/create', { name: 'list' }, alice).then(res => res.body);
await api('users/lists/push', { listId: list.id, userId: bob.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const bobNote = await post(bob, { text: 'hi' });
await waitForPushToTl();
const res = await api('notes/user-list-timeline', { listId: list.id }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
});
test.concurrent('リスインしているフォローしていないユーザーの visibility: home なノートが含まれる', async () => {
@@ -827,14 +836,14 @@ describe('Timelines', () => {
const list = await api('users/lists/create', { name: 'list' }, alice).then(res => res.body);
await api('users/lists/push', { listId: list.id, userId: bob.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const bobNote = await post(bob, { text: 'hi', visibility: 'home' });
await waitForPushToTl();
const res = await api('notes/user-list-timeline', { listId: list.id }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
});
test.concurrent('リスインしているフォローしていないユーザーの visibility: followers なノートが含まれない', async () => {
@@ -842,14 +851,14 @@ describe('Timelines', () => {
const list = await api('users/lists/create', { name: 'list' }, alice).then(res => res.body);
await api('users/lists/push', { listId: list.id, userId: bob.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const bobNote = await post(bob, { text: 'hi', visibility: 'followers' });
await waitForPushToTl();
const res = await api('notes/user-list-timeline', { listId: list.id }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
});
test.concurrent('リスインしているフォローしていないユーザーの他人への返信が含まれない', async () => {
@@ -857,7 +866,7 @@ describe('Timelines', () => {
const list = await api('users/lists/create', { name: 'list' }, alice).then(res => res.body);
await api('users/lists/push', { listId: list.id, userId: bob.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const carolNote = await post(carol, { text: 'hi' });
const bobNote = await post(bob, { text: 'hi', replyId: carolNote.id });
@@ -865,7 +874,7 @@ describe('Timelines', () => {
const res = await api('notes/user-list-timeline', { listId: list.id }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
});
test.concurrent('リスインしているフォローしていないユーザーのユーザー自身への返信が含まれる', async () => {
@@ -873,7 +882,7 @@ describe('Timelines', () => {
const list = await api('users/lists/create', { name: 'list' }, alice).then(res => res.body);
await api('users/lists/push', { listId: list.id, userId: bob.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const bobNote1 = await post(bob, { text: 'hi' });
const bobNote2 = await post(bob, { text: 'hi', replyId: bobNote1.id });
@@ -881,8 +890,8 @@ describe('Timelines', () => {
const res = await api('notes/user-list-timeline', { listId: list.id }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote1.id), true);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote2.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote1.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote2.id), true);
});
test.concurrent('withReplies: false でリスインしているフォローしていないユーザーからの自分への返信が含まれる', async () => {
@@ -891,7 +900,7 @@ describe('Timelines', () => {
const list = await api('users/lists/create', { name: 'list' }, alice).then(res => res.body);
await api('users/lists/push', { listId: list.id, userId: bob.id }, alice);
await api('users/lists/update-membership', { listId: list.id, userId: bob.id, withReplies: false }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const aliceNote = await post(alice, { text: 'hi' });
const bobNote = await post(bob, { text: 'hi', replyId: aliceNote.id });
@@ -899,7 +908,7 @@ describe('Timelines', () => {
const res = await api('notes/user-list-timeline', { listId: list.id }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
});
test.concurrent('withReplies: false でリスインしているフォローしていないユーザーの他人への返信が含まれない', async () => {
@@ -908,7 +917,7 @@ describe('Timelines', () => {
const list = await api('users/lists/create', { name: 'list' }, alice).then(res => res.body);
await api('users/lists/push', { listId: list.id, userId: bob.id }, alice);
await api('users/lists/update-membership', { listId: list.id, userId: bob.id, withReplies: false }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const carolNote = await post(carol, { text: 'hi' });
const bobNote = await post(bob, { text: 'hi', replyId: carolNote.id });
@@ -916,7 +925,7 @@ describe('Timelines', () => {
const res = await api('notes/user-list-timeline', { listId: list.id }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
});
test.concurrent('withReplies: true でリスインしているフォローしていないユーザーの他人への返信が含まれる', async () => {
@@ -925,7 +934,7 @@ describe('Timelines', () => {
const list = await api('users/lists/create', { name: 'list' }, alice).then(res => res.body);
await api('users/lists/push', { listId: list.id, userId: bob.id }, alice);
await api('users/lists/update-membership', { listId: list.id, userId: bob.id, withReplies: true }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const carolNote = await post(carol, { text: 'hi' });
const bobNote = await post(bob, { text: 'hi', replyId: carolNote.id });
@@ -933,7 +942,7 @@ describe('Timelines', () => {
const res = await api('notes/user-list-timeline', { listId: list.id }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
});
test.concurrent('リスインしているフォローしているユーザーの visibility: home なノートが含まれる', async () => {
@@ -942,14 +951,14 @@ describe('Timelines', () => {
await api('following/create', { userId: bob.id }, alice);
const list = await api('users/lists/create', { name: 'list' }, alice).then(res => res.body);
await api('users/lists/push', { listId: list.id, userId: bob.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const bobNote = await post(bob, { text: 'hi', visibility: 'home' });
await waitForPushToTl();
const res = await api('notes/user-list-timeline', { listId: list.id }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
});
test.concurrent('リスインしているフォローしているユーザーの visibility: followers なノートが含まれる', async () => {
@@ -958,15 +967,15 @@ describe('Timelines', () => {
await api('following/create', { userId: bob.id }, alice);
const list = await api('users/lists/create', { name: 'list' }, alice).then(res => res.body);
await api('users/lists/push', { listId: list.id, userId: bob.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const bobNote = await post(bob, { text: 'hi', visibility: 'followers' });
await waitForPushToTl();
const res = await api('notes/user-list-timeline', { listId: list.id }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
- assert.strictEqual(res.body.find((note: any) => note.id === bobNote.id).text, 'hi');
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.find(note => note.id === bobNote.id)?.text, 'hi');
});
test.concurrent('リスインしている自分の visibility: followers なノートが含まれる', async () => {
@@ -974,15 +983,15 @@ describe('Timelines', () => {
const list = await api('users/lists/create', { name: 'list' }, alice).then(res => res.body);
await api('users/lists/push', { listId: list.id, userId: alice.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const aliceNote = await post(alice, { text: 'hi', visibility: 'followers' });
await waitForPushToTl();
const res = await api('notes/user-list-timeline', { listId: list.id }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === aliceNote.id), true);
- assert.strictEqual(res.body.find((note: any) => note.id === aliceNote.id).text, 'hi');
+ assert.strictEqual(res.body.some(note => note.id === aliceNote.id), true);
+ assert.strictEqual(res.body.find(note => note.id === aliceNote.id)?.text, 'hi');
});
test.concurrent('リスインしているユーザーのチャンネルノートが含まれない', async () => {
@@ -991,14 +1000,14 @@ describe('Timelines', () => {
const channel = await api('channels/create', { name: 'channel' }, bob).then(x => x.body);
const list = await api('users/lists/create', { name: 'list' }, alice).then(res => res.body);
await api('users/lists/push', { listId: list.id, userId: bob.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const bobNote = await post(bob, { text: 'hi', channelId: channel.id });
await waitForPushToTl();
const res = await api('notes/user-list-timeline', { listId: list.id }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
});
test.concurrent('[withFiles: true] リスインしているユーザーのファイル付きノートのみ含まれる', async () => {
@@ -1014,8 +1023,8 @@ describe('Timelines', () => {
const res = await api('notes/user-list-timeline', { listId: list.id, withFiles: true }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote1.id), false);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote2.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote1.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote2.id), true);
}, 1000 * 10);
test.concurrent('リスインしているユーザーの自身宛ての visibility: specified なノートが含まれる', async () => {
@@ -1023,15 +1032,15 @@ describe('Timelines', () => {
const list = await api('users/lists/create', { name: 'list' }, alice).then(res => res.body);
await api('users/lists/push', { listId: list.id, userId: bob.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const bobNote = await post(bob, { text: 'hi', visibility: 'specified', visibleUserIds: [alice.id] });
await waitForPushToTl();
const res = await api('notes/user-list-timeline', { listId: list.id }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
- assert.strictEqual(res.body.find((note: any) => note.id === bobNote.id).text, 'hi');
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.find(note => note.id === bobNote.id)?.text, 'hi');
});
test.concurrent('リスインしているユーザーの自身宛てではない visibility: specified なノートが含まれない', async () => {
@@ -1040,14 +1049,14 @@ describe('Timelines', () => {
const list = await api('users/lists/create', { name: 'list' }, alice).then(res => res.body);
await api('users/lists/push', { listId: list.id, userId: bob.id }, alice);
await api('users/lists/push', { listId: list.id, userId: carol.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const bobNote = await post(bob, { text: 'hi', visibility: 'specified', visibleUserIds: [carol.id] });
await waitForPushToTl();
const res = await api('notes/user-list-timeline', { listId: list.id }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
});
});
@@ -1061,7 +1070,7 @@ describe('Timelines', () => {
const res = await api('users/notes', { userId: bob.id }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
});
test.concurrent('フォローしていないユーザーの visibility: followers なノートが含まれない', async () => {
@@ -1073,22 +1082,22 @@ describe('Timelines', () => {
const res = await api('users/notes', { userId: bob.id }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
});
test.concurrent('フォローしているユーザーの visibility: followers なノートが含まれる', async () => {
const [alice, bob] = await Promise.all([signup(), signup()]);
await api('following/create', { userId: bob.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const bobNote = await post(bob, { text: 'hi', visibility: 'followers' });
await waitForPushToTl();
const res = await api('users/notes', { userId: bob.id }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
- assert.strictEqual(res.body.find((note: any) => note.id === bobNote.id).text, 'hi');
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.find(note => note.id === bobNote.id)?.text, 'hi');
});
test.concurrent('自身の visibility: followers なノートが含まれる', async () => {
@@ -1100,8 +1109,8 @@ describe('Timelines', () => {
const res = await api('users/notes', { userId: alice.id }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === aliceNote.id), true);
- assert.strictEqual(res.body.find((note: any) => note.id === aliceNote.id).text, 'hi');
+ assert.strictEqual(res.body.some(note => note.id === aliceNote.id), true);
+ assert.strictEqual(res.body.find(note => note.id === aliceNote.id)?.text, 'hi');
});
test.concurrent('チャンネル投稿が含まれない', async () => {
@@ -1114,7 +1123,7 @@ describe('Timelines', () => {
const res = await api('users/notes', { userId: bob.id }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
});
test.concurrent('[withReplies: false] 他人への返信が含まれない', async () => {
@@ -1128,8 +1137,8 @@ describe('Timelines', () => {
const res = await api('users/notes', { userId: bob.id }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote1.id), true);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote2.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote1.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote2.id), false);
});
test.concurrent('[withReplies: true] 他人への返信が含まれる', async () => {
@@ -1143,8 +1152,8 @@ describe('Timelines', () => {
const res = await api('users/notes', { userId: bob.id, withReplies: true }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote1.id), true);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote2.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote1.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote2.id), true);
});
test.concurrent('[withReplies: true] 他人への visibility: specified な返信が含まれない', async () => {
@@ -1158,8 +1167,8 @@ describe('Timelines', () => {
const res = await api('users/notes', { userId: bob.id, withReplies: true }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote1.id), true);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote2.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote1.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote2.id), false);
});
test.concurrent('[withFiles: true] ファイル付きノートのみ含まれる', async () => {
@@ -1173,8 +1182,8 @@ describe('Timelines', () => {
const res = await api('users/notes', { userId: bob.id, withFiles: true }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote1.id), false);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote2.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote1.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote2.id), true);
}, 1000 * 10);
test.concurrent('[withChannelNotes: true] チャンネル投稿が含まれる', async () => {
@@ -1187,7 +1196,7 @@ describe('Timelines', () => {
const res = await api('users/notes', { userId: bob.id, withChannelNotes: true }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
});
test.concurrent('[withChannelNotes: true] 他人が取得した場合センシティブチャンネル投稿が含まれない', async () => {
@@ -1200,7 +1209,7 @@ describe('Timelines', () => {
const res = await api('users/notes', { userId: bob.id, withChannelNotes: true }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
});
test.concurrent('[withChannelNotes: true] 自分が取得した場合センシティブチャンネル投稿が含まれる', async () => {
@@ -1213,14 +1222,14 @@ describe('Timelines', () => {
const res = await api('users/notes', { userId: bob.id, withChannelNotes: true }, bob);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), true);
});
test.concurrent('ミュートしているユーザーに関連する投稿が含まれない', async () => {
const [alice, bob, carol] = await Promise.all([signup(), signup(), signup()]);
await api('mute/create', { userId: carol.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const carolNote = await post(carol, { text: 'hi' });
const bobNote = await post(bob, { text: 'hi', renoteId: carolNote.id });
@@ -1228,14 +1237,14 @@ describe('Timelines', () => {
const res = await api('users/notes', { userId: bob.id }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
});
test.concurrent('ミュートしていても userId に指定したユーザーの投稿が含まれる', async () => {
const [alice, bob] = await Promise.all([signup(), signup()]);
await api('mute/create', { userId: bob.id }, alice);
- await sleep(1000);
+ await setTimeout(1000);
const bobNote1 = await post(bob, { text: 'hi' });
const bobNote2 = await post(bob, { text: 'hi', replyId: bobNote1.id });
const bobNote3 = await post(bob, { text: 'hi', renoteId: bobNote1.id });
@@ -1244,9 +1253,9 @@ describe('Timelines', () => {
const res = await api('users/notes', { userId: bob.id }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote1.id), true);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote2.id), true);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote3.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote1.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote2.id), true);
+ assert.strictEqual(res.body.some(note => note.id === bobNote3.id), true);
});
test.concurrent('自身の visibility: specified なノートが含まれる', async () => {
@@ -1258,7 +1267,7 @@ describe('Timelines', () => {
const res = await api('users/notes', { userId: alice.id, withReplies: true }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === aliceNote.id), true);
+ assert.strictEqual(res.body.some(note => note.id === aliceNote.id), true);
});
test.concurrent('visibleUserIds に指定されてない visibility: specified なノートが含まれない', async () => {
@@ -1270,7 +1279,34 @@ describe('Timelines', () => {
const res = await api('users/notes', { userId: bob.id, withReplies: true }, alice);
- assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false);
+ assert.strictEqual(res.body.some(note => note.id === bobNote.id), false);
+ });
+
+ /** @see https://github.com/misskey-dev/misskey/issues/14000 */
+ test.concurrent('FTT: sinceId にキャッシュより古いノートを指定しても、sinceId による絞り込みが正しく動作する', async () => {
+ const alice = await signup();
+ const noteSince = await post(alice, { text: 'Note where id will be `sinceId`.' });
+ const note1 = await post(alice, { text: '1' });
+ const note2 = await post(alice, { text: '2' });
+ await redisForTimelines.del('list:userTimeline:' + alice.id);
+ const note3 = await post(alice, { text: '3' });
+
+ const res = await api('users/notes', { userId: alice.id, sinceId: noteSince.id });
+ assert.deepStrictEqual(res.body, [note1, note2, note3]);
+ });
+
+ test.concurrent('FTT: sinceId にキャッシュより古いノートを指定しても、sinceId と untilId による絞り込みが正しく動作する', async () => {
+ const alice = await signup();
+ const noteSince = await post(alice, { text: 'Note where id will be `sinceId`.' });
+ const note1 = await post(alice, { text: '1' });
+ const note2 = await post(alice, { text: '2' });
+ await redisForTimelines.del('list:userTimeline:' + alice.id);
+ const note3 = await post(alice, { text: '3' });
+ const noteUntil = await post(alice, { text: 'Note where id will be `untilId`.' });
+ await post(alice, { text: '4' });
+
+ const res = await api('users/notes', { userId: alice.id, sinceId: noteSince.id, untilId: noteUntil.id });
+ assert.deepStrictEqual(res.body, [note3, note2, note1]);
});
});
diff --git a/packages/backend/test/e2e/user-notes.ts b/packages/backend/test/e2e/user-notes.ts
index 331e053935f8..cc07c5ae71ac 100644
--- a/packages/backend/test/e2e/user-notes.ts
+++ b/packages/backend/test/e2e/user-notes.ts
@@ -17,8 +17,8 @@ describe('users/notes', () => {
beforeAll(async () => {
alice = await signup({ username: 'alice' });
- const jpg = await uploadUrl(alice, 'https://raw.githubusercontent.com/misskey-dev/misskey/develop/packages/backend/test/resources/Lenna.jpg');
- const png = await uploadUrl(alice, 'https://raw.githubusercontent.com/misskey-dev/misskey/develop/packages/backend/test/resources/Lenna.png');
+ const jpg = await uploadUrl(alice, 'https://raw.githubusercontent.com/misskey-dev/misskey/develop/packages/backend/test/resources/192.jpg');
+ const png = await uploadUrl(alice, 'https://raw.githubusercontent.com/misskey-dev/misskey/develop/packages/backend/test/resources/192.png');
jpgNote = await post(alice, {
fileIds: [jpg.id],
});
diff --git a/packages/backend/test/e2e/users.ts b/packages/backend/test/e2e/users.ts
index 3458e06384f2..61fd7599322a 100644
--- a/packages/backend/test/e2e/users.ts
+++ b/packages/backend/test/e2e/users.ts
@@ -231,7 +231,7 @@ describe('ユーザー', () => {
rolePublic = await role(root, { isPublic: true, name: 'Public Role' });
await api('admin/roles/assign', { userId: userRolePublic.id, roleId: rolePublic.id }, root);
userRoleBadge = await signup({ username: 'userRoleBadge' });
- roleBadge = await role(root, { asBadge: true, name: 'Badge Role' });
+ roleBadge = await role(root, { asBadge: true, name: 'Badge Role', isPublic: true });
await api('admin/roles/assign', { userId: userRoleBadge.id, roleId: roleBadge.id }, root);
userSilenced = await signup({ username: 'userSilenced' });
await post(userSilenced, { text: 'test' });
@@ -655,7 +655,16 @@ describe('ユーザー', () => {
iconUrl: roleBadge.iconUrl,
displayOrder: roleBadge.displayOrder,
}]);
- assert.deepStrictEqual(response.roles, []); // バッヂだからといってrolesが取れるとは限らない
+ assert.deepStrictEqual(response.roles, [{
+ id: roleBadge.id,
+ name: roleBadge.name,
+ color: roleBadge.color,
+ iconUrl: roleBadge.iconUrl,
+ description: roleBadge.description,
+ isModerator: roleBadge.isModerator,
+ isAdministrator: roleBadge.isAdministrator,
+ displayOrder: roleBadge.displayOrder,
+ }]);
});
test('をID指定のリスト形式で取得することができる(空)', async () => {
const parameters = { userIds: [] };
diff --git a/packages/backend/test/eslint.config.js b/packages/backend/test/eslint.config.js
new file mode 100644
index 000000000000..a0f43babadfb
--- /dev/null
+++ b/packages/backend/test/eslint.config.js
@@ -0,0 +1,22 @@
+import globals from 'globals';
+import tsParser from '@typescript-eslint/parser';
+import sharedConfig from '../../shared/eslint.config.js';
+
+export default [
+ ...sharedConfig,
+ {
+ files: ['**/*.ts', '**/*.tsx'],
+ languageOptions: {
+ globals: {
+ ...globals.node,
+ ...globals.jest,
+ },
+ parserOptions: {
+ parser: tsParser,
+ project: ['./tsconfig.json'],
+ sourceType: 'module',
+ tsconfigRootDir: import.meta.dirname,
+ },
+ },
+ },
+];
diff --git a/packages/backend/test/prelude/maybe.ts b/packages/backend/test/prelude/maybe.ts
deleted file mode 100644
index 16e92216d483..000000000000
--- a/packages/backend/test/prelude/maybe.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * SPDX-FileCopyrightText: syuilo and misskey-project
- * SPDX-License-Identifier: AGPL-3.0-only
- */
-
-import * as assert from 'assert';
-import { just, nothing } from '../../src/misc/prelude/maybe.js';
-
-describe('just', () => {
- test('has a value', () => {
- assert.deepStrictEqual(just(3).isJust(), true);
- });
-
- test('has the inverse called get', () => {
- assert.deepStrictEqual(just(3).get(), 3);
- });
-});
-
-describe('nothing', () => {
- test('has no value', () => {
- assert.deepStrictEqual(nothing().isJust(), false);
- });
-});
diff --git a/packages/backend/test/resources/192.jpg b/packages/backend/test/resources/192.jpg
new file mode 100644
index 000000000000..76374628e0ac
Binary files /dev/null and b/packages/backend/test/resources/192.jpg differ
diff --git a/packages/backend/test/resources/192.png b/packages/backend/test/resources/192.png
new file mode 100644
index 000000000000..15fd1e373121
Binary files /dev/null and b/packages/backend/test/resources/192.png differ
diff --git a/packages/backend/test/resources/Lenna.jpg b/packages/backend/test/resources/Lenna.jpg
deleted file mode 100644
index 6b5b32281c1f..000000000000
Binary files a/packages/backend/test/resources/Lenna.jpg and /dev/null differ
diff --git a/packages/backend/test/resources/Lenna.png b/packages/backend/test/resources/Lenna.png
deleted file mode 100644
index 59ef68aabd03..000000000000
Binary files a/packages/backend/test/resources/Lenna.png and /dev/null differ
diff --git a/packages/backend/test/unit/ApMfmService.ts b/packages/backend/test/unit/ApMfmService.ts
index 79cb81f5c9ff..e81a321c9be3 100644
--- a/packages/backend/test/unit/ApMfmService.ts
+++ b/packages/backend/test/unit/ApMfmService.ts
@@ -23,10 +23,10 @@ describe('ApMfmService', () => {
describe('getNoteHtml', () => {
test('Do not provide _misskey_content for simple text', () => {
- const note: MiNote = {
+ const note = {
text: 'テキスト #タグ @mention 🍊 :emoji: https://example.com',
mentionedRemoteUsers: '[]',
- } as any;
+ };
const { content, noMisskeyContent } = apMfmService.getNoteHtml(note);
@@ -35,10 +35,10 @@ describe('ApMfmService', () => {
});
test('Provide _misskey_content for MFM', () => {
- const note: MiNote = {
+ const note = {
text: '$[tada foo]',
mentionedRemoteUsers: '[]',
- } as any;
+ };
const { content, noMisskeyContent } = apMfmService.getNoteHtml(note);
diff --git a/packages/backend/test/unit/FileInfoService.ts b/packages/backend/test/unit/FileInfoService.ts
index 40d187f5a882..29bd03a20121 100644
--- a/packages/backend/test/unit/FileInfoService.ts
+++ b/packages/backend/test/unit/FileInfoService.ts
@@ -12,7 +12,7 @@ import { ModuleMocker } from 'jest-mock';
import { Test } from '@nestjs/testing';
import { afterAll, beforeAll, describe, test } from '@jest/globals';
import { GlobalModule } from '@/GlobalModule.js';
-import { FileInfoService } from '@/core/FileInfoService.js';
+import { FileInfo, FileInfoService } from '@/core/FileInfoService.js';
//import { DI } from '@/di-symbols.js';
import { AiService } from '@/core/AiService.js';
import { LoggerService } from '@/core/LoggerService.js';
@@ -28,6 +28,15 @@ const moduleMocker = new ModuleMocker(global);
describe('FileInfoService', () => {
let app: TestingModule;
let fileInfoService: FileInfoService;
+ const strip = (fileInfo: FileInfo): Omit, 'warnings' | 'blurhash' | 'sensitive' | 'porn'> => {
+ const fi: Partial = fileInfo;
+ delete fi.warnings;
+ delete fi.sensitive;
+ delete fi.blurhash;
+ delete fi.porn;
+
+ return fi;
+ }
beforeAll(async () => {
app = await Test.createTestingModule({
@@ -63,11 +72,7 @@ describe('FileInfoService', () => {
test('Empty file', async () => {
const path = `${resources}/emptyfile`;
- const info = await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }) as any;
- delete info.warnings;
- delete info.blurhash;
- delete info.sensitive;
- delete info.porn;
+ const info = strip(await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }));
assert.deepStrictEqual(info, {
size: 0,
md5: 'd41d8cd98f00b204e9800998ecf8427e',
@@ -83,32 +88,24 @@ describe('FileInfoService', () => {
describe('IMAGE', () => {
test('Generic JPEG', async () => {
- const path = `${resources}/Lenna.jpg`;
- const info = await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }) as any;
- delete info.warnings;
- delete info.blurhash;
- delete info.sensitive;
- delete info.porn;
+ const path = `${resources}/192.jpg`;
+ const info = strip(await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }));
assert.deepStrictEqual(info, {
- size: 25360,
- md5: '091b3f259662aa31e2ffef4519951168',
+ size: 5131,
+ md5: '8c9ed0677dd2b8f9f7472c3af247e5e3',
type: {
mime: 'image/jpeg',
ext: 'jpg',
},
- width: 512,
- height: 512,
+ width: 192,
+ height: 192,
orientation: undefined,
});
});
test('Generic APNG', async () => {
const path = `${resources}/anime.png`;
- const info = await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }) as any;
- delete info.warnings;
- delete info.blurhash;
- delete info.sensitive;
- delete info.porn;
+ const info = strip(await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }));
assert.deepStrictEqual(info, {
size: 1868,
md5: '08189c607bea3b952704676bb3c979e0',
@@ -124,11 +121,7 @@ describe('FileInfoService', () => {
test('Generic AGIF', async () => {
const path = `${resources}/anime.gif`;
- const info = await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }) as any;
- delete info.warnings;
- delete info.blurhash;
- delete info.sensitive;
- delete info.porn;
+ const info = strip(await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }));
assert.deepStrictEqual(info, {
size: 2248,
md5: '32c47a11555675d9267aee1a86571e7e',
@@ -144,11 +137,7 @@ describe('FileInfoService', () => {
test('PNG with alpha', async () => {
const path = `${resources}/with-alpha.png`;
- const info = await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }) as any;
- delete info.warnings;
- delete info.blurhash;
- delete info.sensitive;
- delete info.porn;
+ const info = strip(await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }));
assert.deepStrictEqual(info, {
size: 3772,
md5: 'f73535c3e1e27508885b69b10cf6e991',
@@ -164,11 +153,7 @@ describe('FileInfoService', () => {
test('Generic SVG', async () => {
const path = `${resources}/image.svg`;
- const info = await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }) as any;
- delete info.warnings;
- delete info.blurhash;
- delete info.sensitive;
- delete info.porn;
+ const info = strip(await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }));
assert.deepStrictEqual(info, {
size: 505,
md5: 'b6f52b4b021e7b92cdd04509c7267965',
@@ -185,11 +170,7 @@ describe('FileInfoService', () => {
test('SVG with XML definition', async () => {
// https://github.com/misskey-dev/misskey/issues/4413
const path = `${resources}/with-xml-def.svg`;
- const info = await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }) as any;
- delete info.warnings;
- delete info.blurhash;
- delete info.sensitive;
- delete info.porn;
+ const info = strip(await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }));
assert.deepStrictEqual(info, {
size: 544,
md5: '4b7a346cde9ccbeb267e812567e33397',
@@ -205,11 +186,7 @@ describe('FileInfoService', () => {
test('Dimension limit', async () => {
const path = `${resources}/25000x25000.png`;
- const info = await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }) as any;
- delete info.warnings;
- delete info.blurhash;
- delete info.sensitive;
- delete info.porn;
+ const info = strip(await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }));
assert.deepStrictEqual(info, {
size: 75933,
md5: '268c5dde99e17cf8fe09f1ab3f97df56',
@@ -225,11 +202,7 @@ describe('FileInfoService', () => {
test('Rotate JPEG', async () => {
const path = `${resources}/rotate.jpg`;
- const info = await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }) as any;
- delete info.warnings;
- delete info.blurhash;
- delete info.sensitive;
- delete info.porn;
+ const info = strip(await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }));
assert.deepStrictEqual(info, {
size: 12624,
md5: '68d5b2d8d1d1acbbce99203e3ec3857e',
@@ -247,11 +220,7 @@ describe('FileInfoService', () => {
describe('AUDIO', () => {
test('MP3', async () => {
const path = `${resources}/kick_gaba7.mp3`;
- const info = await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }) as any;
- delete info.warnings;
- delete info.blurhash;
- delete info.sensitive;
- delete info.porn;
+ const info = strip(await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }));
delete info.width;
delete info.height;
delete info.orientation;
@@ -267,11 +236,7 @@ describe('FileInfoService', () => {
test('WAV', async () => {
const path = `${resources}/kick_gaba7.wav`;
- const info = await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }) as any;
- delete info.warnings;
- delete info.blurhash;
- delete info.sensitive;
- delete info.porn;
+ const info = strip(await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }));
delete info.width;
delete info.height;
delete info.orientation;
@@ -287,11 +252,7 @@ describe('FileInfoService', () => {
test('AAC', async () => {
const path = `${resources}/kick_gaba7.aac`;
- const info = await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }) as any;
- delete info.warnings;
- delete info.blurhash;
- delete info.sensitive;
- delete info.porn;
+ const info = strip(await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }));
delete info.width;
delete info.height;
delete info.orientation;
@@ -307,11 +268,7 @@ describe('FileInfoService', () => {
test('FLAC', async () => {
const path = `${resources}/kick_gaba7.flac`;
- const info = await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }) as any;
- delete info.warnings;
- delete info.blurhash;
- delete info.sensitive;
- delete info.porn;
+ const info = strip(await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }));
delete info.width;
delete info.height;
delete info.orientation;
@@ -327,11 +284,7 @@ describe('FileInfoService', () => {
test('MPEG-4 AUDIO (M4A)', async () => {
const path = `${resources}/kick_gaba7.m4a`;
- const info = await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }) as any;
- delete info.warnings;
- delete info.blurhash;
- delete info.sensitive;
- delete info.porn;
+ const info = strip(await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }));
delete info.width;
delete info.height;
delete info.orientation;
@@ -347,11 +300,7 @@ describe('FileInfoService', () => {
test('WEBM AUDIO', async () => {
const path = `${resources}/kick_gaba7.webm`;
- const info = await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }) as any;
- delete info.warnings;
- delete info.blurhash;
- delete info.sensitive;
- delete info.porn;
+ const info = strip(await fileInfoService.getFileInfo(path, { skipSensitiveDetection: true }));
delete info.width;
delete info.height;
delete info.orientation;
diff --git a/packages/backend/test/unit/RoleService.ts b/packages/backend/test/unit/RoleService.ts
index 69fa4162fbac..b6cbe4c520d1 100644
--- a/packages/backend/test/unit/RoleService.ts
+++ b/packages/backend/test/unit/RoleService.ts
@@ -5,6 +5,7 @@
process.env.NODE_ENV = 'test';
+import { setTimeout } from 'node:timers/promises';
import { jest } from '@jest/globals';
import { ModuleMocker } from 'jest-mock';
import { Test } from '@nestjs/testing';
@@ -29,7 +30,6 @@ import { secureRndstr } from '@/misc/secure-rndstr.js';
import { NotificationService } from '@/core/NotificationService.js';
import { RoleCondFormulaValue } from '@/models/Role.js';
import { UserEntityService } from '@/core/entities/UserEntityService.js';
-import { sleep } from '../utils.js';
import type { TestingModule } from '@nestjs/testing';
import type { MockFunctionMetadata } from 'jest-mock';
@@ -278,7 +278,7 @@ describe('RoleService', () => {
// ストリーミング経由で反映されるまでちょっと待つ
clock.uninstall();
- await sleep(100);
+ await setTimeout(100);
const resultAfter25hAgain = await roleService.getUserPolicies(user.id);
expect(resultAfter25hAgain.canManageCustomEmojis).toBe(true);
@@ -807,7 +807,7 @@ describe('RoleService', () => {
await roleService.assign(user.id, role.id);
clock.uninstall();
- await sleep(100);
+ await setTimeout(100);
const assignments = await roleAssignmentsRepository.find({
where: {
@@ -835,7 +835,7 @@ describe('RoleService', () => {
await roleService.assign(user.id, role.id);
clock.uninstall();
- await sleep(100);
+ await setTimeout(100);
const assignments = await roleAssignmentsRepository.find({
where: {
diff --git a/packages/backend/test/unit/SystemWebhookService.ts b/packages/backend/test/unit/SystemWebhookService.ts
index 41b7f977ca8a..790cd1490eb5 100644
--- a/packages/backend/test/unit/SystemWebhookService.ts
+++ b/packages/backend/test/unit/SystemWebhookService.ts
@@ -3,6 +3,7 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
+import { setTimeout } from 'node:timers/promises';
import { afterEach, beforeEach, describe, expect, jest } from '@jest/globals';
import { Test, TestingModule } from '@nestjs/testing';
import { MiUser } from '@/models/User.js';
@@ -16,7 +17,7 @@ import { DI } from '@/di-symbols.js';
import { QueueService } from '@/core/QueueService.js';
import { LoggerService } from '@/core/LoggerService.js';
import { SystemWebhookService } from '@/core/SystemWebhookService.js';
-import { randomString, sleep } from '../utils.js';
+import { randomString } from '../utils.js';
describe('SystemWebhookService', () => {
let app: TestingModule;
@@ -358,7 +359,7 @@ describe('SystemWebhookService', () => {
);
// redisでの配信経由で更新されるのでちょっと待つ
- await sleep(500);
+ await setTimeout(500);
const fetchedWebhooks = await service.fetchActiveSystemWebhooks();
expect(fetchedWebhooks).toEqual([webhook]);
@@ -377,7 +378,7 @@ describe('SystemWebhookService', () => {
);
// redisでの配信経由で更新されるのでちょっと待つ
- await sleep(500);
+ await setTimeout(500);
const fetchedWebhooks = await service.fetchActiveSystemWebhooks();
expect(fetchedWebhooks).toEqual([]);
@@ -407,7 +408,7 @@ describe('SystemWebhookService', () => {
);
// redisでの配信経由で更新されるのでちょっと待つ
- await sleep(500);
+ await setTimeout(500);
const fetchedWebhooks = await service.fetchActiveSystemWebhooks();
expect(fetchedWebhooks).toEqual([webhook2]);
@@ -434,7 +435,7 @@ describe('SystemWebhookService', () => {
);
// redisでの配信経由で更新されるのでちょっと待つ
- await sleep(500);
+ await setTimeout(500);
const fetchedWebhooks = await service.fetchActiveSystemWebhooks();
expect(fetchedWebhooks.length).toEqual(0);
@@ -457,7 +458,7 @@ describe('SystemWebhookService', () => {
);
// redisでの配信経由で更新されるのでちょっと待つ
- await sleep(500);
+ await setTimeout(500);
const fetchedWebhooks = await service.fetchActiveSystemWebhooks();
expect(fetchedWebhooks).toEqual([webhook2]);
@@ -481,7 +482,7 @@ describe('SystemWebhookService', () => {
);
// redisでの配信経由で更新されるのでちょっと待つ
- await sleep(500);
+ await setTimeout(500);
const fetchedWebhooks = await service.fetchActiveSystemWebhooks();
expect(fetchedWebhooks.length).toEqual(0);
@@ -504,7 +505,7 @@ describe('SystemWebhookService', () => {
);
// redisでの配信経由で更新されるのでちょっと待つ
- await sleep(500);
+ await setTimeout(500);
const fetchedWebhooks = await service.fetchActiveSystemWebhooks();
expect(fetchedWebhooks.length).toEqual(0);
diff --git a/packages/backend/test/unit/UserSearchService.ts b/packages/backend/test/unit/UserSearchService.ts
new file mode 100644
index 000000000000..7ea325d4209b
--- /dev/null
+++ b/packages/backend/test/unit/UserSearchService.ts
@@ -0,0 +1,265 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { Test, TestingModule } from '@nestjs/testing';
+import { describe, jest, test } from '@jest/globals';
+import { In } from 'typeorm';
+import { UserSearchService } from '@/core/UserSearchService.js';
+import { FollowingsRepository, MiUser, UserProfilesRepository, UsersRepository } from '@/models/_.js';
+import { IdService } from '@/core/IdService.js';
+import { GlobalModule } from '@/GlobalModule.js';
+import { DI } from '@/di-symbols.js';
+import { UserEntityService } from '@/core/entities/UserEntityService.js';
+
+describe('UserSearchService', () => {
+ let app: TestingModule;
+ let service: UserSearchService;
+
+ let usersRepository: UsersRepository;
+ let followingsRepository: FollowingsRepository;
+ let idService: IdService;
+ let userProfilesRepository: UserProfilesRepository;
+
+ let root: MiUser;
+ let alice: MiUser;
+ let alyce: MiUser;
+ let alycia: MiUser;
+ let alysha: MiUser;
+ let alyson: MiUser;
+ let alyssa: MiUser;
+ let bob: MiUser;
+ let bobbi: MiUser;
+ let bobbie: MiUser;
+ let bobby: MiUser;
+
+ async function createUser(data: Partial = {}) {
+ const user = await usersRepository
+ .insert({
+ id: idService.gen(),
+ ...data,
+ })
+ .then(x => usersRepository.findOneByOrFail(x.identifiers[0]));
+
+ await userProfilesRepository.insert({
+ userId: user.id,
+ });
+
+ return user;
+ }
+
+ async function createFollowings(follower: MiUser, followees: MiUser[]) {
+ for (const followee of followees) {
+ await followingsRepository.insert({
+ id: idService.gen(),
+ followerId: follower.id,
+ followeeId: followee.id,
+ });
+ }
+ }
+
+ async function setActive(users: MiUser[]) {
+ for (const user of users) {
+ await usersRepository.update(user.id, {
+ updatedAt: new Date(),
+ });
+ }
+ }
+
+ async function setInactive(users: MiUser[]) {
+ for (const user of users) {
+ await usersRepository.update(user.id, {
+ updatedAt: new Date(0),
+ });
+ }
+ }
+
+ async function setSuspended(users: MiUser[]) {
+ for (const user of users) {
+ await usersRepository.update(user.id, {
+ isSuspended: true,
+ });
+ }
+ }
+
+ beforeAll(async () => {
+ app = await Test
+ .createTestingModule({
+ imports: [
+ GlobalModule,
+ ],
+ providers: [
+ UserSearchService,
+ {
+ provide: UserEntityService, useFactory: jest.fn(() => ({
+ // とりあえずIDが返れば確認が出来るので
+ packMany: (value: any) => value,
+ })),
+ },
+ IdService,
+ ],
+ })
+ .compile();
+
+ await app.init();
+
+ usersRepository = app.get(DI.usersRepository);
+ userProfilesRepository = app.get(DI.userProfilesRepository);
+ followingsRepository = app.get(DI.followingsRepository);
+
+ service = app.get(UserSearchService);
+ idService = app.get(IdService);
+ });
+
+ beforeEach(async () => {
+ root = await createUser({ username: 'root', usernameLower: 'root', isRoot: true });
+ alice = await createUser({ username: 'Alice', usernameLower: 'alice' });
+ alyce = await createUser({ username: 'Alyce', usernameLower: 'alyce' });
+ alycia = await createUser({ username: 'Alycia', usernameLower: 'alycia' });
+ alysha = await createUser({ username: 'Alysha', usernameLower: 'alysha' });
+ alyson = await createUser({ username: 'Alyson', usernameLower: 'alyson', host: 'example.com' });
+ alyssa = await createUser({ username: 'Alyssa', usernameLower: 'alyssa', host: 'example.com' });
+ bob = await createUser({ username: 'Bob', usernameLower: 'bob' });
+ bobbi = await createUser({ username: 'Bobbi', usernameLower: 'bobbi' });
+ bobbie = await createUser({ username: 'Bobbie', usernameLower: 'bobbie', host: 'example.com' });
+ bobby = await createUser({ username: 'Bobby', usernameLower: 'bobby', host: 'example.com' });
+ });
+
+ afterEach(async () => {
+ await usersRepository.delete({});
+ });
+
+ afterAll(async () => {
+ await app.close();
+ });
+
+ describe('search', () => {
+ test('フォロー中のアクティブユーザのうち、"al"から始まる人が全員ヒットする', async () => {
+ await createFollowings(root, [alice, alyce, alycia, alysha, alyson, alyssa, bob, bobbi, bobbie, bobby]);
+ await setActive([alice, alyce, alyssa, bob, bobbi, bobbie, bobby]);
+ await setInactive([alycia, alysha, alyson]);
+
+ const result = await service.search(
+ { username: 'al' },
+ { limit: 100 },
+ root,
+ );
+
+ // alycia, alysha, alysonは非アクティブなので後ろに行く
+ expect(result).toEqual([alice, alyce, alyssa, alycia, alysha, alyson].map(x => x.id));
+ });
+
+ test('フォロー中の非アクティブユーザのうち、"al"から始まる人が全員ヒットする', async () => {
+ await createFollowings(root, [alycia, alysha, alyson, alyssa, bob, bobbi, bobbie, bobby]);
+ await setInactive([alice, alyce, alycia, alysha, alyson, alyssa, bob, bobbi, bobbie, bobby]);
+
+ const result = await service.search(
+ { username: 'al' },
+ { limit: 100 },
+ root,
+ );
+
+ // alice, alyceはフォローしていないので後ろに行く
+ expect(result).toEqual([alycia, alysha, alyson, alyssa, alice, alyce].map(x => x.id));
+ });
+
+ test('フォローしていないアクティブユーザのうち、"al"から始まる人が全員ヒットする', async () => {
+ await setActive([alysha, alyson, alyssa, bob, bobbi, bobbie, bobby]);
+ await setInactive([alice, alyce, alycia]);
+
+ const result = await service.search(
+ { username: 'al' },
+ { limit: 100 },
+ root,
+ );
+
+ // alice, alyce, alyciaは非アクティブなので後ろに行く
+ expect(result).toEqual([alysha, alyson, alyssa, alice, alyce, alycia].map(x => x.id));
+ });
+
+ test('フォローしていない非アクティブユーザのうち、"al"から始まる人が全員ヒットする', async () => {
+ await setInactive([alice, alyce, alycia, alysha, alyson, alyssa, bob, bobbi, bobbie, bobby]);
+
+ const result = await service.search(
+ { username: 'al' },
+ { limit: 100 },
+ root,
+ );
+
+ expect(result).toEqual([alice, alyce, alycia, alysha, alyson, alyssa].map(x => x.id));
+ });
+
+ test('フォロー(アクティブ)、フォロー(非アクティブ)、非フォロー(アクティブ)、非フォロー(非アクティブ)混在時の優先順位度確認', async () => {
+ await createFollowings(root, [alyson, alyssa, bob, bobbi, bobbie]);
+ await setActive([root, alyssa, bob, bobbi, alyce, alycia]);
+ await setInactive([alyson, alice, alysha, bobbie, bobby]);
+
+ const result = await service.search(
+ { },
+ { limit: 100 },
+ root,
+ );
+
+ // 見る用
+ // const users = await usersRepository.findBy({ id: In(result) }).then(it => new Map(it.map(x => [x.id, x])));
+ // console.log(result.map(x => users.get(x as any)).map(it => it?.username));
+
+ // フォローしててアクティブなので先頭: alyssa, bob, bobbi
+ // フォローしてて非アクティブなので次: alyson, bobbie
+ // フォローしてないけどアクティブなので次: alyce, alycia, root(アルファベット順的にここになる)
+ // フォローしてないし非アクティブなので最後: alice, alysha, bobby
+ expect(result).toEqual([alyssa, bob, bobbi, alyson, bobbie, alyce, alycia, root, alice, alysha, bobby].map(x => x.id));
+ });
+
+ test('[非ログイン] アクティブユーザのうち、"al"から始まる人が全員ヒットする', async () => {
+ await setActive([alysha, alyson, alyssa, bob, bobbi, bobbie, bobby]);
+ await setInactive([alice, alyce, alycia]);
+
+ const result = await service.search(
+ { username: 'al' },
+ { limit: 100 },
+ );
+
+ // alice, alyce, alyciaは非アクティブなので後ろに行く
+ expect(result).toEqual([alysha, alyson, alyssa, alice, alyce, alycia].map(x => x.id));
+ });
+
+ test('[非ログイン] 非アクティブユーザのうち、"al"から始まる人が全員ヒットする', async () => {
+ await setInactive([alice, alyce, alycia, alysha, alyson, alyssa, bob, bobbi, bobbie, bobby]);
+
+ const result = await service.search(
+ { username: 'al' },
+ { limit: 100 },
+ );
+
+ expect(result).toEqual([alice, alyce, alycia, alysha, alyson, alyssa].map(x => x.id));
+ });
+
+ test('フォロー中のアクティブユーザのうち、"al"から始まり"example.com"にいる人が全員ヒットする', async () => {
+ await createFollowings(root, [alice, alyce, alycia, alysha, alyson, alyssa, bob, bobbi, bobbie, bobby]);
+ await setActive([alice, alyce, alycia, alysha, alyson, alyssa, bob, bobbi, bobbie, bobby]);
+
+ const result = await service.search(
+ { username: 'al', host: 'exam' },
+ { limit: 100 },
+ root,
+ );
+
+ expect(result).toEqual([alyson, alyssa].map(x => x.id));
+ });
+
+ test('サスペンド済みユーザは出ない', async () => {
+ await setActive([alice, alyce, alycia, alysha, alyson, alyssa, bob, bobbi, bobbie, bobby]);
+ await setSuspended([alice, alyce, alycia]);
+
+ const result = await service.search(
+ { username: 'al' },
+ { limit: 100 },
+ root,
+ );
+
+ expect(result).toEqual([alysha, alyson, alyssa].map(x => x.id));
+ });
+ });
+});
diff --git a/packages/backend/test/utils.ts b/packages/backend/test/utils.ts
index 86814fffe0e4..e70befeebe34 100644
--- a/packages/backend/test/utils.ts
+++ b/packages/backend/test/utils.ts
@@ -17,6 +17,8 @@ import { validateContentTypeSetAsActivityPub } from '@/core/activitypub/misc/val
import { entities } from '../src/postgres.js';
import { loadConfig } from '../src/config.js';
import type * as misskey from 'misskey-js';
+import { type Response } from 'node-fetch';
+import { ApiError } from "@/server/api/error.js";
export { server as startServer, jobQueue as startJobQueue } from '@/boot/common.js';
@@ -47,27 +49,28 @@ export const successfulApiCall = async ;
};
-export const failedApiCall = async (request: ApiRequest, assertion: {
+export const failedApiCall = async (request: ApiRequest, assertion: {
status: number,
code: string,
id: string
-}): Promise => {
+}): Promise => {
const { endpoint, parameters, user } = request;
const { status, code, id } = assertion;
const res = await api(endpoint, parameters, user);
assert.strictEqual(res.status, status, inspect(res.body));
- assert.strictEqual(res.body.error.code, code, inspect(res.body));
- assert.strictEqual(res.body.error.id, id, inspect(res.body));
- return res.body;
+ assert.ok(res.body);
+ assert.strictEqual(castAsError(res.body as any).error.code, code, inspect(res.body));
+ assert.strictEqual(castAsError(res.body as any).error.id, id, inspect(res.body));
};
-export const api = async (path: E, params: misskey.Endpoints[E]['req'], me?: UserToken): Promise<{
+export const api = async (path: E, params: P, me?: UserToken): Promise<{
status: number,
headers: Headers,
- body: any
+ body: misskey.api.SwitchCaseResponseType
}> => {
const bodyAuth: Record = {};
const headers: Record = {
@@ -88,13 +91,14 @@ export const api = async (path: E, params: mi
});
const body = res.headers.get('content-type') === 'application/json; charset=utf-8'
- ? await res.json()
+ ? await res.json() as misskey.api.SwitchCaseResponseType
: null;
return {
status: res.status,
headers: res.headers,
- body,
+ // FIXME: removing this non-null assertion: requires better typing around empty response.
+ body: body!,
};
};
@@ -140,7 +144,8 @@ export const post = async (user: UserToken, params: misskey.Endpoints['notes/cre
const res = await api('notes/create', q, user);
- return res.body ? res.body.createdNote : null;
+ // FIXME: the return type should reflect this fact.
+ return (res.body ? res.body.createdNote : null)!;
};
export const createAppToken = async (user: UserToken, permissions: (typeof misskey.permissions)[number][]) => {
@@ -296,7 +301,7 @@ export const uploadFile = async (user?: UserToken, { path, name, blob }: UploadO
body: misskey.entities.DriveFile | null
}> => {
const absPath = path == null
- ? new URL('resources/Lenna.jpg', import.meta.url)
+ ? new URL('resources/192.jpg', import.meta.url)
: isAbsolute(path.toString())
? new URL(path)
: new URL(path, new URL('resources/', import.meta.url));
@@ -454,7 +459,7 @@ export type SimpleGetResponse = {
type: string | null,
location: string | null
};
-export const simpleGet = async (path: string, accept = '*/*', cookie: any = undefined): Promise => {
+export const simpleGet = async (path: string, accept = '*/*', cookie: any = undefined, bodyExtractor: (res: Response) => Promise = _ => Promise.resolve(null)): Promise => {
const res = await relativeFetch(path, {
headers: {
Accept: accept,
@@ -482,7 +487,7 @@ export const simpleGet = async (path: string, accept = '*/*', cookie: any = unde
const body =
jsonTypes.includes(res.headers.get('content-type') ?? '') ? await res.json() :
htmlTypes.includes(res.headers.get('content-type') ?? '') ? new JSDOM(await res.text()) :
- null;
+ await bodyExtractor(res);
return {
status: res.status,
@@ -604,14 +609,6 @@ export async function initTestDb(justBorrow = false, initEntities?: any[]) {
return db;
}
-export function sleep(msec: number) {
- return new Promise(res => {
- setTimeout(() => {
- res();
- }, msec);
- });
-}
-
export async function sendEnvUpdateRequest(params: { key: string, value?: string }) {
const res = await fetch(
`http://localhost:${port + 1000}/env`,
@@ -642,3 +639,9 @@ export async function sendEnvResetRequest() {
throw new Error('server env update failed.');
}
}
+
+// 与えられた値を強制的にエラーとみなす。この関数は型安全性を破壊するため、異常系のアサーション以外で用いられるべきではない。
+// FIXME(misskey-js): misskey-jsがエラー情報を公開するようになったらこの関数を廃止する
+export function castAsError(obj: Record): { error: ApiError } {
+ return obj as { error: ApiError };
+}
diff --git a/packages/frontend/.eslintrc.cjs b/packages/frontend/.eslintrc.cjs
deleted file mode 100644
index 20f88dc0786c..000000000000
--- a/packages/frontend/.eslintrc.cjs
+++ /dev/null
@@ -1,82 +0,0 @@
-module.exports = {
- root: true,
- env: {
- 'node': false,
- },
- parser: 'vue-eslint-parser',
- parserOptions: {
- 'parser': '@typescript-eslint/parser',
- tsconfigRootDir: __dirname,
- project: ['./tsconfig.json'],
- extraFileExtensions: ['.vue'],
- },
- extends: [
- '../shared/.eslintrc.js',
- 'plugin:vue/vue3-recommended',
- ],
- rules: {
- '@typescript-eslint/no-empty-interface': [
- 'error',
- {
- 'allowSingleExtends': true,
- },
- ],
- // window の禁止理由: グローバルスコープと衝突し、予期せぬ結果を招くため
- // e の禁止理由: error や event など、複数のキーワードの頭文字であり分かりにくいため
- 'id-denylist': ['error', 'window', 'e'],
- 'no-shadow': ['warn'],
- 'vue/attributes-order': ['error', {
- 'alphabetical': false,
- }],
- 'vue/no-use-v-if-with-v-for': ['error', {
- 'allowUsingIterationVar': false,
- }],
- 'vue/no-ref-as-operand': 'error',
- 'vue/no-multi-spaces': ['error', {
- 'ignoreProperties': false,
- }],
- 'vue/no-v-html': 'warn',
- 'vue/order-in-components': 'error',
- 'vue/html-indent': ['warn', 'tab', {
- 'attribute': 1,
- 'baseIndent': 0,
- 'closeBracket': 0,
- 'alignAttributesVertically': true,
- 'ignores': [],
- }],
- 'vue/html-closing-bracket-spacing': ['warn', {
- 'startTag': 'never',
- 'endTag': 'never',
- 'selfClosingTag': 'never',
- }],
- 'vue/multi-word-component-names': 'warn',
- 'vue/require-v-for-key': 'warn',
- 'vue/no-unused-components': 'warn',
- 'vue/no-unused-vars': 'warn',
- 'vue/no-dupe-keys': 'warn',
- 'vue/valid-v-for': 'warn',
- 'vue/return-in-computed-property': 'warn',
- 'vue/no-setup-props-destructure': 'warn',
- 'vue/max-attributes-per-line': 'off',
- 'vue/html-self-closing': 'off',
- 'vue/singleline-html-element-content-newline': 'off',
- 'vue/v-on-event-hyphenation': ['error', 'never', { autofix: true }],
- 'vue/attribute-hyphenation': ['error', 'never'],
- },
- globals: {
- // Node.js
- 'module': false,
- 'require': false,
- '__dirname': false,
-
- // Misskey
- '_DEV_': false,
- '_LANGS_': false,
- '_VERSION_': false,
- '_ENV_': false,
- '_PERF_PREFIX_': false,
- '_DATA_TRANSFER_DRIVE_FILE_': false,
- '_DATA_TRANSFER_DRIVE_FOLDER_': false,
- '_DATA_TRANSFER_DECK_COLUMN_': false,
- },
-};
diff --git a/packages/frontend/.storybook/changes.ts b/packages/frontend/.storybook/changes.ts
index 7c70972e1e3d..bc7601441c32 100644
--- a/packages/frontend/.storybook/changes.ts
+++ b/packages/frontend/.storybook/changes.ts
@@ -47,7 +47,6 @@ await fs.readFile(
)
)
.map((path) => path.replace(/(?:(?<=\.stories)\.(?:impl|meta)|\.msw)(?=\.ts$)/g, ''))
- .map((path) => (path.startsWith('.') ? path : `./${path}`))
);
if (
micromatch(Array.from(modules), [
diff --git a/packages/frontend/.storybook/charts.ts b/packages/frontend/.storybook/charts.ts
new file mode 100644
index 000000000000..5015012a8246
--- /dev/null
+++ b/packages/frontend/.storybook/charts.ts
@@ -0,0 +1,48 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { DefaultBodyType, HttpResponse, HttpResponseResolver, JsonBodyType, PathParams, http } from 'msw';
+import seedrandom from 'seedrandom';
+import { action } from '@storybook/addon-actions';
+
+function getChartArray(seed: string, limit: number, option?: { accumulate?: boolean, mul?: number }): number[] {
+ const rng = seedrandom(seed);
+ const max = Math.floor(option?.mul ?? 250 * rng());
+ let accumulation = 0;
+ const array: number[] = [];
+ for (let i = 0; i < limit; i++) {
+ const num = Math.floor((max + 1) * rng());
+ if (option?.accumulate) {
+ accumulation += num;
+ array.unshift(accumulation);
+ } else {
+ array.push(num);
+ }
+ }
+ return array;
+}
+
+export function getChartResolver(fields: string[], option?: { accumulate?: boolean, mulMap?: Record }): HttpResponseResolver {
+ return ({ request }) => {
+ action(`GET ${request.url}`)();
+ const limitParam = new URL(request.url).searchParams.get('limit');
+ const limit = limitParam ? parseInt(limitParam) : 30;
+ const res = {};
+ for (const field of fields) {
+ const layers = field.split('.');
+ let current = res;
+ while (layers.length > 1) {
+ const currentKey = layers.shift()!;
+ if (current[currentKey] == null) current[currentKey] = {};
+ current = current[currentKey];
+ }
+ current[layers[0]] = getChartArray(field, limit, {
+ accumulate: option?.accumulate,
+ mul: option?.mulMap != null && field in option.mulMap ? option.mulMap[field] : undefined,
+ });
+ }
+ return HttpResponse.json(res);
+ };
+}
diff --git a/packages/frontend/.storybook/fakes.ts b/packages/frontend/.storybook/fakes.ts
index fdb155261bdc..9d789a34ff90 100644
--- a/packages/frontend/.storybook/fakes.ts
+++ b/packages/frontend/.storybook/fakes.ts
@@ -125,6 +125,35 @@ export function file(isSensitive = false) {
};
}
+export function federationInstance(): entities.FederationInstance {
+ return {
+ id: 'someinstanceid',
+ firstRetrievedAt: '2021-01-01T00:00:00.000Z',
+ host: 'misskey-hub.net',
+ usersCount: 10,
+ notesCount: 20,
+ followingCount: 5,
+ followersCount: 15,
+ isNotResponding: false,
+ isSuspended: false,
+ suspensionState: 'none',
+ isBlocked: false,
+ softwareName: 'misskey',
+ softwareVersion: '2024.5.0',
+ openRegistrations: false,
+ name: 'Misskey Hub',
+ description: '',
+ maintainerName: '',
+ maintainerEmail: '',
+ isSilenced: false,
+ iconUrl: 'https://github.com/misskey-dev/misskey/blob/master/packages/frontend/assets/about-icon.png?raw=true',
+ faviconUrl: '',
+ themeColor: '',
+ infoUpdatedAt: '',
+ latestRequestReceivedAt: '',
+ };
+}
+
export function userDetailed(id = 'someuserid', username = 'miskist', host = 'misskey-hub.net', name = 'Misskey User'): entities.UserDetailed {
return {
id,
diff --git a/packages/frontend/.storybook/generate.tsx b/packages/frontend/.storybook/generate.tsx
index d21eea9d1713..7b6c86447edc 100644
--- a/packages/frontend/.storybook/generate.tsx
+++ b/packages/frontend/.storybook/generate.tsx
@@ -403,6 +403,7 @@ function toStories(component: string): Promise {
glob('src/components/MkSignupServerRules.vue'),
glob('src/components/MkUserSetupDialog.vue'),
glob('src/components/MkUserSetupDialog.*.vue'),
+ glob('src/components/MkInstanceCardMini.vue'),
glob('src/components/MkInviteCode.vue'),
glob('src/pages/user/home.vue'),
]);
diff --git a/packages/frontend/.storybook/preview.ts b/packages/frontend/.storybook/preview.ts
index 73ee007fb8b7..d000a282328f 100644
--- a/packages/frontend/.storybook/preview.ts
+++ b/packages/frontend/.storybook/preview.ts
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
-import { FORCE_REMOUNT } from '@storybook/core-events';
+import { FORCE_RE_RENDER, FORCE_REMOUNT } from '@storybook/core-events';
import { addons } from '@storybook/preview-api';
import { type Preview, setup } from '@storybook/vue3';
import isChromatic from 'chromatic/isChromatic';
@@ -16,7 +16,7 @@ import '../src/style.scss';
const appInitialized = Symbol();
-let lastStory = null;
+let lastStory: string | null = null;
let moduleInitialized = false;
let unobserve = () => {};
let misskeyOS = null;
@@ -110,7 +110,7 @@ const preview = {
}).catch(() => {});
Promise.all([resetIndexedDBPromise, resetDefaultStorePromise]).then(() => {
initLocalStorage();
- channel.emit(FORCE_REMOUNT, { storyId: context.id });
+ channel.emit(FORCE_RE_RENDER, { storyId: context.id });
});
}
const story = Story();
diff --git a/packages/frontend/eslint.config.js b/packages/frontend/eslint.config.js
new file mode 100644
index 000000000000..dd8f03dac510
--- /dev/null
+++ b/packages/frontend/eslint.config.js
@@ -0,0 +1,95 @@
+import globals from 'globals';
+import tsParser from '@typescript-eslint/parser';
+import parser from 'vue-eslint-parser';
+import pluginVue from 'eslint-plugin-vue';
+import pluginMisskey from '@misskey-dev/eslint-plugin';
+import sharedConfig from '../shared/eslint.config.js';
+
+export default [
+ ...sharedConfig,
+ {
+ files: ['src/**/*.vue'],
+ ...pluginMisskey.configs.typescript,
+ },
+ ...pluginVue.configs['flat/recommended'],
+ {
+ files: ['src/**/*.{ts,vue}'],
+ languageOptions: {
+ globals: {
+ ...Object.fromEntries(Object.entries(globals.node).map(([key]) => [key, 'off'])),
+ ...globals.browser,
+
+ // Node.js
+ module: false,
+ require: false,
+ __dirname: false,
+
+ // Misskey
+ _DEV_: false,
+ _LANGS_: false,
+ _VERSION_: false,
+ _ENV_: false,
+ _PERF_PREFIX_: false,
+ _DATA_TRANSFER_DRIVE_FILE_: false,
+ _DATA_TRANSFER_DRIVE_FOLDER_: false,
+ _DATA_TRANSFER_DECK_COLUMN_: false,
+ },
+ parser,
+ parserOptions: {
+ extraFileExtensions: ['.vue'],
+ parser: tsParser,
+ project: ['./tsconfig.json'],
+ sourceType: 'module',
+ tsconfigRootDir: import.meta.dirname,
+ },
+ },
+ rules: {
+ '@typescript-eslint/no-empty-interface': ['error', {
+ allowSingleExtends: true,
+ }],
+ // window の禁止理由: グローバルスコープと衝突し、予期せぬ結果を招くため
+ // e の禁止理由: error や event など、複数のキーワードの頭文字であり分かりにくいため
+ 'id-denylist': ['error', 'window', 'e'],
+ 'no-shadow': ['warn'],
+ 'vue/attributes-order': ['error', {
+ alphabetical: false,
+ }],
+ 'vue/no-use-v-if-with-v-for': ['error', {
+ allowUsingIterationVar: false,
+ }],
+ 'vue/no-ref-as-operand': 'error',
+ 'vue/no-multi-spaces': ['error', {
+ ignoreProperties: false,
+ }],
+ 'vue/no-v-html': 'warn',
+ 'vue/order-in-components': 'error',
+ 'vue/html-indent': ['warn', 'tab', {
+ attribute: 1,
+ baseIndent: 0,
+ closeBracket: 0,
+ alignAttributesVertically: true,
+ ignores: [],
+ }],
+ 'vue/html-closing-bracket-spacing': ['warn', {
+ startTag: 'never',
+ endTag: 'never',
+ selfClosingTag: 'never',
+ }],
+ 'vue/multi-word-component-names': 'warn',
+ 'vue/require-v-for-key': 'warn',
+ 'vue/no-unused-components': 'warn',
+ 'vue/no-unused-vars': 'warn',
+ 'vue/no-dupe-keys': 'warn',
+ 'vue/valid-v-for': 'warn',
+ 'vue/return-in-computed-property': 'warn',
+ 'vue/no-setup-props-reactivity-loss': 'warn',
+ 'vue/max-attributes-per-line': 'off',
+ 'vue/html-self-closing': 'off',
+ 'vue/singleline-html-element-content-newline': 'off',
+ 'vue/v-on-event-hyphenation': ['error', 'never', {
+ autofix: true,
+ }],
+ 'vue/attribute-hyphenation': ['error', 'never'],
+ },
+ },
+];
diff --git a/packages/frontend/package.json b/packages/frontend/package.json
index 66940a160103..a0c1c6988306 100644
--- a/packages/frontend/package.json
+++ b/packages/frontend/package.json
@@ -22,24 +22,24 @@
"@mcaptcha/vanilla-glue": "0.1.0-alpha-3",
"@misskey-dev/browser-image-resizer": "2024.1.0",
"@rollup/plugin-json": "6.1.0",
- "@rollup/plugin-replace": "5.0.5",
+ "@rollup/plugin-replace": "5.0.7",
"@rollup/pluginutils": "5.1.0",
"@syuilo/aiscript": "0.18.0",
"@tabler/icons-webfont": "3.3.0",
"@twemoji/parser": "15.1.1",
- "@vitejs/plugin-vue": "5.0.4",
- "@vue/compiler-sfc": "3.4.26",
- "aiscript-vscode": "github:aiscript-dev/aiscript-vscode#v0.1.9",
+ "@vitejs/plugin-vue": "5.0.5",
+ "@vue/compiler-sfc": "3.4.31",
+ "aiscript-vscode": "github:aiscript-dev/aiscript-vscode#v0.1.11",
"astring": "1.8.6",
"broadcast-channel": "7.0.0",
"buraha": "0.0.1",
"canvas-confetti": "1.9.3",
- "chart.js": "4.4.2",
+ "chart.js": "4.4.3",
"chartjs-adapter-date-fns": "3.0.0",
"chartjs-chart-matrix": "2.0.1",
"chartjs-plugin-gradient": "0.6.1",
"chartjs-plugin-zoom": "2.0.1",
- "chromatic": "11.3.0",
+ "chromatic": "11.5.4",
"compare-versions": "6.1.0",
"cropperjs": "2.0.0-beta.5",
"date-fns": "2.30.0",
@@ -55,89 +55,87 @@
"misskey-bubble-game": "workspace:*",
"misskey-js": "workspace:*",
"misskey-reversi": "workspace:*",
- "photoswipe": "5.4.3",
+ "photoswipe": "5.4.4",
"punycode": "2.3.1",
- "rollup": "4.17.2",
+ "rollup": "4.18.0",
"sanitize-html": "2.13.0",
- "sass": "1.76.0",
- "shiki": "1.4.0",
+ "sass": "1.77.6",
+ "shiki": "1.10.0",
"strict-event-emitter-types": "2.0.0",
"textarea-caret": "3.1.0",
- "three": "0.164.1",
- "throttle-debounce": "5.0.0",
+ "three": "0.165.0",
+ "throttle-debounce": "5.0.2",
"tinycolor2": "1.6.0",
- "tsc-alias": "1.8.8",
+ "tsc-alias": "1.8.10",
"tsconfig-paths": "4.2.0",
- "typescript": "5.4.5",
- "uuid": "9.0.1",
- "v-code-diff": "1.11.0",
- "vite": "5.2.11",
- "vue": "3.4.26",
+ "typescript": "5.5.3",
+ "uuid": "10.0.0",
+ "v-code-diff": "1.12.0",
+ "vite": "5.3.2",
+ "vue": "3.4.31",
"vuedraggable": "next"
},
"devDependencies": {
- "@misskey-dev/eslint-plugin": "1.0.0",
"@misskey-dev/summaly": "5.1.0",
- "@storybook/addon-actions": "8.0.9",
- "@storybook/addon-essentials": "8.0.9",
- "@storybook/addon-interactions": "8.0.9",
- "@storybook/addon-links": "8.0.9",
- "@storybook/addon-mdx-gfm": "8.0.9",
- "@storybook/addon-storysource": "8.0.9",
- "@storybook/blocks": "8.0.9",
- "@storybook/components": "8.0.9",
- "@storybook/core-events": "8.0.9",
- "@storybook/manager-api": "8.0.9",
- "@storybook/preview-api": "8.0.9",
- "@storybook/react": "8.0.9",
- "@storybook/react-vite": "8.0.9",
- "@storybook/test": "8.0.9",
- "@storybook/theming": "8.0.9",
- "@storybook/types": "8.0.9",
- "@storybook/vue3": "8.0.9",
- "@storybook/vue3-vite": "8.0.9",
- "@testing-library/vue": "8.0.3",
+ "@storybook/addon-actions": "8.1.11",
+ "@storybook/addon-essentials": "8.1.11",
+ "@storybook/addon-interactions": "8.1.11",
+ "@storybook/addon-links": "8.1.11",
+ "@storybook/addon-mdx-gfm": "8.1.11",
+ "@storybook/addon-storysource": "8.1.11",
+ "@storybook/blocks": "8.1.11",
+ "@storybook/components": "8.1.11",
+ "@storybook/core-events": "8.1.11",
+ "@storybook/manager-api": "8.1.11",
+ "@storybook/preview-api": "8.1.11",
+ "@storybook/react": "8.1.11",
+ "@storybook/react-vite": "8.1.11",
+ "@storybook/test": "8.1.11",
+ "@storybook/theming": "8.1.11",
+ "@storybook/types": "8.1.11",
+ "@storybook/vue3": "8.1.11",
+ "@storybook/vue3-vite": "8.1.11",
+ "@testing-library/vue": "8.1.0",
"@types/escape-regexp": "0.0.3",
"@types/estree": "1.0.5",
"@types/matter-js": "0.19.6",
- "@types/micromatch": "4.0.7",
- "@types/node": "20.12.7",
+ "@types/micromatch": "4.0.9",
+ "@types/node": "20.14.9",
"@types/punycode": "2.1.4",
"@types/sanitize-html": "2.11.0",
"@types/seedrandom": "3.0.8",
"@types/throttle-debounce": "5.0.2",
"@types/tinycolor2": "1.4.6",
- "@types/uuid": "9.0.8",
+ "@types/uuid": "10.0.0",
"@types/ws": "8.5.10",
- "@typescript-eslint/eslint-plugin": "7.7.1",
- "@typescript-eslint/parser": "7.7.1",
- "@vitest/coverage-v8": "0.34.6",
- "@vue/runtime-core": "3.4.26",
- "acorn": "8.11.3",
+ "@typescript-eslint/eslint-plugin": "7.15.0",
+ "@typescript-eslint/parser": "7.15.0",
+ "@vitest/coverage-v8": "1.6.0",
+ "@vue/runtime-core": "3.4.31",
+ "acorn": "8.12.0",
"cross-env": "7.0.3",
- "cypress": "13.8.1",
- "eslint": "8.57.0",
+ "cypress": "13.13.0",
"eslint-plugin-import": "2.29.1",
- "eslint-plugin-vue": "9.25.0",
+ "eslint-plugin-vue": "9.26.0",
"fast-glob": "3.3.2",
"happy-dom": "10.0.3",
"intersection-observer": "0.12.2",
- "micromatch": "4.0.5",
- "msw": "2.2.14",
- "msw-storybook-addon": "2.0.1",
- "nodemon": "3.1.0",
- "prettier": "3.2.5",
+ "micromatch": "4.0.7",
+ "msw": "2.3.1",
+ "msw-storybook-addon": "2.0.2",
+ "nodemon": "3.1.4",
+ "prettier": "3.3.2",
"react": "18.3.1",
"react-dom": "18.3.1",
"seedrandom": "3.0.5",
- "start-server-and-test": "2.0.3",
- "storybook": "8.0.9",
+ "start-server-and-test": "2.0.4",
+ "storybook": "8.1.11",
"storybook-addon-misskey-theme": "github:misskey-dev/storybook-addon-misskey-theme",
"vite-plugin-turbosnap": "1.0.3",
- "vitest": "0.34.6",
+ "vitest": "1.6.0",
"vitest-fetch-mock": "0.2.2",
- "vue-component-type-helpers": "2.0.16",
- "vue-eslint-parser": "9.4.2",
- "vue-tsc": "2.0.16"
+ "vue-component-type-helpers": "2.0.24",
+ "vue-eslint-parser": "9.4.3",
+ "vue-tsc": "2.0.24"
}
}
diff --git a/packages/frontend/src/account.ts b/packages/frontend/src/account.ts
index 7f20e0b1a275..4172016f8984 100644
--- a/packages/frontend/src/account.ts
+++ b/packages/frontend/src/account.ts
@@ -120,7 +120,7 @@ function fetchAccount(token: string, id?: string, forceShowDialog?: boolean): Pr
res.json().then(done2, fail2);
}))
.then(async res => {
- if (res.error) {
+ if ('error' in res) {
if (res.error.id === 'a8c724b3-6e9c-4b46-b1a8-bc3ed6258370') {
// SUSPENDED
if (forceShowDialog || $i && (token === $i.token || id === $i.id)) {
@@ -184,10 +184,12 @@ export async function refreshAccount() {
export async function login(token: Account['token'], redirect?: string) {
const showing = ref(true);
- popup(defineAsyncComponent(() => import('@/components/MkWaitingDialog.vue')), {
+ const { dispose } = popup(defineAsyncComponent(() => import('@/components/MkWaitingDialog.vue')), {
success: false,
showing: showing,
- }, {}, 'closed');
+ }, {
+ closed: () => dispose(),
+ });
if (_DEV_) console.log('logging as token ', token);
const me = await fetchAccount(token, undefined, true)
.catch(reason => {
@@ -223,21 +225,23 @@ export async function openAccountMenu(opts: {
if (!$i) return;
function showSigninDialog() {
- popup(defineAsyncComponent(() => import('@/components/MkSigninDialog.vue')), {}, {
+ const { dispose } = popup(defineAsyncComponent(() => import('@/components/MkSigninDialog.vue')), {}, {
done: res => {
addAccount(res.id, res.i);
success();
},
- }, 'closed');
+ closed: () => dispose(),
+ });
}
function createAccount() {
- popup(defineAsyncComponent(() => import('@/components/MkSignupDialog.vue')), {}, {
+ const { dispose } = popup(defineAsyncComponent(() => import('@/components/MkSignupDialog.vue')), {}, {
done: res => {
addAccount(res.id, res.i);
switchAccountWithToken(res.i);
},
- }, 'closed');
+ closed: () => dispose(),
+ });
}
async function switchAccount(account: Misskey.entities.UserDetailed) {
diff --git a/packages/frontend/src/boot/main-boot.ts b/packages/frontend/src/boot/main-boot.ts
index 5cb19f388aee..d32701631726 100644
--- a/packages/frontend/src/boot/main-boot.ts
+++ b/packages/frontend/src/boot/main-boot.ts
@@ -13,7 +13,6 @@ import * as sound from '@/scripts/sound.js';
import { $i, signout, updateAccount } from '@/account.js';
import { instance } from '@/instance.js';
import { ColdDeviceStorage, defaultStore } from '@/store.js';
-import { makeHotkey } from '@/scripts/hotkey.js';
import { reactionPicker } from '@/scripts/reaction-picker.js';
import { miLocalStorage } from '@/local-storage.js';
import { claimAchievement, claimedAchievements } from '@/scripts/achievements.js';
@@ -21,6 +20,7 @@ import { initializeSw } from '@/scripts/initialize-sw.js';
import { deckStore } from '@/ui/deck/deck-store.js';
import { emojiPicker } from '@/scripts/emoji-picker.js';
import { mainRouter } from '@/router/main.js';
+import { type Keymap, makeHotkey } from '@/scripts/hotkey.js';
export async function mainBoot() {
const { isClientUpdated } = await common(() => createApp(
@@ -35,7 +35,9 @@ export async function mainBoot() {
emojiPicker.init();
if (isClientUpdated && $i) {
- popup(defineAsyncComponent(() => import('@/components/MkUpdated.vue')), {}, {}, 'closed');
+ const { dispose } = popup(defineAsyncComponent(() => import('@/components/MkUpdated.vue')), {}, {
+ closed: () => dispose(),
+ });
}
const stream = useStream();
@@ -67,14 +69,6 @@ export async function mainBoot() {
});
}
- const hotkeys = {
- 'd': (): void => {
- defaultStore.set('darkMode', !defaultStore.state.darkMode);
- },
- 's': (): void => {
- mainRouter.push('/search');
- },
- };
try {
if (defaultStore.state.enableSeasonalScreenEffect) {
const month = new Date().getMonth() + 1;
@@ -96,34 +90,37 @@ export async function mainBoot() {
}).render();
}
}
- }
+ }
} catch (error) {
// console.error(error);
console.error('Failed to initialise the seasonal screen effect canvas context:', error);
}
if ($i) {
- // only add post shortcuts if logged in
- hotkeys['p|n'] = post;
-
defaultStore.loaded.then(() => {
if (defaultStore.state.accountSetupWizard !== -1) {
- popup(defineAsyncComponent(() => import('@/components/MkUserSetupDialog.vue')), {}, {}, 'closed');
+ const { dispose } = popup(defineAsyncComponent(() => import('@/components/MkUserSetupDialog.vue')), {}, {
+ closed: () => dispose(),
+ });
}
});
for (const announcement of ($i.unreadAnnouncements ?? []).filter(x => x.display === 'dialog')) {
- popup(defineAsyncComponent(() => import('@/components/MkAnnouncementDialog.vue')), {
+ const { dispose } = popup(defineAsyncComponent(() => import('@/components/MkAnnouncementDialog.vue')), {
announcement,
- }, {}, 'closed');
+ }, {
+ closed: () => dispose(),
+ });
}
stream.on('announcementCreated', (ev) => {
const announcement = ev.announcement;
if (announcement.display === 'dialog') {
- popup(defineAsyncComponent(() => import('@/components/MkAnnouncementDialog.vue')), {
+ const { dispose } = popup(defineAsyncComponent(() => import('@/components/MkAnnouncementDialog.vue')), {
announcement,
- }, {}, 'closed');
+ }, {
+ closed: () => dispose(),
+ });
}
});
@@ -247,13 +244,17 @@ export async function mainBoot() {
const neverShowDonationInfo = miLocalStorage.getItem('neverShowDonationInfo');
if (neverShowDonationInfo !== 'true' && (createdAt.getTime() < (Date.now() - (1000 * 60 * 60 * 24 * 3))) && !location.pathname.startsWith('/miauth')) {
if (latestDonationInfoShownAt == null || (new Date(latestDonationInfoShownAt).getTime() < (Date.now() - (1000 * 60 * 60 * 24 * 30)))) {
- popup(defineAsyncComponent(() => import('@/components/MkDonation.vue')), {}, {}, 'closed');
+ const { dispose } = popup(defineAsyncComponent(() => import('@/components/MkDonation.vue')), {}, {
+ closed: () => dispose(),
+ });
}
}
const modifiedVersionMustProminentlyOfferInAgplV3Section13Read = miLocalStorage.getItem('modifiedVersionMustProminentlyOfferInAgplV3Section13Read');
if (modifiedVersionMustProminentlyOfferInAgplV3Section13Read !== 'true' && instance.repositoryUrl !== 'https://github.com/misskey-dev/misskey') {
- popup(defineAsyncComponent(() => import('@/components/MkSourceCodeAvailablePopup.vue')), {}, {}, 'closed');
+ const { dispose } = popup(defineAsyncComponent(() => import('@/components/MkSourceCodeAvailablePopup.vue')), {}, {
+ closed: () => dispose(),
+ });
}
if ('Notification' in window) {
@@ -322,7 +323,19 @@ export async function mainBoot() {
}
// shortcut
- document.addEventListener('keydown', makeHotkey(hotkeys));
+ const keymap = {
+ 'p|n': () => {
+ if ($i == null) return;
+ post();
+ },
+ 'd': () => {
+ defaultStore.set('darkMode', !defaultStore.state.darkMode);
+ },
+ 's': () => {
+ mainRouter.push('/search');
+ },
+ } as const satisfies Keymap;
+ document.addEventListener('keydown', makeHotkey(keymap), { passive: false });
initializeSw();
}
diff --git a/packages/frontend/src/components/MkAchievements.vue b/packages/frontend/src/components/MkAchievements.vue
index 5d103fa789af..c8134416b506 100644
--- a/packages/frontend/src/components/MkAchievements.vue
+++ b/packages/frontend/src/components/MkAchievements.vue
@@ -153,7 +153,7 @@ onMounted(() => {
background: linear-gradient(0deg, #ffee20, #eb7018);
}
- &:before {
+ &::before {
content: "";
display: block;
position: absolute;
@@ -173,7 +173,7 @@ onMounted(() => {
background: linear-gradient(0deg, #e1e1e1, #7c7c7c);
}
- &:before {
+ &::before {
content: "";
display: block;
position: absolute;
diff --git a/packages/frontend/src/components/MkButton.vue b/packages/frontend/src/components/MkButton.vue
index 25b003ba5a59..9560efb7d95f 100644
--- a/packages/frontend/src/components/MkButton.vue
+++ b/packages/frontend/src/components/MkButton.vue
@@ -250,7 +250,6 @@ function onMousedown(evt: MouseEvent): void {
}
&:focus-visible {
- outline: solid 2px var(--focus);
outline-offset: 2px;
}
diff --git a/packages/frontend/src/components/MkCaptcha.vue b/packages/frontend/src/components/MkCaptcha.vue
index c64bb47e771b..c5b6e0caede7 100644
--- a/packages/frontend/src/components/MkCaptcha.vue
+++ b/packages/frontend/src/components/MkCaptcha.vue
@@ -104,7 +104,6 @@ async function requestRender() {
});
} else if (props.provider === 'mcaptcha' && props.instanceUrl && props.sitekey) {
const { default: Widget } = await import('@mcaptcha/vanilla-glue');
- // @ts-expect-error avoid typecheck error
new Widget({
siteKey: {
instanceUrl: new URL(props.instanceUrl),
diff --git a/packages/frontend/src/components/MkChannelFollowButton.stories.impl.ts b/packages/frontend/src/components/MkChannelFollowButton.stories.impl.ts
index b99620da22f6..b9770670dcdd 100644
--- a/packages/frontend/src/components/MkChannelFollowButton.stories.impl.ts
+++ b/packages/frontend/src/components/MkChannelFollowButton.stories.impl.ts
@@ -12,14 +12,12 @@ import { expect, userEvent, within } from '@storybook/test';
import { channel } from '../../.storybook/fakes.js';
import { commonHandlers } from '../../.storybook/mocks.js';
import MkChannelFollowButton from './MkChannelFollowButton.vue';
-import { semaphore } from '@/scripts/test-utils.js';
import { i18n } from '@/i18n.js';
function sleep(ms: number) {
return new Promise(resolve => setTimeout(resolve, ms));
}
-const s = semaphore();
export const Default = {
render(args) {
return {
@@ -46,17 +44,13 @@ export const Default = {
full: true,
},
async play({ canvasElement }) {
- await s.acquire();
- await sleep(1000);
const canvas = within(canvasElement);
const buttonElement = canvas.getByRole('button');
await expect(buttonElement).toHaveTextContent(i18n.ts.follow);
await userEvent.click(buttonElement);
await sleep(1000);
await expect(buttonElement).toHaveTextContent(i18n.ts.unfollow);
- await sleep(100);
await userEvent.click(buttonElement);
- s.release();
},
parameters: {
layout: 'centered',
diff --git a/packages/frontend/src/components/MkChannelFollowButton.vue b/packages/frontend/src/components/MkChannelFollowButton.vue
index 841d37a56847..35dc3ad4bf83 100644
--- a/packages/frontend/src/components/MkChannelFollowButton.vue
+++ b/packages/frontend/src/components/MkChannelFollowButton.vue
@@ -87,17 +87,7 @@ async function onClick() {
}
&:focus-visible {
- &:after {
- content: "";
- pointer-events: none;
- position: absolute;
- top: -5px;
- right: -5px;
- bottom: -5px;
- left: -5px;
- border: 2px solid var(--focus);
- border-radius: 32px;
- }
+ outline-offset: 2px;
}
&:hover {
diff --git a/packages/frontend/src/components/MkChannelPreview.vue b/packages/frontend/src/components/MkChannelPreview.vue
index 4ff64dc4baff..c30cb66c078c 100644
--- a/packages/frontend/src/components/MkChannelPreview.vue
+++ b/packages/frontend/src/components/MkChannelPreview.vue
@@ -5,7 +5,7 @@ SPDX-License-Identifier: AGPL-3.0-only
-
+
{{ channel.name }}
@@ -80,6 +80,7 @@ const bannerStyle = computed(() => {
diff --git a/packages/frontend/src/components/MkRadio.vue b/packages/frontend/src/components/MkRadio.vue
index 6676e3bf5b1b..22fc86723e46 100644
--- a/packages/frontend/src/components/MkRadio.vue
+++ b/packages/frontend/src/components/MkRadio.vue
@@ -9,6 +9,7 @@ SPDX-License-Identifier: AGPL-3.0-only
:class="[$style.root, { [$style.disabled]: disabled, [$style.checked]: checked }]"
:aria-checked="checked"
:aria-disabled="disabled"
+ role="checkbox"
@click="toggle"
>
.button {
border-color: var(--accent);
- &:after {
+ &::after {
background-color: var(--accent);
transform: scale(1);
opacity: 1;
@@ -104,7 +110,7 @@ function toggle(): void {
border-radius: 100%;
transition: inherit;
- &:after {
+ &::after {
content: '';
display: block;
position: absolute;
diff --git a/packages/frontend/src/components/MkRange.vue b/packages/frontend/src/components/MkRange.vue
index 15f8128e98bf..1eae6429378e 100644
--- a/packages/frontend/src/components/MkRange.vue
+++ b/packages/frontend/src/components/MkRange.vue
@@ -101,17 +101,19 @@ const steps = computed(() => {
}
});
-const onMousedown = (ev: MouseEvent | TouchEvent) => {
+function onMousedown(ev: MouseEvent | TouchEvent) {
ev.preventDefault();
const tooltipShowing = ref(true);
- os.popup(defineAsyncComponent(() => import('@/components/MkTooltip.vue')), {
+ const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkTooltip.vue')), {
showing: tooltipShowing,
text: computed(() => {
return props.textConverter(finalValue.value);
}),
targetElement: thumbEl,
- }, {}, 'closed');
+ }, {
+ closed: () => dispose(),
+ });
const style = document.createElement('style');
style.appendChild(document.createTextNode('* { cursor: grabbing !important; } body * { pointer-events: none !important; }'));
@@ -152,7 +154,7 @@ const onMousedown = (ev: MouseEvent | TouchEvent) => {
window.addEventListener('touchmove', onDrag);
window.addEventListener('mouseup', onMouseup, { once: true });
window.addEventListener('touchend', onMouseup, { once: true });
-};
+}
diff --git a/packages/frontend/src/components/MkSigninDialog.vue b/packages/frontend/src/components/MkSigninDialog.vue
index 33355bb99eb9..524c62b4d3aa 100644
--- a/packages/frontend/src/components/MkSigninDialog.vue
+++ b/packages/frontend/src/components/MkSigninDialog.vue
@@ -6,21 +6,22 @@ SPDX-License-Identifier: AGPL-3.0-only
{{ i18n.ts.login }}
-
+
diff --git a/packages/frontend/src/pages/about.vue b/packages/frontend/src/pages/about.vue
index 324d1c11defe..8dfeb6d2a73e 100644
--- a/packages/frontend/src/pages/about.vue
+++ b/packages/frontend/src/pages/about.vue
@@ -8,113 +8,7 @@ SPDX-License-Identifier: AGPL-3.0-only
-
-
-
-
-
- {{ instance.name ?? host }}
-
-
-
-
-
- {{ i18n.ts.description }}
-
-
-
-
-
-
- Misskey
- {{ version }}
-
-
-
-
-
- {{ i18n.ts.aboutMisskey }}
-
-
-
- {{ i18n.ts.sourceCode }}
-
-
- {{ i18n.ts.sourceCodeIsNotYetProvided }}
-
-
-
-
-
-
-
-
- {{ i18n.ts.administrator }}
- {{ instance.maintainerName }}
-
-
- {{ i18n.ts.contact }}
- {{ instance.maintainerEmail }}
-
-
-
-
- {{ i18n.ts.impressum }}
-
-
-
-
-
- {{ i18n.ts.serverRules }}
-
-
-
-
-
-
-
-
- {{ i18n.ts.termsOfService }}
-
-
-
- {{ i18n.ts.privacyPolicy }}
-
-
-
- {{ i18n.ts.feedback }}
-
-
-
-
-
-
-
- {{ i18n.ts.statistics }}
-
-
- {{ i18n.ts.users }}
- {{ number(stats.originalUsersCount) }}
-
-
- {{ i18n.ts.notes }}
- {{ number(stats.originalNotesCount) }}
-
-
-
-
-
-
- Well-known resources
-
- host-meta
- host-meta.json
- nodeinfo
- robots.txt
- manifest.json
-
-
-
+
@@ -130,26 +24,16 @@ SPDX-License-Identifier: AGPL-3.0-only
-
-
diff --git a/packages/frontend/src/pages/admin-user.vue b/packages/frontend/src/pages/admin-user.vue
index f57aa51b5b54..1459997dcb01 100644
--- a/packages/frontend/src/pages/admin-user.vue
+++ b/packages/frontend/src/pages/admin-user.vue
@@ -464,16 +464,20 @@ function toggleRoleItem(role) {
}
function createAnnouncement() {
- os.popup(defineAsyncComponent(() => import('@/components/MkUserAnnouncementEditDialog.vue')), {
+ const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkUserAnnouncementEditDialog.vue')), {
user: user.value,
- }, {}, 'closed');
+ }, {
+ closed: () => dispose(),
+ });
}
function editAnnouncement(announcement) {
- os.popup(defineAsyncComponent(() => import('@/components/MkUserAnnouncementEditDialog.vue')), {
+ const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkUserAnnouncementEditDialog.vue')), {
user: user.value,
announcement,
- }, {}, 'closed');
+ }, {
+ closed: () => dispose(),
+ });
}
watch(() => props.userId, () => {
diff --git a/packages/frontend/src/pages/admin/abuse-report/notification-recipient.vue b/packages/frontend/src/pages/admin/abuse-report/notification-recipient.vue
index a52f8eb7af94..93800873f9bd 100644
--- a/packages/frontend/src/pages/admin/abuse-report/notification-recipient.vue
+++ b/packages/frontend/src/pages/admin/abuse-report/notification-recipient.vue
@@ -109,7 +109,7 @@ async function onDeleteButtonClicked(id: string) {
async function showEditor(mode: 'create' | 'edit', id?: string) {
const { dispose, needLoad } = await new Promise<{ dispose: () => void, needLoad: boolean }>(async resolve => {
- const res = await os.popup(
+ const { dispose: _dispose } = os.popup(
defineAsyncComponent(() => import('./notification-recipient.editor.vue')),
{
mode,
@@ -117,10 +117,10 @@ async function showEditor(mode: 'create' | 'edit', id?: string) {
},
{
submitted: async () => {
- resolve({ dispose: res.dispose, needLoad: true });
+ resolve({ dispose: _dispose, needLoad: true });
},
closed: () => {
- resolve({ dispose: res.dispose, needLoad: false });
+ resolve({ dispose: _dispose, needLoad: false });
},
},
);
diff --git a/packages/frontend/src/pages/admin/roles.editor.vue b/packages/frontend/src/pages/admin/roles.editor.vue
index eb8a59b34f48..3e948abdf13d 100644
--- a/packages/frontend/src/pages/admin/roles.editor.vue
+++ b/packages/frontend/src/pages/admin/roles.editor.vue
@@ -378,6 +378,26 @@ SPDX-License-Identifier: AGPL-3.0-only
+
+ {{ i18n.ts._role._options.canUpdateBioMedia }}
+
+ {{ i18n.ts._role.useBaseValue }}
+ {{ role.policies.canUpdateBioMedia.value ? i18n.ts.yes : i18n.ts.no }}
+
+
+
+
+ {{ i18n.ts._role.useBaseValue }}
+
+
+ {{ i18n.ts.enable }}
+
+
+ {{ i18n.ts._role.priority }}
+
+
+
+
{{ i18n.ts._role._options.pinMax }}
diff --git a/packages/frontend/src/pages/admin/roles.vue b/packages/frontend/src/pages/admin/roles.vue
index 9753d9f6cb7a..6fb950494b2e 100644
--- a/packages/frontend/src/pages/admin/roles.vue
+++ b/packages/frontend/src/pages/admin/roles.vue
@@ -134,6 +134,14 @@ SPDX-License-Identifier: AGPL-3.0-only
+
+ {{ i18n.ts._role._options.canUpdateBioMedia }}
+ {{ policies.canUpdateBioMedia ? i18n.ts.yes : i18n.ts.no }}
+
+ {{ i18n.ts.enable }}
+
+
+
{{ i18n.ts._role._options.pinMax }}
{{ policies.pinLimit }}
@@ -243,7 +251,7 @@ import * as os from '@/os.js';
import { misskeyApi } from '@/scripts/misskey-api.js';
import { i18n } from '@/i18n.js';
import { definePageMetadata } from '@/scripts/page-metadata.js';
-import { instance } from '@/instance.js';
+import { instance, fetchInstance } from '@/instance.js';
import MkFoldableSection from '@/components/MkFoldableSection.vue';
import { ROLE_POLICIES } from '@/const.js';
import { useRouter } from '@/router/supplier.js';
@@ -267,6 +275,7 @@ async function updateBaseRole() {
await os.apiWithDialog('admin/roles/update-default-policies', {
policies,
});
+ fetchInstance(true);
}
function create() {
diff --git a/packages/frontend/src/pages/announcement.vue b/packages/frontend/src/pages/announcement.vue
index 85ae9062d47e..802a6bf399cd 100644
--- a/packages/frontend/src/pages/announcement.vue
+++ b/packages/frontend/src/pages/announcement.vue
@@ -109,6 +109,15 @@ definePageMetadata(() => ({
diff --git a/packages/frontend/src/pages/lookup.vue b/packages/frontend/src/pages/lookup.vue
new file mode 100644
index 000000000000..323395394239
--- /dev/null
+++ b/packages/frontend/src/pages/lookup.vue
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+ {{ i18n.ts.close }}
+ {{ i18n.ts.goToMisskey }}
+
+
+
+
+
+
+
+
+
diff --git a/packages/frontend/src/pages/my-antennas/editor.vue b/packages/frontend/src/pages/my-antennas/editor.vue
index 2949bfc02cec..02e8f9826520 100644
--- a/packages/frontend/src/pages/my-antennas/editor.vue
+++ b/packages/frontend/src/pages/my-antennas/editor.vue
@@ -41,8 +41,10 @@ SPDX-License-Identifier: AGPL-3.0-only
{{ i18n.ts.withFileAntenna }}
-
{{ i18n.ts.save }}
-
{{ i18n.ts.delete }}
+
+ {{ i18n.ts.save }}
+ {{ i18n.ts.delete }}
+
diff --git a/packages/frontend/src/pages/page.vue b/packages/frontend/src/pages/page.vue
index e73d0320006c..e2f04eb7647c 100644
--- a/packages/frontend/src/pages/page.vue
+++ b/packages/frontend/src/pages/page.vue
@@ -286,6 +286,7 @@ definePageMetadata(() => ({
background-color: var(--accentedBg);
color: var(--accent);
text-decoration: none;
+ outline: none;
}
}
diff --git a/packages/frontend/src/pages/preview.vue b/packages/frontend/src/pages/preview.vue
new file mode 100644
index 000000000000..8e07b190aa6c
--- /dev/null
+++ b/packages/frontend/src/pages/preview.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
diff --git a/packages/frontend/src/pages/reset-password.vue b/packages/frontend/src/pages/reset-password.vue
index 6b67a9cc8709..6d240295352d 100644
--- a/packages/frontend/src/pages/reset-password.vue
+++ b/packages/frontend/src/pages/reset-password.vue
@@ -44,7 +44,9 @@ async function save() {
onMounted(() => {
if (props.token == null) {
- os.popup(defineAsyncComponent(() => import('@/components/MkForgotPassword.vue')), {}, {}, 'closed');
+ const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkForgotPassword.vue')), {}, {
+ closed: () => dispose(),
+ });
mainRouter.push('/');
}
});
diff --git a/packages/frontend/src/pages/reversi/game.board.vue b/packages/frontend/src/pages/reversi/game.board.vue
index 175ea62411d4..7d9cefa5c9f4 100644
--- a/packages/frontend/src/pages/reversi/game.board.vue
+++ b/packages/frontend/src/pages/reversi/game.board.vue
@@ -169,7 +169,7 @@ const props = defineProps<{
const showBoardLabels = ref(false);
const useAvatarAsStone = ref(true);
const autoplaying = ref(false);
-// eslint-disable-next-line vue/no-setup-props-destructure
+// eslint-disable-next-line vue/no-setup-props-reactivity-loss
const game = ref(deepClone(props.game));
const logPos = ref(game.value.logs.length);
const engine = shallowRef(Reversi.Serializer.restoreGame({
diff --git a/packages/frontend/src/pages/reversi/game.vue b/packages/frontend/src/pages/reversi/game.vue
index eadc51881c79..97a793753d8b 100644
--- a/packages/frontend/src/pages/reversi/game.vue
+++ b/packages/frontend/src/pages/reversi/game.vue
@@ -20,6 +20,7 @@ import { useStream } from '@/stream.js';
import { signinRequired } from '@/account.js';
import { useRouter } from '@/router/supplier.js';
import * as os from '@/os.js';
+import { url } from '@/config.js';
import { i18n } from '@/i18n.js';
import { useInterval } from '@/scripts/use-interval.js';
@@ -44,7 +45,7 @@ function start(_game: Misskey.entities.ReversiGameDetailed) {
if (shareWhenStart.value) {
misskeyApi('notes/create', {
- text: i18n.ts._reversi.iStartedAGame + '\n' + location.href,
+ text: `${i18n.ts._reversi.iStartedAGame}\n${url}/reversi/g/${props.gameId}`,
visibility: 'home',
});
}
diff --git a/packages/frontend/src/pages/settings/2fa.vue b/packages/frontend/src/pages/settings/2fa.vue
index b7d648c1a4d3..6a9a1e16e206 100644
--- a/packages/frontend/src/pages/settings/2fa.vue
+++ b/packages/frontend/src/pages/settings/2fa.vue
@@ -108,9 +108,11 @@ async function registerTOTP(): Promise {
token: auth.result.token,
});
- os.popup(defineAsyncComponent(() => import('./2fa.qrdialog.vue')), {
+ const { dispose } = os.popup(defineAsyncComponent(() => import('./2fa.qrdialog.vue')), {
twoFactorData,
- }, {}, 'closed');
+ }, {
+ closed: () => dispose(),
+ });
}
async function unregisterTOTP(): Promise {
diff --git a/packages/frontend/src/pages/settings/accounts.vue b/packages/frontend/src/pages/settings/accounts.vue
index 1182346de96f..08c9261dcf09 100644
--- a/packages/frontend/src/pages/settings/accounts.vue
+++ b/packages/frontend/src/pages/settings/accounts.vue
@@ -74,22 +74,24 @@ async function removeAccount(account) {
}
function addExistingAccount() {
- os.popup(defineAsyncComponent(() => import('@/components/MkSigninDialog.vue')), {}, {
+ const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkSigninDialog.vue')), {}, {
done: async res => {
await addAccounts(res.id, res.i);
os.success();
init();
},
- }, 'closed');
+ closed: () => dispose(),
+ });
}
function createAccount() {
- os.popup(defineAsyncComponent(() => import('@/components/MkSignupDialog.vue')), {}, {
+ const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkSignupDialog.vue')), {}, {
done: async res => {
await addAccounts(res.id, res.i);
switchAccountWithToken(res.i);
},
- }, 'closed');
+ closed: () => dispose(),
+ });
}
async function switchAccount(account: any) {
diff --git a/packages/frontend/src/pages/settings/api.vue b/packages/frontend/src/pages/settings/api.vue
index d9596b4e45ad..b35d406a98e2 100644
--- a/packages/frontend/src/pages/settings/api.vue
+++ b/packages/frontend/src/pages/settings/api.vue
@@ -23,7 +23,7 @@ import { definePageMetadata } from '@/scripts/page-metadata.js';
const isDesktop = ref(window.innerWidth >= 1100);
function generateToken() {
- os.popup(defineAsyncComponent(() => import('@/components/MkTokenGenerateWindow.vue')), {}, {
+ const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkTokenGenerateWindow.vue')), {}, {
done: async result => {
const { name, permissions } = result;
const { token } = await misskeyApi('miauth/gen-token', {
@@ -38,7 +38,8 @@ function generateToken() {
text: token,
});
},
- }, 'closed');
+ closed: () => dispose(),
+ });
}
const headerActions = computed(() => []);
diff --git a/packages/frontend/src/pages/settings/avatar-decoration.vue b/packages/frontend/src/pages/settings/avatar-decoration.vue
index 3cc911c01456..77229d3349d0 100644
--- a/packages/frontend/src/pages/settings/avatar-decoration.vue
+++ b/packages/frontend/src/pages/settings/avatar-decoration.vue
@@ -67,7 +67,7 @@ misskeyApi('get-avatar-decorations').then(_avatarDecorations => {
});
function openDecoration(avatarDecoration, index?: number) {
- os.popup(defineAsyncComponent(() => import('./avatar-decoration.dialog.vue')), {
+ const { dispose } = os.popup(defineAsyncComponent(() => import('./avatar-decoration.dialog.vue')), {
decoration: avatarDecoration,
usingIndex: index,
}, {
@@ -108,7 +108,8 @@ function openDecoration(avatarDecoration, index?: number) {
});
$i.avatarDecorations = update;
},
- }, 'closed');
+ closed: () => dispose(),
+ });
}
function detachAllDecorations() {
diff --git a/packages/frontend/src/pages/settings/drive-cleaner.vue b/packages/frontend/src/pages/settings/drive-cleaner.vue
index b20774c4ec50..8d2946db63f9 100644
--- a/packages/frontend/src/pages/settings/drive-cleaner.vue
+++ b/packages/frontend/src/pages/settings/drive-cleaner.vue
@@ -48,7 +48,7 @@ SPDX-License-Identifier: AGPL-3.0-only
+
+
diff --git a/packages/frontend/src/pages/welcome.timeline.vue b/packages/frontend/src/pages/welcome.timeline.vue
index 139b2e0a07d4..db326f9e6cf4 100644
--- a/packages/frontend/src/pages/welcome.timeline.vue
+++ b/packages/frontend/src/pages/welcome.timeline.vue
@@ -4,24 +4,17 @@ SPDX-License-Identifier: AGPL-3.0-only
-->
-
-
-
-
-
-
-
- RN: ...
-
-
-
-
-
-
-
-
-
-
+
@@ -29,43 +22,54 @@ SPDX-License-Identifier: AGPL-3.0-only
diff --git a/packages/frontend/src/router/definition.ts b/packages/frontend/src/router/definition.ts
index 8a443f627b23..f7a219c57e19 100644
--- a/packages/frontend/src/router/definition.ts
+++ b/packages/frontend/src/router/definition.ts
@@ -237,8 +237,18 @@ const routes: RouteDef[] = [{
origin: 'origin',
},
}, {
+ // Legacy Compatibility
path: '/authorize-follow',
- component: page(() => import('@/pages/follow.vue')),
+ redirect: '/lookup',
+ loginRequired: true,
+}, {
+ // Mastodon Compatibility
+ path: '/authorize_interaction',
+ redirect: '/lookup',
+ loginRequired: true,
+}, {
+ path: '/lookup',
+ component: page(() => import('@/pages/lookup.vue')),
loginRequired: true,
}, {
path: '/share',
@@ -251,6 +261,9 @@ const routes: RouteDef[] = [{
}, {
path: '/scratchpad',
component: page(() => import('@/pages/scratchpad.vue')),
+}, {
+ path: '/preview',
+ component: page(() => import('@/pages/preview.vue')),
}, {
path: '/auth/:token',
component: page(() => import('@/pages/auth.vue')),
diff --git a/packages/frontend/src/scripts/array.ts b/packages/frontend/src/scripts/array.ts
index b3d76e149f43..f2feb29dfc57 100644
--- a/packages/frontend/src/scripts/array.ts
+++ b/packages/frontend/src/scripts/array.ts
@@ -77,44 +77,6 @@ export function maximum(xs: number[]): number {
return Math.max(...xs);
}
-/**
- * Splits an array based on the equivalence relation.
- * The concatenation of the result is equal to the argument.
- */
-export function groupBy
(f: EndoRelation, xs: T[]): T[][] {
- const groups = [] as T[][];
- for (const x of xs) {
- const lastGroup = groups.at(-1);
- if (lastGroup !== undefined && f(lastGroup[0], x)) {
- lastGroup.push(x);
- } else {
- groups.push([x]);
- }
- }
- return groups;
-}
-
-/**
- * Splits an array based on the equivalence relation induced by the function.
- * The concatenation of the result is equal to the argument.
- */
-export function groupOn(f: (x: T) => S, xs: T[]): T[][] {
- return groupBy((a, b) => f(a) === f(b), xs);
-}
-
-export function groupByX(collections: T[], keySelector: (x: T) => string) {
- return collections.reduce((obj: Record, item: T) => {
- const key = keySelector(item);
- if (typeof obj[key] === 'undefined') {
- obj[key] = [];
- }
-
- obj[key].push(item);
-
- return obj;
- }, {});
-}
-
/**
* Compare two arrays by lexicographical order
*/
diff --git a/packages/frontend/src/scripts/focus-trap.ts b/packages/frontend/src/scripts/focus-trap.ts
new file mode 100644
index 000000000000..a5df36f52014
--- /dev/null
+++ b/packages/frontend/src/scripts/focus-trap.ts
@@ -0,0 +1,78 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+import { getHTMLElementOrNull } from '@/scripts/get-dom-node-or-null.js';
+
+const focusTrapElements = new Set();
+const ignoreElements = [
+ 'script',
+ 'style',
+];
+
+function containsFocusTrappedElements(el: HTMLElement): boolean {
+ return Array.from(focusTrapElements).some((focusTrapElement) => {
+ return el.contains(focusTrapElement);
+ });
+}
+
+function releaseFocusTrap(el: HTMLElement): void {
+ focusTrapElements.delete(el);
+ if (el.inert === true) {
+ el.inert = false;
+ }
+ if (el.parentElement != null && el !== document.body) {
+ el.parentElement.childNodes.forEach((siblingNode) => {
+ const siblingEl = getHTMLElementOrNull(siblingNode);
+ if (!siblingEl) return;
+ if (siblingEl !== el && (focusTrapElements.has(siblingEl) || containsFocusTrappedElements(siblingEl) || focusTrapElements.size === 0)) {
+ siblingEl.inert = false;
+ } else if (
+ focusTrapElements.size > 0 &&
+ !containsFocusTrappedElements(siblingEl) &&
+ !focusTrapElements.has(siblingEl) &&
+ !ignoreElements.includes(siblingEl.tagName.toLowerCase())
+ ) {
+ siblingEl.inert = true;
+ } else {
+ siblingEl.inert = false;
+ }
+ });
+ releaseFocusTrap(el.parentElement);
+ }
+}
+
+export function focusTrap(el: HTMLElement, hasInteractionWithOtherFocusTrappedEls: boolean, parent: true): void;
+export function focusTrap(el: HTMLElement, hasInteractionWithOtherFocusTrappedEls?: boolean, parent?: false): { release: () => void; };
+export function focusTrap(el: HTMLElement, hasInteractionWithOtherFocusTrappedEls = false, parent = false): { release: () => void; } | void {
+ if (el.inert === true) {
+ el.inert = false;
+ }
+ if (el.parentElement != null && el !== document.body) {
+ el.parentElement.childNodes.forEach((siblingNode) => {
+ const siblingEl = getHTMLElementOrNull(siblingNode);
+ if (!siblingEl) return;
+ if (
+ siblingEl !== el &&
+ (
+ hasInteractionWithOtherFocusTrappedEls === false ||
+ (!focusTrapElements.has(siblingEl) && !containsFocusTrappedElements(siblingEl))
+ ) &&
+ !ignoreElements.includes(siblingEl.tagName.toLowerCase())
+ ) {
+ siblingEl.inert = true;
+ }
+ });
+ focusTrap(el.parentElement, hasInteractionWithOtherFocusTrappedEls, true);
+ }
+
+ if (!parent) {
+ focusTrapElements.add(el);
+
+ return {
+ release: () => {
+ releaseFocusTrap(el);
+ },
+ };
+ }
+}
diff --git a/packages/frontend/src/scripts/focus.ts b/packages/frontend/src/scripts/focus.ts
index ea6ee61c8838..eb2da5ad8665 100644
--- a/packages/frontend/src/scripts/focus.ts
+++ b/packages/frontend/src/scripts/focus.ts
@@ -3,30 +3,78 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
-export function focusPrev(el: Element | null, self = false, scroll = true) {
- if (el == null) return;
- if (!self) el = el.previousElementSibling;
- if (el) {
- if (el.hasAttribute('tabindex')) {
- (el as HTMLElement).focus({
- preventScroll: !scroll,
- });
- } else {
- focusPrev(el.previousElementSibling, true);
- }
+import { getScrollPosition, getScrollContainer, getStickyBottom, getStickyTop } from '@/scripts/scroll.js';
+import { getElementOrNull, getNodeOrNull } from '@/scripts/get-dom-node-or-null.js';
+
+type MaybeHTMLElement = EventTarget | Node | Element | HTMLElement;
+
+export const isFocusable = (input: MaybeHTMLElement | null | undefined): input is HTMLElement => {
+ if (input == null || !(input instanceof HTMLElement)) return false;
+
+ if (input.tabIndex < 0) return false;
+ if ('disabled' in input && input.disabled === true) return false;
+ if ('readonly' in input && input.readonly === true) return false;
+
+ if (!input.ownerDocument.contains(input)) return false;
+
+ const style = window.getComputedStyle(input);
+ if (style.display === 'none') return false;
+ if (style.visibility === 'hidden') return false;
+ if (style.opacity === '0') return false;
+ if (style.pointerEvents === 'none') return false;
+
+ return true;
+};
+
+export const focusPrev = (input: MaybeHTMLElement | null | undefined, self = false, scroll = true) => {
+ const element = self ? input : getElementOrNull(input)?.previousElementSibling;
+ if (element == null) return;
+ if (isFocusable(element)) {
+ focusOrScroll(element, scroll);
+ } else {
+ focusPrev(element, false, scroll);
}
-}
-
-export function focusNext(el: Element | null, self = false, scroll = true) {
- if (el == null) return;
- if (!self) el = el.nextElementSibling;
- if (el) {
- if (el.hasAttribute('tabindex')) {
- (el as HTMLElement).focus({
- preventScroll: !scroll,
- });
- } else {
- focusPrev(el.nextElementSibling, true);
+};
+
+export const focusNext = (input: MaybeHTMLElement | null | undefined, self = false, scroll = true) => {
+ const element = self ? input : getElementOrNull(input)?.nextElementSibling;
+ if (element == null) return;
+ if (isFocusable(element)) {
+ focusOrScroll(element, scroll);
+ } else {
+ focusNext(element, false, scroll);
+ }
+};
+
+export const focusParent = (input: MaybeHTMLElement | null | undefined, self = false, scroll = true) => {
+ const element = self ? input : getNodeOrNull(input)?.parentElement;
+ if (element == null) return;
+ if (isFocusable(element)) {
+ focusOrScroll(element, scroll);
+ } else {
+ focusParent(element, false, scroll);
+ }
+};
+
+const focusOrScroll = (element: HTMLElement, scroll: boolean) => {
+ if (scroll) {
+ const scrollContainer = getScrollContainer(element) ?? document.documentElement;
+ const scrollContainerTop = getScrollPosition(scrollContainer);
+ const stickyTop = getStickyTop(element, scrollContainer);
+ const stickyBottom = getStickyBottom(element, scrollContainer);
+ const top = element.getBoundingClientRect().top;
+ const bottom = element.getBoundingClientRect().bottom;
+
+ let scrollTo = scrollContainerTop;
+ if (top < stickyTop) {
+ scrollTo += top - stickyTop;
+ } else if (bottom > window.innerHeight - stickyBottom) {
+ scrollTo += bottom - window.innerHeight + stickyBottom;
}
+ scrollContainer.scrollTo({ top: scrollTo, behavior: 'instant' });
+ }
+
+ if (document.activeElement !== element) {
+ element.focus({ preventScroll: true });
}
-}
+};
diff --git a/packages/frontend/src/scripts/get-dom-node-or-null.ts b/packages/frontend/src/scripts/get-dom-node-or-null.ts
new file mode 100644
index 000000000000..fbf54675fda2
--- /dev/null
+++ b/packages/frontend/src/scripts/get-dom-node-or-null.ts
@@ -0,0 +1,19 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+export const getNodeOrNull = (input: unknown): Node | null => {
+ if (input instanceof Node) return input;
+ return null;
+};
+
+export const getElementOrNull = (input: unknown): Element | null => {
+ if (input instanceof Element) return input;
+ return null;
+};
+
+export const getHTMLElementOrNull = (input: unknown): HTMLElement | null => {
+ if (input instanceof HTMLElement) return input;
+ return null;
+};
diff --git a/packages/frontend/src/scripts/get-drive-file-menu.ts b/packages/frontend/src/scripts/get-drive-file-menu.ts
index 7aca5f83b20f..14c83ed63755 100644
--- a/packages/frontend/src/scripts/get-drive-file-menu.ts
+++ b/packages/frontend/src/scripts/get-drive-file-menu.ts
@@ -27,7 +27,7 @@ function rename(file: Misskey.entities.DriveFile) {
}
function describe(file: Misskey.entities.DriveFile) {
- os.popup(defineAsyncComponent(() => import('@/components/MkFileCaptionEditWindow.vue')), {
+ const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkFileCaptionEditWindow.vue')), {
default: file.comment ?? '',
file: file,
}, {
@@ -37,7 +37,8 @@ function describe(file: Misskey.entities.DriveFile) {
comment: caption.length === 0 ? null : caption,
});
},
- }, 'closed');
+ closed: () => dispose(),
+ });
}
function toggleSensitive(file: Misskey.entities.DriveFile) {
diff --git a/packages/frontend/src/scripts/get-note-menu.ts b/packages/frontend/src/scripts/get-note-menu.ts
index 71ad299f507f..418b6abc88ea 100644
--- a/packages/frontend/src/scripts/get-note-menu.ts
+++ b/packages/frontend/src/scripts/get-note-menu.ts
@@ -136,10 +136,12 @@ export function getAbuseNoteMenu(note: Misskey.entities.Note, text: string): Men
let noteInfo = '';
if (note.url ?? note.uri != null) noteInfo = `Note: ${note.url ?? note.uri}\n`;
noteInfo += `Local Note: ${localUrl}\n`;
- os.popup(defineAsyncComponent(() => import('@/components/MkAbuseReportWindow.vue')), {
+ const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkAbuseReportWindow.vue')), {
user: note.user,
initialComment: `${noteInfo}-----\n`,
- }, {}, 'closed');
+ }, {
+ closed: () => dispose(),
+ });
},
};
}
@@ -530,7 +532,9 @@ export function getRenoteMenu(props: {
const rect = el.getBoundingClientRect();
const x = rect.left + (el.offsetWidth / 2);
const y = rect.top + (el.offsetHeight / 2);
- os.popup(MkRippleEffect, { x, y }, {}, 'end');
+ const { dispose } = os.popup(MkRippleEffect, { x, y }, {
+ end: () => dispose(),
+ });
}
if (!props.mock) {
@@ -566,7 +570,9 @@ export function getRenoteMenu(props: {
const rect = el.getBoundingClientRect();
const x = rect.left + (el.offsetWidth / 2);
const y = rect.top + (el.offsetHeight / 2);
- os.popup(MkRippleEffect, { x, y }, {}, 'end');
+ const { dispose } = os.popup(MkRippleEffect, { x, y }, {
+ end: () => dispose(),
+ });
}
const configuredVisibility = defaultStore.state.rememberNoteVisibility ? defaultStore.state.visibility : defaultStore.state.defaultNoteVisibility;
@@ -615,7 +621,9 @@ export function getRenoteMenu(props: {
const rect = el.getBoundingClientRect();
const x = rect.left + (el.offsetWidth / 2);
const y = rect.top + (el.offsetHeight / 2);
- os.popup(MkRippleEffect, { x, y }, {}, 'end');
+ const { dispose } = os.popup(MkRippleEffect, { x, y }, {
+ end: () => dispose(),
+ });
}
if (!props.mock) {
diff --git a/packages/frontend/src/scripts/get-user-menu.ts b/packages/frontend/src/scripts/get-user-menu.ts
index 3e031d232ff9..2d1fea8ea4dc 100644
--- a/packages/frontend/src/scripts/get-user-menu.ts
+++ b/packages/frontend/src/scripts/get-user-menu.ts
@@ -100,9 +100,11 @@ export function getUserMenu(user: Misskey.entities.UserDetailed, router: IRouter
}
function reportAbuse() {
- os.popup(defineAsyncComponent(() => import('@/components/MkAbuseReportWindow.vue')), {
+ const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkAbuseReportWindow.vue')), {
user: user,
- }, {}, 'closed');
+ }, {
+ closed: () => dispose(),
+ });
}
async function getConfirmed(text: string): Promise {
@@ -184,7 +186,7 @@ export function getUserMenu(user: Misskey.entities.UserDetailed, router: IRouter
const canonical = user.host === null ? `@${user.username}` : `@${user.username}@${toUnicode(user.host)}`;
copyToClipboard(`${url}/${canonical}`);
},
- }, {
+ }, ...($i ? [{
icon: 'ti ti-mail',
text: i18n.ts.sendMessage,
action: () => {
@@ -257,7 +259,7 @@ export function getUserMenu(user: Misskey.entities.UserDetailed, router: IRouter
},
}));
},
- }] as any;
+ }] : [])] as any;
if ($i && meId !== user.id) {
if (iAmModerator) {
diff --git a/packages/frontend/src/scripts/hotkey.ts b/packages/frontend/src/scripts/hotkey.ts
index 0600bff893b3..04fb23569456 100644
--- a/packages/frontend/src/scripts/hotkey.ts
+++ b/packages/frontend/src/scripts/hotkey.ts
@@ -2,94 +2,171 @@
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
+import { getHTMLElementOrNull } from "@/scripts/get-dom-node-or-null.js";
-import keyCode from './keycode.js';
+//#region types
+export type Keymap = Record;
-type Callback = (ev: KeyboardEvent) => void;
+type CallbackFunction = (ev: KeyboardEvent) => unknown;
-type Keymap = Record;
+type CallbackObject = {
+ callback: CallbackFunction;
+ allowRepeat?: boolean;
+};
type Pattern = {
which: string[];
- ctrl?: boolean;
- shift?: boolean;
- alt?: boolean;
+ ctrl: boolean;
+ alt: boolean;
+ shift: boolean;
};
type Action = {
patterns: Pattern[];
- callback: Callback;
- allowRepeat: boolean;
+ callback: CallbackFunction;
+ options: Required>;
+};
+//#endregion
+
+//#region consts
+const KEY_ALIASES = {
+ 'esc': 'Escape',
+ 'enter': 'Enter',
+ 'space': ' ',
+ 'up': 'ArrowUp',
+ 'down': 'ArrowDown',
+ 'left': 'ArrowLeft',
+ 'right': 'ArrowRight',
+ 'plus': ['+', ';'],
};
-const parseKeymap = (keymap: Keymap) => Object.entries(keymap).map(([patterns, callback]): Action => {
- const result = {
- patterns: [],
- callback,
- allowRepeat: true,
- } as Action;
+const MODIFIER_KEYS = ['ctrl', 'alt', 'shift'];
- if (patterns.match(/^\(.*\)$/) !== null) {
- result.allowRepeat = false;
- patterns = patterns.slice(1, -1);
- }
+const IGNORE_ELEMENTS = ['input', 'textarea'];
+//#endregion
+
+//#region store
+let latestHotkey: Pattern & { callback: CallbackFunction } | null = null;
+//#endregion
- result.patterns = patterns.split('|').map(part => {
- const pattern = {
- which: [],
- ctrl: false,
- alt: false,
- shift: false,
- } as Pattern;
-
- const keys = part.trim().split('+').map(x => x.trim().toLowerCase());
- for (const key of keys) {
- switch (key) {
- case 'ctrl': pattern.ctrl = true; break;
- case 'alt': pattern.alt = true; break;
- case 'shift': pattern.shift = true; break;
- default: pattern.which = keyCode(key).map(k => k.toLowerCase());
+//#region impl
+export const makeHotkey = (keymap: Keymap) => {
+ const actions = parseKeymap(keymap);
+ return (ev: KeyboardEvent) => {
+ if ('pswp' in window && window.pswp != null) return;
+ if (document.activeElement != null) {
+ if (IGNORE_ELEMENTS.includes(document.activeElement.tagName.toLowerCase())) return;
+ if (getHTMLElementOrNull(document.activeElement)?.isContentEditable) return;
+ }
+ for (const action of actions) {
+ if (matchPatterns(ev, action)) {
+ ev.preventDefault();
+ ev.stopPropagation();
+ action.callback(ev);
+ storePattern(ev, action.callback);
}
}
+ };
+};
- return pattern;
+const parseKeymap = (keymap: Keymap) => {
+ return Object.entries(keymap).map(([rawPatterns, rawCallback]) => {
+ const patterns = parsePatterns(rawPatterns);
+ const callback = parseCallback(rawCallback);
+ const options = parseOptions(rawCallback);
+ return { patterns, callback, options } as const satisfies Action;
});
+};
- return result;
-});
-
-const ignoreElements = ['input', 'textarea'];
+const parsePatterns = (rawPatterns: keyof Keymap) => {
+ return rawPatterns.split('|').map(part => {
+ const keys = part.split('+').map(trimLower);
+ const which = parseKeyCode(keys.findLast(x => !MODIFIER_KEYS.includes(x)));
+ const ctrl = keys.includes('ctrl');
+ const alt = keys.includes('alt');
+ const shift = keys.includes('shift');
+ return { which, ctrl, alt, shift } as const satisfies Pattern;
+ });
+};
-function match(ev: KeyboardEvent, patterns: Action['patterns']): boolean {
- const key = ev.key.toLowerCase();
- return patterns.some(pattern => pattern.which.includes(key) &&
- pattern.ctrl === ev.ctrlKey &&
- pattern.shift === ev.shiftKey &&
- pattern.alt === ev.altKey &&
- !ev.metaKey,
- );
-}
+const parseCallback = (rawCallback: Keymap[keyof Keymap]) => {
+ if (typeof rawCallback === 'object') {
+ return rawCallback.callback;
+ }
+ return rawCallback;
+};
-export const makeHotkey = (keymap: Keymap) => {
- const actions = parseKeymap(keymap);
+const parseOptions = (rawCallback: Keymap[keyof Keymap]) => {
+ const defaultOptions = {
+ allowRepeat: false,
+ } as const satisfies Action['options'];
+ if (typeof rawCallback === 'object') {
+ const { callback, ...rawOptions } = rawCallback;
+ const options = { ...defaultOptions, ...rawOptions };
+ return { ...options } as const satisfies Action['options'];
+ }
+ return { ...defaultOptions } as const satisfies Action['options'];
+};
- return (ev: KeyboardEvent) => {
- if (document.activeElement) {
- if (ignoreElements.some(el => document.activeElement!.matches(el))) return;
- if (document.activeElement.attributes['contenteditable']) return;
+const matchPatterns = (ev: KeyboardEvent, action: Action) => {
+ const { patterns, options, callback } = action;
+ if (ev.repeat && !options.allowRepeat) return false;
+ const key = ev.key.toLowerCase();
+ return patterns.some(({ which, ctrl, shift, alt }) => {
+ if (
+ options.allowRepeat === false &&
+ latestHotkey != null &&
+ latestHotkey.which.includes(key) &&
+ latestHotkey.ctrl === ctrl &&
+ latestHotkey.alt === alt &&
+ latestHotkey.shift === shift &&
+ latestHotkey.callback === callback
+ ) {
+ return false;
}
+ if (!which.includes(key)) return false;
+ if (ctrl !== (ev.ctrlKey || ev.metaKey)) return false;
+ if (alt !== ev.altKey) return false;
+ if (shift !== ev.shiftKey) return false;
+ return true;
+ });
+};
- for (const action of actions) {
- const matched = match(ev, action.patterns);
+let lastHotKeyStoreTimer: number | null = null;
- if (matched) {
- if (!action.allowRepeat && ev.repeat) return;
+const storePattern = (ev: KeyboardEvent, callback: CallbackFunction) => {
+ if (lastHotKeyStoreTimer != null) {
+ clearTimeout(lastHotKeyStoreTimer);
+ }
- ev.preventDefault();
- ev.stopPropagation();
- action.callback(ev);
- break;
- }
- }
+ latestHotkey = {
+ which: [ev.key.toLowerCase()],
+ ctrl: ev.ctrlKey || ev.metaKey,
+ alt: ev.altKey,
+ shift: ev.shiftKey,
+ callback,
};
+
+ lastHotKeyStoreTimer = window.setTimeout(() => {
+ latestHotkey = null;
+ }, 500);
};
+
+const parseKeyCode = (input?: string | null) => {
+ if (input == null) return [];
+ const raw = getValueByKey(KEY_ALIASES, input);
+ if (raw == null) return [input];
+ if (typeof raw === 'string') return [trimLower(raw)];
+ return raw.map(trimLower);
+};
+
+const getValueByKey = <
+ T extends Record,
+ K extends keyof T | keyof any,
+ R extends K extends keyof T ? T[K] : T[keyof T] | undefined,
+>(obj: T, key: K) => {
+ return obj[key] as R;
+};
+
+const trimLower = (str: string) => str.trim().toLowerCase();
+//#endregion
diff --git a/packages/frontend/src/scripts/install-plugin.ts b/packages/frontend/src/scripts/install-plugin.ts
index d0a8675b191d..37f473b6dec9 100644
--- a/packages/frontend/src/scripts/install-plugin.ts
+++ b/packages/frontend/src/scripts/install-plugin.ts
@@ -103,7 +103,7 @@ export async function installPlugin(code: string, meta?: AiScriptPluginMeta) {
}
const token = realMeta.permissions == null || realMeta.permissions.length === 0 ? null : await new Promise((res, rej) => {
- os.popup(defineAsyncComponent(() => import('@/components/MkTokenGenerateWindow.vue')), {
+ const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkTokenGenerateWindow.vue')), {
title: i18n.ts.tokenRequested,
information: i18n.ts.pluginTokenRequestedDescription,
initialName: realMeta.name,
@@ -118,7 +118,8 @@ export async function installPlugin(code: string, meta?: AiScriptPluginMeta) {
});
res(token);
},
- }, 'closed');
+ closed: () => dispose(),
+ });
});
savePlugin({
diff --git a/packages/frontend/src/scripts/keycode.ts b/packages/frontend/src/scripts/keycode.ts
deleted file mode 100644
index 7ffceafadae1..000000000000
--- a/packages/frontend/src/scripts/keycode.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * SPDX-FileCopyrightText: syuilo and misskey-project
- * SPDX-License-Identifier: AGPL-3.0-only
- */
-
-export default (input: string): string[] => {
- if (Object.keys(aliases).some(a => a.toLowerCase() === input.toLowerCase())) {
- const codes = aliases[input];
- return Array.isArray(codes) ? codes : [codes];
- } else {
- return [input];
- }
-};
-
-export const aliases = {
- 'esc': 'Escape',
- 'enter': ['Enter', 'NumpadEnter'],
- 'space': [' ', 'Spacebar'],
- 'up': 'ArrowUp',
- 'down': 'ArrowDown',
- 'left': 'ArrowLeft',
- 'right': 'ArrowRight',
- 'plus': ['NumpadAdd', 'Semicolon'],
-};
diff --git a/packages/frontend/src/scripts/please-login.ts b/packages/frontend/src/scripts/please-login.ts
index 9e512727912b..18f05bc7f428 100644
--- a/packages/frontend/src/scripts/please-login.ts
+++ b/packages/frontend/src/scripts/please-login.ts
@@ -8,19 +8,57 @@ import { $i } from '@/account.js';
import { i18n } from '@/i18n.js';
import { popup } from '@/os.js';
-export function pleaseLogin(path?: string) {
+export type OpenOnRemoteOptions = {
+ /**
+ * 外部のMisskey Webで特定のパスを開く
+ */
+ type: 'web';
+
+ /**
+ * 内部パス(例: `/settings`)
+ */
+ path: string;
+} | {
+ /**
+ * 外部のMisskey Webで照会する
+ */
+ type: 'lookup';
+
+ /**
+ * 照会したいエンティティのURL
+ *
+ * (例: `https://misskey.example.com/notes/abcdexxxxyz`)
+ */
+ url: string;
+} | {
+ /**
+ * 外部のMisskeyでノートする
+ */
+ type: 'share';
+
+ /**
+ * `/share` ページに渡すクエリストリング
+ *
+ * @see https://go.misskey-hub.net/spec/share/
+ */
+ params: Record;
+};
+
+export function pleaseLogin(path?: string, openOnRemote?: OpenOnRemoteOptions) {
if ($i) return;
- popup(defineAsyncComponent(() => import('@/components/MkSigninDialog.vue')), {
+ const { dispose } = popup(defineAsyncComponent(() => import('@/components/MkSigninDialog.vue')), {
autoSet: true,
- message: i18n.ts.signinRequired,
+ message: openOnRemote ? i18n.ts.signinOrContinueOnRemote : i18n.ts.signinRequired,
+ openOnRemote,
}, {
cancelled: () => {
if (path) {
window.location.href = path;
}
},
- }, 'closed');
+ closed: () => dispose(),
+ });
throw new Error('signin required');
}
diff --git a/packages/frontend/src/scripts/scroll.ts b/packages/frontend/src/scripts/scroll.ts
index 8edb6fca0539..f0274034b5b3 100644
--- a/packages/frontend/src/scripts/scroll.ts
+++ b/packages/frontend/src/scripts/scroll.ts
@@ -23,6 +23,14 @@ export function getStickyTop(el: HTMLElement, container: HTMLElement | null = nu
return getStickyTop(el.parentElement, container, newTop);
}
+export function getStickyBottom(el: HTMLElement, container: HTMLElement | null = null, bottom = 0) {
+ if (!el.parentElement) return bottom;
+ const data = el.dataset.stickyContainerFooterHeight;
+ const newBottom = data ? Number(data) + bottom : bottom;
+ if (el === container) return newBottom;
+ return getStickyBottom(el.parentElement, container, newBottom);
+}
+
export function getScrollPosition(el: HTMLElement | null): number {
const container = getScrollContainer(el);
return container == null ? window.scrollY : container.scrollTop;
diff --git a/packages/frontend/src/scripts/sound.ts b/packages/frontend/src/scripts/sound.ts
index fcd59510df18..bba855cd6437 100644
--- a/packages/frontend/src/scripts/sound.ts
+++ b/packages/frontend/src/scripts/sound.ts
@@ -74,8 +74,6 @@ export const soundsTypes = [
export const operationTypes = [
'noteMy',
'note',
- 'antenna',
- 'channel',
'notification',
'reaction',
] as const;
diff --git a/packages/frontend/src/scripts/test-utils.ts b/packages/frontend/src/scripts/test-utils.ts
index a32315f4df58..52bb2d94e0e8 100644
--- a/packages/frontend/src/scripts/test-utils.ts
+++ b/packages/frontend/src/scripts/test-utils.ts
@@ -7,13 +7,3 @@ export async function tick(): Promise {
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
await new Promise((globalThis.requestIdleCallback ?? setTimeout) as never);
}
-
-/**
- * @see https://github.com/misskey-dev/misskey/issues/11267
- */
-export function semaphore(counter = 0, waiting: (() => void)[] = []) {
- return {
- acquire: () => ++counter > 1 && new Promise(resolve => waiting.push(resolve)),
- release: () => --counter && waiting.pop()?.(),
- };
-}
diff --git a/packages/frontend/src/scripts/url.ts b/packages/frontend/src/scripts/url.ts
index e3072b3b7d2b..5a8265af9e10 100644
--- a/packages/frontend/src/scripts/url.ts
+++ b/packages/frontend/src/scripts/url.ts
@@ -21,3 +21,8 @@ export function query(obj: Record): string {
export function appendQuery(url: string, query: string): string {
return `${url}${/\?/.test(url) ? url.endsWith('?') ? '' : '&' : '?'}${query}`;
}
+
+export function extractDomain(url: string) {
+ const match = url.match(/^(?:https?:)?(?:\/\/)?(?:[^@\n]+@)?([^:\/\n]+)/im);
+ return match ? match[1] : null;
+}
diff --git a/packages/frontend/src/scripts/use-chart-tooltip.ts b/packages/frontend/src/scripts/use-chart-tooltip.ts
index bed221a62255..bba64fc6ee09 100644
--- a/packages/frontend/src/scripts/use-chart-tooltip.ts
+++ b/packages/frontend/src/scripts/use-chart-tooltip.ts
@@ -17,20 +17,16 @@ export function useChartTooltip(opts: { position: 'top' | 'middle' } = { positio
borderColor: string;
text: string;
}[] | null>(null);
- let disposeTooltipComponent;
-
- os.popup(MkChartTooltip, {
+ const { dispose: disposeTooltipComponent } = os.popup(MkChartTooltip, {
showing: tooltipShowing,
x: tooltipX,
y: tooltipY,
title: tooltipTitle,
series: tooltipSeries,
- }, {}).then(({ dispose }) => {
- disposeTooltipComponent = dispose;
- });
+ }, {});
onUnmounted(() => {
- if (disposeTooltipComponent) disposeTooltipComponent();
+ disposeTooltipComponent();
});
onDeactivated(() => {
diff --git a/packages/frontend/src/store.ts b/packages/frontend/src/store.ts
index c0105a0e0ae2..73a3dce569fc 100644
--- a/packages/frontend/src/store.ts
+++ b/packages/frontend/src/store.ts
@@ -487,14 +487,6 @@ export const defaultStore = markRaw(new Storage('base', {
where: 'device',
default: { type: 'syuilo/n-ea', volume: 1 } as SoundStore,
},
- sound_antenna: {
- where: 'device',
- default: { type: 'syuilo/triple', volume: 1 } as SoundStore,
- },
- sound_channel: {
- where: 'device',
- default: { type: 'syuilo/square-pico', volume: 1 } as SoundStore,
- },
sound_reaction: {
where: 'device',
default: { type: 'syuilo/bubble2', volume: 1 } as SoundStore,
diff --git a/packages/frontend/src/style.scss b/packages/frontend/src/style.scss
index 250a2616a75f..2feb79ef810f 100644
--- a/packages/frontend/src/style.scss
+++ b/packages/frontend/src/style.scss
@@ -113,6 +113,10 @@ a {
-webkit-tap-highlight-color: transparent;
-webkit-touch-callout: none;
+ &:focus-visible {
+ outline-offset: 2px;
+ }
+
&:hover {
text-decoration: underline;
}
@@ -143,12 +147,21 @@ rt {
white-space: initial;
}
+:focus-visible {
+ outline: var(--focus) solid 2px;
+ outline-offset: -2px;
+
+ &:hover {
+ text-decoration: none;
+ }
+}
+
.ti {
width: 1.28em;
vertical-align: -12%;
line-height: 1em;
- &:before {
+ &::before {
font-size: 128%;
}
}
@@ -230,10 +243,6 @@ rt {
line-height: inherit;
max-width: 100%;
- &:focus-visible {
- outline: none;
- }
-
&:disabled {
opacity: 0.5;
cursor: default;
@@ -270,13 +279,17 @@ rt {
._help {
color: var(--accent);
- cursor: help
+ cursor: help;
}
._textButton {
@extend ._button;
color: var(--accent);
+ &:focus-visible {
+ outline-offset: 2px;
+ }
+
&:not(:disabled):hover {
text-decoration: underline;
}
diff --git a/packages/frontend/src/ui/_common_/common.ts b/packages/frontend/src/ui/_common_/common.ts
index 839fa5faf8a4..74c30287450f 100644
--- a/packages/frontend/src/ui/_common_/common.ts
+++ b/packages/frontend/src/ui/_common_/common.ts
@@ -85,34 +85,36 @@ export function openInstanceMenu(ev: MouseEvent) {
icon: 'ti ti-help-circle',
to: '/contact',
}, (instance.impressumUrl) ? {
+ type: 'a',
text: i18n.ts.impressum,
icon: 'ti ti-file-invoice',
- action: () => {
- window.open(instance.impressumUrl, '_blank', 'noopener');
- },
+ href: instance.impressumUrl,
+ target: '_blank',
} : undefined, (instance.tosUrl) ? {
+ type: 'a',
text: i18n.ts.termsOfService,
icon: 'ti ti-notebook',
- action: () => {
- window.open(instance.tosUrl, '_blank', 'noopener');
- },
+ href: instance.tosUrl,
+ target: '_blank',
} : undefined, (instance.privacyPolicyUrl) ? {
+ type: 'a',
text: i18n.ts.privacyPolicy,
icon: 'ti ti-shield-lock',
- action: () => {
- window.open(instance.privacyPolicyUrl, '_blank', 'noopener');
- },
+ href: instance.privacyPolicyUrl,
+ target: '_blank',
} : undefined, (!instance.impressumUrl && !instance.tosUrl && !instance.privacyPolicyUrl) ? undefined : { type: 'divider' }, {
+ type: 'a',
text: i18n.ts.document,
icon: 'ti ti-bulb',
- action: () => {
- window.open('https://misskey-hub.net/docs/for-users/', '_blank', 'noopener');
- },
+ href: 'https://misskey-hub.net/docs/for-users/',
+ target: '_blank',
}, ($i) ? {
text: i18n.ts._initialTutorial.launchTutorial,
icon: 'ti ti-presentation',
action: () => {
- os.popup(defineAsyncComponent(() => import('@/components/MkTutorialDialog.vue')), {}, {}, 'closed');
+ const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkTutorialDialog.vue')), {}, {
+ closed: () => dispose(),
+ });
},
} : undefined, {
type: 'link',
diff --git a/packages/frontend/src/ui/_common_/common.vue b/packages/frontend/src/ui/_common_/common.vue
index 822b5528372b..d7df2d10f9e9 100644
--- a/packages/frontend/src/ui/_common_/common.vue
+++ b/packages/frontend/src/ui/_common_/common.vue
@@ -227,7 +227,7 @@ if ($i) {
right: 15px;
pointer-events: none;
- &:before {
+ &::before {
content: "";
display: block;
width: 18px;
diff --git a/packages/frontend/src/ui/_common_/navbar-for-mobile.vue b/packages/frontend/src/ui/_common_/navbar-for-mobile.vue
index 5d0e065f09a6..87e9e45e63c6 100644
--- a/packages/frontend/src/ui/_common_/navbar-for-mobile.vue
+++ b/packages/frontend/src/ui/_common_/navbar-for-mobile.vue
@@ -74,8 +74,9 @@ function openAccountMenu(ev: MouseEvent) {
}
function more() {
- os.popup(defineAsyncComponent(() => import('@/components/MkLaunchPad.vue')), {}, {
- }, 'closed');
+ const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkLaunchPad.vue')), {}, {
+ closed: () => dispose(),
+ });
}
@@ -138,7 +139,7 @@ function more() {
font-weight: bold;
text-align: left;
- &:before {
+ &::before {
content: "";
display: block;
width: calc(100% - 38px);
@@ -154,7 +155,7 @@ function more() {
}
&:hover, &.active {
- &:before {
+ &::before {
background: var(--accentLighten);
}
}
@@ -225,7 +226,7 @@ function more() {
}
&:hover, &.active {
- &:before {
+ &::before {
content: "";
display: block;
width: calc(100% - 24px);
diff --git a/packages/frontend/src/ui/_common_/navbar.vue b/packages/frontend/src/ui/_common_/navbar.vue
index fa1f0eb8c77e..8307da0d4296 100644
--- a/packages/frontend/src/ui/_common_/navbar.vue
+++ b/packages/frontend/src/ui/_common_/navbar.vue
@@ -99,10 +99,11 @@ function openAccountMenu(ev: MouseEvent) {
}
function more(ev: MouseEvent) {
- os.popup(defineAsyncComponent(() => import('@/components/MkLaunchPad.vue')), {
+ const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkLaunchPad.vue')), {
src: ev.currentTarget ?? ev.target,
}, {
- }, 'closed');
+ closed: () => dispose(),
+ });
}
@@ -165,6 +166,15 @@ function more(ev: MouseEvent) {
display: block;
text-align: center;
width: 100%;
+
+ &:focus-visible {
+ outline: none;
+
+ > .instanceIcon {
+ outline: 2px solid var(--focus);
+ outline-offset: 2px;
+ }
+ }
}
.instanceIcon {
@@ -191,7 +201,7 @@ function more(ev: MouseEvent) {
font-weight: bold;
text-align: left;
- &:before {
+ &::before {
content: "";
display: block;
width: calc(100% - 38px);
@@ -206,8 +216,17 @@ function more(ev: MouseEvent) {
background: linear-gradient(90deg, var(--buttonGradateA), var(--buttonGradateB));
}
+ &:focus-visible {
+ outline: none;
+
+ &::before {
+ outline: 2px solid var(--fgOnAccent);
+ outline-offset: -4px;
+ }
+ }
+
&:hover, &.active {
- &:before {
+ &::before {
background: var(--accentLighten);
}
}
@@ -233,6 +252,14 @@ function more(ev: MouseEvent) {
text-align: left;
box-sizing: border-box;
overflow: clip;
+
+ &:focus-visible {
+ outline: none;
+
+ > .avatar {
+ box-shadow: 0 0 0 4px var(--focus);
+ }
+ }
}
.avatar {
@@ -281,10 +308,19 @@ function more(ev: MouseEvent) {
color: var(--navActive);
}
- &:hover, &.active {
+ &:focus-visible {
+ outline: none;
+
+ &::before {
+ outline: 2px solid var(--focus);
+ outline-offset: -2px;
+ }
+ }
+
+ &:hover, &.active, &:focus {
color: var(--accent);
- &:before {
+ &::before {
content: "";
display: block;
width: calc(100% - 34px);
@@ -351,6 +387,15 @@ function more(ev: MouseEvent) {
display: block;
text-align: center;
width: 100%;
+
+ &:focus-visible {
+ outline: none;
+
+ > .instanceIcon {
+ outline: 2px solid var(--focus);
+ outline-offset: 2px;
+ }
+ }
}
.instanceIcon {
@@ -375,7 +420,7 @@ function more(ev: MouseEvent) {
height: 52px;
text-align: center;
- &:before {
+ &::before {
content: "";
display: block;
position: absolute;
@@ -390,8 +435,17 @@ function more(ev: MouseEvent) {
background: linear-gradient(90deg, var(--buttonGradateA), var(--buttonGradateB));
}
+ &:focus-visible {
+ outline: none;
+
+ &::before {
+ outline: 2px solid var(--fgOnAccent);
+ outline-offset: -4px;
+ }
+ }
+
&:hover, &.active {
- &:before {
+ &::before {
background: var(--accentLighten);
}
}
@@ -412,6 +466,14 @@ function more(ev: MouseEvent) {
padding: 20px 0;
width: 100%;
overflow: clip;
+
+ &:focus-visible {
+ outline: none;
+
+ > .avatar {
+ box-shadow: 0 0 0 4px var(--focus);
+ }
+ }
}
.avatar {
@@ -441,11 +503,20 @@ function more(ev: MouseEvent) {
width: 100%;
text-align: center;
- &:hover, &.active {
+ &:focus-visible {
+ outline: none;
+
+ &::before {
+ outline: 2px solid var(--focus);
+ outline-offset: -2px;
+ }
+ }
+
+ &:hover, &.active, &:focus {
text-decoration: none;
color: var(--accent);
- &:before {
+ &::before {
content: "";
display: block;
height: 100%;
diff --git a/packages/frontend/src/ui/classic.header.vue b/packages/frontend/src/ui/classic.header.vue
index ee5176b55837..c03afd6cd62a 100644
--- a/packages/frontend/src/ui/classic.header.vue
+++ b/packages/frontend/src/ui/classic.header.vue
@@ -71,11 +71,12 @@ const otherNavItemIndicated = computed(() => {
});
function more(ev: MouseEvent) {
- os.popup(defineAsyncComponent(() => import('@/components/MkLaunchPad.vue')), {
+ const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkLaunchPad.vue')), {
src: ev.currentTarget ?? ev.target,
anchor: { x: 'center', y: 'bottom' },
}, {
- }, 'closed');
+ closed: () => dispose(),
+ });
}
function openAccountMenu(ev: MouseEvent) {
diff --git a/packages/frontend/src/ui/classic.sidebar.vue b/packages/frontend/src/ui/classic.sidebar.vue
index 19672ef87f12..d8574a915f0b 100644
--- a/packages/frontend/src/ui/classic.sidebar.vue
+++ b/packages/frontend/src/ui/classic.sidebar.vue
@@ -86,9 +86,11 @@ function calcViewState() {
}
function more(ev: MouseEvent) {
- os.popup(defineAsyncComponent(() => import('@/components/MkLaunchPad.vue')), {
+ const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkLaunchPad.vue')), {
src: ev.currentTarget ?? ev.target,
- }, {}, 'closed');
+ }, {
+ closed: () => dispose(),
+ });
}
function openAccountMenu(ev: MouseEvent) {
diff --git a/packages/frontend/src/ui/deck/column.vue b/packages/frontend/src/ui/deck/column.vue
index 07845bacbbf6..e96402d13bb8 100644
--- a/packages/frontend/src/ui/deck/column.vue
+++ b/packages/frontend/src/ui/deck/column.vue
@@ -271,7 +271,7 @@ function onDrop(ev) {
border-radius: 10px;
&.draghover {
- &:after {
+ &::after {
content: "";
display: block;
position: absolute;
@@ -285,7 +285,7 @@ function onDrop(ev) {
}
&.dragging {
- &:after {
+ &::after {
content: "";
display: block;
position: absolute;
diff --git a/packages/frontend/src/ui/deck/notifications-column.vue b/packages/frontend/src/ui/deck/notifications-column.vue
index 451cc58791d2..23b0fd4f7b0d 100644
--- a/packages/frontend/src/ui/deck/notifications-column.vue
+++ b/packages/frontend/src/ui/deck/notifications-column.vue
@@ -27,7 +27,7 @@ const props = defineProps<{
const notificationsComponent = shallowRef>();
function func() {
- os.popup(defineAsyncComponent(() => import('@/components/MkNotificationSelectWindow.vue')), {
+ const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkNotificationSelectWindow.vue')), {
excludeTypes: props.column.excludeTypes,
}, {
done: async (res) => {
@@ -36,7 +36,8 @@ function func() {
excludeTypes: excludeTypes,
});
},
- }, 'closed');
+ closed: () => dispose(),
+ });
}
const menu = [{
diff --git a/packages/frontend/src/ui/visitor.vue b/packages/frontend/src/ui/visitor.vue
index 80623083cfdb..c229946bd4b1 100644
--- a/packages/frontend/src/ui/visitor.vue
+++ b/packages/frontend/src/ui/visitor.vue
@@ -126,15 +126,19 @@ const keymap = computed(() => {
});
function signin() {
- os.popup(XSigninDialog, {
+ const { dispose } = os.popup(XSigninDialog, {
autoSet: true,
- }, {}, 'closed');
+ }, {
+ closed: () => dispose(),
+ });
}
function signup() {
- os.popup(XSignupDialog, {
+ const { dispose } = os.popup(XSignupDialog, {
autoSet: true,
- }, {}, 'closed');
+ }, {
+ closed: () => dispose(),
+ });
}
onMounted(() => {
diff --git a/packages/frontend/src/widgets/WidgetCalendar.vue b/packages/frontend/src/widgets/WidgetCalendar.vue
index c688e8a0b105..6ece33eff347 100644
--- a/packages/frontend/src/widgets/WidgetCalendar.vue
+++ b/packages/frontend/src/widgets/WidgetCalendar.vue
@@ -121,7 +121,7 @@ defineExpose({
.root {
padding: 16px 0;
- &:after {
+ &::after {
content: "";
display: block;
clear: both;
diff --git a/packages/frontend/src/widgets/WidgetInstanceInfo.vue b/packages/frontend/src/widgets/WidgetInstanceInfo.vue
index 25d824c8ae93..5d8beaf9a9b3 100644
--- a/packages/frontend/src/widgets/WidgetInstanceInfo.vue
+++ b/packages/frontend/src/widgets/WidgetInstanceInfo.vue
@@ -81,16 +81,19 @@ defineExpose({
.body {
text-overflow: ellipsis;
overflow: clip;
+ margin-left: -10px;
+ padding: 10px;
}
.name {
color: #fff;
- filter: drop-shadow(0 0 4px #000);
+ filter: drop-shadow(0 0 4px #000) drop-shadow(0 0 0.1px rgba(0, 0, 0, 0.5));
font-weight: bold;
}
.host {
color: #fff;
- filter: drop-shadow(0 0 4px #000);
+ filter: drop-shadow(0 0 4px #000) drop-shadow(0 0 0.1px rgba(0, 0, 0, 0.5));
+
}
diff --git a/packages/frontend/src/widgets/WidgetNotifications.vue b/packages/frontend/src/widgets/WidgetNotifications.vue
index 4b3265dab785..773c078b49e3 100644
--- a/packages/frontend/src/widgets/WidgetNotifications.vue
+++ b/packages/frontend/src/widgets/WidgetNotifications.vue
@@ -54,7 +54,7 @@ const { widgetProps, configure, save } = useWidgetPropsManager(name,
);
const configureNotification = () => {
- os.popup(defineAsyncComponent(() => import('@/components/MkNotificationSelectWindow.vue')), {
+ const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkNotificationSelectWindow.vue')), {
excludeTypes: widgetProps.excludeTypes,
}, {
done: async (res) => {
@@ -62,7 +62,8 @@ const configureNotification = () => {
widgetProps.excludeTypes = excludeTypes;
save();
},
- }, 'closed');
+ closed: () => dispose(),
+ });
};
defineExpose({
diff --git a/packages/frontend/src/widgets/WidgetProfile.vue b/packages/frontend/src/widgets/WidgetProfile.vue
index a5578d4de62a..ae39098305b3 100644
--- a/packages/frontend/src/widgets/WidgetProfile.vue
+++ b/packages/frontend/src/widgets/WidgetProfile.vue
@@ -82,16 +82,19 @@ defineExpose({
.body {
text-overflow: ellipsis;
overflow: clip;
+ margin-left: -10px;
+ padding: 10px;
}
.name {
color: #fff;
- filter: drop-shadow(0 0 4px #000);
+ filter: drop-shadow(0 0 4px #000) drop-shadow(0 0 0.1px rgba(0, 0, 0, 0.5));
font-weight: bold;
}
.username {
color: #fff;
- filter: drop-shadow(0 0 4px #000);
+ filter: drop-shadow(0 0 4px #000) drop-shadow(0 0 0.1px rgba(0, 0, 0, 0.5));
+ font-weight: normal;
}
diff --git a/packages/frontend/tsconfig.json b/packages/frontend/tsconfig.json
index 819629a9cf8a..fe4d20289492 100644
--- a/packages/frontend/tsconfig.json
+++ b/packages/frontend/tsconfig.json
@@ -37,13 +37,13 @@
],
"lib": [
"esnext",
- "dom"
+ "dom",
+ "dom.iterable"
],
"jsx": "preserve"
},
"compileOnSave": false,
"include": [
- ".eslintrc.js",
"./**/*.ts",
"./**/*.vue"
],
diff --git a/packages/frontend/vite.config.local-dev.ts b/packages/frontend/vite.config.local-dev.ts
index f9dff13b15cc..0a88e489c19d 100644
--- a/packages/frontend/vite.config.local-dev.ts
+++ b/packages/frontend/vite.config.local-dev.ts
@@ -1,6 +1,8 @@
import dns from 'dns';
import { readFile } from 'node:fs/promises';
+import type { IncomingMessage } from 'node:http';
import { defineConfig } from 'vite';
+import type { UserConfig } from 'vite';
import * as yaml from 'js-yaml';
import locales from '../../locales/index.js';
import { getConfig } from './vite.config.js';
@@ -14,7 +16,15 @@ const { port } = yaml.load(await readFile('../../.config/default.yml', 'utf-8'))
const httpUrl = `http://localhost:${port}/`;
const websocketUrl = `ws://localhost:${port}/`;
-const devConfig = {
+// activitypubリクエストはProxyを通し、それ以外はViteの開発サーバーを返す
+function varyHandler(req: IncomingMessage) {
+ if (req.headers.accept?.includes('application/activity+json')) {
+ return null;
+ }
+ return '/index.html';
+}
+
+const devConfig: UserConfig = {
// 基本の設定は vite.config.js から引き継ぐ
...defaultConfig,
root: 'src',
@@ -54,15 +64,11 @@ const devConfig = {
'/inbox': httpUrl,
'/notes': {
target: httpUrl,
- headers: {
- 'Accept': 'application/activity+json',
- },
+ bypass: varyHandler,
},
'/users': {
target: httpUrl,
- headers: {
- 'Accept': 'application/activity+json',
- },
+ bypass: varyHandler,
},
'/.well-known': {
target: httpUrl,
diff --git a/packages/frontend/vite.config.ts b/packages/frontend/vite.config.ts
index 82eb2af46410..6decbc0ef700 100644
--- a/packages/frontend/vite.config.ts
+++ b/packages/frontend/vite.config.ts
@@ -5,7 +5,7 @@ import { type UserConfig, defineConfig } from 'vite';
import locales from '../../locales/index.js';
import meta from '../../package.json';
-import packageInfo from './package.json' assert { type: 'json' };
+import packageInfo from './package.json' with { type: 'json' };
import pluginUnwindCssModuleClassName from './lib/rollup-plugin-unwind-css-module-class-name.js';
import pluginJson5 from './vite.json5.js';
diff --git a/packages/misskey-bubble-game/.eslintignore b/packages/misskey-bubble-game/.eslintignore
deleted file mode 100644
index 52ea8b3362e9..000000000000
--- a/packages/misskey-bubble-game/.eslintignore
+++ /dev/null
@@ -1,8 +0,0 @@
-node_modules
-/built
-/coverage
-/.eslintrc.js
-/jest.config.ts
-/test
-/test-d
-build.js
diff --git a/packages/misskey-bubble-game/.eslintrc.cjs b/packages/misskey-bubble-game/.eslintrc.cjs
deleted file mode 100644
index e2e31e9e331e..000000000000
--- a/packages/misskey-bubble-game/.eslintrc.cjs
+++ /dev/null
@@ -1,9 +0,0 @@
-module.exports = {
- parserOptions: {
- tsconfigRootDir: __dirname,
- project: ['./tsconfig.json'],
- },
- extends: [
- '../shared/.eslintrc.js',
- ],
-};
diff --git a/packages/misskey-bubble-game/build.js b/packages/misskey-bubble-game/build.js
index 0b79f4b9159b..e626c97a5967 100644
--- a/packages/misskey-bubble-game/build.js
+++ b/packages/misskey-bubble-game/build.js
@@ -95,7 +95,6 @@ async function watchSrc() {
process.on('SIGHUP', resolve);
process.on('SIGINT', resolve);
process.on('SIGTERM', resolve);
- process.on('SIGKILL', resolve);
process.on('uncaughtException', reject);
process.on('exit', resolve);
}).finally(async () => {
diff --git a/packages/misskey-bubble-game/eslint.config.js b/packages/misskey-bubble-game/eslint.config.js
new file mode 100644
index 000000000000..86c21a22a3a7
--- /dev/null
+++ b/packages/misskey-bubble-game/eslint.config.js
@@ -0,0 +1,27 @@
+import tsParser from '@typescript-eslint/parser';
+import sharedConfig from '../shared/eslint.config.js';
+
+export default [
+ ...sharedConfig,
+ {
+ ignores: [
+ '**/node_modules',
+ 'built',
+ 'coverage',
+ 'jest.config.ts',
+ 'test',
+ 'test-d',
+ ],
+ },
+ {
+ files: ['**/*.ts', '**/*.tsx'],
+ languageOptions: {
+ parserOptions: {
+ parser: tsParser,
+ project: ['./tsconfig.json'],
+ sourceType: 'module',
+ tsconfigRootDir: import.meta.dirname,
+ },
+ },
+ },
+];
diff --git a/packages/misskey-bubble-game/package.json b/packages/misskey-bubble-game/package.json
index a3aad147a984..528eb00b7460 100644
--- a/packages/misskey-bubble-game/package.json
+++ b/packages/misskey-bubble-game/package.json
@@ -17,18 +17,16 @@
"scripts": {
"build": "node ./build.js",
"watch": "nodemon -w package.json -e json --exec \"node ./build.js --watch\"",
- "eslint": "eslint . --ext .js,.jsx,.ts,.tsx",
+ "eslint": "eslint './**/*.{js,jsx,ts,tsx}'",
"typecheck": "tsc --noEmit",
"lint": "pnpm typecheck && pnpm eslint"
},
"devDependencies": {
- "@misskey-dev/eslint-plugin": "1.0.0",
"@types/matter-js": "0.19.6",
"@types/seedrandom": "3.0.8",
"@types/node": "20.11.5",
"@typescript-eslint/eslint-plugin": "7.1.0",
"@typescript-eslint/parser": "7.1.0",
- "eslint": "8.57.0",
"nodemon": "3.0.2",
"execa": "8.0.1",
"typescript": "5.3.3",
diff --git a/packages/misskey-js/.eslintignore b/packages/misskey-js/.eslintignore
deleted file mode 100644
index 52ea8b3362e9..000000000000
--- a/packages/misskey-js/.eslintignore
+++ /dev/null
@@ -1,8 +0,0 @@
-node_modules
-/built
-/coverage
-/.eslintrc.js
-/jest.config.ts
-/test
-/test-d
-build.js
diff --git a/packages/misskey-js/.eslintrc.cjs b/packages/misskey-js/.eslintrc.cjs
deleted file mode 100644
index e2e31e9e331e..000000000000
--- a/packages/misskey-js/.eslintrc.cjs
+++ /dev/null
@@ -1,9 +0,0 @@
-module.exports = {
- parserOptions: {
- tsconfigRootDir: __dirname,
- project: ['./tsconfig.json'],
- },
- extends: [
- '../shared/.eslintrc.js',
- ],
-};
diff --git a/packages/misskey-js/build.js b/packages/misskey-js/build.js
index 0b79f4b9159b..a80b71646f43 100644
--- a/packages/misskey-js/build.js
+++ b/packages/misskey-js/build.js
@@ -1,32 +1,32 @@
-import * as esbuild from "esbuild";
-import { build } from "esbuild";
-import { globSync } from "glob";
-import { execa } from "execa";
-import fs from "node:fs";
-import { fileURLToPath } from "node:url";
-import { dirname } from "node:path";
+import fs from 'node:fs';
+import { fileURLToPath } from 'node:url';
+import { dirname } from 'node:path';
+import * as esbuild from 'esbuild';
+import { build } from 'esbuild';
+import { globSync } from 'glob';
+import { execa } from 'execa';
const _filename = fileURLToPath(import.meta.url);
const _dirname = dirname(_filename);
const _package = JSON.parse(fs.readFileSync(_dirname + '/package.json', 'utf-8'));
-const entryPoints = globSync("./src/**/**.{ts,tsx}");
+const entryPoints = globSync('./src/**/**.{ts,tsx}');
/** @type {import('esbuild').BuildOptions} */
const options = {
entryPoints,
minify: process.env.NODE_ENV === 'production',
- outdir: "./built",
- target: "es2022",
- platform: "browser",
- format: "esm",
+ outdir: './built',
+ target: 'es2022',
+ platform: 'browser',
+ format: 'esm',
sourcemap: 'linked',
};
// built配下をすべて削除する
fs.rmSync('./built', { recursive: true, force: true });
-if (process.argv.map(arg => arg.toLowerCase()).includes("--watch")) {
+if (process.argv.map(arg => arg.toLowerCase()).includes('--watch')) {
await watchSrc();
} else {
await buildSrc();
@@ -36,7 +36,7 @@ async function buildSrc() {
console.log(`[${_package.name}] start building...`);
await build(options)
- .then(it => {
+ .then(() => {
console.log(`[${_package.name}] build succeeded.`);
})
.catch((err) => {
@@ -65,7 +65,7 @@ function buildDts() {
{
stdout: process.stdout,
stderr: process.stderr,
- }
+ },
);
}
@@ -86,7 +86,7 @@ async function watchSrc() {
},
}];
- console.log(`[${_package.name}] start watching...`)
+ console.log(`[${_package.name}] start watching...`);
const context = await esbuild.context({ ...options, plugins });
await context.watch();
@@ -95,7 +95,6 @@ async function watchSrc() {
process.on('SIGHUP', resolve);
process.on('SIGINT', resolve);
process.on('SIGTERM', resolve);
- process.on('SIGKILL', resolve);
process.on('uncaughtException', reject);
process.on('exit', resolve);
}).finally(async () => {
diff --git a/packages/misskey-js/eslint.config.js b/packages/misskey-js/eslint.config.js
new file mode 100644
index 000000000000..e34e7510b29e
--- /dev/null
+++ b/packages/misskey-js/eslint.config.js
@@ -0,0 +1,28 @@
+import tsParser from '@typescript-eslint/parser';
+import sharedConfig from '../shared/eslint.config.js';
+
+export default [
+ ...sharedConfig,
+ {
+ ignores: [
+ '**/node_modules',
+ 'built',
+ 'coverage',
+ 'jest.config.ts',
+ 'test',
+ 'test-d',
+ 'generator',
+ ],
+ },
+ {
+ files: ['**/*.ts', '**/*.tsx'],
+ languageOptions: {
+ parserOptions: {
+ parser: tsParser,
+ project: ['./tsconfig.json'],
+ sourceType: 'module',
+ tsconfigRootDir: import.meta.dirname,
+ },
+ },
+ },
+];
diff --git a/packages/misskey-js/etc/misskey-js.api.md b/packages/misskey-js/etc/misskey-js.api.md
index bea89f2a7c0a..d11d2a4f0617 100644
--- a/packages/misskey-js/etc/misskey-js.api.md
+++ b/packages/misskey-js/etc/misskey-js.api.md
@@ -1160,6 +1160,12 @@ export type Endpoints = Overwrite;
+ res: AdminRolesCreateResponse;
+ };
}>;
// @public (undocumented)
@@ -1185,6 +1191,7 @@ declare namespace entities {
SignupPendingResponse,
SigninRequest,
SigninResponse,
+ PartialRolePolicyOverride,
EmptyRequest,
EmptyResponse,
AdminMetaResponse,
@@ -1869,7 +1876,7 @@ type FetchExternalResourcesResponse = operations['fetch-external-resources']['re
// @public (undocumented)
type FetchLike = (input: string, init?: {
method?: string;
- body?: string;
+ body?: Blob | FormData | string;
credentials?: RequestCredentials;
cache?: RequestCache;
headers: {
@@ -2725,6 +2732,15 @@ type PagesUpdateRequest = operations['pages___update']['requestBody']['content']
// @public (undocumented)
function parse(acct: string): Acct;
+// Warning: (ae-forgotten-export) The symbol "Values" needs to be exported by the entry point index.d.ts
+//
+// @public (undocumented)
+type PartialRolePolicyOverride = Partial<{
+ [k in keyof RolePolicies]: Omit, 'value'> & {
+ value: RolePolicies[k];
+ };
+}>;
+
// @public (undocumented)
export const permissions: readonly ["read:account", "write:account", "read:blocks", "write:blocks", "read:drive", "write:drive", "read:favorites", "write:favorites", "read:following", "write:following", "read:messaging", "write:messaging", "read:mutes", "write:mutes", "write:notes", "read:notifications", "write:notifications", "read:reactions", "write:reactions", "write:votes", "read:pages", "write:pages", "write:page-likes", "read:page-likes", "read:user-groups", "write:user-groups", "read:channels", "write:channels", "read:gallery", "write:gallery", "read:gallery-likes", "write:gallery-likes", "read:flash", "write:flash", "read:flash-likes", "write:flash-likes", "read:admin:abuse-user-reports", "write:admin:delete-account", "write:admin:delete-all-files-of-a-user", "read:admin:index-stats", "read:admin:table-stats", "read:admin:user-ips", "read:admin:meta", "write:admin:reset-password", "write:admin:resolve-abuse-user-report", "write:admin:send-email", "read:admin:server-info", "read:admin:show-moderation-log", "read:admin:show-user", "write:admin:suspend-user", "write:admin:unset-user-avatar", "write:admin:unset-user-banner", "write:admin:unsuspend-user", "write:admin:meta", "write:admin:user-note", "write:admin:roles", "read:admin:roles", "write:admin:relays", "read:admin:relays", "write:admin:invite-codes", "read:admin:invite-codes", "write:admin:announcements", "read:admin:announcements", "write:admin:avatar-decorations", "read:admin:avatar-decorations", "write:admin:federation", "write:admin:account", "read:admin:account", "write:admin:emoji", "read:admin:emoji", "write:admin:queue", "read:admin:queue", "write:admin:promo", "write:admin:drive", "read:admin:drive", "write:admin:ad", "read:admin:ad", "write:invite-codes", "read:invite-codes", "write:clip-favorite", "read:clip-favorite", "read:federation", "write:report-abuse"];
@@ -3213,7 +3229,7 @@ type UsersUpdateMemoRequest = operations['users___update-memo']['requestBody']['
// Warnings were encountered during analysis:
//
-// src/entities.ts:25:2 - (ae-forgotten-export) The symbol "ModerationLogPayloads" needs to be exported by the entry point index.d.ts
+// src/entities.ts:34:2 - (ae-forgotten-export) The symbol "ModerationLogPayloads" needs to be exported by the entry point index.d.ts
// (No @packageDocumentation comment for this package)
diff --git a/packages/misskey-js/generator/.eslintrc.cjs b/packages/misskey-js/generator/.eslintrc.cjs
deleted file mode 100644
index 6a8b31da9cc6..000000000000
--- a/packages/misskey-js/generator/.eslintrc.cjs
+++ /dev/null
@@ -1,9 +0,0 @@
-module.exports = {
- parserOptions: {
- tsconfigRootDir: __dirname,
- project: ['./tsconfig.json'],
- },
- extends: [
- '../../shared/.eslintrc.js',
- ],
-};
diff --git a/packages/misskey-js/generator/eslint.config.js b/packages/misskey-js/generator/eslint.config.js
new file mode 100644
index 000000000000..4bf78c3b910d
--- /dev/null
+++ b/packages/misskey-js/generator/eslint.config.js
@@ -0,0 +1,17 @@
+import tsParser from '@typescript-eslint/parser';
+import sharedConfig from '../../shared/eslint.config.js';
+
+export default [
+ ...sharedConfig,
+ {
+ files: ['**/*.ts', '**/*.tsx'],
+ languageOptions: {
+ parserOptions: {
+ parser: tsParser,
+ project: ['./tsconfig.json'],
+ sourceType: 'module',
+ tsconfigRootDir: import.meta.dirname,
+ },
+ },
+ },
+];
diff --git a/packages/misskey-js/generator/package.json b/packages/misskey-js/generator/package.json
index a1c0f41cb285..4a02bcd8ff7c 100644
--- a/packages/misskey-js/generator/package.json
+++ b/packages/misskey-js/generator/package.json
@@ -4,15 +4,13 @@
"description": "Misskey TypeGenerator",
"type": "module",
"scripts": {
- "generate": "tsx src/generator.ts && eslint ./built/**/* --ext .ts --fix"
+ "generate": "tsx src/generator.ts && eslint ./built/**/*.ts --fix"
},
"devDependencies": {
- "@misskey-dev/eslint-plugin": "^1.0.0",
"@readme/openapi-parser": "2.5.0",
"@types/node": "20.9.1",
"@typescript-eslint/eslint-plugin": "6.11.0",
"@typescript-eslint/parser": "6.11.0",
- "eslint": "8.53.0",
"openapi-types": "12.1.3",
"openapi-typescript": "6.7.3",
"ts-case-convert": "2.0.2",
diff --git a/packages/misskey-js/generator/src/generator.ts b/packages/misskey-js/generator/src/generator.ts
index 78178d7c7ed4..4ae00a4522db 100644
--- a/packages/misskey-js/generator/src/generator.ts
+++ b/packages/misskey-js/generator/src/generator.ts
@@ -20,7 +20,14 @@ async function generateBaseTypes(
}
lines.push('');
- const generatedTypes = await openapiTS(openApiJsonPath, { exportType: true });
+ const generatedTypes = await openapiTS(openApiJsonPath, {
+ exportType: true,
+ transform(schemaObject) {
+ if ('format' in schemaObject && schemaObject.format === 'binary') {
+ return schemaObject.nullable ? 'Blob | null' : 'Blob';
+ }
+ },
+ });
lines.push(generatedTypes);
lines.push('');
@@ -56,6 +63,8 @@ async function generateEndpoints(
endpointOutputPath: string,
) {
const endpoints: Endpoint[] = [];
+ const endpointReqMediaTypes: EndpointReqMediaType[] = [];
+ const endpointReqMediaTypesSet = new Set();
// misskey-jsはPOST固定で送っているので、こちらも決め打ちする。別メソッドに対応することがあればこちらも直す必要あり
const paths = openApiDocs.paths ?? {};
@@ -78,13 +87,24 @@ async function generateEndpoints(
const supportMediaTypes = Object.keys(reqContent);
if (supportMediaTypes.length > 0) {
// いまのところ複数のメディアタイプをとるエンドポイントは無いので決め打ちする
- endpoint.request = new OperationTypeAlias(
+ const req = new OperationTypeAlias(
operationId,
path,
supportMediaTypes[0],
OperationsAliasType.REQUEST,
);
+ endpoint.request = req;
+
+ const reqType = new EndpointReqMediaType(path, req);
+ endpointReqMediaTypesSet.add(reqType.getMediaType());
+ endpointReqMediaTypes.push(reqType);
+ } else {
+ endpointReqMediaTypesSet.add('application/json');
+ endpointReqMediaTypes.push(new EndpointReqMediaType(path, undefined, 'application/json'));
}
+ } else {
+ endpointReqMediaTypesSet.add('application/json');
+ endpointReqMediaTypes.push(new EndpointReqMediaType(path, undefined, 'application/json'));
}
if (operation.responses && isResponseObject(operation.responses['200']) && operation.responses['200'].content) {
@@ -137,6 +157,19 @@ async function generateEndpoints(
endpointOutputLine.push('}');
endpointOutputLine.push('');
+ function generateEndpointReqMediaTypesType() {
+ return `Record `'${t}'`).join(' | ')}>`;
+ }
+
+ endpointOutputLine.push(`export const endpointReqTypes: ${generateEndpointReqMediaTypesType()} = {`);
+
+ endpointOutputLine.push(
+ ...endpointReqMediaTypes.map(it => '\t' + it.toLine()),
+ );
+
+ endpointOutputLine.push('};');
+ endpointOutputLine.push('');
+
await writeFile(endpointOutputPath, endpointOutputLine.join('\n'));
}
@@ -314,6 +347,26 @@ class Endpoint {
}
}
+class EndpointReqMediaType {
+ public readonly path: string;
+ public readonly mediaType: string;
+
+ constructor(path: string, request: OperationTypeAlias, mediaType?: undefined);
+ constructor(path: string, request: undefined, mediaType: string);
+ constructor(path: string, request: OperationTypeAlias | undefined, mediaType?: string) {
+ this.path = path;
+ this.mediaType = mediaType ?? request?.mediaType ?? 'application/json';
+ }
+
+ getMediaType(): string {
+ return this.mediaType;
+ }
+
+ toLine(): string {
+ return `'${this.path}': '${this.mediaType}',`;
+ }
+}
+
async function main() {
const generatePath = './built/autogen';
await mkdir(generatePath, { recursive: true });
diff --git a/packages/misskey-js/package.json b/packages/misskey-js/package.json
index 4ff1a57309a7..00342d3dbc6c 100644
--- a/packages/misskey-js/package.json
+++ b/packages/misskey-js/package.json
@@ -22,7 +22,7 @@
"tsd": "tsd",
"api": "pnpm api-extractor run --local --verbose",
"api-prod": "pnpm api-extractor run --verbose",
- "eslint": "eslint . --ext .js,.jsx,.ts,.tsx",
+ "eslint": "eslint './**/*.{js,jsx,ts,tsx}'",
"typecheck": "tsc --noEmit",
"lint": "pnpm typecheck && pnpm eslint",
"jest": "jest --coverage --detectOpenHandles",
@@ -35,25 +35,23 @@
"directory": "packages/misskey-js"
},
"devDependencies": {
- "@microsoft/api-extractor": "7.43.1",
- "@misskey-dev/eslint-plugin": "1.0.0",
+ "@microsoft/api-extractor": "7.47.0",
"@swc/jest": "0.2.36",
"@types/jest": "29.5.12",
- "@types/node": "20.12.7",
- "@typescript-eslint/eslint-plugin": "7.7.1",
- "@typescript-eslint/parser": "7.7.1",
- "eslint": "8.57.0",
+ "@types/node": "20.14.9",
+ "@typescript-eslint/eslint-plugin": "7.15.0",
+ "@typescript-eslint/parser": "7.15.0",
"jest": "29.7.0",
"jest-fetch-mock": "3.0.3",
"jest-websocket-mock": "2.5.0",
"mock-socket": "9.3.1",
"ncp": "2.0.0",
- "nodemon": "3.1.0",
- "execa": "8.0.1",
- "tsd": "0.30.7",
- "typescript": "5.4.5",
- "esbuild": "0.19.11",
- "glob": "10.3.12"
+ "nodemon": "3.1.4",
+ "execa": "9.2.0",
+ "tsd": "0.31.1",
+ "typescript": "5.5.3",
+ "esbuild": "0.22.0",
+ "glob": "10.4.2"
},
"files": [
"built"
diff --git a/packages/misskey-js/src/api.ts b/packages/misskey-js/src/api.ts
index 959a634a743f..76d055cbe4ed 100644
--- a/packages/misskey-js/src/api.ts
+++ b/packages/misskey-js/src/api.ts
@@ -1,7 +1,7 @@
import './autogen/apiClientJSDoc.js';
-import { SwitchCaseResponseType } from './api.types.js';
-import type { Endpoints } from './api.types.js';
+import { endpointReqTypes } from './autogen/endpoint.js';
+import type { SwitchCaseResponseType, Endpoints } from './api.types.js';
export type {
SwitchCaseResponseType,
@@ -23,7 +23,7 @@ export function isAPIError(reason: Record): reason is APIE
export type FetchLike = (input: string, init?: {
method?: string;
- body?: string;
+ body?: Blob | FormData | string;
credentials?: RequestCredentials;
cache?: RequestCache;
headers: { [key in string]: string }
@@ -49,20 +49,55 @@ export class APIClient {
this.fetch = opts.fetch ?? ((...args) => fetch(...args));
}
+ private assertIsRecord(obj: T): obj is T & Record {
+ return obj !== null && typeof obj === 'object' && !Array.isArray(obj);
+ }
+
public request(
endpoint: E,
params: P = {} as P,
credential?: string | null,
): Promise> {
return new Promise((resolve, reject) => {
- this.fetch(`${this.origin}/api/${endpoint}`, {
- method: 'POST',
- body: JSON.stringify({
+ let mediaType = 'application/json';
+ if (endpoint in endpointReqTypes) {
+ mediaType = endpointReqTypes[endpoint];
+ }
+ let payload: FormData | string = '{}';
+
+ if (mediaType === 'application/json') {
+ payload = JSON.stringify({
...params,
i: credential !== undefined ? credential : this.credential,
- }),
+ });
+ } else if (mediaType === 'multipart/form-data') {
+ payload = new FormData();
+ const i = credential !== undefined ? credential : this.credential;
+ if (i != null) {
+ payload.append('i', i);
+ }
+ if (this.assertIsRecord(params)) {
+ for (const key in params) {
+ const value = params[key];
+
+ if (value == null) continue;
+
+ if (value instanceof File || value instanceof Blob) {
+ payload.append(key, value);
+ } else if (typeof value === 'object') {
+ payload.append(key, JSON.stringify(value));
+ } else {
+ payload.append(key, value);
+ }
+ }
+ }
+ }
+
+ this.fetch(`${this.origin}/api/${endpoint}`, {
+ method: 'POST',
+ body: payload,
headers: {
- 'Content-Type': 'application/json',
+ 'Content-Type': endpointReqTypes[endpoint],
},
credentials: 'omit',
cache: 'no-cache',
diff --git a/packages/misskey-js/src/api.types.ts b/packages/misskey-js/src/api.types.ts
index af0bade5b3b4..8c403639b788 100644
--- a/packages/misskey-js/src/api.types.ts
+++ b/packages/misskey-js/src/api.types.ts
@@ -1,7 +1,8 @@
import { Endpoints as Gen } from './autogen/endpoint.js';
import { UserDetailed } from './autogen/models.js';
-import { UsersShowRequest } from './autogen/entities.js';
+import { AdminRolesCreateRequest, AdminRolesCreateResponse, UsersShowRequest } from './autogen/entities.js';
import {
+ PartialRolePolicyOverride,
SigninRequest,
SigninResponse,
SignupPendingRequest,
@@ -79,5 +80,9 @@ export type Endpoints = Overwrite<
req: SigninRequest;
res: SigninResponse;
},
+ 'admin/roles/create': {
+ req: Overwrite;
+ res: AdminRolesCreateResponse;
+ }
}
>
diff --git a/packages/misskey-js/src/autogen/endpoint.ts b/packages/misskey-js/src/autogen/endpoint.ts
index 20c8509d4c6f..be41951e4dbe 100644
--- a/packages/misskey-js/src/autogen/endpoint.ts
+++ b/packages/misskey-js/src/autogen/endpoint.ts
@@ -954,3 +954,385 @@ export type Endpoints = {
'reversi/surrender': { req: ReversiSurrenderRequest; res: EmptyResponse };
'reversi/verify': { req: ReversiVerifyRequest; res: ReversiVerifyResponse };
}
+
+export const endpointReqTypes: Record = {
+ 'admin/meta': 'application/json',
+ 'admin/abuse-user-reports': 'application/json',
+ 'admin/abuse-report/notification-recipient/list': 'application/json',
+ 'admin/abuse-report/notification-recipient/show': 'application/json',
+ 'admin/abuse-report/notification-recipient/create': 'application/json',
+ 'admin/abuse-report/notification-recipient/update': 'application/json',
+ 'admin/abuse-report/notification-recipient/delete': 'application/json',
+ 'admin/accounts/create': 'application/json',
+ 'admin/accounts/delete': 'application/json',
+ 'admin/accounts/find-by-email': 'application/json',
+ 'admin/ad/create': 'application/json',
+ 'admin/ad/delete': 'application/json',
+ 'admin/ad/list': 'application/json',
+ 'admin/ad/update': 'application/json',
+ 'admin/announcements/create': 'application/json',
+ 'admin/announcements/delete': 'application/json',
+ 'admin/announcements/list': 'application/json',
+ 'admin/announcements/update': 'application/json',
+ 'admin/avatar-decorations/create': 'application/json',
+ 'admin/avatar-decorations/delete': 'application/json',
+ 'admin/avatar-decorations/list': 'application/json',
+ 'admin/avatar-decorations/update': 'application/json',
+ 'admin/delete-all-files-of-a-user': 'application/json',
+ 'admin/unset-user-avatar': 'application/json',
+ 'admin/unset-user-banner': 'application/json',
+ 'admin/drive/clean-remote-files': 'application/json',
+ 'admin/drive/cleanup': 'application/json',
+ 'admin/drive/files': 'application/json',
+ 'admin/drive/show-file': 'application/json',
+ 'admin/emoji/add-aliases-bulk': 'application/json',
+ 'admin/emoji/add': 'application/json',
+ 'admin/emoji/copy': 'application/json',
+ 'admin/emoji/delete-bulk': 'application/json',
+ 'admin/emoji/delete': 'application/json',
+ 'admin/emoji/import-zip': 'application/json',
+ 'admin/emoji/list-remote': 'application/json',
+ 'admin/emoji/list': 'application/json',
+ 'admin/emoji/remove-aliases-bulk': 'application/json',
+ 'admin/emoji/set-aliases-bulk': 'application/json',
+ 'admin/emoji/set-category-bulk': 'application/json',
+ 'admin/emoji/set-license-bulk': 'application/json',
+ 'admin/emoji/update': 'application/json',
+ 'admin/federation/delete-all-files': 'application/json',
+ 'admin/federation/refresh-remote-instance-metadata': 'application/json',
+ 'admin/federation/remove-all-following': 'application/json',
+ 'admin/federation/update-instance': 'application/json',
+ 'admin/get-index-stats': 'application/json',
+ 'admin/get-table-stats': 'application/json',
+ 'admin/get-user-ips': 'application/json',
+ 'admin/invite/create': 'application/json',
+ 'admin/invite/list': 'application/json',
+ 'admin/promo/create': 'application/json',
+ 'admin/queue/clear': 'application/json',
+ 'admin/queue/deliver-delayed': 'application/json',
+ 'admin/queue/inbox-delayed': 'application/json',
+ 'admin/queue/promote': 'application/json',
+ 'admin/queue/stats': 'application/json',
+ 'admin/relays/add': 'application/json',
+ 'admin/relays/list': 'application/json',
+ 'admin/relays/remove': 'application/json',
+ 'admin/reset-password': 'application/json',
+ 'admin/resolve-abuse-user-report': 'application/json',
+ 'admin/send-email': 'application/json',
+ 'admin/server-info': 'application/json',
+ 'admin/show-moderation-logs': 'application/json',
+ 'admin/show-user': 'application/json',
+ 'admin/show-users': 'application/json',
+ 'admin/suspend-user': 'application/json',
+ 'admin/unsuspend-user': 'application/json',
+ 'admin/update-meta': 'application/json',
+ 'admin/delete-account': 'application/json',
+ 'admin/update-user-note': 'application/json',
+ 'admin/roles/create': 'application/json',
+ 'admin/roles/delete': 'application/json',
+ 'admin/roles/list': 'application/json',
+ 'admin/roles/show': 'application/json',
+ 'admin/roles/update': 'application/json',
+ 'admin/roles/assign': 'application/json',
+ 'admin/roles/unassign': 'application/json',
+ 'admin/roles/update-default-policies': 'application/json',
+ 'admin/roles/users': 'application/json',
+ 'admin/system-webhook/create': 'application/json',
+ 'admin/system-webhook/delete': 'application/json',
+ 'admin/system-webhook/list': 'application/json',
+ 'admin/system-webhook/show': 'application/json',
+ 'admin/system-webhook/update': 'application/json',
+ 'announcements': 'application/json',
+ 'announcements/show': 'application/json',
+ 'antennas/create': 'application/json',
+ 'antennas/delete': 'application/json',
+ 'antennas/list': 'application/json',
+ 'antennas/notes': 'application/json',
+ 'antennas/show': 'application/json',
+ 'antennas/update': 'application/json',
+ 'ap/get': 'application/json',
+ 'ap/show': 'application/json',
+ 'app/create': 'application/json',
+ 'app/show': 'application/json',
+ 'auth/accept': 'application/json',
+ 'auth/session/generate': 'application/json',
+ 'auth/session/show': 'application/json',
+ 'auth/session/userkey': 'application/json',
+ 'blocking/create': 'application/json',
+ 'blocking/delete': 'application/json',
+ 'blocking/list': 'application/json',
+ 'channels/create': 'application/json',
+ 'channels/featured': 'application/json',
+ 'channels/follow': 'application/json',
+ 'channels/followed': 'application/json',
+ 'channels/owned': 'application/json',
+ 'channels/show': 'application/json',
+ 'channels/timeline': 'application/json',
+ 'channels/unfollow': 'application/json',
+ 'channels/update': 'application/json',
+ 'channels/favorite': 'application/json',
+ 'channels/unfavorite': 'application/json',
+ 'channels/my-favorites': 'application/json',
+ 'channels/search': 'application/json',
+ 'charts/active-users': 'application/json',
+ 'charts/ap-request': 'application/json',
+ 'charts/drive': 'application/json',
+ 'charts/federation': 'application/json',
+ 'charts/instance': 'application/json',
+ 'charts/notes': 'application/json',
+ 'charts/user/drive': 'application/json',
+ 'charts/user/following': 'application/json',
+ 'charts/user/notes': 'application/json',
+ 'charts/user/pv': 'application/json',
+ 'charts/user/reactions': 'application/json',
+ 'charts/users': 'application/json',
+ 'clips/add-note': 'application/json',
+ 'clips/remove-note': 'application/json',
+ 'clips/create': 'application/json',
+ 'clips/delete': 'application/json',
+ 'clips/list': 'application/json',
+ 'clips/notes': 'application/json',
+ 'clips/show': 'application/json',
+ 'clips/update': 'application/json',
+ 'clips/favorite': 'application/json',
+ 'clips/unfavorite': 'application/json',
+ 'clips/my-favorites': 'application/json',
+ 'drive': 'application/json',
+ 'drive/files': 'application/json',
+ 'drive/files/attached-notes': 'application/json',
+ 'drive/files/check-existence': 'application/json',
+ 'drive/files/create': 'multipart/form-data',
+ 'drive/files/delete': 'application/json',
+ 'drive/files/find-by-hash': 'application/json',
+ 'drive/files/find': 'application/json',
+ 'drive/files/show': 'application/json',
+ 'drive/files/update': 'application/json',
+ 'drive/files/upload-from-url': 'application/json',
+ 'drive/folders': 'application/json',
+ 'drive/folders/create': 'application/json',
+ 'drive/folders/delete': 'application/json',
+ 'drive/folders/find': 'application/json',
+ 'drive/folders/show': 'application/json',
+ 'drive/folders/update': 'application/json',
+ 'drive/stream': 'application/json',
+ 'email-address/available': 'application/json',
+ 'endpoint': 'application/json',
+ 'endpoints': 'application/json',
+ 'export-custom-emojis': 'application/json',
+ 'federation/followers': 'application/json',
+ 'federation/following': 'application/json',
+ 'federation/instances': 'application/json',
+ 'federation/show-instance': 'application/json',
+ 'federation/update-remote-user': 'application/json',
+ 'federation/users': 'application/json',
+ 'federation/stats': 'application/json',
+ 'following/create': 'application/json',
+ 'following/delete': 'application/json',
+ 'following/update': 'application/json',
+ 'following/update-all': 'application/json',
+ 'following/invalidate': 'application/json',
+ 'following/requests/accept': 'application/json',
+ 'following/requests/cancel': 'application/json',
+ 'following/requests/list': 'application/json',
+ 'following/requests/reject': 'application/json',
+ 'gallery/featured': 'application/json',
+ 'gallery/popular': 'application/json',
+ 'gallery/posts': 'application/json',
+ 'gallery/posts/create': 'application/json',
+ 'gallery/posts/delete': 'application/json',
+ 'gallery/posts/like': 'application/json',
+ 'gallery/posts/show': 'application/json',
+ 'gallery/posts/unlike': 'application/json',
+ 'gallery/posts/update': 'application/json',
+ 'get-online-users-count': 'application/json',
+ 'get-avatar-decorations': 'application/json',
+ 'hashtags/list': 'application/json',
+ 'hashtags/search': 'application/json',
+ 'hashtags/show': 'application/json',
+ 'hashtags/trend': 'application/json',
+ 'hashtags/users': 'application/json',
+ 'i': 'application/json',
+ 'i/2fa/done': 'application/json',
+ 'i/2fa/key-done': 'application/json',
+ 'i/2fa/password-less': 'application/json',
+ 'i/2fa/register-key': 'application/json',
+ 'i/2fa/register': 'application/json',
+ 'i/2fa/update-key': 'application/json',
+ 'i/2fa/remove-key': 'application/json',
+ 'i/2fa/unregister': 'application/json',
+ 'i/apps': 'application/json',
+ 'i/authorized-apps': 'application/json',
+ 'i/claim-achievement': 'application/json',
+ 'i/change-password': 'application/json',
+ 'i/delete-account': 'application/json',
+ 'i/export-blocking': 'application/json',
+ 'i/export-following': 'application/json',
+ 'i/export-mute': 'application/json',
+ 'i/export-notes': 'application/json',
+ 'i/export-clips': 'application/json',
+ 'i/export-favorites': 'application/json',
+ 'i/export-user-lists': 'application/json',
+ 'i/export-antennas': 'application/json',
+ 'i/favorites': 'application/json',
+ 'i/gallery/likes': 'application/json',
+ 'i/gallery/posts': 'application/json',
+ 'i/import-blocking': 'application/json',
+ 'i/import-following': 'application/json',
+ 'i/import-muting': 'application/json',
+ 'i/import-user-lists': 'application/json',
+ 'i/import-antennas': 'application/json',
+ 'i/notifications': 'application/json',
+ 'i/notifications-grouped': 'application/json',
+ 'i/page-likes': 'application/json',
+ 'i/pages': 'application/json',
+ 'i/pin': 'application/json',
+ 'i/read-all-unread-notes': 'application/json',
+ 'i/read-announcement': 'application/json',
+ 'i/regenerate-token': 'application/json',
+ 'i/registry/get-all': 'application/json',
+ 'i/registry/get-detail': 'application/json',
+ 'i/registry/get': 'application/json',
+ 'i/registry/keys-with-type': 'application/json',
+ 'i/registry/keys': 'application/json',
+ 'i/registry/remove': 'application/json',
+ 'i/registry/scopes-with-domain': 'application/json',
+ 'i/registry/set': 'application/json',
+ 'i/revoke-token': 'application/json',
+ 'i/signin-history': 'application/json',
+ 'i/unpin': 'application/json',
+ 'i/update-email': 'application/json',
+ 'i/update': 'application/json',
+ 'i/move': 'application/json',
+ 'i/webhooks/create': 'application/json',
+ 'i/webhooks/list': 'application/json',
+ 'i/webhooks/show': 'application/json',
+ 'i/webhooks/update': 'application/json',
+ 'i/webhooks/delete': 'application/json',
+ 'invite/create': 'application/json',
+ 'invite/delete': 'application/json',
+ 'invite/list': 'application/json',
+ 'invite/limit': 'application/json',
+ 'meta': 'application/json',
+ 'emojis': 'application/json',
+ 'emoji': 'application/json',
+ 'miauth/gen-token': 'application/json',
+ 'mute/create': 'application/json',
+ 'mute/delete': 'application/json',
+ 'mute/list': 'application/json',
+ 'renote-mute/create': 'application/json',
+ 'renote-mute/delete': 'application/json',
+ 'renote-mute/list': 'application/json',
+ 'my/apps': 'application/json',
+ 'notes': 'application/json',
+ 'notes/children': 'application/json',
+ 'notes/clips': 'application/json',
+ 'notes/conversation': 'application/json',
+ 'notes/create': 'application/json',
+ 'notes/delete': 'application/json',
+ 'notes/favorites/create': 'application/json',
+ 'notes/favorites/delete': 'application/json',
+ 'notes/featured': 'application/json',
+ 'notes/global-timeline': 'application/json',
+ 'notes/hybrid-timeline': 'application/json',
+ 'notes/local-timeline': 'application/json',
+ 'notes/mentions': 'application/json',
+ 'notes/polls/recommendation': 'application/json',
+ 'notes/polls/vote': 'application/json',
+ 'notes/reactions': 'application/json',
+ 'notes/reactions/create': 'application/json',
+ 'notes/reactions/delete': 'application/json',
+ 'notes/renotes': 'application/json',
+ 'notes/replies': 'application/json',
+ 'notes/search-by-tag': 'application/json',
+ 'notes/search': 'application/json',
+ 'notes/show': 'application/json',
+ 'notes/state': 'application/json',
+ 'notes/thread-muting/create': 'application/json',
+ 'notes/thread-muting/delete': 'application/json',
+ 'notes/timeline': 'application/json',
+ 'notes/translate': 'application/json',
+ 'notes/unrenote': 'application/json',
+ 'notes/user-list-timeline': 'application/json',
+ 'notifications/create': 'application/json',
+ 'notifications/flush': 'application/json',
+ 'notifications/mark-all-as-read': 'application/json',
+ 'notifications/test-notification': 'application/json',
+ 'page-push': 'application/json',
+ 'pages/create': 'application/json',
+ 'pages/delete': 'application/json',
+ 'pages/featured': 'application/json',
+ 'pages/like': 'application/json',
+ 'pages/show': 'application/json',
+ 'pages/unlike': 'application/json',
+ 'pages/update': 'application/json',
+ 'flash/create': 'application/json',
+ 'flash/delete': 'application/json',
+ 'flash/featured': 'application/json',
+ 'flash/like': 'application/json',
+ 'flash/show': 'application/json',
+ 'flash/unlike': 'application/json',
+ 'flash/update': 'application/json',
+ 'flash/my': 'application/json',
+ 'flash/my-likes': 'application/json',
+ 'ping': 'application/json',
+ 'pinned-users': 'application/json',
+ 'promo/read': 'application/json',
+ 'roles/list': 'application/json',
+ 'roles/show': 'application/json',
+ 'roles/users': 'application/json',
+ 'roles/notes': 'application/json',
+ 'request-reset-password': 'application/json',
+ 'reset-db': 'application/json',
+ 'reset-password': 'application/json',
+ 'server-info': 'application/json',
+ 'stats': 'application/json',
+ 'sw/show-registration': 'application/json',
+ 'sw/update-registration': 'application/json',
+ 'sw/register': 'application/json',
+ 'sw/unregister': 'application/json',
+ 'test': 'application/json',
+ 'username/available': 'application/json',
+ 'users': 'application/json',
+ 'users/clips': 'application/json',
+ 'users/followers': 'application/json',
+ 'users/following': 'application/json',
+ 'users/gallery/posts': 'application/json',
+ 'users/get-frequently-replied-users': 'application/json',
+ 'users/featured-notes': 'application/json',
+ 'users/lists/create': 'application/json',
+ 'users/lists/delete': 'application/json',
+ 'users/lists/list': 'application/json',
+ 'users/lists/pull': 'application/json',
+ 'users/lists/push': 'application/json',
+ 'users/lists/show': 'application/json',
+ 'users/lists/favorite': 'application/json',
+ 'users/lists/unfavorite': 'application/json',
+ 'users/lists/update': 'application/json',
+ 'users/lists/create-from-public': 'application/json',
+ 'users/lists/update-membership': 'application/json',
+ 'users/lists/get-memberships': 'application/json',
+ 'users/notes': 'application/json',
+ 'users/pages': 'application/json',
+ 'users/flashs': 'application/json',
+ 'users/reactions': 'application/json',
+ 'users/recommendation': 'application/json',
+ 'users/relation': 'application/json',
+ 'users/report-abuse': 'application/json',
+ 'users/search-by-username-and-host': 'application/json',
+ 'users/search': 'application/json',
+ 'users/show': 'application/json',
+ 'users/achievements': 'application/json',
+ 'users/update-memo': 'application/json',
+ 'fetch-rss': 'application/json',
+ 'fetch-external-resources': 'application/json',
+ 'retention': 'application/json',
+ 'bubble-game/register': 'application/json',
+ 'bubble-game/ranking': 'application/json',
+ 'reversi/cancel-match': 'application/json',
+ 'reversi/games': 'application/json',
+ 'reversi/match': 'application/json',
+ 'reversi/invitations': 'application/json',
+ 'reversi/show-game': 'application/json',
+ 'reversi/surrender': 'application/json',
+ 'reversi/verify': 'application/json',
+};
diff --git a/packages/misskey-js/src/autogen/types.ts b/packages/misskey-js/src/autogen/types.ts
index bdcc1dfd778e..d3c857219b53 100644
--- a/packages/misskey-js/src/autogen/types.ts
+++ b/packages/misskey-js/src/autogen/types.ts
@@ -4299,7 +4299,7 @@ export type components = {
id: string;
/** Format: date-time */
createdAt: string;
- /** @example lenna.jpg */
+ /** @example 192.jpg */
name: string;
/** @example image/jpeg */
type: string;
@@ -4786,6 +4786,7 @@ export type components = {
canHideAds: boolean;
driveCapacityMb: number;
alwaysMarkNsfw: boolean;
+ canUpdateBioMedia: boolean;
pinLimit: number;
antennaLimit: number;
wordMuteLimit: number;
@@ -5881,15 +5882,15 @@ export type operations = {
'application/json': {
/** Format: misskey:id */
id: string;
- memo: string;
- url: string;
- imageUrl: string;
- place: string;
- priority: string;
- ratio: number;
- expiresAt: number;
- startsAt: number;
- dayOfWeek: number;
+ memo?: string;
+ url?: string;
+ imageUrl?: string;
+ place?: string;
+ priority?: string;
+ ratio?: number;
+ expiresAt?: number;
+ startsAt?: number;
+ dayOfWeek?: number;
};
};
};
@@ -6799,7 +6800,7 @@ export type operations = {
* @example 15eca7fba0480996e2245f5185bf39f2
*/
md5: string;
- /** @example lenna.jpg */
+ /** @example 192.jpg */
name: string;
/** @example image/jpeg */
type: string;
@@ -9744,21 +9745,21 @@ export type operations = {
'application/json': {
/** Format: misskey:id */
roleId: string;
- name: string;
- description: string;
- color: string | null;
- iconUrl: string | null;
+ name?: string;
+ description?: string;
+ color?: string | null;
+ iconUrl?: string | null;
/** @enum {string} */
- target: 'manual' | 'conditional';
- condFormula: Record;
- isPublic: boolean;
- isModerator: boolean;
- isAdministrator: boolean;
+ target?: 'manual' | 'conditional';
+ condFormula?: Record;
+ isPublic?: boolean;
+ isModerator?: boolean;
+ isAdministrator?: boolean;
isExplorable?: boolean;
- asBadge: boolean;
- canEditMembersByModerator: boolean;
- displayOrder: number;
- policies: Record;
+ asBadge?: boolean;
+ canEditMembersByModerator?: boolean;
+ displayOrder?: number;
+ policies?: Record;
};
};
};
@@ -13400,7 +13401,7 @@ export type operations = {
'application/json': {
/** Format: misskey:id */
clipId: string;
- name: string;
+ name?: string;
isPublic?: boolean;
description?: string | null;
};
@@ -13850,7 +13851,7 @@ export type operations = {
* Format: binary
* @description The file contents.
*/
- file: string;
+ file: Blob;
};
};
};
@@ -16247,9 +16248,9 @@ export type operations = {
'application/json': {
/** Format: misskey:id */
postId: string;
- title: string;
+ title?: string;
description?: string | null;
- fileIds: string[];
+ fileIds?: string[];
/** @default false */
isSensitive?: boolean;
};
@@ -20030,12 +20031,11 @@ export type operations = {
'application/json': {
/** Format: misskey:id */
webhookId: string;
- name: string;
- url: string;
- /** @default */
- secret?: string;
- on: ('mention' | 'unfollow' | 'follow' | 'followed' | 'note' | 'reply' | 'renote' | 'reaction')[];
- active: boolean;
+ name?: string;
+ url?: string;
+ secret?: string | null;
+ on?: ('mention' | 'unfollow' | 'follow' | 'followed' | 'note' | 'reply' | 'renote' | 'reaction')[];
+ active?: boolean;
};
};
};
@@ -23404,16 +23404,16 @@ export type operations = {
'application/json': {
/** Format: misskey:id */
pageId: string;
- title: string;
- name: string;
+ title?: string;
+ name?: string;
summary?: string | null;
- content: {
+ content?: {
[key: string]: unknown;
}[];
- variables: {
+ variables?: {
[key: string]: unknown;
}[];
- script: string;
+ script?: string;
/** Format: misskey:id */
eyeCatchingImageId?: string | null;
/** @enum {string} */
diff --git a/packages/misskey-js/src/entities.ts b/packages/misskey-js/src/entities.ts
index 7a84cb6a1a63..7331a55a1cac 100644
--- a/packages/misskey-js/src/entities.ts
+++ b/packages/misskey-js/src/entities.ts
@@ -1,5 +1,14 @@
import { ModerationLogPayloads } from './consts.js';
-import { Announcement, EmojiDetailed, MeDetailed, Page, User, UserDetailedNotMe } from './autogen/models.js';
+import {
+ Announcement,
+ EmojiDetailed,
+ MeDetailed,
+ Page,
+ Role,
+ RolePolicies,
+ User,
+ UserDetailedNotMe
+} from './autogen/models.js';
export * from './autogen/entities.js';
export * from './autogen/models.js';
@@ -236,3 +245,7 @@ export type SigninResponse = {
id: User['id'],
i: string,
};
+
+type Values> = T[keyof T];
+
+export type PartialRolePolicyOverride = Partial<{[k in keyof RolePolicies]: Omit, 'value'> & { value: RolePolicies[k] }}>;
diff --git a/packages/misskey-js/src/streaming.ts b/packages/misskey-js/src/streaming.ts
index 0f2685778205..83930e621c66 100644
--- a/packages/misskey-js/src/streaming.ts
+++ b/packages/misskey-js/src/streaming.ts
@@ -291,7 +291,9 @@ export abstract class Connection = any> extends
this.stream = stream;
this.channel = channel;
- this.name = name;
+ if (name !== undefined) {
+ this.name = name;
+ }
}
public send(type: T, body: Channel['receives'][T]): void {
diff --git a/packages/misskey-js/test/api.ts b/packages/misskey-js/test/api.ts
index fa31d23faab7..1a7574de25e7 100644
--- a/packages/misskey-js/test/api.ts
+++ b/packages/misskey-js/test/api.ts
@@ -5,13 +5,19 @@ enableFetchMocks();
function getFetchCall(call: any[]) {
const { body, method } = call[1];
- if (body != null && typeof body != 'string') {
+ const contentType = call[1].headers['Content-Type'];
+ if (
+ body == null ||
+ (contentType === 'application/json' && typeof body !== 'string') ||
+ (contentType === 'multipart/form-data' && !(body instanceof FormData))
+ ) {
throw new Error('invalid body');
}
return {
url: call[0],
method: method,
- body: JSON.parse(body as any)
+ contentType: contentType,
+ body: body instanceof FormData ? Object.fromEntries(body.entries()) : JSON.parse(body),
};
}
@@ -45,6 +51,7 @@ describe('API', () => {
expect(getFetchCall(fetchMock.mock.calls[0])).toEqual({
url: 'https://misskey.test/api/i',
method: 'POST',
+ contentType: 'application/json',
body: { i: 'TOKEN' }
});
});
@@ -78,10 +85,52 @@ describe('API', () => {
expect(getFetchCall(fetchMock.mock.calls[0])).toEqual({
url: 'https://misskey.test/api/notes/show',
method: 'POST',
+ contentType: 'application/json',
body: { i: 'TOKEN', noteId: 'aaaaa' }
});
});
+ test('multipart/form-data', async () => {
+ fetchMock.resetMocks();
+ fetchMock.mockResponse(async (req) => {
+ if (req.method == 'POST' && req.url == 'https://misskey.test/api/drive/files/create') {
+ if (req.headers.get('Content-Type')?.includes('multipart/form-data')) {
+ return JSON.stringify({ id: 'foo' });
+ } else {
+ return { status: 400 };
+ }
+ } else {
+ return { status: 404 };
+ }
+ });
+
+ const cli = new APIClient({
+ origin: 'https://misskey.test',
+ credential: 'TOKEN',
+ });
+
+ const testFile = new File([], 'foo.txt');
+
+ const res = await cli.request('drive/files/create', {
+ file: testFile,
+ name: null, // nullのパラメータは消える
+ });
+
+ expect(res).toEqual({
+ id: 'foo'
+ });
+
+ expect(getFetchCall(fetchMock.mock.calls[0])).toEqual({
+ url: 'https://misskey.test/api/drive/files/create',
+ method: 'POST',
+ contentType: 'multipart/form-data',
+ body: {
+ i: 'TOKEN',
+ file: testFile,
+ }
+ });
+ });
+
test('204 No Content で null が返る', async () => {
fetchMock.resetMocks();
fetchMock.mockResponse(async (req) => {
@@ -104,6 +153,7 @@ describe('API', () => {
expect(getFetchCall(fetchMock.mock.calls[0])).toEqual({
url: 'https://misskey.test/api/reset-password',
method: 'POST',
+ contentType: 'application/json',
body: { i: 'TOKEN', token: 'aaa', password: 'aaa' }
});
});
@@ -209,4 +259,42 @@ describe('API', () => {
expect(isAPIError(e)).toEqual(false);
}
});
+
+ test('admin/roles/create の型が合う', async() => {
+ fetchMock.resetMocks();
+ fetchMock.mockResponse(async () => {
+ return {
+ // 本来返すべき値は`Role`型だが、テストなのでお茶を濁す
+ status: 200,
+ body: '{}'
+ };
+ });
+
+ const cli = new APIClient({
+ origin: 'https://misskey.test',
+ credential: 'TOKEN',
+ });
+ await cli.request('admin/roles/create', {
+ name: 'aaa',
+ asBadge: false,
+ canEditMembersByModerator: false,
+ color: '#123456',
+ condFormula: {},
+ description: '',
+ displayOrder: 0,
+ iconUrl: '',
+ isAdministrator: false,
+ isExplorable: false,
+ isModerator: false,
+ isPublic: false,
+ policies: {
+ ltlAvailable: {
+ value: true,
+ priority: 0,
+ useDefault: false,
+ },
+ },
+ target: 'manual',
+ });
+ })
});
diff --git a/packages/misskey-js/tsconfig.json b/packages/misskey-js/tsconfig.json
index 6e34e332e000..f7bbc4730454 100644
--- a/packages/misskey-js/tsconfig.json
+++ b/packages/misskey-js/tsconfig.json
@@ -15,6 +15,7 @@
"experimentalDecorators": true,
"noImplicitReturns": true,
"esModuleInterop": true,
+ "exactOptionalPropertyTypes": true,
"typeRoots": [
"./node_modules/@types"
],
diff --git a/packages/misskey-reversi/.eslintignore b/packages/misskey-reversi/.eslintignore
deleted file mode 100644
index 52ea8b3362e9..000000000000
--- a/packages/misskey-reversi/.eslintignore
+++ /dev/null
@@ -1,8 +0,0 @@
-node_modules
-/built
-/coverage
-/.eslintrc.js
-/jest.config.ts
-/test
-/test-d
-build.js
diff --git a/packages/misskey-reversi/.eslintrc.cjs b/packages/misskey-reversi/.eslintrc.cjs
deleted file mode 100644
index db37a0109871..000000000000
--- a/packages/misskey-reversi/.eslintrc.cjs
+++ /dev/null
@@ -1,10 +0,0 @@
-module.exports = {
- root: true,
- parserOptions: {
- tsconfigRootDir: __dirname,
- project: ['./tsconfig.json'],
- },
- extends: [
- '../shared/.eslintrc.js',
- ],
-};
diff --git a/packages/misskey-reversi/build.js b/packages/misskey-reversi/build.js
index 0b79f4b9159b..e626c97a5967 100644
--- a/packages/misskey-reversi/build.js
+++ b/packages/misskey-reversi/build.js
@@ -95,7 +95,6 @@ async function watchSrc() {
process.on('SIGHUP', resolve);
process.on('SIGINT', resolve);
process.on('SIGTERM', resolve);
- process.on('SIGKILL', resolve);
process.on('uncaughtException', reject);
process.on('exit', resolve);
}).finally(async () => {
diff --git a/packages/misskey-reversi/eslint.config.js b/packages/misskey-reversi/eslint.config.js
new file mode 100644
index 000000000000..3f81df714508
--- /dev/null
+++ b/packages/misskey-reversi/eslint.config.js
@@ -0,0 +1,23 @@
+import tsParser from '@typescript-eslint/parser';
+import sharedConfig from '../shared/eslint.config.js';
+
+export default [
+ ...sharedConfig,
+ {
+ ignores: [
+ '**/node_modules',
+ 'built',
+ ],
+ },
+ {
+ files: ['**/*.ts', '**/*.tsx'],
+ languageOptions: {
+ parserOptions: {
+ parser: tsParser,
+ project: ['./tsconfig.json'],
+ sourceType: 'module',
+ tsconfigRootDir: import.meta.dirname,
+ },
+ },
+ },
+];
diff --git a/packages/misskey-reversi/package.json b/packages/misskey-reversi/package.json
index 45a61208610d..c6db6e6221ae 100644
--- a/packages/misskey-reversi/package.json
+++ b/packages/misskey-reversi/package.json
@@ -17,16 +17,14 @@
"scripts": {
"build": "node ./build.js",
"watch": "nodemon -w package.json -e json --exec \"node ./build.js --watch\"",
- "eslint": "eslint . --ext .js,.jsx,.ts,.tsx",
+ "eslint": "eslint './**/*.{js,jsx,ts,tsx}'",
"typecheck": "tsc --noEmit",
"lint": "pnpm typecheck && pnpm eslint"
},
"devDependencies": {
- "@misskey-dev/eslint-plugin": "1.0.0",
"@types/node": "20.11.5",
"@typescript-eslint/eslint-plugin": "7.1.0",
"@typescript-eslint/parser": "7.1.0",
- "eslint": "8.57.0",
"execa": "8.0.1",
"nodemon": "3.0.2",
"typescript": "5.3.3",
diff --git a/packages/shared/.eslintrc.js b/packages/shared/.eslintrc.js
deleted file mode 100644
index 58247877ae27..000000000000
--- a/packages/shared/.eslintrc.js
+++ /dev/null
@@ -1,7 +0,0 @@
-module.exports = {
- root: true,
- ignorePatterns: ['**/.eslintrc.cjs'],
- extends: [
- 'plugin:@misskey-dev/recommended',
- ],
-};
diff --git a/packages/shared/eslint.config.js b/packages/shared/eslint.config.js
new file mode 100644
index 000000000000..e9d27c4a7288
--- /dev/null
+++ b/packages/shared/eslint.config.js
@@ -0,0 +1,28 @@
+import globals from 'globals';
+import pluginMisskey from '@misskey-dev/eslint-plugin';
+
+export default [
+ ...pluginMisskey.configs['recommended'],
+ {
+ files: ['**/*.cjs'],
+ languageOptions: {
+ parserOptions: {
+ sourceType: 'commonjs',
+ },
+ },
+ },
+ {
+ files: ['**/*.js', '**/*.jsx'],
+ languageOptions: {
+ parserOptions: {
+ sourceType: 'module',
+ },
+ },
+ },
+ {
+ files: ['build.js'],
+ languageOptions: {
+ globals: globals.node,
+ },
+ },
+];
diff --git a/packages/shared/package.json b/packages/shared/package.json
new file mode 100644
index 000000000000..bedb411a9124
--- /dev/null
+++ b/packages/shared/package.json
@@ -0,0 +1,3 @@
+{
+ "type": "module"
+}
diff --git a/packages/sw/.eslintrc.cjs b/packages/sw/.eslintrc.cjs
deleted file mode 100644
index b1fd6b5edc80..000000000000
--- a/packages/sw/.eslintrc.cjs
+++ /dev/null
@@ -1,20 +0,0 @@
-module.exports = {
- root: true,
- env: {
- node: false,
- },
- parserOptions: {
- parser: '@typescript-eslint/parser',
- tsconfigRootDir: __dirname,
- project: ['./tsconfig.json'],
- },
- extends: ['../shared/.eslintrc.js'],
- globals: {
- require: false,
- _DEV_: false,
- _LANGS_: false,
- _VERSION_: false,
- _ENV_: false,
- _PERF_PREFIX_: false,
- },
-};
diff --git a/packages/sw/build.js b/packages/sw/build.js
index eb9a944f4765..9522d061e020 100644
--- a/packages/sw/build.js
+++ b/packages/sw/build.js
@@ -8,7 +8,7 @@
import { fileURLToPath } from 'node:url';
import * as esbuild from 'esbuild';
import locales from '../../locales/index.js';
-import meta from '../../package.json' assert { type: "json" };
+import meta from '../../package.json' with { type: "json" };
const watch = process.argv[2]?.includes('watch');
const __dirname = fileURLToPath(new URL('.', import.meta.url))
diff --git a/packages/sw/eslint.config.js b/packages/sw/eslint.config.js
new file mode 100644
index 000000000000..c62a2eadc6d5
--- /dev/null
+++ b/packages/sw/eslint.config.js
@@ -0,0 +1,32 @@
+import globals from 'globals';
+import tsParser from '@typescript-eslint/parser';
+import sharedConfig from '../shared/eslint.config.js';
+
+export default [
+ ...sharedConfig,
+ {
+ ignores: ['build.js'],
+ languageOptions: {
+ globals: {
+ ...Object.fromEntries(Object.entries(globals.node).map(([key]) => [key, 'off'])),
+ require: false,
+ _DEV_: false,
+ _LANGS_: false,
+ _VERSION_: false,
+ _ENV_: false,
+ _PERF_PREFIX_: false,
+ },
+ },
+ },
+ {
+ files: ['**/*.ts', '**/*.tsx'],
+ languageOptions: {
+ parserOptions: {
+ parser: tsParser,
+ project: ['./tsconfig.json'],
+ sourceType: 'module',
+ tsconfigRootDir: import.meta.dirname,
+ },
+ },
+ },
+];
diff --git a/packages/sw/package.json b/packages/sw/package.json
index cb59a7023862..bcd642ffc44b 100644
--- a/packages/sw/package.json
+++ b/packages/sw/package.json
@@ -9,18 +9,16 @@
"lint": "pnpm typecheck && pnpm eslint"
},
"dependencies": {
- "esbuild": "0.20.2",
+ "esbuild": "0.22.0",
"idb-keyval": "6.2.1",
"misskey-js": "workspace:*"
},
"devDependencies": {
- "@misskey-dev/eslint-plugin": "1.0.0",
- "@typescript-eslint/parser": "7.7.1",
+ "@typescript-eslint/parser": "7.15.0",
"@typescript/lib-webworker": "npm:@types/serviceworker@0.0.67",
- "eslint": "8.57.0",
"eslint-plugin-import": "2.29.1",
- "nodemon": "3.1.0",
- "typescript": "5.4.5"
+ "nodemon": "3.1.4",
+ "typescript": "5.5.3"
},
"type": "module"
}
diff --git a/packages/sw/tsconfig.json b/packages/sw/tsconfig.json
index f3f354301387..50d4aae19d3e 100644
--- a/packages/sw/tsconfig.json
+++ b/packages/sw/tsconfig.json
@@ -2,7 +2,6 @@
"compilerOptions": {
"allowJs": true,
"noEmitOnError": false,
- "noImplicitAny": false,
"noImplicitReturns": true,
"noUnusedParameters": false,
"noUnusedLocals": true,
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 159b97656ab4..6e3ddfc5d4c5 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -16,8 +16,8 @@ importers:
specifier: 6.1.2
version: 6.1.2(postcss@8.4.38)
esbuild:
- specifier: 0.20.2
- version: 0.20.2
+ specifier: 0.22.0
+ version: 0.22.0
execa:
specifier: 8.0.1
version: 8.0.1
@@ -40,58 +40,64 @@ importers:
specifier: 6.2.1
version: 6.2.1
terser:
- specifier: 5.30.3
- version: 5.30.3
+ specifier: 5.31.1
+ version: 5.31.1
typescript:
- specifier: 5.4.5
- version: 5.4.5
+ specifier: 5.5.3
+ version: 5.5.3
optionalDependencies:
'@tensorflow/tfjs-core':
specifier: 4.4.0
version: 4.4.0(encoding@0.1.13)
devDependencies:
+ '@misskey-dev/eslint-plugin':
+ specifier: 2.0.2
+ version: 2.0.2(@eslint/compat@1.1.0)(@typescript-eslint/eslint-plugin@7.15.0(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3))(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0))(eslint@9.6.0)(globals@15.7.0)
'@types/node':
- specifier: 20.12.7
- version: 20.12.7
+ specifier: 20.14.9
+ version: 20.14.9
'@typescript-eslint/eslint-plugin':
- specifier: 7.7.1
- version: 7.7.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)
+ specifier: 7.15.0
+ version: 7.15.0(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3)
'@typescript-eslint/parser':
- specifier: 7.7.1
- version: 7.7.1(eslint@8.57.0)(typescript@5.4.5)
+ specifier: 7.15.0
+ version: 7.15.0(eslint@9.6.0)(typescript@5.5.3)
cross-env:
specifier: 7.0.3
version: 7.0.3
cypress:
- specifier: 13.7.3
- version: 13.7.3
+ specifier: 13.13.0
+ version: 13.13.0
eslint:
- specifier: 8.57.0
- version: 8.57.0
+ specifier: 9.6.0
+ version: 9.6.0
+ globals:
+ specifier: 15.7.0
+ version: 15.7.0
ncp:
specifier: 2.0.0
version: 2.0.0
start-server-and-test:
- specifier: 2.0.3
- version: 2.0.3
+ specifier: 2.0.4
+ version: 2.0.4
packages/backend:
dependencies:
'@aws-sdk/client-s3':
- specifier: 3.412.0
- version: 3.412.0
+ specifier: 3.600.0
+ version: 3.600.0
'@aws-sdk/lib-storage':
- specifier: 3.412.0
- version: 3.412.0(@aws-sdk/client-s3@3.412.0)
+ specifier: 3.600.0
+ version: 3.600.0(@aws-sdk/client-s3@3.600.0)
'@bull-board/api':
- specifier: 5.17.0
- version: 5.17.0(@bull-board/ui@5.17.0)
+ specifier: 5.20.5
+ version: 5.20.5(@bull-board/ui@5.20.5)
'@bull-board/fastify':
- specifier: 5.17.0
- version: 5.17.0
+ specifier: 5.20.5
+ version: 5.20.5
'@bull-board/ui':
- specifier: 5.17.0
- version: 5.17.0
+ specifier: 5.20.5
+ version: 5.20.5
'@discordapp/twemoji':
specifier: 15.0.3
version: 15.0.3
@@ -111,11 +117,11 @@ importers:
specifier: 9.5.0
version: 9.5.0(bufferutil@4.0.7)(utf-8-validate@6.0.3)
'@fastify/multipart':
- specifier: 8.2.0
- version: 8.2.0
+ specifier: 8.3.0
+ version: 8.3.0
'@fastify/static':
- specifier: 7.0.3
- version: 7.0.3
+ specifier: 7.0.4
+ version: 7.0.4
'@fastify/view':
specifier: 9.1.0
version: 9.1.0
@@ -126,26 +132,26 @@ importers:
specifier: 5.1.0
version: 5.1.0
'@napi-rs/canvas':
- specifier: ^0.1.52
- version: 0.1.52
+ specifier: ^0.1.53
+ version: 0.1.53
'@nestjs/common':
- specifier: 10.3.8
- version: 10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1)
+ specifier: 10.3.10
+ version: 10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1)
'@nestjs/core':
- specifier: 10.3.8
- version: 10.3.8(@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1)
+ specifier: 10.3.10
+ version: 10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.10)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1)
'@nestjs/testing':
- specifier: 10.3.8
- version: 10.3.8(@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8(@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8(@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8))
+ specifier: 10.3.10
+ version: 10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.10)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.10))
'@peertube/http-signature':
specifier: 1.7.0
version: 1.7.0
'@sentry/node':
- specifier: ^8.5.0
- version: 8.5.0
+ specifier: 8.13.0
+ version: 8.13.0
'@sentry/profiling-node':
- specifier: ^8.5.0
- version: 8.5.0
+ specifier: 8.13.0
+ version: 8.13.0
'@simplewebauthn/server':
specifier: 10.0.0
version: 10.0.0(encoding@0.1.13)
@@ -157,10 +163,10 @@ importers:
version: 2.5.0
'@swc/cli':
specifier: 0.3.12
- version: 0.3.12(@swc/core@1.4.17)(chokidar@3.5.3)
+ version: 0.3.12(@swc/core@1.6.6)(chokidar@3.5.3)
'@swc/core':
- specifier: 1.4.17
- version: 1.4.17
+ specifier: 1.6.6
+ version: 1.6.6
'@twemoji/parser':
specifier: 15.1.1
version: 15.1.1
@@ -168,8 +174,8 @@ importers:
specifier: 1.3.8
version: 1.3.8
ajv:
- specifier: 8.13.0
- version: 8.13.0
+ specifier: 8.16.0
+ version: 8.16.0
archiver:
specifier: 7.0.1
version: 7.0.1
@@ -186,8 +192,8 @@ importers:
specifier: 1.20.2
version: 1.20.2
bullmq:
- specifier: 5.7.8
- version: 5.7.8
+ specifier: 5.8.3
+ version: 5.8.3
cacheable-lookup:
specifier: 7.0.0
version: 7.0.0
@@ -219,8 +225,8 @@ importers:
specifier: 0.1.21
version: 0.1.21
fastify:
- specifier: 4.26.2
- version: 4.26.2
+ specifier: 4.28.1
+ version: 4.28.1
fastify-raw-body:
specifier: 4.3.0
version: 4.3.0
@@ -231,14 +237,14 @@ importers:
specifier: 19.0.0
version: 19.0.0
fluent-ffmpeg:
- specifier: 2.1.2
- version: 2.1.2
+ specifier: 2.1.3
+ version: 2.1.3
form-data:
specifier: 4.0.0
version: 4.0.0
got:
- specifier: 14.2.1
- version: 14.2.1
+ specifier: 14.4.1
+ version: 14.4.1
happy-dom:
specifier: 10.0.3
version: 10.0.3
@@ -255,20 +261,20 @@ importers:
specifier: 5.4.1
version: 5.4.1
ip-cidr:
- specifier: 3.1.0
- version: 3.1.0
+ specifier: 4.0.1
+ version: 4.0.1
ipaddr.js:
specifier: 2.2.0
version: 2.2.0
is-svg:
- specifier: 5.0.0
- version: 5.0.0
+ specifier: 5.0.1
+ version: 5.0.1
js-yaml:
specifier: 4.1.0
version: 4.1.0
jsdom:
- specifier: 24.0.0
- version: 24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3)
+ specifier: 24.1.0
+ version: 24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3)
json5:
specifier: 2.2.3
version: 2.2.3
@@ -279,8 +285,8 @@ importers:
specifier: 11.1.0
version: 11.1.0
meilisearch:
- specifier: 0.38.0
- version: 0.38.0(encoding@0.1.13)
+ specifier: 0.41.0
+ version: 0.41.0(encoding@0.1.13)
mfm-js:
specifier: 0.24.0
version: 0.24.0
@@ -309,8 +315,8 @@ importers:
specifier: 3.3.2
version: 3.3.2
nodemailer:
- specifier: 6.9.13
- version: 6.9.13
+ specifier: 6.9.14
+ version: 6.9.14
nsfwjs:
specifier: 2.4.2
version: 2.4.2(@tensorflow/tfjs@4.4.0(encoding@0.1.13)(seedrandom@3.0.5))
@@ -327,14 +333,14 @@ importers:
specifier: 0.0.14
version: 0.0.14
otpauth:
- specifier: 9.2.3
- version: 9.2.3
+ specifier: 9.3.1
+ version: 9.3.1
parse5:
specifier: 7.1.2
version: 7.1.2
pg:
- specifier: 8.11.5
- version: 8.11.5
+ specifier: 8.12.0
+ version: 8.12.0
pkce-challenge:
specifier: 4.1.0
version: 4.1.0
@@ -345,8 +351,8 @@ importers:
specifier: 2.7.0
version: 2.7.0
pug:
- specifier: 3.0.2
- version: 3.0.2
+ specifier: 3.0.3
+ version: 3.0.3
punycode:
specifier: 2.3.1
version: 2.3.1
@@ -360,8 +366,8 @@ importers:
specifier: 3.4.1
version: 3.4.1
re2:
- specifier: 1.20.10
- version: 1.20.10
+ specifier: 1.21.3
+ version: 1.21.3
redis-lock:
specifier: 0.1.4
version: 0.1.4
@@ -384,8 +390,8 @@ importers:
specifier: 2.7.0
version: 2.7.0
sharp:
- specifier: 0.33.3
- version: 0.33.3
+ specifier: 0.33.4
+ version: 0.33.4
slacc:
specifier: 0.0.10
version: 0.0.10
@@ -396,8 +402,8 @@ importers:
specifier: 2.1.0
version: 2.1.0
systeminformation:
- specifier: 5.22.7
- version: 5.22.7
+ specifier: 5.22.11
+ version: 5.22.11
tinycolor2:
specifier: 1.6.0
version: 1.6.0
@@ -405,17 +411,17 @@ importers:
specifier: 0.2.3
version: 0.2.3
tsc-alias:
- specifier: 1.8.8
- version: 1.8.8
+ specifier: 1.8.10
+ version: 1.8.10
tsconfig-paths:
specifier: 4.2.0
version: 4.2.0
typeorm:
specifier: 0.3.20
- version: 0.3.20(ioredis@5.4.1)(pg@8.11.5)
+ version: 0.3.20(ioredis@5.4.1)(pg@8.12.0)
typescript:
- specifier: 5.4.5
- version: 5.4.5
+ specifier: 5.5.3
+ version: 5.5.3
ulid:
specifier: 2.3.0
version: 2.3.0
@@ -426,8 +432,8 @@ importers:
specifier: 3.6.7
version: 3.6.7
ws:
- specifier: 8.17.0
- version: 8.17.0(bufferutil@4.0.7)(utf-8-validate@6.0.3)
+ specifier: 8.17.1
+ version: 8.17.1(bufferutil@4.0.7)(utf-8-validate@6.0.3)
xev:
specifier: 3.0.2
version: 3.0.2
@@ -523,18 +529,15 @@ importers:
'@jest/globals':
specifier: 29.7.0
version: 29.7.0
- '@misskey-dev/eslint-plugin':
- specifier: 1.0.0
- version: 1.0.0(@typescript-eslint/eslint-plugin@7.7.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0))(eslint@8.57.0)
'@nestjs/platform-express':
- specifier: 10.3.8
- version: 10.3.8(@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8)
+ specifier: 10.3.10
+ version: 10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.10)
'@simplewebauthn/types':
specifier: 10.0.0
version: 10.0.0
'@swc/jest':
specifier: 0.2.36
- version: 0.2.36(@swc/core@1.4.17)
+ version: 0.2.36(@swc/core@1.6.6)
'@types/accepts':
specifier: 1.3.7
version: 1.3.7
@@ -557,11 +560,11 @@ importers:
specifier: 2.1.24
version: 2.1.24
'@types/htmlescape':
- specifier: ^1.1.3
+ specifier: 1.1.3
version: 1.1.3
'@types/http-link-header':
- specifier: 1.0.5
- version: 1.0.5
+ specifier: 1.0.7
+ version: 1.0.7
'@types/jest':
specifier: 29.5.12
version: 29.5.12
@@ -569,11 +572,11 @@ importers:
specifier: 4.0.9
version: 4.0.9
'@types/jsdom':
- specifier: 21.1.6
- version: 21.1.6
+ specifier: 21.1.7
+ version: 21.1.7
'@types/jsonld':
- specifier: 1.5.13
- version: 1.5.13
+ specifier: 1.5.14
+ version: 1.5.14
'@types/jsrsasign':
specifier: 10.5.14
version: 10.5.14
@@ -584,17 +587,14 @@ importers:
specifier: 0.7.34
version: 0.7.34
'@types/node':
- specifier: 20.12.7
- version: 20.12.7
- '@types/node-fetch':
- specifier: 3.0.3
- version: 3.0.3
+ specifier: 20.14.9
+ version: 20.14.9
'@types/nodemailer':
specifier: 6.4.15
version: 6.4.15
'@types/oauth':
- specifier: 0.9.4
- version: 0.9.4
+ specifier: 0.9.5
+ version: 0.9.5
'@types/oauth2orize':
specifier: 1.11.5
version: 1.11.5
@@ -602,8 +602,8 @@ importers:
specifier: 0.1.2
version: 0.1.2
'@types/pg':
- specifier: 8.11.5
- version: 8.11.5
+ specifier: 8.11.6
+ version: 8.11.6
'@types/pug':
specifier: 2.0.10
version: 2.0.10
@@ -650,44 +650,41 @@ importers:
specifier: 8.5.10
version: 8.5.10
'@typescript-eslint/eslint-plugin':
- specifier: 7.7.1
- version: 7.7.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)
+ specifier: 7.15.0
+ version: 7.15.0(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3)
'@typescript-eslint/parser':
- specifier: 7.7.1
- version: 7.7.1(eslint@8.57.0)(typescript@5.4.5)
+ specifier: 7.15.0
+ version: 7.15.0(eslint@9.6.0)(typescript@5.5.3)
aws-sdk-client-mock:
- specifier: 3.0.1
- version: 3.0.1
+ specifier: 4.0.1
+ version: 4.0.1
cross-env:
specifier: 7.0.3
version: 7.0.3
- eslint:
- specifier: 8.57.0
- version: 8.57.0
eslint-plugin-import:
specifier: 2.29.1
- version: 2.29.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)
+ version: 2.29.1(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)
execa:
- specifier: 8.0.1
- version: 8.0.1
+ specifier: 9.2.0
+ version: 9.2.0
fkill:
- specifier: ^9.0.0
+ specifier: 9.0.0
version: 9.0.0
jest:
specifier: 29.7.0
- version: 29.7.0(@types/node@20.12.7)
+ version: 29.7.0(@types/node@20.14.9)
jest-mock:
specifier: 29.7.0
version: 29.7.0
nodemon:
- specifier: 3.1.0
- version: 3.1.0
+ specifier: 3.1.4
+ version: 3.1.4
pid-port:
specifier: 1.0.0
version: 1.0.0
simple-oauth2:
- specifier: 5.0.0
- version: 5.0.0
+ specifier: 5.0.1
+ version: 5.0.1
packages/frontend:
dependencies:
@@ -705,13 +702,13 @@ importers:
version: 2024.1.0
'@rollup/plugin-json':
specifier: 6.1.0
- version: 6.1.0(rollup@4.17.2)
+ version: 6.1.0(rollup@4.18.0)
'@rollup/plugin-replace':
- specifier: 5.0.5
- version: 5.0.5(rollup@4.17.2)
+ specifier: 5.0.7
+ version: 5.0.7(rollup@4.18.0)
'@rollup/pluginutils':
specifier: 5.1.0
- version: 5.1.0(rollup@4.17.2)
+ version: 5.1.0(rollup@4.18.0)
'@syuilo/aiscript':
specifier: 0.18.0
version: 0.18.0
@@ -722,14 +719,14 @@ importers:
specifier: 15.1.1
version: 15.1.1
'@vitejs/plugin-vue':
- specifier: 5.0.4
- version: 5.0.4(vite@5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3))(vue@3.4.26(typescript@5.4.5))
+ specifier: 5.0.5
+ version: 5.0.5(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1))(vue@3.4.31(typescript@5.5.3))
'@vue/compiler-sfc':
- specifier: 3.4.26
- version: 3.4.26
+ specifier: 3.4.31
+ version: 3.4.31
aiscript-vscode:
- specifier: github:aiscript-dev/aiscript-vscode#v0.1.9
- version: https://codeload.github.com/aiscript-dev/aiscript-vscode/tar.gz/34bf4e1530efcf1efa855bd04e2dab39735e1b02
+ specifier: github:aiscript-dev/aiscript-vscode#v0.1.11
+ version: https://codeload.github.com/aiscript-dev/aiscript-vscode/tar.gz/e1e1b27f2f72cd28a473e004b6da0d8fc0bd40d9
astring:
specifier: 1.8.6
version: 1.8.6
@@ -743,23 +740,23 @@ importers:
specifier: 1.9.3
version: 1.9.3
chart.js:
- specifier: 4.4.2
- version: 4.4.2
+ specifier: 4.4.3
+ version: 4.4.3
chartjs-adapter-date-fns:
specifier: 3.0.0
- version: 3.0.0(chart.js@4.4.2)(date-fns@2.30.0)
+ version: 3.0.0(chart.js@4.4.3)(date-fns@2.30.0)
chartjs-chart-matrix:
specifier: 2.0.1
- version: 2.0.1(chart.js@4.4.2)
+ version: 2.0.1(chart.js@4.4.3)
chartjs-plugin-gradient:
specifier: 0.6.1
- version: 0.6.1(chart.js@4.4.2)
+ version: 0.6.1(chart.js@4.4.3)
chartjs-plugin-zoom:
specifier: 2.0.1
- version: 2.0.1(chart.js@4.4.2)
+ version: 2.0.1(chart.js@4.4.3)
chromatic:
- specifier: 11.3.0
- version: 11.3.0
+ specifier: 11.5.4
+ version: 11.5.4
compare-versions:
specifier: 6.1.0
version: 6.1.0
@@ -806,23 +803,23 @@ importers:
specifier: workspace:*
version: link:../misskey-reversi
photoswipe:
- specifier: 5.4.3
- version: 5.4.3
+ specifier: 5.4.4
+ version: 5.4.4
punycode:
specifier: 2.3.1
version: 2.3.1
rollup:
- specifier: 4.17.2
- version: 4.17.2
+ specifier: 4.18.0
+ version: 4.18.0
sanitize-html:
specifier: 2.13.0
version: 2.13.0
sass:
- specifier: 1.76.0
- version: 1.76.0
+ specifier: 1.77.6
+ version: 1.77.6
shiki:
- specifier: 1.4.0
- version: 1.4.0
+ specifier: 1.10.0
+ version: 1.10.0
strict-event-emitter-types:
specifier: 2.0.0
version: 2.0.0
@@ -830,102 +827,99 @@ importers:
specifier: 3.1.0
version: 3.1.0
three:
- specifier: 0.164.1
- version: 0.164.1
+ specifier: 0.165.0
+ version: 0.165.0
throttle-debounce:
- specifier: 5.0.0
- version: 5.0.0
+ specifier: 5.0.2
+ version: 5.0.2
tinycolor2:
specifier: 1.6.0
version: 1.6.0
tsc-alias:
- specifier: 1.8.8
- version: 1.8.8
+ specifier: 1.8.10
+ version: 1.8.10
tsconfig-paths:
specifier: 4.2.0
version: 4.2.0
typescript:
- specifier: 5.4.5
- version: 5.4.5
+ specifier: 5.5.3
+ version: 5.5.3
uuid:
- specifier: 9.0.1
- version: 9.0.1
+ specifier: 10.0.0
+ version: 10.0.0
v-code-diff:
- specifier: 1.11.0
- version: 1.11.0(vue@3.4.26(typescript@5.4.5))
+ specifier: 1.12.0
+ version: 1.12.0(vue@3.4.31(typescript@5.5.3))
vite:
- specifier: 5.2.11
- version: 5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3)
+ specifier: 5.3.2
+ version: 5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1)
vue:
- specifier: 3.4.26
- version: 3.4.26(typescript@5.4.5)
+ specifier: 3.4.31
+ version: 3.4.31(typescript@5.5.3)
vuedraggable:
specifier: next
- version: 4.1.0(vue@3.4.26(typescript@5.4.5))
+ version: 4.1.0(vue@3.4.31(typescript@5.5.3))
devDependencies:
- '@misskey-dev/eslint-plugin':
- specifier: 1.0.0
- version: 1.0.0(@typescript-eslint/eslint-plugin@7.7.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0))(eslint@8.57.0)
'@misskey-dev/summaly':
specifier: 5.1.0
version: 5.1.0
'@storybook/addon-actions':
- specifier: 8.0.9
- version: 8.0.9
+ specifier: 8.1.11
+ version: 8.1.11
'@storybook/addon-essentials':
- specifier: 8.0.9
- version: 8.0.9(@types/react@18.0.28)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: 8.1.11
+ version: 8.1.11(@types/react@18.0.28)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@storybook/addon-interactions':
- specifier: 8.0.9
- version: 8.0.9(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.12.7))(vitest@0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3))
+ specifier: 8.1.11
+ version: 8.1.11(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.14.9))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1))
'@storybook/addon-links':
- specifier: 8.0.9
- version: 8.0.9(react@18.3.1)
+ specifier: 8.1.11
+ version: 8.1.11(react@18.3.1)
'@storybook/addon-mdx-gfm':
- specifier: 8.0.9
- version: 8.0.9
+ specifier: 8.1.11
+ version: 8.1.11
'@storybook/addon-storysource':
- specifier: 8.0.9
- version: 8.0.9
+ specifier: 8.1.11
+ version: 8.1.11
'@storybook/blocks':
- specifier: 8.0.9
- version: 8.0.9(@types/react@18.0.28)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: 8.1.11
+ version: 8.1.11(@types/react@18.0.28)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@storybook/components':
- specifier: 8.0.9
- version: 8.0.9(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: 8.1.11
+ version: 8.1.11(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@storybook/core-events':
- specifier: 8.0.9
- version: 8.0.9
+ specifier: 8.1.11
+ version: 8.1.11
'@storybook/manager-api':
- specifier: 8.0.9
- version: 8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: 8.1.11
+ version: 8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@storybook/preview-api':
- specifier: 8.0.9
- version: 8.0.9
+ specifier: 8.1.11
+ version: 8.1.11
'@storybook/react':
- specifier: 8.0.9
- version: 8.0.9(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5)
+ specifier: 8.1.11
+ version: 8.1.11(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.3)
'@storybook/react-vite':
- specifier: 8.0.9
- version: 8.0.9(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.17.2)(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3))
+ specifier: 8.1.11
+ version: 8.1.11(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.18.0)(typescript@5.5.3)(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1))
'@storybook/test':
- specifier: 8.0.9
- version: 8.0.9(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.12.7))(vitest@0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3))
+ specifier: 8.1.11
+ version: 8.1.11(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.14.9))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1))
'@storybook/theming':
- specifier: 8.0.9
- version: 8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: 8.1.11
+ version: 8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@storybook/types':
- specifier: 8.0.9
- version: 8.0.9
+ specifier: 8.1.11
+ version: 8.1.11
'@storybook/vue3':
- specifier: 8.0.9
- version: 8.0.9(encoding@0.1.13)(vue@3.4.26(typescript@5.4.5))
+ specifier: 8.1.11
+ version: 8.1.11(encoding@0.1.13)(prettier@3.3.2)(vue@3.4.31(typescript@5.5.3))
'@storybook/vue3-vite':
- specifier: 8.0.9
- version: 8.0.9(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)(vite@5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3))(vue@3.4.26(typescript@5.4.5))
+ specifier: 8.1.11
+ version: 8.1.11(bufferutil@4.0.7)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1))(vue@3.4.31(typescript@5.5.3))
'@testing-library/vue':
- specifier: 8.0.3
- version: 8.0.3(@vue/compiler-sfc@3.4.26)(@vue/server-renderer@3.4.26(vue@3.4.26(typescript@5.4.5)))(vue@3.4.26(typescript@5.4.5))
+ specifier: 8.1.0
+ version: 8.1.0(@vue/compiler-sfc@3.4.31)(@vue/server-renderer@3.4.31(vue@3.4.31(typescript@5.5.3)))(vue@3.4.31(typescript@5.5.3))
'@types/escape-regexp':
specifier: 0.0.3
version: 0.0.3
@@ -936,11 +930,11 @@ importers:
specifier: 0.19.6
version: 0.19.6
'@types/micromatch':
- specifier: 4.0.7
- version: 4.0.7
+ specifier: 4.0.9
+ version: 4.0.9
'@types/node':
- specifier: 20.12.7
- version: 20.12.7
+ specifier: 20.14.9
+ version: 20.14.9
'@types/punycode':
specifier: 2.1.4
version: 2.1.4
@@ -957,41 +951,38 @@ importers:
specifier: 1.4.6
version: 1.4.6
'@types/uuid':
- specifier: 9.0.8
- version: 9.0.8
+ specifier: 10.0.0
+ version: 10.0.0
'@types/ws':
specifier: 8.5.10
version: 8.5.10
'@typescript-eslint/eslint-plugin':
- specifier: 7.7.1
- version: 7.7.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)
+ specifier: 7.15.0
+ version: 7.15.0(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3)
'@typescript-eslint/parser':
- specifier: 7.7.1
- version: 7.7.1(eslint@8.57.0)(typescript@5.4.5)
+ specifier: 7.15.0
+ version: 7.15.0(eslint@9.6.0)(typescript@5.5.3)
'@vitest/coverage-v8':
- specifier: 0.34.6
- version: 0.34.6(vitest@0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3))
+ specifier: 1.6.0
+ version: 1.6.0(vitest@1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1))
'@vue/runtime-core':
- specifier: 3.4.26
- version: 3.4.26
+ specifier: 3.4.31
+ version: 3.4.31
acorn:
- specifier: 8.11.3
- version: 8.11.3
+ specifier: 8.12.0
+ version: 8.12.0
cross-env:
specifier: 7.0.3
version: 7.0.3
cypress:
- specifier: 13.8.1
- version: 13.8.1
- eslint:
- specifier: 8.57.0
- version: 8.57.0
+ specifier: 13.13.0
+ version: 13.13.0
eslint-plugin-import:
specifier: 2.29.1
- version: 2.29.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)
+ version: 2.29.1(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)
eslint-plugin-vue:
- specifier: 9.25.0
- version: 9.25.0(eslint@8.57.0)
+ specifier: 9.26.0
+ version: 9.26.0(eslint@9.6.0)
fast-glob:
specifier: 3.3.2
version: 3.3.2
@@ -1002,20 +993,20 @@ importers:
specifier: 0.12.2
version: 0.12.2
micromatch:
- specifier: 4.0.5
- version: 4.0.5
+ specifier: 4.0.7
+ version: 4.0.7
msw:
- specifier: 2.2.14
- version: 2.2.14(typescript@5.4.5)
+ specifier: 2.3.1
+ version: 2.3.1(typescript@5.5.3)
msw-storybook-addon:
- specifier: 2.0.1
- version: 2.0.1(msw@2.2.14(typescript@5.4.5))
+ specifier: 2.0.2
+ version: 2.0.2(msw@2.3.1(typescript@5.5.3))
nodemon:
- specifier: 3.1.0
- version: 3.1.0
+ specifier: 3.1.4
+ version: 3.1.4
prettier:
- specifier: 3.2.5
- version: 3.2.5
+ specifier: 3.3.2
+ version: 3.3.2
react:
specifier: 18.3.1
version: 18.3.1
@@ -1026,32 +1017,32 @@ importers:
specifier: 3.0.5
version: 3.0.5
start-server-and-test:
- specifier: 2.0.3
- version: 2.0.3
+ specifier: 2.0.4
+ version: 2.0.4
storybook:
- specifier: 8.0.9
- version: 8.0.9(@babel/preset-env@7.23.5(@babel/core@7.24.0))(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)
+ specifier: 8.1.11
+ version: 8.1.11(@babel/preset-env@7.24.7(@babel/core@7.24.7))(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)
storybook-addon-misskey-theme:
specifier: github:misskey-dev/storybook-addon-misskey-theme
- version: https://codeload.github.com/misskey-dev/storybook-addon-misskey-theme/tar.gz/cf583db098365b2ccc81a82f63ca9c93bc32b640(@storybook/blocks@8.0.9(@types/react@18.0.28)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/components@8.0.9(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/core-events@8.0.9)(@storybook/manager-api@8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/preview-api@8.0.9)(@storybook/theming@8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/types@8.0.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: https://codeload.github.com/misskey-dev/storybook-addon-misskey-theme/tar.gz/cf583db098365b2ccc81a82f63ca9c93bc32b640(@storybook/blocks@8.1.11(@types/react@18.0.28)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/components@8.1.11(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/core-events@8.1.11)(@storybook/manager-api@8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/preview-api@8.1.11)(@storybook/theming@8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/types@8.1.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
vite-plugin-turbosnap:
specifier: 1.0.3
version: 1.0.3
vitest:
- specifier: 0.34.6
- version: 0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3)
+ specifier: 1.6.0
+ version: 1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1)
vitest-fetch-mock:
specifier: 0.2.2
- version: 0.2.2(encoding@0.1.13)(vitest@0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3))
+ version: 0.2.2(encoding@0.1.13)(vitest@1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1))
vue-component-type-helpers:
- specifier: 2.0.16
- version: 2.0.16
+ specifier: 2.0.24
+ version: 2.0.24
vue-eslint-parser:
- specifier: 9.4.2
- version: 9.4.2(eslint@8.57.0)
+ specifier: 9.4.3
+ version: 9.4.3(eslint@9.6.0)
vue-tsc:
- specifier: 2.0.16
- version: 2.0.16(typescript@5.4.5)
+ specifier: 2.0.24
+ version: 2.0.24(typescript@5.5.3)
packages/misskey-bubble-game:
dependencies:
@@ -1065,9 +1056,6 @@ importers:
specifier: 3.0.5
version: 3.0.5
devDependencies:
- '@misskey-dev/eslint-plugin':
- specifier: 1.0.0
- version: 1.0.0(@typescript-eslint/eslint-plugin@7.1.0(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3))(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0))(eslint@8.57.0)
'@types/matter-js':
specifier: 0.19.6
version: 0.19.6
@@ -1079,16 +1067,13 @@ importers:
version: 3.0.8
'@typescript-eslint/eslint-plugin':
specifier: 7.1.0
- version: 7.1.0(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3)
+ version: 7.1.0(@typescript-eslint/parser@7.1.0(eslint@9.6.0)(typescript@5.3.3))(eslint@9.6.0)(typescript@5.3.3)
'@typescript-eslint/parser':
specifier: 7.1.0
- version: 7.1.0(eslint@8.57.0)(typescript@5.3.3)
+ version: 7.1.0(eslint@9.6.0)(typescript@5.3.3)
esbuild:
specifier: 0.19.11
version: 0.19.11
- eslint:
- specifier: 8.57.0
- version: 8.57.0
execa:
specifier: 8.0.1
version: 8.0.1
@@ -1112,41 +1097,35 @@ importers:
version: 4.4.0
devDependencies:
'@microsoft/api-extractor':
- specifier: 7.43.1
- version: 7.43.1(@types/node@20.12.7)
- '@misskey-dev/eslint-plugin':
- specifier: 1.0.0
- version: 1.0.0(@typescript-eslint/eslint-plugin@7.7.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0))(eslint@8.57.0)
+ specifier: 7.47.0
+ version: 7.47.0(@types/node@20.14.9)
'@swc/jest':
specifier: 0.2.36
- version: 0.2.36(@swc/core@1.4.17)
+ version: 0.2.36(@swc/core@1.6.6)
'@types/jest':
specifier: 29.5.12
version: 29.5.12
'@types/node':
- specifier: 20.12.7
- version: 20.12.7
+ specifier: 20.14.9
+ version: 20.14.9
'@typescript-eslint/eslint-plugin':
- specifier: 7.7.1
- version: 7.7.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)
+ specifier: 7.15.0
+ version: 7.15.0(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3)
'@typescript-eslint/parser':
- specifier: 7.7.1
- version: 7.7.1(eslint@8.57.0)(typescript@5.4.5)
+ specifier: 7.15.0
+ version: 7.15.0(eslint@9.6.0)(typescript@5.5.3)
esbuild:
- specifier: 0.19.11
- version: 0.19.11
- eslint:
- specifier: 8.57.0
- version: 8.57.0
+ specifier: 0.22.0
+ version: 0.22.0
execa:
- specifier: 8.0.1
- version: 8.0.1
+ specifier: 9.2.0
+ version: 9.2.0
glob:
- specifier: 10.3.12
- version: 10.3.12
+ specifier: 10.4.2
+ version: 10.4.2
jest:
specifier: 29.7.0
- version: 29.7.0(@types/node@20.12.7)
+ version: 29.7.0(@types/node@20.14.9)
jest-fetch-mock:
specifier: 3.0.3
version: 3.0.3(encoding@0.1.13)
@@ -1160,20 +1139,17 @@ importers:
specifier: 2.0.0
version: 2.0.0
nodemon:
- specifier: 3.1.0
- version: 3.1.0
+ specifier: 3.1.4
+ version: 3.1.4
tsd:
- specifier: 0.30.7
- version: 0.30.7
+ specifier: 0.31.1
+ version: 0.31.1
typescript:
- specifier: 5.4.5
- version: 5.4.5
+ specifier: 5.5.3
+ version: 5.5.3
packages/misskey-js/generator:
devDependencies:
- '@misskey-dev/eslint-plugin':
- specifier: ^1.0.0
- version: 1.0.0(@typescript-eslint/eslint-plugin@6.11.0(@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.3))(eslint@8.53.0)(typescript@5.3.3))(@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.3))(eslint@8.53.0))(eslint@8.53.0)
'@readme/openapi-parser':
specifier: 2.5.0
version: 2.5.0(openapi-types@12.1.3)
@@ -1182,13 +1158,10 @@ importers:
version: 20.9.1
'@typescript-eslint/eslint-plugin':
specifier: 6.11.0
- version: 6.11.0(@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.3))(eslint@8.53.0)(typescript@5.3.3)
+ version: 6.11.0(@typescript-eslint/parser@6.11.0(eslint@9.6.0)(typescript@5.3.3))(eslint@9.6.0)(typescript@5.3.3)
'@typescript-eslint/parser':
specifier: 6.11.0
- version: 6.11.0(eslint@8.53.0)(typescript@5.3.3)
- eslint:
- specifier: 8.53.0
- version: 8.53.0
+ version: 6.11.0(eslint@9.6.0)(typescript@5.3.3)
openapi-types:
specifier: 12.1.3
version: 12.1.3
@@ -1211,24 +1184,18 @@ importers:
specifier: 1.2.2
version: 1.2.2
devDependencies:
- '@misskey-dev/eslint-plugin':
- specifier: 1.0.0
- version: 1.0.0(@typescript-eslint/eslint-plugin@7.1.0(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3))(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0))(eslint@8.57.0)
'@types/node':
specifier: 20.11.5
version: 20.11.5
'@typescript-eslint/eslint-plugin':
specifier: 7.1.0
- version: 7.1.0(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3)
+ version: 7.1.0(@typescript-eslint/parser@7.1.0(eslint@9.6.0)(typescript@5.3.3))(eslint@9.6.0)(typescript@5.3.3)
'@typescript-eslint/parser':
specifier: 7.1.0
- version: 7.1.0(eslint@8.57.0)(typescript@5.3.3)
+ version: 7.1.0(eslint@9.6.0)(typescript@5.3.3)
esbuild:
specifier: 0.19.11
version: 0.19.11
- eslint:
- specifier: 8.57.0
- version: 8.57.0
execa:
specifier: 8.0.1
version: 8.0.1
@@ -1245,8 +1212,8 @@ importers:
packages/sw:
dependencies:
esbuild:
- specifier: 0.20.2
- version: 0.20.2
+ specifier: 0.22.0
+ version: 0.22.0
idb-keyval:
specifier: 6.2.1
version: 6.2.1
@@ -1254,27 +1221,21 @@ importers:
specifier: workspace:*
version: link:../misskey-js
devDependencies:
- '@misskey-dev/eslint-plugin':
- specifier: 1.0.0
- version: 1.0.0(@typescript-eslint/eslint-plugin@7.7.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0))(eslint@8.57.0)
'@typescript-eslint/parser':
- specifier: 7.7.1
- version: 7.7.1(eslint@8.57.0)(typescript@5.4.5)
+ specifier: 7.15.0
+ version: 7.15.0(eslint@9.6.0)(typescript@5.5.3)
'@typescript/lib-webworker':
specifier: npm:@types/serviceworker@0.0.67
version: '@types/serviceworker@0.0.67'
- eslint:
- specifier: 8.57.0
- version: 8.57.0
eslint-plugin-import:
specifier: 2.29.1
- version: 2.29.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)
+ version: 2.29.1(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)
nodemon:
- specifier: 3.1.0
- version: 3.1.0
+ specifier: 3.1.4
+ version: 3.1.4
typescript:
- specifier: 5.4.5
- version: 5.4.5
+ specifier: 5.5.3
+ version: 5.5.3
packages:
@@ -1305,221 +1266,239 @@ packages:
resolution: {integrity: sha512-Xk1sIhyNC/esHGGVjL/niHLowM0csl/kFO5uawBy4IrWwy0o1G8LGt3jP6nmWGz+USxeeqbihAmp/oVZju6wug==}
hasBin: true
- '@aws-crypto/crc32@3.0.0':
- resolution: {integrity: sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==}
+ '@aws-crypto/crc32@5.2.0':
+ resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==}
+ engines: {node: '>=16.0.0'}
- '@aws-crypto/crc32c@3.0.0':
- resolution: {integrity: sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w==}
+ '@aws-crypto/crc32c@5.2.0':
+ resolution: {integrity: sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==}
- '@aws-crypto/ie11-detection@3.0.0':
- resolution: {integrity: sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==}
+ '@aws-crypto/sha1-browser@5.2.0':
+ resolution: {integrity: sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==}
- '@aws-crypto/sha1-browser@3.0.0':
- resolution: {integrity: sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw==}
+ '@aws-crypto/sha256-browser@5.2.0':
+ resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==}
- '@aws-crypto/sha256-browser@3.0.0':
- resolution: {integrity: sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==}
+ '@aws-crypto/sha256-js@5.2.0':
+ resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==}
+ engines: {node: '>=16.0.0'}
- '@aws-crypto/sha256-js@3.0.0':
- resolution: {integrity: sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==}
+ '@aws-crypto/supports-web-crypto@5.2.0':
+ resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==}
- '@aws-crypto/supports-web-crypto@3.0.0':
- resolution: {integrity: sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==}
+ '@aws-crypto/util@5.2.0':
+ resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==}
- '@aws-crypto/util@3.0.0':
- resolution: {integrity: sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==}
+ '@aws-sdk/client-s3@3.600.0':
+ resolution: {integrity: sha512-iYoKbJTputbf+ubkX6gSK/y/4uJEBRaXZ18jykLdBQ8UJuGrk2gqvV8h7OlGAhToCeysmmMqM0vDWyLt6lP8nw==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/client-s3@3.412.0':
- resolution: {integrity: sha512-sNrlx9sSBmFUCqMgTznwk9Fee3PJat0nZ3RIDR5Crhsld/eexxrqb6TYKsxzFfBfXTL/oPh+/S5driRV2xsB8A==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/client-sso-oidc@3.600.0':
+ resolution: {integrity: sha512-7+I8RWURGfzvChyNQSyj5/tKrqRbzRl7H+BnTOf/4Vsw1nFOi5ROhlhD4X/Y0QCTacxnaoNcIrqnY7uGGvVRzw==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/client-sso@3.410.0':
- resolution: {integrity: sha512-MC9GrgwtlOuSL2WS3DRM3dQ/5y+49KSMMJRH6JiEcU5vE0dX/OtEcX+VfEwpi73x5pSfIjm7xnzjzOFx+sQBIg==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/client-sso@3.598.0':
+ resolution: {integrity: sha512-nOI5lqPYa+YZlrrzwAJywJSw3MKVjvu6Ge2fCqQUNYMfxFB0NAaDFnl0EPjXi+sEbtCuz/uWE77poHbqiZ+7Iw==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/client-sts@3.410.0':
- resolution: {integrity: sha512-e6VMrBJtnTxxUXwDmkADGIvyppmDMFf4+cGGA68tVCUm1cFNlCI6M/67bVSIPN/WVKAAfhEL5O2vVXCM7aatYg==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/client-sts@3.600.0':
+ resolution: {integrity: sha512-KQG97B7LvTtTiGmjlrG1LRAY8wUvCQzrmZVV5bjrJ/1oXAU7DITYwVbSJeX9NWg6hDuSk0VE3MFwIXS2SvfLIA==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/credential-provider-env@3.410.0':
- resolution: {integrity: sha512-c7TB9LbN0PkFOsXI0lcRJnqPNOmc4VBvrHf8jP/BkTDg4YUoKQKOFd4d0SqzODmlZiAyoMQVZTR4ISZo95Zj4Q==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/core@3.598.0':
+ resolution: {integrity: sha512-HaSjt7puO5Cc7cOlrXFCW0rtA0BM9lvzjl56x0A20Pt+0wxXGeTOZZOkXQIepbrFkV2e/HYukuT9e99vXDm59g==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/credential-provider-ini@3.410.0':
- resolution: {integrity: sha512-D8rcr5bRCFD0f42MPQ7K6TWZq5d3pfqrKINL1/bpfkK5BJbvq1BGYmR88UC6CLpTRtZ1LHY2HgYG0fp/2zjjww==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/credential-provider-env@3.598.0':
+ resolution: {integrity: sha512-vi1khgn7yXzLCcgSIzQrrtd2ilUM0dWodxj3PQ6BLfP0O+q1imO3hG1nq7DVyJtq7rFHs6+9N8G4mYvTkxby2w==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/credential-provider-node@3.410.0':
- resolution: {integrity: sha512-0wmVm33T/j1FS7MZ/j+WsPlgSc0YnCXnpbWSov1Mn6R86SHI2b2JhdIPRRE4XbGfyW2QGNUl2CwoZVaqhXeF5g==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/credential-provider-http@3.598.0':
+ resolution: {integrity: sha512-N7cIafi4HVlQvEgvZSo1G4T9qb/JMLGMdBsDCT5XkeJrF0aptQWzTFH0jIdZcLrMYvzPcuEyO3yCBe6cy/ba0g==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/credential-provider-process@3.410.0':
- resolution: {integrity: sha512-BMju1hlDCDNkkSZpKF5SQ8G0WCLRj6/Jvw9QmudLHJuVwYJXEW1r2AsVMg98OZ3hB9G+MAvHruHZIbMiNmUMXQ==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/credential-provider-ini@3.598.0':
+ resolution: {integrity: sha512-/ppcIVUbRwDIwJDoYfp90X3+AuJo2mvE52Y1t2VSrvUovYn6N4v95/vXj6LS8CNDhz2jvEJYmu+0cTMHdhI6eA==}
+ engines: {node: '>=16.0.0'}
+ peerDependencies:
+ '@aws-sdk/client-sts': ^3.598.0
- '@aws-sdk/credential-provider-sso@3.410.0':
- resolution: {integrity: sha512-zEaoY/sY+KYTlQUkp9dvveAHf175b8RIt0DsQkDrRPtrg/RBHR00r5rFvz9+nrwsR8546RaBU7h/zzTaQGhmcA==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/credential-provider-node@3.600.0':
+ resolution: {integrity: sha512-1pC7MPMYD45J7yFjA90SxpR0yaSvy+yZiq23aXhAPZLYgJBAxHLu0s0mDCk/piWGPh8+UGur5K0bVdx4B1D5hw==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/credential-provider-web-identity@3.410.0':
- resolution: {integrity: sha512-cE0l8LmEHdWbDkdPNgrfdYSgp4/cIVXrjUKI1QCATA729CrHZ/OQjB/maOBOrMHO9YTiggko887NkslVvwVB7w==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/credential-provider-process@3.598.0':
+ resolution: {integrity: sha512-rM707XbLW8huMk722AgjVyxu2tMZee++fNA8TJVNgs1Ma02Wx6bBrfIvlyK0rCcIRb0WdQYP6fe3Xhiu4e8IBA==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/lib-storage@3.412.0':
- resolution: {integrity: sha512-uAdVtNuip06rJOs28zVrYXLNeHfKraxvJRTzTA+DW1dXkzh70GTKqDKHWH9IJkW/xMTE6wGSM+fDs8jsMOn/yA==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/credential-provider-sso@3.598.0':
+ resolution: {integrity: sha512-5InwUmrAuqQdOOgxTccRayMMkSmekdLk6s+az9tmikq0QFAHUCtofI+/fllMXSR9iL6JbGYi1940+EUmS4pHJA==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/credential-provider-web-identity@3.598.0':
+ resolution: {integrity: sha512-GV5GdiMbz5Tz9JO4NJtRoFXjW0GPEujA0j+5J/B723rTN+REHthJu48HdBKouHGhdzkDWkkh1bu52V02Wprw8w==}
+ engines: {node: '>=16.0.0'}
peerDependencies:
- '@aws-sdk/client-s3': ^3.0.0
+ '@aws-sdk/client-sts': ^3.598.0
- '@aws-sdk/middleware-bucket-endpoint@3.410.0':
- resolution: {integrity: sha512-pUGrpFgCKf9fDHu01JJhhw+MUImheS0HFlZwNG37OMubkxUAbCdmYGewGxfTCUvWyZJtx9bVjrSu6gG7w+RARg==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/lib-storage@3.600.0':
+ resolution: {integrity: sha512-jjgGMmFykXBAs8YO3ghgnVSjM/uf99jvVQqKJfDjwXUCLPrsZqk14v2WcDCWAXzeAroDvIOVQO1V/RR8fK18Pw==}
+ engines: {node: '>=16.0.0'}
+ peerDependencies:
+ '@aws-sdk/client-s3': ^3.600.0
- '@aws-sdk/middleware-expect-continue@3.410.0':
- resolution: {integrity: sha512-e5YqGCNmW99GZjEPPujJ02RlEZql19U40oORysBhVF7mKz8BBvF3s8l37tvu37oxebDEkh1u/2cm2+ggOXxLjQ==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/middleware-bucket-endpoint@3.598.0':
+ resolution: {integrity: sha512-PM7BcFfGUSkmkT6+LU9TyJiB4S8yI7dfuKQDwK5ZR3P7MKaK4Uj4yyDiv0oe5xvkF6+O2+rShj+eh8YuWkOZ/Q==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/middleware-flexible-checksums@3.410.0':
- resolution: {integrity: sha512-IK7KlvEKtrQVBfmAp/MmGd0wbWLuN2GZwwfAmsU0qFb0f5vOVUbKDsu6tudtDKCBG9uXyTEsx3/QGvoK2zDy+g==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/middleware-expect-continue@3.598.0':
+ resolution: {integrity: sha512-ZuHW18kaeHR8TQyhEOYMr8VwiIh0bMvF7J1OTqXHxDteQIavJWA3CbfZ9sgS4XGtrBZDyHJhjZKeCfLhN2rq3w==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/middleware-host-header@3.410.0':
- resolution: {integrity: sha512-ED/OVcyITln5rrxnajZP+V0PN1nug+gSDHJDqdDo/oLy7eiDr/ZWn3nlWW7WcMplQ1/Jnb+hK0UetBp/25XooA==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/middleware-flexible-checksums@3.598.0':
+ resolution: {integrity: sha512-xukAzds0GQXvMEY9G6qt+CzwVzTx8NyKKh04O2Q+nOch6QQ8Rs+2kTRy3Z4wQmXq2pK9hlOWb5nXA7HWpmz6Ng==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/middleware-location-constraint@3.410.0':
- resolution: {integrity: sha512-jAftSpOpw/5AdpOJ/cGiXCb+Vv22KXR5QZmxmllUDsnlm18672tpRaI2plmu/1d98CVvqhY61eSklFMrIf2c4w==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/middleware-host-header@3.598.0':
+ resolution: {integrity: sha512-WiaG059YBQwQraNejLIi0gMNkX7dfPZ8hDIhvMr5aVPRbaHH8AYF3iNSsXYCHvA2Cfa1O9haYXsuMF9flXnCmA==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/middleware-logger@3.410.0':
- resolution: {integrity: sha512-YtmKYCVtBfScq3/UFJk+aSZOktKJBNZL9DaSc2aPcy/goCVsYDOkGwtHk0jIkC1JRSNCkVTqL7ya60sSr8zaQQ==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/middleware-location-constraint@3.598.0':
+ resolution: {integrity: sha512-8oybQxN3F1ISOMULk7JKJz5DuAm5hCUcxMW9noWShbxTJuStNvuHf/WLUzXrf8oSITyYzIHPtf8VPlKR7I3orQ==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/middleware-recursion-detection@3.410.0':
- resolution: {integrity: sha512-KWaes5FLzRqj28vaIEE4Bimpga2E596WdPF2HaH6zsVMJddoRDsc3ZX9ZhLOGrXzIO1RqBd0QxbLrM0S/B2aOQ==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/middleware-logger@3.598.0':
+ resolution: {integrity: sha512-bxBjf/VYiu3zfu8SYM2S9dQQc3tz5uBAOcPz/Bt8DyyK3GgOpjhschH/2XuUErsoUO1gDJqZSdGOmuHGZQn00Q==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/middleware-sdk-s3@3.410.0':
- resolution: {integrity: sha512-K2sG2V1ZkezYMCIy3uMt0MwtflcfIwLptwm0iFLaYitiINZQ1tcslk9ggAjyTHg0rslDSI4/zjkhy8VHFOV7HA==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/middleware-recursion-detection@3.598.0':
+ resolution: {integrity: sha512-vjT9BeFY9FeN0f8hm2l6F53tI0N5bUq6RcDkQXKNabXBnQxKptJRad6oP2X5y3FoVfBLOuDkQgiC2940GIPxtQ==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/middleware-sdk-sts@3.410.0':
- resolution: {integrity: sha512-YfBpctDocRR4CcROoDueJA7D+aMLBV8nTFfmVNdLLLgyuLZ/AUR11VQSu1lf9gQZKl8IpKE/BLf2fRE/qV1ZuA==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/middleware-sdk-s3@3.598.0':
+ resolution: {integrity: sha512-5AGtLAh9wyK6ANPYfaKTqJY1IFJyePIxsEbxa7zS6REheAqyVmgJFaGu3oQ5XlxfGr5Uq59tFTRkyx26G1HkHA==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/middleware-signing@3.410.0':
- resolution: {integrity: sha512-KBAZ/eoAJUSJv5us2HsKwK2OszG2s9FEyKpEhgnHLcbbKzW873zHBH5GcOGEQu4AWArTy2ndzJu3FF+9/J9hJQ==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/middleware-signing@3.598.0':
+ resolution: {integrity: sha512-XKb05DYx/aBPqz6iCapsCbIl8aD8EihTuPCs51p75QsVfbQoVr4TlFfIl5AooMSITzojdAQqxt021YtvxjtxIQ==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/middleware-ssec@3.410.0':
- resolution: {integrity: sha512-DNsjVTXoxIh+PuW9o45CFaMiconbuZRm19MC3NA1yNCaCj3ZxD5OdXAutq6UjQdrx8UG4EjUlCJEEvBKmboITw==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/middleware-ssec@3.598.0':
+ resolution: {integrity: sha512-f0p2xP8IC1uJ5e/tND1l81QxRtRFywEdnbtKCE0H6RSn4UIt2W3Dohe1qQDbnh27okF0PkNW6BJGdSAz3p7qbA==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/middleware-user-agent@3.410.0':
- resolution: {integrity: sha512-ZayDtLfvCZUohSxQc/49BfoU/y6bDHLfLdyyUJbJ54Sv8zQcrmdyKvCBFUZwE6tHQgAmv9/ZT18xECMl+xiONA==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/middleware-user-agent@3.598.0':
+ resolution: {integrity: sha512-4tjESlHG5B5MdjUaLK7tQs/miUtHbb6deauQx8ryqSBYOhfHVgb1ZnzvQR0bTrhpqUg0WlybSkDaZAICf9xctg==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/signature-v4-multi-region@3.412.0':
- resolution: {integrity: sha512-ijxOeYpNDuk2T940S9HYcZ1C+wTP9vqp1Cw37zw9whVY2mKV3Vr7i+44D4FQ5HhWULgdwhjD7IctbNxPIPzUZQ==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/region-config-resolver@3.598.0':
+ resolution: {integrity: sha512-oYXhmTokSav4ytmWleCr3rs/1nyvZW/S0tdi6X7u+dLNL5Jee+uMxWGzgOrWK6wrQOzucLVjS4E/wA11Kv2GTw==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/token-providers@3.410.0':
- resolution: {integrity: sha512-d5Nc0xydkH/X0LA1HDyhGY5sEv4LuADFk+QpDtT8ogLilcre+b1jpdY8Sih/gd1KoGS1H+d1tz2hSGwUHAbUbw==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/signature-v4-multi-region@3.598.0':
+ resolution: {integrity: sha512-1r/EyTrO1gSa1FirnR8V7mabr7gk+l+HkyTI0fcTSr8ucB7gmYyW6WjkY8JCz13VYHFK62usCEDS7yoJoJOzTA==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/types@3.410.0':
- resolution: {integrity: sha512-D7iaUCszv/v04NDaZUmCmekamy6VD/lKozm/3gS9+dkfU6cC2CsNoUfPV8BlV6dPdw0oWgF91am3I1stdvfVrQ==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/token-providers@3.598.0':
+ resolution: {integrity: sha512-TKY1EVdHVBnZqpyxyTHdpZpa1tUpb6nxVeRNn1zWG8QB5MvH4ALLd/jR+gtmWDNQbIG4cVuBOZFVL8hIYicKTA==}
+ engines: {node: '>=16.0.0'}
+ peerDependencies:
+ '@aws-sdk/client-sso-oidc': ^3.598.0
- '@aws-sdk/types@3.413.0':
- resolution: {integrity: sha512-j1xib0f/TazIFc5ySIKOlT1ujntRbaoG4LJFeEezz4ji03/wSJMI8Vi4KjzpBp8J1tTu0oRDnsxRIGixsUBeYQ==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/types@3.598.0':
+ resolution: {integrity: sha512-742uRl6z7u0LFmZwDrFP6r1wlZcgVPw+/TilluDJmCAR8BgRw3IR+743kUXKBGd8QZDRW2n6v/PYsi/AWCDDMQ==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/util-arn-parser@3.310.0':
- resolution: {integrity: sha512-jL8509owp/xB9+Or0pvn3Fe+b94qfklc2yPowZZIFAkFcCSIdkIglz18cPDWnYAcy9JGewpMS1COXKIUhZkJsA==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/util-arn-parser@3.568.0':
+ resolution: {integrity: sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/util-endpoints@3.410.0':
- resolution: {integrity: sha512-iNiqJyC7N3+8zFwnXUqcWSxrZecVZLToo1iTQQdeYL2af1IcOtRgb7n8jpAI/hmXhBSx2+3RI+Y7pxyFo1vu+w==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/util-endpoints@3.598.0':
+ resolution: {integrity: sha512-Qo9UoiVVZxcOEdiOMZg3xb1mzkTxrhd4qSlg5QQrfWPJVx/QOg+Iy0NtGxPtHtVZNHZxohYwDwV/tfsnDSE2gQ==}
+ engines: {node: '>=16.0.0'}
'@aws-sdk/util-locate-window@3.208.0':
resolution: {integrity: sha512-iua1A2+P7JJEDHVgvXrRJSvsnzG7stYSGQnBVphIUlemwl6nN5D+QrgbjECtrbxRz8asYFHSzhdhECqN+tFiBg==}
engines: {node: '>=14.0.0'}
- '@aws-sdk/util-user-agent-browser@3.410.0':
- resolution: {integrity: sha512-i1G/XGpXGMRT2zEiAhi1xucJsfCWk8nNYjk/LbC0sA+7B9Huri96YAzVib12wkHPsJQvZxZC6CpQDIHWm4lXMA==}
+ '@aws-sdk/util-user-agent-browser@3.598.0':
+ resolution: {integrity: sha512-36Sxo6F+ykElaL1mWzWjlg+1epMpSe8obwhCN1yGE7Js9ywy5U6k6l+A3q3YM9YRbm740sNxncbwLklMvuhTKw==}
- '@aws-sdk/util-user-agent-node@3.410.0':
- resolution: {integrity: sha512-bK70t1jHRl8HrJXd4hEIwc5PBZ7U0w+81AKFnanIVKZwZedd6nLibUXDTK14z/Jp2GFcBqd4zkt2YLGkRt/U4A==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/util-user-agent-node@3.598.0':
+ resolution: {integrity: sha512-oyWGcOlfTdzkC6SVplyr0AGh54IMrDxbhg5RxJ5P+V4BKfcDoDcZV9xenUk9NsOi9MuUjxMumb9UJGkDhM1m0A==}
+ engines: {node: '>=16.0.0'}
peerDependencies:
aws-crt: '>=1.0.0'
peerDependenciesMeta:
aws-crt:
optional: true
- '@aws-sdk/util-utf8-browser@3.259.0':
- resolution: {integrity: sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==}
-
- '@aws-sdk/xml-builder@3.310.0':
- resolution: {integrity: sha512-TqELu4mOuSIKQCqj63fGVs86Yh+vBx5nHRpWKNUNhB2nPTpfbziTs5c1X358be3peVWA4wPxW7Nt53KIg1tnNw==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/xml-builder@3.598.0':
+ resolution: {integrity: sha512-ZIa2RK7CHFTZ4gwK77WRtsZ6vF7xwRXxJ8KQIxK2duhoTVcn0xYxpFLdW9WZZZvdP9GIF3Loqvf8DRdeU5Jc7Q==}
+ engines: {node: '>=16.0.0'}
'@babel/code-frame@7.23.5':
resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==}
engines: {node: '>=6.9.0'}
+ '@babel/code-frame@7.24.7':
+ resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==}
+ engines: {node: '>=6.9.0'}
+
'@babel/compat-data@7.23.5':
resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==}
engines: {node: '>=6.9.0'}
+ '@babel/compat-data@7.24.7':
+ resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==}
+ engines: {node: '>=6.9.0'}
+
'@babel/core@7.23.5':
resolution: {integrity: sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g==}
engines: {node: '>=6.9.0'}
- '@babel/core@7.24.0':
- resolution: {integrity: sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==}
+ '@babel/core@7.24.7':
+ resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==}
engines: {node: '>=6.9.0'}
'@babel/generator@7.23.5':
resolution: {integrity: sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==}
engines: {node: '>=6.9.0'}
- '@babel/generator@7.23.6':
- resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==}
+ '@babel/generator@7.24.7':
+ resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==}
engines: {node: '>=6.9.0'}
- '@babel/helper-annotate-as-pure@7.22.5':
- resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
+ '@babel/helper-annotate-as-pure@7.24.7':
+ resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==}
engines: {node: '>=6.9.0'}
- '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15':
- resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==}
+ '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7':
+ resolution: {integrity: sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==}
engines: {node: '>=6.9.0'}
'@babel/helper-compilation-targets@7.22.15':
resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==}
engines: {node: '>=6.9.0'}
- '@babel/helper-compilation-targets@7.23.6':
- resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==}
+ '@babel/helper-compilation-targets@7.24.7':
+ resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==}
engines: {node: '>=6.9.0'}
- '@babel/helper-create-class-features-plugin@7.23.5':
- resolution: {integrity: sha512-QELlRWxSpgdwdJzSJn4WAhKC+hvw/AtHbbrIoncKHkhKKR/luAlKkgBDcri1EzWAo8f8VvYVryEHN4tax/V67A==}
+ '@babel/helper-create-class-features-plugin@7.24.7':
+ resolution: {integrity: sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/helper-create-regexp-features-plugin@7.22.15':
- resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==}
+ '@babel/helper-create-regexp-features-plugin@7.24.7':
+ resolution: {integrity: sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/helper-define-polyfill-provider@0.4.3':
- resolution: {integrity: sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==}
+ '@babel/helper-define-polyfill-provider@0.6.2':
+ resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==}
peerDependencies:
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
@@ -1527,44 +1506,70 @@ packages:
resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-environment-visitor@7.24.7':
+ resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-function-name@7.23.0':
resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-function-name@7.24.7':
+ resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-hoist-variables@7.22.5':
resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
engines: {node: '>=6.9.0'}
- '@babel/helper-member-expression-to-functions@7.23.0':
- resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==}
+ '@babel/helper-hoist-variables@7.24.7':
+ resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-member-expression-to-functions@7.24.7':
+ resolution: {integrity: sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==}
engines: {node: '>=6.9.0'}
'@babel/helper-module-imports@7.22.15':
resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-module-imports@7.24.7':
+ resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-module-transforms@7.23.3':
resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/helper-optimise-call-expression@7.22.5':
- resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
+ '@babel/helper-module-transforms@7.24.7':
+ resolution: {integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-optimise-call-expression@7.24.7':
+ resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==}
engines: {node: '>=6.9.0'}
'@babel/helper-plugin-utils@7.22.5':
resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==}
engines: {node: '>=6.9.0'}
- '@babel/helper-remap-async-to-generator@7.22.20':
- resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==}
+ '@babel/helper-plugin-utils@7.24.7':
+ resolution: {integrity: sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-remap-async-to-generator@7.24.7':
+ resolution: {integrity: sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/helper-replace-supers@7.22.20':
- resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==}
+ '@babel/helper-replace-supers@7.24.7':
+ resolution: {integrity: sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
@@ -1573,71 +1578,101 @@ packages:
resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
engines: {node: '>=6.9.0'}
- '@babel/helper-skip-transparent-expression-wrappers@7.22.5':
- resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
+ '@babel/helper-simple-access@7.24.7':
+ resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-skip-transparent-expression-wrappers@7.24.7':
+ resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==}
engines: {node: '>=6.9.0'}
'@babel/helper-split-export-declaration@7.22.6':
resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-split-export-declaration@7.24.7':
+ resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-string-parser@7.23.4':
resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-string-parser@7.24.7':
+ resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-validator-identifier@7.22.20':
resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-validator-identifier@7.24.7':
+ resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-validator-option@7.23.5':
resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==}
engines: {node: '>=6.9.0'}
- '@babel/helper-wrap-function@7.22.20':
- resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==}
+ '@babel/helper-validator-option@7.24.7':
+ resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-wrap-function@7.24.7':
+ resolution: {integrity: sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==}
engines: {node: '>=6.9.0'}
'@babel/helpers@7.23.5':
resolution: {integrity: sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==}
engines: {node: '>=6.9.0'}
- '@babel/helpers@7.24.0':
- resolution: {integrity: sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==}
+ '@babel/helpers@7.24.7':
+ resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==}
engines: {node: '>=6.9.0'}
'@babel/highlight@7.23.4':
resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==}
engines: {node: '>=6.9.0'}
+ '@babel/highlight@7.24.7':
+ resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==}
+ engines: {node: '>=6.9.0'}
+
'@babel/parser@7.23.9':
resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==}
engines: {node: '>=6.0.0'}
hasBin: true
- '@babel/parser@7.24.0':
- resolution: {integrity: sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==}
+ '@babel/parser@7.24.5':
+ resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==}
engines: {node: '>=6.0.0'}
hasBin: true
- '@babel/parser@7.24.5':
- resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==}
+ '@babel/parser@7.24.7':
+ resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==}
engines: {node: '>=6.0.0'}
hasBin: true
- '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3':
- resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==}
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7':
+ resolution: {integrity: sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.7':
+ resolution: {integrity: sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3':
- resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==}
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7':
+ resolution: {integrity: sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.13.0
- '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3':
- resolution: {integrity: sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==}
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.7':
+ resolution: {integrity: sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
@@ -1685,14 +1720,14 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-syntax-import-assertions@7.23.3':
- resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==}
+ '@babel/plugin-syntax-import-assertions@7.24.7':
+ resolution: {integrity: sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-syntax-import-attributes@7.23.3':
- resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==}
+ '@babel/plugin-syntax-import-attributes@7.24.7':
+ resolution: {integrity: sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -1767,92 +1802,92 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/plugin-transform-arrow-functions@7.23.3':
- resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==}
+ '@babel/plugin-transform-arrow-functions@7.24.7':
+ resolution: {integrity: sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-async-generator-functions@7.23.4':
- resolution: {integrity: sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==}
+ '@babel/plugin-transform-async-generator-functions@7.24.7':
+ resolution: {integrity: sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-async-to-generator@7.23.3':
- resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==}
+ '@babel/plugin-transform-async-to-generator@7.24.7':
+ resolution: {integrity: sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-block-scoped-functions@7.23.3':
- resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==}
+ '@babel/plugin-transform-block-scoped-functions@7.24.7':
+ resolution: {integrity: sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-block-scoping@7.23.4':
- resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==}
+ '@babel/plugin-transform-block-scoping@7.24.7':
+ resolution: {integrity: sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-class-properties@7.23.3':
- resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==}
+ '@babel/plugin-transform-class-properties@7.24.7':
+ resolution: {integrity: sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-class-static-block@7.23.4':
- resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==}
+ '@babel/plugin-transform-class-static-block@7.24.7':
+ resolution: {integrity: sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.12.0
- '@babel/plugin-transform-classes@7.23.5':
- resolution: {integrity: sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==}
+ '@babel/plugin-transform-classes@7.24.7':
+ resolution: {integrity: sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-computed-properties@7.23.3':
- resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==}
+ '@babel/plugin-transform-computed-properties@7.24.7':
+ resolution: {integrity: sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-destructuring@7.23.3':
- resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==}
+ '@babel/plugin-transform-destructuring@7.24.7':
+ resolution: {integrity: sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-dotall-regex@7.23.3':
- resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==}
+ '@babel/plugin-transform-dotall-regex@7.24.7':
+ resolution: {integrity: sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-duplicate-keys@7.23.3':
- resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==}
+ '@babel/plugin-transform-duplicate-keys@7.24.7':
+ resolution: {integrity: sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-dynamic-import@7.23.4':
- resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==}
+ '@babel/plugin-transform-dynamic-import@7.24.7':
+ resolution: {integrity: sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-exponentiation-operator@7.23.3':
- resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==}
+ '@babel/plugin-transform-exponentiation-operator@7.24.7':
+ resolution: {integrity: sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-export-namespace-from@7.23.4':
- resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==}
+ '@babel/plugin-transform-export-namespace-from@7.24.7':
+ resolution: {integrity: sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -1863,176 +1898,176 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-for-of@7.23.3':
- resolution: {integrity: sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==}
+ '@babel/plugin-transform-for-of@7.24.7':
+ resolution: {integrity: sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-function-name@7.23.3':
- resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==}
+ '@babel/plugin-transform-function-name@7.24.7':
+ resolution: {integrity: sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-json-strings@7.23.4':
- resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==}
+ '@babel/plugin-transform-json-strings@7.24.7':
+ resolution: {integrity: sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-literals@7.23.3':
- resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==}
+ '@babel/plugin-transform-literals@7.24.7':
+ resolution: {integrity: sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-logical-assignment-operators@7.23.4':
- resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==}
+ '@babel/plugin-transform-logical-assignment-operators@7.24.7':
+ resolution: {integrity: sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-member-expression-literals@7.23.3':
- resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==}
+ '@babel/plugin-transform-member-expression-literals@7.24.7':
+ resolution: {integrity: sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-modules-amd@7.23.3':
- resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==}
+ '@babel/plugin-transform-modules-amd@7.24.7':
+ resolution: {integrity: sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-modules-commonjs@7.23.3':
- resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==}
+ '@babel/plugin-transform-modules-commonjs@7.24.7':
+ resolution: {integrity: sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-modules-systemjs@7.23.3':
- resolution: {integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==}
+ '@babel/plugin-transform-modules-systemjs@7.24.7':
+ resolution: {integrity: sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-modules-umd@7.23.3':
- resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==}
+ '@babel/plugin-transform-modules-umd@7.24.7':
+ resolution: {integrity: sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-named-capturing-groups-regex@7.22.5':
- resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==}
+ '@babel/plugin-transform-named-capturing-groups-regex@7.24.7':
+ resolution: {integrity: sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/plugin-transform-new-target@7.23.3':
- resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==}
+ '@babel/plugin-transform-new-target@7.24.7':
+ resolution: {integrity: sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-nullish-coalescing-operator@7.23.4':
- resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==}
+ '@babel/plugin-transform-nullish-coalescing-operator@7.24.7':
+ resolution: {integrity: sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-numeric-separator@7.23.4':
- resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==}
+ '@babel/plugin-transform-numeric-separator@7.24.7':
+ resolution: {integrity: sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-object-rest-spread@7.23.4':
- resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==}
+ '@babel/plugin-transform-object-rest-spread@7.24.7':
+ resolution: {integrity: sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-object-super@7.23.3':
- resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==}
+ '@babel/plugin-transform-object-super@7.24.7':
+ resolution: {integrity: sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-optional-catch-binding@7.23.4':
- resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==}
+ '@babel/plugin-transform-optional-catch-binding@7.24.7':
+ resolution: {integrity: sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-optional-chaining@7.23.4':
- resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==}
+ '@babel/plugin-transform-optional-chaining@7.24.7':
+ resolution: {integrity: sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-parameters@7.23.3':
- resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==}
+ '@babel/plugin-transform-parameters@7.24.7':
+ resolution: {integrity: sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-private-methods@7.23.3':
- resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==}
+ '@babel/plugin-transform-private-methods@7.24.7':
+ resolution: {integrity: sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-private-property-in-object@7.23.4':
- resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==}
+ '@babel/plugin-transform-private-property-in-object@7.24.7':
+ resolution: {integrity: sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-property-literals@7.23.3':
- resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==}
+ '@babel/plugin-transform-property-literals@7.24.7':
+ resolution: {integrity: sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-regenerator@7.23.3':
- resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==}
+ '@babel/plugin-transform-regenerator@7.24.7':
+ resolution: {integrity: sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-reserved-words@7.23.3':
- resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==}
+ '@babel/plugin-transform-reserved-words@7.24.7':
+ resolution: {integrity: sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-shorthand-properties@7.23.3':
- resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==}
+ '@babel/plugin-transform-shorthand-properties@7.24.7':
+ resolution: {integrity: sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-spread@7.23.3':
- resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==}
+ '@babel/plugin-transform-spread@7.24.7':
+ resolution: {integrity: sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-sticky-regex@7.23.3':
- resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==}
+ '@babel/plugin-transform-sticky-regex@7.24.7':
+ resolution: {integrity: sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-template-literals@7.23.3':
- resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==}
+ '@babel/plugin-transform-template-literals@7.24.7':
+ resolution: {integrity: sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-typeof-symbol@7.23.3':
- resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==}
+ '@babel/plugin-transform-typeof-symbol@7.24.7':
+ resolution: {integrity: sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -2043,32 +2078,32 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-unicode-escapes@7.23.3':
- resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==}
+ '@babel/plugin-transform-unicode-escapes@7.24.7':
+ resolution: {integrity: sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-unicode-property-regex@7.23.3':
- resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==}
+ '@babel/plugin-transform-unicode-property-regex@7.24.7':
+ resolution: {integrity: sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-unicode-regex@7.23.3':
- resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==}
+ '@babel/plugin-transform-unicode-regex@7.24.7':
+ resolution: {integrity: sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-unicode-sets-regex@7.23.3':
- resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==}
+ '@babel/plugin-transform-unicode-sets-regex@7.24.7':
+ resolution: {integrity: sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/preset-env@7.23.5':
- resolution: {integrity: sha512-0d/uxVD6tFGWXGDSfyMD1p2otoaKmu6+GD+NfAx0tMaH+dxORnp7T9TaVQ6mKyya7iBtCIVxHjWT7MuzzM9z+A==}
+ '@babel/preset-env@7.24.7':
+ resolution: {integrity: sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -2111,12 +2146,16 @@ packages:
resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==}
engines: {node: '>=6.9.0'}
+ '@babel/template@7.24.7':
+ resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==}
+ engines: {node: '>=6.9.0'}
+
'@babel/traverse@7.23.5':
resolution: {integrity: sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==}
engines: {node: '>=6.9.0'}
- '@babel/traverse@7.24.0':
- resolution: {integrity: sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==}
+ '@babel/traverse@7.24.7':
+ resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==}
engines: {node: '>=6.9.0'}
'@babel/types@7.23.5':
@@ -2127,22 +2166,26 @@ packages:
resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==}
engines: {node: '>=6.9.0'}
+ '@babel/types@7.24.7':
+ resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==}
+ engines: {node: '>=6.9.0'}
+
'@base2/pretty-print-object@1.0.1':
resolution: {integrity: sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==}
'@bcoe/v8-coverage@0.2.3':
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
- '@bull-board/api@5.17.0':
- resolution: {integrity: sha512-qU+AiZIaYa//rkt1x7jDowtYa8u7/dLsDfEWgenZMkgvUszZ1kxJszdCtGapsDTVyPmnXgTRxpOWcR6sAYwSNQ==}
+ '@bull-board/api@5.20.5':
+ resolution: {integrity: sha512-YI95JK5A4/K4KB5VWbQn/CYNB+AO5cZ/BnZ77LxAhsaJ3ssHBN3Au0n3Z4wD7O+78+W3ON9uqGjKnHV6rXBGcQ==}
peerDependencies:
- '@bull-board/ui': 5.17.0
+ '@bull-board/ui': 5.20.5
- '@bull-board/fastify@5.17.0':
- resolution: {integrity: sha512-73YrPc7ERTWSOQRgBP6a7BPscWfcHd8U+Zq0auMdL/KkjPhG9GxapbfnovGZDDahJL/p/4YQb6ULu03zdtOrEA==}
+ '@bull-board/fastify@5.20.5':
+ resolution: {integrity: sha512-tdMR97xbzEzBbMJiJQreJHGdhfOocQn61K/WqM9I038Dk1dBHM5phQJxRJhspvwEJV4jwAayNOZbzuETI7QKwA==}
- '@bull-board/ui@5.17.0':
- resolution: {integrity: sha512-Vj+yWPjrjx3Iqh2N/ZBDhK2d2yJD44dfvIxm+SnXQb4ne312j117TpViInceysxGtbbAOlAW6hq6JvsDoRl7KQ==}
+ '@bull-board/ui@5.20.5':
+ resolution: {integrity: sha512-RV9VlW4qVL1A0Dewpsor4z7ZL9D56OW9LcRYjvXrIU5FSzvTvYKofmrUYoVrNQDs6jGMwJic+dMiW9K8GUU15A==}
'@bundled-es-modules/cookie@2.0.0':
resolution: {integrity: sha512-Or6YHg/kamKHpxULAdSqhGqnWFneIXu1NKvvfBBzKGwpVsYuFIQ5aBPHDnnoR3ghW1nvSkALd+EF9iMtY7Vjxw==}
@@ -2222,12 +2265,18 @@ packages:
cpu: [ppc64]
os: [aix]
- '@esbuild/aix-ppc64@0.20.2':
- resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==}
+ '@esbuild/aix-ppc64@0.21.5':
+ resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [aix]
+ '@esbuild/aix-ppc64@0.22.0':
+ resolution: {integrity: sha512-uvQR2crZ/zgzSHDvdygHyNI+ze9zwS8mqz0YtGXotSqvEE0UkYE9s+FZKQNTt1VtT719mfP3vHrUdCpxBNQZhQ==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [aix]
+
'@esbuild/android-arm64@0.18.20':
resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==}
engines: {node: '>=12'}
@@ -2240,12 +2289,18 @@ packages:
cpu: [arm64]
os: [android]
- '@esbuild/android-arm64@0.20.2':
- resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==}
+ '@esbuild/android-arm64@0.21.5':
+ resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==}
engines: {node: '>=12'}
cpu: [arm64]
os: [android]
+ '@esbuild/android-arm64@0.22.0':
+ resolution: {integrity: sha512-UKhPb3o2gAB/bfXcl58ZXTn1q2oVu1rEu/bKrCtmm+Nj5MKUbrOwR5WAixE2v+lk0amWuwPvhnPpBRLIGiq7ig==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [android]
+
'@esbuild/android-arm@0.18.20':
resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==}
engines: {node: '>=12'}
@@ -2258,12 +2313,18 @@ packages:
cpu: [arm]
os: [android]
- '@esbuild/android-arm@0.20.2':
- resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==}
+ '@esbuild/android-arm@0.21.5':
+ resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==}
engines: {node: '>=12'}
cpu: [arm]
os: [android]
+ '@esbuild/android-arm@0.22.0':
+ resolution: {integrity: sha512-PBnyP+r8vJE4ifxsWys9l+Mc2UY/yYZOpX82eoyGISXXb3dRr0M21v+s4fgRKWMFPMSf/iyowqPW/u7ScSUkjQ==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [android]
+
'@esbuild/android-x64@0.18.20':
resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==}
engines: {node: '>=12'}
@@ -2276,12 +2337,18 @@ packages:
cpu: [x64]
os: [android]
- '@esbuild/android-x64@0.20.2':
- resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==}
+ '@esbuild/android-x64@0.21.5':
+ resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==}
engines: {node: '>=12'}
cpu: [x64]
os: [android]
+ '@esbuild/android-x64@0.22.0':
+ resolution: {integrity: sha512-IjTYtvIrjhR41Ijy2dDPgYjQHWG/x/A4KXYbs1fiU3efpRdoxMChK3oEZV6GPzVEzJqxFgcuBaiX1kwEvWUxSw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [android]
+
'@esbuild/darwin-arm64@0.18.20':
resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==}
engines: {node: '>=12'}
@@ -2294,12 +2361,18 @@ packages:
cpu: [arm64]
os: [darwin]
- '@esbuild/darwin-arm64@0.20.2':
- resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==}
+ '@esbuild/darwin-arm64@0.21.5':
+ resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==}
engines: {node: '>=12'}
cpu: [arm64]
os: [darwin]
+ '@esbuild/darwin-arm64@0.22.0':
+ resolution: {integrity: sha512-mqt+Go4y9wRvEz81bhKd9RpHsQR1LwU8Xm6jZRUV/xpM7cIQFbFH6wBCLPTNsdELBvfoHeumud7X78jQQJv2TA==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [darwin]
+
'@esbuild/darwin-x64@0.18.20':
resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==}
engines: {node: '>=12'}
@@ -2312,12 +2385,18 @@ packages:
cpu: [x64]
os: [darwin]
- '@esbuild/darwin-x64@0.20.2':
- resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==}
+ '@esbuild/darwin-x64@0.21.5':
+ resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==}
engines: {node: '>=12'}
cpu: [x64]
os: [darwin]
+ '@esbuild/darwin-x64@0.22.0':
+ resolution: {integrity: sha512-vTaTQ9OgYc3VTaWtOE5pSuDT6H3d/qSRFRfSBbnxFfzAvYoB3pqKXA0LEbi/oT8GUOEAutspfRMqPj2ezdFaMw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [darwin]
+
'@esbuild/freebsd-arm64@0.18.20':
resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==}
engines: {node: '>=12'}
@@ -2330,12 +2409,18 @@ packages:
cpu: [arm64]
os: [freebsd]
- '@esbuild/freebsd-arm64@0.20.2':
- resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==}
+ '@esbuild/freebsd-arm64@0.21.5':
+ resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==}
engines: {node: '>=12'}
cpu: [arm64]
os: [freebsd]
+ '@esbuild/freebsd-arm64@0.22.0':
+ resolution: {integrity: sha512-0e1ZgoobJzaGnR4reD7I9rYZ7ttqdh1KPvJWnquUoDJhL0rYwdneeLailBzd2/4g/U5p4e5TIHEWa68NF2hFpQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [freebsd]
+
'@esbuild/freebsd-x64@0.18.20':
resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==}
engines: {node: '>=12'}
@@ -2348,12 +2433,18 @@ packages:
cpu: [x64]
os: [freebsd]
- '@esbuild/freebsd-x64@0.20.2':
- resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==}
+ '@esbuild/freebsd-x64@0.21.5':
+ resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [freebsd]
+ '@esbuild/freebsd-x64@0.22.0':
+ resolution: {integrity: sha512-BFgyYwlCwRWyPQJtkzqq2p6pJbiiWgp0P9PNf7a5FQ1itKY4czPuOMAlFVItirSmEpRPCeImuwePNScZS0pL5Q==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [freebsd]
+
'@esbuild/linux-arm64@0.18.20':
resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==}
engines: {node: '>=12'}
@@ -2366,12 +2457,18 @@ packages:
cpu: [arm64]
os: [linux]
- '@esbuild/linux-arm64@0.20.2':
- resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==}
+ '@esbuild/linux-arm64@0.21.5':
+ resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==}
engines: {node: '>=12'}
cpu: [arm64]
os: [linux]
+ '@esbuild/linux-arm64@0.22.0':
+ resolution: {integrity: sha512-V/K2rctCUgC0PCXpN7AqT4hoazXKgIYugFGu/myk2+pfe6jTW2guz/TBwq4cZ7ESqusR/IzkcQaBkcjquuBWsw==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [linux]
+
'@esbuild/linux-arm@0.18.20':
resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==}
engines: {node: '>=12'}
@@ -2384,12 +2481,18 @@ packages:
cpu: [arm]
os: [linux]
- '@esbuild/linux-arm@0.20.2':
- resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==}
+ '@esbuild/linux-arm@0.21.5':
+ resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==}
engines: {node: '>=12'}
cpu: [arm]
os: [linux]
+ '@esbuild/linux-arm@0.22.0':
+ resolution: {integrity: sha512-KEMWiA9aGuPUD4BH5yjlhElLgaRXe+Eri6gKBoDazoPBTo1BXc/e6IW5FcJO9DoL19FBeCxgONyh95hLDNepIg==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [linux]
+
'@esbuild/linux-ia32@0.18.20':
resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==}
engines: {node: '>=12'}
@@ -2402,12 +2505,18 @@ packages:
cpu: [ia32]
os: [linux]
- '@esbuild/linux-ia32@0.20.2':
- resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==}
+ '@esbuild/linux-ia32@0.21.5':
+ resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==}
engines: {node: '>=12'}
cpu: [ia32]
os: [linux]
+ '@esbuild/linux-ia32@0.22.0':
+ resolution: {integrity: sha512-r2ZZqkOMOrpUhzNwxI7uLAHIDwkfeqmTnrv1cjpL/rjllPWszgqmprd/om9oviKXUBpMqHbXmppvjAYgISb26Q==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [linux]
+
'@esbuild/linux-loong64@0.18.20':
resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==}
engines: {node: '>=12'}
@@ -2420,12 +2529,18 @@ packages:
cpu: [loong64]
os: [linux]
- '@esbuild/linux-loong64@0.20.2':
- resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==}
+ '@esbuild/linux-loong64@0.21.5':
+ resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==}
engines: {node: '>=12'}
cpu: [loong64]
os: [linux]
+ '@esbuild/linux-loong64@0.22.0':
+ resolution: {integrity: sha512-qaowLrV/YOMAL2RfKQ4C/VaDzAuLDuylM2sd/LH+4OFirMl6CuDpRlCq4u49ZBaVV8pkI/Y+hTdiibvQRhojCA==}
+ engines: {node: '>=18'}
+ cpu: [loong64]
+ os: [linux]
+
'@esbuild/linux-mips64el@0.18.20':
resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==}
engines: {node: '>=12'}
@@ -2438,12 +2553,18 @@ packages:
cpu: [mips64el]
os: [linux]
- '@esbuild/linux-mips64el@0.20.2':
- resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==}
+ '@esbuild/linux-mips64el@0.21.5':
+ resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==}
engines: {node: '>=12'}
cpu: [mips64el]
os: [linux]
+ '@esbuild/linux-mips64el@0.22.0':
+ resolution: {integrity: sha512-hgrezzjQTRxjkQ5k08J6rtZN5PNnkWx/Rz6Kmj9gnsdCAX1I4Dn4ZPqvFRkXo55Q3pnVQJBwbdtrTO7tMGtyVA==}
+ engines: {node: '>=18'}
+ cpu: [mips64el]
+ os: [linux]
+
'@esbuild/linux-ppc64@0.18.20':
resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==}
engines: {node: '>=12'}
@@ -2456,12 +2577,18 @@ packages:
cpu: [ppc64]
os: [linux]
- '@esbuild/linux-ppc64@0.20.2':
- resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==}
+ '@esbuild/linux-ppc64@0.21.5':
+ resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [linux]
+ '@esbuild/linux-ppc64@0.22.0':
+ resolution: {integrity: sha512-ewxg6FLLUio883XgSjfULEmDl3VPv/TYNnRprVAS3QeGFLdCYdx1tIudBcd7n9jIdk82v1Ajov4jx87qW7h9+g==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [linux]
+
'@esbuild/linux-riscv64@0.18.20':
resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==}
engines: {node: '>=12'}
@@ -2474,12 +2601,18 @@ packages:
cpu: [riscv64]
os: [linux]
- '@esbuild/linux-riscv64@0.20.2':
- resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==}
+ '@esbuild/linux-riscv64@0.21.5':
+ resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==}
engines: {node: '>=12'}
cpu: [riscv64]
os: [linux]
+ '@esbuild/linux-riscv64@0.22.0':
+ resolution: {integrity: sha512-Az5XbgSJC2lE8XK8pdcutsf9RgdafWdTpUK/+6uaDdfkviw/B4JCwAfh1qVeRWwOohwdsl4ywZrWBNWxwrPLFg==}
+ engines: {node: '>=18'}
+ cpu: [riscv64]
+ os: [linux]
+
'@esbuild/linux-s390x@0.18.20':
resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==}
engines: {node: '>=12'}
@@ -2492,12 +2625,18 @@ packages:
cpu: [s390x]
os: [linux]
- '@esbuild/linux-s390x@0.20.2':
- resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==}
+ '@esbuild/linux-s390x@0.21.5':
+ resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==}
engines: {node: '>=12'}
cpu: [s390x]
os: [linux]
+ '@esbuild/linux-s390x@0.22.0':
+ resolution: {integrity: sha512-8j4a2ChT9+V34NNNY9c/gMldutaJFmfMacTPq4KfNKwv2fitBCLYjee7c+Vxaha2nUhPK7cXcZpJtJ3+Y7ZdVQ==}
+ engines: {node: '>=18'}
+ cpu: [s390x]
+ os: [linux]
+
'@esbuild/linux-x64@0.18.20':
resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==}
engines: {node: '>=12'}
@@ -2510,12 +2649,18 @@ packages:
cpu: [x64]
os: [linux]
- '@esbuild/linux-x64@0.20.2':
- resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==}
+ '@esbuild/linux-x64@0.21.5':
+ resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [linux]
+ '@esbuild/linux-x64@0.22.0':
+ resolution: {integrity: sha512-JUQyOnpbAkkRFOk/AhsEemz5TfWN4FJZxVObUlnlNCbe7QBl61ZNfM4cwBXayQA6laMJMUcqLHaYQHAB6YQ95Q==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [linux]
+
'@esbuild/netbsd-x64@0.18.20':
resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==}
engines: {node: '>=12'}
@@ -2528,12 +2673,24 @@ packages:
cpu: [x64]
os: [netbsd]
- '@esbuild/netbsd-x64@0.20.2':
- resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==}
+ '@esbuild/netbsd-x64@0.21.5':
+ resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==}
engines: {node: '>=12'}
cpu: [x64]
os: [netbsd]
+ '@esbuild/netbsd-x64@0.22.0':
+ resolution: {integrity: sha512-11PoCoHXo4HFNbLsXuMB6bpMPWGDiw7xETji6COdJss4SQZLvcgNoeSqWtATRm10Jj1uEHiaIk4N0PiN6x4Fcg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [netbsd]
+
+ '@esbuild/openbsd-arm64@0.22.0':
+ resolution: {integrity: sha512-Ezlhu/YyITmXwKSB+Zu/QqD7cxrjrpiw85cc0Rbd3AWr2wsgp+dWbWOE8MqHaLW9NKMZvuL0DhbJbvzR7F6Zvg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openbsd]
+
'@esbuild/openbsd-x64@0.18.20':
resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==}
engines: {node: '>=12'}
@@ -2546,12 +2703,18 @@ packages:
cpu: [x64]
os: [openbsd]
- '@esbuild/openbsd-x64@0.20.2':
- resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==}
+ '@esbuild/openbsd-x64@0.21.5':
+ resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==}
engines: {node: '>=12'}
cpu: [x64]
os: [openbsd]
+ '@esbuild/openbsd-x64@0.22.0':
+ resolution: {integrity: sha512-ufjdW5tFJGUjlH9j/5cCE9lrwRffyZh+T4vYvoDKoYsC6IXbwaFeV/ENxeNXcxotF0P8CDzoICXVSbJaGBhkrw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [openbsd]
+
'@esbuild/sunos-x64@0.18.20':
resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==}
engines: {node: '>=12'}
@@ -2564,13 +2727,19 @@ packages:
cpu: [x64]
os: [sunos]
- '@esbuild/sunos-x64@0.20.2':
- resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==}
+ '@esbuild/sunos-x64@0.21.5':
+ resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==}
engines: {node: '>=12'}
cpu: [x64]
os: [sunos]
- '@esbuild/win32-arm64@0.18.20':
+ '@esbuild/sunos-x64@0.22.0':
+ resolution: {integrity: sha512-zY6ly/AoSmKnmNTowDJsK5ehra153/5ZhqxNLfq9NRsTTltetr+yHHcQ4RW7QDqw4JC8A1uC1YmeSfK9NRcK1w==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [sunos]
+
+ '@esbuild/win32-arm64@0.18.20':
resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==}
engines: {node: '>=12'}
cpu: [arm64]
@@ -2582,12 +2751,18 @@ packages:
cpu: [arm64]
os: [win32]
- '@esbuild/win32-arm64@0.20.2':
- resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==}
+ '@esbuild/win32-arm64@0.21.5':
+ resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==}
engines: {node: '>=12'}
cpu: [arm64]
os: [win32]
+ '@esbuild/win32-arm64@0.22.0':
+ resolution: {integrity: sha512-Kml5F7tv/1Maam0pbbCrvkk9vj046dPej30kFzlhXnhuCtYYBP6FGy/cLbc5yUT1lkZznGLf2OvuvmLjscO5rw==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [win32]
+
'@esbuild/win32-ia32@0.18.20':
resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==}
engines: {node: '>=12'}
@@ -2600,12 +2775,18 @@ packages:
cpu: [ia32]
os: [win32]
- '@esbuild/win32-ia32@0.20.2':
- resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==}
+ '@esbuild/win32-ia32@0.21.5':
+ resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==}
engines: {node: '>=12'}
cpu: [ia32]
os: [win32]
+ '@esbuild/win32-ia32@0.22.0':
+ resolution: {integrity: sha512-IOgwn+mYTM3RrcydP4Og5IpXh+ftN8oF+HELTXSmbWBlujuci4Qa3DTeO+LEErceisI7KUSfEIiX+WOUlpELkw==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [win32]
+
'@esbuild/win32-x64@0.18.20':
resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==}
engines: {node: '>=12'}
@@ -2618,12 +2799,18 @@ packages:
cpu: [x64]
os: [win32]
- '@esbuild/win32-x64@0.20.2':
- resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==}
+ '@esbuild/win32-x64@0.21.5':
+ resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==}
engines: {node: '>=12'}
cpu: [x64]
os: [win32]
+ '@esbuild/win32-x64@0.22.0':
+ resolution: {integrity: sha512-4bDHJrk2WHBXJPhy1y80X7/5b5iZTZP3LGcKIlAP1J+KqZ4zQAPMLEzftGyjjfcKbA4JDlPt/+2R/F1ZTeRgrw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [win32]
+
'@eslint-community/eslint-utils@4.4.0':
resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -2638,17 +2825,25 @@ packages:
resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
- '@eslint/eslintrc@2.1.4':
- resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ '@eslint/compat@1.1.0':
+ resolution: {integrity: sha512-s9Wi/p25+KbzxKlDm3VshQdImhWk+cbdblhwGNnyCU5lpSwtWa4v7VQCxSki0FAUrGA3s8nCWgYzAH41mwQVKQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/js@8.53.0':
- resolution: {integrity: sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ '@eslint/config-array@0.17.0':
+ resolution: {integrity: sha512-A68TBu6/1mHHuc5YJL0U0VVeGNiklLAL6rRmhTCP2B5XjWLMnrX+HkO+IAXyHvks5cyyY1jjK5ITPQ1HGS2EVA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/js@8.57.0':
- resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ '@eslint/eslintrc@3.1.0':
+ resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/js@9.6.0':
+ resolution: {integrity: sha512-D9B0/3vNg44ZeWbYMpBoXqNP4j6eQD5vNwIlGAuFRRzK/WtT/jvDQW3Bi9kkf3PMDMlM7Yi+73VLUsn5bJcl8A==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/object-schema@2.1.4':
+ resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@fal-works/esbuild-plugin-global-externals@2.1.2':
resolution: {integrity: sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==}
@@ -2688,8 +2883,8 @@ packages:
'@fastify/http-proxy@9.5.0':
resolution: {integrity: sha512-1iqIdV10d5k9YtfHq9ylX5zt1NiM50fG+rIX40qt00R694sqWso3ukyTFZVk33SDoSiBW8roB7n11RUVUoN+Ag==}
- '@fastify/multipart@8.2.0':
- resolution: {integrity: sha512-OZ8nsyyoS2TV7Yeu3ZdrdDGsKUTAbfjrKC9jSxGgT2qdgek+BxpWX31ZubTrWMNZyU5xwk4ox6AvTjAbYWjrWg==}
+ '@fastify/multipart@8.3.0':
+ resolution: {integrity: sha512-A8h80TTyqUzaMVH0Cr9Qcm6RxSkVqmhK/MVBYHYeRRSUbUYv08WecjWKSlG2aSnD4aGI841pVxAjC+G1GafUeQ==}
'@fastify/reply-from@9.0.1':
resolution: {integrity: sha512-q9vFNUiXZTY1x8omDPe59os2MYq+3y7KgO/kZoXpZlnud+45Nd8Ot/svEvrUATzjkizIggfS4K8LR9zXDyZZKg==}
@@ -2700,8 +2895,8 @@ packages:
'@fastify/static@6.12.0':
resolution: {integrity: sha512-KK1B84E6QD/FcQWxDI2aiUCwHxMJBI1KeCUzm1BwYpPY1b742+jeKruGHP2uOluuM6OkBPI8CIANrXcCRtC2oQ==}
- '@fastify/static@7.0.3':
- resolution: {integrity: sha512-2tmTdF+uFCykasutaO6k4/wOt7eXyi7m3dGuCPo5micXzv0qt6ttb/nWnDYL/BlXjYGfp1JI4a1gyluTIylvQA==}
+ '@fastify/static@7.0.4':
+ resolution: {integrity: sha512-p2uKtaf8BMOZWLs6wu+Ihg7bWNBdjNgCwDza4MJtTqg+5ovKmcbgbR9Xs5/smZ1YISfzKOCNYmZV8LaCj+eJ1Q==}
'@fastify/view@8.2.0':
resolution: {integrity: sha512-hBSiBofCnJNlPHEMZWpO1SL84eqOaqujJ1hR3jntFyZZCkweH5jMs12DKYyGesjVll7SJFRRxPUBB8kmUmneRQ==}
@@ -2719,11 +2914,8 @@ packages:
'@hapi/bourne@3.0.0':
resolution: {integrity: sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w==}
- '@hapi/hoek@10.0.1':
- resolution: {integrity: sha512-CvlW7jmOhWzuqOqiJQ3rQVLMcREh0eel4IBnxDx2FAcK8g7qoJRQK4L1CPBASoCY6y8e6zuCy3f2g+HWdkzcMw==}
-
- '@hapi/hoek@11.0.2':
- resolution: {integrity: sha512-aKmlCO57XFZ26wso4rJsW4oTUnrgTFw2jh3io7CAtO9w4UltBNwRXvXIVzzyfkaaLRo3nluP/19msA8vDUUuKw==}
+ '@hapi/hoek@11.0.4':
+ resolution: {integrity: sha512-PnsP5d4q7289pS2T2EgGz147BFJ2Jpb4yrEdkpz2IhgEUzos1S7HTl7ezWh1yfYzYlj89KzLdCRkqsP6SIryeQ==}
'@hapi/hoek@9.3.0':
resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==}
@@ -2737,14 +2929,6 @@ packages:
'@hexagon/base64@1.1.27':
resolution: {integrity: sha512-PdUmzpvcUM3Rh39kvz9RdbPVYhMjBjdV7Suw7ZduP7urRLsZR8l5tzgSWKm7TExwBYDFwTnYrZbnE0rQ3N5NLQ==}
- '@humanwhocodes/config-array@0.11.13':
- resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==}
- engines: {node: '>=10.10.0'}
-
- '@humanwhocodes/config-array@0.11.14':
- resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
- engines: {node: '>=10.10.0'}
-
'@humanwhocodes/module-importer@1.0.1':
resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
engines: {node: '>=12.22'}
@@ -2753,20 +2937,18 @@ packages:
resolution: {integrity: sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA==}
engines: {node: '>=10.10.0'}
- '@humanwhocodes/object-schema@2.0.1':
- resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==}
-
- '@humanwhocodes/object-schema@2.0.2':
- resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==}
+ '@humanwhocodes/retry@0.3.0':
+ resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==}
+ engines: {node: '>=18.18'}
- '@img/sharp-darwin-arm64@0.33.3':
- resolution: {integrity: sha512-FaNiGX1MrOuJ3hxuNzWgsT/mg5OHG/Izh59WW2mk1UwYHUwtfbhk5QNKYZgxf0pLOhx9ctGiGa2OykD71vOnSw==}
+ '@img/sharp-darwin-arm64@0.33.4':
+ resolution: {integrity: sha512-p0suNqXufJs9t3RqLBO6vvrgr5OhgbWp76s5gTRvdmxmuv9E1rcaqGUsl3l4mKVmXPkTkTErXediAui4x+8PSA==}
engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
cpu: [arm64]
os: [darwin]
- '@img/sharp-darwin-x64@0.33.3':
- resolution: {integrity: sha512-2QeSl7QDK9ru//YBT4sQkoq7L0EAJZA3rtV+v9p8xTKl4U1bUqTIaCnoC7Ctx2kCjQgwFXDasOtPTCT8eCTXvw==}
+ '@img/sharp-darwin-x64@0.33.4':
+ resolution: {integrity: sha512-0l7yRObwtTi82Z6ebVI2PnHT8EB2NxBgpK2MiKJZJ7cz32R4lxd001ecMhzzsZig3Yv9oclvqqdV93jo9hy+Dw==}
engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
cpu: [x64]
os: [darwin]
@@ -2819,55 +3001,55 @@ packages:
cpu: [x64]
os: [linux]
- '@img/sharp-linux-arm64@0.33.3':
- resolution: {integrity: sha512-Zf+sF1jHZJKA6Gor9hoYG2ljr4wo9cY4twaxgFDvlG0Xz9V7sinsPp8pFd1XtlhTzYo0IhDbl3rK7P6MzHpnYA==}
+ '@img/sharp-linux-arm64@0.33.4':
+ resolution: {integrity: sha512-2800clwVg1ZQtxwSoTlHvtm9ObgAax7V6MTAB/hDT945Tfyy3hVkmiHpeLPCKYqYR1Gcmv1uDZ3a4OFwkdBL7Q==}
engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
cpu: [arm64]
os: [linux]
- '@img/sharp-linux-arm@0.33.3':
- resolution: {integrity: sha512-Q7Ee3fFSC9P7vUSqVEF0zccJsZ8GiiCJYGWDdhEjdlOeS9/jdkyJ6sUSPj+bL8VuOYFSbofrW0t/86ceVhx32w==}
+ '@img/sharp-linux-arm@0.33.4':
+ resolution: {integrity: sha512-RUgBD1c0+gCYZGCCe6mMdTiOFS0Zc/XrN0fYd6hISIKcDUbAW5NtSQW9g/powkrXYm6Vzwd6y+fqmExDuCdHNQ==}
engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
cpu: [arm]
os: [linux]
- '@img/sharp-linux-s390x@0.33.3':
- resolution: {integrity: sha512-vFk441DKRFepjhTEH20oBlFrHcLjPfI8B0pMIxGm3+yilKyYeHEVvrZhYFdqIseSclIqbQ3SnZMwEMWonY5XFA==}
- engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
+ '@img/sharp-linux-s390x@0.33.4':
+ resolution: {integrity: sha512-h3RAL3siQoyzSoH36tUeS0PDmb5wINKGYzcLB5C6DIiAn2F3udeFAum+gj8IbA/82+8RGCTn7XW8WTFnqag4tQ==}
+ engines: {glibc: '>=2.31', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
cpu: [s390x]
os: [linux]
- '@img/sharp-linux-x64@0.33.3':
- resolution: {integrity: sha512-Q4I++herIJxJi+qmbySd072oDPRkCg/SClLEIDh5IL9h1zjhqjv82H0Seupd+q2m0yOfD+/fJnjSoDFtKiHu2g==}
+ '@img/sharp-linux-x64@0.33.4':
+ resolution: {integrity: sha512-GoR++s0XW9DGVi8SUGQ/U4AeIzLdNjHka6jidVwapQ/JebGVQIpi52OdyxCNVRE++n1FCLzjDovJNozif7w/Aw==}
engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
cpu: [x64]
os: [linux]
- '@img/sharp-linuxmusl-arm64@0.33.3':
- resolution: {integrity: sha512-qnDccehRDXadhM9PM5hLvcPRYqyFCBN31kq+ErBSZtZlsAc1U4Z85xf/RXv1qolkdu+ibw64fUDaRdktxTNP9A==}
+ '@img/sharp-linuxmusl-arm64@0.33.4':
+ resolution: {integrity: sha512-nhr1yC3BlVrKDTl6cO12gTpXMl4ITBUZieehFvMntlCXFzH2bvKG76tBL2Y/OqhupZt81pR7R+Q5YhJxW0rGgQ==}
engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
cpu: [arm64]
os: [linux]
- '@img/sharp-linuxmusl-x64@0.33.3':
- resolution: {integrity: sha512-Jhchim8kHWIU/GZ+9poHMWRcefeaxFIs9EBqf9KtcC14Ojk6qua7ghKiPs0sbeLbLj/2IGBtDcxHyjCdYWkk2w==}
+ '@img/sharp-linuxmusl-x64@0.33.4':
+ resolution: {integrity: sha512-uCPTku0zwqDmZEOi4ILyGdmW76tH7dm8kKlOIV1XC5cLyJ71ENAAqarOHQh0RLfpIpbV5KOpXzdU6XkJtS0daw==}
engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
cpu: [x64]
os: [linux]
- '@img/sharp-wasm32@0.33.3':
- resolution: {integrity: sha512-68zivsdJ0koE96stdUfM+gmyaK/NcoSZK5dV5CAjES0FUXS9lchYt8LAB5rTbM7nlWtxaU/2GON0HVN6/ZYJAQ==}
+ '@img/sharp-wasm32@0.33.4':
+ resolution: {integrity: sha512-Bmmauh4sXUsUqkleQahpdNXKvo+wa1V9KhT2pDA4VJGKwnKMJXiSTGphn0gnJrlooda0QxCtXc6RX1XAU6hMnQ==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
cpu: [wasm32]
- '@img/sharp-win32-ia32@0.33.3':
- resolution: {integrity: sha512-CyimAduT2whQD8ER4Ux7exKrtfoaUiVr7HG0zZvO0XTFn2idUWljjxv58GxNTkFb8/J9Ub9AqITGkJD6ZginxQ==}
+ '@img/sharp-win32-ia32@0.33.4':
+ resolution: {integrity: sha512-99SJ91XzUhYHbx7uhK3+9Lf7+LjwMGQZMDlO/E/YVJ7Nc3lyDFZPGhjwiYdctoH2BOzW9+TnfqcaMKt0jHLdqw==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
cpu: [ia32]
os: [win32]
- '@img/sharp-win32-x64@0.33.3':
- resolution: {integrity: sha512-viT4fUIDKnli3IfOephGnolMzhz5VaTvDRkYqtZxOMIoMQ4MrAziO7pT1nVnOt2FAm7qW5aa+CCc13aEY6Le0g==}
+ '@img/sharp-win32-x64@0.33.4':
+ resolution: {integrity: sha512-3QLocdTRVIrFNye5YocZl+KKpYKP+fksi1QhmOArgx7GyhIbQp/WrJRu176jm8IxromS7RIkzMiMINVdBtC8Aw==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
cpu: [x64]
os: [win32]
@@ -2985,8 +3167,8 @@ packages:
resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0':
- resolution: {integrity: sha512-2D6y7fNvFmsLmRt6UCOFJPvFoPMJGT0Uh1Wg0RaigUp7kdQPs6yYn8Dmx6GZkOH/NW0yMTwRz/p0SRMMRo50vA==}
+ '@joshwooding/vite-plugin-react-docgen-typescript@0.3.1':
+ resolution: {integrity: sha512-pdoMZ9QaPnVlSM+SdU/wgg0nyD/8wQ7y90ttO2CMCyrrm7RxveYIJ5eNfjPaoMFqW41LZra7QO9j+xV4Y18Glw==}
peerDependencies:
typescript: '>= 4.3.x'
vite: ^3.0.0 || ^4.0.0 || ^5.0.0
@@ -2998,6 +3180,10 @@ packages:
resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==}
engines: {node: '>=6.0.0'}
+ '@jridgewell/gen-mapping@0.3.5':
+ resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
+ engines: {node: '>=6.0.0'}
+
'@jridgewell/resolve-uri@3.1.0':
resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
engines: {node: '>=6.0.0'}
@@ -3006,6 +3192,10 @@ packages:
resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
engines: {node: '>=6.0.0'}
+ '@jridgewell/set-array@1.2.1':
+ resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
+ engines: {node: '>=6.0.0'}
+
'@jridgewell/source-map@0.3.5':
resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==}
@@ -3018,6 +3208,9 @@ packages:
'@jridgewell/trace-mapping@0.3.18':
resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==}
+ '@jridgewell/trace-mapping@0.3.25':
+ resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
+
'@jsdevtools/ono@7.1.3':
resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==}
@@ -3051,29 +3244,31 @@ packages:
'@types/react': '>=16'
react: '>=16'
- '@microsoft/api-extractor-model@7.28.14':
- resolution: {integrity: sha512-Bery/c8A8SsKPSvA82cTTuy/+OcxZbLRmKhPkk91/AJOQzxZsShcrmHFAGeiEqSIrv1nPZ3tKq9kfMLdCHmsqg==}
+ '@microsoft/api-extractor-model@7.29.2':
+ resolution: {integrity: sha512-hAYajOjQan3uslhKJRwvvHIdLJ+ZByKqdSsJ/dgHFxPtEbdKpzMDO8zuW4K5gkSMYl5D0LbNwxkhxr51P2zsmw==}
- '@microsoft/api-extractor@7.43.1':
- resolution: {integrity: sha512-ohg40SsvFFgzHFAtYq5wKJc8ZDyY46bphjtnSvhSSlXpPTG7GHwyyXkn48UZiUCBwr2WC7TRC1Jfwz7nreuiyQ==}
+ '@microsoft/api-extractor@7.47.0':
+ resolution: {integrity: sha512-LT8yvcWNf76EpDC+8/ArTVSYePvuDQ+YbAUrsTcpg3ptiZ93HIcMCozP/JOxDt+rrsFfFHcpfoselKfPyRI0GQ==}
hasBin: true
- '@microsoft/tsdoc-config@0.16.2':
- resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==}
+ '@microsoft/tsdoc-config@0.17.0':
+ resolution: {integrity: sha512-v/EYRXnCAIHxOHW+Plb6OWuUoMotxTN0GLatnpOb1xq0KuTNw/WI3pamJx/UbsoJP5k9MCw1QxvvhPcF9pH3Zg==}
- '@microsoft/tsdoc@0.14.2':
- resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==}
+ '@microsoft/tsdoc@0.15.0':
+ resolution: {integrity: sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA==}
'@misskey-dev/browser-image-resizer@2024.1.0':
resolution: {integrity: sha512-4EnO0zLW5NDtng3Gaz5MuT761uiuoOuplwX18wBqgj8w56LTU5BjLn/vbHwDIIe0j2gwqDYhMb7bDjmr1/Fomg==}
- '@misskey-dev/eslint-plugin@1.0.0':
- resolution: {integrity: sha512-dh6UbcrNDVg5DD8k8Qh4ab30OPpuEYIlJCqaBV/lkIV8wNN/AfCJ2V7iTP8V8KjryM4t+sf5IqzQLQnT0mWI4A==}
+ '@misskey-dev/eslint-plugin@2.0.2':
+ resolution: {integrity: sha512-bnTqxCSP0CIN0xSpIGib13bz+K8/3e4h8OlQjuCPlhZF7oFwtn339EZM8yJkHg6gdfciV8KOr3gzlLyG3jiVEQ==}
peerDependencies:
- '@typescript-eslint/eslint-plugin': '>= 6'
- '@typescript-eslint/parser': '>= 6'
- eslint: '>= 3'
+ '@eslint/compat': '>= 1'
+ '@typescript-eslint/eslint-plugin': '>= 7'
+ '@typescript-eslint/parser': '>= 7'
+ eslint: '>= 8'
eslint-plugin-import: '>= 2'
+ globals: '>= 15'
'@misskey-dev/sharp-read-bmp@1.2.0':
resolution: {integrity: sha512-er4pRakXzHYfEgOFAFfQagqDouG+wLm+kwNq1I30oSdIHDa0wM3KjFpfIGQ25Fks4GcmOl1s7Zh6xoQu5dNjTw==}
@@ -3119,73 +3314,73 @@ packages:
resolution: {integrity: sha512-0ZcCVQxifZmhwNBoQIrystCb+2sWBY2Zw8lpfJBPCHGCA/HWqehITeCRVIv4VMy8MPlaHo2w2pTHFV2pFfqKPw==}
engines: {node: '>=18'}
- '@mswjs/interceptors@0.26.15':
- resolution: {integrity: sha512-HM47Lu1YFmnYHKMBynFfjCp0U/yRskHj/8QEJW0CBEPOlw8Gkmjfll+S9b8M7V5CNDw2/ciRxjjnWeaCiblSIQ==}
+ '@mswjs/interceptors@0.29.1':
+ resolution: {integrity: sha512-3rDakgJZ77+RiQUuSK69t1F0m8BQKA8Vh5DCS5V0DWvNY67zob2JhhQrhCO0AKLGINTRSFd1tBaHcJTkhefoSw==}
engines: {node: '>=18'}
- '@napi-rs/canvas-android-arm64@0.1.52':
- resolution: {integrity: sha512-x/K471KbASPVh5mfBUxokza66J0FNIlOgMNANWAf5C8HiATb487KecEhSkUQvvTS3WLYC9uSqIPHFgwF+tir3w==}
+ '@napi-rs/canvas-android-arm64@0.1.53':
+ resolution: {integrity: sha512-2YhxfVsZguATlRWE0fZdTx35SE9+r5D7HV5GPNDataZOKmHf+zZ5//dspuuBSbOriQdoicaFrgXKCUqI0pK3WQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [android]
- '@napi-rs/canvas-darwin-arm64@0.1.52':
- resolution: {integrity: sha512-4OgVRD7TW02q5Q7lWLLjT+pYJ9ZHkQUTBOuXbPQ5wB0Wnh3RIq/aMY6thoXDZDzdR5vV3a5TUtbZUJ0aqLq3NA==}
+ '@napi-rs/canvas-darwin-arm64@0.1.53':
+ resolution: {integrity: sha512-ls+CWLMusf4RAGo5BvIIzA6dNcc0elwVp6LKjHfQECHA8KKmvdB58YuE5BQcTlb2rzk0SEKtBC/Th3NI2oNdfg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
- '@napi-rs/canvas-darwin-x64@0.1.52':
- resolution: {integrity: sha512-3fgeGJ3j2X6Mtmn0QYf3iA+A6y1ePnsayakc2emEokzf03ErrPczONw3vjnTQo53JLPMzEnfPGAffdktU/ssPA==}
+ '@napi-rs/canvas-darwin-x64@0.1.53':
+ resolution: {integrity: sha512-ZAgcoCH5+5OKS2P8Lxx+jbkAPKkyLD2x6OvSrHg1U6ppdxmLA+CkJlRl8w45HCXwuyIiP7OeymECRtiNYTwznQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
- '@napi-rs/canvas-linux-arm-gnueabihf@0.1.52':
- resolution: {integrity: sha512-aaDEEK5XwHUrPt0q4SR8l7Va0vtn50KmSs+itxP+o7RNk3Nuch8fINHOXyhMyhwNYgv1tfiJVyHsJhD0E6lXGA==}
+ '@napi-rs/canvas-linux-arm-gnueabihf@0.1.53':
+ resolution: {integrity: sha512-p9km/3C/loDxu3AvA8/vtpIS1BGMd/Ehkl2Iu/v/Gw8N/KUIt3HUvTS7AKApyVE28bxTfq96wJQjtcT8jzDncw==}
engines: {node: '>= 10'}
cpu: [arm]
os: [linux]
- '@napi-rs/canvas-linux-arm64-gnu@0.1.52':
- resolution: {integrity: sha512-tzuwM7Amt5mkrp4csQjYWkFzwFdiCm7RNdJ5usX8syzKSXmozqWzLHjzo/2ozdSQNUy6wyzRrxkG4Rh6g0OpOA==}
+ '@napi-rs/canvas-linux-arm64-gnu@0.1.53':
+ resolution: {integrity: sha512-QKK+sykEiYwjwd+ogyLcpcnH38DNZ8KViBlnfEpoGA2Wa+21/cWQKfMxnbgb/rbvm5tazJinZcihFvH577WQ5g==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@napi-rs/canvas-linux-arm64-musl@0.1.52':
- resolution: {integrity: sha512-HQCtJlDT0dFp3uUZVzZOZ1VLMO7lbLRc548MjMxPpojit2ZdGopFzJ8jDSr4iszHrTO1SM1AxPaCM3pRvCAtjw==}
+ '@napi-rs/canvas-linux-arm64-musl@0.1.53':
+ resolution: {integrity: sha512-2N41U0X8RnrTKzpTtPv1ozlYkJtPsUdbfF3uP/KEd/BsULGd8Y8ghkGMS6CM+821au4ex0dPrWOOdT9wC1rSqQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@napi-rs/canvas-linux-x64-gnu@0.1.52':
- resolution: {integrity: sha512-z5sBEw0PVWPH/MIQL8hOR8C3YYVlu8lqtRUcYajigMfXAhbMiNqDWTjuIWGMz3nIydDjZmn8KTxw/D4a0HFPqQ==}
+ '@napi-rs/canvas-linux-x64-gnu@0.1.53':
+ resolution: {integrity: sha512-7XjuTvDKCODtf/vMwF43VGDrjfgwYKgS91ggdcX3UrJaBYWyWu/+eqNvNj+zdXSe/0x+YOjf5jG4m8xIXdBMQA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@napi-rs/canvas-linux-x64-musl@0.1.52':
- resolution: {integrity: sha512-G1+JdWFhHLyHhULJS51xTEhB7EL0ZiAUQwQaRi4/w75OOYDQ91O+o4miaxDHiV0hZuxBhHtZU6ftV2Zl3RMguw==}
+ '@napi-rs/canvas-linux-x64-musl@0.1.53':
+ resolution: {integrity: sha512-970WEvB8vmj+uxvgdBZ+AGFV7uq9GJhXrqG5PGQ5lWciHX0P0d/OhS2F7TITgFR0LsKDQZ7XQgzMxsYOfwZ0FQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@napi-rs/canvas-win32-x64-msvc@0.1.52':
- resolution: {integrity: sha512-hMI626VsCC/wv29qHF78N7TSG+auatOp08DHln0Zdif5y1NJ14NU/rNUhzlTW8Zc6ssw+AMDJ3KKYYWYYg1aoA==}
+ '@napi-rs/canvas-win32-x64-msvc@0.1.53':
+ resolution: {integrity: sha512-rLFQCSJaWg/sv54Aap9nAhaodi4Vyb4un50EgW+PNkk8icMziU6KLRKirGBdQr9ZdxnshAPeQXD1g2ArStujKA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
- '@napi-rs/canvas@0.1.52':
- resolution: {integrity: sha512-xeW9EghZLDPZuqWJ4l1+eG3ld0i9J7SpV2zlgi34MPt/FE9K2XWGCfnLr0gHGOBkcI3YOVhI13I0HqRAkMPdVw==}
+ '@napi-rs/canvas@0.1.53':
+ resolution: {integrity: sha512-XsEZi97+kKykmAiPpY+IpZoHxJY1srqFZp8jDt1/RySzC0kB0iZYt/VMIFqQKpLCARZjD7SOAz2AULtwYlesCA==}
engines: {node: '>= 10'}
'@ndelangen/get-tarball@3.0.7':
resolution: {integrity: sha512-NqGfTZIZpRFef1GoVaShSSRwDC3vde3ThtTeqFdcYd6ipKqnfEVhjK2hUeHjCQUcptyZr2TONqcloFXM+5QBrQ==}
- '@nestjs/common@10.3.8':
- resolution: {integrity: sha512-P+vPEIvqx2e+fonsYVlFXKvoChyJ8Tq+lfpqdVFqblovHbFr3kZ/nYX0cPs+XuW6bnRT8tz0SSR9XBGU43kJhw==}
+ '@nestjs/common@10.3.10':
+ resolution: {integrity: sha512-H8k0jZtxk1IdtErGDmxFRy0PfcOAUg41Prrqpx76DQusGGJjsaovs1zjXVD1rZWaVYchfT1uczJ6L4Kio10VNg==}
peerDependencies:
class-transformer: '*'
class-validator: '*'
@@ -3197,8 +3392,8 @@ packages:
class-validator:
optional: true
- '@nestjs/core@10.3.8':
- resolution: {integrity: sha512-AxF4tpYLDNn5Wfb3C4bNaaHJ4pREH5FJrSisR2A5zkYpQFORFs0Tc36lOFPMwBTy8Iv2wUwWLUVc5ftBnxEv4w==}
+ '@nestjs/core@10.3.10':
+ resolution: {integrity: sha512-ZbQ4jovQyzHtCGCrzK5NdtW1SYO2fHSsgSY1+/9WdruYCUra+JDkWEXgZ4M3Hv480Dl3OXehAmY1wCOojeMyMQ==}
peerDependencies:
'@nestjs/common': ^10.0.0
'@nestjs/microservices': ^10.0.0
@@ -3214,14 +3409,14 @@ packages:
'@nestjs/websockets':
optional: true
- '@nestjs/platform-express@10.3.8':
- resolution: {integrity: sha512-sifLoxgEJvAgbim1UuW6wyScMfkS9SVQRH+lN33N/9ZvZSjO6NSDLOe+wxqsnZkia+QrjFC0qy0ITRAsggfqbg==}
+ '@nestjs/platform-express@10.3.10':
+ resolution: {integrity: sha512-wK2ow3CZI2KFqWeEpPmoR300OB6BcBLxARV1EiClJLCj4S1mZsoCmS0YWgpk3j1j6mo0SI8vNLi/cC2iZPEPQA==}
peerDependencies:
'@nestjs/common': ^10.0.0
'@nestjs/core': ^10.0.0
- '@nestjs/testing@10.3.8':
- resolution: {integrity: sha512-hpX9das2TdFTKQ4/2ojhjI6YgXtCfXRKui3A4Qaj54VVzc5+mtK502Jj18Vzji98o9MVS6skmYu+S/UvW3U6Fw==}
+ '@nestjs/testing@10.3.10':
+ resolution: {integrity: sha512-i3HAtVQJijxNxJq1k39aelyJlyEIBRONys7IipH/4r8W0J+M1V+y5EKDOyi4j1SdNSb/vmNyWpZ2/ewZjl3kRA==}
peerDependencies:
'@nestjs/common': ^10.0.0
'@nestjs/core': ^10.0.0
@@ -3233,6 +3428,10 @@ packages:
'@nestjs/platform-express':
optional: true
+ '@noble/hashes@1.4.0':
+ resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==}
+ engines: {node: '>= 16'}
+
'@nodelib/fs.scandir@2.1.5':
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
engines: {node: '>= 8'}
@@ -3276,19 +3475,19 @@ packages:
'@open-draft/until@2.1.0':
resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==}
- '@opentelemetry/api-logs@0.51.1':
- resolution: {integrity: sha512-E3skn949Pk1z2XtXu/lxf6QAZpawuTM/IUEXcAzpiUkTd73Hmvw26FiN3cJuTmkpM5hZzHwkomVdtrh/n/zzwA==}
+ '@opentelemetry/api-logs@0.52.1':
+ resolution: {integrity: sha512-qnSqB2DQ9TPP96dl8cDubDvrUyWc0/sK81xHTK8eSUspzDM3bsewX903qclQFvVhgStjRWdC5bLb3kQqMkfV5A==}
engines: {node: '>=14'}
- '@opentelemetry/api@1.8.0':
- resolution: {integrity: sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==}
+ '@opentelemetry/api@1.9.0':
+ resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==}
engines: {node: '>=8.0.0'}
- '@opentelemetry/context-async-hooks@1.24.1':
- resolution: {integrity: sha512-R5r6DO4kgEOVBxFXhXjwospLQkv+sYxwCfjvoZBe7Zm6KKXAV9kDSJhi/D1BweowdZmO+sdbENLs374gER8hpQ==}
+ '@opentelemetry/context-async-hooks@1.25.1':
+ resolution: {integrity: sha512-UW/ge9zjvAEmRWVapOP0qyCvPulWU6cQxGxDbWEFfGOj1VBBZAuOqTo3X6yWmDTD3Xe15ysCZChHncr2xFMIfQ==}
engines: {node: '>=14'}
peerDependencies:
- '@opentelemetry/api': '>=1.0.0 <1.9.0'
+ '@opentelemetry/api': '>=1.0.0 <1.10.0'
'@opentelemetry/core@1.24.1':
resolution: {integrity: sha512-wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg==}
@@ -3296,86 +3495,98 @@ packages:
peerDependencies:
'@opentelemetry/api': '>=1.0.0 <1.9.0'
- '@opentelemetry/instrumentation-connect@0.36.0':
- resolution: {integrity: sha512-k9++bmJZ9zDEs3u3DnKTn2l7QTiNFg3gPx7G9rW0TPnP+xZoBSBTrEcGYBaqflQlrFG23Q58+X1sM2ayWPv5Fg==}
+ '@opentelemetry/core@1.25.1':
+ resolution: {integrity: sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.0.0 <1.10.0'
+
+ '@opentelemetry/instrumentation-connect@0.37.0':
+ resolution: {integrity: sha512-SeQktDIH5rNzjiEiazWiJAIXkmnLOnNV7wwHpahrqE0Ph+Z3heqMfxRtoMtbdJSIYLfcNZYO51AjxZ00IXufdw==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/instrumentation-express@0.39.0':
- resolution: {integrity: sha512-AG8U7z7D0JcBu/7dDcwb47UMEzj9/FMiJV2iQZqrsZnxR3FjB9J9oIH2iszJYci2eUdp2WbdvtpD9RV/zmME5A==}
+ '@opentelemetry/instrumentation-express@0.40.1':
+ resolution: {integrity: sha512-+RKMvVe2zw3kIXRup9c1jFu3T4d0fs5aKy015TpiMyoCKX1UMu3Z0lfgYtuyiSTANvg5hZnDbWmQmqSPj9VTvg==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/instrumentation-fastify@0.36.1':
- resolution: {integrity: sha512-3Nfm43PI0I+3EX+1YbSy6xbDu276R1Dh1tqAk68yd4yirnIh52Kd5B+nJ8CgHA7o3UKakpBjj6vSzi5vNCzJIA==}
+ '@opentelemetry/instrumentation-fastify@0.37.0':
+ resolution: {integrity: sha512-WRjwzNZgupSzbEYvo9s+QuHJRqZJjVdNxSEpGBwWK8RKLlHGwGVAu0gcc2gPamJWUJsGqPGvahAPWM18ZkWj6A==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/instrumentation-graphql@0.40.0':
- resolution: {integrity: sha512-LVRdEHWACWOczv2imD+mhUrLMxsEjPPi32vIZJT57zygR5aUiA4em8X3aiGOCycgbMWkIu8xOSGSxdx3JmzN+w==}
+ '@opentelemetry/instrumentation-graphql@0.41.0':
+ resolution: {integrity: sha512-R/gXeljgIhaRDKquVkKYT5QHPnFouM8ooyePZEP0kqyaVAedtR1V7NfAUJbxfTG5fBQa5wdmLjvu63+tzRXZCA==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/instrumentation-hapi@0.38.0':
- resolution: {integrity: sha512-ZcOqEuwuutTDYIjhDIStix22ECblG/i9pHje23QGs4Q4YS4RMaZ5hKCoQJxW88Z4K7T53rQkdISmoXFKDV8xMg==}
+ '@opentelemetry/instrumentation-hapi@0.39.0':
+ resolution: {integrity: sha512-ik2nA9Yj2s2ay+aNY+tJsKCsEx6Tsc2g/MK0iWBW5tibwrWKTy1pdVt5sB3kd5Gkimqj23UV5+FH2JFcQLeKug==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/instrumentation-http@0.51.1':
- resolution: {integrity: sha512-6b3nZnFFEz/3xZ6w8bVxctPUWIPWiXuPQ725530JgxnN1cvYFd8CJ75PrHZNjynmzSSnqBkN3ef4R9N+RpMh8Q==}
+ '@opentelemetry/instrumentation-http@0.52.1':
+ resolution: {integrity: sha512-dG/aevWhaP+7OLv4BQQSEKMJv8GyeOp3Wxl31NHqE8xo9/fYMfEljiZphUHIfyg4gnZ9swMyWjfOQs5GUQe54Q==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/instrumentation-ioredis@0.40.0':
- resolution: {integrity: sha512-Jv/fH7KhpWe4KBirsiqeUJIYrsdR2iu2l4nWhfOlRvaZ+zYIiLEzTQR6QhBbyRoAbU4OuYJzjWusOmmpGBnwng==}
+ '@opentelemetry/instrumentation-ioredis@0.41.0':
+ resolution: {integrity: sha512-rxiLloU8VyeJGm5j2fZS8ShVdB82n7VNP8wTwfUQqDwRfHCnkzGr+buKoxuhGD91gtwJ91RHkjHA1Eg6RqsUTg==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/instrumentation-koa@0.40.0':
- resolution: {integrity: sha512-dJc3H/bKMcgUYcQpLF+1IbmUKus0e5Fnn/+ru/3voIRHwMADT3rFSUcGLWSczkg68BCgz0vFWGDTvPtcWIFr7A==}
+ '@opentelemetry/instrumentation-koa@0.41.0':
+ resolution: {integrity: sha512-mbPnDt7ELvpM2S0vixYUsde7122lgegLOJQxx8iJQbB8YHal/xnTh9v7IfArSVzIDo+E+080hxZyUZD4boOWkw==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/instrumentation-mongodb@0.43.0':
- resolution: {integrity: sha512-bMKej7Y76QVUD3l55Q9YqizXybHUzF3pujsBFjqbZrRn2WYqtsDtTUlbCK7fvXNPwFInqZ2KhnTqd0gwo8MzaQ==}
+ '@opentelemetry/instrumentation-mongodb@0.45.0':
+ resolution: {integrity: sha512-xnZP9+ayeB1JJyNE9cIiwhOJTzNEsRhXVdLgfzmrs48Chhhk026mQdM5CITfyXSCfN73FGAIB8d91+pflJEfWQ==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/instrumentation-mongoose@0.38.1':
- resolution: {integrity: sha512-zaeiasdnRjXe6VhYCBMdkmAVh1S5MmXC/0spet+yqoaViGnYst/DOxPvhwg3yT4Yag5crZNWsVXnA538UjP6Ow==}
+ '@opentelemetry/instrumentation-mongoose@0.39.0':
+ resolution: {integrity: sha512-J1r66A7zJklPPhMtrFOO7/Ud2p0Pv5u8+r23Cd1JUH6fYPmftNJVsLp2urAt6PHK4jVqpP/YegN8wzjJ2mZNPQ==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/instrumentation-mysql2@0.38.1':
- resolution: {integrity: sha512-qkpHMgWSDTYVB1vlZ9sspf7l2wdS5DDq/rbIepDwX5BA0N0068JTQqh0CgAh34tdFqSCnWXIhcyOXC2TtRb0sg==}
+ '@opentelemetry/instrumentation-mysql2@0.39.0':
+ resolution: {integrity: sha512-Iypuq2z6TCfriAXCIZjRq8GTFCKhQv5SpXbmI+e60rYdXw8NHtMH4NXcGF0eKTuoCsC59IYSTUvDQYDKReaszA==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/instrumentation-mysql@0.38.1':
- resolution: {integrity: sha512-+iBAawUaTfX/HAlvySwozx0C2B6LBfNPXX1W8Z2On1Uva33AGkw2UjL9XgIg1Pj4eLZ9R4EoJ/aFz+Xj4E/7Fw==}
+ '@opentelemetry/instrumentation-mysql@0.39.0':
+ resolution: {integrity: sha512-8snHPh83rhrDf31v9Kq0Nf+ts8hdr7NguuszRqZomZBHgE0+UyXZSkXHAAFZoBPPRMGyM68uaFE5hVtFl+wOcA==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/instrumentation-nestjs-core@0.37.1':
- resolution: {integrity: sha512-ebYQjHZEmGHWEALwwDGhSQVLBaurFnuLIkZD5igPXrt7ohfF4lc5/4al1LO+vKc0NHk8SJWStuRueT86ISA8Vg==}
+ '@opentelemetry/instrumentation-nestjs-core@0.38.0':
+ resolution: {integrity: sha512-M381Df1dM8aqihZz2yK+ugvMFK5vlHG/835dc67Sx2hH4pQEQYDA2PpFPTgc9AYYOydQaj7ClFQunESimjXDgg==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/instrumentation-pg@0.41.0':
- resolution: {integrity: sha512-BSlhpivzBD77meQNZY9fS4aKgydA8AJBzv2dqvxXFy/Hq64b7HURgw/ztbmwFeYwdF5raZZUifiiNSMLpOJoSA==}
+ '@opentelemetry/instrumentation-pg@0.42.0':
+ resolution: {integrity: sha512-sjgcM8CswYy8zxHgXv4RAZ09DlYhQ+9TdlourUs63Df/ek5RrB1ZbjznqW7PB6c3TyJJmX6AVtPTjAsROovEjA==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-redis-4@0.40.0':
+ resolution: {integrity: sha512-0ieQYJb6yl35kXA75LQUPhHtGjtQU9L85KlWa7d4ohBbk/iQKZ3X3CFl5jC5vNMq/GGPB3+w3IxNvALlHtrp7A==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
@@ -3386,8 +3597,8 @@ packages:
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/instrumentation@0.51.1':
- resolution: {integrity: sha512-JIrvhpgqY6437QIqToyozrUG1h5UhwHkaGK/WAX+fkrpyPtc+RO5FkRtUd9BH0MibabHHvqsnBGKfKVijbmp8w==}
+ '@opentelemetry/instrumentation@0.52.1':
+ resolution: {integrity: sha512-uXJbYU/5/MBHjMp1FqrILLRuiJCs3Ofk0MeRDk8g1S1gD47U8X3JnSwcMO1rtRo1x1a7zKaQHaoYu49p/4eSKw==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
@@ -3402,22 +3613,32 @@ packages:
peerDependencies:
'@opentelemetry/api': '>=1.0.0 <1.9.0'
+ '@opentelemetry/resources@1.25.1':
+ resolution: {integrity: sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.0.0 <1.10.0'
+
'@opentelemetry/sdk-metrics@1.24.1':
resolution: {integrity: sha512-FrAqCbbGao9iKI+Mgh+OsC9+U2YMoXnlDHe06yH7dvavCKzE3S892dGtX54+WhSFVxHR/TMRVJiK/CV93GR0TQ==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': '>=1.3.0 <1.9.0'
- '@opentelemetry/sdk-trace-base@1.24.1':
- resolution: {integrity: sha512-zz+N423IcySgjihl2NfjBf0qw1RWe11XIAWVrTNOSSI6dtSPJiVom2zipFB2AEEtJWpv0Iz6DY6+TjnyTV5pWg==}
+ '@opentelemetry/sdk-trace-base@1.25.1':
+ resolution: {integrity: sha512-C8k4hnEbc5FamuZQ92nTOp8X/diCY56XUTnMiv9UTuJitCzaNNHAVsdm5+HLCdI8SLQsLWIrG38tddMxLVoftw==}
engines: {node: '>=14'}
peerDependencies:
- '@opentelemetry/api': '>=1.0.0 <1.9.0'
+ '@opentelemetry/api': '>=1.0.0 <1.10.0'
'@opentelemetry/semantic-conventions@1.24.1':
resolution: {integrity: sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==}
engines: {node: '>=14'}
+ '@opentelemetry/semantic-conventions@1.25.1':
+ resolution: {integrity: sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==}
+ engines: {node: '>=14'}
+
'@opentelemetry/sql-common@0.40.1':
resolution: {integrity: sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==}
engines: {node: '>=14'}
@@ -3447,23 +3668,167 @@ packages:
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
- '@prisma/instrumentation@5.14.0':
- resolution: {integrity: sha512-DeybWvIZzu/mUsOYP9MVd6AyBj+MP7xIMrcuIn25MX8FiQX39QBnET5KhszTAip/ToctUuDwSJ46QkIoyo3RFA==}
+ '@prisma/instrumentation@5.16.0':
+ resolution: {integrity: sha512-MVzNRW2ikWvVNnMIEgQMcwWxpFD+XF2U2h0Qz7MjutRqJxrhWexWV2aSi2OXRaU8UL5wzWw7pnjdKUzYhWauLg==}
+
+ '@radix-ui/primitive@1.1.0':
+ resolution: {integrity: sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==}
+
+ '@radix-ui/react-compose-refs@1.1.0':
+ resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==}
+ 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.1.0':
+ resolution: {integrity: sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==}
+ 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.1':
+ resolution: {integrity: sha512-zysS+iU4YP3STKNS6USvFVqI4qqx8EpiwmT5TuCApVEBca+eRCbONi4EgzfNSuVnOXvC5UPHHMjs8RXO6DH9Bg==}
+ 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-dismissable-layer@1.1.0':
+ resolution: {integrity: sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==}
+ 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-focus-guards@1.1.0':
+ resolution: {integrity: sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-focus-scope@1.1.0':
+ resolution: {integrity: sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==}
+ 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-id@1.1.0':
+ resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-portal@1.1.1':
+ resolution: {integrity: sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==}
+ 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-presence@1.1.0':
+ resolution: {integrity: sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==}
+ 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.0.0':
+ resolution: {integrity: sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==}
+ 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.1.0':
+ resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==}
+ 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-callback-ref@1.1.0':
+ resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==}
+ 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.1.0':
+ resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==}
+ 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.0.1':
- resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==}
+ '@radix-ui/react-use-escape-keydown@1.1.0':
+ resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==}
peerDependencies:
'@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
optional: true
- '@radix-ui/react-slot@1.0.2':
- resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==}
+ '@radix-ui/react-use-layout-effect@1.1.0':
+ resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==}
peerDependencies:
'@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
optional: true
@@ -3492,8 +3857,8 @@ packages:
rollup:
optional: true
- '@rollup/plugin-replace@5.0.5':
- resolution: {integrity: sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==}
+ '@rollup/plugin-replace@5.0.7':
+ resolution: {integrity: sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==}
engines: {node: '>=14.0.0'}
peerDependencies:
rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
@@ -3510,88 +3875,88 @@ packages:
rollup:
optional: true
- '@rollup/rollup-android-arm-eabi@4.17.2':
- resolution: {integrity: sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==}
+ '@rollup/rollup-android-arm-eabi@4.18.0':
+ resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==}
cpu: [arm]
os: [android]
- '@rollup/rollup-android-arm64@4.17.2':
- resolution: {integrity: sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==}
+ '@rollup/rollup-android-arm64@4.18.0':
+ resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==}
cpu: [arm64]
os: [android]
- '@rollup/rollup-darwin-arm64@4.17.2':
- resolution: {integrity: sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==}
+ '@rollup/rollup-darwin-arm64@4.18.0':
+ resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==}
cpu: [arm64]
os: [darwin]
- '@rollup/rollup-darwin-x64@4.17.2':
- resolution: {integrity: sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==}
+ '@rollup/rollup-darwin-x64@4.18.0':
+ resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==}
cpu: [x64]
os: [darwin]
- '@rollup/rollup-linux-arm-gnueabihf@4.17.2':
- resolution: {integrity: sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==}
+ '@rollup/rollup-linux-arm-gnueabihf@4.18.0':
+ resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==}
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm-musleabihf@4.17.2':
- resolution: {integrity: sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==}
+ '@rollup/rollup-linux-arm-musleabihf@4.18.0':
+ resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==}
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm64-gnu@4.17.2':
- resolution: {integrity: sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==}
+ '@rollup/rollup-linux-arm64-gnu@4.18.0':
+ resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==}
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-arm64-musl@4.17.2':
- resolution: {integrity: sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==}
+ '@rollup/rollup-linux-arm64-musl@4.18.0':
+ resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==}
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-powerpc64le-gnu@4.17.2':
- resolution: {integrity: sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==}
+ '@rollup/rollup-linux-powerpc64le-gnu@4.18.0':
+ resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==}
cpu: [ppc64]
os: [linux]
- '@rollup/rollup-linux-riscv64-gnu@4.17.2':
- resolution: {integrity: sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==}
+ '@rollup/rollup-linux-riscv64-gnu@4.18.0':
+ resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==}
cpu: [riscv64]
os: [linux]
- '@rollup/rollup-linux-s390x-gnu@4.17.2':
- resolution: {integrity: sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==}
+ '@rollup/rollup-linux-s390x-gnu@4.18.0':
+ resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==}
cpu: [s390x]
os: [linux]
- '@rollup/rollup-linux-x64-gnu@4.17.2':
- resolution: {integrity: sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==}
+ '@rollup/rollup-linux-x64-gnu@4.18.0':
+ resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==}
cpu: [x64]
os: [linux]
- '@rollup/rollup-linux-x64-musl@4.17.2':
- resolution: {integrity: sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==}
+ '@rollup/rollup-linux-x64-musl@4.18.0':
+ resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==}
cpu: [x64]
os: [linux]
- '@rollup/rollup-win32-arm64-msvc@4.17.2':
- resolution: {integrity: sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==}
+ '@rollup/rollup-win32-arm64-msvc@4.18.0':
+ resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==}
cpu: [arm64]
os: [win32]
- '@rollup/rollup-win32-ia32-msvc@4.17.2':
- resolution: {integrity: sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==}
+ '@rollup/rollup-win32-ia32-msvc@4.18.0':
+ resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==}
cpu: [ia32]
os: [win32]
- '@rollup/rollup-win32-x64-msvc@4.17.2':
- resolution: {integrity: sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==}
+ '@rollup/rollup-win32-x64-msvc@4.18.0':
+ resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==}
cpu: [x64]
os: [win32]
- '@rushstack/node-core-library@4.1.0':
- resolution: {integrity: sha512-qz4JFBZJCf1YN5cAXa1dP6Mki/HrsQxc/oYGAGx29dF2cwF2YMxHoly0FBhMw3IEnxo5fMj0boVfoHVBkpkx/w==}
+ '@rushstack/node-core-library@5.4.1':
+ resolution: {integrity: sha512-WNnwdS8r9NZ/2K3u29tNoSRldscFa7SxU0RT+82B6Dy2I4Hl2MeCSKm4EXLXPKeNzLGvJ1cqbUhTLviSF8E6iA==}
peerDependencies:
'@types/node': '*'
peerDependenciesMeta:
@@ -3601,50 +3966,53 @@ packages:
'@rushstack/rig-package@0.5.2':
resolution: {integrity: sha512-mUDecIJeH3yYGZs2a48k+pbhM6JYwWlgjs2Ca5f2n1G2/kgdgP9D/07oglEGf6mRyXEnazhEENeYTSNDRCwdqA==}
- '@rushstack/terminal@0.10.1':
- resolution: {integrity: sha512-C6Vi/m/84IYJTkfzmXr1+W8Wi3MmBjVF/q3za91Gb3VYjKbpALHVxY6FgH625AnDe5Z0Kh4MHKWA3Z7bqgAezA==}
+ '@rushstack/terminal@0.13.0':
+ resolution: {integrity: sha512-Ou44Q2s81BqJu3dpYedAX54am9vn245F0HzqVrfJCMQk5pGgoKKOBOjkbfZC9QKcGNaECh6pwH2s5noJt7X6ew==}
peerDependencies:
'@types/node': '*'
peerDependenciesMeta:
'@types/node':
optional: true
- '@rushstack/ts-command-line@4.19.2':
- resolution: {integrity: sha512-cqmXXmBEBlzo9WtyUrHtF9e6kl0LvBY7aTSVX4jfnBfXWZQWnPq9JTFPlQZ+L/ZwjZ4HrNwQsOVvhe9oOucZkw==}
+ '@rushstack/ts-command-line@4.22.0':
+ resolution: {integrity: sha512-Qj28t6MO3HRgAZ72FDeFsrpdE6wBWxF3VENgvrXh7JF2qIT+CrXiOJIesW80VFZB9QwObSpkB1ilx794fGQg6g==}
+
+ '@sec-ant/readable-stream@0.4.1':
+ resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==}
- '@sentry/core@8.5.0':
- resolution: {integrity: sha512-SO3ddBzGdha+Oflp+IKwBxj+7ds1q69OAT3VsypTd+WUFQdI9DIhR92Bjf+QQZCIzUNOi79VWOh3aOi3f6hMnw==}
+ '@sentry/core@8.13.0':
+ resolution: {integrity: sha512-N9Qg4ZGxZWp8eb2eUUHVVKgjBLtFIjS805nG92s6yJmkvOpKm6mLtcUaT/iDf3Hta6nG+xRkhbE3r+Z4cbXG8w==}
engines: {node: '>=14.18'}
- '@sentry/node@8.5.0':
- resolution: {integrity: sha512-t9cHAx/wLJYtdVf2XlzKlRJGvwdAp1wjzG0tC4E1Znx74OuUS1cFNo5WrGuOi0/YcWSxiJaxBvtUcsWK86fIgw==}
+ '@sentry/node@8.13.0':
+ resolution: {integrity: sha512-OeZ7K90RhyxfwfreerIi4cszzHrPRRH36STJno2+p3sIGbG5VScOccqXzYEOAqHpByxnti4KQN34BLAT2BFOEA==}
engines: {node: '>=14.18'}
- '@sentry/opentelemetry@8.5.0':
- resolution: {integrity: sha512-AbxFUNjuTKQ9ugZrssmGtPxWkBr4USNoP7GjaaGCNwNzvIVYCa+i8dv7BROJiW2lsxNAremULEbh+nbVmhGxDA==}
+ '@sentry/opentelemetry@8.13.0':
+ resolution: {integrity: sha512-NYn/HNE/SxFXe8pfnxJknhrrRzYRMHNssCoi5M1CeR5G7F2BGxxVmaGsd8j0WyTCpUS4i97G4vhYtDGxHvWN6w==}
engines: {node: '>=14.18'}
peerDependencies:
- '@opentelemetry/api': ^1.8.0
- '@opentelemetry/core': ^1.24.1
- '@opentelemetry/instrumentation': ^0.51.1
- '@opentelemetry/sdk-trace-base': ^1.23.0
- '@opentelemetry/semantic-conventions': ^1.23.0
+ '@opentelemetry/api': ^1.9.0
+ '@opentelemetry/core': ^1.25.1
+ '@opentelemetry/instrumentation': ^0.52.1
+ '@opentelemetry/sdk-trace-base': ^1.25.1
+ '@opentelemetry/semantic-conventions': ^1.25.1
- '@sentry/profiling-node@8.5.0':
- resolution: {integrity: sha512-nEXJqVNfZWYi4PakQXBZCJeH59UlnBv+zaYftDNUUXttCmzRXpL1ujNm5mJrJHlWjV7tgIFw02HW3nh2yyKOkw==}
+ '@sentry/profiling-node@8.13.0':
+ resolution: {integrity: sha512-6qirN71xlMahcm4m25XZLnjQdvs0EaFym/9MdLqcsAa3gAHZtw6h+IDapUzBWRXVOrU1OR5oQdh2tlFthsDtew==}
engines: {node: '>=14.18'}
hasBin: true
- '@sentry/types@8.5.0':
- resolution: {integrity: sha512-eDgkSmKI4+XL0QZm4H3j/n1RgnrbnjXZmjj+LsfccRZQwbPu9bWlc8q7Y7Ty1gOsoUpX+TecNLp2a8CRID4KHA==}
+ '@sentry/types@8.13.0':
+ resolution: {integrity: sha512-r63s/H5gvQnQM9tTGBXz2xErUbxZALh4e2Lg/1aHj4zIvGLBjA2z5qWsh6TEZYbpmgAyGShLDr6+rWeUVf9yBQ==}
engines: {node: '>=14.18'}
- '@sentry/utils@8.5.0':
- resolution: {integrity: sha512-fdrCzo8SAYiw9JBhkJPqYqJkDXZ/wICzN7+zcXIuzKNhE1hdoFjeKcPnpUI3bKZCG6e3hT1PTYQXhVw7GIZV9w==}
+ '@sentry/utils@8.13.0':
+ resolution: {integrity: sha512-PxV0v9VbGWH9zP37P5w2msLUFDr287nYjoY2XVF+RSolyiTs1CQNI5ZMUO3o4MsSac/dpXxjyrZXQd72t/jRYA==}
engines: {node: '>=14.18'}
- '@shikijs/core@1.4.0':
- resolution: {integrity: sha512-CxpKLntAi64h3j+TwWqVIQObPTED0FyXLHTTh3MKXtqiQNn2JGcMQQ362LftDbc9kYbDtrksNMNoVmVXzKFYUQ==}
+ '@shikijs/core@1.10.0':
+ resolution: {integrity: sha512-BZcr6FCmPfP6TXaekvujZcnkFmJHZ/Yglu97r/9VjzVndQA56/F4WjUKtJRQUnK59Wi7p/UTAOekMfCJv7jnYg==}
'@sideway/address@4.1.4':
resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==}
@@ -3673,10 +4041,18 @@ packages:
resolution: {integrity: sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw==}
engines: {node: '>=14.16'}
- '@sindresorhus/is@6.1.0':
- resolution: {integrity: sha512-BuvU07zq3tQ/2SIgBsEuxKYDyDjC0n7Zir52bpHy2xnBbW81+po43aLFPLbeV3HRAheFbGud1qgcqSYfhtHMAg==}
+ '@sindresorhus/is@6.3.1':
+ resolution: {integrity: sha512-FX4MfcifwJyFOI2lPoX7PQxCqx8BG1HCho7WdiXwpEQx1Ycij0JxkfYtGK7yqNScrZGSlt6RE6sw8QYoH7eKnQ==}
engines: {node: '>=16'}
+ '@sindresorhus/merge-streams@2.3.0':
+ resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==}
+ engines: {node: '>=18'}
+
+ '@sindresorhus/merge-streams@4.0.0':
+ resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==}
+ engines: {node: '>=18'}
+
'@sinonjs/commons@2.0.0':
resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==}
@@ -3695,275 +4071,299 @@ packages:
'@sinonjs/text-encoding@0.7.2':
resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==}
- '@smithy/abort-controller@2.0.14':
- resolution: {integrity: sha512-zXtteuYLWbSXnzI3O6xq3FYvigYZFW8mdytGibfarLL2lxHto9L3ILtGVnVGmFZa7SDh62l39EnU5hesLN87Fw==}
- engines: {node: '>=14.0.0'}
-
'@smithy/abort-controller@2.2.0':
resolution: {integrity: sha512-wRlta7GuLWpTqtFfGo+nZyOO1vEvewdNR1R4rTxpC8XU6vG/NDyrFBhwLZsqg1NUoR1noVaXJPC/7ZK47QCySw==}
engines: {node: '>=14.0.0'}
- '@smithy/chunked-blob-reader-native@2.0.0':
- resolution: {integrity: sha512-HM8V2Rp1y8+1343tkZUKZllFhEQPNmpNdgFAncbTsxkZ18/gqjk23XXv3qGyXWp412f3o43ZZ1UZHVcHrpRnCQ==}
+ '@smithy/abort-controller@3.1.1':
+ resolution: {integrity: sha512-MBJBiidoe+0cTFhyxT8g+9g7CeVccLM0IOKKUMCNQ1CNMJ/eIfoo0RTfVrXOONEI1UCN1W+zkiHSbzUNE9dZtQ==}
+ engines: {node: '>=16.0.0'}
- '@smithy/chunked-blob-reader@2.0.0':
- resolution: {integrity: sha512-k+J4GHJsMSAIQPChGBrjEmGS+WbPonCXesoqP9fynIqjn7rdOThdH8FAeCmokP9mxTYKQAKoHCLPzNlm6gh7Wg==}
+ '@smithy/chunked-blob-reader-native@3.0.0':
+ resolution: {integrity: sha512-VDkpCYW+peSuM4zJip5WDfqvg2Mo/e8yxOv3VF1m11y7B8KKMKVFtmZWDe36Fvk8rGuWrPZHHXZ7rR7uM5yWyg==}
- '@smithy/config-resolver@2.0.9':
- resolution: {integrity: sha512-QBkGPLUqyPmis9Erz8v4q5lo/ErnF7+GD5WZHa6JZiXopUPfaaM+B21n8gzS5xCkIXZmnwzNQhObP9xQPu8oqQ==}
- engines: {node: '>=14.0.0'}
+ '@smithy/chunked-blob-reader@3.0.0':
+ resolution: {integrity: sha512-sbnURCwjF0gSToGlsBiAmd1lRCmSn72nu9axfJu5lIx6RUEgHu6GwTMbqCdhQSi0Pumcm5vFxsi9XWXb2mTaoA==}
- '@smithy/credential-provider-imds@2.0.11':
- resolution: {integrity: sha512-uJJs8dnM5iXkn8a2GaKvlKMhcOJ+oJPYqY9gY3CM/EieCVObIDjxUtR/g8lU/k/A+OauA78GzScAfulmFjPOYA==}
- engines: {node: '>=14.0.0'}
+ '@smithy/config-resolver@3.0.4':
+ resolution: {integrity: sha512-VwiOk7TwXoE7NlNguV/aPq1hFH72tqkHCw8eWXbr2xHspRyyv9DLpLXhq+Ieje+NwoqXrY0xyQjPXdOE6cGcHA==}
+ engines: {node: '>=16.0.0'}
- '@smithy/eventstream-codec@2.0.8':
- resolution: {integrity: sha512-onO4to8ujCKn4m5XagReT9Nc6FlNG5vveuvjp1H7AtaG7njdet1LOl6/jmUOkskF2C/w+9jNw3r9Ak+ghOvN0A==}
+ '@smithy/core@2.2.4':
+ resolution: {integrity: sha512-qdY3LpMOUyLM/gfjjMQZui+UTNS7kBRDWlvyIhVOql5dn2J3isk9qUTBtQ1CbDH8MTugHis1zu3h4rH+Qmmh4g==}
+ engines: {node: '>=16.0.0'}
- '@smithy/eventstream-serde-browser@2.0.8':
- resolution: {integrity: sha512-/RGlkKUnC0sd+xKBKH/2APSBRmVMZTeLOKZMhrZmrO+ONoU+DwyMr/RLJ6WnmBKN+2ebjffM4pcIJTKLNNDD8g==}
- engines: {node: '>=14.0.0'}
+ '@smithy/credential-provider-imds@3.1.3':
+ resolution: {integrity: sha512-U1Yrv6hx/mRK6k8AncuI6jLUx9rn0VVSd9NPEX6pyYFBfkSkChOc/n4zUb8alHUVg83TbI4OdZVo1X0Zfj3ijA==}
+ engines: {node: '>=16.0.0'}
- '@smithy/eventstream-serde-config-resolver@2.0.8':
- resolution: {integrity: sha512-EyAEj258eMUv9zcMvBbqrInh2eHRYuiwQAjXDMxZFCyP+JePzQB6O++3wFwjQeRKMFFgZipNgnEXfReII4+NAw==}
- engines: {node: '>=14.0.0'}
+ '@smithy/eventstream-codec@3.1.2':
+ resolution: {integrity: sha512-0mBcu49JWt4MXhrhRAlxASNy0IjDRFU+aWNDRal9OtUJvJNiwDuyKMUONSOjLjSCeGwZaE0wOErdqULer8r7yw==}
- '@smithy/eventstream-serde-node@2.0.8':
- resolution: {integrity: sha512-FMBatSUSKwh6aguKVJokXfJaV8nqsuCkCZHb9MP9zah0ZF+ohbTLeeed7DQGeTVBueVIVWEzIsShPxtxBv7MMQ==}
- engines: {node: '>=14.0.0'}
+ '@smithy/eventstream-serde-browser@3.0.4':
+ resolution: {integrity: sha512-Eo4anLZX6ltGJTZ5yJMc80gZPYYwBn44g0h7oFq6et+TYr5dUsTpIcDbz2evsOKIZhZ7zBoFWHtBXQ4QQeb5xA==}
+ engines: {node: '>=16.0.0'}
- '@smithy/eventstream-serde-universal@2.0.8':
- resolution: {integrity: sha512-6InMXH8BUKoEDa6CAuxR4Gn8Gf2vBfVtjA9A6zDKZClYHT+ANUJS+2EtOBc5wECJJGk4KLn5ajQyrt9MBv5lcw==}
- engines: {node: '>=14.0.0'}
+ '@smithy/eventstream-serde-config-resolver@3.0.3':
+ resolution: {integrity: sha512-NVTYjOuYpGfrN/VbRQgn31x73KDLfCXCsFdad8DiIc3IcdxL+dYA9zEQPyOP7Fy2QL8CPy2WE4WCUD+ZsLNfaQ==}
+ engines: {node: '>=16.0.0'}
- '@smithy/fetch-http-handler@2.1.4':
- resolution: {integrity: sha512-SL24M9W5ERByoXaVicRx+bj9GJVujDnPn+QO7GY7adhY0mPGa6DSF58pVKsgIh4r5Tx/k3SWCPlH4BxxSxA/fQ==}
+ '@smithy/eventstream-serde-node@3.0.4':
+ resolution: {integrity: sha512-mjlG0OzGAYuUpdUpflfb9zyLrBGgmQmrobNT8b42ZTsGv/J03+t24uhhtVEKG/b2jFtPIHF74Bq+VUtbzEKOKg==}
+ engines: {node: '>=16.0.0'}
- '@smithy/hash-blob-browser@2.0.8':
- resolution: {integrity: sha512-IgvRlBMfg/qLg321a59T1yTdEEbaizLrEVsU3DHj65DAO4lFRMF5f+l7vuV+je6m1G9wSD5GQXLturX8qlGb4g==}
+ '@smithy/eventstream-serde-universal@3.0.4':
+ resolution: {integrity: sha512-Od9dv8zh3PgOD7Vj4T3HSuox16n0VG8jJIM2gvKASL6aCtcS8CfHZDWe1Ik3ZXW6xBouU+45Q5wgoliWDZiJ0A==}
+ engines: {node: '>=16.0.0'}
- '@smithy/hash-node@2.0.8':
- resolution: {integrity: sha512-yZL/nmxZzjZV5/QX5JWSgXlt0HxuMTwFO89CS++jOMMPiCMZngf6VYmtNdccs8IIIAMmfQeTzwu07XgUE/Zd3Q==}
- engines: {node: '>=14.0.0'}
+ '@smithy/fetch-http-handler@3.2.0':
+ resolution: {integrity: sha512-vFvDxMrc6sO5Atec8PaISckMcAwsCrRhYxwUylg97bRT2KZoumOF7qk5+6EVUtuM1IG9AJV5aqXnHln9ZdXHpg==}
- '@smithy/hash-stream-node@2.0.8':
- resolution: {integrity: sha512-82zC6I9ZJycbEZH8TVyXyBx9c2ZIPQDgBvM0x5AFPUl/i1AxwKKX+lwYRnzgkF//cYhIIoJaCfJ9mjSMPRGvCQ==}
- engines: {node: '>=14.0.0'}
+ '@smithy/hash-blob-browser@3.1.2':
+ resolution: {integrity: sha512-hAbfqN2UbISltakCC2TP0kx4LqXBttEv2MqSPE98gVuDFMf05lU+TpC41QtqGP3Ff5A3GwZMPfKnEy0VmEUpmg==}
+
+ '@smithy/hash-node@3.0.3':
+ resolution: {integrity: sha512-2ctBXpPMG+B3BtWSGNnKELJ7SH9e4TNefJS0cd2eSkOOROeBnnVBnAy9LtJ8tY4vUEoe55N4CNPxzbWvR39iBw==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/hash-stream-node@3.1.2':
+ resolution: {integrity: sha512-PBgDMeEdDzi6JxKwbfBtwQG9eT9cVwsf0dZzLXoJF4sHKHs5HEo/3lJWpn6jibfJwT34I1EBXpBnZE8AxAft6g==}
+ engines: {node: '>=16.0.0'}
- '@smithy/invalid-dependency@2.0.8':
- resolution: {integrity: sha512-88VOS7W3KzUz/bNRc+Sl/F/CDIasFspEE4G39YZRHIh9YmsXF7GUyVaAKURfMNulTie62ayk6BHC9O0nOBAVgQ==}
+ '@smithy/invalid-dependency@3.0.3':
+ resolution: {integrity: sha512-ID1eL/zpDULmHJbflb864k72/SNOZCADRc9i7Exq3RUNJw6raWUSlFEQ+3PX3EYs++bTxZB2dE9mEHTQLv61tw==}
'@smithy/is-array-buffer@2.0.0':
resolution: {integrity: sha512-z3PjFjMyZNI98JFRJi/U0nGoLWMSJlDjAW4QUX2WNZLas5C0CmVV6LJ01JI0k90l7FvpmixjWxPFmENSClQ7ug==}
engines: {node: '>=14.0.0'}
- '@smithy/md5-js@2.0.8':
- resolution: {integrity: sha512-1VVECXEiuJvjXv+mudiaUFKYwgDLOWz5MTTy8RzbrPiU3GiOb3/o5/urdkYpqmgoMfxdvxxOw/Adjv2dV2q2Yg==}
+ '@smithy/is-array-buffer@3.0.0':
+ resolution: {integrity: sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==}
+ engines: {node: '>=16.0.0'}
- '@smithy/middleware-content-length@2.0.10':
- resolution: {integrity: sha512-EGSbysyA4jH0p3xI6G0jdXoj9Iz9GUnAta6aEaHtXm3wVWtenRf80y2TeVvNkVSr5jwKOdSCjKIRI2l1A/oZLA==}
- engines: {node: '>=14.0.0'}
+ '@smithy/md5-js@3.0.3':
+ resolution: {integrity: sha512-O/SAkGVwpWmelpj/8yDtsaVe6sINHLB1q8YE/+ZQbDxIw3SRLbTZuRaI10K12sVoENdnHqzPp5i3/H+BcZ3m3Q==}
- '@smithy/middleware-endpoint@2.0.8':
- resolution: {integrity: sha512-yOpogfG2d2V0cbJdAJ6GLAWkNOc9pVsL5hZUfXcxJu408N3CUCsXzIAFF6+70ZKSE+lCfG3GFErcSXv/UfUbjw==}
- engines: {node: '>=14.0.0'}
+ '@smithy/middleware-content-length@3.0.3':
+ resolution: {integrity: sha512-Dbz2bzexReYIQDWMr+gZhpwBetNXzbhnEMhYKA6urqmojO14CsXjnsoPYO8UL/xxcawn8ZsuVU61ElkLSltIUQ==}
+ engines: {node: '>=16.0.0'}
- '@smithy/middleware-retry@2.0.11':
- resolution: {integrity: sha512-pknfokumZ+wvBERSuKAI2vVr+aK3ZgPiWRg6+0ZG4kKJogBRpPmDGWw+Jht0izS9ZaEbIobNzueIb4wD33JJVg==}
- engines: {node: '>=14.0.0'}
+ '@smithy/middleware-endpoint@3.0.4':
+ resolution: {integrity: sha512-whUJMEPwl3ANIbXjBXZVdJNgfV2ZU8ayln7xUM47rXL2txuenI7jQ/VFFwCzy5lCmXScjp6zYtptW5Evud8e9g==}
+ engines: {node: '>=16.0.0'}
- '@smithy/middleware-serde@2.0.8':
- resolution: {integrity: sha512-Is0sm+LiNlgsc0QpstDzifugzL9ehno1wXp109GgBgpnKTK3j+KphiparBDI4hWTtH9/7OUsxuspNqai2yyhcg==}
- engines: {node: '>=14.0.0'}
+ '@smithy/middleware-retry@3.0.7':
+ resolution: {integrity: sha512-f5q7Y09G+2h5ivkSx5CHvlAT4qRR3jBFEsfXyQ9nFNiWQlr8c48blnu5cmbTQ+p1xmIO14UXzKoF8d7Tm0Gsjw==}
+ engines: {node: '>=16.0.0'}
- '@smithy/middleware-stack@2.0.1':
- resolution: {integrity: sha512-UexsfY6/oQZRjTQL56s9AKtMcR60tBNibSgNYX1I2WXaUaXg97W9JCkFyth85TzBWKDBTyhLfenrukS/kyu54A==}
- engines: {node: '>=14.0.0'}
+ '@smithy/middleware-serde@3.0.3':
+ resolution: {integrity: sha512-puUbyJQBcg9eSErFXjKNiGILJGtiqmuuNKEYNYfUD57fUl4i9+mfmThtQhvFXU0hCVG0iEJhvQUipUf+/SsFdA==}
+ engines: {node: '>=16.0.0'}
- '@smithy/node-config-provider@2.0.11':
- resolution: {integrity: sha512-CaR1dciSSGKttjhcefpytYjsfI/Yd5mqL8am4wfmyFCDxSiPsvnEWHl8UjM/RbcAjX0klt+CeIKPSHEc0wGvJA==}
- engines: {node: '>=14.0.0'}
+ '@smithy/middleware-stack@3.0.3':
+ resolution: {integrity: sha512-r4klY9nFudB0r9UdSMaGSyjyQK5adUyPnQN/ZM6M75phTxOdnc/AhpvGD1fQUvgmqjQEBGCwpnPbDm8pH5PapA==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/node-config-provider@3.1.3':
+ resolution: {integrity: sha512-rxdpAZczzholz6CYZxtqDu/aKTxATD5DAUDVj7HoEulq+pDSQVWzbg0btZDlxeFfa6bb2b5tUvgdX5+k8jUqcg==}
+ engines: {node: '>=16.0.0'}
'@smithy/node-http-handler@2.5.0':
resolution: {integrity: sha512-mVGyPBzkkGQsPoxQUbxlEfRjrj6FPyA3u3u2VXGr9hT8wilsoQdZdvKpMBFMB8Crfhv5dNkKHIW0Yyuc7eABqA==}
engines: {node: '>=14.0.0'}
- '@smithy/property-provider@2.0.9':
- resolution: {integrity: sha512-25pPZ8f8DeRwYI5wbPRZaoMoR+3vrw8DwbA0TjP+GsdiB2KxScndr4HQehiJ5+WJ0giOTWhLz0bd+7Djv1qpUQ==}
- engines: {node: '>=14.0.0'}
+ '@smithy/node-http-handler@3.1.1':
+ resolution: {integrity: sha512-L71NLyPeP450r2J/mfu1jMc//Z1YnqJt2eSNw7uhiItaONnBLDA68J5jgxq8+MBDsYnFwNAIc7dBG1ImiWBiwg==}
+ engines: {node: '>=16.0.0'}
- '@smithy/protocol-http@3.0.10':
- resolution: {integrity: sha512-6+tjNk7rXW7YTeGo9qwxXj/2BFpJTe37kTj3EnZCoX/nH+NP/WLA7O83fz8XhkGqsaAhLUPo/bB12vvd47nsmg==}
- engines: {node: '>=14.0.0'}
+ '@smithy/property-provider@3.1.3':
+ resolution: {integrity: sha512-zahyOVR9Q4PEoguJ/NrFP4O7SMAfYO1HLhB18M+q+Z4KFd4V2obiMnlVoUFzFLSPeVt1POyNWneHHrZaTMoc/g==}
+ engines: {node: '>=16.0.0'}
'@smithy/protocol-http@3.3.0':
resolution: {integrity: sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==}
engines: {node: '>=14.0.0'}
- '@smithy/querystring-builder@2.0.14':
- resolution: {integrity: sha512-lQ4pm9vTv9nIhl5jt6uVMPludr6syE2FyJmHsIJJuOD7QPIJnrf9HhUGf1iHh9KJ4CUv21tpOU3X6s0rB6uJ0g==}
- engines: {node: '>=14.0.0'}
+ '@smithy/protocol-http@4.0.3':
+ resolution: {integrity: sha512-x5jmrCWwQlx+Zv4jAtc33ijJ+vqqYN+c/ZkrnpvEe/uDas7AT7A/4Rc2CdfxgWv4WFGmEqODIrrUToPN6DDkGw==}
+ engines: {node: '>=16.0.0'}
'@smithy/querystring-builder@2.2.0':
resolution: {integrity: sha512-L1kSeviUWL+emq3CUVSgdogoM/D9QMFaqxL/dd0X7PCNWmPXqt+ExtrBjqT0V7HLN03Vs9SuiLrG3zy3JGnE5A==}
engines: {node: '>=14.0.0'}
- '@smithy/querystring-parser@2.0.8':
- resolution: {integrity: sha512-ArbanNuR7O/MmTd90ZqhDqGOPPDYmxx3huHxD+R3cuCnazcK/1tGQA+SnnR5307T7ZRb5WTpB6qBggERuibVSA==}
- engines: {node: '>=14.0.0'}
+ '@smithy/querystring-builder@3.0.3':
+ resolution: {integrity: sha512-vyWckeUeesFKzCDaRwWLUA1Xym9McaA6XpFfAK5qI9DKJ4M33ooQGqvM4J+LalH4u/Dq9nFiC8U6Qn1qi0+9zw==}
+ engines: {node: '>=16.0.0'}
- '@smithy/service-error-classification@2.0.1':
- resolution: {integrity: sha512-QHa9+t+v4s0cMuDCcbjIJN67mNZ42/+fc3jKe8P6ZMPXZl5ksKk6a8vhZ/m494GZng5eFTc3OePv+NF9cG83yg==}
- engines: {node: '>=14.0.0'}
+ '@smithy/querystring-parser@3.0.3':
+ resolution: {integrity: sha512-zahM1lQv2YjmznnfQsWbYojFe55l0SLG/988brlLv1i8z3dubloLF+75ATRsqPBboUXsW6I9CPGE5rQgLfY0vQ==}
+ engines: {node: '>=16.0.0'}
- '@smithy/shared-ini-file-loader@2.0.10':
- resolution: {integrity: sha512-jWASteSezRKohJ7GdA7pHDvmr7Q7tw3b5mu3xLHIkZy/ICftJ+O7aqNaF8wklhI7UNFoQ7flFRM3Rd0KA+1BbQ==}
- engines: {node: '>=14.0.0'}
+ '@smithy/service-error-classification@3.0.3':
+ resolution: {integrity: sha512-Jn39sSl8cim/VlkLsUhRFq/dKDnRUFlfRkvhOJaUbLBXUsLRLNf9WaxDv/z9BjuQ3A6k/qE8af1lsqcwm7+DaQ==}
+ engines: {node: '>=16.0.0'}
- '@smithy/signature-v4@2.0.5':
- resolution: {integrity: sha512-ABIzXmUDXK4n2c9cXjQLELgH2RdtABpYKT+U131e2I6RbCypFZmxIHmIBufJzU2kdMCQ3+thBGDWorAITFW04A==}
- engines: {node: '>=14.0.0'}
+ '@smithy/shared-ini-file-loader@3.1.3':
+ resolution: {integrity: sha512-Z8Y3+08vgoDgl4HENqNnnzSISAaGrF2RoKupoC47u2wiMp+Z8P/8mDh1CL8+8ujfi2U5naNvopSBmP/BUj8b5w==}
+ engines: {node: '>=16.0.0'}
- '@smithy/smithy-client@2.1.5':
- resolution: {integrity: sha512-7S865uKzsxApM8W8Q6zkij7tcUFgaG8PuADMFdMt1yL/ku3d0+s6Zwrg3N7iXCPM08Gu/mf0BIfTXIu/9i450Q==}
- engines: {node: '>=14.0.0'}
+ '@smithy/signature-v4@3.1.2':
+ resolution: {integrity: sha512-3BcPylEsYtD0esM4Hoyml/+s7WP2LFhcM3J2AGdcL2vx9O60TtfpDOL72gjb4lU8NeRPeKAwR77YNyyGvMbuEA==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/smithy-client@3.1.5':
+ resolution: {integrity: sha512-x9bL9Mx2CT2P1OiUlHM+ZNpbVU6TgT32f9CmTRzqIHA7M4vYrROCWEoC3o4xHNJASoGd4Opos3cXYPgh+/m4Ww==}
+ engines: {node: '>=16.0.0'}
'@smithy/types@2.12.0':
resolution: {integrity: sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==}
engines: {node: '>=14.0.0'}
- '@smithy/types@2.6.0':
- resolution: {integrity: sha512-PgqxJq2IcdMF9iAasxcqZqqoOXBHufEfmbEUdN1pmJrJltT42b0Sc8UiYSWWzKkciIp9/mZDpzYi4qYG1qqg6g==}
- engines: {node: '>=14.0.0'}
+ '@smithy/types@3.3.0':
+ resolution: {integrity: sha512-IxvBBCTFDHbVoK7zIxqA1ZOdc4QfM5HM7rGleCuHi7L1wnKv5Pn69xXJQ9hgxH60ZVygH9/JG0jRgtUncE3QUA==}
+ engines: {node: '>=16.0.0'}
- '@smithy/url-parser@2.0.8':
- resolution: {integrity: sha512-wQw7j004ScCrBRJ+oNPXlLE9mtofxyadSZ9D8ov/rHkyurS7z1HTNuyaGRj6OvKsEk0SVQsuY0C9+EfM75XTkw==}
+ '@smithy/url-parser@3.0.3':
+ resolution: {integrity: sha512-pw3VtZtX2rg+s6HMs6/+u9+hu6oY6U7IohGhVNnjbgKy86wcIsSZwgHrFR+t67Uyxvp4Xz3p3kGXXIpTNisq8A==}
- '@smithy/util-base64@2.0.0':
- resolution: {integrity: sha512-Zb1E4xx+m5Lud8bbeYi5FkcMJMnn+1WUnJF3qD7rAdXpaL7UjkFQLdmW5fHadoKbdHpwH9vSR8EyTJFHJs++tA==}
- engines: {node: '>=14.0.0'}
+ '@smithy/util-base64@3.0.0':
+ resolution: {integrity: sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==}
+ engines: {node: '>=16.0.0'}
- '@smithy/util-body-length-browser@2.0.0':
- resolution: {integrity: sha512-JdDuS4ircJt+FDnaQj88TzZY3+njZ6O+D3uakS32f2VNnDo3vyEuNdBOh/oFd8Df1zSZOuH1HEChk2AOYDezZg==}
+ '@smithy/util-body-length-browser@3.0.0':
+ resolution: {integrity: sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==}
- '@smithy/util-body-length-node@2.1.0':
- resolution: {integrity: sha512-/li0/kj/y3fQ3vyzn36NTLGmUwAICb7Jbe/CsWCktW363gh1MOcpEcSO3mJ344Gv2dqz8YJCLQpb6hju/0qOWw==}
- engines: {node: '>=14.0.0'}
+ '@smithy/util-body-length-node@3.0.0':
+ resolution: {integrity: sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==}
+ engines: {node: '>=16.0.0'}
'@smithy/util-buffer-from@2.0.0':
resolution: {integrity: sha512-/YNnLoHsR+4W4Vf2wL5lGv0ksg8Bmk3GEGxn2vEQt52AQaPSCuaO5PM5VM7lP1K9qHRKHwrPGktqVoAHKWHxzw==}
engines: {node: '>=14.0.0'}
- '@smithy/util-config-provider@2.0.0':
- resolution: {integrity: sha512-xCQ6UapcIWKxXHEU4Mcs2s7LcFQRiU3XEluM2WcCjjBtQkUN71Tb+ydGmJFPxMUrW/GWMgQEEGipLym4XG0jZg==}
- engines: {node: '>=14.0.0'}
+ '@smithy/util-buffer-from@3.0.0':
+ resolution: {integrity: sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==}
+ engines: {node: '>=16.0.0'}
- '@smithy/util-defaults-mode-browser@2.0.9':
- resolution: {integrity: sha512-JONLJVQWT8165XoSV36ERn3SVlZLJJ4D6IeGsCSePv65Uxa93pzSLE0UMSR9Jwm4zix7rst9AS8W5QIypZWP8Q==}
+ '@smithy/util-config-provider@3.0.0':
+ resolution: {integrity: sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/util-defaults-mode-browser@3.0.7':
+ resolution: {integrity: sha512-Q2txLyvQyGfmjsaDbVV7Sg8psefpFcrnlGapDzXGFRPFKRBeEg6OvFK8FljqjeHSaCZ6/UuzQExUPqBR/2qlDA==}
engines: {node: '>= 10.0.0'}
- '@smithy/util-defaults-mode-node@2.0.11':
- resolution: {integrity: sha512-tmqjNsfj+bgZN6jXBe6efZnukzILA7BUytHkzqikuRLNtR+0VVchQHvawD0w6vManh76rO81ydhioe7i4oBzuA==}
+ '@smithy/util-defaults-mode-node@3.0.7':
+ resolution: {integrity: sha512-F4Qcj1fG6MGi2BSWCslfsMSwllws/WzYONBGtLybyY+halAcXdWhcew+mej8M5SKd5hqPYp4f7b+ABQEaeytgg==}
engines: {node: '>= 10.0.0'}
- '@smithy/util-hex-encoding@2.0.0':
- resolution: {integrity: sha512-c5xY+NUnFqG6d7HFh1IFfrm3mGl29lC+vF+geHv4ToiuJCBmIfzx6IeHLg+OgRdPFKDXIw6pvi+p3CsscaMcMA==}
- engines: {node: '>=14.0.0'}
+ '@smithy/util-endpoints@2.0.4':
+ resolution: {integrity: sha512-ZAtNf+vXAsgzgRutDDiklU09ZzZiiV/nATyqde4Um4priTmasDH+eLpp3tspL0hS2dEootyFMhu1Y6Y+tzpWBQ==}
+ engines: {node: '>=16.0.0'}
- '@smithy/util-middleware@2.0.1':
- resolution: {integrity: sha512-LnsBMi0Mg3gfz/TpNGLv2Jjcz2ra1OX5HR/4IaCepIYmtPQzqMWDdhX/XTW1LS8OZ0xbQuyQPcHkQ+2XkhWOVQ==}
- engines: {node: '>=14.0.0'}
+ '@smithy/util-hex-encoding@3.0.0':
+ resolution: {integrity: sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==}
+ engines: {node: '>=16.0.0'}
- '@smithy/util-retry@2.0.1':
- resolution: {integrity: sha512-naj4X0IafJ9yJnVJ58QgSMkCNLjyQOnyrnKh/T0f+0UOUxJiT8vuFn/hS7B/pNqbo2STY7PyJ4J4f+5YqxwNtA==}
- engines: {node: '>= 14.0.0'}
+ '@smithy/util-middleware@3.0.3':
+ resolution: {integrity: sha512-l+StyYYK/eO3DlVPbU+4Bi06Jjal+PFLSMmlWM1BEwyLxZ3aKkf1ROnoIakfaA7mC6uw3ny7JBkau4Yc+5zfWw==}
+ engines: {node: '>=16.0.0'}
- '@smithy/util-stream@2.0.11':
- resolution: {integrity: sha512-2MeWfqSpZKdmEJ+tH8CJQSgzLWhH5cmdE24X7JB0hiamXrOmswWGGuPvyj/9sQCTclo57pNxLR2p7KrP8Ahiyg==}
- engines: {node: '>=14.0.0'}
+ '@smithy/util-retry@3.0.3':
+ resolution: {integrity: sha512-AFw+hjpbtVApzpNDhbjNG5NA3kyoMs7vx0gsgmlJF4s+yz1Zlepde7J58zpIRIsdjc+emhpAITxA88qLkPF26w==}
+ engines: {node: '>=16.0.0'}
- '@smithy/util-uri-escape@2.0.0':
- resolution: {integrity: sha512-ebkxsqinSdEooQduuk9CbKcI+wheijxEb3utGXkCoYQkJnwTnLbH1JXGimJtUkQwNQbsbuYwG2+aFVyZf5TLaw==}
- engines: {node: '>=14.0.0'}
+ '@smithy/util-stream@3.0.5':
+ resolution: {integrity: sha512-xC3L5PKMAT/Bh8fmHNXP9sdQ4+4aKVUU3EEJ2CF/lLk7R+wtMJM+v/1B4en7jO++Wa5spGzFDBCl0QxgbUc5Ug==}
+ engines: {node: '>=16.0.0'}
'@smithy/util-uri-escape@2.2.0':
resolution: {integrity: sha512-jtmJMyt1xMD/d8OtbVJ2gFZOSKc+ueYJZPW20ULW1GOp/q/YIM0wNh+u8ZFao9UaIGz4WoPW8hC64qlWLIfoDA==}
engines: {node: '>=14.0.0'}
+ '@smithy/util-uri-escape@3.0.0':
+ resolution: {integrity: sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==}
+ engines: {node: '>=16.0.0'}
+
'@smithy/util-utf8@2.0.0':
resolution: {integrity: sha512-rctU1VkziY84n5OXe3bPNpKR001ZCME2JCaBBFgtiM2hfKbHFudc/BkMuPab8hRbLd0j3vbnBTTZ1igBf0wgiQ==}
engines: {node: '>=14.0.0'}
- '@smithy/util-waiter@2.0.8':
- resolution: {integrity: sha512-t9yaoofNhdEhNlyDeV5al/JJEFJ62HIQBGktgCUE63MvKn6imnbkh1qISsYMyMYVLwhWCpZ3Xa3R1LA+SnWcng==}
- engines: {node: '>=14.0.0'}
+ '@smithy/util-utf8@3.0.0':
+ resolution: {integrity: sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/util-waiter@3.1.2':
+ resolution: {integrity: sha512-4pP0EV3iTsexDx+8PPGAKCQpd/6hsQBaQhqWzU4hqKPHN5epPsxKbvUTIiYIHTxaKt6/kEaqPBpu/ufvfbrRzw==}
+ engines: {node: '>=16.0.0'}
'@sqltools/formatter@1.2.5':
resolution: {integrity: sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==}
- '@storybook/addon-actions@8.0.9':
- resolution: {integrity: sha512-+I3VTvlKdj8puHeS2tyaOVv9syDiNLneVZbTfqN+UDOK2i42NwvZr8PVwjTzMlEj9eePJdCZgiipz55xwts5bw==}
+ '@storybook/addon-actions@8.1.11':
+ resolution: {integrity: sha512-jqYXgBgOVInStOCk//AA+dGkrfN8R7rDXA4lyu82zM59kvICtG9iqgmkSRDn0Z3zUkM+lIHZGoz0aLVQ8pxsgw==}
- '@storybook/addon-backgrounds@8.0.9':
- resolution: {integrity: sha512-pCDecACrVyxPaJKEWS0sHsRb8xw+IPCSxDM1TkjaAQ6zZ468A/dcUnqW+LVK8bSXgQwWzn23wqnqPFSy5yptuQ==}
+ '@storybook/addon-backgrounds@8.1.11':
+ resolution: {integrity: sha512-naGf1ovmsU2pSWb270yRO1IidnO+0YCZ5Tcb8I4rPhZ0vsdXNURYKS1LPSk1OZkvaUXdeB4Im9HhHfUBJOW9oQ==}
- '@storybook/addon-controls@8.0.9':
- resolution: {integrity: sha512-wWdmd62UP/sfPm8M7aJjEA+kEXTUIR/QsYi9PoYBhBZcXiikZ4kNan7oD7GfsnzGGKHrBVfwQhO+TqaENGYytA==}
+ '@storybook/addon-controls@8.1.11':
+ resolution: {integrity: sha512-q/Vt4meNVlFlBWIMCJhx6r+bqiiYocCta2RoUK5nyIZUiLzHncKHX6JnCU36EmJzRyah9zkwjfCb2G1r9cjnoQ==}
- '@storybook/addon-docs@8.0.9':
- resolution: {integrity: sha512-x7hX7UuzJtClu6XwU3SfpyFhuckVcgqgD6BU6Ihxl0zs+i4xp6iKVXYSnHFMRM1sgoeT8TjPxab35Ke8w8BVRw==}
+ '@storybook/addon-docs@8.1.11':
+ resolution: {integrity: sha512-69dv+CE4R5wFU7xnJmhuyEbLN2PEVDV3N/BbgJqeucIYPmm6zDV83Q66teCHKYtRln3BFUqPH5mxsjiHobxfJQ==}
- '@storybook/addon-essentials@8.0.9':
- resolution: {integrity: sha512-mwAgdfrOsTuTDcagvM7veBh+iayZIWmKOazzkhrIWbhYcrXOsweigD2UOVeHgAiAzJK49znr4FXTCKcE1hOWcw==}
+ '@storybook/addon-essentials@8.1.11':
+ resolution: {integrity: sha512-uRTpcIZQnflML8H+2onicUNIIssKfuviW8Lyrs/KFwSZ1rMcYzhwzCNbGlIbAv04tgHe5NqEyNhb+DVQcZQBzg==}
- '@storybook/addon-highlight@8.0.9':
- resolution: {integrity: sha512-vaRHGDbx7dpNpQECAHk5wczlZO3ntstprGlqnZt0o7ylz6xB5+pTQwTuIFty0hwKv+3TPcskzzifATUyEOEmyg==}
+ '@storybook/addon-highlight@8.1.11':
+ resolution: {integrity: sha512-Iu8FCAd4ETsB6QF4xDE/OLLZY3HOFopuLM5KE0f58jnccF5zAVGr1Rj/54p6TeK0PEou0tLRPFuZs+LPlEzrSw==}
- '@storybook/addon-interactions@8.0.9':
- resolution: {integrity: sha512-AMIdNcyM6DDAWvMitBJMqp1iPZND8AXB4QT4VZHGMKG2ngHNKktriEKpTfcRkfKPGTJs9T+71dWfm6/R4tticw==}
+ '@storybook/addon-interactions@8.1.11':
+ resolution: {integrity: sha512-nkc01z61mYM1kxf0ncBQLlFnnwW4RAVPfRSxK9BdbFN3AAvFiHCwVZdn71mi+C3L8oTqYR6o32e0RlXk+AjhHA==}
- '@storybook/addon-links@8.0.9':
- resolution: {integrity: sha512-FVt+AdW3JFSqbJzkKiqKsMRWqHXqEvCBqFs7lNfk3OW0w0jfv1iREtrxE0dVdJoUFQC9V/2Im/EpJ7UB3C2bNQ==}
+ '@storybook/addon-links@8.1.11':
+ resolution: {integrity: sha512-HlV2RQSrZyi+55W1B1a9eWNuJdNpWx0g3j7s2arNlNmbd6/kfWAp84axBstI1tL0nW4svut7bWlCsMSOIden+A==}
peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
peerDependenciesMeta:
react:
optional: true
- '@storybook/addon-mdx-gfm@8.0.9':
- resolution: {integrity: sha512-AoEx+OGKANtVZgKyWKrQhGpMpDuc2S7PnOlNLUiDYzmj8ABAGPmEJmqeb/VHVgqLQSjhOW1fMsQ4fYsecvMxTQ==}
+ '@storybook/addon-mdx-gfm@8.1.11':
+ resolution: {integrity: sha512-0/4Xaisvmoi26iK1ezTOB9dN2b0JbgWKzO2PO6att2Jh7lplLCf1QeoE8Y4SgCh0brage+mA8mKI8NrT7d18pg==}
- '@storybook/addon-measure@8.0.9':
- resolution: {integrity: sha512-91svOOGEXmGG4USglwXLE3wtlUVgtbKJVxTKX7xRI+AC5JEEaKByVzP17/X8Qn/8HilUL7AfSQ0kCoqtPSJ5cA==}
+ '@storybook/addon-measure@8.1.11':
+ resolution: {integrity: sha512-LkQD3SiLWaWt53aLB3EnmhD9Im8EOO+HKSUE+XGnIJRUcHHRqHfvDkN9KX7T1DCWbfRE5WzMHF5o23b3UiAANw==}
- '@storybook/addon-outline@8.0.9':
- resolution: {integrity: sha512-fQ+jm356TgUnz81IxsC99/aOesbLw3N5OQRJpo/A6kqbLMzlq3ybVzuXYCKC3f0ArgQRNh4NoMeJBMRFMtaWRw==}
+ '@storybook/addon-outline@8.1.11':
+ resolution: {integrity: sha512-vco3RLVjkcS25dNtj1lxmjq4fC0Nq08KNLMS5cbNPVJWNTuSUi/2EthSTQQCdpfMV/p6u+D5uF20A9Pl0xJFXw==}
- '@storybook/addon-storysource@8.0.9':
- resolution: {integrity: sha512-5m3K2Rs4fQtKtqwrq4CDS1jK2wzWOlnxhE2ArX5XTWytb1am65CEPxfYTEQkvZH9oPGwX3cXytPCziynqysFMQ==}
+ '@storybook/addon-storysource@8.1.11':
+ resolution: {integrity: sha512-b2K3+ZzfANDTTeN1jnqNgAQ5ZIhnhIAv89gC/36cOhSK5NLyKmyVKLGQmR3fVqX3URpnz9xccst2JNXopvtccw==}
- '@storybook/addon-toolbars@8.0.9':
- resolution: {integrity: sha512-nNSBnnBOhQ+EJwkrIkK4ZBYPcozNmEH770CZ/6NK85SUJ6WEBZapE6ru33jIUokFGEvlOlNCeai0GUc++cQP8w==}
+ '@storybook/addon-toolbars@8.1.11':
+ resolution: {integrity: sha512-reIKB0+JTiP+GNzynlDcRf4xmv9+j/DQ94qiXl2ZG5+ufKilH8DiRZpVA/i0x+4+TxdGdOJr1/pOf8tAmhNEoQ==}
- '@storybook/addon-viewport@8.0.9':
- resolution: {integrity: sha512-Ao4+D56cO7biaw+iTlMU1FBec1idX0cmdosDeCFZin06MSawcPkeBlRBeruaSQYdLes8TBMdZPFgfuqI5yIk6g==}
+ '@storybook/addon-viewport@8.1.11':
+ resolution: {integrity: sha512-qk4IcGnAgiAUQxt8l5PIQ293Za+w6wxlJQIpxr7+QM8OVkADPzXY0MmQfYWU9EQplrxAC2MSx3/C1gZeq+MDOQ==}
- '@storybook/blocks@8.0.9':
- resolution: {integrity: sha512-F2zSrfSwzTFN7qW3zB80tG+EXtmfmCDC6Ird0F7tolszb6tOqJcAcBOwQbE2O0wI63sLu21qxzXgaKBMkiWvJg==}
+ '@storybook/blocks@8.1.11':
+ resolution: {integrity: sha512-eMed7PpL/hAVM6tBS7h70bEAyzbiSU9I/kye4jZ7DkCbAsrX6OKmC7pcHSDn712WTcf3vVqxy5jOKUmOXpc0eg==}
peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
peerDependenciesMeta:
react:
optional: true
react-dom:
optional: true
- '@storybook/builder-manager@8.0.9':
- resolution: {integrity: sha512-/PxDwZIfMc/PSRZcasb6SIdGr3azIlenzx7dBF7Imt8i4jLHiAf1t00GvghlfJsvsrn4DNp95rbRbXTDyTj7tQ==}
+ '@storybook/builder-manager@8.1.11':
+ resolution: {integrity: sha512-U7bmed4Ayg+OlJ8HPmLeGxLTHzDY7rxmxM4aAs4YL01fufYfBcjkIP9kFhJm+GJOvGm+YJEUAPe5mbM1P/bn0Q==}
- '@storybook/builder-vite@8.0.9':
- resolution: {integrity: sha512-7hEQFZIIz7VvxdySDpPE96iMvZxQvRZcRdhaNGeE+8Y2pyc3DgYE4WY3sjr+LUoB0a6TYLpAIKqbXwtLz0R+PQ==}
+ '@storybook/builder-vite@8.1.11':
+ resolution: {integrity: sha512-hG4eoNMCPgjZ2Ai+zSmk69zjsyEihe75XbJXtYfGRqjMWtz2+SAUFO54fLc2BD5svcUiTeN+ukWcTrwApyPsKg==}
peerDependencies:
'@preact/preset-vite': '*'
typescript: '>= 4.3.x'
@@ -3977,48 +4377,53 @@ packages:
vite-plugin-glimmerx:
optional: true
- '@storybook/channels@8.0.9':
- resolution: {integrity: sha512-7Lcfyy5CsLWWGhMPO9WG4jZ/Alzp0AjepFhEreYHRPtQrfttp6qMAjE/g1aHgun0qHCYWxwqIG4NLR/hqDNrXQ==}
+ '@storybook/channels@8.1.11':
+ resolution: {integrity: sha512-fu5FTqo6duOqtJFa6gFzKbiSLJoia+8Tibn3xFfB6BeifWrH81hc+AZq0lTmHo5qax2G5t8ZN8JooHjMw6k2RA==}
- '@storybook/cli@8.0.9':
- resolution: {integrity: sha512-lilYTKn8F5YOePijqfRYFa5v2mHVIJxPCIgTn+OXAmAFbcizZ6P8P6niU4J/NXulgx68Ln1M7hYhFtTP25hVTw==}
+ '@storybook/cli@8.1.11':
+ resolution: {integrity: sha512-4U48w9C7mVEKrykcPcfHwJkRyCqJ28XipbElACbjIIkQEqaHaOVtP3GeKIrgkoOXe/HK3O4zKWRP2SqlVS0r4A==}
hasBin: true
- '@storybook/client-logger@8.0.9':
- resolution: {integrity: sha512-LzV/RHkbf07sRc1Jc0ff36RlapKf9Ul7/+9VMvVbI3hshH1CpmrZK4t/tsIdpX/EVOdJ1Gg5cES06PnleOAIPA==}
+ '@storybook/client-logger@8.1.11':
+ resolution: {integrity: sha512-DVMh2usz3yYmlqCLCiCKy5fT8/UR9aTh+gSqwyNFkGZrIM4otC5A8eMXajXifzotQLT5SaOEnM3WzHwmpvMIEA==}
- '@storybook/codemod@8.0.9':
- resolution: {integrity: sha512-VBeGpSZSQpL6iyLLqceJSNGhdCqcNwv+xC/aWdDFOkmuE1YfbmNNwpa9QYv4ZFJ2QjUsm4iTWG60qK+9NXeSKA==}
+ '@storybook/codemod@8.1.11':
+ resolution: {integrity: sha512-/LCozjH1IQ1TOs9UQV59BE0X6UZ9q+C0NEUz7qmJZPrwAii3FkW4l7D/fwxblpMExaoxv0oE8NQfUz49U/5Ymg==}
- '@storybook/components@8.0.9':
- resolution: {integrity: sha512-JcwBGADzIJs0PSzqykrrD2KHzNG9wtexUOKuidt+FSv9szpUhe3qBAXIHpdfBRl7mOJ9TRZ5rt+mukEnfncdzA==}
+ '@storybook/components@8.1.11':
+ resolution: {integrity: sha512-iXKsNu7VmrLBtjMfPj7S4yJ6T13GU6joKcVcrcw8wfrQJGlPFp4YaURPBUEDxvCt1XWi5JkaqJBvb48kIrROEQ==}
peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
- '@storybook/core-common@8.0.9':
- resolution: {integrity: sha512-Jmue+sfHFb4GTYBzyWYw1MygoJiQSfISIrKmNIzAmZ+oR9EOr+jpu/i/bH+uetZ2Hqg1AGhj1VB7OtJp9HQyWw==}
+ '@storybook/core-common@8.1.11':
+ resolution: {integrity: sha512-Ix0nplD4I4DrV2t9B+62jaw1baKES9UbR/Jz9LVKFF9nsua3ON0aVe73dOjMxFWBngpzBYWe+zYBTZ7aQtDH4Q==}
+ peerDependencies:
+ prettier: ^2 || ^3
+ peerDependenciesMeta:
+ prettier:
+ optional: true
- '@storybook/core-events@8.0.9':
- resolution: {integrity: sha512-DxSUx7wG9Qe3OFUBnv3OrYq48J8UWNo2DUR5/JecJCtp3n++L4fAEW3J0IF5FfxpQDMQSp1yTNjZ2PaWCMd2ag==}
+ '@storybook/core-events@8.1.11':
+ resolution: {integrity: sha512-vXaNe2KEW9BGlLrg0lzmf5cJ0xt+suPjWmEODH5JqBbrdZ67X6ApA2nb6WcxDQhykesWCuFN5gp1l+JuDOBi7A==}
- '@storybook/core-server@8.0.9':
- resolution: {integrity: sha512-BIe1T5YUBl0GYxEjRoTQsvXD2pyuzL8rPTUD41zlzSQM0R8U6Iant9SzRms4u0+rKUm2mGxxKuODlUo5ewqaGA==}
+ '@storybook/core-server@8.1.11':
+ resolution: {integrity: sha512-L6dzQTmR0np/kagNONvvlm6lSvF1FNc9js3vxsEEPnEypLbhx8bDZaHmuhmBpYUzKyUMpRVQTE/WgjHLuBBuxA==}
- '@storybook/csf-plugin@8.0.9':
- resolution: {integrity: sha512-pXaNCNi++kxKsqSWwvx215fPx8cNqvepLVxQ7B69qXLHj80DHn0Q3DFBO3sLXNiQMJ2JK4OYcTxMfuOiyzszKw==}
+ '@storybook/csf-plugin@8.1.11':
+ resolution: {integrity: sha512-hkA8gjFtSN/tabG0cuvmEqanMXtxPr3qTkp4UNSt1R6jBEgFHRG2y/KYLl367kDwOSFTT987ZgRfJJruU66Fvw==}
- '@storybook/csf-tools@8.0.9':
- resolution: {integrity: sha512-PiNMhL97giLytTdQwuhsZ92buVk4gy9H/8DtrDhUc45/1OmF95gogm6T2Yap729SIFwgpOcuq/U3aVo6d6swVQ==}
+ '@storybook/csf-tools@8.1.11':
+ resolution: {integrity: sha512-6qMWAg/dBwCVIHzANM9lSHoirwqSS+wWmv+NwAs0t9S94M75IttHYxD3IyzwaSYCC5llp0EQFvtXXAuSfFbibg==}
- '@storybook/csf@0.1.6':
- resolution: {integrity: sha512-JjWnBptVhBYJ14yq+cHs66BXjykRUWQ5TlD1RhPxMOtavynYyV/Q+QR98/N+XB+mcPtFMm5I2DvNkpj0/Dk8Mw==}
+ '@storybook/csf@0.1.9':
+ resolution: {integrity: sha512-JlZ6v/iFn+iKohKGpYXnMeNeTiiAMeFoDhYnPLIC8GnyyIWqEI9wJYrOK9i9rxlJ8NZAH/ojGC/u/xVC41qSgQ==}
- '@storybook/docs-mdx@3.0.0':
- resolution: {integrity: sha512-NmiGXl2HU33zpwTv1XORe9XG9H+dRUC1Jl11u92L4xr062pZtrShLmD4VKIsOQujxhhOrbxpwhNOt+6TdhyIdQ==}
+ '@storybook/docs-mdx@3.1.0-next.0':
+ resolution: {integrity: sha512-t4syFIeSyufieNovZbLruPt2DmRKpbwL4fERCZ1MifWDRIORCKLc4NCEHy+IqvIqd71/SJV2k4B51nF7vlJfmQ==}
- '@storybook/docs-tools@8.0.9':
- resolution: {integrity: sha512-OzogAeOmeHea/MxSPKRBWtOQVNSpoq+OOpimO9YRA5h5GBRJ2TUOGT44Gny6QT4ll5AvQA8fIiq9KezKcLekAg==}
+ '@storybook/docs-tools@8.1.11':
+ resolution: {integrity: sha512-mEXtR9rS7Y+OdKtT/QG6JBGYR1L41mcDhIqhnk7RmYl9qJstVAegrCKWR53sPKFdTVOHU7dmu6k+BD+TqHpyyw==}
'@storybook/global@5.0.0':
resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==}
@@ -4030,83 +4435,83 @@ packages:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
- '@storybook/instrumenter@8.0.9':
- resolution: {integrity: sha512-Gw74dgpTU/2p7FG0s7DuVdqCbJ2MEcSuRJjDo7HcXRYcvWp7I6Ly+C0v7N5VaoS+kbBVerAhLKIHZgG/LZf1og==}
+ '@storybook/instrumenter@8.1.11':
+ resolution: {integrity: sha512-r/U9hcqnodNMHuzRt1g56mWrVsDazR85Djz64M3KOwBhrTj5d46DF4/EE80w/5zR5JOrT7p8WmjJRowiVteOCQ==}
- '@storybook/manager-api@8.0.9':
- resolution: {integrity: sha512-99b3yKArDSvfabXL7QE3nA95e4DdW/5H/ZCcr6/E2qCQJayZ6G1v/WWamKXbiaTpkndulFmcb/+ZmnDXcweIIQ==}
+ '@storybook/manager-api@8.1.11':
+ resolution: {integrity: sha512-QSgwKfAw01K9YvvZj30iGBMgQ4YaCT3vojmttuqdH5ukyXkiO7pENLJj4Y+alwUeSi0g+SJeadCI3PXySBHOGg==}
- '@storybook/manager@8.0.9':
- resolution: {integrity: sha512-+NnRo+5JQFGNqveKrLtC0b+Z08Tae4m44iq292bPeZMpr9OkFsIkU0PBPsHTHPkrqC/zZXRNsCsTEgvu3p2OIA==}
+ '@storybook/manager@8.1.11':
+ resolution: {integrity: sha512-e02y9dmxowo7cTKYm9am7UO6NOHoHy6Xi7xZf/UA932qLwFZUtk5pnwIEFaZWI3OQsRUCGhP+FL5zizU7uVZeg==}
- '@storybook/node-logger@8.0.9':
- resolution: {integrity: sha512-5ajMdZFrYrjGLJOVDq7dlEQNFsgeLHymt4dCK9MulL/ciXykmXUZXE3Bye0wFy+I2qqDVvrvR8uzCvSFvm5MAQ==}
+ '@storybook/node-logger@8.1.11':
+ resolution: {integrity: sha512-wdzFo7B2naGhS52L3n1qBkt5BfvQjs8uax6B741yKRpiGgeAN8nz8+qelkD25MbSukxvbPgDot7WJvsMU/iCzg==}
- '@storybook/preview-api@8.0.9':
- resolution: {integrity: sha512-zHfX34bkAMzzmE7vbDzaqFwSW6ExiBD0HiO1L/IsHF55f0f7xV7IH8uJyFRrDTvAoW3ReSxZDMvvPpeydFPKGA==}
+ '@storybook/preview-api@8.1.11':
+ resolution: {integrity: sha512-8ZChmFV56GKppCJ0hnBd/kNTfGn2gWVq1242kuet13pbJtBpvOhyq4W01e/Yo14tAPXvgz8dSnMvWLbJx4QfhQ==}
- '@storybook/preview@8.0.9':
- resolution: {integrity: sha512-tFsR8xc8AYBZZrZw8enklFbSQt7ZAV+rv20BoxwDhd3q7fjXyK7O4moGPqUwBZ7rukTG13nPoISxr+VXAk/HYA==}
+ '@storybook/preview@8.1.11':
+ resolution: {integrity: sha512-K/9NZmjnL0D1BROkTNWNoPqgL2UaocALRSqCARmkBLgU2Rn/FuZgEclHkWlYo6pUrmLNK+bZ+XzpNMu12iTbpg==}
- '@storybook/react-dom-shim@8.0.9':
- resolution: {integrity: sha512-8011KlRuG3obr5pZZ7bcEyYYNWF3tR596YadoMd267NPoHKvwAbKL1L/DNgb6kiYjZDUf9QfaKSCWW31k0kcRQ==}
+ '@storybook/react-dom-shim@8.1.11':
+ resolution: {integrity: sha512-KVDSuipqkFjpGfldoRM5xR/N1/RNmbr+sVXqMmelr0zV2jGnexEZnoa7wRHk7IuXuivLWe8BxMxzvQWqjIa4GA==}
peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
- '@storybook/react-vite@8.0.9':
- resolution: {integrity: sha512-FT5KeulUH6grfzOJOxJCxpv9+81UVDrT9UPcgiFhQT9rKtsgmltezThwbHknByZNw3WWnf+ieidMLEis9hd73A==}
+ '@storybook/react-vite@8.1.11':
+ resolution: {integrity: sha512-QqkE6QKsIDthXtps9+YSBQ39O4VvU7Uu3y6WSA3IPgKTtGnmIvhwXtapjf7WQ2cNb5KY1JksFxHXbDe0i5IL4g==}
engines: {node: '>=18.0.0'}
peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
vite: ^4.0.0 || ^5.0.0
- '@storybook/react@8.0.9':
- resolution: {integrity: sha512-NeQ6suZG3HKikwe3Tx9cAIaRx7uP8FKCmlVvIiBg4LTTI5orCt94PPakvuZukZcbkqvcCnEBkebAzwUpn8PiJw==}
+ '@storybook/react@8.1.11':
+ resolution: {integrity: sha512-t+EYXOkgwg3ropLGS9y8gGvX5/Okffu/6JYL3YWksrBGAZSqVV4NkxCnVJZepS717SyhR0tN741gv/SxxFPJMg==}
engines: {node: '>=18.0.0'}
peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
typescript: '>= 4.2.x'
peerDependenciesMeta:
typescript:
optional: true
- '@storybook/router@8.0.9':
- resolution: {integrity: sha512-aAOWxbM9J4mt+cp4o88T2PB29mgBBTOzU37/pUsTHYnKnR9XI4npXEXdN8Gv+ryqM0kj0AbBpz/llFlnR2MNNA==}
+ '@storybook/router@8.1.11':
+ resolution: {integrity: sha512-nU5lsBvy0L8wBYOkjagh29ztZicDATpZNYrHuavlhQ2jznmmHdJvXKYk+VrMAbthjQ6ZBqfeeMNPR1UlnqR5Rw==}
- '@storybook/source-loader@8.0.9':
- resolution: {integrity: sha512-FDnpxIGE5nIYT15pvYe6rz95TSBrdLcDll7lOHNyZisWt19MI3wZU3YkVsFNRBuFrebo+FjVU3wHyoV81ur1Qw==}
+ '@storybook/source-loader@8.1.11':
+ resolution: {integrity: sha512-4cfJ7aPjtniIdDGiFjdFpO47byHOl4RKYCJEHf9t+j0xHmlXe4B9aAinxuFfv3GKAXfLvSbbwGO0cDZQRj+brw==}
- '@storybook/telemetry@8.0.9':
- resolution: {integrity: sha512-AGGfcup06t+wxhBIkHd0iybieOh9PDVZQJ9oPct5JGB39+ni9wvs0WOD+MYlHbsjp8id7+aGkh6mYuYOvfck+Q==}
+ '@storybook/telemetry@8.1.11':
+ resolution: {integrity: sha512-Jqvm7HcZismKzPuebhyLECO6KjGiSk4ycbca1WUM/TUvifxCXqgoUPlHHQEEfaRdHS63/MSqtMNjLsQRLC/vNQ==}
- '@storybook/test@8.0.9':
- resolution: {integrity: sha512-bRd5tBJnPzR6UKbDXONWnFWtdkNOY99HMLDUWe5fTRo50GwkrpFBVqPflhdkruEeof0kAbBUbnoN2CIYgtnAFw==}
+ '@storybook/test@8.1.11':
+ resolution: {integrity: sha512-k+V3HemF2/I8fkRxRqM8uH8ULrpBSAAdBOtWSHWLvHguVcb2YA4g4kKo6tXBB9256QfyDW4ZiaAj0/9TMxmJPQ==}
- '@storybook/theming@8.0.9':
- resolution: {integrity: sha512-jgfDuYoiNMMirQiASN3Eg0hGDXsEtpdAcMxyShqYGwu9elxgD9yUnYC2nSckYsM74a3ZQ3JaViZ9ZFSe2FHmeQ==}
+ '@storybook/theming@8.1.11':
+ resolution: {integrity: sha512-Chn/opjO6Rl1isNobutYqAH2PjKNkj09YBw/8noomk6gElSa3JbUTyaG/+JCHA6OG/9kUsqoKDb5cZmAKNq/jA==}
peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
peerDependenciesMeta:
react:
optional: true
react-dom:
optional: true
- '@storybook/types@8.0.9':
- resolution: {integrity: sha512-ew0EXzk9k4B557P1qIWYrnvUcgaE0WWA5qQS0AU8l+fRTp5nvl9O3SP/zNIB0SN1qDFO7dXr3idTNTyIikTcEQ==}
+ '@storybook/types@8.1.11':
+ resolution: {integrity: sha512-k9N5iRuY2+t7lVRL6xeu6diNsxO3YI3lS4Juv3RZ2K4QsE/b3yG5ElfJB8DjHDSHwRH4ORyrU71KkOCUVfvtnw==}
- '@storybook/vue3-vite@8.0.9':
- resolution: {integrity: sha512-IkzYsEyCo5HIvLWbJeGrBu/VIN4u+LvdIAz7vcFqVVXBtTUhy+9/8caLx8fdnM0FWgKcBRQs8HnjBB2V0lOFcg==}
+ '@storybook/vue3-vite@8.1.11':
+ resolution: {integrity: sha512-q0bqh8XEEunaTmp4YiDqM2+YZLwEIevTb5PnNe7G7f2qOiSCE1ncBDnBK717UlCd+iYr34NTztgV2/jIhz1i5w==}
engines: {node: '>=18.0.0'}
peerDependencies:
vite: ^4.0.0 || ^5.0.0
- '@storybook/vue3@8.0.9':
- resolution: {integrity: sha512-EqVdS62YbOCAE0wJrQKW0sHpM90be8N8Mvmj+HzB0QYhJNtFqP9ehwbcTfwEKtaVGudisHgGBOzNoSKDlxFaag==}
+ '@storybook/vue3@8.1.11':
+ resolution: {integrity: sha512-xJtvfLiCOY3UqwDMd0hZdsadPm1q8dwjfM1UN2Q2ssRWNfXzww1oi+Msj902wz9zFZMYVZypfTfgrdRgWmfEjA==}
engines: {node: '>=18.0.0'}
peerDependencies:
vue: ^3.0.0
@@ -4134,8 +4539,8 @@ packages:
cpu: [arm64]
os: [darwin]
- '@swc/core-darwin-arm64@1.4.17':
- resolution: {integrity: sha512-HVl+W4LezoqHBAYg2JCqR+s9ife9yPfgWSj37iIawLWzOmuuJ7jVdIB7Ee2B75bEisSEKyxRlTl6Y1Oq3owBgw==}
+ '@swc/core-darwin-arm64@1.6.6':
+ resolution: {integrity: sha512-5DA8NUGECcbcK1YLKJwNDKqdtTYDVnkfDU1WvQSXq/rU+bjYCLtn5gCe8/yzL7ISXA6rwqPU1RDejhbNt4ARLQ==}
engines: {node: '>=10'}
cpu: [arm64]
os: [darwin]
@@ -4146,8 +4551,8 @@ packages:
cpu: [x64]
os: [darwin]
- '@swc/core-darwin-x64@1.4.17':
- resolution: {integrity: sha512-WYRO9Fdzq4S/he8zjW5I95G1zcvyd9yyD3Tgi4/ic84P5XDlSMpBDpBLbr/dCPjmSg7aUXxNQqKqGkl6dQxYlA==}
+ '@swc/core-darwin-x64@1.6.6':
+ resolution: {integrity: sha512-2nbh/RHpweNRsJiYDFk1KcX7UtaKgzzTNUjwtvK5cp0wWrpbXmPvdlWOx3yzwoiSASDFx78242JHHXCIOlEdsw==}
engines: {node: '>=10'}
cpu: [x64]
os: [darwin]
@@ -4164,8 +4569,8 @@ packages:
cpu: [arm]
os: [linux]
- '@swc/core-linux-arm-gnueabihf@1.4.17':
- resolution: {integrity: sha512-cgbvpWOvtMH0XFjvwppUCR+Y+nf6QPaGu6AQ5hqCP+5Lv2zO5PG0RfasC4zBIjF53xgwEaaWmGP5/361P30X8Q==}
+ '@swc/core-linux-arm-gnueabihf@1.6.6':
+ resolution: {integrity: sha512-YgytuyUfR7b0z0SRHKV+ylr83HmgnROgeT7xryEkth6JGpAEHooCspQ4RrWTU8+WKJ7aXiZlGXPgybQ4TiS+TA==}
engines: {node: '>=10'}
cpu: [arm]
os: [linux]
@@ -4176,8 +4581,8 @@ packages:
cpu: [arm64]
os: [linux]
- '@swc/core-linux-arm64-gnu@1.4.17':
- resolution: {integrity: sha512-l7zHgaIY24cF9dyQ/FOWbmZDsEj2a9gRFbmgx2u19e3FzOPuOnaopFj0fRYXXKCmtdx+anD750iBIYnTR+pq/Q==}
+ '@swc/core-linux-arm64-gnu@1.6.6':
+ resolution: {integrity: sha512-yGwx9fddzEE0iURqRVwKBQ4IwRHE6hNhl15WliHpi/PcYhzmYkUIpcbRXjr0dssubXAVPVnx6+jZVDSbutvnfg==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
@@ -4188,8 +4593,8 @@ packages:
cpu: [arm64]
os: [linux]
- '@swc/core-linux-arm64-musl@1.4.17':
- resolution: {integrity: sha512-qhH4gr9gAlVk8MBtzXbzTP3BJyqbAfUOATGkyUtohh85fPXQYuzVlbExix3FZXTwFHNidGHY8C+ocscI7uDaYw==}
+ '@swc/core-linux-arm64-musl@1.6.6':
+ resolution: {integrity: sha512-a6fMbqzSAsS5KCxFJyg1mD5kwN3ZFO8qQLyJ75R/htZP/eCt05jrhmOI7h2n+1HjiG332jLnZ9S8lkVE5O8Nqw==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
@@ -4200,8 +4605,8 @@ packages:
cpu: [x64]
os: [linux]
- '@swc/core-linux-x64-gnu@1.4.17':
- resolution: {integrity: sha512-vRDFATL1oN5oZMImkwbgSHEkp8xG1ofEASBypze01W1Tqto8t+yo6gsp69wzCZBlxldsvPpvFZW55Jq0Rn+UnA==}
+ '@swc/core-linux-x64-gnu@1.6.6':
+ resolution: {integrity: sha512-hRGsUKNzzZle28YF0dYIpN0bt9PceR9LaVBq7x8+l9TAaDLFbgksSxcnU/ubTtsy+WsYSYGn+A83w3xWC0O8CQ==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
@@ -4212,8 +4617,8 @@ packages:
cpu: [x64]
os: [linux]
- '@swc/core-linux-x64-musl@1.4.17':
- resolution: {integrity: sha512-zQNPXAXn3nmPqv54JVEN8k2JMEcMTQ6veVuU0p5O+A7KscJq+AGle/7ZQXzpXSfUCXlLMX4wvd+rwfGhh3J4cw==}
+ '@swc/core-linux-x64-musl@1.6.6':
+ resolution: {integrity: sha512-NokIUtFxJDVv3LzGeEtYMTV3j2dnGKLac59luTeq36DQLZdJQawQIdTbzzWl2jE7lxxTZme+dhsVOH9LxE3ceg==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
@@ -4224,8 +4629,8 @@ packages:
cpu: [arm64]
os: [win32]
- '@swc/core-win32-arm64-msvc@1.4.17':
- resolution: {integrity: sha512-z86n7EhOwyzxwm+DLE5NoLkxCTme2lq7QZlDjbQyfCxOt6isWz8rkW5QowTX8w9Rdmk34ncrjSLvnHOeLY17+w==}
+ '@swc/core-win32-arm64-msvc@1.6.6':
+ resolution: {integrity: sha512-lzYdI4qb4k1dFG26yv+9Jaq/bUMAhgs/2JsrLncGjLof86+uj74wKYCQnbzKAsq2hDtS5DqnHnl+//J+miZfGA==}
engines: {node: '>=10'}
cpu: [arm64]
os: [win32]
@@ -4236,8 +4641,8 @@ packages:
cpu: [ia32]
os: [win32]
- '@swc/core-win32-ia32-msvc@1.4.17':
- resolution: {integrity: sha512-JBwuSTJIgiJJX6wtr4wmXbfvOswHFj223AumUrK544QV69k60FJ9q2adPW9Csk+a8wm1hLxq4HKa2K334UHJ/g==}
+ '@swc/core-win32-ia32-msvc@1.6.6':
+ resolution: {integrity: sha512-bvl7FMaXIJQ76WZU0ER4+RyfKIMGb6S2MgRkBhJOOp0i7VFx4WLOnrmMzaeoPJaJSkityVKAftfNh7NBzTIydQ==}
engines: {node: '>=10'}
cpu: [ia32]
os: [win32]
@@ -4248,17 +4653,17 @@ packages:
cpu: [x64]
os: [win32]
- '@swc/core-win32-x64-msvc@1.4.17':
- resolution: {integrity: sha512-jFkOnGQamtVDBm3MF5Kq1lgW8vx4Rm1UvJWRUfg+0gx7Uc3Jp3QMFeMNw/rDNQYRDYPG3yunCC+2463ycd5+dg==}
+ '@swc/core-win32-x64-msvc@1.6.6':
+ resolution: {integrity: sha512-WAP0JoCTfgeYKgOeYJoJV4ZS0sQUmU3OwvXa2dYYtMLF7zsNqOiW4niU7QlThBHgUv/qNZm2p6ITEgh3w1cltw==}
engines: {node: '>=10'}
cpu: [x64]
os: [win32]
- '@swc/core@1.4.17':
- resolution: {integrity: sha512-tq+mdWvodMBNBBZbwFIMTVGYHe9N7zvEaycVVjfvAx20k1XozHbHhRv+9pEVFJjwRxLdXmtvFZd3QZHRAOpoNQ==}
+ '@swc/core@1.6.6':
+ resolution: {integrity: sha512-sHfmIUPUXNrQTwFMVCY5V5Ena2GTOeaWjS2GFUpjLhAgVfP90OP67DWow7+cYrfFtqBdILHuWnjkTcd0+uPKlg==}
engines: {node: '>=10'}
peerDependencies:
- '@swc/helpers': ^0.5.0
+ '@swc/helpers': '*'
peerDependenciesMeta:
'@swc/helpers':
optional: true
@@ -4272,8 +4677,8 @@ packages:
peerDependencies:
'@swc/core': '*'
- '@swc/types@0.1.5':
- resolution: {integrity: sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==}
+ '@swc/types@0.1.9':
+ resolution: {integrity: sha512-qKnCno++jzcJ4lM4NTfYifm1EFSCeIfKiAHAfkENZAV5Kl9PjJIyd2yeeVv6c/2CckuLyv2NmRC5pv6pm2WQBg==}
'@swc/wasm@1.2.130':
resolution: {integrity: sha512-rNcJsBxS70+pv8YUWwf5fRlWX6JoY/HJc25HD/F8m6Kv7XhJdqPPMhyX6TKkUBPAG7TWlZYoxa+rHAjPy4Cj3Q==}
@@ -4335,16 +4740,16 @@ packages:
resolution: {integrity: sha512-EmCsnzdvawyk4b+4JKaLLuicHcJQRZtL1zSy9AWJLiiHTbDDseYgLxfaCEfLk8v2bUe7SBXwl3n3B7OjgvH11Q==}
hasBin: true
- '@testing-library/dom@9.3.3':
- resolution: {integrity: sha512-fB0R+fa3AUqbLHWyxXa2kGVtf1Fe1ZZFr0Zp6AIbIAzXb2mKbEXl+PCQNUOaq5lbTab5tfctfXRNsWXxa2f7Aw==}
- engines: {node: '>=14'}
+ '@testing-library/dom@10.1.0':
+ resolution: {integrity: sha512-wdsYKy5zupPyLCW2Je5DLHSxSfbIp6h80WoHOQc+RPtmPGA52O9x5MJEkv92Sjonpq+poOAtUKhh1kBGAXBrNA==}
+ engines: {node: '>=18'}
'@testing-library/dom@9.3.4':
resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==}
engines: {node: '>=14'}
- '@testing-library/jest-dom@6.4.2':
- resolution: {integrity: sha512-CzqH0AFymEMG48CpzXFriYYkOjk6ZGPCLMhW9e9jg3KMCn5OfJecF8GtGW7yGfR/IgCe3SX8BSwjdzI6BBbZLw==}
+ '@testing-library/jest-dom@6.4.5':
+ resolution: {integrity: sha512-AguB9yvTXmCnySBP1lWjfNNUwpbElsaQ567lt2VdGqAdHtpieLgjmcVyv1q7PMIvLbgpDdkWV5Ydv3FEejyp2A==}
engines: {node: '>=14', npm: '>=6', yarn: '>=1'}
peerDependencies:
'@jest/globals': '>= 28'
@@ -4370,8 +4775,8 @@ packages:
peerDependencies:
'@testing-library/dom': '>=7.21.4'
- '@testing-library/vue@8.0.3':
- resolution: {integrity: sha512-wSsbNlZ69ZFQgVlHMtc/ZC/g9BHO7MhyDrd4nHyfEubtMr3kToN/w4/BsSBknGIF8w9UmPbsgbIuq/CbdBHzCA==}
+ '@testing-library/vue@8.1.0':
+ resolution: {integrity: sha512-ls4RiHO1ta4mxqqajWRh8158uFObVrrtAPoxk7cIp4HrnQUj/ScKzqz53HxYpG3X6Zb7H2v+0eTGLSoy8HQ2nA==}
engines: {node: '>=14'}
peerDependencies:
'@vue/compiler-sfc': '>= 3'
@@ -4387,8 +4792,8 @@ packages:
resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
engines: {node: '>=10.13.0'}
- '@tsd/typescript@5.3.3':
- resolution: {integrity: sha512-CQlfzol0ldaU+ftWuG52vH29uRoKboLinLy84wS8TQOu+m+tWoaUfk4svL4ij2V8M5284KymJBlHUusKj6k34w==}
+ '@tsd/typescript@5.4.5':
+ resolution: {integrity: sha512-saiCxzHRhUrRxQV2JhH580aQUZiKQUXI38FcAcikcfOomAil4G4lxT0RfrrKywoAYP/rqAdYXYmNRLppcd+hQQ==}
engines: {node: '>=14.17'}
'@twemoji/parser@15.0.0':
@@ -4433,12 +4838,6 @@ packages:
'@types/cacheable-request@6.0.3':
resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==}
- '@types/chai-subset@1.3.5':
- resolution: {integrity: sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==}
-
- '@types/chai@4.3.11':
- resolution: {integrity: sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==}
-
'@types/color-convert@2.0.3':
resolution: {integrity: sha512-2Q6wzrNiuEvYxVQqhh7sXM2mhIhvZR/Paq4FdsQkOMgWsCIkKvSGj8Le1/XalulrmgOzPMqNa0ix+ePY4hTrfg==}
@@ -4469,6 +4868,9 @@ packages:
'@types/detect-port@1.3.2':
resolution: {integrity: sha512-xxgAGA2SAU4111QefXPSp5eGbDm/hW6zhvYl9IeEPZEry9F4d66QAHm5qpUXjb6IsevZV/7emAEx5MhP6O192g==}
+ '@types/diff@5.2.1':
+ resolution: {integrity: sha512-uxpcuwWJGhe2AR1g8hD9F5OYGCqjqWnBUQFD8gMZsDbv8oPHzxJF6iMO6n8Tk0AdzlxoaaoQhOYlIg/PukVU8g==}
+
'@types/disposable-email-domains@1.0.2':
resolution: {integrity: sha512-SDKwyYTjk3y5aZBxxc38yRecpJPjsqn57STz1bNxYYlv4k11bBe7QB8w4llXDTmQXKT1mFvgGmJv+8Zdu3YmJw==}
@@ -4532,8 +4934,8 @@ packages:
'@types/http-errors@2.0.4':
resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==}
- '@types/http-link-header@1.0.5':
- resolution: {integrity: sha512-AxhIKR8UbyoqCTNp9rRepkktHuUOw3DjfOfDCaO9kwI8AYzjhxyrvZq4+mRw/2daD3hYDknrtSeV6SsPwmc71w==}
+ '@types/http-link-header@1.0.7':
+ resolution: {integrity: sha512-snm5oLckop0K3cTDAiBnZDy6ncx9DJ3mCRDvs42C884MbVYPP74Tiq2hFsSDRTyjK6RyDYDIulPiW23ge+g5Lw==}
'@types/istanbul-lib-coverage@2.0.4':
resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==}
@@ -4550,8 +4952,8 @@ packages:
'@types/js-yaml@4.0.9':
resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==}
- '@types/jsdom@21.1.6':
- resolution: {integrity: sha512-/7kkMsC+/kMs7gAYmmBR9P0vGTnOoLhQhyhQJSlXGI5bzTHp6xdo0TtKWQAsz6pmSAeVqKSbqeyP6hytqr9FDw==}
+ '@types/jsdom@21.1.7':
+ resolution: {integrity: sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==}
'@types/json-schema@7.0.12':
resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==}
@@ -4562,8 +4964,8 @@ packages:
'@types/json5@0.0.29':
resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
- '@types/jsonld@1.5.13':
- resolution: {integrity: sha512-n7fUU6W4kSYK8VQlf/LsE9kddBHPKhODoVOjsZswmve+2qLwBy6naWxs/EiuSZN9NU0N06Ra01FR+j87C62T0A==}
+ '@types/jsonld@1.5.14':
+ resolution: {integrity: sha512-z4IRf5oRgjPTkazDDv94sjzI5iK3DrDEW7Y5Gk4VO4+ANymgtHtNaXWi93+BmiAoG3PB9QTv5DgSpKWGYVvysA==}
'@types/jsrsasign@10.5.14':
resolution: {integrity: sha512-lppSlfK6etu+cuKs40K4rg8As79PH6hzIB+v55zSqImbSH3SE6Fm8MBHCiI91cWlAP3Z4igtJK1VL3fSN09blQ==}
@@ -4598,8 +5000,8 @@ packages:
'@types/mdx@2.0.3':
resolution: {integrity: sha512-IgHxcT3RC8LzFLhKwP3gbMPeaK7BM9eBH46OdapPA7yvuIUJ8H6zHZV53J8hGZcTSnt95jANt+rTBNUUc22ACQ==}
- '@types/micromatch@4.0.7':
- resolution: {integrity: sha512-C/FMQ8HJAZhTsDpl4wDKZdMeeW5USjgzOczUwTGbRc1ZopPgOhIEnxY2ZgUrsuyy4DwK1JVOJZKFakv3TbCKiA==}
+ '@types/micromatch@4.0.9':
+ resolution: {integrity: sha512-7V+8ncr22h4UoYRLnLXSpTxjQrNUXtWHGeMPRJt1nULXI57G9bIcpyrHlmrQ7QK24EyyuXvYcSSWAM8GA9nqCg==}
'@types/mime-types@2.1.4':
resolution: {integrity: sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w==}
@@ -4625,18 +5027,14 @@ packages:
'@types/node-fetch@2.6.4':
resolution: {integrity: sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==}
- '@types/node-fetch@3.0.3':
- resolution: {integrity: sha512-HhggYPH5N+AQe/OmN6fmhKmRRt2XuNJow+R3pQwJxOOF9GuwM7O2mheyGeIrs5MOIeNjDEdgdoyHBOrFeJBR3g==}
- deprecated: This is a stub types definition. node-fetch provides its own type definitions, so you do not need this installed.
-
'@types/node@18.17.15':
resolution: {integrity: sha512-2yrWpBk32tvV/JAd3HNHWuZn/VDN1P+72hWirHnvsvTGSqbANi+kSeuQR9yAHnbvaBvHDsoTdXV0Fe+iRtHLKA==}
'@types/node@20.11.5':
resolution: {integrity: sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w==}
- '@types/node@20.12.7':
- resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==}
+ '@types/node@20.14.9':
+ resolution: {integrity: sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==}
'@types/node@20.9.1':
resolution: {integrity: sha512-HhmzZh5LSJNS5O8jQKpJ/3ZcrrlG6L70hpGqMIAoM9YVD0YBRNWYsfwcXq8VnSjlNpCpgLzMXdiPo+dxcvSmiA==}
@@ -4653,8 +5051,8 @@ packages:
'@types/oauth2orize@1.11.5':
resolution: {integrity: sha512-C6hrRoh9hCnqis39OpeUZSwgw+TIzcV0CsxwJMGfQjTx4I1r+CLmuEPzoDJr5NRTfc7OMwHNLkQwrGFLKrJjMQ==}
- '@types/oauth@0.9.4':
- resolution: {integrity: sha512-qk9orhti499fq5XxKCCEbd0OzdPZuancneyse3KtR+vgMiHRbh+mn8M4G6t64ob/Fg+GZGpa565MF/2dKWY32A==}
+ '@types/oauth@0.9.5':
+ resolution: {integrity: sha512-+oQ3C2Zx6ambINOcdIARF5Z3Tu3x//HipE889/fqo3sgpQZbe9c6ExdQFtN6qlhpR7p83lTZfPJt0tCAW29dog==}
'@types/offscreencanvas@2019.3.0':
resolution: {integrity: sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q==}
@@ -4665,8 +5063,8 @@ packages:
'@types/pg-pool@2.0.4':
resolution: {integrity: sha512-qZAvkv1K3QbmHHFYSNRYPkRjOWRLBYrL4B9c+wG0GSVGBw0NtJwPcgx/DSddeDJvRGMHCEQ4VMEVfuJ/0gZ3XQ==}
- '@types/pg@8.11.5':
- resolution: {integrity: sha512-2xMjVviMxneZHDHX5p5S6tsRRs7TpDHeeK7kTTMe/kAC/mRRNjWHjZg0rkiY+e17jXSZV3zJYDxXV8Cy72/Vuw==}
+ '@types/pg@8.11.6':
+ resolution: {integrity: sha512-/2WmmBXHLsfRqzfHW7BNZ8SbYzE8OSk7i3WjFYvfgRHj7S1xj+16Je5fUKv3lVdVzk/zn9TXOqf+avFCFIE0yQ==}
'@types/pg@8.6.1':
resolution: {integrity: sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==}
@@ -4773,6 +5171,9 @@ packages:
'@types/unist@3.0.2':
resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==}
+ '@types/uuid@10.0.0':
+ resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==}
+
'@types/uuid@9.0.8':
resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==}
@@ -4822,8 +5223,8 @@ packages:
typescript:
optional: true
- '@typescript-eslint/eslint-plugin@7.7.1':
- resolution: {integrity: sha512-KwfdWXJBOviaBVhxO3p5TJiLpNuh2iyXyjmWN0f1nU87pwyvfS0EmjC6ukQVYVFJd/K1+0NWGPDXiyEyQorn0Q==}
+ '@typescript-eslint/eslint-plugin@7.15.0':
+ resolution: {integrity: sha512-uiNHpyjZtFrLwLDpHnzaDlP3Tt6sGMqTCiqmxaN4n4RP0EfYZDODJyddiFDF44Hjwxr5xAcaYxVKm9QKQFJFLA==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
'@typescript-eslint/parser': ^7.0.0
@@ -4853,8 +5254,8 @@ packages:
typescript:
optional: true
- '@typescript-eslint/parser@7.7.1':
- resolution: {integrity: sha512-vmPzBOOtz48F6JAGVS/kZYk4EkXao6iGrD838sp1w3NQQC0W8ry/q641KU4PrG7AKNAf56NOcR8GOpH8l9FPCw==}
+ '@typescript-eslint/parser@7.15.0':
+ resolution: {integrity: sha512-k9fYuQNnypLFcqORNClRykkGOMOj+pV6V91R4GO/l1FDGwpqmSwoOQrOHo3cGaH63e+D3ZiCAOsuS/D2c99j/A==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
eslint: ^8.56.0
@@ -4871,8 +5272,8 @@ packages:
resolution: {integrity: sha512-6TmN4OJiohHfoOdGZ3huuLhpiUgOGTpgXNUPJgeZOZR3DnIpdSgtt83RS35OYNNXxM4TScVlpVKC9jyQSETR1A==}
engines: {node: ^16.0.0 || >=18.0.0}
- '@typescript-eslint/scope-manager@7.7.1':
- resolution: {integrity: sha512-PytBif2SF+9SpEUKynYn5g1RHFddJUcyynGpztX3l/ik7KmZEv19WCMhUBkHXPU9es/VWGD3/zg3wg90+Dh2rA==}
+ '@typescript-eslint/scope-manager@7.15.0':
+ resolution: {integrity: sha512-Q/1yrF/XbxOTvttNVPihxh1b9fxamjEoz2Os/Pe38OHwxC24CyCqXxGTOdpb4lt6HYtqw9HetA/Rf6gDGaMPlw==}
engines: {node: ^18.18.0 || >=20.0.0}
'@typescript-eslint/type-utils@6.11.0':
@@ -4895,8 +5296,8 @@ packages:
typescript:
optional: true
- '@typescript-eslint/type-utils@7.7.1':
- resolution: {integrity: sha512-ZksJLW3WF7o75zaBPScdW1Gbkwhd/lyeXGf1kQCxJaOeITscoSl0MjynVvCzuV5boUz/3fOI06Lz8La55mu29Q==}
+ '@typescript-eslint/type-utils@7.15.0':
+ resolution: {integrity: sha512-SkgriaeV6PDvpA6253PDVep0qCqgbO1IOBiycjnXsszNTVQe5flN5wR5jiczoEoDEnAqYFSFFc9al9BSGVltkg==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
eslint: ^8.56.0
@@ -4913,8 +5314,8 @@ packages:
resolution: {integrity: sha512-qTWjWieJ1tRJkxgZYXx6WUYtWlBc48YRxgY2JN1aGeVpkhmnopq+SUC8UEVGNXIvWH7XyuTjwALfG6bFEgCkQA==}
engines: {node: ^16.0.0 || >=18.0.0}
- '@typescript-eslint/types@7.7.1':
- resolution: {integrity: sha512-AmPmnGW1ZLTpWa+/2omPrPfR7BcbUU4oha5VIbSbS1a1Tv966bklvLNXxp3mrbc+P2j4MNOTfDffNsk4o0c6/w==}
+ '@typescript-eslint/types@7.15.0':
+ resolution: {integrity: sha512-aV1+B1+ySXbQH0pLK0rx66I3IkiZNidYobyfn0WFsdGhSXw+P3YOqeTq5GED458SfB24tg+ux3S+9g118hjlTw==}
engines: {node: ^18.18.0 || >=20.0.0}
'@typescript-eslint/typescript-estree@6.11.0':
@@ -4935,8 +5336,8 @@ packages:
typescript:
optional: true
- '@typescript-eslint/typescript-estree@7.7.1':
- resolution: {integrity: sha512-CXe0JHCXru8Fa36dteXqmH2YxngKJjkQLjxzoj6LYwzZ7qZvgsLSc+eqItCrqIop8Vl2UKoAi0StVWu97FQZIQ==}
+ '@typescript-eslint/typescript-estree@7.15.0':
+ resolution: {integrity: sha512-gjyB/rHAopL/XxfmYThQbXbzRMGhZzGw6KpcMbfe8Q3nNQKStpxnUKeXb0KiN/fFDR42Z43szs6rY7eHk0zdGQ==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
typescript: '*'
@@ -4956,8 +5357,8 @@ packages:
peerDependencies:
eslint: ^8.56.0
- '@typescript-eslint/utils@7.7.1':
- resolution: {integrity: sha512-QUvBxPEaBXf41ZBbaidKICgVL8Hin0p6prQDu6bbetWo39BKbWJxRsErOzMNT1rXvTll+J7ChrbmMCXM9rsvOQ==}
+ '@typescript-eslint/utils@7.15.0':
+ resolution: {integrity: sha512-hfDMDqaqOqsUVGiEPSMLR/AjTSCsmJwjpKkYQRo1FNbmW4tBwBspYDwO9eh7sKSTwMQgBw9/T4DHudPaqshRWA==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
eslint: ^8.56.0
@@ -4970,87 +5371,75 @@ packages:
resolution: {integrity: sha512-FhUqNWluiGNzlvnDZiXad4mZRhtghdoKW6e98GoEOYSu5cND+E39rG5KwJMUzeENwm1ztYBRqof8wMLP+wNPIA==}
engines: {node: ^16.0.0 || >=18.0.0}
- '@typescript-eslint/visitor-keys@7.7.1':
- resolution: {integrity: sha512-gBL3Eq25uADw1LQ9kVpf3hRM+DWzs0uZknHYK3hq4jcTPqVCClHGDnB6UUUV2SFeBeA4KWHWbbLqmbGcZ4FYbw==}
+ '@typescript-eslint/visitor-keys@7.15.0':
+ resolution: {integrity: sha512-Hqgy/ETgpt2L5xueA/zHHIl4fJI2O4XUE9l4+OIfbJIRSnTJb/QscncdqqZzofQegIJugRIF57OJea1khw2SDw==}
engines: {node: ^18.18.0 || >=20.0.0}
'@ungap/structured-clone@1.2.0':
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
- '@vitejs/plugin-vue@5.0.4':
- resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==}
+ '@vitejs/plugin-vue@5.0.5':
+ resolution: {integrity: sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==}
engines: {node: ^18.0.0 || >=20.0.0}
peerDependencies:
vite: ^5.0.0
vue: ^3.2.25
- '@vitest/coverage-v8@0.34.6':
- resolution: {integrity: sha512-fivy/OK2d/EsJFoEoxHFEnNGTg+MmdZBAVK9Ka4qhXR2K3J0DS08vcGVwzDtXSuUMabLv4KtPcpSKkcMXFDViw==}
+ '@vitest/coverage-v8@1.6.0':
+ resolution: {integrity: sha512-KvapcbMY/8GYIG0rlwwOKCVNRc0OL20rrhFkg/CHNzncV03TE2XWvO5w9uZYoxNiMEBacAJt3unSOiZ7svePew==}
peerDependencies:
- vitest: '>=0.32.0 <1'
+ vitest: 1.6.0
- '@vitest/expect@0.34.6':
- resolution: {integrity: sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==}
+ '@vitest/expect@1.6.0':
+ resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==}
- '@vitest/expect@1.3.1':
- resolution: {integrity: sha512-xofQFwIzfdmLLlHa6ag0dPV8YsnKOCP1KdAeVVh34vSjN2dcUiXYCD9htu/9eM7t8Xln4v03U9HLxLpPlsXdZw==}
+ '@vitest/runner@1.6.0':
+ resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==}
- '@vitest/runner@0.34.6':
- resolution: {integrity: sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==}
-
- '@vitest/snapshot@0.34.6':
- resolution: {integrity: sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==}
-
- '@vitest/spy@0.34.6':
- resolution: {integrity: sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==}
-
- '@vitest/spy@1.3.1':
- resolution: {integrity: sha512-xAcW+S099ylC9VLU7eZfdT9myV67Nor9w9zhf0mGCYJSO+zM2839tOeROTdikOi/8Qeusffvxb/MyBSOja1Uig==}
+ '@vitest/snapshot@1.6.0':
+ resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==}
'@vitest/spy@1.6.0':
resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==}
- '@vitest/utils@0.34.6':
- resolution: {integrity: sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==}
-
- '@vitest/utils@1.3.1':
- resolution: {integrity: sha512-d3Waie/299qqRyHTm2DjADeTaNdNSVsnwHPWrs20JMpjh6eiVq7ggggweO8rc4arhf6rRkWuHKwvxGvejUXZZQ==}
-
'@vitest/utils@1.6.0':
resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==}
'@volar/language-core@2.2.0':
resolution: {integrity: sha512-a8WG9+4OdeNDW4ywABZIM6S6UN7em8uIlM/BZ2pWQUYrVmX+m8sj/X+QadvO+Li/t/LjAqbWJQtVgxdpEWLALQ==}
+ '@volar/language-core@2.4.0-alpha.11':
+ resolution: {integrity: sha512-DtftH0DtpksK1y+de/kLnu8CHcFQ7huKXi7cyxH9R0PbOOTSGXd31kijBeKNzyoXRp8dqGpu/7WhOlCWXQR62w==}
+
'@volar/source-map@2.2.0':
resolution: {integrity: sha512-HQlPRlHOVqCCHK8wI76ZldHkEwKsjp7E6idUc36Ekni+KJDNrqgSqPvyHQixybXPHNU7CI9Uxd9/IkxO7LuNBw==}
+ '@volar/source-map@2.4.0-alpha.11':
+ resolution: {integrity: sha512-yyjmv8KUkTcxXzwme9qUMl6Szdji9JUQa8eadE4ib/spFXXZGq6QOX8cgSu5UQ0ooyBJFO1zdVH5otBJyZE3Ew==}
+
'@volar/typescript@2.2.0':
resolution: {integrity: sha512-wC6l4zLiiCLxF+FGaHCbWlQYf4vMsnRxYhcI6WgvaNppOD6r1g+Ef1RKRJUApALWU46Yy/JDU/TbdV6w/X6Liw==}
- '@vue/compiler-core@3.4.21':
- resolution: {integrity: sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==}
-
- '@vue/compiler-core@3.4.25':
- resolution: {integrity: sha512-Y2pLLopaElgWnMNolgG8w3C5nNUVev80L7hdQ5iIKPtMJvhVpG0zhnBG/g3UajJmZdvW0fktyZTotEHD1Srhbg==}
+ '@volar/typescript@2.4.0-alpha.11':
+ resolution: {integrity: sha512-N/v+wSddhtsNtfv2w0Bxj2QQWURN5budGzpyBTrlcXxz2dnvB0eAMqrEQbBi6rCOVHlRaXbh+wyTRdAcB/FHrg==}
- '@vue/compiler-core@3.4.26':
- resolution: {integrity: sha512-N9Vil6Hvw7NaiyFUFBPXrAyETIGlQ8KcFMkyk6hW1Cl6NvoqvP+Y8p1Eqvx+UdqsnrnI9+HMUEJegzia3mhXmQ==}
+ '@vue/compiler-core@3.4.29':
+ resolution: {integrity: sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==}
- '@vue/compiler-dom@3.4.21':
- resolution: {integrity: sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==}
+ '@vue/compiler-core@3.4.31':
+ resolution: {integrity: sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==}
- '@vue/compiler-dom@3.4.25':
- resolution: {integrity: sha512-Ugz5DusW57+HjllAugLci19NsDK+VyjGvmbB2TXaTcSlQxwL++2PETHx/+Qv6qFwNLzSt7HKepPe4DcTE3pBWg==}
+ '@vue/compiler-dom@3.4.29':
+ resolution: {integrity: sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==}
- '@vue/compiler-dom@3.4.26':
- resolution: {integrity: sha512-4CWbR5vR9fMg23YqFOhr6t6WB1Fjt62d6xdFPyj8pxrYub7d+OgZaObMsoxaF9yBUHPMiPFK303v61PwAuGvZA==}
+ '@vue/compiler-dom@3.4.31':
+ resolution: {integrity: sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ==}
- '@vue/compiler-sfc@3.4.26':
- resolution: {integrity: sha512-It1dp+FAOCgluYSVYlDn5DtZBxk1NCiJJfu2mlQqa/b+k8GL6NG/3/zRbJnHdhV2VhxFghaDq5L4K+1dakW6cw==}
+ '@vue/compiler-sfc@3.4.31':
+ resolution: {integrity: sha512-einJxqEw8IIJxzmnxmJBuK2usI+lJonl53foq+9etB2HAzlPjAS/wa7r0uUpXw5ByX3/0uswVSrjNb17vJm1kQ==}
- '@vue/compiler-ssr@3.4.26':
- resolution: {integrity: sha512-FNwLfk7LlEPRY/g+nw2VqiDKcnDTVdCfBREekF8X74cPLiWHUX6oldktf/Vx28yh4STNy7t+/yuLoMBBF7YDiQ==}
+ '@vue/compiler-ssr@3.4.31':
+ resolution: {integrity: sha512-RtefmITAje3fJ8FSg1gwgDhdKhZVntIVbwupdyZDSifZTRMiWxWehAOTCc8/KZDnBOcYQ4/9VWxsTbd3wT0hAA==}
'@vue/devtools-api@6.6.1':
resolution: {integrity: sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==}
@@ -5063,28 +5452,33 @@ packages:
typescript:
optional: true
- '@vue/reactivity@3.4.26':
- resolution: {integrity: sha512-E/ynEAu/pw0yotJeLdvZEsp5Olmxt+9/WqzvKff0gE67tw73gmbx6tRkiagE/eH0UCubzSlGRebCbidB1CpqZQ==}
+ '@vue/language-core@2.0.24':
+ resolution: {integrity: sha512-997YD6Lq/66LXr3ZOLNxDCmyn13z9NP8LU1UZn9hGCDWhzlbXAIP0hOgL3w3x4RKEaWTaaRtsHP9DzHvmduruQ==}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@vue/reactivity@3.4.31':
+ resolution: {integrity: sha512-VGkTani8SOoVkZNds1PfJ/T1SlAIOf8E58PGAhIOUDYPC4GAmFA2u/E14TDAFcf3vVDKunc4QqCe/SHr8xC65Q==}
- '@vue/runtime-core@3.4.26':
- resolution: {integrity: sha512-AFJDLpZvhT4ujUgZSIL9pdNcO23qVFh7zWCsNdGQBw8ecLNxOOnPcK9wTTIYCmBJnuPHpukOwo62a2PPivihqw==}
+ '@vue/runtime-core@3.4.31':
+ resolution: {integrity: sha512-LDkztxeUPazxG/p8c5JDDKPfkCDBkkiNLVNf7XZIUnJ+66GVGkP+TIh34+8LtPisZ+HMWl2zqhIw0xN5MwU1cw==}
- '@vue/runtime-dom@3.4.26':
- resolution: {integrity: sha512-UftYA2hUXR2UOZD/Fc3IndZuCOOJgFxJsWOxDkhfVcwLbsfh2CdXE2tG4jWxBZuDAs9J9PzRTUFt1PgydEtItw==}
+ '@vue/runtime-dom@3.4.31':
+ resolution: {integrity: sha512-2Auws3mB7+lHhTFCg8E9ZWopA6Q6L455EcU7bzcQ4x6Dn4cCPuqj6S2oBZgN2a8vJRS/LSYYxwFFq2Hlx3Fsaw==}
- '@vue/server-renderer@3.4.26':
- resolution: {integrity: sha512-xoGAqSjYDPGAeRWxeoYwqJFD/gw7mpgzOvSxEmjWaFO2rE6qpbD1PC172YRpvKhrihkyHJkNDADFXTfCyVGhKw==}
+ '@vue/server-renderer@3.4.31':
+ resolution: {integrity: sha512-D5BLbdvrlR9PE3by9GaUp1gQXlCNadIZytMIb8H2h3FMWJd4oUfkUTEH2wAr3qxoRz25uxbTcbqd3WKlm9EHQA==}
peerDependencies:
- vue: 3.4.26
+ vue: 3.4.31
- '@vue/shared@3.4.21':
- resolution: {integrity: sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==}
+ '@vue/shared@3.4.29':
+ resolution: {integrity: sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==}
- '@vue/shared@3.4.25':
- resolution: {integrity: sha512-k0yappJ77g2+KNrIaF0FFnzwLvUBLUYr8VOwz+/6vLsmItFp51AcxLL7Ey3iPd7BIRyWPOcqUjMnm7OkahXllA==}
-
- '@vue/shared@3.4.26':
- resolution: {integrity: sha512-Fg4zwR0GNnjzodMt3KRy2AWGMKQXByl56+4HjN87soxLNU9P5xcJkstAlIeEF3cU6UYOzmJl1tV0dVPGIljCnQ==}
+ '@vue/shared@3.4.31':
+ resolution: {integrity: sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==}
'@vue/test-utils@2.4.1':
resolution: {integrity: sha512-VO8nragneNzUZUah6kOjiFmD/gwRjUauG9DROh6oaOeFwX1cZRUNHhdeogE8635cISigXFTtGLUQWx5KCb0xeg==}
@@ -5158,8 +5552,8 @@ packages:
engines: {node: '>=0.4.0'}
hasBin: true
- acorn@8.11.3:
- resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
+ acorn@8.12.0:
+ resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==}
engines: {node: '>=0.4.0'}
hasBin: true
@@ -5191,9 +5585,9 @@ packages:
resolution: {integrity: sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==}
engines: {node: '>=18'}
- aiscript-vscode@https://codeload.github.com/aiscript-dev/aiscript-vscode/tar.gz/34bf4e1530efcf1efa855bd04e2dab39735e1b02:
- resolution: {tarball: https://codeload.github.com/aiscript-dev/aiscript-vscode/tar.gz/34bf4e1530efcf1efa855bd04e2dab39735e1b02}
- version: 0.1.9
+ aiscript-vscode@https://codeload.github.com/aiscript-dev/aiscript-vscode/tar.gz/e1e1b27f2f72cd28a473e004b6da0d8fc0bd40d9:
+ resolution: {tarball: https://codeload.github.com/aiscript-dev/aiscript-vscode/tar.gz/e1e1b27f2f72cd28a473e004b6da0d8fc0bd40d9}
+ version: 0.1.11
engines: {vscode: ^1.83.0}
ajv-draft-04@1.0.0:
@@ -5212,12 +5606,26 @@ packages:
ajv:
optional: true
+ ajv-formats@3.0.1:
+ resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==}
+ peerDependencies:
+ ajv: ^8.0.0
+ peerDependenciesMeta:
+ ajv:
+ optional: true
+
ajv@6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+ ajv@8.12.0:
+ resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
+
ajv@8.13.0:
resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==}
+ ajv@8.16.0:
+ resolution: {integrity: sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==}
+
ansi-colors@4.1.3:
resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
engines: {node: '>=6'}
@@ -5297,9 +5705,16 @@ packages:
argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+ aria-hidden@1.2.4:
+ resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==}
+ engines: {node: '>=10'}
+
aria-query@5.1.3:
resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==}
+ aria-query@5.3.0:
+ resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
+
array-buffer-byte-length@1.0.0:
resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==}
@@ -5375,6 +5790,9 @@ packages:
async-mutex@0.5.0:
resolution: {integrity: sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==}
+ async@0.2.10:
+ resolution: {integrity: sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ==}
+
async@3.2.4:
resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==}
@@ -5396,8 +5814,8 @@ packages:
avvio@8.3.0:
resolution: {integrity: sha512-VBVH0jubFr9LdFASy/vNtm5giTrnbVquWBhT0fyizuNK2rQ7e7ONU2plZQWUNqtE1EmxFEb+kbSkFRkstiaS9Q==}
- aws-sdk-client-mock@3.0.1:
- resolution: {integrity: sha512-9VAzJLl8mz99KP9HjOm/93d8vznRRUTpJooPBOunRdUAnVYopCe9xmMuu7eVemu8fQ+w6rP7o5bBK1kAFkB2KQ==}
+ aws-sdk-client-mock@4.0.1:
+ resolution: {integrity: sha512-yD2mmgy73Xce097G5hIpr1k7j50qzvJ49/+6osGZiCyk4m6cwhb+2x7kKFY1gEMwTzaS8+m8fXv9SB29SkRYyQ==}
aws-sign2@0.7.0:
resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==}
@@ -5433,18 +5851,18 @@ packages:
resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- babel-plugin-polyfill-corejs2@0.4.6:
- resolution: {integrity: sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==}
+ babel-plugin-polyfill-corejs2@0.4.11:
+ resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==}
peerDependencies:
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
- babel-plugin-polyfill-corejs3@0.8.6:
- resolution: {integrity: sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==}
+ babel-plugin-polyfill-corejs3@0.10.4:
+ resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==}
peerDependencies:
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
- babel-plugin-polyfill-regenerator@0.5.3:
- resolution: {integrity: sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==}
+ babel-plugin-polyfill-regenerator@0.6.2:
+ resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==}
peerDependencies:
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
@@ -5517,10 +5935,6 @@ packages:
bn.js@4.12.0:
resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==}
- body-parser@1.20.1:
- resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==}
- engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
-
body-parser@1.20.2:
resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==}
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
@@ -5545,6 +5959,10 @@ packages:
resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
engines: {node: '>=8'}
+ braces@3.0.3:
+ resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
+ engines: {node: '>=8'}
+
broadcast-channel@7.0.0:
resolution: {integrity: sha512-a2tW0Ia1pajcPBOGUF2jXlDnvE9d5/dg6BG9h60OmRUcZVr/veUrU8vEQFwwQIhwG3KVzYwSk3v2nRRGFgQDXQ==}
@@ -5593,8 +6011,8 @@ packages:
resolution: {integrity: sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==}
engines: {node: '>=6.14.2'}
- bullmq@5.7.8:
- resolution: {integrity: sha512-F/Haeu6AVHkFrfeaU/kLOjhfrH6x3CaKAZlQQ+76fa8l3kfI9oaUHeFMW+1mYVz0NtYPF7PNTWFq4ylAHYcCgA==}
+ bullmq@5.8.3:
+ resolution: {integrity: sha512-RJgQu/vgSZqjOYrZ7F1UJsSAzveNx7FFpR3Tp/1TxOMXXN9TtZMSly5MT+vjzOhQX//3+YWNRbMWpC1mkqBc9w==}
buraha@0.0.1:
resolution: {integrity: sha512-G563A0mTbzknm2jDaNxfZuNKIdeArs8T+XQN6t+KbmgnOoevXSXhKDkyf8Md/36Jrx99ikwbCag37VGe3myExQ==}
@@ -5631,6 +6049,10 @@ packages:
resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==}
engines: {node: '>=14.16'}
+ cacheable-request@12.0.1:
+ resolution: {integrity: sha512-Yo9wGIQUaAfIbk+qY0X4cDQgCosecfBe3V9NSyeY4qPC2SAkbCS4Xj79VP8WOzitpJUZKc/wsRCYF5ariDIwkg==}
+ engines: {node: '>=18'}
+
cacheable-request@7.0.2:
resolution: {integrity: sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==}
engines: {node: '>=8'}
@@ -5720,8 +6142,8 @@ packages:
character-parser@2.2.0:
resolution: {integrity: sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==}
- chart.js@4.4.2:
- resolution: {integrity: sha512-6GD7iKwFpP5kbSD4MeRRRlTnQvxfQREy36uEtm1hzHzcOqwWx0YEHuspuoNlslu+nciLIB7fjjsHkUv/FzFcOg==}
+ chart.js@4.4.3:
+ resolution: {integrity: sha512-qK1gkGSRYcJzqrrzdR6a+I0vQ4/R+SoODXyAjscQ/4mzuNzySaMCd+hyVxitSY1+L2fjPD1Gbn+ibNqRmwQeLw==}
engines: {pnpm: '>=8'}
chartjs-adapter-date-fns@3.0.0:
@@ -5770,8 +6192,8 @@ packages:
resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
engines: {node: '>=10'}
- chromatic@11.3.0:
- resolution: {integrity: sha512-q1ZtJDJrjLGnz60ivpC16gmd7KFzcaA4eTb7gcytCqbaKqlHhCFr1xQmcUDsm14CK7JsqdkFU6S+JQdOd2ZNJg==}
+ chromatic@11.5.4:
+ resolution: {integrity: sha512-+J+CopeUSyGUIQJsU6X7CfvSmeVBs0j6LZ9AgF4+XTjI4pFmUiUXsTc00rH9x9W1jCppOaqDXv2kqJJXGDK3mA==}
hasBin: true
peerDependencies:
'@chromatic-com/cypress': ^0.*.* || ^1.0.0
@@ -5806,10 +6228,6 @@ packages:
engines: {node: '>=8.0.0', npm: '>=5.0.0'}
hasBin: true
- cli-spinners@2.7.0:
- resolution: {integrity: sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==}
- engines: {node: '>=6'}
-
cli-spinners@2.9.2:
resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==}
engines: {node: '>=6'}
@@ -5989,8 +6407,8 @@ packages:
resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
engines: {node: '>= 0.6'}
- core-js-compat@3.33.3:
- resolution: {integrity: sha512-cNzGqFsh3Ot+529GIXacjTJ7kegdt5fPXxCBVS1G0iaZpuo/tBz399ymceLJveQhFFZ8qThHiP3fzuoQjKN2ow==}
+ core-js-compat@3.37.1:
+ resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==}
core-js@3.29.1:
resolution: {integrity: sha512-+jwgnhg6cQxKYIIjGtAHq2nwUOolo9eoFZ4sHfUH09BLXBgxnH4gA0zEd+t+BO2cNB8idaBtZFcFTRjQJRJmAw==}
@@ -6044,9 +6462,9 @@ packages:
resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
engines: {node: '>= 8'}
- crypto-random-string@2.0.0:
- resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==}
- engines: {node: '>=8'}
+ crypto-random-string@4.0.0:
+ resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==}
+ engines: {node: '>=12'}
css-declaration-sorter@7.2.0:
resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==}
@@ -6109,13 +6527,8 @@ packages:
cwise-compiler@1.1.3:
resolution: {integrity: sha512-WXlK/m+Di8DMMcCjcWr4i+XzcQra9eCdXIJrgh4TUgh0pIS/yJduLxS9JgefsHJ/YVLdgPtXm9r62W92MvanEQ==}
- cypress@13.7.3:
- resolution: {integrity: sha512-uoecY6FTCAuIEqLUYkTrxamDBjMHTYak/1O7jtgwboHiTnS1NaMOoR08KcTrbRZFCBvYOiS4tEkQRmsV+xcrag==}
- engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0}
- hasBin: true
-
- cypress@13.8.1:
- resolution: {integrity: sha512-Uk6ovhRbTg6FmXjeZW/TkbRM07KPtvM5gah1BIMp4Y2s+i/NMxgaLw0+PbYTOdw1+egE0FP3mWRiGcRkjjmhzA==}
+ cypress@13.13.0:
+ resolution: {integrity: sha512-ou/MQUDq4tcDJI2FsPaod2FZpex4kpIK43JJlcBgWrX8WX7R/05ZxGTuxedOuZBfxjZxja+fbijZGyxiLP6CFA==}
engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0}
hasBin: true
@@ -6169,6 +6582,15 @@ packages:
supports-color:
optional: true
+ debug@4.3.5:
+ resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
decamelize-keys@1.1.1:
resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
engines: {node: '>=0.10.0'}
@@ -6242,10 +6664,6 @@ packages:
defu@6.1.4:
resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==}
- del@6.1.1:
- resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==}
- engines: {node: '>=10'}
-
delayed-stream@1.0.0:
resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
engines: {node: '>=0.4.0'}
@@ -6285,6 +6703,9 @@ packages:
resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
engines: {node: '>=8'}
+ detect-node-es@1.1.0:
+ resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
+
detect-package-manager@2.0.1:
resolution: {integrity: sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A==}
engines: {node: '>=12'}
@@ -6307,6 +6728,10 @@ packages:
resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==}
engines: {node: '>=0.3.1'}
+ diff@5.2.0:
+ resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==}
+ engines: {node: '>=0.3.1'}
+
dijkstrajs@1.0.2:
resolution: {integrity: sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg==}
@@ -6378,8 +6803,8 @@ packages:
ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
- ejs@3.1.9:
- resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==}
+ ejs@3.1.10:
+ resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==}
engines: {node: '>=0.10.0'}
hasBin: true
@@ -6445,8 +6870,8 @@ packages:
es-get-iterator@1.1.3:
resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
- es-module-lexer@0.9.3:
- resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==}
+ es-module-lexer@1.5.4:
+ resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==}
es-set-tostringtag@2.0.1:
resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==}
@@ -6483,11 +6908,16 @@ packages:
engines: {node: '>=12'}
hasBin: true
- esbuild@0.20.2:
- resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==}
+ esbuild@0.21.5:
+ resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==}
engines: {node: '>=12'}
hasBin: true
+ esbuild@0.22.0:
+ resolution: {integrity: sha512-zNYA6bFZsVnsU481FnGAQjLDW0Pl/8BGG7EvAp15RzUvGC+ME7hf1q7LvIfStEQBz/iEHuBJCYcOwPmNCf1Tlw==}
+ engines: {node: '>=18'}
+ hasBin: true
+
escalade@3.1.1:
resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
engines: {node: '>=6'}
@@ -6557,8 +6987,8 @@ packages:
'@typescript-eslint/parser':
optional: true
- eslint-plugin-vue@9.25.0:
- resolution: {integrity: sha512-tDWlx14bVe6Bs+Nnh3IGrD+hb11kf2nukfm6jLsmJIhmiRQ1SUaksvwY9U5MvPB0pcrg0QK0xapQkfITs3RKOA==}
+ eslint-plugin-vue@9.26.0:
+ resolution: {integrity: sha512-eTvlxXgd4ijE1cdur850G6KalZqk65k1JKoOI2d1kT3hr8sPD07j1q98FRFdNnpxBELGPWxZmInxeHGF/GxtqQ==}
engines: {node: ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0
@@ -6570,20 +7000,27 @@ packages:
resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ eslint-scope@8.0.1:
+ resolution: {integrity: sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
eslint-visitor-keys@3.4.3:
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- eslint@8.53.0:
- resolution: {integrity: sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- hasBin: true
+ eslint-visitor-keys@4.0.0:
+ resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- eslint@8.57.0:
- resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ eslint@9.6.0:
+ resolution: {integrity: sha512-ElQkdLMEEqQNM9Njff+2Y4q2afHk7JpkPvrd7Xh7xefwgQynqPxwf55J7di9+MEibWUGdNjFF9ITG9Pck5M84w==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
hasBin: true
+ espree@10.1.0:
+ resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
espree@9.6.1:
resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -6597,6 +7034,10 @@ packages:
resolution: {integrity: sha512-JVSoLdTlTDkmjFmab7H/9SL9qGSyjElT3myyKp7krqjVFQCDLmj1QFaCLRFBszBKI0XVZaiiXvuPIX3ZwHe1Ng==}
engines: {node: '>=0.10'}
+ esquery@1.5.0:
+ resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
+ engines: {node: '>=0.10'}
+
esrecurse@4.3.0:
resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
engines: {node: '>=4.0'}
@@ -6659,6 +7100,10 @@ packages:
resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
engines: {node: '>=16.17'}
+ execa@9.2.0:
+ resolution: {integrity: sha512-vpOyYg7UAVKLAWWtRS2gAdgkT7oJbCn0me3gmUmxZih4kd3MF/oo8kNTBTIbkO3yuuF5uB4ZCZfn8BOolITYhg==}
+ engines: {node: ^18.19.0 || >=20.5.0}
+
executable@4.1.1:
resolution: {integrity: sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==}
engines: {node: '>=4'}
@@ -6674,10 +7119,6 @@ packages:
exponential-backoff@3.1.1:
resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==}
- express@4.18.2:
- resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==}
- engines: {node: '>= 0.10.0'}
-
express@4.19.2:
resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==}
engines: {node: '>= 0.10.0'}
@@ -6751,11 +7192,8 @@ packages:
resolution: {integrity: sha512-F4o8ZIMVx4YoxGfwrZys6wyjl40gF3Yv6AWWRy62ozFAyZBSS831/uyyCAqKYw3tR73g180ryG98yih6To1PUQ==}
engines: {node: '>= 10'}
- fastify@4.26.2:
- resolution: {integrity: sha512-90pjTuPGrfVKtdpLeLzND5nyC4woXZN5VadiNQCicj/iJU4viNHKhsAnb7jmv1vu2IzkLXyBiCzdWuzeXgQ5Ug==}
-
- fastq@1.15.0:
- resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
+ fastify@4.28.1:
+ resolution: {integrity: sha512-kFWUtpNr4i7t5vY2EJPCN2KgMVpuqfU4NjnJNCgiNB900oiDeYqaNDRcAfeBbOF5hGixixxcKnOU4KN9z6QncQ==}
fastq@1.17.1:
resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
@@ -6781,9 +7219,13 @@ packages:
resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
engines: {node: '>=8'}
- file-entry-cache@6.0.1:
- resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
- engines: {node: ^10.12.0 || >=12.0.0}
+ figures@6.1.0:
+ resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==}
+ engines: {node: '>=18'}
+
+ file-entry-cache@8.0.0:
+ resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
+ engines: {node: '>=16.0.0'}
file-system-cache@2.3.0:
resolution: {integrity: sha512-l4DMNdsIPsVnKrgEXbJwDJsA5mB8rGwHYERMgqQx/xAUtChPJMre1bXBzDEqqVbWv9AIbFezXMxeEkZDSrXUOQ==}
@@ -6811,6 +7253,10 @@ packages:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
engines: {node: '>=8'}
+ fill-range@7.1.1:
+ resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
+ engines: {node: '>=8'}
+
finalhandler@1.2.0:
resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==}
engines: {node: '>= 0.8'}
@@ -6850,20 +7296,20 @@ packages:
resolution: {integrity: sha512-MdYSsbdCaIRjzo5edthZtWmEZVMfr1qrtYZUHIdO3swCE+CoZA8S5l0s4jDsYlTa9ZiXv0pTgpzE7s4N8NeUOA==}
engines: {node: '>=18'}
- flat-cache@3.0.4:
- resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
- engines: {node: ^10.12.0 || >=12.0.0}
+ flat-cache@4.0.1:
+ resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
+ engines: {node: '>=16'}
- flatted@3.2.7:
- resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
+ flatted@3.3.1:
+ resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
flow-parser@0.202.0:
resolution: {integrity: sha512-ZiXxSIXK3zPmY3zrzCofFonM2T+/3Jz5QZKJyPVtUERQEJUnYkXBQ+0H3FzyqiyJs+VXqb/UNU6/K6sziVYdxw==}
engines: {node: '>=0.4.0'}
- fluent-ffmpeg@2.1.2:
- resolution: {integrity: sha512-IZTB4kq5GK0DPp7sGQ0q/BWurGHffRtQQwVkiqDgeO6wYJLLV5ZhgNOQ65loZxxuPMKZKZcICCUnaGtlxBiR0Q==}
- engines: {node: '>=0.8.0'}
+ fluent-ffmpeg@2.1.3:
+ resolution: {integrity: sha512-Be3narBNt2s6bsaqP6Jzq91heDgOEaDCJAXcE3qcma/EJBSy5FB4cvO31XBInuAuKBx8Kptf8dkhjK0IOru39Q==}
+ engines: {node: '>=18'}
follow-redirects@1.15.2:
resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==}
@@ -6985,6 +7431,10 @@ packages:
get-intrinsic@1.2.1:
resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==}
+ get-nonce@1.0.1:
+ resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==}
+ engines: {node: '>=6'}
+
get-npm-tarball-url@2.0.3:
resolution: {integrity: sha512-R/PW6RqyaBQNWYaSyfrh54/qtcnOp22FHCCiRhSSZj0FP3KQWCsxxt0DzIdVTbwTqe9CtQfvl/FPD4UIPt4pqw==}
engines: {node: '>=12.17'}
@@ -7012,6 +7462,10 @@ packages:
resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
engines: {node: '>=16'}
+ get-stream@9.0.1:
+ resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==}
+ engines: {node: '>=18'}
+
get-symbol-description@1.0.0:
resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==}
engines: {node: '>= 0.4'}
@@ -7063,12 +7517,19 @@ packages:
engines: {node: '>=16 || 14 >=14.17'}
hasBin: true
+ glob@10.4.2:
+ resolution: {integrity: sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==}
+ engines: {node: '>=16 || 14 >=14.18'}
+ hasBin: true
+
glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
+ deprecated: Glob versions prior to v9 are no longer supported
glob@8.1.0:
resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
engines: {node: '>=12'}
+ deprecated: Glob versions prior to v9 are no longer supported
global-dirs@3.0.1:
resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==}
@@ -7078,14 +7539,18 @@ packages:
resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
engines: {node: '>=4'}
- globals@13.19.0:
- resolution: {integrity: sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==}
- engines: {node: '>=8'}
-
globals@13.24.0:
resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
engines: {node: '>=8'}
+ globals@14.0.0:
+ resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
+ engines: {node: '>=18'}
+
+ globals@15.7.0:
+ resolution: {integrity: sha512-ivatRXWwKC6ImcdKO7dOwXuXR5XFrdwo45qFwD7D0qOkEPzzJdLXC3BHceBdyrPOD3p1suPaWi4Y4NMm2D++AQ==}
+ engines: {node: '>=18'}
+
globalthis@1.0.3:
resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
engines: {node: '>= 0.4'}
@@ -7094,6 +7559,10 @@ packages:
resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
engines: {node: '>=10'}
+ globby@14.0.1:
+ resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==}
+ engines: {node: '>=18'}
+
google-protobuf@3.21.2:
resolution: {integrity: sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==}
@@ -7108,8 +7577,8 @@ packages:
resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==}
engines: {node: '>=14.16'}
- got@14.2.1:
- resolution: {integrity: sha512-KOaPMremmsvx6l9BLC04LYE6ZFW4x7e4HkTe3LwBmtuYYQwpeS4XKqzhubTIkaQ1Nr+eXxeori0zuwupXMovBQ==}
+ got@14.4.1:
+ resolution: {integrity: sha512-IvDJbJBUeexX74xNQuMIVgCRRuNOm5wuK+OC3Dc2pnSoh1AOmgc7JVj7WC+cJ4u0aPcO9KZ2frTXcqK4W/5qTQ==}
engines: {node: '>=20'}
graceful-fs@4.2.11:
@@ -7267,6 +7736,10 @@ packages:
resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==}
engines: {node: '>= 14'}
+ http-proxy-agent@7.0.2:
+ resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
+ engines: {node: '>= 14'}
+
http-signature@1.2.0:
resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==}
engines: {node: '>=0.8', npm: '>=1.3.7'}
@@ -7299,6 +7772,10 @@ packages:
resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==}
engines: {node: '>= 14'}
+ https-proxy-agent@7.0.4:
+ resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==}
+ engines: {node: '>= 14'}
+
human-signals@1.1.1:
resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==}
engines: {node: '>=8.12.0'}
@@ -7315,6 +7792,10 @@ packages:
resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==}
engines: {node: '>=16.17.0'}
+ human-signals@7.0.0:
+ resolution: {integrity: sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q==}
+ engines: {node: '>=18.18.0'}
+
iconv-lite@0.4.24:
resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
engines: {node: '>=0.10.0'}
@@ -7354,8 +7835,8 @@ packages:
import-in-the-middle@1.4.2:
resolution: {integrity: sha512-9WOz1Yh/cvO/p69sxRmhyQwrIGGSp7EIdcb+fFNVi7CzQGQB8U1/1XrKVSbEd/GNOAeM0peJtmi7+qphe7NvAw==}
- import-in-the-middle@1.7.4:
- resolution: {integrity: sha512-Lk+qzWmiQuRPPulGQeK5qq0v32k2bHnWrRPFgqyvhw7Kkov5L6MOLOIU3pcWeujc9W4q54Cp3Q2WV16eQkc7Bg==}
+ import-in-the-middle@1.8.1:
+ resolution: {integrity: sha512-yhRwoHtiLGvmSozNOALgjRPFI6uYsds60EoMqqnXyyv+JOIW/BrrLejuTGBt+bq0T5tLzOHrN0T7xYTm4Qt/ng==}
import-lazy@4.0.0:
resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==}
@@ -7405,6 +7886,9 @@ packages:
intersection-observer@0.12.2:
resolution: {integrity: sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==}
+ invariant@2.2.4:
+ resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
+
ioredis@5.4.1:
resolution: {integrity: sha512-2YZsvl7jopIa1gaePkeMtd9rAcSjOOjPtpcLlOeusyO+XH2SK5ZcT+UCrElPP+WVIInh2TzeI4XW9ENaSLVVHA==}
engines: {node: '>=12.22.0'}
@@ -7412,13 +7896,13 @@ packages:
iota-array@1.0.0:
resolution: {integrity: sha512-pZ2xT+LOHckCatGQ3DcG/a+QuEqvoxqkiL7tvE8nn3uuu+f6i1TtpB5/FtWFbxUuVr5PZCx8KskuGatbJDXOWA==}
- ip-address@7.1.0:
- resolution: {integrity: sha512-V9pWC/VJf2lsXqP7IWJ+pe3P1/HCYGBMZrrnT62niLGjAfCbeiwXMUxaeHvnVlz19O27pvXP4azs+Pj/A0x+SQ==}
- engines: {node: '>= 10'}
+ ip-address@9.0.5:
+ resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==}
+ engines: {node: '>= 12'}
- ip-cidr@3.1.0:
- resolution: {integrity: sha512-HUCn4snshEX1P8cja/IyU3qk8FVDW8T5zZcegDFbu4w7NojmAhk5NcOgj3M8+0fmumo1afJTPDtJlzsxLdOjtg==}
- engines: {node: '>=10.0.0'}
+ ip-cidr@4.0.1:
+ resolution: {integrity: sha512-V5Nce94SVJ7NtyT/UKUeTM7sY3V7TEk48hURhtBgTiGduOa5t6p9Hd+zBOGvr4Gu7iWPxFVYNl017p0akQA84w==}
+ engines: {node: '>=16.14.0'}
ip-regex@4.3.0:
resolution: {integrity: sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==}
@@ -7560,10 +8044,6 @@ packages:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
- is-path-cwd@2.2.0:
- resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==}
- engines: {node: '>=6'}
-
is-path-inside@3.0.3:
resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
engines: {node: '>=8'}
@@ -7612,12 +8092,16 @@ packages:
resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ is-stream@4.0.1:
+ resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==}
+ engines: {node: '>=18'}
+
is-string@1.0.7:
resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
engines: {node: '>= 0.4'}
- is-svg@5.0.0:
- resolution: {integrity: sha512-sRl7J0oX9yUNamSdc8cwgzh9KBLnQXNzGmW0RVHwg/jEYjGNYHC6UvnYD8+hAeut9WwxRvhG9biK7g/wDGxcMw==}
+ is-svg@5.0.1:
+ resolution: {integrity: sha512-mLYxDsfisQWdS4+gSblAwhATDoNMS/tx8G7BKA+aBIf7F0m1iUwMvuKAo6mW4WMleQAEE50I1Zqef9yMMfHk3w==}
engines: {node: '>=14.16'}
is-symbol@1.0.4:
@@ -7635,6 +8119,10 @@ packages:
resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
engines: {node: '>=10'}
+ is-unicode-supported@2.0.0:
+ resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==}
+ engines: {node: '>=18'}
+
is-weakmap@2.0.1:
resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==}
@@ -7691,6 +8179,10 @@ packages:
resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
engines: {node: '>=10'}
+ istanbul-lib-source-maps@5.0.4:
+ resolution: {integrity: sha512-wHOoEsNJTVltaJp8eVkm8w+GVkVNHT2YDYo53YdzQEL2gWm1hBX5cGFR9hQJtuGLebidVX7et3+dmDZrmclduw==}
+ engines: {node: '>=10'}
+
istanbul-reports@3.1.6:
resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==}
engines: {node: '>=8'}
@@ -7703,6 +8195,10 @@ packages:
resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
engines: {node: '>=14'}
+ jackspeak@3.4.0:
+ resolution: {integrity: sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==}
+ engines: {node: '>=14'}
+
jake@10.8.5:
resolution: {integrity: sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==}
engines: {node: '>=10'}
@@ -7863,6 +8359,9 @@ packages:
js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+ js-tokens@9.0.0:
+ resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==}
+
js-yaml@3.14.1:
resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
hasBin: true
@@ -7890,8 +8389,8 @@ packages:
'@babel/preset-env':
optional: true
- jsdom@24.0.0:
- resolution: {integrity: sha512-UDS2NayCvmXSXVP6mpTj+73JnNQadZlr9N68189xib2tx5Mls7swlTNao26IoHv46BZJFvXygyRtyXd1feAk1A==}
+ jsdom@24.1.0:
+ resolution: {integrity: sha512-6gpM7pRXCwIOKxX47cgOyvyQDN/Eh0f1MeKySBV2xGdKtqJBLj8P25eY3EVCWo2mglDDzozR2r2MW4T+JiNUZA==}
engines: {node: '>=18'}
peerDependencies:
canvas: ^2.11.2
@@ -7973,9 +8472,6 @@ packages:
jsrsasign@11.1.0:
resolution: {integrity: sha512-Ov74K9GihaK9/9WncTe1mPmvrO7Py665TUfUKvraXBpu+xcTWitrtuOwcjf4KMU9maPaYn0OuaWy0HOzy/GBXg==}
- jssha@3.3.1:
- resolution: {integrity: sha512-VCMZj12FCFMQYcFLPRm/0lOBbLi8uM2BhXPTqw3U4YAfs4AZfiApOoBLoN8cQE60Z50m1MYMTQVCfgF/KaCVhQ==}
-
jstransformer@1.0.0:
resolution: {integrity: sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==}
@@ -8052,8 +8548,8 @@ packages:
enquirer:
optional: true
- local-pkg@0.4.3:
- resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==}
+ local-pkg@0.5.0:
+ resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==}
engines: {node: '>=14'}
locate-path@3.0.0:
@@ -8080,9 +8576,6 @@ packages:
lodash.isarguments@3.1.0:
resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==}
- lodash.isequal@4.5.0:
- resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==}
-
lodash.memoize@4.1.2:
resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
@@ -8164,9 +8657,8 @@ packages:
magic-string@0.30.10:
resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==}
- magic-string@0.30.7:
- resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==}
- engines: {node: '>=12'}
+ magicast@0.3.4:
+ resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==}
mailcheck@1.1.1:
resolution: {integrity: sha512-3WjL8+ZDouZwKlyJBMp/4LeziLFXgleOdsYu87piGcMLqhBzCsy2QFdbtAwv757TFC/rtqd738fgJw1tFQCSgA==}
@@ -8259,8 +8751,8 @@ packages:
resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
engines: {node: '>= 0.6'}
- meilisearch@0.38.0:
- resolution: {integrity: sha512-bHaq8nYxSKw9/Qslq1Zes5g9tHgFkxy/I9o8942wv2PqlNOT0CzptIkh/x98N52GikoSZOXSQkgt6oMjtf5uZw==}
+ meilisearch@0.41.0:
+ resolution: {integrity: sha512-5KcGLxEXD7E+uNO7R68rCbGSHgCqeM3Q3RFFLSsN7ZrIgr8HPDXVAIlP4LHggAZfk0FkSzo8VSXifHCwa2k80g==}
memoizerific@1.11.3:
resolution: {integrity: sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==}
@@ -8374,8 +8866,8 @@ packages:
micromark@4.0.0:
resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==}
- micromatch@4.0.5:
- resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
+ micromatch@4.0.7:
+ resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==}
engines: {node: '>=8.6'}
mime-db@1.52.0:
@@ -8487,6 +8979,10 @@ packages:
resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
engines: {node: '>=16 || 14 >=14.17'}
+ minipass@7.1.2:
+ resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
minizlib@1.3.3:
resolution: {integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==}
@@ -8548,13 +9044,13 @@ packages:
msgpackr@1.10.1:
resolution: {integrity: sha512-r5VRLv9qouXuLiIBrLpl2d5ZvPt8svdQTl5/vMvE4nzDMyEX4sgW5yWhuBBj5UmgwOTWj8CIdSXn5sAfsHAWIQ==}
- msw-storybook-addon@2.0.1:
- resolution: {integrity: sha512-pZ3JDQ9HkGQ3XDMIHvMcDSI4Vbp/LHmwHwiZu+pHLzimtI1vhAo1swjFEDAEJuBcozljYvREEC4sS7rQHPNtWg==}
+ msw-storybook-addon@2.0.2:
+ resolution: {integrity: sha512-sdw++X+AoUbaG2ku493ViVqCA/LfqnybXsKXyPUrF3ZS/x8BqGBnkBLmT/0SHCC5zIO3Vfm5zlclAxnhqOOikQ==}
peerDependencies:
msw: ^2.0.0
- msw@2.2.14:
- resolution: {integrity: sha512-64i8rNCa1xzDK8ZYsTrVMli05D687jty8+Th+PU5VTbJ2/4P7fkQFVyDQ6ZFT5FrNR8z2BHhbY47fKNvfHrumA==}
+ msw@2.3.1:
+ resolution: {integrity: sha512-ocgvBCLn/5l3jpl1lssIb3cniuACJLoOfZu01e3n5dbJrpA5PeeWn28jCLgQDNt6d7QT8tF2fYRzm9JoEHtiig==}
engines: {node: '>=18'}
hasBin: true
peerDependencies:
@@ -8584,8 +9080,8 @@ packages:
mz@2.7.0:
resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
- nan@2.18.0:
- resolution: {integrity: sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==}
+ nan@2.20.0:
+ resolution: {integrity: sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==}
nanoid@3.3.7:
resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
@@ -8697,8 +9193,8 @@ packages:
resolution: {integrity: sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==}
hasBin: true
- node-gyp@10.0.1:
- resolution: {integrity: sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==}
+ node-gyp@10.1.0:
+ resolution: {integrity: sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==}
engines: {node: ^16.14.0 || >=18.0.0}
hasBin: true
@@ -8708,8 +9204,8 @@ packages:
node-releases@2.0.14:
resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
- nodemailer@6.9.13:
- resolution: {integrity: sha512-7o38Yogx6krdoBf3jCAqnIN4oSQFx+fMa0I7dK1D+me9kBxx12D+/33wSb+fhOCtIxvYJ+4x4IMEhmhCKfAiOA==}
+ nodemailer@6.9.14:
+ resolution: {integrity: sha512-Dobp/ebDKBvz91sbtRKhcznLThrKxKt97GI2FAlAyy+fk19j73Uz3sBXolVtmcXjaorivqsbbbjDY+Jkt4/bQA==}
engines: {node: '>=6.0.0'}
nodemon@3.0.2:
@@ -8717,8 +9213,8 @@ packages:
engines: {node: '>=10'}
hasBin: true
- nodemon@3.1.0:
- resolution: {integrity: sha512-xqlktYlDMCepBJd43ZQhjWwMw2obW/JRvkrLxq5RCNcuDDX1DbcPT+qT1IlIIdf+DhnWs90JpTMe+Y5KxOchvA==}
+ nodemon@3.1.4:
+ resolution: {integrity: sha512-wjPBbFhtpJwmIeY2yP7QF+UKzPfltVGtfce1g/bB15/8vCGZj8uxD62b/b9M9/WVgme0NZudpownKN+c0plXlQ==}
engines: {node: '>=10'}
hasBin: true
@@ -8764,6 +9260,10 @@ packages:
resolution: {integrity: sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==}
engines: {node: '>=14.16'}
+ normalize-url@8.0.1:
+ resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==}
+ engines: {node: '>=14.16'}
+
npm-run-path@2.0.2:
resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==}
engines: {node: '>=4'}
@@ -8776,6 +9276,10 @@ packages:
resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ npm-run-path@5.3.0:
+ resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
npmlog@5.0.1:
resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
@@ -8787,8 +9291,8 @@ packages:
nth-check@2.1.1:
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
- nwsapi@2.2.9:
- resolution: {integrity: sha512-2f3F0SEEer8bBu0dsNCFF50N0cTThV1nWFYcEYFZttdW0lDAoybv9cQoK7X7/68Z89S7FoRrVjP1LPX4XRf9vg==}
+ nwsapi@2.2.10:
+ resolution: {integrity: sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==}
oauth-sign@0.9.0:
resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==}
@@ -8901,8 +9405,8 @@ packages:
ospath@1.2.2:
resolution: {integrity: sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==}
- otpauth@9.2.3:
- resolution: {integrity: sha512-oAG55Ch4MBL5Jdg+RXfKiRCZ2lCwa/UIQKsmSfYbGGLSI4dErY1HPZv0JGPPESIYGyDO3s9iJqM4HU/1IppMoQ==}
+ otpauth@9.3.1:
+ resolution: {integrity: sha512-E6d2tMxPofHNk4sRFp+kqW7vQ+WJGO9VLI2N/W00DnI+ThskU12Qa10kyNSGklrzhN5c+wRUsN4GijVgCU2N9w==}
outvariant@1.4.2:
resolution: {integrity: sha512-Ou3dJ6bA/UJ5GVHxah4LnqDwZRwAmWxrG3wtrHrbGnP4RnLCtA64A4F+ae7Y8ww660JaddSoArUR5HjipWSHAQ==}
@@ -8931,9 +9435,9 @@ packages:
resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
engines: {node: '>=10'}
- p-limit@4.0.0:
- resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ p-limit@5.0.0:
+ resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==}
+ engines: {node: '>=18'}
p-locate@3.0.0:
resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==}
@@ -8963,6 +9467,9 @@ packages:
resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
engines: {node: '>=6'}
+ package-json-from-dist@1.0.0:
+ resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==}
+
pako@0.2.9:
resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==}
@@ -8977,6 +9484,10 @@ packages:
resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
engines: {node: '>=8'}
+ parse-ms@4.0.0:
+ resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==}
+ engines: {node: '>=18'}
+
parse-srcset@1.0.2:
resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==}
@@ -9037,6 +9548,10 @@ packages:
resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==}
engines: {node: '>=16 || 14 >=14.17'}
+ path-scurry@1.11.1:
+ resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
+ engines: {node: '>=16 || 14 >=14.18'}
+
path-to-regexp@0.1.7:
resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
@@ -9053,6 +9568,10 @@ packages:
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
engines: {node: '>=8'}
+ path-type@5.0.0:
+ resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==}
+ engines: {node: '>=12'}
+
pathe@1.1.2:
resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
@@ -9094,9 +9613,6 @@ packages:
peerDependencies:
pg: '>=8.0'
- pg-protocol@1.6.0:
- resolution: {integrity: sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==}
-
pg-protocol@1.6.1:
resolution: {integrity: sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==}
@@ -9108,8 +9624,8 @@ packages:
resolution: {integrity: sha512-hRCSDuLII9/LE3smys1hRHcu5QGcLs9ggT7I/TCs0IE+2Eesxi9+9RWAAwZ0yaGjxoWICF/YHLOEjydGujoJ+g==}
engines: {node: '>=10'}
- pg@8.11.5:
- resolution: {integrity: sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw==}
+ pg@8.12.0:
+ resolution: {integrity: sha512-A+LHUSnwnxrnL/tZ+OLfqR1SxLN3c/pgDztZ47Rpbsd4jUytsTtwQo/TLPRzPJMp/1pbhYVhH9cuSZLAajNfjQ==}
engines: {node: '>= 8.0.0'}
peerDependencies:
pg-native: '>=3.0.1'
@@ -9120,8 +9636,8 @@ packages:
pgpass@1.0.5:
resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==}
- photoswipe@5.4.3:
- resolution: {integrity: sha512-9UC6oJBK4oXFZ5HcdlcvGkfEHsVrmE4csUdCQhEjHYb3PvPLO3PG7UhnPuOgjxwmhq5s17Un5NUdum01LgBDng==}
+ photoswipe@5.4.4:
+ resolution: {integrity: sha512-WNFHoKrkZNnvFFhbHL93WDkW3ifwVOXSW3w1UuZZelSmgXpIGiZSNlZJq37rR8YejqME2rHs9EhH9ZvlvFH2NA==}
engines: {node: '>= 0.12.0'}
picocolors@1.0.0:
@@ -9143,14 +9659,14 @@ packages:
resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
engines: {node: '>=6'}
- pino-abstract-transport@1.1.0:
- resolution: {integrity: sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==}
+ pino-abstract-transport@1.2.0:
+ resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==}
- pino-std-serializers@6.1.0:
- resolution: {integrity: sha512-KO0m2f1HkrPe9S0ldjx7za9BJjeHqBku5Ch8JyxETxT8dEFGz1PwgrHaOQupVYitpzbFSYm7nnljxD8dik2c+g==}
+ pino-std-serializers@7.0.0:
+ resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==}
- pino@8.17.0:
- resolution: {integrity: sha512-ey+Mku+PVPhvxglLXMg1l1zQMwSHuNrKC3MD40EDZbkckJmmuY7DYZLIOwwjZ8ix/Nvhe9dZt5H99cgkot9bAw==}
+ pino@9.2.0:
+ resolution: {integrity: sha512-g3/hpwfujK5a4oVbaefoJxezLzsDgLcNJeITvC6yrfwYeT9la+edCK42j5QpEQSQCZgTKapXvnQIdgZwvRaZug==}
hasBin: true
pirates@4.0.5:
@@ -9418,8 +9934,8 @@ packages:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
- prettier@3.2.5:
- resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==}
+ prettier@3.3.2:
+ resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==}
engines: {node: '>=14'}
hasBin: true
@@ -9439,6 +9955,10 @@ packages:
resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==}
engines: {node: '>= 0.8'}
+ pretty-ms@9.0.0:
+ resolution: {integrity: sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng==}
+ engines: {node: '>=18'}
+
private-ip@2.3.3:
resolution: {integrity: sha512-5zyFfekIVUOTVbL92hc8LJOtE/gyGHeREHkJ2yTyByP8Q2YZVoBqLg3EfYLeF0oVvGqtaEX2t2Qovja0/gStXw==}
@@ -9524,12 +10044,15 @@ packages:
pug-attrs@3.0.0:
resolution: {integrity: sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==}
- pug-code-gen@3.0.2:
- resolution: {integrity: sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==}
+ pug-code-gen@3.0.3:
+ resolution: {integrity: sha512-cYQg0JW0w32Ux+XTeZnBEeuWrAY7/HNE6TWnhiHGnnRYlCgyAUPoyh9KzCMa9WhcJlJ1AtQqpEYHc+vbCzA+Aw==}
pug-error@2.0.0:
resolution: {integrity: sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==}
+ pug-error@2.1.0:
+ resolution: {integrity: sha512-lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg==}
+
pug-filters@4.0.0:
resolution: {integrity: sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==}
@@ -9554,8 +10077,8 @@ packages:
pug-walk@2.0.0:
resolution: {integrity: sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==}
- pug@3.0.2:
- resolution: {integrity: sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==}
+ pug@3.0.3:
+ resolution: {integrity: sha512-uBi6kmc9f3SZ3PXxqcHiUZLmIXgfgWooKWXcwSGwQd2Zi5Rb0bT14+8CJjJgI8AB+nndLaNgHGrcc6bPIB665g==}
pump@2.0.1:
resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==}
@@ -9638,10 +10161,6 @@ packages:
ratelimiter@3.4.1:
resolution: {integrity: sha512-5FJbRW/Jkkdk29ksedAfWFkQkhbUrMx3QJGwMKAypeIiQf4yrLW+gtPKZiaWt4zPrtw1uGufOjGO7UGM6VllsQ==}
- raw-body@2.5.1:
- resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==}
- engines: {node: '>= 0.8'}
-
raw-body@2.5.2:
resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
engines: {node: '>= 0.8'}
@@ -9650,8 +10169,8 @@ packages:
resolution: {integrity: sha512-fUeWjrkOO0t1rg7B2fdyDTvngj+9RlUyL92vOdiB7c0FPguWVsniIMjEtHH+meLBO9rzkUlUzBVXgWrjI8P9LA==}
engines: {node: '>=12'}
- re2@1.20.10:
- resolution: {integrity: sha512-/5JjSPXobSDaKFL6rD5Gb4qD4CVBITQb7NAxfQ/NA7o0HER3SJAPV3lPO2kvzw0/PN1pVJNVATEUk4y9j7oIIA==}
+ re2@1.21.3:
+ resolution: {integrity: sha512-GI+KoGkHT4kxTaX+9p0FgNB1XUnCndO9slG5qqeEoZ7kbf6Dk6ohQVpmwKVeSp7LPLn+g6Q3BaCopz4oHuBDuQ==}
react-colorful@5.6.1:
resolution: {integrity: sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==}
@@ -9691,6 +10210,36 @@ packages:
react-is@18.2.0:
resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
+ react-remove-scroll-bar@2.3.6:
+ resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ react-remove-scroll@2.5.7:
+ resolution: {integrity: sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ react-style-singleton@2.2.1:
+ resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
react@18.3.1:
resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
engines: {node: '>=0.10.0'}
@@ -9732,10 +10281,6 @@ packages:
resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==}
engines: {node: '>= 12.13.0'}
- recast@0.23.4:
- resolution: {integrity: sha512-qtEDqIZGVcSZCHniWwZWbRy79Dc6Wp3kT/UmDA2RJKBPg7+7k51aQBZirHmUGn5uvHf2rg8DkjizrN26k61ATw==}
- engines: {node: '>= 4'}
-
recast@0.23.6:
resolution: {integrity: sha512-9FHoNjX1yjuesMwuthAmPKabxYQdOgihFYmT5ebXfYGBcnqXZf3WOVz+5foEZ8Y83P4ZY6yQD5GMmtV+pgCCAQ==}
engines: {node: '>= 4'}
@@ -9859,9 +10404,6 @@ packages:
resolution: {integrity: sha512-6K/gDlqgQscOlg9fSRpWstA8sYe8rbELsSTNpx+3kTrsVCzvSl0zIvRErM7fdl9ERWDsKnrLnwB+Ne89918XOg==}
engines: {node: '>=10'}
- resolve@1.19.0:
- resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==}
-
resolve@1.22.8:
resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
hasBin: true
@@ -9894,6 +10436,7 @@ packages:
rimraf@2.6.3:
resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==}
+ deprecated: Rimraf versions prior to v4 are no longer supported
hasBin: true
rimraf@2.7.1:
@@ -9904,14 +10447,17 @@ packages:
resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
hasBin: true
- rollup@4.17.2:
- resolution: {integrity: sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==}
+ rollup@4.18.0:
+ resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
rrweb-cssom@0.6.0:
resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==}
+ rrweb-cssom@0.7.1:
+ resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==}
+
rss-parser@3.13.0:
resolution: {integrity: sha512-7jWUBV5yGN3rqMMj7CZufl/291QAhvrrGpDNE4k/02ZchL0npisiYYqULF71jCEKoIiHvK/Q2e6IkDwPziT7+w==}
@@ -9947,8 +10493,8 @@ packages:
sanitize-html@2.13.0:
resolution: {integrity: sha512-Xff91Z+4Mz5QiNSLdLWwjgBDm5b1RU6xBT0+12rapjiaR7SwfRdjw8f+6Rir2MXKLrDicRFHdb51hGOAxmsUIA==}
- sass@1.76.0:
- resolution: {integrity: sha512-nc3LeqvF2FNW5xGF1zxZifdW3ffIz5aBb7I7tSvOoNu7z1RQ6pFt9MBuiPtjgaI62YWrM/txjWlOCFiGtf2xpw==}
+ sass@1.77.6:
+ resolution: {integrity: sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==}
engines: {node: '>=14.0.0'}
hasBin: true
@@ -10022,8 +10568,8 @@ packages:
resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==}
engines: {node: '>=8'}
- sharp@0.33.3:
- resolution: {integrity: sha512-vHUeXJU1UvlO/BNwTpT0x/r53WkLUVxrmb5JTgW92fdFCFk0ispLMAeu/jPO2vjkXM1fYUi3K7/qcLF47pwM1A==}
+ sharp@0.33.4:
+ resolution: {integrity: sha512-7i/dt5kGl7qR4gwPRD2biwD2/SvBn3O04J77XKFgL2OnZtQw+AG9wnuS/csmu80nPRHLYE9E41fyEiG8nhH6/Q==}
engines: {libvips: '>=8.15.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0}
shebang-command@1.2.0:
@@ -10042,8 +10588,8 @@ packages:
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
engines: {node: '>=8'}
- shiki@1.4.0:
- resolution: {integrity: sha512-5WIn0OL8PWm7JhnTwRWXniy6eEDY234mRrERVlFa646V2ErQqwIFd2UML7e0Pq9eqSKLoMa3Ke+xbsF+DAuy+Q==}
+ shiki@1.10.0:
+ resolution: {integrity: sha512-YD2sXQ+TMD/F9BimV9Jn0wj35pqOvywvOG/3PB6hGHyGKlM7TJ9tyJ02jOb2kF8F0HfJwKNYrh3sW7jEcuRlXA==}
shimmer@1.2.1:
resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==}
@@ -10061,8 +10607,8 @@ packages:
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
engines: {node: '>=14'}
- simple-oauth2@5.0.0:
- resolution: {integrity: sha512-8291lo/z5ZdpmiOFzOs1kF3cxn22bMj5FFH+DNUppLJrpoIlM1QnFiE7KpshHu3J3i21TVcx4yW+gXYjdCKDLQ==}
+ simple-oauth2@5.0.1:
+ resolution: {integrity: sha512-JcmGdzvbHKU3GegF3BK6zNi46DqFTxPMjwYddu2bgYqZuy7Gtm8U8wdedkVE4lI4LEqXocmPBLAvC4BIiiBc5w==}
simple-swizzle@0.2.2:
resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
@@ -10162,6 +10708,10 @@ packages:
resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
engines: {node: '>=8'}
+ slash@5.1.0:
+ resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==}
+ engines: {node: '>=14.16'}
+
slice-ansi@3.0.0:
resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==}
engines: {node: '>=8'}
@@ -10182,8 +10732,8 @@ packages:
resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==}
engines: {node: '>= 10.13.0', npm: '>= 3.0.0'}
- sonic-boom@3.7.0:
- resolution: {integrity: sha512-IudtNvSqA/ObjN97tfgNmOKyDOs4dNcg4cUUsHDebqsgb8wGBBwb31LIgShNO8fye0dFI52X1+tFoKKI6Rq1Gg==}
+ sonic-boom@4.0.1:
+ resolution: {integrity: sha512-hTSD/6JMLyT4r9zeof6UtuBDpjJ9sO08/nmS5djaA9eozT9oOlNdpXSnzcgj4FTqpk3nkLrs61l4gip9r1HCrQ==}
sort-keys-length@1.0.1:
resolution: {integrity: sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==}
@@ -10243,8 +10793,8 @@ packages:
sprintf-js@1.0.3:
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
- sprintf-js@1.1.2:
- resolution: {integrity: sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==}
+ sprintf-js@1.1.3:
+ resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
sshpk@1.17.0:
resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==}
@@ -10265,8 +10815,8 @@ packages:
standard-as-callback@2.1.0:
resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==}
- start-server-and-test@2.0.3:
- resolution: {integrity: sha512-QsVObjfjFZKJE6CS6bSKNwWZCKBG6975/jKRPPGFfFh+yOQglSeGXiNWjzgQNXdphcBI9nXbyso9tPfX4YAUhg==}
+ start-server-and-test@2.0.4:
+ resolution: {integrity: sha512-CKNeBTcP0hVqIlNismHMudb9q3lLdAjcVPO13/7gfI66fcJpeIb/o4NzQd1JK/CD+lfWVqr10ZH9Y14+OwlJuw==}
engines: {node: '>=16'}
hasBin: true
@@ -10303,8 +10853,8 @@ packages:
react-dom:
optional: true
- storybook@8.0.9:
- resolution: {integrity: sha512-/Mvij0Br5bUwJpCvqAUZMEDIWmdRxEyllvVj8Ukw5lIWJePxfpSsz4px5jg9+R6B9tO8sQSqjg4HJvQ/pZk8Tg==}
+ storybook@8.1.11:
+ resolution: {integrity: sha512-3KjIhF8lczXhKKHyHbOqV30dvuRYJSxc0d1as/C8kybuwE7cLaydhWGma7VBv5bTSPv0rDzucx7KcO+achArPg==}
hasBin: true
stream-browserify@3.0.0:
@@ -10402,6 +10952,10 @@ packages:
resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
engines: {node: '>=12'}
+ strip-final-newline@4.0.0:
+ resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==}
+ engines: {node: '>=18'}
+
strip-indent@3.0.0:
resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
engines: {node: '>=8'}
@@ -10414,8 +10968,8 @@ packages:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
- strip-literal@1.3.0:
- resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==}
+ strip-literal@2.1.0:
+ resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==}
strip-outer@2.0.0:
resolution: {integrity: sha512-A21Xsm1XzUkK0qK1ZrytDUvqsQWict2Cykhvi0fBQntGG5JSprESasEyV1EZ/4CiR5WB5KjzLTrP/bO37B0wPg==}
@@ -10466,8 +11020,8 @@ packages:
symbol-tree@3.2.4:
resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
- systeminformation@5.22.7:
- resolution: {integrity: sha512-AWxlP05KeHbpGdgvZkcudJpsmChc2Y5Eo/GvxG/iUA/Aws5LZKHAMSeAo+V+nD+nxWZaxrwpWcnx4SH3oxNL3A==}
+ systeminformation@5.22.11:
+ resolution: {integrity: sha512-aLws5yi4KCHTb0BVvbodQY5bY8eW4asMRDTxTW46hqw9lGjACX6TlLdJrkdoHYRB0qs+MekqEq1zG7WDnWE8Ug==}
engines: {node: '>=8.0.0'}
os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android]
hasBin: true
@@ -10497,20 +11051,20 @@ packages:
telejson@7.2.0:
resolution: {integrity: sha512-1QTEcJkJEhc8OnStBx/ILRu5J2p0GjvWsBx56bmZRqnrkdBMUe+nX92jxV+p3dB4CP6PZCdJMQJwCggkNBMzkQ==}
- temp-dir@2.0.0:
- resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==}
- engines: {node: '>=8'}
+ temp-dir@3.0.0:
+ resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==}
+ engines: {node: '>=14.16'}
temp@0.8.4:
resolution: {integrity: sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==}
engines: {node: '>=6.0.0'}
- tempy@1.0.1:
- resolution: {integrity: sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==}
- engines: {node: '>=10'}
+ tempy@3.1.0:
+ resolution: {integrity: sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==}
+ engines: {node: '>=14.16'}
- terser@5.30.3:
- resolution: {integrity: sha512-STdUgOUx8rLbMGO9IOwHLpCqolkDITFFQSMYYwKE1N2lY6MVSaeoi10z/EhWxRc6ybqoVmKSkhKYH/XUpl7vSA==}
+ terser@5.31.1:
+ resolution: {integrity: sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==}
engines: {node: '>=10'}
hasBin: true
@@ -10531,14 +11085,14 @@ packages:
thenify@3.3.1:
resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
- thread-stream@2.3.0:
- resolution: {integrity: sha512-kaDqm1DET9pp3NXwR8382WHbnpXnRkN9xGN9dQt3B2+dmXiW8X1SOwmFOxAErEQ47ObhZ96J6yhZNXuyCOL7KA==}
+ thread-stream@3.1.0:
+ resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==}
- three@0.164.1:
- resolution: {integrity: sha512-iC/hUBbl1vzFny7f5GtqzVXYjMJKaTPxiCxXfrvVdBi1Sf+jhd1CAkitiFwC7mIBFCo3MrDLJG97yisoaWig0w==}
+ three@0.165.0:
+ resolution: {integrity: sha512-cc96IlVYGydeceu0e5xq70H8/yoVT/tXBxV/W8A/U6uOq7DXc4/s1Mkmnu6SqoYGhSRWWYFOhVwvq6V0VtbplA==}
- throttle-debounce@5.0.0:
- resolution: {integrity: sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==}
+ throttle-debounce@5.0.2:
+ resolution: {integrity: sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==}
engines: {node: '>=12.22'}
throttleit@1.0.0:
@@ -10553,9 +11107,6 @@ packages:
through@2.3.8:
resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
- tiny-invariant@1.3.1:
- resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==}
-
tiny-invariant@1.3.3:
resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
@@ -10569,8 +11120,8 @@ packages:
tinycolor2@1.6.0:
resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==}
- tinypool@0.7.0:
- resolution: {integrity: sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==}
+ tinypool@0.8.4:
+ resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==}
engines: {node: '>=14.0.0'}
tinyspy@2.2.0:
@@ -10595,10 +11146,6 @@ packages:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
- toad-cache@3.3.0:
- resolution: {integrity: sha512-3oDzcogWGHZdkwrHyvJVpPjA7oNzY6ENOV3PsWJY9XYPZ6INo94Yd47s5may1U+nleBPwDhrRiTPMIvKaa3MQg==}
- engines: {node: '>=12'}
-
toad-cache@3.7.0:
resolution: {integrity: sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw==}
engines: {node: '>=12'}
@@ -10625,8 +11172,8 @@ packages:
resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==}
engines: {node: '>=0.8'}
- tough-cookie@4.1.3:
- resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==}
+ tough-cookie@4.1.4:
+ resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==}
engines: {node: '>=6'}
tr46@0.0.3:
@@ -10673,8 +11220,8 @@ packages:
ts-map@1.0.3:
resolution: {integrity: sha512-vDWbsl26LIcPGmDpoVzjEP6+hvHZkBkLW7JpvwbCv/5IYPJlsbzCVXY3wsCeAxAUeTclNOUZxnLdGh3VBD/J6w==}
- tsc-alias@1.8.8:
- resolution: {integrity: sha512-OYUOd2wl0H858NvABWr/BoSKNERw3N9GTi3rHPK8Iv4O1UyUXIrTTOAZNHsjlVpXFOhpJBVARI1s+rzwLivN3Q==}
+ tsc-alias@1.8.10:
+ resolution: {integrity: sha512-Ibv4KAWfFkFdKJxnWfVtdOmB0Zi1RJVxcbPGiCDsFpCQSsmpWyuzHG3rQyI5YkobWwxFPEyQfu1hdo4qLG2zPw==}
hasBin: true
tsconfig-paths@3.15.0:
@@ -10684,8 +11231,8 @@ packages:
resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==}
engines: {node: '>=6'}
- tsd@0.30.7:
- resolution: {integrity: sha512-oTiJ28D6B/KXoU3ww/Eji+xqHJojiuPVMwA12g4KYX1O72N93Nb6P3P3h2OAhhf92Xl8NIhb/xFmBZd5zw/xUw==}
+ tsd@0.31.1:
+ resolution: {integrity: sha512-sSL84A0SFwx2xGMWrxlGaarKFSQszWjJS2vgNDDLwatytzg2aq6ShlwHsBYxRNmjzXISODwMva5ZOdAg/4AoOA==}
engines: {node: '>=14.16'}
hasBin: true
@@ -10695,6 +11242,9 @@ packages:
tslib@2.6.2:
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
+ tslib@2.6.3:
+ resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==}
+
tsx@4.4.0:
resolution: {integrity: sha512-4fwcEjRUxW20ciSaMB8zkpGwCPxuRGnadDuj/pBk5S9uT29zvWz15PK36GrKJo45mSJomDxVejZ73c6lr3811Q==}
engines: {node: '>=18.0.0'}
@@ -10714,10 +11264,6 @@ packages:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: '>=4'}
- type-fest@0.16.0:
- resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==}
- engines: {node: '>=10'}
-
type-fest@0.18.1:
resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==}
engines: {node: '>=10'}
@@ -10738,10 +11284,18 @@ packages:
resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
engines: {node: '>=8'}
+ type-fest@1.4.0:
+ resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==}
+ engines: {node: '>=10'}
+
type-fest@2.19.0:
resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
engines: {node: '>=12.20'}
+ type-fest@4.20.1:
+ resolution: {integrity: sha512-R6wDsVsoS9xYOpy8vgeBlqpdOyzJ12HNfQhC/aAKWM3YoCV9TtunJzh/QpkMgeDhkoynDcw5f1y+qF9yc/HHyg==}
+ engines: {node: '>=16'}
+
type-fest@4.9.0:
resolution: {integrity: sha512-KS/6lh/ynPGiHD/LnAobrEFq3Ad4pBzOlJ1wAnJx9N4EYoqFhMfLIBjUT2UEx4wg5ZE+cC1ob6DCSpppVo+rtg==}
engines: {node: '>=16'}
@@ -10836,8 +11390,8 @@ packages:
engines: {node: '>=14.17'}
hasBin: true
- typescript@5.4.5:
- resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==}
+ typescript@5.5.3:
+ resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==}
engines: {node: '>=14.17'}
hasBin: true
@@ -10889,6 +11443,10 @@ packages:
resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==}
engines: {node: '>=4'}
+ unicorn-magic@0.1.0:
+ resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==}
+ engines: {node: '>=18'}
+
unified@11.0.4:
resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==}
@@ -10903,9 +11461,9 @@ packages:
resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
- unique-string@2.0.0:
- resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==}
- engines: {node: '>=8'}
+ unique-string@3.0.0:
+ resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==}
+ engines: {node: '>=12'}
unist-util-is@6.0.0:
resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
@@ -10957,6 +11515,26 @@ packages:
url-parse@1.5.10:
resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
+ use-callback-ref@1.3.2:
+ resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ use-sidecar@1.1.2:
+ resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
utf-8-validate@6.0.3:
resolution: {integrity: sha512-uIuGf9TWQ/y+0Lp+KGZCMuJWc3N9BHA+l/UmHd/oUHwJJDeysyTRxNQVkbzsIWfGFbRe3OcgML/i0mvVRPOyDA==}
engines: {node: '>=6.14.2'}
@@ -10971,6 +11549,10 @@ packages:
resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
engines: {node: '>= 0.4.0'}
+ uuid@10.0.0:
+ resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==}
+ hasBin: true
+
uuid@3.4.0:
resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==}
deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
@@ -10984,8 +11566,8 @@ packages:
resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
hasBin: true
- v-code-diff@1.11.0:
- resolution: {integrity: sha512-lBlO+FXw3I3qFKbnlorXZ4sb5cFnrdxlc6lj3Y1CWrbn2LC7PoVbGlwH0W+nvAVX1rdJhhc15rKIQdHyMkXe/w==}
+ v-code-diff@1.12.0:
+ resolution: {integrity: sha512-vvdCBG02mIIiW6Gx6jF119hzxELt+6TlJIwchglR1JYzboHePNxIkVBjR/aoAOVlsGa+5Vtb77cd/N84nrXWPA==}
peerDependencies:
'@vue/composition-api': ^1.4.9
vue: ^2.6.0 || >=3.0.0
@@ -11000,10 +11582,6 @@ packages:
validate-npm-package-license@3.0.4:
resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
- validator@13.9.0:
- resolution: {integrity: sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==}
- engines: {node: '>= 0.10'}
-
vary@1.1.2:
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
engines: {node: '>= 0.8'}
@@ -11018,16 +11596,16 @@ packages:
vfile@6.0.1:
resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==}
- vite-node@0.34.6:
- resolution: {integrity: sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==}
- engines: {node: '>=v14.18.0'}
+ vite-node@1.6.0:
+ resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==}
+ engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
vite-plugin-turbosnap@1.0.3:
resolution: {integrity: sha512-p4D8CFVhZS412SyQX125qxyzOgIFouwOcvjZWk6bQbNPR1wtaEzFT6jZxAjf1dejlGqa6fqHcuCvQea6EWUkUA==}
- vite@5.2.11:
- resolution: {integrity: sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==}
+ vite@5.3.2:
+ resolution: {integrity: sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
@@ -11060,22 +11638,22 @@ packages:
peerDependencies:
vitest: '>=0.16.0'
- vitest@0.34.6:
- resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==}
- engines: {node: '>=v14.18.0'}
+ vitest@1.6.0:
+ resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==}
+ engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
'@edge-runtime/vm': '*'
- '@vitest/browser': '*'
- '@vitest/ui': '*'
+ '@types/node': ^18.0.0 || >=20.0.0
+ '@vitest/browser': 1.6.0
+ '@vitest/ui': 1.6.0
happy-dom: '*'
jsdom: '*'
- playwright: '*'
- safaridriver: '*'
- webdriverio: '*'
peerDependenciesMeta:
'@edge-runtime/vm':
optional: true
+ '@types/node':
+ optional: true
'@vitest/browser':
optional: true
'@vitest/ui':
@@ -11084,12 +11662,6 @@ packages:
optional: true
jsdom:
optional: true
- playwright:
- optional: true
- safaridriver:
- optional: true
- webdriverio:
- optional: true
void-elements@3.1.0:
resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==}
@@ -11116,6 +11688,9 @@ packages:
resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==}
hasBin: true
+ vscode-uri@3.0.8:
+ resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==}
+
vue-component-meta@2.0.16:
resolution: {integrity: sha512-IyIMClUMYcKxAL34GqdPbR4V45MUeHXqQiZlHxeYMV5Qcqp4M+CEmtGpF//XBSS138heDkYkceHAtJQjLUB1Lw==}
peerDependencies:
@@ -11130,8 +11705,11 @@ packages:
vue-component-type-helpers@2.0.16:
resolution: {integrity: sha512-qisL/iAfdO++7w+SsfYQJVPj6QKvxp4i1MMxvsNO41z/8zu3KuAw9LkhKUfP/kcOWGDxESp+pQObWppXusejCA==}
- vue-component-type-helpers@2.0.19:
- resolution: {integrity: sha512-cN3f1aTxxKo4lzNeQAkVopswuImUrb5Iurll9Gaw5cqpnbTAxtEMM1mgi6ou4X79OCyqYv1U1mzBHJkzmiK82w==}
+ vue-component-type-helpers@2.0.24:
+ resolution: {integrity: sha512-Jr5N8QVYEcbQuMN1LRgvg61758G8HTnzUlQsAFOxx6Y6X8kmhJ7C+jOvWsQruYxi3uHhhS6BghyRlyiwO99DBg==}
+
+ vue-component-type-helpers@2.0.26:
+ resolution: {integrity: sha512-sO9qQ8oC520SW6kqlls0iqDak53gsTVSrYylajgjmkt1c0vcgjsGSy1KzlDrbEx8pm02IEYhlUkU5hCYf8rwtg==}
vue-demi@0.14.7:
resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==}
@@ -11149,8 +11727,8 @@ packages:
peerDependencies:
vue: '>=2'
- vue-eslint-parser@9.4.2:
- resolution: {integrity: sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==}
+ vue-eslint-parser@9.4.3:
+ resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==}
engines: {node: ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: '>=6.0.0'
@@ -11169,14 +11747,14 @@ packages:
vue-template-compiler@2.7.14:
resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==}
- vue-tsc@2.0.16:
- resolution: {integrity: sha512-/gHAWJa216PeEhfxtAToIbxdWgw01wuQzo48ZUqMYVEyNqDp+OYV9xMO5HaPS2P3Ls0+EsjguMZLY4cGobX4Ew==}
+ vue-tsc@2.0.24:
+ resolution: {integrity: sha512-1qi4P8L7yS78A7OJ7CDDxUIZPD6nVxoQEgX3DkRZNi1HI1qOfzOJwQlNpmwkogSVD6S/XcanbW9sktzpSxz6rA==}
hasBin: true
peerDependencies:
- typescript: '*'
+ typescript: '>=5.0.0'
- vue@3.4.26:
- resolution: {integrity: sha512-bUIq/p+VB+0xrJubaemrfhk1/FiW9iX+pDV+62I/XJ6EkspAO9/DXEjbDFoe8pIfOZBqfk45i9BMc41ptP/uRg==}
+ vue@3.4.31:
+ resolution: {integrity: sha512-njqRrOy7W3YLAlVqSKpBebtZpDVg21FPoaq1I7f/+qqBThK9ChAIjkRWgeP6Eat+8C+iia4P3OYqpATP21BCoQ==}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
@@ -11317,8 +11895,8 @@ packages:
resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
- ws@8.17.0:
- resolution: {integrity: sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==}
+ ws@8.17.1:
+ resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==}
engines: {node: '>=10.0.0'}
peerDependencies:
bufferutil: ^4.0.1
@@ -11410,10 +11988,9 @@ packages:
resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
engines: {node: '>=12.20'}
- z-schema@5.0.5:
- resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==}
- engines: {node: '>=8.0.0'}
- hasBin: true
+ yoctocolors@2.0.2:
+ resolution: {integrity: sha512-Ct97huExsu7cWeEjmrXlofevF8CvzUglJ4iGUet5B8xn1oumtAZBpHU4GzYuoE6PVqcZ5hghtBrSlhwHuR1Jmw==}
+ engines: {node: '>=18'}
zip-stream@6.0.1:
resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==}
@@ -11449,458 +12026,510 @@ snapshots:
dependencies:
default-browser-id: 3.0.0
- '@aws-crypto/crc32@3.0.0':
- dependencies:
- '@aws-crypto/util': 3.0.0
- '@aws-sdk/types': 3.413.0
- tslib: 1.14.1
-
- '@aws-crypto/crc32c@3.0.0':
+ '@aws-crypto/crc32@5.2.0':
dependencies:
- '@aws-crypto/util': 3.0.0
- '@aws-sdk/types': 3.413.0
- tslib: 1.14.1
+ '@aws-crypto/util': 5.2.0
+ '@aws-sdk/types': 3.598.0
+ tslib: 2.6.2
- '@aws-crypto/ie11-detection@3.0.0':
+ '@aws-crypto/crc32c@5.2.0':
dependencies:
- tslib: 1.14.1
+ '@aws-crypto/util': 5.2.0
+ '@aws-sdk/types': 3.598.0
+ tslib: 2.6.2
- '@aws-crypto/sha1-browser@3.0.0':
+ '@aws-crypto/sha1-browser@5.2.0':
dependencies:
- '@aws-crypto/ie11-detection': 3.0.0
- '@aws-crypto/supports-web-crypto': 3.0.0
- '@aws-crypto/util': 3.0.0
- '@aws-sdk/types': 3.413.0
+ '@aws-crypto/supports-web-crypto': 5.2.0
+ '@aws-crypto/util': 5.2.0
+ '@aws-sdk/types': 3.598.0
'@aws-sdk/util-locate-window': 3.208.0
- '@aws-sdk/util-utf8-browser': 3.259.0
- tslib: 1.14.1
+ '@smithy/util-utf8': 2.0.0
+ tslib: 2.6.2
- '@aws-crypto/sha256-browser@3.0.0':
+ '@aws-crypto/sha256-browser@5.2.0':
dependencies:
- '@aws-crypto/ie11-detection': 3.0.0
- '@aws-crypto/sha256-js': 3.0.0
- '@aws-crypto/supports-web-crypto': 3.0.0
- '@aws-crypto/util': 3.0.0
- '@aws-sdk/types': 3.413.0
+ '@aws-crypto/sha256-js': 5.2.0
+ '@aws-crypto/supports-web-crypto': 5.2.0
+ '@aws-crypto/util': 5.2.0
+ '@aws-sdk/types': 3.598.0
'@aws-sdk/util-locate-window': 3.208.0
- '@aws-sdk/util-utf8-browser': 3.259.0
- tslib: 1.14.1
+ '@smithy/util-utf8': 2.0.0
+ tslib: 2.6.2
- '@aws-crypto/sha256-js@3.0.0':
+ '@aws-crypto/sha256-js@5.2.0':
dependencies:
- '@aws-crypto/util': 3.0.0
- '@aws-sdk/types': 3.413.0
- tslib: 1.14.1
+ '@aws-crypto/util': 5.2.0
+ '@aws-sdk/types': 3.598.0
+ tslib: 2.6.2
- '@aws-crypto/supports-web-crypto@3.0.0':
+ '@aws-crypto/supports-web-crypto@5.2.0':
dependencies:
- tslib: 1.14.1
+ tslib: 2.6.2
- '@aws-crypto/util@3.0.0':
+ '@aws-crypto/util@5.2.0':
dependencies:
- '@aws-sdk/types': 3.413.0
- '@aws-sdk/util-utf8-browser': 3.259.0
- tslib: 1.14.1
-
- '@aws-sdk/client-s3@3.412.0':
- dependencies:
- '@aws-crypto/sha1-browser': 3.0.0
- '@aws-crypto/sha256-browser': 3.0.0
- '@aws-crypto/sha256-js': 3.0.0
- '@aws-sdk/client-sts': 3.410.0
- '@aws-sdk/credential-provider-node': 3.410.0
- '@aws-sdk/middleware-bucket-endpoint': 3.410.0
- '@aws-sdk/middleware-expect-continue': 3.410.0
- '@aws-sdk/middleware-flexible-checksums': 3.410.0
- '@aws-sdk/middleware-host-header': 3.410.0
- '@aws-sdk/middleware-location-constraint': 3.410.0
- '@aws-sdk/middleware-logger': 3.410.0
- '@aws-sdk/middleware-recursion-detection': 3.410.0
- '@aws-sdk/middleware-sdk-s3': 3.410.0
- '@aws-sdk/middleware-signing': 3.410.0
- '@aws-sdk/middleware-ssec': 3.410.0
- '@aws-sdk/middleware-user-agent': 3.410.0
- '@aws-sdk/signature-v4-multi-region': 3.412.0
- '@aws-sdk/types': 3.410.0
- '@aws-sdk/util-endpoints': 3.410.0
- '@aws-sdk/util-user-agent-browser': 3.410.0
- '@aws-sdk/util-user-agent-node': 3.410.0
- '@aws-sdk/xml-builder': 3.310.0
- '@smithy/config-resolver': 2.0.9
- '@smithy/eventstream-serde-browser': 2.0.8
- '@smithy/eventstream-serde-config-resolver': 2.0.8
- '@smithy/eventstream-serde-node': 2.0.8
- '@smithy/fetch-http-handler': 2.1.4
- '@smithy/hash-blob-browser': 2.0.8
- '@smithy/hash-node': 2.0.8
- '@smithy/hash-stream-node': 2.0.8
- '@smithy/invalid-dependency': 2.0.8
- '@smithy/md5-js': 2.0.8
- '@smithy/middleware-content-length': 2.0.10
- '@smithy/middleware-endpoint': 2.0.8
- '@smithy/middleware-retry': 2.0.11
- '@smithy/middleware-serde': 2.0.8
- '@smithy/middleware-stack': 2.0.1
- '@smithy/node-config-provider': 2.0.11
- '@smithy/node-http-handler': 2.5.0
- '@smithy/protocol-http': 3.0.10
- '@smithy/smithy-client': 2.1.5
- '@smithy/types': 2.6.0
- '@smithy/url-parser': 2.0.8
- '@smithy/util-base64': 2.0.0
- '@smithy/util-body-length-browser': 2.0.0
- '@smithy/util-body-length-node': 2.1.0
- '@smithy/util-defaults-mode-browser': 2.0.9
- '@smithy/util-defaults-mode-node': 2.0.11
- '@smithy/util-retry': 2.0.1
- '@smithy/util-stream': 2.0.11
+ '@aws-sdk/types': 3.598.0
'@smithy/util-utf8': 2.0.0
- '@smithy/util-waiter': 2.0.8
- fast-xml-parser: 4.2.5
+ tslib: 2.6.2
+
+ '@aws-sdk/client-s3@3.600.0':
+ dependencies:
+ '@aws-crypto/sha1-browser': 5.2.0
+ '@aws-crypto/sha256-browser': 5.2.0
+ '@aws-crypto/sha256-js': 5.2.0
+ '@aws-sdk/client-sso-oidc': 3.600.0(@aws-sdk/client-sts@3.600.0)
+ '@aws-sdk/client-sts': 3.600.0
+ '@aws-sdk/core': 3.598.0
+ '@aws-sdk/credential-provider-node': 3.600.0(@aws-sdk/client-sso-oidc@3.600.0)(@aws-sdk/client-sts@3.600.0)
+ '@aws-sdk/middleware-bucket-endpoint': 3.598.0
+ '@aws-sdk/middleware-expect-continue': 3.598.0
+ '@aws-sdk/middleware-flexible-checksums': 3.598.0
+ '@aws-sdk/middleware-host-header': 3.598.0
+ '@aws-sdk/middleware-location-constraint': 3.598.0
+ '@aws-sdk/middleware-logger': 3.598.0
+ '@aws-sdk/middleware-recursion-detection': 3.598.0
+ '@aws-sdk/middleware-sdk-s3': 3.598.0
+ '@aws-sdk/middleware-signing': 3.598.0
+ '@aws-sdk/middleware-ssec': 3.598.0
+ '@aws-sdk/middleware-user-agent': 3.598.0
+ '@aws-sdk/region-config-resolver': 3.598.0
+ '@aws-sdk/signature-v4-multi-region': 3.598.0
+ '@aws-sdk/types': 3.598.0
+ '@aws-sdk/util-endpoints': 3.598.0
+ '@aws-sdk/util-user-agent-browser': 3.598.0
+ '@aws-sdk/util-user-agent-node': 3.598.0
+ '@aws-sdk/xml-builder': 3.598.0
+ '@smithy/config-resolver': 3.0.4
+ '@smithy/core': 2.2.4
+ '@smithy/eventstream-serde-browser': 3.0.4
+ '@smithy/eventstream-serde-config-resolver': 3.0.3
+ '@smithy/eventstream-serde-node': 3.0.4
+ '@smithy/fetch-http-handler': 3.2.0
+ '@smithy/hash-blob-browser': 3.1.2
+ '@smithy/hash-node': 3.0.3
+ '@smithy/hash-stream-node': 3.1.2
+ '@smithy/invalid-dependency': 3.0.3
+ '@smithy/md5-js': 3.0.3
+ '@smithy/middleware-content-length': 3.0.3
+ '@smithy/middleware-endpoint': 3.0.4
+ '@smithy/middleware-retry': 3.0.7
+ '@smithy/middleware-serde': 3.0.3
+ '@smithy/middleware-stack': 3.0.3
+ '@smithy/node-config-provider': 3.1.3
+ '@smithy/node-http-handler': 3.1.1
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/smithy-client': 3.1.5
+ '@smithy/types': 3.3.0
+ '@smithy/url-parser': 3.0.3
+ '@smithy/util-base64': 3.0.0
+ '@smithy/util-body-length-browser': 3.0.0
+ '@smithy/util-body-length-node': 3.0.0
+ '@smithy/util-defaults-mode-browser': 3.0.7
+ '@smithy/util-defaults-mode-node': 3.0.7
+ '@smithy/util-endpoints': 2.0.4
+ '@smithy/util-retry': 3.0.3
+ '@smithy/util-stream': 3.0.5
+ '@smithy/util-utf8': 3.0.0
+ '@smithy/util-waiter': 3.1.2
tslib: 2.6.2
transitivePeerDependencies:
- aws-crt
- '@aws-sdk/client-sso@3.410.0':
- dependencies:
- '@aws-crypto/sha256-browser': 3.0.0
- '@aws-crypto/sha256-js': 3.0.0
- '@aws-sdk/middleware-host-header': 3.410.0
- '@aws-sdk/middleware-logger': 3.410.0
- '@aws-sdk/middleware-recursion-detection': 3.410.0
- '@aws-sdk/middleware-user-agent': 3.410.0
- '@aws-sdk/types': 3.410.0
- '@aws-sdk/util-endpoints': 3.410.0
- '@aws-sdk/util-user-agent-browser': 3.410.0
- '@aws-sdk/util-user-agent-node': 3.410.0
- '@smithy/config-resolver': 2.0.9
- '@smithy/fetch-http-handler': 2.1.4
- '@smithy/hash-node': 2.0.8
- '@smithy/invalid-dependency': 2.0.8
- '@smithy/middleware-content-length': 2.0.10
- '@smithy/middleware-endpoint': 2.0.8
- '@smithy/middleware-retry': 2.0.11
- '@smithy/middleware-serde': 2.0.8
- '@smithy/middleware-stack': 2.0.1
- '@smithy/node-config-provider': 2.0.11
- '@smithy/node-http-handler': 2.5.0
- '@smithy/protocol-http': 3.0.10
- '@smithy/smithy-client': 2.1.5
- '@smithy/types': 2.6.0
- '@smithy/url-parser': 2.0.8
- '@smithy/util-base64': 2.0.0
- '@smithy/util-body-length-browser': 2.0.0
- '@smithy/util-body-length-node': 2.1.0
- '@smithy/util-defaults-mode-browser': 2.0.9
- '@smithy/util-defaults-mode-node': 2.0.11
- '@smithy/util-retry': 2.0.1
- '@smithy/util-utf8': 2.0.0
+ '@aws-sdk/client-sso-oidc@3.600.0(@aws-sdk/client-sts@3.600.0)':
+ dependencies:
+ '@aws-crypto/sha256-browser': 5.2.0
+ '@aws-crypto/sha256-js': 5.2.0
+ '@aws-sdk/client-sts': 3.600.0
+ '@aws-sdk/core': 3.598.0
+ '@aws-sdk/credential-provider-node': 3.600.0(@aws-sdk/client-sso-oidc@3.600.0)(@aws-sdk/client-sts@3.600.0)
+ '@aws-sdk/middleware-host-header': 3.598.0
+ '@aws-sdk/middleware-logger': 3.598.0
+ '@aws-sdk/middleware-recursion-detection': 3.598.0
+ '@aws-sdk/middleware-user-agent': 3.598.0
+ '@aws-sdk/region-config-resolver': 3.598.0
+ '@aws-sdk/types': 3.598.0
+ '@aws-sdk/util-endpoints': 3.598.0
+ '@aws-sdk/util-user-agent-browser': 3.598.0
+ '@aws-sdk/util-user-agent-node': 3.598.0
+ '@smithy/config-resolver': 3.0.4
+ '@smithy/core': 2.2.4
+ '@smithy/fetch-http-handler': 3.2.0
+ '@smithy/hash-node': 3.0.3
+ '@smithy/invalid-dependency': 3.0.3
+ '@smithy/middleware-content-length': 3.0.3
+ '@smithy/middleware-endpoint': 3.0.4
+ '@smithy/middleware-retry': 3.0.7
+ '@smithy/middleware-serde': 3.0.3
+ '@smithy/middleware-stack': 3.0.3
+ '@smithy/node-config-provider': 3.1.3
+ '@smithy/node-http-handler': 3.1.1
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/smithy-client': 3.1.5
+ '@smithy/types': 3.3.0
+ '@smithy/url-parser': 3.0.3
+ '@smithy/util-base64': 3.0.0
+ '@smithy/util-body-length-browser': 3.0.0
+ '@smithy/util-body-length-node': 3.0.0
+ '@smithy/util-defaults-mode-browser': 3.0.7
+ '@smithy/util-defaults-mode-node': 3.0.7
+ '@smithy/util-endpoints': 2.0.4
+ '@smithy/util-middleware': 3.0.3
+ '@smithy/util-retry': 3.0.3
+ '@smithy/util-utf8': 3.0.0
tslib: 2.6.2
transitivePeerDependencies:
+ - '@aws-sdk/client-sts'
- aws-crt
- '@aws-sdk/client-sts@3.410.0':
- dependencies:
- '@aws-crypto/sha256-browser': 3.0.0
- '@aws-crypto/sha256-js': 3.0.0
- '@aws-sdk/credential-provider-node': 3.410.0
- '@aws-sdk/middleware-host-header': 3.410.0
- '@aws-sdk/middleware-logger': 3.410.0
- '@aws-sdk/middleware-recursion-detection': 3.410.0
- '@aws-sdk/middleware-sdk-sts': 3.410.0
- '@aws-sdk/middleware-signing': 3.410.0
- '@aws-sdk/middleware-user-agent': 3.410.0
- '@aws-sdk/types': 3.410.0
- '@aws-sdk/util-endpoints': 3.410.0
- '@aws-sdk/util-user-agent-browser': 3.410.0
- '@aws-sdk/util-user-agent-node': 3.410.0
- '@smithy/config-resolver': 2.0.9
- '@smithy/fetch-http-handler': 2.1.4
- '@smithy/hash-node': 2.0.8
- '@smithy/invalid-dependency': 2.0.8
- '@smithy/middleware-content-length': 2.0.10
- '@smithy/middleware-endpoint': 2.0.8
- '@smithy/middleware-retry': 2.0.11
- '@smithy/middleware-serde': 2.0.8
- '@smithy/middleware-stack': 2.0.1
- '@smithy/node-config-provider': 2.0.11
- '@smithy/node-http-handler': 2.5.0
- '@smithy/protocol-http': 3.0.10
- '@smithy/smithy-client': 2.1.5
- '@smithy/types': 2.6.0
- '@smithy/url-parser': 2.0.8
- '@smithy/util-base64': 2.0.0
- '@smithy/util-body-length-browser': 2.0.0
- '@smithy/util-body-length-node': 2.1.0
- '@smithy/util-defaults-mode-browser': 2.0.9
- '@smithy/util-defaults-mode-node': 2.0.11
- '@smithy/util-retry': 2.0.1
- '@smithy/util-utf8': 2.0.0
- fast-xml-parser: 4.2.5
+ '@aws-sdk/client-sso@3.598.0':
+ dependencies:
+ '@aws-crypto/sha256-browser': 5.2.0
+ '@aws-crypto/sha256-js': 5.2.0
+ '@aws-sdk/core': 3.598.0
+ '@aws-sdk/middleware-host-header': 3.598.0
+ '@aws-sdk/middleware-logger': 3.598.0
+ '@aws-sdk/middleware-recursion-detection': 3.598.0
+ '@aws-sdk/middleware-user-agent': 3.598.0
+ '@aws-sdk/region-config-resolver': 3.598.0
+ '@aws-sdk/types': 3.598.0
+ '@aws-sdk/util-endpoints': 3.598.0
+ '@aws-sdk/util-user-agent-browser': 3.598.0
+ '@aws-sdk/util-user-agent-node': 3.598.0
+ '@smithy/config-resolver': 3.0.4
+ '@smithy/core': 2.2.4
+ '@smithy/fetch-http-handler': 3.2.0
+ '@smithy/hash-node': 3.0.3
+ '@smithy/invalid-dependency': 3.0.3
+ '@smithy/middleware-content-length': 3.0.3
+ '@smithy/middleware-endpoint': 3.0.4
+ '@smithy/middleware-retry': 3.0.7
+ '@smithy/middleware-serde': 3.0.3
+ '@smithy/middleware-stack': 3.0.3
+ '@smithy/node-config-provider': 3.1.3
+ '@smithy/node-http-handler': 3.1.1
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/smithy-client': 3.1.5
+ '@smithy/types': 3.3.0
+ '@smithy/url-parser': 3.0.3
+ '@smithy/util-base64': 3.0.0
+ '@smithy/util-body-length-browser': 3.0.0
+ '@smithy/util-body-length-node': 3.0.0
+ '@smithy/util-defaults-mode-browser': 3.0.7
+ '@smithy/util-defaults-mode-node': 3.0.7
+ '@smithy/util-endpoints': 2.0.4
+ '@smithy/util-middleware': 3.0.3
+ '@smithy/util-retry': 3.0.3
+ '@smithy/util-utf8': 3.0.0
+ tslib: 2.6.2
+ transitivePeerDependencies:
+ - aws-crt
+
+ '@aws-sdk/client-sts@3.600.0':
+ dependencies:
+ '@aws-crypto/sha256-browser': 5.2.0
+ '@aws-crypto/sha256-js': 5.2.0
+ '@aws-sdk/client-sso-oidc': 3.600.0(@aws-sdk/client-sts@3.600.0)
+ '@aws-sdk/core': 3.598.0
+ '@aws-sdk/credential-provider-node': 3.600.0(@aws-sdk/client-sso-oidc@3.600.0)(@aws-sdk/client-sts@3.600.0)
+ '@aws-sdk/middleware-host-header': 3.598.0
+ '@aws-sdk/middleware-logger': 3.598.0
+ '@aws-sdk/middleware-recursion-detection': 3.598.0
+ '@aws-sdk/middleware-user-agent': 3.598.0
+ '@aws-sdk/region-config-resolver': 3.598.0
+ '@aws-sdk/types': 3.598.0
+ '@aws-sdk/util-endpoints': 3.598.0
+ '@aws-sdk/util-user-agent-browser': 3.598.0
+ '@aws-sdk/util-user-agent-node': 3.598.0
+ '@smithy/config-resolver': 3.0.4
+ '@smithy/core': 2.2.4
+ '@smithy/fetch-http-handler': 3.2.0
+ '@smithy/hash-node': 3.0.3
+ '@smithy/invalid-dependency': 3.0.3
+ '@smithy/middleware-content-length': 3.0.3
+ '@smithy/middleware-endpoint': 3.0.4
+ '@smithy/middleware-retry': 3.0.7
+ '@smithy/middleware-serde': 3.0.3
+ '@smithy/middleware-stack': 3.0.3
+ '@smithy/node-config-provider': 3.1.3
+ '@smithy/node-http-handler': 3.1.1
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/smithy-client': 3.1.5
+ '@smithy/types': 3.3.0
+ '@smithy/url-parser': 3.0.3
+ '@smithy/util-base64': 3.0.0
+ '@smithy/util-body-length-browser': 3.0.0
+ '@smithy/util-body-length-node': 3.0.0
+ '@smithy/util-defaults-mode-browser': 3.0.7
+ '@smithy/util-defaults-mode-node': 3.0.7
+ '@smithy/util-endpoints': 2.0.4
+ '@smithy/util-middleware': 3.0.3
+ '@smithy/util-retry': 3.0.3
+ '@smithy/util-utf8': 3.0.0
tslib: 2.6.2
transitivePeerDependencies:
- aws-crt
- '@aws-sdk/credential-provider-env@3.410.0':
+ '@aws-sdk/core@3.598.0':
+ dependencies:
+ '@smithy/core': 2.2.4
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/signature-v4': 3.1.2
+ '@smithy/smithy-client': 3.1.5
+ '@smithy/types': 3.3.0
+ fast-xml-parser: 4.2.5
+ tslib: 2.6.2
+
+ '@aws-sdk/credential-provider-env@3.598.0':
+ dependencies:
+ '@aws-sdk/types': 3.598.0
+ '@smithy/property-provider': 3.1.3
+ '@smithy/types': 3.3.0
+ tslib: 2.6.2
+
+ '@aws-sdk/credential-provider-http@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@smithy/property-provider': 2.0.9
- '@smithy/types': 2.6.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/fetch-http-handler': 3.2.0
+ '@smithy/node-http-handler': 3.1.1
+ '@smithy/property-provider': 3.1.3
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/smithy-client': 3.1.5
+ '@smithy/types': 3.3.0
+ '@smithy/util-stream': 3.0.5
tslib: 2.6.2
- '@aws-sdk/credential-provider-ini@3.410.0':
- dependencies:
- '@aws-sdk/credential-provider-env': 3.410.0
- '@aws-sdk/credential-provider-process': 3.410.0
- '@aws-sdk/credential-provider-sso': 3.410.0
- '@aws-sdk/credential-provider-web-identity': 3.410.0
- '@aws-sdk/types': 3.410.0
- '@smithy/credential-provider-imds': 2.0.11
- '@smithy/property-provider': 2.0.9
- '@smithy/shared-ini-file-loader': 2.0.10
- '@smithy/types': 2.6.0
+ '@aws-sdk/credential-provider-ini@3.598.0(@aws-sdk/client-sso-oidc@3.600.0)(@aws-sdk/client-sts@3.600.0)':
+ dependencies:
+ '@aws-sdk/client-sts': 3.600.0
+ '@aws-sdk/credential-provider-env': 3.598.0
+ '@aws-sdk/credential-provider-http': 3.598.0
+ '@aws-sdk/credential-provider-process': 3.598.0
+ '@aws-sdk/credential-provider-sso': 3.598.0(@aws-sdk/client-sso-oidc@3.600.0)
+ '@aws-sdk/credential-provider-web-identity': 3.598.0(@aws-sdk/client-sts@3.600.0)
+ '@aws-sdk/types': 3.598.0
+ '@smithy/credential-provider-imds': 3.1.3
+ '@smithy/property-provider': 3.1.3
+ '@smithy/shared-ini-file-loader': 3.1.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
transitivePeerDependencies:
+ - '@aws-sdk/client-sso-oidc'
- aws-crt
- '@aws-sdk/credential-provider-node@3.410.0':
- dependencies:
- '@aws-sdk/credential-provider-env': 3.410.0
- '@aws-sdk/credential-provider-ini': 3.410.0
- '@aws-sdk/credential-provider-process': 3.410.0
- '@aws-sdk/credential-provider-sso': 3.410.0
- '@aws-sdk/credential-provider-web-identity': 3.410.0
- '@aws-sdk/types': 3.410.0
- '@smithy/credential-provider-imds': 2.0.11
- '@smithy/property-provider': 2.0.9
- '@smithy/shared-ini-file-loader': 2.0.10
- '@smithy/types': 2.6.0
+ '@aws-sdk/credential-provider-node@3.600.0(@aws-sdk/client-sso-oidc@3.600.0)(@aws-sdk/client-sts@3.600.0)':
+ dependencies:
+ '@aws-sdk/credential-provider-env': 3.598.0
+ '@aws-sdk/credential-provider-http': 3.598.0
+ '@aws-sdk/credential-provider-ini': 3.598.0(@aws-sdk/client-sso-oidc@3.600.0)(@aws-sdk/client-sts@3.600.0)
+ '@aws-sdk/credential-provider-process': 3.598.0
+ '@aws-sdk/credential-provider-sso': 3.598.0(@aws-sdk/client-sso-oidc@3.600.0)
+ '@aws-sdk/credential-provider-web-identity': 3.598.0(@aws-sdk/client-sts@3.600.0)
+ '@aws-sdk/types': 3.598.0
+ '@smithy/credential-provider-imds': 3.1.3
+ '@smithy/property-provider': 3.1.3
+ '@smithy/shared-ini-file-loader': 3.1.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
transitivePeerDependencies:
+ - '@aws-sdk/client-sso-oidc'
+ - '@aws-sdk/client-sts'
- aws-crt
- '@aws-sdk/credential-provider-process@3.410.0':
+ '@aws-sdk/credential-provider-process@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@smithy/property-provider': 2.0.9
- '@smithy/shared-ini-file-loader': 2.0.10
- '@smithy/types': 2.6.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/property-provider': 3.1.3
+ '@smithy/shared-ini-file-loader': 3.1.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@aws-sdk/credential-provider-sso@3.410.0':
+ '@aws-sdk/credential-provider-sso@3.598.0(@aws-sdk/client-sso-oidc@3.600.0)':
dependencies:
- '@aws-sdk/client-sso': 3.410.0
- '@aws-sdk/token-providers': 3.410.0
- '@aws-sdk/types': 3.410.0
- '@smithy/property-provider': 2.0.9
- '@smithy/shared-ini-file-loader': 2.0.10
- '@smithy/types': 2.6.0
+ '@aws-sdk/client-sso': 3.598.0
+ '@aws-sdk/token-providers': 3.598.0(@aws-sdk/client-sso-oidc@3.600.0)
+ '@aws-sdk/types': 3.598.0
+ '@smithy/property-provider': 3.1.3
+ '@smithy/shared-ini-file-loader': 3.1.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
transitivePeerDependencies:
+ - '@aws-sdk/client-sso-oidc'
- aws-crt
- '@aws-sdk/credential-provider-web-identity@3.410.0':
+ '@aws-sdk/credential-provider-web-identity@3.598.0(@aws-sdk/client-sts@3.600.0)':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@smithy/property-provider': 2.0.9
- '@smithy/types': 2.6.0
+ '@aws-sdk/client-sts': 3.600.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/property-provider': 3.1.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@aws-sdk/lib-storage@3.412.0(@aws-sdk/client-s3@3.412.0)':
+ '@aws-sdk/lib-storage@3.600.0(@aws-sdk/client-s3@3.600.0)':
dependencies:
- '@aws-sdk/client-s3': 3.412.0
- '@smithy/abort-controller': 2.0.14
- '@smithy/middleware-endpoint': 2.0.8
- '@smithy/smithy-client': 2.1.5
+ '@aws-sdk/client-s3': 3.600.0
+ '@smithy/abort-controller': 3.1.1
+ '@smithy/middleware-endpoint': 3.0.4
+ '@smithy/smithy-client': 3.1.5
buffer: 5.6.0
events: 3.3.0
stream-browserify: 3.0.0
tslib: 2.6.2
- '@aws-sdk/middleware-bucket-endpoint@3.410.0':
+ '@aws-sdk/middleware-bucket-endpoint@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@aws-sdk/util-arn-parser': 3.310.0
- '@smithy/node-config-provider': 2.0.11
- '@smithy/protocol-http': 3.0.10
- '@smithy/types': 2.6.0
- '@smithy/util-config-provider': 2.0.0
+ '@aws-sdk/types': 3.598.0
+ '@aws-sdk/util-arn-parser': 3.568.0
+ '@smithy/node-config-provider': 3.1.3
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/types': 3.3.0
+ '@smithy/util-config-provider': 3.0.0
tslib: 2.6.2
- '@aws-sdk/middleware-expect-continue@3.410.0':
+ '@aws-sdk/middleware-expect-continue@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@smithy/protocol-http': 3.0.10
- '@smithy/types': 2.6.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@aws-sdk/middleware-flexible-checksums@3.410.0':
+ '@aws-sdk/middleware-flexible-checksums@3.598.0':
dependencies:
- '@aws-crypto/crc32': 3.0.0
- '@aws-crypto/crc32c': 3.0.0
- '@aws-sdk/types': 3.410.0
- '@smithy/is-array-buffer': 2.0.0
- '@smithy/protocol-http': 3.0.10
- '@smithy/types': 2.6.0
- '@smithy/util-utf8': 2.0.0
+ '@aws-crypto/crc32': 5.2.0
+ '@aws-crypto/crc32c': 5.2.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/is-array-buffer': 3.0.0
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/types': 3.3.0
+ '@smithy/util-utf8': 3.0.0
tslib: 2.6.2
- '@aws-sdk/middleware-host-header@3.410.0':
+ '@aws-sdk/middleware-host-header@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@smithy/protocol-http': 3.0.10
- '@smithy/types': 2.6.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@aws-sdk/middleware-location-constraint@3.410.0':
+ '@aws-sdk/middleware-location-constraint@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@smithy/types': 2.6.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@aws-sdk/middleware-logger@3.410.0':
+ '@aws-sdk/middleware-logger@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@smithy/types': 2.6.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@aws-sdk/middleware-recursion-detection@3.410.0':
+ '@aws-sdk/middleware-recursion-detection@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@smithy/protocol-http': 3.0.10
- '@smithy/types': 2.6.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@aws-sdk/middleware-sdk-s3@3.410.0':
+ '@aws-sdk/middleware-sdk-s3@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@aws-sdk/util-arn-parser': 3.310.0
- '@smithy/protocol-http': 3.0.10
- '@smithy/types': 2.6.0
+ '@aws-sdk/types': 3.598.0
+ '@aws-sdk/util-arn-parser': 3.568.0
+ '@smithy/node-config-provider': 3.1.3
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/signature-v4': 3.1.2
+ '@smithy/smithy-client': 3.1.5
+ '@smithy/types': 3.3.0
+ '@smithy/util-config-provider': 3.0.0
tslib: 2.6.2
- '@aws-sdk/middleware-sdk-sts@3.410.0':
+ '@aws-sdk/middleware-signing@3.598.0':
dependencies:
- '@aws-sdk/middleware-signing': 3.410.0
- '@aws-sdk/types': 3.410.0
- '@smithy/types': 2.6.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/property-provider': 3.1.3
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/signature-v4': 3.1.2
+ '@smithy/types': 3.3.0
+ '@smithy/util-middleware': 3.0.3
tslib: 2.6.2
- '@aws-sdk/middleware-signing@3.410.0':
+ '@aws-sdk/middleware-ssec@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@smithy/property-provider': 2.0.9
- '@smithy/protocol-http': 3.0.10
- '@smithy/signature-v4': 2.0.5
- '@smithy/types': 2.6.0
- '@smithy/util-middleware': 2.0.1
+ '@aws-sdk/types': 3.598.0
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@aws-sdk/middleware-ssec@3.410.0':
+ '@aws-sdk/middleware-user-agent@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@smithy/types': 2.6.0
+ '@aws-sdk/types': 3.598.0
+ '@aws-sdk/util-endpoints': 3.598.0
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@aws-sdk/middleware-user-agent@3.410.0':
+ '@aws-sdk/region-config-resolver@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@aws-sdk/util-endpoints': 3.410.0
- '@smithy/protocol-http': 3.0.10
- '@smithy/types': 2.6.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/node-config-provider': 3.1.3
+ '@smithy/types': 3.3.0
+ '@smithy/util-config-provider': 3.0.0
+ '@smithy/util-middleware': 3.0.3
tslib: 2.6.2
- '@aws-sdk/signature-v4-multi-region@3.412.0':
+ '@aws-sdk/signature-v4-multi-region@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@smithy/protocol-http': 3.0.10
- '@smithy/signature-v4': 2.0.5
- '@smithy/types': 2.6.0
+ '@aws-sdk/middleware-sdk-s3': 3.598.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/signature-v4': 3.1.2
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@aws-sdk/token-providers@3.410.0':
- dependencies:
- '@aws-crypto/sha256-browser': 3.0.0
- '@aws-crypto/sha256-js': 3.0.0
- '@aws-sdk/middleware-host-header': 3.410.0
- '@aws-sdk/middleware-logger': 3.410.0
- '@aws-sdk/middleware-recursion-detection': 3.410.0
- '@aws-sdk/middleware-user-agent': 3.410.0
- '@aws-sdk/types': 3.410.0
- '@aws-sdk/util-endpoints': 3.410.0
- '@aws-sdk/util-user-agent-browser': 3.410.0
- '@aws-sdk/util-user-agent-node': 3.410.0
- '@smithy/config-resolver': 2.0.9
- '@smithy/fetch-http-handler': 2.1.4
- '@smithy/hash-node': 2.0.8
- '@smithy/invalid-dependency': 2.0.8
- '@smithy/middleware-content-length': 2.0.10
- '@smithy/middleware-endpoint': 2.0.8
- '@smithy/middleware-retry': 2.0.11
- '@smithy/middleware-serde': 2.0.8
- '@smithy/middleware-stack': 2.0.1
- '@smithy/node-config-provider': 2.0.11
- '@smithy/node-http-handler': 2.5.0
- '@smithy/property-provider': 2.0.9
- '@smithy/protocol-http': 3.0.10
- '@smithy/shared-ini-file-loader': 2.0.10
- '@smithy/smithy-client': 2.1.5
- '@smithy/types': 2.6.0
- '@smithy/url-parser': 2.0.8
- '@smithy/util-base64': 2.0.0
- '@smithy/util-body-length-browser': 2.0.0
- '@smithy/util-body-length-node': 2.1.0
- '@smithy/util-defaults-mode-browser': 2.0.9
- '@smithy/util-defaults-mode-node': 2.0.11
- '@smithy/util-retry': 2.0.1
- '@smithy/util-utf8': 2.0.0
- tslib: 2.6.2
- transitivePeerDependencies:
- - aws-crt
-
- '@aws-sdk/types@3.410.0':
+ '@aws-sdk/token-providers@3.598.0(@aws-sdk/client-sso-oidc@3.600.0)':
dependencies:
- '@smithy/types': 2.6.0
+ '@aws-sdk/client-sso-oidc': 3.600.0(@aws-sdk/client-sts@3.600.0)
+ '@aws-sdk/types': 3.598.0
+ '@smithy/property-provider': 3.1.3
+ '@smithy/shared-ini-file-loader': 3.1.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@aws-sdk/types@3.413.0':
+ '@aws-sdk/types@3.598.0':
dependencies:
- '@smithy/types': 2.6.0
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@aws-sdk/util-arn-parser@3.310.0':
+ '@aws-sdk/util-arn-parser@3.568.0':
dependencies:
tslib: 2.6.2
- '@aws-sdk/util-endpoints@3.410.0':
+ '@aws-sdk/util-endpoints@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/types': 3.3.0
+ '@smithy/util-endpoints': 2.0.4
tslib: 2.6.2
'@aws-sdk/util-locate-window@3.208.0':
dependencies:
tslib: 2.6.2
- '@aws-sdk/util-user-agent-browser@3.410.0':
+ '@aws-sdk/util-user-agent-browser@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@smithy/types': 2.6.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/types': 3.3.0
bowser: 2.11.0
tslib: 2.6.2
- '@aws-sdk/util-user-agent-node@3.410.0':
- dependencies:
- '@aws-sdk/types': 3.410.0
- '@smithy/node-config-provider': 2.0.11
- '@smithy/types': 2.6.0
- tslib: 2.6.2
-
- '@aws-sdk/util-utf8-browser@3.259.0':
+ '@aws-sdk/util-user-agent-node@3.598.0':
dependencies:
+ '@aws-sdk/types': 3.598.0
+ '@smithy/node-config-provider': 3.1.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@aws-sdk/xml-builder@3.310.0':
+ '@aws-sdk/xml-builder@3.598.0':
dependencies:
+ '@smithy/types': 3.3.0
tslib: 2.6.2
'@babel/code-frame@7.23.5':
@@ -11908,8 +12537,15 @@ snapshots:
'@babel/highlight': 7.23.4
chalk: 2.4.2
+ '@babel/code-frame@7.24.7':
+ dependencies:
+ '@babel/highlight': 7.24.7
+ picocolors: 1.0.0
+
'@babel/compat-data@7.23.5': {}
+ '@babel/compat-data@7.24.7': {}
+
'@babel/core@7.23.5':
dependencies:
'@ampproject/remapping': 2.2.1
@@ -11923,27 +12559,27 @@ snapshots:
'@babel/traverse': 7.23.5
'@babel/types': 7.23.5
convert-source-map: 2.0.0
- debug: 4.3.4(supports-color@5.5.0)
+ debug: 4.3.5(supports-color@8.1.1)
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- '@babel/core@7.24.0':
+ '@babel/core@7.24.7':
dependencies:
'@ampproject/remapping': 2.2.1
- '@babel/code-frame': 7.23.5
- '@babel/generator': 7.23.6
- '@babel/helper-compilation-targets': 7.23.6
- '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0)
- '@babel/helpers': 7.24.0
- '@babel/parser': 7.24.0
- '@babel/template': 7.24.0
- '@babel/traverse': 7.24.0
- '@babel/types': 7.24.0
+ '@babel/code-frame': 7.24.7
+ '@babel/generator': 7.24.7
+ '@babel/helper-compilation-targets': 7.24.7
+ '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7)
+ '@babel/helpers': 7.24.7
+ '@babel/parser': 7.24.7
+ '@babel/template': 7.24.7
+ '@babel/traverse': 7.24.7
+ '@babel/types': 7.24.7
convert-source-map: 2.0.0
- debug: 4.3.4(supports-color@5.5.0)
+ debug: 4.3.5(supports-color@8.1.1)
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
@@ -11957,20 +12593,23 @@ snapshots:
'@jridgewell/trace-mapping': 0.3.18
jsesc: 2.5.2
- '@babel/generator@7.23.6':
+ '@babel/generator@7.24.7':
dependencies:
- '@babel/types': 7.24.0
- '@jridgewell/gen-mapping': 0.3.2
- '@jridgewell/trace-mapping': 0.3.18
+ '@babel/types': 7.24.7
+ '@jridgewell/gen-mapping': 0.3.5
+ '@jridgewell/trace-mapping': 0.3.25
jsesc: 2.5.2
- '@babel/helper-annotate-as-pure@7.22.5':
+ '@babel/helper-annotate-as-pure@7.24.7':
dependencies:
- '@babel/types': 7.24.0
+ '@babel/types': 7.24.7
- '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15':
+ '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7':
dependencies:
- '@babel/types': 7.24.0
+ '@babel/traverse': 7.24.7
+ '@babel/types': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
'@babel/helper-compilation-targets@7.22.15':
dependencies:
@@ -11980,40 +12619,42 @@ snapshots:
lru-cache: 5.1.1
semver: 6.3.1
- '@babel/helper-compilation-targets@7.23.6':
+ '@babel/helper-compilation-targets@7.24.7':
dependencies:
- '@babel/compat-data': 7.23.5
- '@babel/helper-validator-option': 7.23.5
+ '@babel/compat-data': 7.24.7
+ '@babel/helper-validator-option': 7.24.7
browserslist: 4.23.0
lru-cache: 5.1.1
semver: 6.3.1
- '@babel/helper-create-class-features-plugin@7.23.5(@babel/core@7.24.0)':
- dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-annotate-as-pure': 7.22.5
- '@babel/helper-environment-visitor': 7.22.20
- '@babel/helper-function-name': 7.23.0
- '@babel/helper-member-expression-to-functions': 7.23.0
- '@babel/helper-optimise-call-expression': 7.22.5
- '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.0)
- '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
- '@babel/helper-split-export-declaration': 7.22.6
+ '@babel/helper-create-class-features-plugin@7.24.7(@babel/core@7.24.7)':
+ dependencies:
+ '@babel/core': 7.24.7
+ '@babel/helper-annotate-as-pure': 7.24.7
+ '@babel/helper-environment-visitor': 7.24.7
+ '@babel/helper-function-name': 7.24.7
+ '@babel/helper-member-expression-to-functions': 7.24.7
+ '@babel/helper-optimise-call-expression': 7.24.7
+ '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-skip-transparent-expression-wrappers': 7.24.7
+ '@babel/helper-split-export-declaration': 7.24.7
semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
- '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.0)':
+ '@babel/helper-create-regexp-features-plugin@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-annotate-as-pure': 7.24.7
regexpu-core: 5.3.2
semver: 6.3.1
- '@babel/helper-define-polyfill-provider@0.4.3(@babel/core@7.24.0)':
+ '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-compilation-targets': 7.23.6
- '@babel/helper-plugin-utils': 7.22.5
- debug: 4.3.4(supports-color@5.5.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-compilation-targets': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ debug: 4.3.5(supports-color@8.1.1)
lodash.debounce: 4.0.8
resolve: 1.22.8
transitivePeerDependencies:
@@ -12021,23 +12662,46 @@ snapshots:
'@babel/helper-environment-visitor@7.22.20': {}
+ '@babel/helper-environment-visitor@7.24.7':
+ dependencies:
+ '@babel/types': 7.24.7
+
'@babel/helper-function-name@7.23.0':
dependencies:
- '@babel/template': 7.24.0
- '@babel/types': 7.24.0
+ '@babel/template': 7.24.7
+ '@babel/types': 7.24.7
+
+ '@babel/helper-function-name@7.24.7':
+ dependencies:
+ '@babel/template': 7.24.7
+ '@babel/types': 7.24.7
'@babel/helper-hoist-variables@7.22.5':
dependencies:
- '@babel/types': 7.24.0
+ '@babel/types': 7.24.7
- '@babel/helper-member-expression-to-functions@7.23.0':
+ '@babel/helper-hoist-variables@7.24.7':
dependencies:
- '@babel/types': 7.24.0
+ '@babel/types': 7.24.7
+
+ '@babel/helper-member-expression-to-functions@7.24.7':
+ dependencies:
+ '@babel/traverse': 7.24.7
+ '@babel/types': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
'@babel/helper-module-imports@7.22.15':
dependencies:
'@babel/types': 7.23.5
+ '@babel/helper-module-imports@7.24.7':
+ dependencies:
+ '@babel/traverse': 7.24.7
+ '@babel/types': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/helper-module-transforms@7.23.3(@babel/core@7.23.5)':
dependencies:
'@babel/core': 7.23.5
@@ -12047,58 +12711,89 @@ snapshots:
'@babel/helper-split-export-declaration': 7.22.6
'@babel/helper-validator-identifier': 7.22.20
- '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.0)':
+ '@babel/helper-module-transforms@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-environment-visitor': 7.22.20
- '@babel/helper-module-imports': 7.22.15
- '@babel/helper-simple-access': 7.22.5
- '@babel/helper-split-export-declaration': 7.22.6
- '@babel/helper-validator-identifier': 7.22.20
+ '@babel/core': 7.24.7
+ '@babel/helper-environment-visitor': 7.24.7
+ '@babel/helper-module-imports': 7.24.7
+ '@babel/helper-simple-access': 7.24.7
+ '@babel/helper-split-export-declaration': 7.24.7
+ '@babel/helper-validator-identifier': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
- '@babel/helper-optimise-call-expression@7.22.5':
+ '@babel/helper-optimise-call-expression@7.24.7':
dependencies:
- '@babel/types': 7.24.0
+ '@babel/types': 7.24.7
'@babel/helper-plugin-utils@7.22.5': {}
- '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.0)':
- dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-annotate-as-pure': 7.22.5
- '@babel/helper-environment-visitor': 7.22.20
- '@babel/helper-wrap-function': 7.22.20
+ '@babel/helper-plugin-utils@7.24.7': {}
- '@babel/helper-replace-supers@7.22.20(@babel/core@7.24.0)':
+ '@babel/helper-remap-async-to-generator@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-environment-visitor': 7.22.20
- '@babel/helper-member-expression-to-functions': 7.23.0
- '@babel/helper-optimise-call-expression': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-annotate-as-pure': 7.24.7
+ '@babel/helper-environment-visitor': 7.24.7
+ '@babel/helper-wrap-function': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-replace-supers@7.24.7(@babel/core@7.24.7)':
+ dependencies:
+ '@babel/core': 7.24.7
+ '@babel/helper-environment-visitor': 7.24.7
+ '@babel/helper-member-expression-to-functions': 7.24.7
+ '@babel/helper-optimise-call-expression': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
'@babel/helper-simple-access@7.22.5':
dependencies:
'@babel/types': 7.23.5
- '@babel/helper-skip-transparent-expression-wrappers@7.22.5':
+ '@babel/helper-simple-access@7.24.7':
dependencies:
- '@babel/types': 7.24.0
+ '@babel/traverse': 7.24.7
+ '@babel/types': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-skip-transparent-expression-wrappers@7.24.7':
+ dependencies:
+ '@babel/traverse': 7.24.7
+ '@babel/types': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
'@babel/helper-split-export-declaration@7.22.6':
dependencies:
'@babel/types': 7.23.5
+ '@babel/helper-split-export-declaration@7.24.7':
+ dependencies:
+ '@babel/types': 7.24.7
+
'@babel/helper-string-parser@7.23.4': {}
+ '@babel/helper-string-parser@7.24.7': {}
+
'@babel/helper-validator-identifier@7.22.20': {}
+ '@babel/helper-validator-identifier@7.24.7': {}
+
'@babel/helper-validator-option@7.23.5': {}
- '@babel/helper-wrap-function@7.22.20':
+ '@babel/helper-validator-option@7.24.7': {}
+
+ '@babel/helper-wrap-function@7.24.7':
dependencies:
- '@babel/helper-function-name': 7.23.0
- '@babel/template': 7.24.0
- '@babel/types': 7.24.0
+ '@babel/helper-function-name': 7.24.7
+ '@babel/template': 7.24.7
+ '@babel/traverse': 7.24.7
+ '@babel/types': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
'@babel/helpers@7.23.5':
dependencies:
@@ -12108,13 +12803,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/helpers@7.24.0':
+ '@babel/helpers@7.24.7':
dependencies:
- '@babel/template': 7.24.0
- '@babel/traverse': 7.24.0
- '@babel/types': 7.24.0
- transitivePeerDependencies:
- - supports-color
+ '@babel/template': 7.24.7
+ '@babel/types': 7.24.7
'@babel/highlight@7.23.4':
dependencies:
@@ -12122,48 +12814,63 @@ snapshots:
chalk: 2.4.2
js-tokens: 4.0.0
+ '@babel/highlight@7.24.7':
+ dependencies:
+ '@babel/helper-validator-identifier': 7.24.7
+ chalk: 2.4.2
+ js-tokens: 4.0.0
+ picocolors: 1.0.0
+
'@babel/parser@7.23.9':
dependencies:
'@babel/types': 7.23.5
- '@babel/parser@7.24.0':
+ '@babel/parser@7.24.5':
dependencies:
'@babel/types': 7.24.0
- '@babel/parser@7.24.5':
+ '@babel/parser@7.24.7':
dependencies:
- '@babel/types': 7.24.0
+ '@babel/types': 7.24.7
- '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-environment-visitor': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
- '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-environment-visitor': 7.22.20
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/helper-skip-transparent-expression-wrappers': 7.24.7
+ '@babel/plugin-transform-optional-chaining': 7.24.7(@babel/core@7.24.7)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.7(@babel/core@7.24.7)':
+ dependencies:
+ '@babel/core': 7.24.7
+ '@babel/helper-environment-visitor': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.0)':
+ '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.5)':
dependencies:
'@babel/core': 7.23.5
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.22.5
'@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.5)':
@@ -12176,49 +12883,49 @@ snapshots:
'@babel/core': 7.23.5
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-syntax-flow@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-flow@7.23.3(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.5)':
dependencies:
'@babel/core': 7.23.5
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.22.5
'@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.5)':
@@ -12226,9 +12933,9 @@ snapshots:
'@babel/core': 7.23.5
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.22.5
'@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.5)':
@@ -12236,9 +12943,9 @@ snapshots:
'@babel/core': 7.23.5
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.22.5
'@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.5)':
@@ -12246,9 +12953,9 @@ snapshots:
'@babel/core': 7.23.5
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.22.5
'@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.5)':
@@ -12256,9 +12963,9 @@ snapshots:
'@babel/core': 7.23.5
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.22.5
'@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.5)':
@@ -12266,9 +12973,9 @@ snapshots:
'@babel/core': 7.23.5
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.22.5
'@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.5)':
@@ -12276,9 +12983,9 @@ snapshots:
'@babel/core': 7.23.5
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.22.5
'@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.5)':
@@ -12286,9 +12993,9 @@ snapshots:
'@babel/core': 7.23.5
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.22.5
'@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.5)':
@@ -12296,24 +13003,24 @@ snapshots:
'@babel/core': 7.23.5
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.5)':
dependencies:
'@babel/core': 7.23.5
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.22.5
'@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.5)':
@@ -12321,435 +13028,471 @@ snapshots:
'@babel/core': 7.23.5
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-async-generator-functions@7.23.4(@babel/core@7.24.0)':
+ '@babel/plugin-transform-async-generator-functions@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-environment-visitor': 7.22.20
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.0)
- '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-environment-visitor': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.7)
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-module-imports': 7.22.15
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-module-imports': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.7)
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.24.0)':
+ '@babel/plugin-transform-block-scoping@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-class-properties@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.24.0)':
+ '@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.7)
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-classes@7.23.5(@babel/core@7.24.0)':
+ '@babel/plugin-transform-classes@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-annotate-as-pure': 7.22.5
- '@babel/helper-compilation-targets': 7.23.6
- '@babel/helper-environment-visitor': 7.22.20
- '@babel/helper-function-name': 7.23.0
- '@babel/helper-optimise-call-expression': 7.22.5
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.0)
- '@babel/helper-split-export-declaration': 7.22.6
+ '@babel/core': 7.24.7
+ '@babel/helper-annotate-as-pure': 7.24.7
+ '@babel/helper-compilation-targets': 7.24.7
+ '@babel/helper-environment-visitor': 7.24.7
+ '@babel/helper-function-name': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-split-export-declaration': 7.24.7
globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/template': 7.24.0
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/template': 7.24.7
- '@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-destructuring@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.24.0)':
+ '@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.7)
- '@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.24.0)':
+ '@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.7)
- '@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.24.7)
- '@babel/plugin-transform-for-of@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/helper-skip-transparent-expression-wrappers': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-function-name@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-function-name@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-compilation-targets': 7.23.6
- '@babel/helper-function-name': 7.23.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-compilation-targets': 7.24.7
+ '@babel/helper-function-name': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.24.0)':
+ '@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.7)
- '@babel/plugin-transform-literals@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-literals@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.24.0)':
+ '@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.7)
- '@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-modules-commonjs@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-simple-access': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/helper-simple-access': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-modules-systemjs@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-hoist-variables': 7.22.5
- '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-validator-identifier': 7.22.20
+ '@babel/core': 7.24.7
+ '@babel/helper-hoist-variables': 7.24.7
+ '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/helper-validator-identifier': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.0)':
+ '@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-new-target@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-new-target@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.24.0)':
+ '@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7)
- '@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.24.0)':
+ '@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.7)
- '@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.24.0)':
+ '@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/compat-data': 7.23.5
- '@babel/core': 7.24.0
- '@babel/helper-compilation-targets': 7.23.6
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.0)
- '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-compilation-targets': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7)
+ '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.7)
- '@babel/plugin-transform-object-super@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7)
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.24.0)':
+ '@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.7)
- '@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.24.0)':
+ '@babel/plugin-transform-optional-chaining@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/helper-skip-transparent-expression-wrappers': 7.24.7
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7)
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-parameters@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-private-methods@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.24.0)':
+ '@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-annotate-as-pure': 7.22.5
- '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-annotate-as-pure': 7.24.7
+ '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.7)
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
regenerator-transform: 0.15.2
- '@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.24.0)':
- dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
-
- '@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.24.0)':
- dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
-
- '@babel/plugin-transform-spread@7.23.3(@babel/core@7.24.0)':
- dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
-
- '@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.24.0)':
- dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
-
- '@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-typescript@7.23.5(@babel/core@7.24.0)':
+ '@babel/plugin-transform-spread@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-annotate-as-pure': 7.22.5
- '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/helper-skip-transparent-expression-wrappers': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-typeof-symbol@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-typescript@7.23.5(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-annotate-as-pure': 7.24.7
+ '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.24.7)
+ transitivePeerDependencies:
+ - supports-color
- '@babel/preset-env@7.23.5(@babel/core@7.24.0)':
- dependencies:
- '@babel/compat-data': 7.23.5
- '@babel/core': 7.24.0
- '@babel/helper-compilation-targets': 7.23.6
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-validator-option': 7.23.5
- '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.0)
- '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.0)
- '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.0)
- '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.0)
- '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.0)
- '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.0)
- '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.0)
- '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.0)
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.0)
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0)
- '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.0)
- '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.0)
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.0)
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0)
- '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.0)
- '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.0)
- '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.0)
- '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-async-generator-functions': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.24.0)
- '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-for-of': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.0)
- '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.24.0)
- '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.0)
- babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.24.0)
- babel-plugin-polyfill-corejs3: 0.8.6(@babel/core@7.24.0)
- babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.24.0)
- core-js-compat: 3.33.3
+ '@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.24.7)':
+ dependencies:
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+
+ '@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.24.7)':
+ dependencies:
+ '@babel/core': 7.24.7
+ '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
+
+ '@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.24.7)':
+ dependencies:
+ '@babel/core': 7.24.7
+ '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
+
+ '@babel/plugin-transform-unicode-sets-regex@7.24.7(@babel/core@7.24.7)':
+ dependencies:
+ '@babel/core': 7.24.7
+ '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
+
+ '@babel/preset-env@7.24.7(@babel/core@7.24.7)':
+ dependencies:
+ '@babel/compat-data': 7.24.7
+ '@babel/core': 7.24.7
+ '@babel/helper-compilation-targets': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/helper-validator-option': 7.24.7
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.7)
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.7)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.7)
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.7)
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.7)
+ '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.7)
+ '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.7)
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.7)
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.7)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.7)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.7)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7)
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.7)
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.7)
+ '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.7)
+ '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-async-generator-functions': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-block-scoping': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-classes': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-destructuring': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-function-name': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-literals': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-modules-commonjs': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-modules-systemjs': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-optional-chaining': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-typeof-symbol': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-unicode-sets-regex': 7.24.7(@babel/core@7.24.7)
+ '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.7)
+ babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.7)
+ babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.7)
+ babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.7)
+ core-js-compat: 3.37.1
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- '@babel/preset-flow@7.23.3(@babel/core@7.24.0)':
+ '@babel/preset-flow@7.23.3(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-validator-option': 7.23.5
- '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/helper-validator-option': 7.24.7
+ '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.24.7)
- '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.0)':
+ '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/types': 7.24.0
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/types': 7.24.7
esutils: 2.0.3
- '@babel/preset-typescript@7.23.3(@babel/core@7.24.0)':
+ '@babel/preset-typescript@7.23.3(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-validator-option': 7.23.5
- '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-typescript': 7.23.5(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/helper-validator-option': 7.24.7
+ '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.7)
+ '@babel/plugin-transform-modules-commonjs': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-typescript': 7.23.5(@babel/core@7.24.7)
+ transitivePeerDependencies:
+ - supports-color
- '@babel/register@7.22.15(@babel/core@7.24.0)':
+ '@babel/register@7.22.15(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
clone-deep: 4.0.1
find-cache-dir: 2.1.0
make-dir: 2.1.0
@@ -12770,9 +13513,15 @@ snapshots:
'@babel/template@7.24.0':
dependencies:
- '@babel/code-frame': 7.23.5
- '@babel/parser': 7.24.0
- '@babel/types': 7.24.0
+ '@babel/code-frame': 7.24.7
+ '@babel/parser': 7.24.7
+ '@babel/types': 7.24.7
+
+ '@babel/template@7.24.7':
+ dependencies:
+ '@babel/code-frame': 7.24.7
+ '@babel/parser': 7.24.7
+ '@babel/types': 7.24.7
'@babel/traverse@7.23.5':
dependencies:
@@ -12784,22 +13533,22 @@ snapshots:
'@babel/helper-split-export-declaration': 7.22.6
'@babel/parser': 7.23.9
'@babel/types': 7.23.5
- debug: 4.3.4(supports-color@5.5.0)
+ debug: 4.3.5(supports-color@8.1.1)
globals: 11.12.0
transitivePeerDependencies:
- supports-color
- '@babel/traverse@7.24.0':
- dependencies:
- '@babel/code-frame': 7.23.5
- '@babel/generator': 7.23.6
- '@babel/helper-environment-visitor': 7.22.20
- '@babel/helper-function-name': 7.23.0
- '@babel/helper-hoist-variables': 7.22.5
- '@babel/helper-split-export-declaration': 7.22.6
- '@babel/parser': 7.24.0
- '@babel/types': 7.24.0
- debug: 4.3.4(supports-color@5.5.0)
+ '@babel/traverse@7.24.7':
+ dependencies:
+ '@babel/code-frame': 7.24.7
+ '@babel/generator': 7.24.7
+ '@babel/helper-environment-visitor': 7.24.7
+ '@babel/helper-function-name': 7.24.7
+ '@babel/helper-hoist-variables': 7.24.7
+ '@babel/helper-split-export-declaration': 7.24.7
+ '@babel/parser': 7.24.7
+ '@babel/types': 7.24.7
+ debug: 4.3.5(supports-color@8.1.1)
globals: 11.12.0
transitivePeerDependencies:
- supports-color
@@ -12816,26 +13565,32 @@ snapshots:
'@babel/helper-validator-identifier': 7.22.20
to-fast-properties: 2.0.0
+ '@babel/types@7.24.7':
+ dependencies:
+ '@babel/helper-string-parser': 7.24.7
+ '@babel/helper-validator-identifier': 7.24.7
+ to-fast-properties: 2.0.0
+
'@base2/pretty-print-object@1.0.1': {}
'@bcoe/v8-coverage@0.2.3': {}
- '@bull-board/api@5.17.0(@bull-board/ui@5.17.0)':
+ '@bull-board/api@5.20.5(@bull-board/ui@5.20.5)':
dependencies:
- '@bull-board/ui': 5.17.0
+ '@bull-board/ui': 5.20.5
redis-info: 3.1.0
- '@bull-board/fastify@5.17.0':
+ '@bull-board/fastify@5.20.5':
dependencies:
- '@bull-board/api': 5.17.0(@bull-board/ui@5.17.0)
- '@bull-board/ui': 5.17.0
+ '@bull-board/api': 5.20.5(@bull-board/ui@5.20.5)
+ '@bull-board/ui': 5.20.5
'@fastify/static': 6.12.0
'@fastify/view': 8.2.0
- ejs: 3.1.9
+ ejs: 3.1.10
- '@bull-board/ui@5.17.0':
+ '@bull-board/ui@5.20.5':
dependencies:
- '@bull-board/api': 5.17.0(@bull-board/ui@5.17.0)
+ '@bull-board/api': 5.20.5(@bull-board/ui@5.20.5)
'@bundled-es-modules/cookie@2.0.0':
dependencies:
@@ -12933,7 +13688,7 @@ snapshots:
performance-now: 2.1.0
qs: 6.10.4
safe-buffer: 5.2.1
- tough-cookie: 4.1.3
+ tough-cookie: 4.1.4
tunnel-agent: 0.6.0
uuid: 8.3.2
@@ -12973,7 +13728,10 @@ snapshots:
'@esbuild/aix-ppc64@0.19.11':
optional: true
- '@esbuild/aix-ppc64@0.20.2':
+ '@esbuild/aix-ppc64@0.21.5':
+ optional: true
+
+ '@esbuild/aix-ppc64@0.22.0':
optional: true
'@esbuild/android-arm64@0.18.20':
@@ -12982,7 +13740,10 @@ snapshots:
'@esbuild/android-arm64@0.19.11':
optional: true
- '@esbuild/android-arm64@0.20.2':
+ '@esbuild/android-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/android-arm64@0.22.0':
optional: true
'@esbuild/android-arm@0.18.20':
@@ -12991,7 +13752,10 @@ snapshots:
'@esbuild/android-arm@0.19.11':
optional: true
- '@esbuild/android-arm@0.20.2':
+ '@esbuild/android-arm@0.21.5':
+ optional: true
+
+ '@esbuild/android-arm@0.22.0':
optional: true
'@esbuild/android-x64@0.18.20':
@@ -13000,7 +13764,10 @@ snapshots:
'@esbuild/android-x64@0.19.11':
optional: true
- '@esbuild/android-x64@0.20.2':
+ '@esbuild/android-x64@0.21.5':
+ optional: true
+
+ '@esbuild/android-x64@0.22.0':
optional: true
'@esbuild/darwin-arm64@0.18.20':
@@ -13009,7 +13776,10 @@ snapshots:
'@esbuild/darwin-arm64@0.19.11':
optional: true
- '@esbuild/darwin-arm64@0.20.2':
+ '@esbuild/darwin-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/darwin-arm64@0.22.0':
optional: true
'@esbuild/darwin-x64@0.18.20':
@@ -13018,7 +13788,10 @@ snapshots:
'@esbuild/darwin-x64@0.19.11':
optional: true
- '@esbuild/darwin-x64@0.20.2':
+ '@esbuild/darwin-x64@0.21.5':
+ optional: true
+
+ '@esbuild/darwin-x64@0.22.0':
optional: true
'@esbuild/freebsd-arm64@0.18.20':
@@ -13027,7 +13800,10 @@ snapshots:
'@esbuild/freebsd-arm64@0.19.11':
optional: true
- '@esbuild/freebsd-arm64@0.20.2':
+ '@esbuild/freebsd-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/freebsd-arm64@0.22.0':
optional: true
'@esbuild/freebsd-x64@0.18.20':
@@ -13036,7 +13812,10 @@ snapshots:
'@esbuild/freebsd-x64@0.19.11':
optional: true
- '@esbuild/freebsd-x64@0.20.2':
+ '@esbuild/freebsd-x64@0.21.5':
+ optional: true
+
+ '@esbuild/freebsd-x64@0.22.0':
optional: true
'@esbuild/linux-arm64@0.18.20':
@@ -13045,7 +13824,10 @@ snapshots:
'@esbuild/linux-arm64@0.19.11':
optional: true
- '@esbuild/linux-arm64@0.20.2':
+ '@esbuild/linux-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-arm64@0.22.0':
optional: true
'@esbuild/linux-arm@0.18.20':
@@ -13054,7 +13836,10 @@ snapshots:
'@esbuild/linux-arm@0.19.11':
optional: true
- '@esbuild/linux-arm@0.20.2':
+ '@esbuild/linux-arm@0.21.5':
+ optional: true
+
+ '@esbuild/linux-arm@0.22.0':
optional: true
'@esbuild/linux-ia32@0.18.20':
@@ -13063,7 +13848,10 @@ snapshots:
'@esbuild/linux-ia32@0.19.11':
optional: true
- '@esbuild/linux-ia32@0.20.2':
+ '@esbuild/linux-ia32@0.21.5':
+ optional: true
+
+ '@esbuild/linux-ia32@0.22.0':
optional: true
'@esbuild/linux-loong64@0.18.20':
@@ -13072,7 +13860,10 @@ snapshots:
'@esbuild/linux-loong64@0.19.11':
optional: true
- '@esbuild/linux-loong64@0.20.2':
+ '@esbuild/linux-loong64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-loong64@0.22.0':
optional: true
'@esbuild/linux-mips64el@0.18.20':
@@ -13081,7 +13872,10 @@ snapshots:
'@esbuild/linux-mips64el@0.19.11':
optional: true
- '@esbuild/linux-mips64el@0.20.2':
+ '@esbuild/linux-mips64el@0.21.5':
+ optional: true
+
+ '@esbuild/linux-mips64el@0.22.0':
optional: true
'@esbuild/linux-ppc64@0.18.20':
@@ -13090,7 +13884,10 @@ snapshots:
'@esbuild/linux-ppc64@0.19.11':
optional: true
- '@esbuild/linux-ppc64@0.20.2':
+ '@esbuild/linux-ppc64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-ppc64@0.22.0':
optional: true
'@esbuild/linux-riscv64@0.18.20':
@@ -13099,7 +13896,10 @@ snapshots:
'@esbuild/linux-riscv64@0.19.11':
optional: true
- '@esbuild/linux-riscv64@0.20.2':
+ '@esbuild/linux-riscv64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-riscv64@0.22.0':
optional: true
'@esbuild/linux-s390x@0.18.20':
@@ -13108,7 +13908,10 @@ snapshots:
'@esbuild/linux-s390x@0.19.11':
optional: true
- '@esbuild/linux-s390x@0.20.2':
+ '@esbuild/linux-s390x@0.21.5':
+ optional: true
+
+ '@esbuild/linux-s390x@0.22.0':
optional: true
'@esbuild/linux-x64@0.18.20':
@@ -13117,7 +13920,10 @@ snapshots:
'@esbuild/linux-x64@0.19.11':
optional: true
- '@esbuild/linux-x64@0.20.2':
+ '@esbuild/linux-x64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-x64@0.22.0':
optional: true
'@esbuild/netbsd-x64@0.18.20':
@@ -13126,7 +13932,13 @@ snapshots:
'@esbuild/netbsd-x64@0.19.11':
optional: true
- '@esbuild/netbsd-x64@0.20.2':
+ '@esbuild/netbsd-x64@0.21.5':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.22.0':
+ optional: true
+
+ '@esbuild/openbsd-arm64@0.22.0':
optional: true
'@esbuild/openbsd-x64@0.18.20':
@@ -13135,7 +13947,10 @@ snapshots:
'@esbuild/openbsd-x64@0.19.11':
optional: true
- '@esbuild/openbsd-x64@0.20.2':
+ '@esbuild/openbsd-x64@0.21.5':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.22.0':
optional: true
'@esbuild/sunos-x64@0.18.20':
@@ -13144,7 +13959,10 @@ snapshots:
'@esbuild/sunos-x64@0.19.11':
optional: true
- '@esbuild/sunos-x64@0.20.2':
+ '@esbuild/sunos-x64@0.21.5':
+ optional: true
+
+ '@esbuild/sunos-x64@0.22.0':
optional: true
'@esbuild/win32-arm64@0.18.20':
@@ -13153,7 +13971,10 @@ snapshots:
'@esbuild/win32-arm64@0.19.11':
optional: true
- '@esbuild/win32-arm64@0.20.2':
+ '@esbuild/win32-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/win32-arm64@0.22.0':
optional: true
'@esbuild/win32-ia32@0.18.20':
@@ -13162,7 +13983,10 @@ snapshots:
'@esbuild/win32-ia32@0.19.11':
optional: true
- '@esbuild/win32-ia32@0.20.2':
+ '@esbuild/win32-ia32@0.21.5':
+ optional: true
+
+ '@esbuild/win32-ia32@0.22.0':
optional: true
'@esbuild/win32-x64@0.18.20':
@@ -13171,30 +13995,38 @@ snapshots:
'@esbuild/win32-x64@0.19.11':
optional: true
- '@esbuild/win32-x64@0.20.2':
+ '@esbuild/win32-x64@0.21.5':
optional: true
- '@eslint-community/eslint-utils@4.4.0(eslint@8.53.0)':
- dependencies:
- eslint: 8.53.0
- eslint-visitor-keys: 3.4.3
+ '@esbuild/win32-x64@0.22.0':
+ optional: true
- '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)':
+ '@eslint-community/eslint-utils@4.4.0(eslint@9.6.0)':
dependencies:
- eslint: 8.57.0
+ eslint: 9.6.0
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.10.0': {}
'@eslint-community/regexpp@4.6.2': {}
- '@eslint/eslintrc@2.1.4':
+ '@eslint/compat@1.1.0': {}
+
+ '@eslint/config-array@0.17.0':
+ dependencies:
+ '@eslint/object-schema': 2.1.4
+ debug: 4.3.5(supports-color@8.1.1)
+ minimatch: 3.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/eslintrc@3.1.0':
dependencies:
ajv: 6.12.6
- debug: 4.3.4(supports-color@5.5.0)
- espree: 9.6.1
- globals: 13.19.0
- ignore: 5.2.4
+ debug: 4.3.5(supports-color@8.1.1)
+ espree: 10.1.0
+ globals: 14.0.0
+ ignore: 5.3.1
import-fresh: 3.3.0
js-yaml: 4.1.0
minimatch: 3.1.2
@@ -13202,9 +14034,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@eslint/js@8.53.0': {}
+ '@eslint/js@9.6.0': {}
- '@eslint/js@8.57.0': {}
+ '@eslint/object-schema@2.1.4': {}
'@fal-works/esbuild-plugin-global-externals@2.1.2': {}
@@ -13217,8 +14049,8 @@ snapshots:
'@fastify/ajv-compiler@3.5.0':
dependencies:
- ajv: 8.13.0
- ajv-formats: 2.1.1(ajv@8.13.0)
+ ajv: 8.16.0
+ ajv-formats: 2.1.1(ajv@8.16.0)
fast-uri: 2.2.0
'@fastify/busboy@2.1.0': {}
@@ -13253,12 +14085,12 @@ snapshots:
'@fastify/reply-from': 9.0.1
fast-querystring: 1.1.2
fastify-plugin: 4.5.0
- ws: 8.17.0(bufferutil@4.0.7)(utf-8-validate@6.0.3)
+ ws: 8.17.1(bufferutil@4.0.7)(utf-8-validate@6.0.3)
transitivePeerDependencies:
- bufferutil
- utf-8-validate
- '@fastify/multipart@8.2.0':
+ '@fastify/multipart@8.3.0':
dependencies:
'@fastify/busboy': 2.1.0
'@fastify/deepmerge': 1.3.0
@@ -13294,14 +14126,14 @@ snapshots:
glob: 8.1.0
p-limit: 3.1.0
- '@fastify/static@7.0.3':
+ '@fastify/static@7.0.4':
dependencies:
'@fastify/accept-negotiator': 1.0.0
'@fastify/send': 2.0.1
content-disposition: 0.5.4
fastify-plugin: 4.5.0
fastq: 1.17.1
- glob: 10.3.12
+ glob: 10.4.2
'@fastify/view@8.2.0':
dependencies:
@@ -13317,13 +14149,11 @@ snapshots:
'@hapi/boom@10.0.1':
dependencies:
- '@hapi/hoek': 11.0.2
+ '@hapi/hoek': 11.0.4
'@hapi/bourne@3.0.0': {}
- '@hapi/hoek@10.0.1': {}
-
- '@hapi/hoek@11.0.2': {}
+ '@hapi/hoek@11.0.4': {}
'@hapi/hoek@9.3.0': {}
@@ -13335,40 +14165,22 @@ snapshots:
dependencies:
'@hapi/boom': 10.0.1
'@hapi/bourne': 3.0.0
- '@hapi/hoek': 11.0.2
+ '@hapi/hoek': 11.0.4
'@hexagon/base64@1.1.27': {}
- '@humanwhocodes/config-array@0.11.13':
- dependencies:
- '@humanwhocodes/object-schema': 2.0.1
- debug: 4.3.4(supports-color@5.5.0)
- minimatch: 3.1.2
- transitivePeerDependencies:
- - supports-color
-
- '@humanwhocodes/config-array@0.11.14':
- dependencies:
- '@humanwhocodes/object-schema': 2.0.2
- debug: 4.3.4(supports-color@5.5.0)
- minimatch: 3.1.2
- transitivePeerDependencies:
- - supports-color
-
'@humanwhocodes/module-importer@1.0.1': {}
'@humanwhocodes/momoa@2.0.4': {}
- '@humanwhocodes/object-schema@2.0.1': {}
-
- '@humanwhocodes/object-schema@2.0.2': {}
+ '@humanwhocodes/retry@0.3.0': {}
- '@img/sharp-darwin-arm64@0.33.3':
+ '@img/sharp-darwin-arm64@0.33.4':
optionalDependencies:
'@img/sharp-libvips-darwin-arm64': 1.0.2
optional: true
- '@img/sharp-darwin-x64@0.33.3':
+ '@img/sharp-darwin-x64@0.33.4':
optionalDependencies:
'@img/sharp-libvips-darwin-x64': 1.0.2
optional: true
@@ -13397,45 +14209,45 @@ snapshots:
'@img/sharp-libvips-linuxmusl-x64@1.0.2':
optional: true
- '@img/sharp-linux-arm64@0.33.3':
+ '@img/sharp-linux-arm64@0.33.4':
optionalDependencies:
'@img/sharp-libvips-linux-arm64': 1.0.2
optional: true
- '@img/sharp-linux-arm@0.33.3':
+ '@img/sharp-linux-arm@0.33.4':
optionalDependencies:
'@img/sharp-libvips-linux-arm': 1.0.2
optional: true
- '@img/sharp-linux-s390x@0.33.3':
+ '@img/sharp-linux-s390x@0.33.4':
optionalDependencies:
'@img/sharp-libvips-linux-s390x': 1.0.2
optional: true
- '@img/sharp-linux-x64@0.33.3':
+ '@img/sharp-linux-x64@0.33.4':
optionalDependencies:
'@img/sharp-libvips-linux-x64': 1.0.2
optional: true
- '@img/sharp-linuxmusl-arm64@0.33.3':
+ '@img/sharp-linuxmusl-arm64@0.33.4':
optionalDependencies:
'@img/sharp-libvips-linuxmusl-arm64': 1.0.2
optional: true
- '@img/sharp-linuxmusl-x64@0.33.3':
+ '@img/sharp-linuxmusl-x64@0.33.4':
optionalDependencies:
'@img/sharp-libvips-linuxmusl-x64': 1.0.2
optional: true
- '@img/sharp-wasm32@0.33.3':
+ '@img/sharp-wasm32@0.33.4':
dependencies:
'@emnapi/runtime': 1.1.1
optional: true
- '@img/sharp-win32-ia32@0.33.3':
+ '@img/sharp-win32-ia32@0.33.4':
optional: true
- '@img/sharp-win32-x64@0.33.3':
+ '@img/sharp-win32-x64@0.33.4':
optional: true
'@inquirer/confirm@3.1.6':
@@ -13448,7 +14260,7 @@ snapshots:
'@inquirer/figures': 1.0.1
'@inquirer/type': 1.3.1
'@types/mute-stream': 0.0.4
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/wrap-ansi': 3.0.0
ansi-escapes: 4.3.2
chalk: 4.1.2
@@ -13471,7 +14283,7 @@ snapshots:
'@intlify/message-compiler@9.13.1':
dependencies:
'@intlify/shared': 9.13.1
- source-map-js: 1.0.2
+ source-map-js: 1.2.0
'@intlify/shared@9.13.1': {}
@@ -13499,7 +14311,7 @@ snapshots:
'@jest/console@29.7.0':
dependencies:
'@jest/types': 29.6.3
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
chalk: 4.1.2
jest-message-util: 29.7.0
jest-util: 29.7.0
@@ -13512,14 +14324,14 @@ snapshots:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
ansi-escapes: 4.3.2
chalk: 4.1.2
ci-info: 3.7.1
exit: 0.1.2
graceful-fs: 4.2.11
jest-changed-files: 29.7.0
- jest-config: 29.7.0(@types/node@20.12.7)
+ jest-config: 29.7.0(@types/node@20.14.9)
jest-haste-map: 29.7.0
jest-message-util: 29.7.0
jest-regex-util: 29.6.3
@@ -13531,7 +14343,7 @@ snapshots:
jest-util: 29.7.0
jest-validate: 29.7.0
jest-watcher: 29.7.0
- micromatch: 4.0.5
+ micromatch: 4.0.7
pretty-format: 29.7.0
slash: 3.0.0
strip-ansi: 6.0.1
@@ -13548,7 +14360,7 @@ snapshots:
dependencies:
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
jest-mock: 29.7.0
'@jest/expect-utils@29.7.0':
@@ -13566,7 +14378,7 @@ snapshots:
dependencies:
'@jest/types': 29.6.3
'@sinonjs/fake-timers': 10.3.0
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
jest-message-util: 29.7.0
jest-mock: 29.7.0
jest-util: 29.7.0
@@ -13588,7 +14400,7 @@ snapshots:
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
'@jridgewell/trace-mapping': 0.3.18
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
chalk: 4.1.2
collect-v8-coverage: 1.0.1
exit: 0.1.2
@@ -13646,7 +14458,7 @@ snapshots:
jest-haste-map: 29.7.0
jest-regex-util: 29.6.3
jest-util: 29.7.0
- micromatch: 4.0.5
+ micromatch: 4.0.7
pirates: 4.0.5
slash: 3.0.0
write-file-atomic: 4.0.2
@@ -13658,19 +14470,19 @@ snapshots:
'@jest/schemas': 29.6.3
'@types/istanbul-lib-coverage': 2.0.4
'@types/istanbul-reports': 3.0.1
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/yargs': 17.0.19
chalk: 4.1.2
- '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3))':
+ '@joshwooding/vite-plugin-react-docgen-typescript@0.3.1(typescript@5.5.3)(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1))':
dependencies:
glob: 7.2.3
glob-promise: 4.2.2(glob@7.2.3)
magic-string: 0.27.0
- react-docgen-typescript: 2.2.2(typescript@5.4.5)
- vite: 5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3)
+ react-docgen-typescript: 2.2.2(typescript@5.5.3)
+ vite: 5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1)
optionalDependencies:
- typescript: 5.4.5
+ typescript: 5.5.3
'@jridgewell/gen-mapping@0.3.2':
dependencies:
@@ -13678,14 +14490,22 @@ snapshots:
'@jridgewell/sourcemap-codec': 1.4.15
'@jridgewell/trace-mapping': 0.3.18
+ '@jridgewell/gen-mapping@0.3.5':
+ dependencies:
+ '@jridgewell/set-array': 1.2.1
+ '@jridgewell/sourcemap-codec': 1.4.15
+ '@jridgewell/trace-mapping': 0.3.25
+
'@jridgewell/resolve-uri@3.1.0': {}
'@jridgewell/set-array@1.1.2': {}
+ '@jridgewell/set-array@1.2.1': {}
+
'@jridgewell/source-map@0.3.5':
dependencies:
- '@jridgewell/gen-mapping': 0.3.2
- '@jridgewell/trace-mapping': 0.3.18
+ '@jridgewell/gen-mapping': 0.3.5
+ '@jridgewell/trace-mapping': 0.3.25
'@jridgewell/sourcemap-codec@1.4.14': {}
@@ -13696,6 +14516,11 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.0
'@jridgewell/sourcemap-codec': 1.4.14
+ '@jridgewell/trace-mapping@0.3.25':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.0
+ '@jridgewell/sourcemap-codec': 1.4.15
+
'@jsdevtools/ono@7.1.3': {}
'@kurkle/color@0.3.2': {}
@@ -13734,23 +14559,23 @@ snapshots:
'@types/react': 18.0.28
react: 18.3.1
- '@microsoft/api-extractor-model@7.28.14(@types/node@20.12.7)':
+ '@microsoft/api-extractor-model@7.29.2(@types/node@20.14.9)':
dependencies:
- '@microsoft/tsdoc': 0.14.2
- '@microsoft/tsdoc-config': 0.16.2
- '@rushstack/node-core-library': 4.1.0(@types/node@20.12.7)
+ '@microsoft/tsdoc': 0.15.0
+ '@microsoft/tsdoc-config': 0.17.0
+ '@rushstack/node-core-library': 5.4.1(@types/node@20.14.9)
transitivePeerDependencies:
- '@types/node'
- '@microsoft/api-extractor@7.43.1(@types/node@20.12.7)':
+ '@microsoft/api-extractor@7.47.0(@types/node@20.14.9)':
dependencies:
- '@microsoft/api-extractor-model': 7.28.14(@types/node@20.12.7)
- '@microsoft/tsdoc': 0.14.2
- '@microsoft/tsdoc-config': 0.16.2
- '@rushstack/node-core-library': 4.1.0(@types/node@20.12.7)
+ '@microsoft/api-extractor-model': 7.29.2(@types/node@20.14.9)
+ '@microsoft/tsdoc': 0.15.0
+ '@microsoft/tsdoc-config': 0.17.0
+ '@rushstack/node-core-library': 5.4.1(@types/node@20.14.9)
'@rushstack/rig-package': 0.5.2
- '@rushstack/terminal': 0.10.1(@types/node@20.12.7)
- '@rushstack/ts-command-line': 4.19.2(@types/node@20.12.7)
+ '@rushstack/terminal': 0.13.0(@types/node@20.14.9)
+ '@rushstack/ts-command-line': 4.22.0(@types/node@20.14.9)
lodash: 4.17.21
minimatch: 3.0.8
resolve: 1.22.8
@@ -13760,43 +14585,31 @@ snapshots:
transitivePeerDependencies:
- '@types/node'
- '@microsoft/tsdoc-config@0.16.2':
+ '@microsoft/tsdoc-config@0.17.0':
dependencies:
- '@microsoft/tsdoc': 0.14.2
- ajv: 6.12.6
+ '@microsoft/tsdoc': 0.15.0
+ ajv: 8.12.0
jju: 1.4.0
- resolve: 1.19.0
+ resolve: 1.22.8
- '@microsoft/tsdoc@0.14.2': {}
+ '@microsoft/tsdoc@0.15.0': {}
'@misskey-dev/browser-image-resizer@2024.1.0': {}
- '@misskey-dev/eslint-plugin@1.0.0(@typescript-eslint/eslint-plugin@6.11.0(@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.3))(eslint@8.53.0)(typescript@5.3.3))(@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.3))(eslint@8.53.0))(eslint@8.53.0)':
- dependencies:
- '@typescript-eslint/eslint-plugin': 6.11.0(@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.3))(eslint@8.53.0)(typescript@5.3.3)
- '@typescript-eslint/parser': 6.11.0(eslint@8.53.0)(typescript@5.3.3)
- eslint: 8.53.0
- eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.3))(eslint@8.53.0)
-
- '@misskey-dev/eslint-plugin@1.0.0(@typescript-eslint/eslint-plugin@7.1.0(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3))(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0))(eslint@8.57.0)':
- dependencies:
- '@typescript-eslint/eslint-plugin': 7.1.0(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3)
- '@typescript-eslint/parser': 7.1.0(eslint@8.57.0)(typescript@5.3.3)
- eslint: 8.57.0
- eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)
-
- '@misskey-dev/eslint-plugin@1.0.0(@typescript-eslint/eslint-plugin@7.7.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0))(eslint@8.57.0)':
+ '@misskey-dev/eslint-plugin@2.0.2(@eslint/compat@1.1.0)(@typescript-eslint/eslint-plugin@7.15.0(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3))(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0))(eslint@9.6.0)(globals@15.7.0)':
dependencies:
- '@typescript-eslint/eslint-plugin': 7.7.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)
- '@typescript-eslint/parser': 7.7.1(eslint@8.57.0)(typescript@5.4.5)
- eslint: 8.57.0
- eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)
+ '@eslint/compat': 1.1.0
+ '@typescript-eslint/eslint-plugin': 7.15.0(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3)
+ '@typescript-eslint/parser': 7.15.0(eslint@9.6.0)(typescript@5.5.3)
+ eslint: 9.6.0
+ eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)
+ globals: 15.7.0
'@misskey-dev/sharp-read-bmp@1.2.0':
dependencies:
decode-bmp: 0.2.1
decode-ico: 0.4.1
- sharp: 0.33.3
+ sharp: 0.33.4
'@misskey-dev/summaly@5.1.0':
dependencies:
@@ -13840,7 +14653,7 @@ snapshots:
'@mswjs/cookies@1.1.0': {}
- '@mswjs/interceptors@0.26.15':
+ '@mswjs/interceptors@0.29.1':
dependencies:
'@open-draft/deferred-promise': 2.2.0
'@open-draft/logger': 0.3.0
@@ -13849,44 +14662,44 @@ snapshots:
outvariant: 1.4.2
strict-event-emitter: 0.5.1
- '@napi-rs/canvas-android-arm64@0.1.52':
+ '@napi-rs/canvas-android-arm64@0.1.53':
optional: true
- '@napi-rs/canvas-darwin-arm64@0.1.52':
+ '@napi-rs/canvas-darwin-arm64@0.1.53':
optional: true
- '@napi-rs/canvas-darwin-x64@0.1.52':
+ '@napi-rs/canvas-darwin-x64@0.1.53':
optional: true
- '@napi-rs/canvas-linux-arm-gnueabihf@0.1.52':
+ '@napi-rs/canvas-linux-arm-gnueabihf@0.1.53':
optional: true
- '@napi-rs/canvas-linux-arm64-gnu@0.1.52':
+ '@napi-rs/canvas-linux-arm64-gnu@0.1.53':
optional: true
- '@napi-rs/canvas-linux-arm64-musl@0.1.52':
+ '@napi-rs/canvas-linux-arm64-musl@0.1.53':
optional: true
- '@napi-rs/canvas-linux-x64-gnu@0.1.52':
+ '@napi-rs/canvas-linux-x64-gnu@0.1.53':
optional: true
- '@napi-rs/canvas-linux-x64-musl@0.1.52':
+ '@napi-rs/canvas-linux-x64-musl@0.1.53':
optional: true
- '@napi-rs/canvas-win32-x64-msvc@0.1.52':
+ '@napi-rs/canvas-win32-x64-msvc@0.1.53':
optional: true
- '@napi-rs/canvas@0.1.52':
+ '@napi-rs/canvas@0.1.53':
optionalDependencies:
- '@napi-rs/canvas-android-arm64': 0.1.52
- '@napi-rs/canvas-darwin-arm64': 0.1.52
- '@napi-rs/canvas-darwin-x64': 0.1.52
- '@napi-rs/canvas-linux-arm-gnueabihf': 0.1.52
- '@napi-rs/canvas-linux-arm64-gnu': 0.1.52
- '@napi-rs/canvas-linux-arm64-musl': 0.1.52
- '@napi-rs/canvas-linux-x64-gnu': 0.1.52
- '@napi-rs/canvas-linux-x64-musl': 0.1.52
- '@napi-rs/canvas-win32-x64-msvc': 0.1.52
+ '@napi-rs/canvas-android-arm64': 0.1.53
+ '@napi-rs/canvas-darwin-arm64': 0.1.53
+ '@napi-rs/canvas-darwin-x64': 0.1.53
+ '@napi-rs/canvas-linux-arm-gnueabihf': 0.1.53
+ '@napi-rs/canvas-linux-arm64-gnu': 0.1.53
+ '@napi-rs/canvas-linux-arm64-musl': 0.1.53
+ '@napi-rs/canvas-linux-x64-gnu': 0.1.53
+ '@napi-rs/canvas-linux-x64-musl': 0.1.53
+ '@napi-rs/canvas-win32-x64-msvc': 0.1.53
'@ndelangen/get-tarball@3.0.7':
dependencies:
@@ -13894,49 +14707,51 @@ snapshots:
pump: 3.0.0
tar-fs: 2.1.1
- '@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1)':
+ '@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1)':
dependencies:
iterare: 1.2.1
reflect-metadata: 0.2.2
rxjs: 7.8.1
- tslib: 2.6.2
+ tslib: 2.6.3
uid: 2.0.2
- '@nestjs/core@10.3.8(@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1)':
+ '@nestjs/core@10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.10)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1)':
dependencies:
- '@nestjs/common': 10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1)
+ '@nestjs/common': 10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1)
'@nuxtjs/opencollective': 0.3.2(encoding@0.1.13)
fast-safe-stringify: 2.1.1
iterare: 1.2.1
path-to-regexp: 3.2.0
reflect-metadata: 0.2.2
rxjs: 7.8.1
- tslib: 2.6.2
+ tslib: 2.6.3
uid: 2.0.2
optionalDependencies:
- '@nestjs/platform-express': 10.3.8(@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8)
+ '@nestjs/platform-express': 10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.10)
transitivePeerDependencies:
- encoding
- '@nestjs/platform-express@10.3.8(@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8)':
+ '@nestjs/platform-express@10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.10)':
dependencies:
- '@nestjs/common': 10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1)
- '@nestjs/core': 10.3.8(@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1)
+ '@nestjs/common': 10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1)
+ '@nestjs/core': 10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.10)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1)
body-parser: 1.20.2
cors: 2.8.5
express: 4.19.2
multer: 1.4.4-lts.1
- tslib: 2.6.2
+ tslib: 2.6.3
transitivePeerDependencies:
- supports-color
- '@nestjs/testing@10.3.8(@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8(@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8(@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8))':
+ '@nestjs/testing@10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.10)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.10))':
dependencies:
- '@nestjs/common': 10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1)
- '@nestjs/core': 10.3.8(@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1)
- tslib: 2.6.2
+ '@nestjs/common': 10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1)
+ '@nestjs/core': 10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.10)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1)
+ tslib: 2.6.3
optionalDependencies:
- '@nestjs/platform-express': 10.3.8(@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8)
+ '@nestjs/platform-express': 10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.10)
+
+ '@noble/hashes@1.4.0': {}
'@nodelib/fs.scandir@2.1.5':
dependencies:
@@ -13948,14 +14763,14 @@ snapshots:
'@nodelib/fs.walk@1.2.8':
dependencies:
'@nodelib/fs.scandir': 2.1.5
- fastq: 1.15.0
+ fastq: 1.17.1
'@npmcli/agent@2.2.0':
dependencies:
agent-base: 7.1.0
http-proxy-agent: 7.0.0
https-proxy-agent: 7.0.2
- lru-cache: 10.0.2
+ lru-cache: 10.2.2
socks-proxy-agent: 8.0.2
transitivePeerDependencies:
- supports-color
@@ -13997,153 +14812,167 @@ snapshots:
'@open-draft/until@2.1.0': {}
- '@opentelemetry/api-logs@0.51.1':
+ '@opentelemetry/api-logs@0.52.1':
dependencies:
- '@opentelemetry/api': 1.8.0
+ '@opentelemetry/api': 1.9.0
- '@opentelemetry/api@1.8.0': {}
+ '@opentelemetry/api@1.9.0': {}
- '@opentelemetry/context-async-hooks@1.24.1(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/context-async-hooks@1.25.1(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
+ '@opentelemetry/api': 1.9.0
- '@opentelemetry/core@1.24.1(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/core@1.24.1(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
+ '@opentelemetry/api': 1.9.0
'@opentelemetry/semantic-conventions': 1.24.1
- '@opentelemetry/instrumentation-connect@0.36.0(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/core@1.25.1(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/semantic-conventions': 1.25.1
+
+ '@opentelemetry/instrumentation-connect@0.37.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
'@types/connect': 3.4.36
transitivePeerDependencies:
- supports-color
- '@opentelemetry/instrumentation-express@0.39.0(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation-express@0.40.1(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
transitivePeerDependencies:
- supports-color
- '@opentelemetry/instrumentation-fastify@0.36.1(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation-fastify@0.37.0(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
transitivePeerDependencies:
- supports-color
- '@opentelemetry/instrumentation-graphql@0.40.0(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation-graphql@0.41.0(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
transitivePeerDependencies:
- supports-color
- '@opentelemetry/instrumentation-hapi@0.38.0(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation-hapi@0.39.0(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
transitivePeerDependencies:
- supports-color
- '@opentelemetry/instrumentation-http@0.51.1(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation-http@0.52.1(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
semver: 7.6.0
transitivePeerDependencies:
- supports-color
- '@opentelemetry/instrumentation-ioredis@0.40.0(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation-ioredis@0.41.0(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
'@opentelemetry/redis-common': 0.36.2
- '@opentelemetry/semantic-conventions': 1.24.1
+ '@opentelemetry/semantic-conventions': 1.25.1
transitivePeerDependencies:
- supports-color
- '@opentelemetry/instrumentation-koa@0.40.0(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation-koa@0.41.0(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
'@types/koa': 2.14.0
'@types/koa__router': 12.0.3
transitivePeerDependencies:
- supports-color
- '@opentelemetry/instrumentation-mongodb@0.43.0(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation-mongodb@0.45.0(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/sdk-metrics': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-metrics': 1.24.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
transitivePeerDependencies:
- supports-color
- '@opentelemetry/instrumentation-mongoose@0.38.1(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation-mongoose@0.39.0(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
transitivePeerDependencies:
- supports-color
- '@opentelemetry/instrumentation-mysql2@0.38.1(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation-mysql2@0.39.0(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
- '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.8.0)
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
+ '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0)
transitivePeerDependencies:
- supports-color
- '@opentelemetry/instrumentation-mysql@0.38.1(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation-mysql@0.39.0(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
'@types/mysql': 2.15.22
transitivePeerDependencies:
- supports-color
- '@opentelemetry/instrumentation-nestjs-core@0.37.1(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation-nestjs-core@0.38.0(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
transitivePeerDependencies:
- supports-color
- '@opentelemetry/instrumentation-pg@0.41.0(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation-pg@0.42.0(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
- '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.8.0)
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
+ '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0)
'@types/pg': 8.6.1
'@types/pg-pool': 2.0.4
transitivePeerDependencies:
- supports-color
- '@opentelemetry/instrumentation@0.43.0(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation-redis-4@0.40.0(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/redis-common': 0.36.2
+ '@opentelemetry/semantic-conventions': 1.25.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@opentelemetry/instrumentation@0.43.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
'@types/shimmer': 1.0.5
import-in-the-middle: 1.4.2
require-in-the-middle: 7.3.0
@@ -14153,12 +14982,12 @@ snapshots:
- supports-color
optional: true
- '@opentelemetry/instrumentation@0.51.1(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation@0.52.1(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/api-logs': 0.51.1
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/api-logs': 0.52.1
'@types/shimmer': 1.0.5
- import-in-the-middle: 1.7.4
+ import-in-the-middle: 1.8.1
require-in-the-middle: 7.3.0
semver: 7.6.0
shimmer: 1.2.1
@@ -14167,32 +14996,40 @@ snapshots:
'@opentelemetry/redis-common@0.36.2': {}
- '@opentelemetry/resources@1.24.1(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/resources@1.24.1(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0)
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.9.0)
'@opentelemetry/semantic-conventions': 1.24.1
- '@opentelemetry/sdk-metrics@1.24.1(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.8.0)
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
+
+ '@opentelemetry/sdk-metrics@1.24.1(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.9.0)
lodash.merge: 4.6.2
- '@opentelemetry/sdk-trace-base@1.24.1(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/sdk-trace-base@1.25.1(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
'@opentelemetry/semantic-conventions@1.24.1': {}
- '@opentelemetry/sql-common@0.40.1(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/semantic-conventions@1.25.1': {}
+
+ '@opentelemetry/sql-common@0.40.1(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0)
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0)
'@peculiar/asn1-android@2.3.10':
dependencies:
@@ -14237,35 +15074,149 @@ snapshots:
'@pkgjs/parseargs@0.11.0':
optional: true
- '@prisma/instrumentation@5.14.0':
+ '@prisma/instrumentation@5.16.0':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/sdk-trace-base': 1.24.1(@opentelemetry/api@1.8.0)
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.9.0)
transitivePeerDependencies:
- supports-color
- '@radix-ui/react-compose-refs@1.0.1(@types/react@18.0.28)(react@18.3.1)':
+ '@radix-ui/primitive@1.1.0': {}
+
+ '@radix-ui/react-compose-refs@1.1.0(@types/react@18.0.28)(react@18.3.1)':
dependencies:
- '@babel/runtime': 7.23.4
react: 18.3.1
optionalDependencies:
'@types/react': 18.0.28
- '@radix-ui/react-slot@1.0.2(@types/react@18.0.28)(react@18.3.1)':
+ '@radix-ui/react-context@1.1.0(@types/react@18.0.28)(react@18.3.1)':
dependencies:
- '@babel/runtime': 7.23.4
- '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.0.28)(react@18.3.1)
react: 18.3.1
optionalDependencies:
'@types/react': 18.0.28
- '@readme/better-ajv-errors@1.6.0(ajv@8.13.0)':
+ '@radix-ui/react-dialog@1.1.1(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.0(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-focus-guards': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ '@radix-ui/react-focus-scope': 1.1.0(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.1(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.0(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ aria-hidden: 1.2.4
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-remove-scroll: 2.5.7(@types/react@18.0.28)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ '@radix-ui/react-dismissable-layer@1.1.0(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ '@radix-ui/react-focus-guards@1.1.0(@types/react@18.0.28)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ '@radix-ui/react-focus-scope@1.1.0(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ '@radix-ui/react-id@1.1.0(@types/react@18.0.28)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ '@radix-ui/react-portal@1.1.1(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.0.0(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ '@radix-ui/react-presence@1.1.0(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ '@radix-ui/react-primitive@2.0.0(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-slot': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ '@radix-ui/react-slot@1.1.0(@types/react@18.0.28)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.0.28)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.0.28)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.0.28)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.0.28)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ '@readme/better-ajv-errors@1.6.0(ajv@8.16.0)':
dependencies:
'@babel/code-frame': 7.23.5
'@babel/runtime': 7.23.4
'@humanwhocodes/momoa': 2.0.4
- ajv: 8.13.0
+ ajv: 8.16.0
chalk: 4.1.2
json-to-ast: 2.1.0
jsonpointer: 5.0.1
@@ -14283,181 +15234,186 @@ snapshots:
'@apidevtools/openapi-schemas': 2.1.0
'@apidevtools/swagger-methods': 3.0.2
'@jsdevtools/ono': 7.1.3
- '@readme/better-ajv-errors': 1.6.0(ajv@8.13.0)
+ '@readme/better-ajv-errors': 1.6.0(ajv@8.16.0)
'@readme/json-schema-ref-parser': 1.2.0
- ajv: 8.13.0
- ajv-draft-04: 1.0.0(ajv@8.13.0)
+ ajv: 8.16.0
+ ajv-draft-04: 1.0.0(ajv@8.16.0)
call-me-maybe: 1.0.2
openapi-types: 12.1.3
- '@rollup/plugin-json@6.1.0(rollup@4.17.2)':
+ '@rollup/plugin-json@6.1.0(rollup@4.18.0)':
dependencies:
- '@rollup/pluginutils': 5.1.0(rollup@4.17.2)
+ '@rollup/pluginutils': 5.1.0(rollup@4.18.0)
optionalDependencies:
- rollup: 4.17.2
+ rollup: 4.18.0
- '@rollup/plugin-replace@5.0.5(rollup@4.17.2)':
+ '@rollup/plugin-replace@5.0.7(rollup@4.18.0)':
dependencies:
- '@rollup/pluginutils': 5.1.0(rollup@4.17.2)
- magic-string: 0.30.7
+ '@rollup/pluginutils': 5.1.0(rollup@4.18.0)
+ magic-string: 0.30.10
optionalDependencies:
- rollup: 4.17.2
+ rollup: 4.18.0
- '@rollup/pluginutils@5.1.0(rollup@4.17.2)':
+ '@rollup/pluginutils@5.1.0(rollup@4.18.0)':
dependencies:
'@types/estree': 1.0.5
estree-walker: 2.0.2
picomatch: 2.3.1
optionalDependencies:
- rollup: 4.17.2
+ rollup: 4.18.0
- '@rollup/rollup-android-arm-eabi@4.17.2':
+ '@rollup/rollup-android-arm-eabi@4.18.0':
optional: true
- '@rollup/rollup-android-arm64@4.17.2':
+ '@rollup/rollup-android-arm64@4.18.0':
optional: true
- '@rollup/rollup-darwin-arm64@4.17.2':
+ '@rollup/rollup-darwin-arm64@4.18.0':
optional: true
- '@rollup/rollup-darwin-x64@4.17.2':
+ '@rollup/rollup-darwin-x64@4.18.0':
optional: true
- '@rollup/rollup-linux-arm-gnueabihf@4.17.2':
+ '@rollup/rollup-linux-arm-gnueabihf@4.18.0':
optional: true
- '@rollup/rollup-linux-arm-musleabihf@4.17.2':
+ '@rollup/rollup-linux-arm-musleabihf@4.18.0':
optional: true
- '@rollup/rollup-linux-arm64-gnu@4.17.2':
+ '@rollup/rollup-linux-arm64-gnu@4.18.0':
optional: true
- '@rollup/rollup-linux-arm64-musl@4.17.2':
+ '@rollup/rollup-linux-arm64-musl@4.18.0':
optional: true
- '@rollup/rollup-linux-powerpc64le-gnu@4.17.2':
+ '@rollup/rollup-linux-powerpc64le-gnu@4.18.0':
optional: true
- '@rollup/rollup-linux-riscv64-gnu@4.17.2':
+ '@rollup/rollup-linux-riscv64-gnu@4.18.0':
optional: true
- '@rollup/rollup-linux-s390x-gnu@4.17.2':
+ '@rollup/rollup-linux-s390x-gnu@4.18.0':
optional: true
- '@rollup/rollup-linux-x64-gnu@4.17.2':
+ '@rollup/rollup-linux-x64-gnu@4.18.0':
optional: true
- '@rollup/rollup-linux-x64-musl@4.17.2':
+ '@rollup/rollup-linux-x64-musl@4.18.0':
optional: true
- '@rollup/rollup-win32-arm64-msvc@4.17.2':
+ '@rollup/rollup-win32-arm64-msvc@4.18.0':
optional: true
- '@rollup/rollup-win32-ia32-msvc@4.17.2':
+ '@rollup/rollup-win32-ia32-msvc@4.18.0':
optional: true
- '@rollup/rollup-win32-x64-msvc@4.17.2':
+ '@rollup/rollup-win32-x64-msvc@4.18.0':
optional: true
- '@rushstack/node-core-library@4.1.0(@types/node@20.12.7)':
+ '@rushstack/node-core-library@5.4.1(@types/node@20.14.9)':
dependencies:
+ ajv: 8.13.0
+ ajv-draft-04: 1.0.0(ajv@8.13.0)
+ ajv-formats: 3.0.1(ajv@8.13.0)
fs-extra: 7.0.1
import-lazy: 4.0.0
jju: 1.4.0
resolve: 1.22.8
semver: 7.5.4
- z-schema: 5.0.5
optionalDependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@rushstack/rig-package@0.5.2':
dependencies:
resolve: 1.22.8
strip-json-comments: 3.1.1
- '@rushstack/terminal@0.10.1(@types/node@20.12.7)':
+ '@rushstack/terminal@0.13.0(@types/node@20.14.9)':
dependencies:
- '@rushstack/node-core-library': 4.1.0(@types/node@20.12.7)
+ '@rushstack/node-core-library': 5.4.1(@types/node@20.14.9)
supports-color: 8.1.1
optionalDependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
- '@rushstack/ts-command-line@4.19.2(@types/node@20.12.7)':
+ '@rushstack/ts-command-line@4.22.0(@types/node@20.14.9)':
dependencies:
- '@rushstack/terminal': 0.10.1(@types/node@20.12.7)
+ '@rushstack/terminal': 0.13.0(@types/node@20.14.9)
'@types/argparse': 1.0.38
argparse: 1.0.10
string-argv: 0.3.1
transitivePeerDependencies:
- '@types/node'
- '@sentry/core@8.5.0':
- dependencies:
- '@sentry/types': 8.5.0
- '@sentry/utils': 8.5.0
-
- '@sentry/node@8.5.0':
- dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/context-async-hooks': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation-connect': 0.36.0(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation-express': 0.39.0(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation-fastify': 0.36.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation-graphql': 0.40.0(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation-hapi': 0.38.0(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation-http': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation-ioredis': 0.40.0(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation-koa': 0.40.0(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation-mongodb': 0.43.0(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation-mongoose': 0.38.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation-mysql': 0.38.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation-mysql2': 0.38.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation-nestjs-core': 0.37.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation-pg': 0.41.0(@opentelemetry/api@1.8.0)
- '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/sdk-trace-base': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
- '@prisma/instrumentation': 5.14.0
- '@sentry/core': 8.5.0
- '@sentry/opentelemetry': 8.5.0(@opentelemetry/api@1.8.0)(@opentelemetry/core@1.24.1(@opentelemetry/api@1.8.0))(@opentelemetry/instrumentation@0.51.1(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-trace-base@1.24.1(@opentelemetry/api@1.8.0))(@opentelemetry/semantic-conventions@1.24.1)
- '@sentry/types': 8.5.0
- '@sentry/utils': 8.5.0
+ '@sec-ant/readable-stream@0.4.1': {}
+
+ '@sentry/core@8.13.0':
+ dependencies:
+ '@sentry/types': 8.13.0
+ '@sentry/utils': 8.13.0
+
+ '@sentry/node@8.13.0':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/context-async-hooks': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-connect': 0.37.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-express': 0.40.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-fastify': 0.37.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-graphql': 0.41.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-hapi': 0.39.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-http': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-ioredis': 0.41.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-koa': 0.41.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-mongodb': 0.45.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-mongoose': 0.39.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-mysql': 0.39.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-mysql2': 0.39.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-nestjs-core': 0.38.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-pg': 0.42.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-redis-4': 0.40.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
+ '@prisma/instrumentation': 5.16.0
+ '@sentry/core': 8.13.0
+ '@sentry/opentelemetry': 8.13.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.52.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.25.1)
+ '@sentry/types': 8.13.0
+ '@sentry/utils': 8.13.0
optionalDependencies:
opentelemetry-instrumentation-fetch-node: 1.2.0
transitivePeerDependencies:
- supports-color
- '@sentry/opentelemetry@8.5.0(@opentelemetry/api@1.8.0)(@opentelemetry/core@1.24.1(@opentelemetry/api@1.8.0))(@opentelemetry/instrumentation@0.51.1(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-trace-base@1.24.1(@opentelemetry/api@1.8.0))(@opentelemetry/semantic-conventions@1.24.1)':
+ '@sentry/opentelemetry@8.13.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.52.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.25.1)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/sdk-trace-base': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
- '@sentry/core': 8.5.0
- '@sentry/types': 8.5.0
- '@sentry/utils': 8.5.0
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
+ '@sentry/core': 8.13.0
+ '@sentry/types': 8.13.0
+ '@sentry/utils': 8.13.0
- '@sentry/profiling-node@8.5.0':
+ '@sentry/profiling-node@8.13.0':
dependencies:
- '@sentry/core': 8.5.0
- '@sentry/node': 8.5.0
- '@sentry/types': 8.5.0
- '@sentry/utils': 8.5.0
+ '@sentry/core': 8.13.0
+ '@sentry/node': 8.13.0
+ '@sentry/types': 8.13.0
+ '@sentry/utils': 8.13.0
detect-libc: 2.0.3
node-abi: 3.62.0
transitivePeerDependencies:
- supports-color
- '@sentry/types@8.5.0': {}
+ '@sentry/types@8.13.0': {}
- '@sentry/utils@8.5.0':
+ '@sentry/utils@8.13.0':
dependencies:
- '@sentry/types': 8.5.0
+ '@sentry/types': 8.13.0
- '@shikijs/core@1.4.0': {}
+ '@shikijs/core@1.10.0': {}
'@sideway/address@4.1.4':
dependencies:
@@ -14489,7 +15445,11 @@ snapshots:
'@sindresorhus/is@5.3.0': {}
- '@sindresorhus/is@6.1.0': {}
+ '@sindresorhus/is@6.3.1': {}
+
+ '@sindresorhus/merge-streams@2.3.0': {}
+
+ '@sindresorhus/merge-streams@4.0.0': {}
'@sinonjs/commons@2.0.0':
dependencies:
@@ -14515,154 +15475,172 @@ snapshots:
'@sinonjs/text-encoding@0.7.2': {}
- '@smithy/abort-controller@2.0.14':
+ '@smithy/abort-controller@2.2.0':
dependencies:
- '@smithy/types': 2.6.0
+ '@smithy/types': 2.12.0
tslib: 2.6.2
- '@smithy/abort-controller@2.2.0':
+ '@smithy/abort-controller@3.1.1':
dependencies:
- '@smithy/types': 2.12.0
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/chunked-blob-reader-native@2.0.0':
+ '@smithy/chunked-blob-reader-native@3.0.0':
dependencies:
- '@smithy/util-base64': 2.0.0
+ '@smithy/util-base64': 3.0.0
tslib: 2.6.2
- '@smithy/chunked-blob-reader@2.0.0':
+ '@smithy/chunked-blob-reader@3.0.0':
dependencies:
tslib: 2.6.2
- '@smithy/config-resolver@2.0.9':
+ '@smithy/config-resolver@3.0.4':
dependencies:
- '@smithy/node-config-provider': 2.0.11
- '@smithy/types': 2.6.0
- '@smithy/util-config-provider': 2.0.0
- '@smithy/util-middleware': 2.0.1
+ '@smithy/node-config-provider': 3.1.3
+ '@smithy/types': 3.3.0
+ '@smithy/util-config-provider': 3.0.0
+ '@smithy/util-middleware': 3.0.3
tslib: 2.6.2
- '@smithy/credential-provider-imds@2.0.11':
+ '@smithy/core@2.2.4':
dependencies:
- '@smithy/node-config-provider': 2.0.11
- '@smithy/property-provider': 2.0.9
- '@smithy/types': 2.6.0
- '@smithy/url-parser': 2.0.8
+ '@smithy/middleware-endpoint': 3.0.4
+ '@smithy/middleware-retry': 3.0.7
+ '@smithy/middleware-serde': 3.0.3
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/smithy-client': 3.1.5
+ '@smithy/types': 3.3.0
+ '@smithy/util-middleware': 3.0.3
tslib: 2.6.2
- '@smithy/eventstream-codec@2.0.8':
+ '@smithy/credential-provider-imds@3.1.3':
dependencies:
- '@aws-crypto/crc32': 3.0.0
- '@smithy/types': 2.6.0
- '@smithy/util-hex-encoding': 2.0.0
+ '@smithy/node-config-provider': 3.1.3
+ '@smithy/property-provider': 3.1.3
+ '@smithy/types': 3.3.0
+ '@smithy/url-parser': 3.0.3
tslib: 2.6.2
- '@smithy/eventstream-serde-browser@2.0.8':
+ '@smithy/eventstream-codec@3.1.2':
dependencies:
- '@smithy/eventstream-serde-universal': 2.0.8
- '@smithy/types': 2.6.0
+ '@aws-crypto/crc32': 5.2.0
+ '@smithy/types': 3.3.0
+ '@smithy/util-hex-encoding': 3.0.0
tslib: 2.6.2
- '@smithy/eventstream-serde-config-resolver@2.0.8':
+ '@smithy/eventstream-serde-browser@3.0.4':
dependencies:
- '@smithy/types': 2.6.0
+ '@smithy/eventstream-serde-universal': 3.0.4
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/eventstream-serde-node@2.0.8':
+ '@smithy/eventstream-serde-config-resolver@3.0.3':
dependencies:
- '@smithy/eventstream-serde-universal': 2.0.8
- '@smithy/types': 2.6.0
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/eventstream-serde-universal@2.0.8':
+ '@smithy/eventstream-serde-node@3.0.4':
dependencies:
- '@smithy/eventstream-codec': 2.0.8
- '@smithy/types': 2.6.0
+ '@smithy/eventstream-serde-universal': 3.0.4
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/fetch-http-handler@2.1.4':
+ '@smithy/eventstream-serde-universal@3.0.4':
dependencies:
- '@smithy/protocol-http': 3.0.10
- '@smithy/querystring-builder': 2.0.14
- '@smithy/types': 2.6.0
- '@smithy/util-base64': 2.0.0
+ '@smithy/eventstream-codec': 3.1.2
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/hash-blob-browser@2.0.8':
+ '@smithy/fetch-http-handler@3.2.0':
dependencies:
- '@smithy/chunked-blob-reader': 2.0.0
- '@smithy/chunked-blob-reader-native': 2.0.0
- '@smithy/types': 2.6.0
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/querystring-builder': 3.0.3
+ '@smithy/types': 3.3.0
+ '@smithy/util-base64': 3.0.0
tslib: 2.6.2
- '@smithy/hash-node@2.0.8':
+ '@smithy/hash-blob-browser@3.1.2':
dependencies:
- '@smithy/types': 2.6.0
- '@smithy/util-buffer-from': 2.0.0
- '@smithy/util-utf8': 2.0.0
+ '@smithy/chunked-blob-reader': 3.0.0
+ '@smithy/chunked-blob-reader-native': 3.0.0
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/hash-stream-node@2.0.8':
+ '@smithy/hash-node@3.0.3':
dependencies:
- '@smithy/types': 2.6.0
- '@smithy/util-utf8': 2.0.0
+ '@smithy/types': 3.3.0
+ '@smithy/util-buffer-from': 3.0.0
+ '@smithy/util-utf8': 3.0.0
tslib: 2.6.2
- '@smithy/invalid-dependency@2.0.8':
+ '@smithy/hash-stream-node@3.1.2':
dependencies:
- '@smithy/types': 2.6.0
+ '@smithy/types': 3.3.0
+ '@smithy/util-utf8': 3.0.0
+ tslib: 2.6.2
+
+ '@smithy/invalid-dependency@3.0.3':
+ dependencies:
+ '@smithy/types': 3.3.0
tslib: 2.6.2
'@smithy/is-array-buffer@2.0.0':
dependencies:
tslib: 2.6.2
- '@smithy/md5-js@2.0.8':
+ '@smithy/is-array-buffer@3.0.0':
dependencies:
- '@smithy/types': 2.6.0
- '@smithy/util-utf8': 2.0.0
tslib: 2.6.2
- '@smithy/middleware-content-length@2.0.10':
+ '@smithy/md5-js@3.0.3':
dependencies:
- '@smithy/protocol-http': 3.0.10
- '@smithy/types': 2.6.0
+ '@smithy/types': 3.3.0
+ '@smithy/util-utf8': 3.0.0
tslib: 2.6.2
- '@smithy/middleware-endpoint@2.0.8':
+ '@smithy/middleware-content-length@3.0.3':
dependencies:
- '@smithy/middleware-serde': 2.0.8
- '@smithy/types': 2.6.0
- '@smithy/url-parser': 2.0.8
- '@smithy/util-middleware': 2.0.1
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/middleware-retry@2.0.11':
+ '@smithy/middleware-endpoint@3.0.4':
dependencies:
- '@smithy/node-config-provider': 2.0.11
- '@smithy/protocol-http': 3.0.10
- '@smithy/service-error-classification': 2.0.1
- '@smithy/types': 2.6.0
- '@smithy/util-middleware': 2.0.1
- '@smithy/util-retry': 2.0.1
+ '@smithy/middleware-serde': 3.0.3
+ '@smithy/node-config-provider': 3.1.3
+ '@smithy/shared-ini-file-loader': 3.1.3
+ '@smithy/types': 3.3.0
+ '@smithy/url-parser': 3.0.3
+ '@smithy/util-middleware': 3.0.3
tslib: 2.6.2
- uuid: 8.3.2
- '@smithy/middleware-serde@2.0.8':
+ '@smithy/middleware-retry@3.0.7':
+ dependencies:
+ '@smithy/node-config-provider': 3.1.3
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/service-error-classification': 3.0.3
+ '@smithy/smithy-client': 3.1.5
+ '@smithy/types': 3.3.0
+ '@smithy/util-middleware': 3.0.3
+ '@smithy/util-retry': 3.0.3
+ tslib: 2.6.2
+ uuid: 9.0.1
+
+ '@smithy/middleware-serde@3.0.3':
dependencies:
- '@smithy/types': 2.6.0
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/middleware-stack@2.0.1':
+ '@smithy/middleware-stack@3.0.3':
dependencies:
- '@smithy/types': 2.6.0
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/node-config-provider@2.0.11':
+ '@smithy/node-config-provider@3.1.3':
dependencies:
- '@smithy/property-provider': 2.0.9
- '@smithy/shared-ini-file-loader': 2.0.10
- '@smithy/types': 2.6.0
+ '@smithy/property-provider': 3.1.3
+ '@smithy/shared-ini-file-loader': 3.1.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
'@smithy/node-http-handler@2.5.0':
@@ -14673,14 +15651,17 @@ snapshots:
'@smithy/types': 2.12.0
tslib: 2.6.2
- '@smithy/property-provider@2.0.9':
+ '@smithy/node-http-handler@3.1.1':
dependencies:
- '@smithy/types': 2.6.0
+ '@smithy/abort-controller': 3.1.1
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/querystring-builder': 3.0.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/protocol-http@3.0.10':
+ '@smithy/property-provider@3.1.3':
dependencies:
- '@smithy/types': 2.6.0
+ '@smithy/types': 3.3.0
tslib: 2.6.2
'@smithy/protocol-http@3.3.0':
@@ -14688,10 +15669,9 @@ snapshots:
'@smithy/types': 2.12.0
tslib: 2.6.2
- '@smithy/querystring-builder@2.0.14':
+ '@smithy/protocol-http@4.0.3':
dependencies:
- '@smithy/types': 2.6.0
- '@smithy/util-uri-escape': 2.0.0
+ '@smithy/types': 3.3.0
tslib: 2.6.2
'@smithy/querystring-builder@2.2.0':
@@ -14700,62 +15680,70 @@ snapshots:
'@smithy/util-uri-escape': 2.2.0
tslib: 2.6.2
- '@smithy/querystring-parser@2.0.8':
+ '@smithy/querystring-builder@3.0.3':
+ dependencies:
+ '@smithy/types': 3.3.0
+ '@smithy/util-uri-escape': 3.0.0
+ tslib: 2.6.2
+
+ '@smithy/querystring-parser@3.0.3':
dependencies:
- '@smithy/types': 2.6.0
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/service-error-classification@2.0.1':
+ '@smithy/service-error-classification@3.0.3':
dependencies:
- '@smithy/types': 2.6.0
+ '@smithy/types': 3.3.0
- '@smithy/shared-ini-file-loader@2.0.10':
+ '@smithy/shared-ini-file-loader@3.1.3':
dependencies:
- '@smithy/types': 2.6.0
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/signature-v4@2.0.5':
+ '@smithy/signature-v4@3.1.2':
dependencies:
- '@smithy/eventstream-codec': 2.0.8
- '@smithy/is-array-buffer': 2.0.0
- '@smithy/types': 2.6.0
- '@smithy/util-hex-encoding': 2.0.0
- '@smithy/util-middleware': 2.0.1
- '@smithy/util-uri-escape': 2.0.0
- '@smithy/util-utf8': 2.0.0
+ '@smithy/is-array-buffer': 3.0.0
+ '@smithy/types': 3.3.0
+ '@smithy/util-hex-encoding': 3.0.0
+ '@smithy/util-middleware': 3.0.3
+ '@smithy/util-uri-escape': 3.0.0
+ '@smithy/util-utf8': 3.0.0
tslib: 2.6.2
- '@smithy/smithy-client@2.1.5':
+ '@smithy/smithy-client@3.1.5':
dependencies:
- '@smithy/middleware-stack': 2.0.1
- '@smithy/types': 2.6.0
- '@smithy/util-stream': 2.0.11
+ '@smithy/middleware-endpoint': 3.0.4
+ '@smithy/middleware-stack': 3.0.3
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/types': 3.3.0
+ '@smithy/util-stream': 3.0.5
tslib: 2.6.2
'@smithy/types@2.12.0':
dependencies:
tslib: 2.6.2
- '@smithy/types@2.6.0':
+ '@smithy/types@3.3.0':
dependencies:
tslib: 2.6.2
- '@smithy/url-parser@2.0.8':
+ '@smithy/url-parser@3.0.3':
dependencies:
- '@smithy/querystring-parser': 2.0.8
- '@smithy/types': 2.6.0
+ '@smithy/querystring-parser': 3.0.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/util-base64@2.0.0':
+ '@smithy/util-base64@3.0.0':
dependencies:
- '@smithy/util-buffer-from': 2.0.0
+ '@smithy/util-buffer-from': 3.0.0
+ '@smithy/util-utf8': 3.0.0
tslib: 2.6.2
- '@smithy/util-body-length-browser@2.0.0':
+ '@smithy/util-body-length-browser@3.0.0':
dependencies:
tslib: 2.6.2
- '@smithy/util-body-length-node@2.1.0':
+ '@smithy/util-body-length-node@3.0.0':
dependencies:
tslib: 2.6.2
@@ -14764,117 +15752,136 @@ snapshots:
'@smithy/is-array-buffer': 2.0.0
tslib: 2.6.2
- '@smithy/util-config-provider@2.0.0':
+ '@smithy/util-buffer-from@3.0.0':
+ dependencies:
+ '@smithy/is-array-buffer': 3.0.0
+ tslib: 2.6.2
+
+ '@smithy/util-config-provider@3.0.0':
dependencies:
tslib: 2.6.2
- '@smithy/util-defaults-mode-browser@2.0.9':
+ '@smithy/util-defaults-mode-browser@3.0.7':
dependencies:
- '@smithy/property-provider': 2.0.9
- '@smithy/smithy-client': 2.1.5
- '@smithy/types': 2.6.0
+ '@smithy/property-provider': 3.1.3
+ '@smithy/smithy-client': 3.1.5
+ '@smithy/types': 3.3.0
bowser: 2.11.0
tslib: 2.6.2
- '@smithy/util-defaults-mode-node@2.0.11':
+ '@smithy/util-defaults-mode-node@3.0.7':
dependencies:
- '@smithy/config-resolver': 2.0.9
- '@smithy/credential-provider-imds': 2.0.11
- '@smithy/node-config-provider': 2.0.11
- '@smithy/property-provider': 2.0.9
- '@smithy/smithy-client': 2.1.5
- '@smithy/types': 2.6.0
+ '@smithy/config-resolver': 3.0.4
+ '@smithy/credential-provider-imds': 3.1.3
+ '@smithy/node-config-provider': 3.1.3
+ '@smithy/property-provider': 3.1.3
+ '@smithy/smithy-client': 3.1.5
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/util-hex-encoding@2.0.0':
+ '@smithy/util-endpoints@2.0.4':
dependencies:
+ '@smithy/node-config-provider': 3.1.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/util-middleware@2.0.1':
+ '@smithy/util-hex-encoding@3.0.0':
dependencies:
- '@smithy/types': 2.6.0
tslib: 2.6.2
- '@smithy/util-retry@2.0.1':
+ '@smithy/util-middleware@3.0.3':
dependencies:
- '@smithy/service-error-classification': 2.0.1
- '@smithy/types': 2.6.0
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/util-stream@2.0.11':
+ '@smithy/util-retry@3.0.3':
dependencies:
- '@smithy/fetch-http-handler': 2.1.4
- '@smithy/node-http-handler': 2.5.0
- '@smithy/types': 2.6.0
- '@smithy/util-base64': 2.0.0
- '@smithy/util-buffer-from': 2.0.0
- '@smithy/util-hex-encoding': 2.0.0
- '@smithy/util-utf8': 2.0.0
+ '@smithy/service-error-classification': 3.0.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/util-uri-escape@2.0.0':
+ '@smithy/util-stream@3.0.5':
dependencies:
+ '@smithy/fetch-http-handler': 3.2.0
+ '@smithy/node-http-handler': 3.1.1
+ '@smithy/types': 3.3.0
+ '@smithy/util-base64': 3.0.0
+ '@smithy/util-buffer-from': 3.0.0
+ '@smithy/util-hex-encoding': 3.0.0
+ '@smithy/util-utf8': 3.0.0
tslib: 2.6.2
'@smithy/util-uri-escape@2.2.0':
dependencies:
tslib: 2.6.2
+ '@smithy/util-uri-escape@3.0.0':
+ dependencies:
+ tslib: 2.6.2
+
'@smithy/util-utf8@2.0.0':
dependencies:
'@smithy/util-buffer-from': 2.0.0
tslib: 2.6.2
- '@smithy/util-waiter@2.0.8':
+ '@smithy/util-utf8@3.0.0':
+ dependencies:
+ '@smithy/util-buffer-from': 3.0.0
+ tslib: 2.6.2
+
+ '@smithy/util-waiter@3.1.2':
dependencies:
- '@smithy/abort-controller': 2.0.14
- '@smithy/types': 2.6.0
+ '@smithy/abort-controller': 3.1.1
+ '@smithy/types': 3.3.0
tslib: 2.6.2
'@sqltools/formatter@1.2.5': {}
- '@storybook/addon-actions@8.0.9':
+ '@storybook/addon-actions@8.1.11':
dependencies:
- '@storybook/core-events': 8.0.9
+ '@storybook/core-events': 8.1.11
'@storybook/global': 5.0.0
'@types/uuid': 9.0.8
dequal: 2.0.3
polished: 4.2.2
uuid: 9.0.1
- '@storybook/addon-backgrounds@8.0.9':
+ '@storybook/addon-backgrounds@8.1.11':
dependencies:
'@storybook/global': 5.0.0
memoizerific: 1.11.3
ts-dedent: 2.2.0
- '@storybook/addon-controls@8.0.9(@types/react@18.0.28)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@storybook/addon-controls@8.1.11(@types/react@18.0.28)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@storybook/blocks': 8.0.9(@types/react@18.0.28)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/blocks': 8.1.11(@types/react@18.0.28)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ dequal: 2.0.3
lodash: 4.17.21
ts-dedent: 2.2.0
transitivePeerDependencies:
- '@types/react'
+ - '@types/react-dom'
- encoding
+ - prettier
- react
- react-dom
- supports-color
- '@storybook/addon-docs@8.0.9(encoding@0.1.13)':
+ '@storybook/addon-docs@8.1.11(encoding@0.1.13)(prettier@3.3.2)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@mdx-js/react': 3.0.1(@types/react@18.0.28)(react@18.3.1)
- '@storybook/blocks': 8.0.9(@types/react@18.0.28)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/client-logger': 8.0.9
- '@storybook/components': 8.0.9(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/csf-plugin': 8.0.9
- '@storybook/csf-tools': 8.0.9
+ '@storybook/blocks': 8.1.11(@types/react@18.0.28)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/client-logger': 8.1.11
+ '@storybook/components': 8.1.11(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/csf-plugin': 8.1.11
+ '@storybook/csf-tools': 8.1.11
'@storybook/global': 5.0.0
- '@storybook/node-logger': 8.0.9
- '@storybook/preview-api': 8.0.9
- '@storybook/react-dom-shim': 8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/theming': 8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/types': 8.0.9
+ '@storybook/node-logger': 8.1.11
+ '@storybook/preview-api': 8.1.11
+ '@storybook/react-dom-shim': 8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/theming': 8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/types': 8.1.11
'@types/react': 18.0.28
fs-extra: 11.1.1
react: 18.3.1
@@ -14883,42 +15890,46 @@ snapshots:
rehype-slug: 6.0.0
ts-dedent: 2.2.0
transitivePeerDependencies:
+ - '@types/react-dom'
- encoding
+ - prettier
- supports-color
- '@storybook/addon-essentials@8.0.9(@types/react@18.0.28)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@storybook/addon-actions': 8.0.9
- '@storybook/addon-backgrounds': 8.0.9
- '@storybook/addon-controls': 8.0.9(@types/react@18.0.28)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/addon-docs': 8.0.9(encoding@0.1.13)
- '@storybook/addon-highlight': 8.0.9
- '@storybook/addon-measure': 8.0.9
- '@storybook/addon-outline': 8.0.9
- '@storybook/addon-toolbars': 8.0.9
- '@storybook/addon-viewport': 8.0.9
- '@storybook/core-common': 8.0.9(encoding@0.1.13)
- '@storybook/manager-api': 8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/node-logger': 8.0.9
- '@storybook/preview-api': 8.0.9
+ '@storybook/addon-essentials@8.1.11(@types/react@18.0.28)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@storybook/addon-actions': 8.1.11
+ '@storybook/addon-backgrounds': 8.1.11
+ '@storybook/addon-controls': 8.1.11(@types/react@18.0.28)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/addon-docs': 8.1.11(encoding@0.1.13)(prettier@3.3.2)
+ '@storybook/addon-highlight': 8.1.11
+ '@storybook/addon-measure': 8.1.11
+ '@storybook/addon-outline': 8.1.11
+ '@storybook/addon-toolbars': 8.1.11
+ '@storybook/addon-viewport': 8.1.11
+ '@storybook/core-common': 8.1.11(encoding@0.1.13)(prettier@3.3.2)
+ '@storybook/manager-api': 8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/node-logger': 8.1.11
+ '@storybook/preview-api': 8.1.11
ts-dedent: 2.2.0
transitivePeerDependencies:
- '@types/react'
+ - '@types/react-dom'
- encoding
+ - prettier
- react
- react-dom
- supports-color
- '@storybook/addon-highlight@8.0.9':
+ '@storybook/addon-highlight@8.1.11':
dependencies:
'@storybook/global': 5.0.0
- '@storybook/addon-interactions@8.0.9(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.12.7))(vitest@0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3))':
+ '@storybook/addon-interactions@8.1.11(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.14.9))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1))':
dependencies:
'@storybook/global': 5.0.0
- '@storybook/instrumenter': 8.0.9
- '@storybook/test': 8.0.9(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.12.7))(vitest@0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3))
- '@storybook/types': 8.0.9
+ '@storybook/instrumenter': 8.1.11
+ '@storybook/test': 8.1.11(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.14.9))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1))
+ '@storybook/types': 8.1.11
polished: 4.2.2
ts-dedent: 2.2.0
transitivePeerDependencies:
@@ -14928,58 +15939,58 @@ snapshots:
- jest
- vitest
- '@storybook/addon-links@8.0.9(react@18.3.1)':
+ '@storybook/addon-links@8.1.11(react@18.3.1)':
dependencies:
- '@storybook/csf': 0.1.6
+ '@storybook/csf': 0.1.9
'@storybook/global': 5.0.0
ts-dedent: 2.2.0
optionalDependencies:
react: 18.3.1
- '@storybook/addon-mdx-gfm@8.0.9':
+ '@storybook/addon-mdx-gfm@8.1.11':
dependencies:
- '@storybook/node-logger': 8.0.9
+ '@storybook/node-logger': 8.1.11
remark-gfm: 4.0.0
ts-dedent: 2.2.0
transitivePeerDependencies:
- supports-color
- '@storybook/addon-measure@8.0.9':
+ '@storybook/addon-measure@8.1.11':
dependencies:
'@storybook/global': 5.0.0
- tiny-invariant: 1.3.1
+ tiny-invariant: 1.3.3
- '@storybook/addon-outline@8.0.9':
+ '@storybook/addon-outline@8.1.11':
dependencies:
'@storybook/global': 5.0.0
ts-dedent: 2.2.0
- '@storybook/addon-storysource@8.0.9':
+ '@storybook/addon-storysource@8.1.11':
dependencies:
- '@storybook/source-loader': 8.0.9
+ '@storybook/source-loader': 8.1.11
estraverse: 5.3.0
- tiny-invariant: 1.3.1
+ tiny-invariant: 1.3.3
- '@storybook/addon-toolbars@8.0.9': {}
+ '@storybook/addon-toolbars@8.1.11': {}
- '@storybook/addon-viewport@8.0.9':
+ '@storybook/addon-viewport@8.1.11':
dependencies:
memoizerific: 1.11.3
- '@storybook/blocks@8.0.9(@types/react@18.0.28)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@storybook/blocks@8.1.11(@types/react@18.0.28)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@storybook/channels': 8.0.9
- '@storybook/client-logger': 8.0.9
- '@storybook/components': 8.0.9(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/core-events': 8.0.9
- '@storybook/csf': 0.1.6
- '@storybook/docs-tools': 8.0.9(encoding@0.1.13)
+ '@storybook/channels': 8.1.11
+ '@storybook/client-logger': 8.1.11
+ '@storybook/components': 8.1.11(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/core-events': 8.1.11
+ '@storybook/csf': 0.1.9
+ '@storybook/docs-tools': 8.1.11(encoding@0.1.13)(prettier@3.3.2)
'@storybook/global': 5.0.0
'@storybook/icons': 1.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/manager-api': 8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/preview-api': 8.0.9
- '@storybook/theming': 8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/types': 8.0.9
+ '@storybook/manager-api': 8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/preview-api': 8.1.11
+ '@storybook/theming': 8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/types': 8.1.11
'@types/lodash': 4.14.191
color-convert: 2.0.1
dequal: 2.0.3
@@ -14997,20 +16008,22 @@ snapshots:
react-dom: 18.3.1(react@18.3.1)
transitivePeerDependencies:
- '@types/react'
+ - '@types/react-dom'
- encoding
+ - prettier
- supports-color
- '@storybook/builder-manager@8.0.9(encoding@0.1.13)':
+ '@storybook/builder-manager@8.1.11(encoding@0.1.13)(prettier@3.3.2)':
dependencies:
'@fal-works/esbuild-plugin-global-externals': 2.1.2
- '@storybook/core-common': 8.0.9(encoding@0.1.13)
- '@storybook/manager': 8.0.9
- '@storybook/node-logger': 8.0.9
+ '@storybook/core-common': 8.1.11(encoding@0.1.13)(prettier@3.3.2)
+ '@storybook/manager': 8.1.11
+ '@storybook/node-logger': 8.1.11
'@types/ejs': 3.1.2
- '@yarnpkg/esbuild-plugin-pnp': 3.0.0-rc.15(esbuild@0.20.2)
+ '@yarnpkg/esbuild-plugin-pnp': 3.0.0-rc.15(esbuild@0.19.11)
browser-assert: 1.2.1
- ejs: 3.1.9
- esbuild: 0.20.2
+ ejs: 3.1.10
+ esbuild: 0.19.11
esbuild-plugin-alias: 0.2.1
express: 4.19.2
fs-extra: 11.1.1
@@ -15018,55 +16031,57 @@ snapshots:
util: 0.12.5
transitivePeerDependencies:
- encoding
+ - prettier
- supports-color
- '@storybook/builder-vite@8.0.9(encoding@0.1.13)(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3))':
- dependencies:
- '@storybook/channels': 8.0.9
- '@storybook/client-logger': 8.0.9
- '@storybook/core-common': 8.0.9(encoding@0.1.13)
- '@storybook/core-events': 8.0.9
- '@storybook/csf-plugin': 8.0.9
- '@storybook/node-logger': 8.0.9
- '@storybook/preview': 8.0.9
- '@storybook/preview-api': 8.0.9
- '@storybook/types': 8.0.9
+ '@storybook/builder-vite@8.1.11(encoding@0.1.13)(prettier@3.3.2)(typescript@5.5.3)(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1))':
+ dependencies:
+ '@storybook/channels': 8.1.11
+ '@storybook/client-logger': 8.1.11
+ '@storybook/core-common': 8.1.11(encoding@0.1.13)(prettier@3.3.2)
+ '@storybook/core-events': 8.1.11
+ '@storybook/csf-plugin': 8.1.11
+ '@storybook/node-logger': 8.1.11
+ '@storybook/preview': 8.1.11
+ '@storybook/preview-api': 8.1.11
+ '@storybook/types': 8.1.11
'@types/find-cache-dir': 3.2.1
browser-assert: 1.2.1
- es-module-lexer: 0.9.3
- express: 4.18.2
+ es-module-lexer: 1.5.4
+ express: 4.19.2
find-cache-dir: 3.3.2
fs-extra: 11.1.1
- magic-string: 0.30.7
+ magic-string: 0.30.10
ts-dedent: 2.2.0
- vite: 5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3)
+ vite: 5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1)
optionalDependencies:
- typescript: 5.4.5
+ typescript: 5.5.3
transitivePeerDependencies:
- encoding
+ - prettier
- supports-color
- '@storybook/channels@8.0.9':
+ '@storybook/channels@8.1.11':
dependencies:
- '@storybook/client-logger': 8.0.9
- '@storybook/core-events': 8.0.9
+ '@storybook/client-logger': 8.1.11
+ '@storybook/core-events': 8.1.11
'@storybook/global': 5.0.0
telejson: 7.2.0
- tiny-invariant: 1.3.1
+ tiny-invariant: 1.3.3
- '@storybook/cli@8.0.9(@babel/preset-env@7.23.5(@babel/core@7.24.0))(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)':
+ '@storybook/cli@8.1.11(@babel/preset-env@7.24.7(@babel/core@7.24.7))(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/types': 7.24.0
+ '@babel/core': 7.24.7
+ '@babel/types': 7.24.7
'@ndelangen/get-tarball': 3.0.7
- '@storybook/codemod': 8.0.9
- '@storybook/core-common': 8.0.9(encoding@0.1.13)
- '@storybook/core-events': 8.0.9
- '@storybook/core-server': 8.0.9(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)
- '@storybook/csf-tools': 8.0.9
- '@storybook/node-logger': 8.0.9
- '@storybook/telemetry': 8.0.9(encoding@0.1.13)
- '@storybook/types': 8.0.9
+ '@storybook/codemod': 8.1.11
+ '@storybook/core-common': 8.1.11(encoding@0.1.13)(prettier@3.3.2)
+ '@storybook/core-events': 8.1.11
+ '@storybook/core-server': 8.1.11(bufferutil@4.0.7)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)
+ '@storybook/csf-tools': 8.1.11
+ '@storybook/node-logger': 8.1.11
+ '@storybook/telemetry': 8.1.11(encoding@0.1.13)(prettier@3.3.2)
+ '@storybook/types': 8.1.11
'@types/semver': 7.5.8
'@yarnpkg/fslib': 2.10.3
'@yarnpkg/libzip': 2.3.0
@@ -15080,17 +16095,17 @@ snapshots:
fs-extra: 11.1.1
get-npm-tarball-url: 2.0.3
giget: 1.1.2
- globby: 11.1.0
- jscodeshift: 0.15.1(@babel/preset-env@7.23.5(@babel/core@7.24.0))
+ globby: 14.0.1
+ jscodeshift: 0.15.1(@babel/preset-env@7.24.7(@babel/core@7.24.7))
leven: 3.1.0
ora: 5.4.1
- prettier: 3.2.5
+ prettier: 3.3.2
prompts: 2.4.2
read-pkg-up: 7.0.1
semver: 7.6.0
strip-json-comments: 3.1.1
- tempy: 1.0.1
- tiny-invariant: 1.3.1
+ tempy: 3.1.0
+ tiny-invariant: 1.3.3
ts-dedent: 2.2.0
transitivePeerDependencies:
- '@babel/preset-env'
@@ -15101,104 +16116,112 @@ snapshots:
- supports-color
- utf-8-validate
- '@storybook/client-logger@8.0.9':
+ '@storybook/client-logger@8.1.11':
dependencies:
'@storybook/global': 5.0.0
- '@storybook/codemod@8.0.9':
+ '@storybook/codemod@8.1.11':
dependencies:
- '@babel/core': 7.24.0
- '@babel/preset-env': 7.23.5(@babel/core@7.24.0)
- '@babel/types': 7.24.0
- '@storybook/csf': 0.1.6
- '@storybook/csf-tools': 8.0.9
- '@storybook/node-logger': 8.0.9
- '@storybook/types': 8.0.9
+ '@babel/core': 7.24.7
+ '@babel/preset-env': 7.24.7(@babel/core@7.24.7)
+ '@babel/types': 7.24.7
+ '@storybook/csf': 0.1.9
+ '@storybook/csf-tools': 8.1.11
+ '@storybook/node-logger': 8.1.11
+ '@storybook/types': 8.1.11
'@types/cross-spawn': 6.0.2
cross-spawn: 7.0.3
- globby: 11.1.0
- jscodeshift: 0.15.1(@babel/preset-env@7.23.5(@babel/core@7.24.0))
+ globby: 14.0.1
+ jscodeshift: 0.15.1(@babel/preset-env@7.24.7(@babel/core@7.24.7))
lodash: 4.17.21
- prettier: 3.2.5
+ prettier: 3.3.2
recast: 0.23.6
- tiny-invariant: 1.3.1
+ tiny-invariant: 1.3.3
transitivePeerDependencies:
- supports-color
- '@storybook/components@8.0.9(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@storybook/components@8.1.11(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@radix-ui/react-slot': 1.0.2(@types/react@18.0.28)(react@18.3.1)
- '@storybook/client-logger': 8.0.9
- '@storybook/csf': 0.1.6
+ '@radix-ui/react-dialog': 1.1.1(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ '@storybook/client-logger': 8.1.11
+ '@storybook/csf': 0.1.9
'@storybook/global': 5.0.0
'@storybook/icons': 1.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/theming': 8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/types': 8.0.9
+ '@storybook/theming': 8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/types': 8.1.11
memoizerific: 1.11.3
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
util-deprecate: 1.0.2
transitivePeerDependencies:
- '@types/react'
+ - '@types/react-dom'
- '@storybook/core-common@8.0.9(encoding@0.1.13)':
+ '@storybook/core-common@8.1.11(encoding@0.1.13)(prettier@3.3.2)':
dependencies:
- '@storybook/core-events': 8.0.9
- '@storybook/csf-tools': 8.0.9
- '@storybook/node-logger': 8.0.9
- '@storybook/types': 8.0.9
+ '@storybook/core-events': 8.1.11
+ '@storybook/csf-tools': 8.1.11
+ '@storybook/node-logger': 8.1.11
+ '@storybook/types': 8.1.11
'@yarnpkg/fslib': 2.10.3
'@yarnpkg/libzip': 2.3.0
chalk: 4.1.2
cross-spawn: 7.0.3
- esbuild: 0.20.2
- esbuild-register: 3.5.0(esbuild@0.20.2)
+ esbuild: 0.19.11
+ esbuild-register: 3.5.0(esbuild@0.19.11)
execa: 5.1.1
file-system-cache: 2.3.0
find-cache-dir: 3.3.2
find-up: 5.0.0
fs-extra: 11.1.1
- glob: 10.3.12
+ glob: 10.4.2
handlebars: 4.7.7
lazy-universal-dotenv: 4.0.0
node-fetch: 2.7.0(encoding@0.1.13)
picomatch: 2.3.1
pkg-dir: 5.0.0
+ prettier-fallback: prettier@3.3.2
pretty-hrtime: 1.0.3
resolve-from: 5.0.0
semver: 7.6.0
- tempy: 1.0.1
- tiny-invariant: 1.3.1
+ tempy: 3.1.0
+ tiny-invariant: 1.3.3
ts-dedent: 2.2.0
util: 0.12.5
+ optionalDependencies:
+ prettier: 3.3.2
transitivePeerDependencies:
- encoding
- supports-color
- '@storybook/core-events@8.0.9':
+ '@storybook/core-events@8.1.11':
dependencies:
+ '@storybook/csf': 0.1.9
ts-dedent: 2.2.0
- '@storybook/core-server@8.0.9(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)':
+ '@storybook/core-server@8.1.11(bufferutil@4.0.7)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)':
dependencies:
'@aw-web-design/x-default-browser': 1.4.126
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
+ '@babel/parser': 7.24.7
'@discoveryjs/json-ext': 0.5.7
- '@storybook/builder-manager': 8.0.9(encoding@0.1.13)
- '@storybook/channels': 8.0.9
- '@storybook/core-common': 8.0.9(encoding@0.1.13)
- '@storybook/core-events': 8.0.9
- '@storybook/csf': 0.1.6
- '@storybook/csf-tools': 8.0.9
- '@storybook/docs-mdx': 3.0.0
+ '@storybook/builder-manager': 8.1.11(encoding@0.1.13)(prettier@3.3.2)
+ '@storybook/channels': 8.1.11
+ '@storybook/core-common': 8.1.11(encoding@0.1.13)(prettier@3.3.2)
+ '@storybook/core-events': 8.1.11
+ '@storybook/csf': 0.1.9
+ '@storybook/csf-tools': 8.1.11
+ '@storybook/docs-mdx': 3.1.0-next.0
'@storybook/global': 5.0.0
- '@storybook/manager': 8.0.9
- '@storybook/manager-api': 8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/node-logger': 8.0.9
- '@storybook/preview-api': 8.0.9
- '@storybook/telemetry': 8.0.9(encoding@0.1.13)
- '@storybook/types': 8.0.9
+ '@storybook/manager': 8.1.11
+ '@storybook/manager-api': 8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/node-logger': 8.1.11
+ '@storybook/preview-api': 8.1.11
+ '@storybook/telemetry': 8.1.11(encoding@0.1.13)(prettier@3.3.2)
+ '@storybook/types': 8.1.11
'@types/detect-port': 1.3.2
+ '@types/diff': 5.2.1
'@types/node': 18.17.15
'@types/pretty-hrtime': 1.0.1
'@types/semver': 7.5.8
@@ -15207,10 +16230,10 @@ snapshots:
cli-table3: 0.6.3
compression: 1.7.4
detect-port: 1.5.1
- express: 4.18.2
+ diff: 5.2.0
+ express: 4.19.2
fs-extra: 11.1.1
- globby: 11.1.0
- ip: 2.0.1
+ globby: 14.0.1
lodash: 4.17.21
open: 8.4.2
pretty-hrtime: 1.0.3
@@ -15218,59 +16241,61 @@ snapshots:
read-pkg-up: 7.0.1
semver: 7.6.0
telejson: 7.2.0
- tiny-invariant: 1.3.1
+ tiny-invariant: 1.3.3
ts-dedent: 2.2.0
util: 0.12.5
util-deprecate: 1.0.2
watchpack: 2.4.0
- ws: 8.17.0(bufferutil@4.0.7)(utf-8-validate@6.0.3)
+ ws: 8.17.1(bufferutil@4.0.7)(utf-8-validate@6.0.3)
transitivePeerDependencies:
- bufferutil
- encoding
+ - prettier
- react
- react-dom
- supports-color
- utf-8-validate
- '@storybook/csf-plugin@8.0.9':
+ '@storybook/csf-plugin@8.1.11':
dependencies:
- '@storybook/csf-tools': 8.0.9
+ '@storybook/csf-tools': 8.1.11
unplugin: 1.4.0
transitivePeerDependencies:
- supports-color
- '@storybook/csf-tools@8.0.9':
+ '@storybook/csf-tools@8.1.11':
dependencies:
- '@babel/generator': 7.23.6
- '@babel/parser': 7.24.0
- '@babel/traverse': 7.24.0
- '@babel/types': 7.24.0
- '@storybook/csf': 0.1.6
- '@storybook/types': 8.0.9
+ '@babel/generator': 7.24.7
+ '@babel/parser': 7.24.7
+ '@babel/traverse': 7.24.7
+ '@babel/types': 7.24.7
+ '@storybook/csf': 0.1.9
+ '@storybook/types': 8.1.11
fs-extra: 11.1.1
recast: 0.23.6
ts-dedent: 2.2.0
transitivePeerDependencies:
- supports-color
- '@storybook/csf@0.1.6':
+ '@storybook/csf@0.1.9':
dependencies:
type-fest: 2.19.0
- '@storybook/docs-mdx@3.0.0': {}
+ '@storybook/docs-mdx@3.1.0-next.0': {}
- '@storybook/docs-tools@8.0.9(encoding@0.1.13)':
+ '@storybook/docs-tools@8.1.11(encoding@0.1.13)(prettier@3.3.2)':
dependencies:
- '@storybook/core-common': 8.0.9(encoding@0.1.13)
- '@storybook/core-events': 8.0.9
- '@storybook/preview-api': 8.0.9
- '@storybook/types': 8.0.9
+ '@storybook/core-common': 8.1.11(encoding@0.1.13)(prettier@3.3.2)
+ '@storybook/core-events': 8.1.11
+ '@storybook/preview-api': 8.1.11
+ '@storybook/types': 8.1.11
'@types/doctrine': 0.0.3
assert: 2.1.0
doctrine: 3.0.0
lodash: 4.17.21
transitivePeerDependencies:
- encoding
+ - prettier
- supports-color
'@storybook/global@5.0.0': {}
@@ -15280,27 +16305,27 @@ snapshots:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- '@storybook/instrumenter@8.0.9':
+ '@storybook/instrumenter@8.1.11':
dependencies:
- '@storybook/channels': 8.0.9
- '@storybook/client-logger': 8.0.9
- '@storybook/core-events': 8.0.9
+ '@storybook/channels': 8.1.11
+ '@storybook/client-logger': 8.1.11
+ '@storybook/core-events': 8.1.11
'@storybook/global': 5.0.0
- '@storybook/preview-api': 8.0.9
+ '@storybook/preview-api': 8.1.11
'@vitest/utils': 1.6.0
util: 0.12.5
- '@storybook/manager-api@8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@storybook/manager-api@8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@storybook/channels': 8.0.9
- '@storybook/client-logger': 8.0.9
- '@storybook/core-events': 8.0.9
- '@storybook/csf': 0.1.6
+ '@storybook/channels': 8.1.11
+ '@storybook/client-logger': 8.1.11
+ '@storybook/core-events': 8.1.11
+ '@storybook/csf': 0.1.9
'@storybook/global': 5.0.0
'@storybook/icons': 1.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/router': 8.0.9
- '@storybook/theming': 8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/types': 8.0.9
+ '@storybook/router': 8.1.11
+ '@storybook/theming': 8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/types': 8.1.11
dequal: 2.0.3
lodash: 4.17.21
memoizerific: 1.11.3
@@ -15311,65 +16336,67 @@ snapshots:
- react
- react-dom
- '@storybook/manager@8.0.9': {}
+ '@storybook/manager@8.1.11': {}
- '@storybook/node-logger@8.0.9': {}
+ '@storybook/node-logger@8.1.11': {}
- '@storybook/preview-api@8.0.9':
+ '@storybook/preview-api@8.1.11':
dependencies:
- '@storybook/channels': 8.0.9
- '@storybook/client-logger': 8.0.9
- '@storybook/core-events': 8.0.9
- '@storybook/csf': 0.1.6
+ '@storybook/channels': 8.1.11
+ '@storybook/client-logger': 8.1.11
+ '@storybook/core-events': 8.1.11
+ '@storybook/csf': 0.1.9
'@storybook/global': 5.0.0
- '@storybook/types': 8.0.9
+ '@storybook/types': 8.1.11
'@types/qs': 6.9.7
dequal: 2.0.3
lodash: 4.17.21
memoizerific: 1.11.3
qs: 6.11.1
- tiny-invariant: 1.3.1
+ tiny-invariant: 1.3.3
ts-dedent: 2.2.0
util-deprecate: 1.0.2
- '@storybook/preview@8.0.9': {}
+ '@storybook/preview@8.1.11': {}
- '@storybook/react-dom-shim@8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@storybook/react-dom-shim@8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- '@storybook/react-vite@8.0.9(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.17.2)(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3))':
+ '@storybook/react-vite@8.1.11(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.18.0)(typescript@5.5.3)(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1))':
dependencies:
- '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3))
- '@rollup/pluginutils': 5.1.0(rollup@4.17.2)
- '@storybook/builder-vite': 8.0.9(encoding@0.1.13)(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3))
- '@storybook/node-logger': 8.0.9
- '@storybook/react': 8.0.9(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5)
+ '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.1(typescript@5.5.3)(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1))
+ '@rollup/pluginutils': 5.1.0(rollup@4.18.0)
+ '@storybook/builder-vite': 8.1.11(encoding@0.1.13)(prettier@3.3.2)(typescript@5.5.3)(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1))
+ '@storybook/node-logger': 8.1.11
+ '@storybook/react': 8.1.11(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.3)
+ '@storybook/types': 8.1.11
find-up: 5.0.0
- magic-string: 0.30.7
+ magic-string: 0.30.10
react: 18.3.1
react-docgen: 7.0.1
react-dom: 18.3.1(react@18.3.1)
resolve: 1.22.8
tsconfig-paths: 4.2.0
- vite: 5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3)
+ vite: 5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1)
transitivePeerDependencies:
- '@preact/preset-vite'
- encoding
+ - prettier
- rollup
- supports-color
- typescript
- vite-plugin-glimmerx
- '@storybook/react@8.0.9(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5)':
+ '@storybook/react@8.1.11(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.3)':
dependencies:
- '@storybook/client-logger': 8.0.9
- '@storybook/docs-tools': 8.0.9(encoding@0.1.13)
+ '@storybook/client-logger': 8.1.11
+ '@storybook/docs-tools': 8.1.11(encoding@0.1.13)(prettier@3.3.2)
'@storybook/global': 5.0.0
- '@storybook/preview-api': 8.0.9
- '@storybook/react-dom-shim': 8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/types': 8.0.9
+ '@storybook/preview-api': 8.1.11
+ '@storybook/react-dom-shim': 8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/types': 8.1.11
'@types/escodegen': 0.0.6
'@types/estree': 0.0.51
'@types/node': 18.17.15
@@ -15388,30 +16415,31 @@ snapshots:
type-fest: 2.19.0
util-deprecate: 1.0.2
optionalDependencies:
- typescript: 5.4.5
+ typescript: 5.5.3
transitivePeerDependencies:
- encoding
+ - prettier
- supports-color
- '@storybook/router@8.0.9':
+ '@storybook/router@8.1.11':
dependencies:
- '@storybook/client-logger': 8.0.9
+ '@storybook/client-logger': 8.1.11
memoizerific: 1.11.3
qs: 6.11.1
- '@storybook/source-loader@8.0.9':
+ '@storybook/source-loader@8.1.11':
dependencies:
- '@storybook/csf': 0.1.6
- '@storybook/types': 8.0.9
+ '@storybook/csf': 0.1.9
+ '@storybook/types': 8.1.11
estraverse: 5.3.0
lodash: 4.17.21
- prettier: 3.2.5
+ prettier: 3.3.2
- '@storybook/telemetry@8.0.9(encoding@0.1.13)':
+ '@storybook/telemetry@8.1.11(encoding@0.1.13)(prettier@3.3.2)':
dependencies:
- '@storybook/client-logger': 8.0.9
- '@storybook/core-common': 8.0.9(encoding@0.1.13)
- '@storybook/csf-tools': 8.0.9
+ '@storybook/client-logger': 8.1.11
+ '@storybook/core-common': 8.1.11(encoding@0.1.13)(prettier@3.3.2)
+ '@storybook/csf-tools': 8.1.11
chalk: 4.1.2
detect-package-manager: 2.0.1
fetch-retry: 5.0.4
@@ -15419,18 +16447,19 @@ snapshots:
read-pkg-up: 7.0.1
transitivePeerDependencies:
- encoding
+ - prettier
- supports-color
- '@storybook/test@8.0.9(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.12.7))(vitest@0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3))':
+ '@storybook/test@8.1.11(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.14.9))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1))':
dependencies:
- '@storybook/client-logger': 8.0.9
- '@storybook/core-events': 8.0.9
- '@storybook/instrumenter': 8.0.9
- '@storybook/preview-api': 8.0.9
- '@testing-library/dom': 9.3.4
- '@testing-library/jest-dom': 6.4.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.12.7))(vitest@0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3))
- '@testing-library/user-event': 14.5.2(@testing-library/dom@9.3.4)
- '@vitest/expect': 1.3.1
+ '@storybook/client-logger': 8.1.11
+ '@storybook/core-events': 8.1.11
+ '@storybook/instrumenter': 8.1.11
+ '@storybook/preview-api': 8.1.11
+ '@testing-library/dom': 10.1.0
+ '@testing-library/jest-dom': 6.4.5(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.14.9))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1))
+ '@testing-library/user-event': 14.5.2(@testing-library/dom@10.1.0)
+ '@vitest/expect': 1.6.0
'@vitest/spy': 1.6.0
util: 0.12.5
transitivePeerDependencies:
@@ -15440,37 +16469,39 @@ snapshots:
- jest
- vitest
- '@storybook/theming@8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@storybook/theming@8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.1)
- '@storybook/client-logger': 8.0.9
+ '@storybook/client-logger': 8.1.11
'@storybook/global': 5.0.0
memoizerific: 1.11.3
optionalDependencies:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- '@storybook/types@8.0.9':
+ '@storybook/types@8.1.11':
dependencies:
- '@storybook/channels': 8.0.9
+ '@storybook/channels': 8.1.11
'@types/express': 4.17.17
file-system-cache: 2.3.0
- '@storybook/vue3-vite@8.0.9(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)(vite@5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3))(vue@3.4.26(typescript@5.4.5))':
+ '@storybook/vue3-vite@8.1.11(bufferutil@4.0.7)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1))(vue@3.4.31(typescript@5.5.3))':
dependencies:
- '@storybook/builder-vite': 8.0.9(encoding@0.1.13)(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3))
- '@storybook/core-server': 8.0.9(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)
- '@storybook/vue3': 8.0.9(encoding@0.1.13)(vue@3.4.26(typescript@5.4.5))
+ '@storybook/builder-vite': 8.1.11(encoding@0.1.13)(prettier@3.3.2)(typescript@5.5.3)(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1))
+ '@storybook/core-server': 8.1.11(bufferutil@4.0.7)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)
+ '@storybook/types': 8.1.11
+ '@storybook/vue3': 8.1.11(encoding@0.1.13)(prettier@3.3.2)(vue@3.4.31(typescript@5.5.3))
find-package-json: 1.2.0
- magic-string: 0.30.7
- typescript: 5.4.5
- vite: 5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3)
- vue-component-meta: 2.0.16(typescript@5.4.5)
- vue-docgen-api: 4.75.1(vue@3.4.26(typescript@5.4.5))
+ magic-string: 0.30.10
+ typescript: 5.5.3
+ vite: 5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1)
+ vue-component-meta: 2.0.16(typescript@5.5.3)
+ vue-docgen-api: 4.75.1(vue@3.4.31(typescript@5.5.3))
transitivePeerDependencies:
- '@preact/preset-vite'
- bufferutil
- encoding
+ - prettier
- react
- react-dom
- supports-color
@@ -15478,26 +16509,27 @@ snapshots:
- vite-plugin-glimmerx
- vue
- '@storybook/vue3@8.0.9(encoding@0.1.13)(vue@3.4.26(typescript@5.4.5))':
+ '@storybook/vue3@8.1.11(encoding@0.1.13)(prettier@3.3.2)(vue@3.4.31(typescript@5.5.3))':
dependencies:
- '@storybook/docs-tools': 8.0.9(encoding@0.1.13)
+ '@storybook/docs-tools': 8.1.11(encoding@0.1.13)(prettier@3.3.2)
'@storybook/global': 5.0.0
- '@storybook/preview-api': 8.0.9
- '@storybook/types': 8.0.9
- '@vue/compiler-core': 3.4.21
+ '@storybook/preview-api': 8.1.11
+ '@storybook/types': 8.1.11
+ '@vue/compiler-core': 3.4.29
lodash: 4.17.21
ts-dedent: 2.2.0
type-fest: 2.19.0
- vue: 3.4.26(typescript@5.4.5)
- vue-component-type-helpers: 2.0.19
+ vue: 3.4.31(typescript@5.5.3)
+ vue-component-type-helpers: 2.0.26
transitivePeerDependencies:
- encoding
+ - prettier
- supports-color
- '@swc/cli@0.3.12(@swc/core@1.4.17)(chokidar@3.5.3)':
+ '@swc/cli@0.3.12(@swc/core@1.6.6)(chokidar@3.5.3)':
dependencies:
'@mole-inc/bin-wrapper': 8.0.1
- '@swc/core': 1.4.17
+ '@swc/core': 1.6.6
'@swc/counter': 0.1.3
commander: 8.3.0
fast-glob: 3.3.2
@@ -15517,13 +16549,13 @@ snapshots:
'@swc/core-darwin-arm64@1.3.56':
optional: true
- '@swc/core-darwin-arm64@1.4.17':
+ '@swc/core-darwin-arm64@1.6.6':
optional: true
'@swc/core-darwin-x64@1.3.56':
optional: true
- '@swc/core-darwin-x64@1.4.17':
+ '@swc/core-darwin-x64@1.6.6':
optional: true
'@swc/core-freebsd-x64@1.3.11':
@@ -15534,77 +16566,79 @@ snapshots:
'@swc/core-linux-arm-gnueabihf@1.3.56':
optional: true
- '@swc/core-linux-arm-gnueabihf@1.4.17':
+ '@swc/core-linux-arm-gnueabihf@1.6.6':
optional: true
'@swc/core-linux-arm64-gnu@1.3.56':
optional: true
- '@swc/core-linux-arm64-gnu@1.4.17':
+ '@swc/core-linux-arm64-gnu@1.6.6':
optional: true
'@swc/core-linux-arm64-musl@1.3.56':
optional: true
- '@swc/core-linux-arm64-musl@1.4.17':
+ '@swc/core-linux-arm64-musl@1.6.6':
optional: true
'@swc/core-linux-x64-gnu@1.3.56':
optional: true
- '@swc/core-linux-x64-gnu@1.4.17':
+ '@swc/core-linux-x64-gnu@1.6.6':
optional: true
'@swc/core-linux-x64-musl@1.3.56':
optional: true
- '@swc/core-linux-x64-musl@1.4.17':
+ '@swc/core-linux-x64-musl@1.6.6':
optional: true
'@swc/core-win32-arm64-msvc@1.3.56':
optional: true
- '@swc/core-win32-arm64-msvc@1.4.17':
+ '@swc/core-win32-arm64-msvc@1.6.6':
optional: true
'@swc/core-win32-ia32-msvc@1.3.56':
optional: true
- '@swc/core-win32-ia32-msvc@1.4.17':
+ '@swc/core-win32-ia32-msvc@1.6.6':
optional: true
'@swc/core-win32-x64-msvc@1.3.56':
optional: true
- '@swc/core-win32-x64-msvc@1.4.17':
+ '@swc/core-win32-x64-msvc@1.6.6':
optional: true
- '@swc/core@1.4.17':
+ '@swc/core@1.6.6':
dependencies:
'@swc/counter': 0.1.3
- '@swc/types': 0.1.5
+ '@swc/types': 0.1.9
optionalDependencies:
- '@swc/core-darwin-arm64': 1.4.17
- '@swc/core-darwin-x64': 1.4.17
- '@swc/core-linux-arm-gnueabihf': 1.4.17
- '@swc/core-linux-arm64-gnu': 1.4.17
- '@swc/core-linux-arm64-musl': 1.4.17
- '@swc/core-linux-x64-gnu': 1.4.17
- '@swc/core-linux-x64-musl': 1.4.17
- '@swc/core-win32-arm64-msvc': 1.4.17
- '@swc/core-win32-ia32-msvc': 1.4.17
- '@swc/core-win32-x64-msvc': 1.4.17
+ '@swc/core-darwin-arm64': 1.6.6
+ '@swc/core-darwin-x64': 1.6.6
+ '@swc/core-linux-arm-gnueabihf': 1.6.6
+ '@swc/core-linux-arm64-gnu': 1.6.6
+ '@swc/core-linux-arm64-musl': 1.6.6
+ '@swc/core-linux-x64-gnu': 1.6.6
+ '@swc/core-linux-x64-musl': 1.6.6
+ '@swc/core-win32-arm64-msvc': 1.6.6
+ '@swc/core-win32-ia32-msvc': 1.6.6
+ '@swc/core-win32-x64-msvc': 1.6.6
'@swc/counter@0.1.3': {}
- '@swc/jest@0.2.36(@swc/core@1.4.17)':
+ '@swc/jest@0.2.36(@swc/core@1.6.6)':
dependencies:
'@jest/create-cache-key-function': 29.7.0
- '@swc/core': 1.4.17
+ '@swc/core': 1.6.6
'@swc/counter': 0.1.3
jsonc-parser: 3.2.0
- '@swc/types@0.1.5': {}
+ '@swc/types@0.1.9':
+ dependencies:
+ '@swc/counter': 0.1.3
'@swc/wasm@1.2.130':
optional: true
@@ -15708,12 +16742,12 @@ snapshots:
- encoding
- seedrandom
- '@testing-library/dom@9.3.3':
+ '@testing-library/dom@10.1.0':
dependencies:
- '@babel/code-frame': 7.23.5
+ '@babel/code-frame': 7.24.7
'@babel/runtime': 7.23.4
'@types/aria-query': 5.0.1
- aria-query: 5.1.3
+ aria-query: 5.3.0
chalk: 4.1.2
dom-accessibility-api: 0.5.16
lz-string: 1.5.0
@@ -15730,7 +16764,7 @@ snapshots:
lz-string: 1.5.0
pretty-format: 27.5.1
- '@testing-library/jest-dom@6.4.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.12.7))(vitest@0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3))':
+ '@testing-library/jest-dom@6.4.5(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.14.9))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1))':
dependencies:
'@adobe/css-tools': 4.3.3
'@babel/runtime': 7.23.4
@@ -15743,21 +16777,21 @@ snapshots:
optionalDependencies:
'@jest/globals': 29.7.0
'@types/jest': 29.5.12
- jest: 29.7.0(@types/node@20.12.7)
- vitest: 0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3)
+ jest: 29.7.0(@types/node@20.14.9)
+ vitest: 1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1)
- '@testing-library/user-event@14.5.2(@testing-library/dom@9.3.4)':
+ '@testing-library/user-event@14.5.2(@testing-library/dom@10.1.0)':
dependencies:
- '@testing-library/dom': 9.3.4
+ '@testing-library/dom': 10.1.0
- '@testing-library/vue@8.0.3(@vue/compiler-sfc@3.4.26)(@vue/server-renderer@3.4.26(vue@3.4.26(typescript@5.4.5)))(vue@3.4.26(typescript@5.4.5))':
+ '@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.31)(@vue/server-renderer@3.4.31(vue@3.4.31(typescript@5.5.3)))(vue@3.4.31(typescript@5.5.3))':
dependencies:
'@babel/runtime': 7.23.4
- '@testing-library/dom': 9.3.3
- '@vue/test-utils': 2.4.1(@vue/server-renderer@3.4.26(vue@3.4.26(typescript@5.4.5)))(vue@3.4.26(typescript@5.4.5))
- vue: 3.4.26(typescript@5.4.5)
+ '@testing-library/dom': 9.3.4
+ '@vue/test-utils': 2.4.1(@vue/server-renderer@3.4.31(vue@3.4.31(typescript@5.5.3)))(vue@3.4.31(typescript@5.5.3))
+ vue: 3.4.31(typescript@5.5.3)
optionalDependencies:
- '@vue/compiler-sfc': 3.4.26
+ '@vue/compiler-sfc': 3.4.31
transitivePeerDependencies:
- '@vue/server-renderer'
@@ -15765,7 +16799,7 @@ snapshots:
'@trysound/sax@0.2.0': {}
- '@tsd/typescript@5.3.3': {}
+ '@tsd/typescript@5.4.5': {}
'@twemoji/parser@15.0.0': {}
@@ -15773,7 +16807,7 @@ snapshots:
'@types/accepts@1.3.7':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/archiver@6.0.2':
dependencies:
@@ -15785,31 +16819,31 @@ snapshots:
'@types/babel__core@7.20.0':
dependencies:
- '@babel/parser': 7.24.0
- '@babel/types': 7.24.0
+ '@babel/parser': 7.24.7
+ '@babel/types': 7.24.7
'@types/babel__generator': 7.6.4
'@types/babel__template': 7.4.1
'@types/babel__traverse': 7.20.0
'@types/babel__generator@7.6.4':
dependencies:
- '@babel/types': 7.24.0
+ '@babel/types': 7.24.7
'@types/babel__template@7.4.1':
dependencies:
- '@babel/parser': 7.24.0
- '@babel/types': 7.24.0
+ '@babel/parser': 7.24.7
+ '@babel/types': 7.24.7
'@types/babel__traverse@7.20.0':
dependencies:
- '@babel/types': 7.24.0
+ '@babel/types': 7.24.7
'@types/bcryptjs@2.4.6': {}
'@types/body-parser@1.19.5':
dependencies:
'@types/connect': 3.4.35
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/braces@3.0.1': {}
@@ -15817,15 +16851,9 @@ snapshots:
dependencies:
'@types/http-cache-semantics': 4.0.4
'@types/keyv': 3.1.4
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/responselike': 1.0.0
- '@types/chai-subset@1.3.5':
- dependencies:
- '@types/chai': 4.3.11
-
- '@types/chai@4.3.11': {}
-
'@types/color-convert@2.0.3':
dependencies:
'@types/color-name': 1.1.1
@@ -15834,11 +16862,11 @@ snapshots:
'@types/connect@3.4.35':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/connect@3.4.36':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/content-disposition@0.5.8': {}
@@ -15846,14 +16874,14 @@ snapshots:
'@types/cookies@0.9.0':
dependencies:
- '@types/connect': 3.4.35
+ '@types/connect': 3.4.36
'@types/express': 4.17.17
'@types/keygrip': 1.0.6
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/cross-spawn@6.0.2':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/debug@4.1.12':
dependencies:
@@ -15861,6 +16889,8 @@ snapshots:
'@types/detect-port@1.3.2': {}
+ '@types/diff@5.2.1': {}
+
'@types/disposable-email-domains@1.0.2': {}
'@types/doctrine@0.0.3': {}
@@ -15878,7 +16908,7 @@ snapshots:
'@types/eslint@7.29.0':
dependencies:
'@types/estree': 1.0.5
- '@types/json-schema': 7.0.12
+ '@types/json-schema': 7.0.15
'@types/estree@0.0.51': {}
@@ -15886,7 +16916,7 @@ snapshots:
'@types/express-serve-static-core@4.17.33':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/qs': 6.9.7
'@types/range-parser': 1.2.4
@@ -15901,16 +16931,16 @@ snapshots:
'@types/fluent-ffmpeg@2.1.24':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/glob@7.2.0':
dependencies:
'@types/minimatch': 5.1.2
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/graceful-fs@4.1.6':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/hast@3.0.4':
dependencies:
@@ -15924,9 +16954,9 @@ snapshots:
'@types/http-errors@2.0.4': {}
- '@types/http-link-header@1.0.5':
+ '@types/http-link-header@1.0.7':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/istanbul-lib-coverage@2.0.4': {}
@@ -15945,9 +16975,9 @@ snapshots:
'@types/js-yaml@4.0.9': {}
- '@types/jsdom@21.1.6':
+ '@types/jsdom@21.1.7':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/tough-cookie': 4.0.2
parse5: 7.1.2
@@ -15957,7 +16987,7 @@ snapshots:
'@types/json5@0.0.29': {}
- '@types/jsonld@1.5.13': {}
+ '@types/jsonld@1.5.14': {}
'@types/jsrsasign@10.5.14': {}
@@ -15965,7 +16995,7 @@ snapshots:
'@types/keyv@3.1.4':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/koa-compose@3.2.8':
dependencies:
@@ -15980,7 +17010,7 @@ snapshots:
'@types/http-errors': 2.0.4
'@types/keygrip': 1.0.6
'@types/koa-compose': 3.2.8
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/koa__router@12.0.3':
dependencies:
@@ -15998,7 +17028,7 @@ snapshots:
'@types/mdx@2.0.3': {}
- '@types/micromatch@4.0.7':
+ '@types/micromatch@4.0.9':
dependencies:
'@types/braces': 3.0.1
@@ -16014,28 +17044,24 @@ snapshots:
'@types/mute-stream@0.0.4':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/mysql@2.15.22':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/node-fetch@2.6.4':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
form-data: 3.0.1
- '@types/node-fetch@3.0.3':
- dependencies:
- node-fetch: 3.3.2
-
'@types/node@18.17.15': {}
'@types/node@20.11.5':
dependencies:
undici-types: 5.26.5
- '@types/node@20.12.7':
+ '@types/node@20.14.9':
dependencies:
undici-types: 5.26.5
@@ -16045,7 +17071,7 @@ snapshots:
'@types/nodemailer@6.4.15':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/normalize-package-data@2.4.1': {}
@@ -16056,11 +17082,11 @@ snapshots:
'@types/oauth2orize@1.11.5':
dependencies:
'@types/express': 4.17.17
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
- '@types/oauth@0.9.4':
+ '@types/oauth@0.9.5':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/offscreencanvas@2019.3.0': {}
@@ -16068,17 +17094,17 @@ snapshots:
'@types/pg-pool@2.0.4':
dependencies:
- '@types/pg': 8.11.5
+ '@types/pg': 8.11.6
- '@types/pg@8.11.5':
+ '@types/pg@8.11.6':
dependencies:
- '@types/node': 20.12.7
- pg-protocol: 1.6.0
+ '@types/node': 20.14.9
+ pg-protocol: 1.6.1
pg-types: 4.0.1
'@types/pg@8.6.1':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
pg-protocol: 1.6.1
pg-types: 2.2.0
@@ -16092,7 +17118,7 @@ snapshots:
'@types/qrcode@1.5.5':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/qs@6.9.7': {}
@@ -16110,7 +17136,7 @@ snapshots:
'@types/readdir-glob@1.1.1':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/rename@1.0.7': {}
@@ -16118,7 +17144,7 @@ snapshots:
'@types/responselike@1.0.0':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/sanitize-html@2.11.0':
dependencies:
@@ -16135,7 +17161,7 @@ snapshots:
'@types/serve-static@1.15.1':
dependencies:
'@types/mime': 3.0.1
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/serviceworker@0.0.67': {}
@@ -16167,15 +17193,17 @@ snapshots:
'@types/unist@3.0.2': {}
+ '@types/uuid@10.0.0': {}
+
'@types/uuid@9.0.8': {}
'@types/vary@1.1.3':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/web-push@3.6.3':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/webgl-ext@0.0.30': {}
@@ -16183,7 +17211,7 @@ snapshots:
'@types/ws@8.5.10':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/yargs-parser@21.0.0': {}
@@ -16193,19 +17221,19 @@ snapshots:
'@types/yauzl@2.10.0':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
optional: true
- '@typescript-eslint/eslint-plugin@6.11.0(@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.3))(eslint@8.53.0)(typescript@5.3.3)':
+ '@typescript-eslint/eslint-plugin@6.11.0(@typescript-eslint/parser@6.11.0(eslint@9.6.0)(typescript@5.3.3))(eslint@9.6.0)(typescript@5.3.3)':
dependencies:
'@eslint-community/regexpp': 4.6.2
- '@typescript-eslint/parser': 6.11.0(eslint@8.53.0)(typescript@5.3.3)
+ '@typescript-eslint/parser': 6.11.0(eslint@9.6.0)(typescript@5.3.3)
'@typescript-eslint/scope-manager': 6.11.0
- '@typescript-eslint/type-utils': 6.11.0(eslint@8.53.0)(typescript@5.3.3)
- '@typescript-eslint/utils': 6.11.0(eslint@8.53.0)(typescript@5.3.3)
+ '@typescript-eslint/type-utils': 6.11.0(eslint@9.6.0)(typescript@5.3.3)
+ '@typescript-eslint/utils': 6.11.0(eslint@9.6.0)(typescript@5.3.3)
'@typescript-eslint/visitor-keys': 6.11.0
debug: 4.3.4(supports-color@5.5.0)
- eslint: 8.53.0
+ eslint: 9.6.0
graphemer: 1.4.0
ignore: 5.2.4
natural-compare: 1.4.0
@@ -16216,16 +17244,16 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/eslint-plugin@7.1.0(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3)':
+ '@typescript-eslint/eslint-plugin@7.1.0(@typescript-eslint/parser@7.1.0(eslint@9.6.0)(typescript@5.3.3))(eslint@9.6.0)(typescript@5.3.3)':
dependencies:
'@eslint-community/regexpp': 4.6.2
- '@typescript-eslint/parser': 7.1.0(eslint@8.57.0)(typescript@5.3.3)
+ '@typescript-eslint/parser': 7.1.0(eslint@9.6.0)(typescript@5.3.3)
'@typescript-eslint/scope-manager': 7.1.0
- '@typescript-eslint/type-utils': 7.1.0(eslint@8.57.0)(typescript@5.3.3)
- '@typescript-eslint/utils': 7.1.0(eslint@8.57.0)(typescript@5.3.3)
+ '@typescript-eslint/type-utils': 7.1.0(eslint@9.6.0)(typescript@5.3.3)
+ '@typescript-eslint/utils': 7.1.0(eslint@9.6.0)(typescript@5.3.3)
'@typescript-eslint/visitor-keys': 7.1.0
debug: 4.3.4(supports-color@5.5.0)
- eslint: 8.57.0
+ eslint: 9.6.0
graphemer: 1.4.0
ignore: 5.2.4
natural-compare: 1.4.0
@@ -16236,62 +17264,60 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/eslint-plugin@7.7.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)':
+ '@typescript-eslint/eslint-plugin@7.15.0(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3)':
dependencies:
'@eslint-community/regexpp': 4.10.0
- '@typescript-eslint/parser': 7.7.1(eslint@8.57.0)(typescript@5.4.5)
- '@typescript-eslint/scope-manager': 7.7.1
- '@typescript-eslint/type-utils': 7.7.1(eslint@8.57.0)(typescript@5.4.5)
- '@typescript-eslint/utils': 7.7.1(eslint@8.57.0)(typescript@5.4.5)
- '@typescript-eslint/visitor-keys': 7.7.1
- debug: 4.3.4(supports-color@5.5.0)
- eslint: 8.57.0
+ '@typescript-eslint/parser': 7.15.0(eslint@9.6.0)(typescript@5.5.3)
+ '@typescript-eslint/scope-manager': 7.15.0
+ '@typescript-eslint/type-utils': 7.15.0(eslint@9.6.0)(typescript@5.5.3)
+ '@typescript-eslint/utils': 7.15.0(eslint@9.6.0)(typescript@5.5.3)
+ '@typescript-eslint/visitor-keys': 7.15.0
+ eslint: 9.6.0
graphemer: 1.4.0
ignore: 5.3.1
natural-compare: 1.4.0
- semver: 7.6.0
- ts-api-utils: 1.3.0(typescript@5.4.5)
+ ts-api-utils: 1.3.0(typescript@5.5.3)
optionalDependencies:
- typescript: 5.4.5
+ typescript: 5.5.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.3)':
+ '@typescript-eslint/parser@6.11.0(eslint@9.6.0)(typescript@5.3.3)':
dependencies:
'@typescript-eslint/scope-manager': 6.11.0
'@typescript-eslint/types': 6.11.0
'@typescript-eslint/typescript-estree': 6.11.0(typescript@5.3.3)
'@typescript-eslint/visitor-keys': 6.11.0
debug: 4.3.4(supports-color@5.5.0)
- eslint: 8.53.0
+ eslint: 9.6.0
optionalDependencies:
typescript: 5.3.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3)':
+ '@typescript-eslint/parser@7.1.0(eslint@9.6.0)(typescript@5.3.3)':
dependencies:
'@typescript-eslint/scope-manager': 7.1.0
'@typescript-eslint/types': 7.1.0
'@typescript-eslint/typescript-estree': 7.1.0(typescript@5.3.3)
'@typescript-eslint/visitor-keys': 7.1.0
debug: 4.3.4(supports-color@5.5.0)
- eslint: 8.57.0
+ eslint: 9.6.0
optionalDependencies:
typescript: 5.3.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5)':
+ '@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3)':
dependencies:
- '@typescript-eslint/scope-manager': 7.7.1
- '@typescript-eslint/types': 7.7.1
- '@typescript-eslint/typescript-estree': 7.7.1(typescript@5.4.5)
- '@typescript-eslint/visitor-keys': 7.7.1
- debug: 4.3.4(supports-color@5.5.0)
- eslint: 8.57.0
+ '@typescript-eslint/scope-manager': 7.15.0
+ '@typescript-eslint/types': 7.15.0
+ '@typescript-eslint/typescript-estree': 7.15.0(typescript@5.5.3)
+ '@typescript-eslint/visitor-keys': 7.15.0
+ debug: 4.3.5(supports-color@8.1.1)
+ eslint: 9.6.0
optionalDependencies:
- typescript: 5.4.5
+ typescript: 5.5.3
transitivePeerDependencies:
- supports-color
@@ -16305,44 +17331,44 @@ snapshots:
'@typescript-eslint/types': 7.1.0
'@typescript-eslint/visitor-keys': 7.1.0
- '@typescript-eslint/scope-manager@7.7.1':
+ '@typescript-eslint/scope-manager@7.15.0':
dependencies:
- '@typescript-eslint/types': 7.7.1
- '@typescript-eslint/visitor-keys': 7.7.1
+ '@typescript-eslint/types': 7.15.0
+ '@typescript-eslint/visitor-keys': 7.15.0
- '@typescript-eslint/type-utils@6.11.0(eslint@8.53.0)(typescript@5.3.3)':
+ '@typescript-eslint/type-utils@6.11.0(eslint@9.6.0)(typescript@5.3.3)':
dependencies:
'@typescript-eslint/typescript-estree': 6.11.0(typescript@5.3.3)
- '@typescript-eslint/utils': 6.11.0(eslint@8.53.0)(typescript@5.3.3)
- debug: 4.3.4(supports-color@5.5.0)
- eslint: 8.53.0
+ '@typescript-eslint/utils': 6.11.0(eslint@9.6.0)(typescript@5.3.3)
+ debug: 4.3.5(supports-color@8.1.1)
+ eslint: 9.6.0
ts-api-utils: 1.0.1(typescript@5.3.3)
optionalDependencies:
typescript: 5.3.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/type-utils@7.1.0(eslint@8.57.0)(typescript@5.3.3)':
+ '@typescript-eslint/type-utils@7.1.0(eslint@9.6.0)(typescript@5.3.3)':
dependencies:
'@typescript-eslint/typescript-estree': 7.1.0(typescript@5.3.3)
- '@typescript-eslint/utils': 7.1.0(eslint@8.57.0)(typescript@5.3.3)
+ '@typescript-eslint/utils': 7.1.0(eslint@9.6.0)(typescript@5.3.3)
debug: 4.3.4(supports-color@5.5.0)
- eslint: 8.57.0
+ eslint: 9.6.0
ts-api-utils: 1.0.1(typescript@5.3.3)
optionalDependencies:
typescript: 5.3.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/type-utils@7.7.1(eslint@8.57.0)(typescript@5.4.5)':
+ '@typescript-eslint/type-utils@7.15.0(eslint@9.6.0)(typescript@5.5.3)':
dependencies:
- '@typescript-eslint/typescript-estree': 7.7.1(typescript@5.4.5)
- '@typescript-eslint/utils': 7.7.1(eslint@8.57.0)(typescript@5.4.5)
- debug: 4.3.4(supports-color@5.5.0)
- eslint: 8.57.0
- ts-api-utils: 1.3.0(typescript@5.4.5)
+ '@typescript-eslint/typescript-estree': 7.15.0(typescript@5.5.3)
+ '@typescript-eslint/utils': 7.15.0(eslint@9.6.0)(typescript@5.5.3)
+ debug: 4.3.5(supports-color@8.1.1)
+ eslint: 9.6.0
+ ts-api-utils: 1.3.0(typescript@5.5.3)
optionalDependencies:
- typescript: 5.4.5
+ typescript: 5.5.3
transitivePeerDependencies:
- supports-color
@@ -16350,13 +17376,13 @@ snapshots:
'@typescript-eslint/types@7.1.0': {}
- '@typescript-eslint/types@7.7.1': {}
+ '@typescript-eslint/types@7.15.0': {}
'@typescript-eslint/typescript-estree@6.11.0(typescript@5.3.3)':
dependencies:
'@typescript-eslint/types': 6.11.0
'@typescript-eslint/visitor-keys': 6.11.0
- debug: 4.3.4(supports-color@5.5.0)
+ debug: 4.3.5(supports-color@8.1.1)
globby: 11.1.0
is-glob: 4.0.3
semver: 7.5.4
@@ -16381,59 +17407,56 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/typescript-estree@7.7.1(typescript@5.4.5)':
+ '@typescript-eslint/typescript-estree@7.15.0(typescript@5.5.3)':
dependencies:
- '@typescript-eslint/types': 7.7.1
- '@typescript-eslint/visitor-keys': 7.7.1
- debug: 4.3.4(supports-color@5.5.0)
+ '@typescript-eslint/types': 7.15.0
+ '@typescript-eslint/visitor-keys': 7.15.0
+ debug: 4.3.5(supports-color@8.1.1)
globby: 11.1.0
is-glob: 4.0.3
minimatch: 9.0.4
semver: 7.6.0
- ts-api-utils: 1.3.0(typescript@5.4.5)
+ ts-api-utils: 1.3.0(typescript@5.5.3)
optionalDependencies:
- typescript: 5.4.5
+ typescript: 5.5.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@6.11.0(eslint@8.53.0)(typescript@5.3.3)':
+ '@typescript-eslint/utils@6.11.0(eslint@9.6.0)(typescript@5.3.3)':
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0)
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0)
'@types/json-schema': 7.0.12
'@types/semver': 7.5.8
'@typescript-eslint/scope-manager': 6.11.0
'@typescript-eslint/types': 6.11.0
'@typescript-eslint/typescript-estree': 6.11.0(typescript@5.3.3)
- eslint: 8.53.0
+ eslint: 9.6.0
semver: 7.5.4
transitivePeerDependencies:
- supports-color
- typescript
- '@typescript-eslint/utils@7.1.0(eslint@8.57.0)(typescript@5.3.3)':
+ '@typescript-eslint/utils@7.1.0(eslint@9.6.0)(typescript@5.3.3)':
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0)
'@types/json-schema': 7.0.12
'@types/semver': 7.5.8
'@typescript-eslint/scope-manager': 7.1.0
'@typescript-eslint/types': 7.1.0
'@typescript-eslint/typescript-estree': 7.1.0(typescript@5.3.3)
- eslint: 8.57.0
+ eslint: 9.6.0
semver: 7.6.0
transitivePeerDependencies:
- supports-color
- typescript
- '@typescript-eslint/utils@7.7.1(eslint@8.57.0)(typescript@5.4.5)':
+ '@typescript-eslint/utils@7.15.0(eslint@9.6.0)(typescript@5.5.3)':
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
- '@types/json-schema': 7.0.15
- '@types/semver': 7.5.8
- '@typescript-eslint/scope-manager': 7.7.1
- '@typescript-eslint/types': 7.7.1
- '@typescript-eslint/typescript-estree': 7.7.1(typescript@5.4.5)
- eslint: 8.57.0
- semver: 7.6.0
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0)
+ '@typescript-eslint/scope-manager': 7.15.0
+ '@typescript-eslint/types': 7.15.0
+ '@typescript-eslint/typescript-estree': 7.15.0(typescript@5.5.3)
+ eslint: 9.6.0
transitivePeerDependencies:
- supports-color
- typescript
@@ -16448,83 +17471,58 @@ snapshots:
'@typescript-eslint/types': 7.1.0
eslint-visitor-keys: 3.4.3
- '@typescript-eslint/visitor-keys@7.7.1':
+ '@typescript-eslint/visitor-keys@7.15.0':
dependencies:
- '@typescript-eslint/types': 7.7.1
+ '@typescript-eslint/types': 7.15.0
eslint-visitor-keys: 3.4.3
'@ungap/structured-clone@1.2.0': {}
- '@vitejs/plugin-vue@5.0.4(vite@5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3))(vue@3.4.26(typescript@5.4.5))':
+ '@vitejs/plugin-vue@5.0.5(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1))(vue@3.4.31(typescript@5.5.3))':
dependencies:
- vite: 5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3)
- vue: 3.4.26(typescript@5.4.5)
+ vite: 5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1)
+ vue: 3.4.31(typescript@5.5.3)
- '@vitest/coverage-v8@0.34.6(vitest@0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3))':
+ '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1))':
dependencies:
'@ampproject/remapping': 2.2.1
'@bcoe/v8-coverage': 0.2.3
+ debug: 4.3.4(supports-color@5.5.0)
istanbul-lib-coverage: 3.2.2
istanbul-lib-report: 3.0.1
- istanbul-lib-source-maps: 4.0.1
+ istanbul-lib-source-maps: 5.0.4
istanbul-reports: 3.1.6
- magic-string: 0.30.7
+ magic-string: 0.30.10
+ magicast: 0.3.4
picocolors: 1.0.0
std-env: 3.7.0
+ strip-literal: 2.1.0
test-exclude: 6.0.0
- v8-to-istanbul: 9.2.0
- vitest: 0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3)
+ vitest: 1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1)
transitivePeerDependencies:
- supports-color
- '@vitest/expect@0.34.6':
+ '@vitest/expect@1.6.0':
dependencies:
- '@vitest/spy': 0.34.6
- '@vitest/utils': 0.34.6
- chai: 4.3.10
-
- '@vitest/expect@1.3.1':
- dependencies:
- '@vitest/spy': 1.3.1
- '@vitest/utils': 1.3.1
+ '@vitest/spy': 1.6.0
+ '@vitest/utils': 1.6.0
chai: 4.3.10
- '@vitest/runner@0.34.6':
- dependencies:
- '@vitest/utils': 0.34.6
- p-limit: 4.0.0
- pathe: 1.1.2
-
- '@vitest/snapshot@0.34.6':
- dependencies:
- magic-string: 0.30.7
- pathe: 1.1.2
- pretty-format: 29.7.0
-
- '@vitest/spy@0.34.6':
- dependencies:
- tinyspy: 2.2.0
-
- '@vitest/spy@1.3.1':
- dependencies:
- tinyspy: 2.2.0
-
- '@vitest/spy@1.6.0':
+ '@vitest/runner@1.6.0':
dependencies:
- tinyspy: 2.2.0
+ '@vitest/utils': 1.6.0
+ p-limit: 5.0.0
+ pathe: 1.1.2
- '@vitest/utils@0.34.6':
+ '@vitest/snapshot@1.6.0':
dependencies:
- diff-sequences: 29.6.3
- loupe: 2.3.7
+ magic-string: 0.30.10
+ pathe: 1.1.2
pretty-format: 29.7.0
- '@vitest/utils@1.3.1':
+ '@vitest/spy@1.6.0':
dependencies:
- diff-sequences: 29.6.3
- estree-walker: 3.0.3
- loupe: 2.3.7
- pretty-format: 29.7.0
+ tinyspy: 2.2.0
'@vitest/utils@1.6.0':
dependencies:
@@ -16537,125 +17535,136 @@ snapshots:
dependencies:
'@volar/source-map': 2.2.0
+ '@volar/language-core@2.4.0-alpha.11':
+ dependencies:
+ '@volar/source-map': 2.4.0-alpha.11
+
'@volar/source-map@2.2.0':
dependencies:
muggle-string: 0.4.1
+ '@volar/source-map@2.4.0-alpha.11': {}
+
'@volar/typescript@2.2.0':
dependencies:
'@volar/language-core': 2.2.0
path-browserify: 1.0.1
- '@vue/compiler-core@3.4.21':
+ '@volar/typescript@2.4.0-alpha.11':
dependencies:
- '@babel/parser': 7.24.0
- '@vue/shared': 3.4.21
- entities: 4.5.0
- estree-walker: 2.0.2
- source-map-js: 1.0.2
+ '@volar/language-core': 2.4.0-alpha.11
+ path-browserify: 1.0.1
+ vscode-uri: 3.0.8
- '@vue/compiler-core@3.4.25':
+ '@vue/compiler-core@3.4.29':
dependencies:
- '@babel/parser': 7.24.5
- '@vue/shared': 3.4.25
+ '@babel/parser': 7.24.7
+ '@vue/shared': 3.4.29
entities: 4.5.0
estree-walker: 2.0.2
source-map-js: 1.2.0
- '@vue/compiler-core@3.4.26':
+ '@vue/compiler-core@3.4.31':
dependencies:
- '@babel/parser': 7.24.5
- '@vue/shared': 3.4.26
+ '@babel/parser': 7.24.7
+ '@vue/shared': 3.4.31
entities: 4.5.0
estree-walker: 2.0.2
source-map-js: 1.2.0
- '@vue/compiler-dom@3.4.21':
- dependencies:
- '@vue/compiler-core': 3.4.21
- '@vue/shared': 3.4.21
-
- '@vue/compiler-dom@3.4.25':
+ '@vue/compiler-dom@3.4.29':
dependencies:
- '@vue/compiler-core': 3.4.25
- '@vue/shared': 3.4.25
+ '@vue/compiler-core': 3.4.29
+ '@vue/shared': 3.4.29
- '@vue/compiler-dom@3.4.26':
+ '@vue/compiler-dom@3.4.31':
dependencies:
- '@vue/compiler-core': 3.4.26
- '@vue/shared': 3.4.26
+ '@vue/compiler-core': 3.4.31
+ '@vue/shared': 3.4.31
- '@vue/compiler-sfc@3.4.26':
+ '@vue/compiler-sfc@3.4.31':
dependencies:
- '@babel/parser': 7.24.5
- '@vue/compiler-core': 3.4.26
- '@vue/compiler-dom': 3.4.26
- '@vue/compiler-ssr': 3.4.26
- '@vue/shared': 3.4.26
+ '@babel/parser': 7.24.7
+ '@vue/compiler-core': 3.4.31
+ '@vue/compiler-dom': 3.4.31
+ '@vue/compiler-ssr': 3.4.31
+ '@vue/shared': 3.4.31
estree-walker: 2.0.2
magic-string: 0.30.10
postcss: 8.4.38
source-map-js: 1.2.0
- '@vue/compiler-ssr@3.4.26':
+ '@vue/compiler-ssr@3.4.31':
dependencies:
- '@vue/compiler-dom': 3.4.26
- '@vue/shared': 3.4.26
+ '@vue/compiler-dom': 3.4.31
+ '@vue/shared': 3.4.31
'@vue/devtools-api@6.6.1': {}
- '@vue/language-core@2.0.16(typescript@5.4.5)':
+ '@vue/language-core@2.0.16(typescript@5.5.3)':
dependencies:
'@volar/language-core': 2.2.0
- '@vue/compiler-dom': 3.4.25
- '@vue/shared': 3.4.25
+ '@vue/compiler-dom': 3.4.29
+ '@vue/shared': 3.4.29
computeds: 0.0.1
minimatch: 9.0.4
path-browserify: 1.0.1
vue-template-compiler: 2.7.14
optionalDependencies:
- typescript: 5.4.5
+ typescript: 5.5.3
- '@vue/reactivity@3.4.26':
+ '@vue/language-core@2.0.24(typescript@5.5.3)':
dependencies:
- '@vue/shared': 3.4.26
+ '@volar/language-core': 2.4.0-alpha.11
+ '@vue/compiler-dom': 3.4.29
+ '@vue/shared': 3.4.29
+ computeds: 0.0.1
+ minimatch: 9.0.4
+ muggle-string: 0.4.1
+ path-browserify: 1.0.1
+ vue-template-compiler: 2.7.14
+ optionalDependencies:
+ typescript: 5.5.3
- '@vue/runtime-core@3.4.26':
+ '@vue/reactivity@3.4.31':
dependencies:
- '@vue/reactivity': 3.4.26
- '@vue/shared': 3.4.26
+ '@vue/shared': 3.4.31
- '@vue/runtime-dom@3.4.26':
+ '@vue/runtime-core@3.4.31':
dependencies:
- '@vue/runtime-core': 3.4.26
- '@vue/shared': 3.4.26
- csstype: 3.1.3
+ '@vue/reactivity': 3.4.31
+ '@vue/shared': 3.4.31
- '@vue/server-renderer@3.4.26(vue@3.4.26(typescript@5.4.5))':
+ '@vue/runtime-dom@3.4.31':
dependencies:
- '@vue/compiler-ssr': 3.4.26
- '@vue/shared': 3.4.26
- vue: 3.4.26(typescript@5.4.5)
+ '@vue/reactivity': 3.4.31
+ '@vue/runtime-core': 3.4.31
+ '@vue/shared': 3.4.31
+ csstype: 3.1.3
- '@vue/shared@3.4.21': {}
+ '@vue/server-renderer@3.4.31(vue@3.4.31(typescript@5.5.3))':
+ dependencies:
+ '@vue/compiler-ssr': 3.4.31
+ '@vue/shared': 3.4.31
+ vue: 3.4.31(typescript@5.5.3)
- '@vue/shared@3.4.25': {}
+ '@vue/shared@3.4.29': {}
- '@vue/shared@3.4.26': {}
+ '@vue/shared@3.4.31': {}
- '@vue/test-utils@2.4.1(@vue/server-renderer@3.4.26(vue@3.4.26(typescript@5.4.5)))(vue@3.4.26(typescript@5.4.5))':
+ '@vue/test-utils@2.4.1(@vue/server-renderer@3.4.31(vue@3.4.31(typescript@5.5.3)))(vue@3.4.31(typescript@5.5.3))':
dependencies:
js-beautify: 1.14.9
- vue: 3.4.26(typescript@5.4.5)
+ vue: 3.4.31(typescript@5.5.3)
vue-component-type-helpers: 1.8.4
optionalDependencies:
- '@vue/server-renderer': 3.4.26(vue@3.4.26(typescript@5.4.5))
+ '@vue/server-renderer': 3.4.31(vue@3.4.31(typescript@5.5.3))
'@webgpu/types@0.1.30': {}
- '@yarnpkg/esbuild-plugin-pnp@3.0.0-rc.15(esbuild@0.20.2)':
+ '@yarnpkg/esbuild-plugin-pnp@3.0.0-rc.15(esbuild@0.19.11)':
dependencies:
- esbuild: 0.20.2
+ esbuild: 0.19.11
tslib: 2.6.2
'@yarnpkg/fslib@2.10.3':
@@ -16683,22 +17692,22 @@ snapshots:
mime-types: 2.1.35
negotiator: 0.6.3
- acorn-import-assertions@1.9.0(acorn@8.11.3):
+ acorn-import-assertions@1.9.0(acorn@8.12.0):
dependencies:
- acorn: 8.11.3
+ acorn: 8.12.0
optional: true
- acorn-import-attributes@1.9.5(acorn@8.11.3):
+ acorn-import-attributes@1.9.5(acorn@8.12.0):
dependencies:
- acorn: 8.11.3
+ acorn: 8.12.0
acorn-jsx@5.3.2(acorn@7.4.1):
dependencies:
acorn: 7.4.1
- acorn-jsx@5.3.2(acorn@8.11.3):
+ acorn-jsx@5.3.2(acorn@8.12.0):
dependencies:
- acorn: 8.11.3
+ acorn: 8.12.0
acorn-walk@7.2.0: {}
@@ -16706,7 +17715,7 @@ snapshots:
acorn@7.4.1: {}
- acorn@8.11.3: {}
+ acorn@8.12.0: {}
address@1.2.2: {}
@@ -16720,13 +17729,13 @@ snapshots:
agent-base@6.0.2:
dependencies:
- debug: 4.3.4(supports-color@5.5.0)
+ debug: 4.3.5(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
agent-base@7.1.0:
dependencies:
- debug: 4.3.4(supports-color@5.5.0)
+ debug: 4.3.5(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@@ -16740,7 +17749,7 @@ snapshots:
clean-stack: 5.2.0
indent-string: 5.0.0
- aiscript-vscode@https://codeload.github.com/aiscript-dev/aiscript-vscode/tar.gz/34bf4e1530efcf1efa855bd04e2dab39735e1b02:
+ aiscript-vscode@https://codeload.github.com/aiscript-dev/aiscript-vscode/tar.gz/e1e1b27f2f72cd28a473e004b6da0d8fc0bd40d9:
dependencies:
'@aiscript-dev/aiscript-languageserver': https://github.com/aiscript-dev/aiscript-languageserver/releases/download/0.1.6/aiscript-dev-aiscript-languageserver-0.1.6.tgz
vscode-languageclient: 9.0.1
@@ -16749,7 +17758,15 @@ snapshots:
optionalDependencies:
ajv: 8.13.0
- ajv-formats@2.1.1(ajv@8.13.0):
+ ajv-draft-04@1.0.0(ajv@8.16.0):
+ optionalDependencies:
+ ajv: 8.16.0
+
+ ajv-formats@2.1.1(ajv@8.16.0):
+ optionalDependencies:
+ ajv: 8.16.0
+
+ ajv-formats@3.0.1(ajv@8.13.0):
optionalDependencies:
ajv: 8.13.0
@@ -16760,6 +17777,13 @@ snapshots:
json-schema-traverse: 0.4.1
uri-js: 4.4.1
+ ajv@8.12.0:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ json-schema-traverse: 1.0.0
+ require-from-string: 2.0.2
+ uri-js: 4.4.1
+
ajv@8.13.0:
dependencies:
fast-deep-equal: 3.1.3
@@ -16767,6 +17791,13 @@ snapshots:
require-from-string: 2.0.2
uri-js: 4.4.1
+ ajv@8.16.0:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ json-schema-traverse: 1.0.0
+ require-from-string: 2.0.2
+ uri-js: 4.4.1
+
ansi-colors@4.1.3: {}
ansi-escapes@4.3.2:
@@ -16809,7 +17840,7 @@ snapshots:
archiver-utils@5.0.2:
dependencies:
- glob: 10.3.12
+ glob: 10.4.2
graceful-fs: 4.2.11
is-stream: 2.0.1
lazystream: 1.0.1
@@ -16843,10 +17874,18 @@ snapshots:
argparse@2.0.1: {}
+ aria-hidden@1.2.4:
+ dependencies:
+ tslib: 2.6.2
+
aria-query@5.1.3:
dependencies:
deep-equal: 2.2.0
+ aria-query@5.3.0:
+ dependencies:
+ dequal: 2.0.3
+
array-buffer-byte-length@1.0.0:
dependencies:
call-bind: 1.0.2
@@ -16942,6 +17981,8 @@ snapshots:
dependencies:
tslib: 2.6.2
+ async@0.2.10: {}
+
async@3.2.4: {}
asynckit@0.4.0: {}
@@ -16956,12 +17997,12 @@ snapshots:
dependencies:
'@fastify/error': 3.4.0
archy: 1.0.0
- debug: 4.3.4(supports-color@5.5.0)
+ debug: 4.3.5(supports-color@8.1.1)
fastq: 1.17.1
transitivePeerDependencies:
- supports-color
- aws-sdk-client-mock@3.0.1:
+ aws-sdk-client-mock@4.0.1:
dependencies:
'@types/sinon': 10.0.13
sinon: 16.1.3
@@ -16973,13 +18014,13 @@ snapshots:
axios@0.24.0:
dependencies:
- follow-redirects: 1.15.2(debug@4.3.4)
+ follow-redirects: 1.15.2(debug@4.3.5)
transitivePeerDependencies:
- debug
- axios@1.6.2(debug@4.3.4):
+ axios@1.6.2(debug@4.3.5):
dependencies:
- follow-redirects: 1.15.2(debug@4.3.4)
+ follow-redirects: 1.15.2(debug@4.3.5)
form-data: 4.0.0
proxy-from-env: 1.1.0
transitivePeerDependencies:
@@ -16987,9 +18028,9 @@ snapshots:
b4a@1.6.4: {}
- babel-core@7.0.0-bridge.0(@babel/core@7.24.0):
+ babel-core@7.0.0-bridge.0(@babel/core@7.24.7):
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
babel-jest@29.7.0(@babel/core@7.23.5):
dependencies:
@@ -17017,31 +18058,31 @@ snapshots:
babel-plugin-jest-hoist@29.6.3:
dependencies:
'@babel/template': 7.24.0
- '@babel/types': 7.24.0
+ '@babel/types': 7.24.7
'@types/babel__core': 7.20.0
'@types/babel__traverse': 7.20.0
- babel-plugin-polyfill-corejs2@0.4.6(@babel/core@7.24.0):
+ babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.24.7):
dependencies:
- '@babel/compat-data': 7.23.5
- '@babel/core': 7.24.0
- '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.24.0)
+ '@babel/compat-data': 7.24.7
+ '@babel/core': 7.24.7
+ '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.7)
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- babel-plugin-polyfill-corejs3@0.8.6(@babel/core@7.24.0):
+ babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.7):
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.24.0)
- core-js-compat: 3.33.3
+ '@babel/core': 7.24.7
+ '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.7)
+ core-js-compat: 3.37.1
transitivePeerDependencies:
- supports-color
- babel-plugin-polyfill-regenerator@0.5.3(@babel/core@7.24.0):
+ babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.24.7):
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.7)
transitivePeerDependencies:
- supports-color
@@ -17069,7 +18110,7 @@ snapshots:
babel-walk@3.0.0-canary-5:
dependencies:
- '@babel/types': 7.23.5
+ '@babel/types': 7.24.0
bail@2.0.2: {}
@@ -17121,23 +18162,6 @@ snapshots:
bn.js@4.12.0: {}
- body-parser@1.20.1:
- dependencies:
- bytes: 3.1.2
- content-type: 1.0.5
- debug: 2.6.9
- depd: 2.0.0
- destroy: 1.2.0
- http-errors: 2.0.0
- iconv-lite: 0.4.24
- on-finished: 2.4.1
- qs: 6.11.0
- raw-body: 2.5.1
- type-is: 1.6.18
- unpipe: 1.0.0
- transitivePeerDependencies:
- - supports-color
-
body-parser@1.20.2:
dependencies:
bytes: 3.1.2
@@ -17176,6 +18200,10 @@ snapshots:
dependencies:
fill-range: 7.0.1
+ braces@3.0.3:
+ dependencies:
+ fill-range: 7.1.1
+
broadcast-channel@7.0.0:
dependencies:
'@babel/runtime': 7.23.4
@@ -17235,7 +18263,7 @@ snapshots:
node-gyp-build: 4.6.0
optional: true
- bullmq@5.7.8:
+ bullmq@5.8.3:
dependencies:
cron-parser: 4.8.1
ioredis: 5.4.1
@@ -17263,8 +18291,8 @@ snapshots:
dependencies:
'@npmcli/fs': 3.1.0
fs-minipass: 3.0.2
- glob: 10.3.12
- lru-cache: 10.0.2
+ glob: 10.4.2
+ lru-cache: 10.2.2
minipass: 7.0.4
minipass-collect: 1.0.2
minipass-flush: 1.0.5
@@ -17288,6 +18316,16 @@ snapshots:
normalize-url: 8.0.0
responselike: 3.0.0
+ cacheable-request@12.0.1:
+ dependencies:
+ '@types/http-cache-semantics': 4.0.4
+ get-stream: 9.0.1
+ http-cache-semantics: 4.1.1
+ keyv: 4.5.4
+ mimic-response: 4.0.0
+ normalize-url: 8.0.1
+ responselike: 3.0.0
+
cacheable-request@7.0.2:
dependencies:
clone-response: 1.0.3
@@ -17382,26 +18420,26 @@ snapshots:
dependencies:
is-regex: 1.1.4
- chart.js@4.4.2:
+ chart.js@4.4.3:
dependencies:
'@kurkle/color': 0.3.2
- chartjs-adapter-date-fns@3.0.0(chart.js@4.4.2)(date-fns@2.30.0):
+ chartjs-adapter-date-fns@3.0.0(chart.js@4.4.3)(date-fns@2.30.0):
dependencies:
- chart.js: 4.4.2
+ chart.js: 4.4.3
date-fns: 2.30.0
- chartjs-chart-matrix@2.0.1(chart.js@4.4.2):
+ chartjs-chart-matrix@2.0.1(chart.js@4.4.3):
dependencies:
- chart.js: 4.4.2
+ chart.js: 4.4.3
- chartjs-plugin-gradient@0.6.1(chart.js@4.4.2):
+ chartjs-plugin-gradient@0.6.1(chart.js@4.4.3):
dependencies:
- chart.js: 4.4.2
+ chart.js: 4.4.3
- chartjs-plugin-zoom@2.0.1(chart.js@4.4.2):
+ chartjs-plugin-zoom@2.0.1(chart.js@4.4.3):
dependencies:
- chart.js: 4.4.2
+ chart.js: 4.4.3
hammerjs: 2.0.8
check-error@1.0.3:
@@ -17445,7 +18483,7 @@ snapshots:
chownr@2.0.0: {}
- chromatic@11.3.0: {}
+ chromatic@11.5.4: {}
ci-info@3.7.1: {}
@@ -17470,8 +18508,6 @@ snapshots:
parse5-htmlparser2-tree-adapter: 6.0.1
yargs: 16.2.0
- cli-spinners@2.7.0: {}
-
cli-spinners@2.9.2: {}
cli-table3@0.6.3:
@@ -17623,8 +18659,8 @@ snapshots:
constantinople@4.0.1:
dependencies:
- '@babel/parser': 7.23.9
- '@babel/types': 7.23.5
+ '@babel/parser': 7.24.5
+ '@babel/types': 7.24.0
content-disposition@0.5.4:
dependencies:
@@ -17642,7 +18678,7 @@ snapshots:
cookie@0.6.0: {}
- core-js-compat@3.33.3:
+ core-js-compat@3.37.1:
dependencies:
browserslist: 4.23.0
@@ -17664,13 +18700,13 @@ snapshots:
crc-32: 1.2.2
readable-stream: 4.3.0
- create-jest@29.7.0(@types/node@20.12.7):
+ create-jest@29.7.0(@types/node@20.14.9):
dependencies:
'@jest/types': 29.6.3
chalk: 4.1.2
exit: 0.1.2
graceful-fs: 4.2.11
- jest-config: 29.7.0(@types/node@20.12.7)
+ jest-config: 29.7.0(@types/node@20.14.9)
jest-util: 29.7.0
prompts: 2.4.2
transitivePeerDependencies:
@@ -17716,7 +18752,9 @@ snapshots:
shebang-command: 2.0.0
which: 2.0.2
- crypto-random-string@2.0.0: {}
+ crypto-random-string@4.0.0:
+ dependencies:
+ type-fest: 1.4.0
css-declaration-sorter@7.2.0(postcss@8.4.38):
dependencies:
@@ -17804,52 +18842,7 @@ snapshots:
dependencies:
uniq: 1.0.1
- cypress@13.7.3:
- dependencies:
- '@cypress/request': 3.0.0
- '@cypress/xvfb': 1.2.4(supports-color@8.1.1)
- '@types/sinonjs__fake-timers': 8.1.1
- '@types/sizzle': 2.3.3
- arch: 2.2.0
- blob-util: 2.0.2
- bluebird: 3.7.2
- buffer: 5.7.1
- cachedir: 2.3.0
- chalk: 4.1.2
- check-more-types: 2.24.0
- cli-cursor: 3.1.0
- cli-table3: 0.6.3
- commander: 6.2.1
- common-tags: 1.8.2
- dayjs: 1.11.10
- debug: 4.3.4(supports-color@8.1.1)
- enquirer: 2.3.6
- eventemitter2: 6.4.7
- execa: 4.1.0
- executable: 4.1.1
- extract-zip: 2.0.1(supports-color@8.1.1)
- figures: 3.2.0
- fs-extra: 9.1.0
- getos: 3.2.1
- is-ci: 3.0.1
- is-installed-globally: 0.4.0
- lazy-ass: 1.6.0
- listr2: 3.14.0(enquirer@2.3.6)
- lodash: 4.17.21
- log-symbols: 4.1.0
- minimist: 1.2.8
- ospath: 1.2.2
- pretty-bytes: 5.6.0
- process: 0.11.10
- proxy-from-env: 1.0.0
- request-progress: 3.0.0
- semver: 7.6.0
- supports-color: 8.1.1
- tmp: 0.2.3
- untildify: 4.0.0
- yauzl: 2.10.0
-
- cypress@13.8.1:
+ cypress@13.13.0:
dependencies:
'@cypress/request': 3.0.0
'@cypress/xvfb': 1.2.4(supports-color@8.1.1)
@@ -17867,7 +18860,7 @@ snapshots:
commander: 6.2.1
common-tags: 1.8.2
dayjs: 1.11.10
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.5(supports-color@8.1.1)
enquirer: 2.3.6
eventemitter2: 6.4.7
execa: 4.1.0
@@ -17931,7 +18924,7 @@ snapshots:
optionalDependencies:
supports-color: 5.5.0
- debug@4.3.4(supports-color@8.1.1):
+ debug@4.3.5(supports-color@8.1.1):
dependencies:
ms: 2.1.2
optionalDependencies:
@@ -18024,17 +19017,6 @@ snapshots:
defu@6.1.4: {}
- del@6.1.1:
- dependencies:
- globby: 11.1.0
- graceful-fs: 4.2.11
- is-glob: 4.0.3
- is-path-cwd: 2.2.0
- is-path-inside: 3.0.3
- p-map: 4.0.0
- rimraf: 3.0.2
- slash: 3.0.0
-
delayed-stream@1.0.0: {}
delegates@1.0.0:
@@ -18057,6 +19039,8 @@ snapshots:
detect-newline@3.1.0: {}
+ detect-node-es@1.1.0: {}
+
detect-package-manager@2.0.1:
dependencies:
execa: 5.1.1
@@ -18064,7 +19048,7 @@ snapshots:
detect-port@1.5.1:
dependencies:
address: 1.2.2
- debug: 4.3.4(supports-color@5.5.0)
+ debug: 4.3.5(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@@ -18078,6 +19062,8 @@ snapshots:
diff@5.1.0: {}
+ diff@5.2.0: {}
+
dijkstrajs@1.0.2: {}
dir-glob@3.0.1:
@@ -18151,7 +19137,7 @@ snapshots:
ee-first@1.1.1: {}
- ejs@3.1.9:
+ ejs@3.1.10:
dependencies:
jake: 10.8.5
@@ -18250,7 +19236,7 @@ snapshots:
isarray: 2.0.5
stop-iteration-iterator: 1.0.0
- es-module-lexer@0.9.3: {}
+ es-module-lexer@1.5.4: {}
es-set-tostringtag@2.0.1:
dependencies:
@@ -18278,10 +19264,10 @@ snapshots:
esbuild-plugin-alias@0.2.1: {}
- esbuild-register@3.5.0(esbuild@0.20.2):
+ esbuild-register@3.5.0(esbuild@0.19.11):
dependencies:
- debug: 4.3.4(supports-color@5.5.0)
- esbuild: 0.20.2
+ debug: 4.3.5(supports-color@8.1.1)
+ esbuild: 0.19.11
transitivePeerDependencies:
- supports-color
@@ -18336,31 +19322,58 @@ snapshots:
'@esbuild/win32-ia32': 0.19.11
'@esbuild/win32-x64': 0.19.11
- esbuild@0.20.2:
+ esbuild@0.21.5:
optionalDependencies:
- '@esbuild/aix-ppc64': 0.20.2
- '@esbuild/android-arm': 0.20.2
- '@esbuild/android-arm64': 0.20.2
- '@esbuild/android-x64': 0.20.2
- '@esbuild/darwin-arm64': 0.20.2
- '@esbuild/darwin-x64': 0.20.2
- '@esbuild/freebsd-arm64': 0.20.2
- '@esbuild/freebsd-x64': 0.20.2
- '@esbuild/linux-arm': 0.20.2
- '@esbuild/linux-arm64': 0.20.2
- '@esbuild/linux-ia32': 0.20.2
- '@esbuild/linux-loong64': 0.20.2
- '@esbuild/linux-mips64el': 0.20.2
- '@esbuild/linux-ppc64': 0.20.2
- '@esbuild/linux-riscv64': 0.20.2
- '@esbuild/linux-s390x': 0.20.2
- '@esbuild/linux-x64': 0.20.2
- '@esbuild/netbsd-x64': 0.20.2
- '@esbuild/openbsd-x64': 0.20.2
- '@esbuild/sunos-x64': 0.20.2
- '@esbuild/win32-arm64': 0.20.2
- '@esbuild/win32-ia32': 0.20.2
- '@esbuild/win32-x64': 0.20.2
+ '@esbuild/aix-ppc64': 0.21.5
+ '@esbuild/android-arm': 0.21.5
+ '@esbuild/android-arm64': 0.21.5
+ '@esbuild/android-x64': 0.21.5
+ '@esbuild/darwin-arm64': 0.21.5
+ '@esbuild/darwin-x64': 0.21.5
+ '@esbuild/freebsd-arm64': 0.21.5
+ '@esbuild/freebsd-x64': 0.21.5
+ '@esbuild/linux-arm': 0.21.5
+ '@esbuild/linux-arm64': 0.21.5
+ '@esbuild/linux-ia32': 0.21.5
+ '@esbuild/linux-loong64': 0.21.5
+ '@esbuild/linux-mips64el': 0.21.5
+ '@esbuild/linux-ppc64': 0.21.5
+ '@esbuild/linux-riscv64': 0.21.5
+ '@esbuild/linux-s390x': 0.21.5
+ '@esbuild/linux-x64': 0.21.5
+ '@esbuild/netbsd-x64': 0.21.5
+ '@esbuild/openbsd-x64': 0.21.5
+ '@esbuild/sunos-x64': 0.21.5
+ '@esbuild/win32-arm64': 0.21.5
+ '@esbuild/win32-ia32': 0.21.5
+ '@esbuild/win32-x64': 0.21.5
+
+ esbuild@0.22.0:
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.22.0
+ '@esbuild/android-arm': 0.22.0
+ '@esbuild/android-arm64': 0.22.0
+ '@esbuild/android-x64': 0.22.0
+ '@esbuild/darwin-arm64': 0.22.0
+ '@esbuild/darwin-x64': 0.22.0
+ '@esbuild/freebsd-arm64': 0.22.0
+ '@esbuild/freebsd-x64': 0.22.0
+ '@esbuild/linux-arm': 0.22.0
+ '@esbuild/linux-arm64': 0.22.0
+ '@esbuild/linux-ia32': 0.22.0
+ '@esbuild/linux-loong64': 0.22.0
+ '@esbuild/linux-mips64el': 0.22.0
+ '@esbuild/linux-ppc64': 0.22.0
+ '@esbuild/linux-riscv64': 0.22.0
+ '@esbuild/linux-s390x': 0.22.0
+ '@esbuild/linux-x64': 0.22.0
+ '@esbuild/netbsd-x64': 0.22.0
+ '@esbuild/openbsd-arm64': 0.22.0
+ '@esbuild/openbsd-x64': 0.22.0
+ '@esbuild/sunos-x64': 0.22.0
+ '@esbuild/win32-arm64': 0.22.0
+ '@esbuild/win32-ia32': 0.22.0
+ '@esbuild/win32-x64': 0.22.0
escalade@3.1.1: {}
@@ -18403,91 +19416,17 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.8.0(@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint@8.53.0):
- dependencies:
- debug: 3.2.7(supports-color@8.1.1)
- optionalDependencies:
- '@typescript-eslint/parser': 6.11.0(eslint@8.53.0)(typescript@5.3.3)
- eslint: 8.53.0
- eslint-import-resolver-node: 0.3.9
- transitivePeerDependencies:
- - supports-color
-
- eslint-module-utils@2.8.0(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0):
+ eslint-module-utils@2.8.0(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint@9.6.0):
dependencies:
debug: 3.2.7(supports-color@8.1.1)
optionalDependencies:
- '@typescript-eslint/parser': 7.1.0(eslint@8.57.0)(typescript@5.3.3)
- eslint: 8.57.0
- eslint-import-resolver-node: 0.3.9
- transitivePeerDependencies:
- - supports-color
-
- eslint-module-utils@2.8.0(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0):
- dependencies:
- debug: 3.2.7(supports-color@8.1.1)
- optionalDependencies:
- '@typescript-eslint/parser': 7.7.1(eslint@8.57.0)(typescript@5.4.5)
- eslint: 8.57.0
- eslint-import-resolver-node: 0.3.9
- transitivePeerDependencies:
- - supports-color
-
- eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.3))(eslint@8.53.0):
- dependencies:
- array-includes: 3.1.7
- array.prototype.findlastindex: 1.2.3
- array.prototype.flat: 1.3.2
- array.prototype.flatmap: 1.3.2
- debug: 3.2.7(supports-color@8.1.1)
- doctrine: 2.1.0
- eslint: 8.53.0
- eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint@8.53.0)
- hasown: 2.0.0
- is-core-module: 2.13.1
- is-glob: 4.0.3
- minimatch: 3.1.2
- object.fromentries: 2.0.7
- object.groupby: 1.0.1
- object.values: 1.1.7
- semver: 6.3.1
- tsconfig-paths: 3.15.0
- optionalDependencies:
- '@typescript-eslint/parser': 6.11.0(eslint@8.53.0)(typescript@5.3.3)
- transitivePeerDependencies:
- - eslint-import-resolver-typescript
- - eslint-import-resolver-webpack
- - supports-color
-
- eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0):
- dependencies:
- array-includes: 3.1.7
- array.prototype.findlastindex: 1.2.3
- array.prototype.flat: 1.3.2
- array.prototype.flatmap: 1.3.2
- debug: 3.2.7(supports-color@8.1.1)
- doctrine: 2.1.0
- eslint: 8.57.0
+ '@typescript-eslint/parser': 7.15.0(eslint@9.6.0)(typescript@5.5.3)
+ eslint: 9.6.0
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0)
- hasown: 2.0.0
- is-core-module: 2.13.1
- is-glob: 4.0.3
- minimatch: 3.1.2
- object.fromentries: 2.0.7
- object.groupby: 1.0.1
- object.values: 1.1.7
- semver: 6.3.1
- tsconfig-paths: 3.15.0
- optionalDependencies:
- '@typescript-eslint/parser': 7.1.0(eslint@8.57.0)(typescript@5.3.3)
transitivePeerDependencies:
- - eslint-import-resolver-typescript
- - eslint-import-resolver-webpack
- supports-color
- eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0):
+ eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0):
dependencies:
array-includes: 3.1.7
array.prototype.findlastindex: 1.2.3
@@ -18495,9 +19434,9 @@ snapshots:
array.prototype.flatmap: 1.3.2
debug: 3.2.7(supports-color@8.1.1)
doctrine: 2.1.0
- eslint: 8.57.0
+ eslint: 9.6.0
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0)
+ eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint@9.6.0)
hasown: 2.0.0
is-core-module: 2.13.1
is-glob: 4.0.3
@@ -18508,22 +19447,22 @@ snapshots:
semver: 6.3.1
tsconfig-paths: 3.15.0
optionalDependencies:
- '@typescript-eslint/parser': 7.7.1(eslint@8.57.0)(typescript@5.4.5)
+ '@typescript-eslint/parser': 7.15.0(eslint@9.6.0)(typescript@5.5.3)
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- supports-color
- eslint-plugin-vue@9.25.0(eslint@8.57.0):
+ eslint-plugin-vue@9.26.0(eslint@9.6.0):
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
- eslint: 8.57.0
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0)
+ eslint: 9.6.0
globals: 13.24.0
natural-compare: 1.4.0
nth-check: 2.1.1
- postcss-selector-parser: 6.0.15
+ postcss-selector-parser: 6.0.16
semver: 7.6.0
- vue-eslint-parser: 9.4.2(eslint@8.57.0)
+ vue-eslint-parser: 9.4.3(eslint@9.6.0)
xml-name-validator: 4.0.0
transitivePeerDependencies:
- supports-color
@@ -18531,87 +19470,47 @@ snapshots:
eslint-rule-docs@1.1.235: {}
eslint-scope@7.2.2:
- dependencies:
- esrecurse: 4.3.0
- estraverse: 5.3.0
-
- eslint-visitor-keys@3.4.3: {}
-
- eslint@8.53.0:
- dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0)
- '@eslint-community/regexpp': 4.6.2
- '@eslint/eslintrc': 2.1.4
- '@eslint/js': 8.53.0
- '@humanwhocodes/config-array': 0.11.13
- '@humanwhocodes/module-importer': 1.0.1
- '@nodelib/fs.walk': 1.2.8
- '@ungap/structured-clone': 1.2.0
- ajv: 6.12.6
- chalk: 4.1.2
- cross-spawn: 7.0.3
- debug: 4.3.4(supports-color@5.5.0)
- doctrine: 3.0.0
- escape-string-regexp: 4.0.0
- eslint-scope: 7.2.2
- eslint-visitor-keys: 3.4.3
- espree: 9.6.1
- esquery: 1.4.2
- esutils: 2.0.3
- fast-deep-equal: 3.1.3
- file-entry-cache: 6.0.1
- find-up: 5.0.0
- glob-parent: 6.0.2
- globals: 13.19.0
- graphemer: 1.4.0
- ignore: 5.2.4
- imurmurhash: 0.1.4
- is-glob: 4.0.3
- is-path-inside: 3.0.3
- js-yaml: 4.1.0
- json-stable-stringify-without-jsonify: 1.0.1
- levn: 0.4.1
- lodash.merge: 4.6.2
- minimatch: 3.1.2
- natural-compare: 1.4.0
- optionator: 0.9.3
- strip-ansi: 6.0.1
- text-table: 0.2.0
- transitivePeerDependencies:
- - supports-color
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
- eslint@8.57.0:
+ eslint-scope@8.0.1:
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
- '@eslint-community/regexpp': 4.6.2
- '@eslint/eslintrc': 2.1.4
- '@eslint/js': 8.57.0
- '@humanwhocodes/config-array': 0.11.14
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+
+ eslint-visitor-keys@3.4.3: {}
+
+ eslint-visitor-keys@4.0.0: {}
+
+ eslint@9.6.0:
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0)
+ '@eslint-community/regexpp': 4.10.0
+ '@eslint/config-array': 0.17.0
+ '@eslint/eslintrc': 3.1.0
+ '@eslint/js': 9.6.0
'@humanwhocodes/module-importer': 1.0.1
+ '@humanwhocodes/retry': 0.3.0
'@nodelib/fs.walk': 1.2.8
- '@ungap/structured-clone': 1.2.0
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.3
- debug: 4.3.4(supports-color@5.5.0)
- doctrine: 3.0.0
+ debug: 4.3.5(supports-color@8.1.1)
escape-string-regexp: 4.0.0
- eslint-scope: 7.2.2
- eslint-visitor-keys: 3.4.3
- espree: 9.6.1
- esquery: 1.4.2
+ eslint-scope: 8.0.1
+ eslint-visitor-keys: 4.0.0
+ espree: 10.1.0
+ esquery: 1.5.0
esutils: 2.0.3
fast-deep-equal: 3.1.3
- file-entry-cache: 6.0.1
+ file-entry-cache: 8.0.0
find-up: 5.0.0
glob-parent: 6.0.2
- globals: 13.19.0
- graphemer: 1.4.0
- ignore: 5.2.4
+ ignore: 5.3.1
imurmurhash: 0.1.4
is-glob: 4.0.3
is-path-inside: 3.0.3
- js-yaml: 4.1.0
json-stable-stringify-without-jsonify: 1.0.1
levn: 0.4.1
lodash.merge: 4.6.2
@@ -18623,10 +19522,16 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ espree@10.1.0:
+ dependencies:
+ acorn: 8.12.0
+ acorn-jsx: 5.3.2(acorn@8.12.0)
+ eslint-visitor-keys: 4.0.0
+
espree@9.6.1:
dependencies:
- acorn: 8.11.3
- acorn-jsx: 5.3.2(acorn@8.11.3)
+ acorn: 8.12.0
+ acorn-jsx: 5.3.2(acorn@8.12.0)
eslint-visitor-keys: 3.4.3
esprima@4.0.1: {}
@@ -18635,6 +19540,10 @@ snapshots:
dependencies:
estraverse: 5.3.0
+ esquery@1.5.0:
+ dependencies:
+ estraverse: 5.3.0
+
esrecurse@4.3.0:
dependencies:
estraverse: 5.3.0
@@ -18729,6 +19638,21 @@ snapshots:
signal-exit: 4.1.0
strip-final-newline: 3.0.0
+ execa@9.2.0:
+ dependencies:
+ '@sindresorhus/merge-streams': 4.0.0
+ cross-spawn: 7.0.3
+ figures: 6.1.0
+ get-stream: 9.0.1
+ human-signals: 7.0.0
+ is-plain-obj: 4.1.0
+ is-stream: 4.0.1
+ npm-run-path: 5.3.0
+ pretty-ms: 9.0.0
+ signal-exit: 4.1.0
+ strip-final-newline: 4.0.0
+ yoctocolors: 2.0.2
+
executable@4.1.1:
dependencies:
pify: 2.3.0
@@ -18745,42 +19669,6 @@ snapshots:
exponential-backoff@3.1.1: {}
- express@4.18.2:
- dependencies:
- accepts: 1.3.8
- array-flatten: 1.1.1
- body-parser: 1.20.1
- content-disposition: 0.5.4
- content-type: 1.0.5
- cookie: 0.5.0
- cookie-signature: 1.0.6
- debug: 2.6.9
- depd: 2.0.0
- encodeurl: 1.0.2
- escape-html: 1.0.3
- etag: 1.8.1
- finalhandler: 1.2.0
- fresh: 0.5.2
- http-errors: 2.0.0
- merge-descriptors: 1.0.1
- methods: 1.1.2
- on-finished: 2.4.1
- parseurl: 1.3.3
- path-to-regexp: 0.1.7
- proxy-addr: 2.0.7
- qs: 6.11.0
- range-parser: 1.2.1
- safe-buffer: 5.2.1
- send: 0.18.0
- serve-static: 1.15.0
- setprototypeof: 1.2.0
- statuses: 2.0.1
- type-is: 1.6.18
- utils-merge: 1.0.1
- vary: 1.1.2
- transitivePeerDependencies:
- - supports-color
-
express@4.19.2:
dependencies:
accepts: 1.3.8
@@ -18830,7 +19718,7 @@ snapshots:
extract-zip@2.0.1(supports-color@8.1.1):
dependencies:
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.5(supports-color@8.1.1)
get-stream: 5.2.0
yauzl: 2.10.0
optionalDependencies:
@@ -18854,15 +19742,15 @@ snapshots:
'@nodelib/fs.walk': 1.2.8
glob-parent: 5.1.2
merge2: 1.4.1
- micromatch: 4.0.5
+ micromatch: 4.0.7
fast-json-stable-stringify@2.1.0: {}
fast-json-stringify@5.8.0:
dependencies:
'@fastify/deepmerge': 1.3.0
- ajv: 8.13.0
- ajv-formats: 2.1.1(ajv@8.13.0)
+ ajv: 8.16.0
+ ajv-formats: 2.1.1(ajv@8.16.0)
fast-deep-equal: 3.1.3
fast-uri: 2.2.0
rfdc: 1.3.0
@@ -18891,7 +19779,7 @@ snapshots:
raw-body: 2.5.2
secure-json-parse: 2.7.0
- fastify@4.26.2:
+ fastify@4.28.1:
dependencies:
'@fastify/ajv-compiler': 3.5.0
'@fastify/error': 3.4.0
@@ -18902,20 +19790,16 @@ snapshots:
fast-json-stringify: 5.8.0
find-my-way: 8.2.0
light-my-request: 5.11.0
- pino: 8.17.0
+ pino: 9.2.0
process-warning: 3.0.0
proxy-addr: 2.0.7
rfdc: 1.3.0
secure-json-parse: 2.7.0
semver: 7.6.0
- toad-cache: 3.3.0
+ toad-cache: 3.7.0
transitivePeerDependencies:
- supports-color
- fastq@1.15.0:
- dependencies:
- reusify: 1.0.4
-
fastq@1.17.1:
dependencies:
reusify: 1.0.4
@@ -18943,9 +19827,13 @@ snapshots:
dependencies:
escape-string-regexp: 1.0.5
- file-entry-cache@6.0.1:
+ figures@6.1.0:
dependencies:
- flat-cache: 3.0.4
+ is-unicode-supported: 2.0.0
+
+ file-entry-cache@8.0.0:
+ dependencies:
+ flat-cache: 4.0.1
file-system-cache@2.3.0:
dependencies:
@@ -18980,6 +19868,10 @@ snapshots:
dependencies:
to-regex-range: 5.0.1
+ fill-range@7.1.1:
+ dependencies:
+ to-regex-range: 5.0.1
+
finalhandler@1.2.0:
dependencies:
debug: 2.6.9
@@ -19039,23 +19931,23 @@ snapshots:
ps-list: 8.1.1
taskkill: 5.0.0
- flat-cache@3.0.4:
+ flat-cache@4.0.1:
dependencies:
- flatted: 3.2.7
- rimraf: 3.0.2
+ flatted: 3.3.1
+ keyv: 4.5.4
- flatted@3.2.7: {}
+ flatted@3.3.1: {}
flow-parser@0.202.0: {}
- fluent-ffmpeg@2.1.2:
+ fluent-ffmpeg@2.1.3:
dependencies:
- async: 3.2.4
+ async: 0.2.10
which: 1.3.1
- follow-redirects@1.15.2(debug@4.3.4):
+ follow-redirects@1.15.2(debug@4.3.5):
optionalDependencies:
- debug: 4.3.4(supports-color@5.5.0)
+ debug: 4.3.5(supports-color@8.1.1)
for-each@0.3.3:
dependencies:
@@ -19182,6 +20074,8 @@ snapshots:
has-proto: 1.0.1
has-symbols: 1.0.3
+ get-nonce@1.0.1: {}
+
get-npm-tarball-url@2.0.3: {}
get-package-type@0.1.0: {}
@@ -19210,6 +20104,11 @@ snapshots:
get-stream@8.0.1: {}
+ get-stream@9.0.1:
+ dependencies:
+ '@sec-ant/readable-stream': 0.4.1
+ is-stream: 4.0.1
+
get-symbol-description@1.0.0:
dependencies:
call-bind: 1.0.2
@@ -19276,6 +20175,15 @@ snapshots:
minipass: 7.0.4
path-scurry: 1.10.2
+ glob@10.4.2:
+ dependencies:
+ foreground-child: 3.1.1
+ jackspeak: 3.4.0
+ minimatch: 9.0.4
+ minipass: 7.1.2
+ package-json-from-dist: 1.0.0
+ path-scurry: 1.11.1
+
glob@7.2.3:
dependencies:
fs.realpath: 1.0.0
@@ -19299,14 +20207,14 @@ snapshots:
globals@11.12.0: {}
- globals@13.19.0:
- dependencies:
- type-fest: 0.20.2
-
globals@13.24.0:
dependencies:
type-fest: 0.20.2
+ globals@14.0.0: {}
+
+ globals@15.7.0: {}
+
globalthis@1.0.3:
dependencies:
define-properties: 1.2.0
@@ -19320,6 +20228,15 @@ snapshots:
merge2: 1.4.1
slash: 3.0.0
+ globby@14.0.1:
+ dependencies:
+ '@sindresorhus/merge-streams': 2.3.0
+ fast-glob: 3.3.2
+ ignore: 5.3.1
+ path-type: 5.0.0
+ slash: 5.1.0
+ unicorn-magic: 0.1.0
+
google-protobuf@3.21.2:
optional: true
@@ -19355,12 +20272,12 @@ snapshots:
p-cancelable: 3.0.0
responselike: 3.0.0
- got@14.2.1:
+ got@14.4.1:
dependencies:
- '@sindresorhus/is': 6.1.0
+ '@sindresorhus/is': 6.3.1
'@szmarczak/http-timer': 5.0.1
cacheable-lookup: 7.0.0
- cacheable-request: 10.2.14
+ cacheable-request: 12.0.1
decompress-response: 6.0.0
form-data-encoder: 4.0.2
get-stream: 8.0.1
@@ -19368,6 +20285,7 @@ snapshots:
lowercase-keys: 3.0.0
p-cancelable: 4.0.1
responselike: 3.0.0
+ type-fest: 4.20.1
graceful-fs@4.2.11: {}
@@ -19508,6 +20426,13 @@ snapshots:
http-link-header@1.1.3: {}
http-proxy-agent@7.0.0:
+ dependencies:
+ agent-base: 7.1.0
+ debug: 4.3.5(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ http-proxy-agent@7.0.2:
dependencies:
agent-base: 7.1.0
debug: 4.3.4(supports-color@5.5.0)
@@ -19549,7 +20474,7 @@ snapshots:
https-proxy-agent@5.0.1:
dependencies:
agent-base: 6.0.2
- debug: 4.3.4(supports-color@5.5.0)
+ debug: 4.3.5(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@@ -19560,6 +20485,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ https-proxy-agent@7.0.4:
+ dependencies:
+ agent-base: 7.1.0
+ debug: 4.3.4(supports-color@5.5.0)
+ transitivePeerDependencies:
+ - supports-color
+
human-signals@1.1.1: {}
human-signals@2.1.0: {}
@@ -19568,6 +20500,8 @@ snapshots:
human-signals@5.0.0: {}
+ human-signals@7.0.0: {}
+
iconv-lite@0.4.24:
dependencies:
safer-buffer: 2.1.2
@@ -19599,16 +20533,16 @@ snapshots:
import-in-the-middle@1.4.2:
dependencies:
- acorn: 8.11.3
- acorn-import-assertions: 1.9.0(acorn@8.11.3)
+ acorn: 8.12.0
+ acorn-import-assertions: 1.9.0(acorn@8.12.0)
cjs-module-lexer: 1.2.2
module-details-from-path: 1.0.3
optional: true
- import-in-the-middle@1.7.4:
+ import-in-the-middle@1.8.1:
dependencies:
- acorn: 8.11.3
- acorn-import-attributes: 1.9.5(acorn@8.11.3)
+ acorn: 8.12.0
+ acorn-import-attributes: 1.9.5(acorn@8.12.0)
cjs-module-lexer: 1.2.2
module-details-from-path: 1.0.3
@@ -19648,6 +20582,10 @@ snapshots:
intersection-observer@0.12.2: {}
+ invariant@2.2.4:
+ dependencies:
+ loose-envify: 1.4.0
+
ioredis@5.4.1:
dependencies:
'@ioredis/commands': 1.2.0
@@ -19664,15 +20602,14 @@ snapshots:
iota-array@1.0.0: {}
- ip-address@7.1.0:
+ ip-address@9.0.5:
dependencies:
jsbn: 1.1.0
- sprintf-js: 1.1.2
+ sprintf-js: 1.1.3
- ip-cidr@3.1.0:
+ ip-cidr@4.0.1:
dependencies:
- ip-address: 7.1.0
- jsbn: 1.1.0
+ ip-address: 9.0.5
ip-regex@4.3.0: {}
@@ -19787,8 +20724,6 @@ snapshots:
is-number@7.0.0: {}
- is-path-cwd@2.2.0: {}
-
is-path-inside@3.0.3: {}
is-plain-obj@1.1.0: {}
@@ -19822,11 +20757,13 @@ snapshots:
is-stream@3.0.0: {}
+ is-stream@4.0.1: {}
+
is-string@1.0.7:
dependencies:
has-tostringtag: 1.0.0
- is-svg@5.0.0:
+ is-svg@5.0.1:
dependencies:
fast-xml-parser: 4.2.5
@@ -19846,6 +20783,8 @@ snapshots:
is-unicode-supported@0.1.0: {}
+ is-unicode-supported@2.0.0: {}
+
is-weakmap@2.0.1: {}
is-weakref@1.0.2:
@@ -19879,8 +20818,8 @@ snapshots:
istanbul-lib-instrument@5.2.1:
dependencies:
- '@babel/core': 7.24.0
- '@babel/parser': 7.24.0
+ '@babel/core': 7.24.7
+ '@babel/parser': 7.24.7
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.2
semver: 6.3.1
@@ -19889,8 +20828,8 @@ snapshots:
istanbul-lib-instrument@6.0.0:
dependencies:
- '@babel/core': 7.24.0
- '@babel/parser': 7.24.0
+ '@babel/core': 7.24.7
+ '@babel/parser': 7.24.7
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.2
semver: 7.6.0
@@ -19905,12 +20844,20 @@ snapshots:
istanbul-lib-source-maps@4.0.1:
dependencies:
- debug: 4.3.4(supports-color@5.5.0)
+ debug: 4.3.5(supports-color@8.1.1)
istanbul-lib-coverage: 3.2.2
source-map: 0.6.1
transitivePeerDependencies:
- supports-color
+ istanbul-lib-source-maps@5.0.4:
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.25
+ debug: 4.3.5(supports-color@8.1.1)
+ istanbul-lib-coverage: 3.2.2
+ transitivePeerDependencies:
+ - supports-color
+
istanbul-reports@3.1.6:
dependencies:
html-escaper: 2.0.2
@@ -19924,6 +20871,12 @@ snapshots:
optionalDependencies:
'@pkgjs/parseargs': 0.11.0
+ jackspeak@3.4.0:
+ dependencies:
+ '@isaacs/cliui': 8.0.2
+ optionalDependencies:
+ '@pkgjs/parseargs': 0.11.0
+
jake@10.8.5:
dependencies:
async: 3.2.4
@@ -19943,7 +20896,7 @@ snapshots:
'@jest/expect': 29.7.0
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
chalk: 4.1.2
co: 4.6.0
dedent: 1.3.0
@@ -19963,16 +20916,16 @@ snapshots:
- babel-plugin-macros
- supports-color
- jest-cli@29.7.0(@types/node@20.12.7):
+ jest-cli@29.7.0(@types/node@20.14.9):
dependencies:
'@jest/core': 29.7.0
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
chalk: 4.1.2
- create-jest: 29.7.0(@types/node@20.12.7)
+ create-jest: 29.7.0(@types/node@20.14.9)
exit: 0.1.2
import-local: 3.1.0
- jest-config: 29.7.0(@types/node@20.12.7)
+ jest-config: 29.7.0(@types/node@20.14.9)
jest-util: 29.7.0
jest-validate: 29.7.0
yargs: 17.7.2
@@ -19982,7 +20935,7 @@ snapshots:
- supports-color
- ts-node
- jest-config@29.7.0(@types/node@20.12.7):
+ jest-config@29.7.0(@types/node@20.14.9):
dependencies:
'@babel/core': 7.23.5
'@jest/test-sequencer': 29.7.0
@@ -20001,13 +20954,13 @@ snapshots:
jest-runner: 29.7.0
jest-util: 29.7.0
jest-validate: 29.7.0
- micromatch: 4.0.5
+ micromatch: 4.0.7
parse-json: 5.2.0
pretty-format: 29.7.0
slash: 3.0.0
strip-json-comments: 3.1.1
optionalDependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
transitivePeerDependencies:
- babel-plugin-macros
- supports-color
@@ -20036,7 +20989,7 @@ snapshots:
'@jest/environment': 29.7.0
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
jest-mock: 29.7.0
jest-util: 29.7.0
@@ -20053,14 +21006,14 @@ snapshots:
dependencies:
'@jest/types': 29.6.3
'@types/graceful-fs': 4.1.6
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
anymatch: 3.1.3
fb-watchman: 2.0.2
graceful-fs: 4.2.11
jest-regex-util: 29.6.3
jest-util: 29.7.0
jest-worker: 29.7.0
- micromatch: 4.0.5
+ micromatch: 4.0.7
walker: 1.0.8
optionalDependencies:
fsevents: 2.3.3
@@ -20084,7 +21037,7 @@ snapshots:
'@types/stack-utils': 2.0.1
chalk: 4.1.2
graceful-fs: 4.2.11
- micromatch: 4.0.5
+ micromatch: 4.0.7
pretty-format: 29.7.0
slash: 3.0.0
stack-utils: 2.0.6
@@ -20092,7 +21045,7 @@ snapshots:
jest-mock@29.7.0:
dependencies:
'@jest/types': 29.6.3
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
jest-util: 29.7.0
jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
@@ -20127,7 +21080,7 @@ snapshots:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
chalk: 4.1.2
emittery: 0.13.1
graceful-fs: 4.2.11
@@ -20155,7 +21108,7 @@ snapshots:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
chalk: 4.1.2
cjs-module-lexer: 1.2.2
collect-v8-coverage: 1.0.1
@@ -20201,7 +21154,7 @@ snapshots:
jest-util@29.7.0:
dependencies:
'@jest/types': 29.6.3
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
chalk: 4.1.2
ci-info: 3.7.1
graceful-fs: 4.2.11
@@ -20220,7 +21173,7 @@ snapshots:
dependencies:
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
ansi-escapes: 4.3.2
chalk: 4.1.2
emittery: 0.13.1
@@ -20234,17 +21187,17 @@ snapshots:
jest-worker@29.7.0:
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
jest-util: 29.7.0
merge-stream: 2.0.0
supports-color: 8.1.1
- jest@29.7.0(@types/node@20.12.7):
+ jest@29.7.0(@types/node@20.14.9):
dependencies:
'@jest/core': 29.7.0
'@jest/types': 29.6.3
import-local: 3.1.0
- jest-cli: 29.7.0(@types/node@20.12.7)
+ jest-cli: 29.7.0(@types/node@20.14.9)
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
@@ -20274,6 +21227,8 @@ snapshots:
js-tokens@4.0.0: {}
+ js-tokens@9.0.0: {}
+
js-yaml@3.14.1:
dependencies:
argparse: 1.0.10
@@ -20289,55 +21244,55 @@ snapshots:
jschardet@3.0.0: {}
- jscodeshift@0.15.1(@babel/preset-env@7.23.5(@babel/core@7.24.0)):
- dependencies:
- '@babel/core': 7.24.0
- '@babel/parser': 7.24.0
- '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.24.0)
- '@babel/preset-flow': 7.23.3(@babel/core@7.24.0)
- '@babel/preset-typescript': 7.23.3(@babel/core@7.24.0)
- '@babel/register': 7.22.15(@babel/core@7.24.0)
- babel-core: 7.0.0-bridge.0(@babel/core@7.24.0)
+ jscodeshift@0.15.1(@babel/preset-env@7.24.7(@babel/core@7.24.7)):
+ dependencies:
+ '@babel/core': 7.24.7
+ '@babel/parser': 7.24.7
+ '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-modules-commonjs': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-optional-chaining': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.24.7)
+ '@babel/preset-flow': 7.23.3(@babel/core@7.24.7)
+ '@babel/preset-typescript': 7.23.3(@babel/core@7.24.7)
+ '@babel/register': 7.22.15(@babel/core@7.24.7)
+ babel-core: 7.0.0-bridge.0(@babel/core@7.24.7)
chalk: 4.1.2
flow-parser: 0.202.0
graceful-fs: 4.2.11
- micromatch: 4.0.5
+ micromatch: 4.0.7
neo-async: 2.6.2
node-dir: 0.1.17
- recast: 0.23.4
+ recast: 0.23.6
temp: 0.8.4
write-file-atomic: 2.4.3
optionalDependencies:
- '@babel/preset-env': 7.23.5(@babel/core@7.24.0)
+ '@babel/preset-env': 7.24.7(@babel/core@7.24.7)
transitivePeerDependencies:
- supports-color
- jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3):
+ jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3):
dependencies:
cssstyle: 4.0.1
data-urls: 5.0.0
decimal.js: 10.4.3
form-data: 4.0.0
html-encoding-sniffer: 4.0.0
- http-proxy-agent: 7.0.0
- https-proxy-agent: 7.0.2
+ http-proxy-agent: 7.0.2
+ https-proxy-agent: 7.0.4
is-potential-custom-element-name: 1.0.1
- nwsapi: 2.2.9
+ nwsapi: 2.2.10
parse5: 7.1.2
- rrweb-cssom: 0.6.0
+ rrweb-cssom: 0.7.1
saxes: 6.0.0
symbol-tree: 3.2.4
- tough-cookie: 4.1.3
+ tough-cookie: 4.1.4
w3c-xmlserializer: 5.0.0
webidl-conversions: 7.0.0
whatwg-encoding: 3.1.1
whatwg-mimetype: 4.0.0
whatwg-url: 14.0.0
- ws: 8.17.0(bufferutil@4.0.7)(utf-8-validate@6.0.3)
+ ws: 8.17.1(bufferutil@4.0.7)(utf-8-validate@6.0.3)
xml-name-validator: 5.0.0
transitivePeerDependencies:
- bufferutil
@@ -20418,8 +21373,6 @@ snapshots:
jsrsasign@11.1.0: {}
- jssha@3.3.1: {}
-
jstransformer@1.0.0:
dependencies:
is-promise: 2.2.2
@@ -20498,7 +21451,10 @@ snapshots:
optionalDependencies:
enquirer: 2.3.6
- local-pkg@0.4.3: {}
+ local-pkg@0.5.0:
+ dependencies:
+ mlly: 1.5.0
+ pkg-types: 1.0.3
locate-path@3.0.0:
dependencies:
@@ -20521,8 +21477,6 @@ snapshots:
lodash.isarguments@3.1.0: {}
- lodash.isequal@4.5.0: {}
-
lodash.memoize@4.1.2: {}
lodash.merge@4.6.2: {}
@@ -20594,9 +21548,11 @@ snapshots:
dependencies:
'@jridgewell/sourcemap-codec': 1.4.15
- magic-string@0.30.7:
+ magicast@0.3.4:
dependencies:
- '@jridgewell/sourcemap-codec': 1.4.15
+ '@babel/parser': 7.24.5
+ '@babel/types': 7.24.0
+ source-map-js: 1.2.0
mailcheck@1.1.1: {}
@@ -20756,7 +21712,7 @@ snapshots:
media-typer@0.3.0: {}
- meilisearch@0.38.0(encoding@0.1.13):
+ meilisearch@0.41.0(encoding@0.1.13):
dependencies:
cross-fetch: 3.1.6(encoding@0.1.13)
transitivePeerDependencies:
@@ -20969,7 +21925,7 @@ snapshots:
micromark@4.0.0:
dependencies:
'@types/debug': 4.1.12
- debug: 4.3.4(supports-color@5.5.0)
+ debug: 4.3.5(supports-color@8.1.1)
decode-named-character-reference: 1.0.2
devlop: 1.1.0
micromark-core-commonmark: 2.0.0
@@ -20988,9 +21944,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
- micromatch@4.0.5:
+ micromatch@4.0.7:
dependencies:
- braces: 3.0.2
+ braces: 3.0.3
picomatch: 2.3.1
mime-db@1.52.0: {}
@@ -21087,6 +22043,8 @@ snapshots:
minipass@7.0.4: {}
+ minipass@7.1.2: {}
+
minizlib@1.3.3:
dependencies:
minipass: 2.9.0
@@ -21109,7 +22067,7 @@ snapshots:
mlly@1.5.0:
dependencies:
- acorn: 8.11.3
+ acorn: 8.12.0
pathe: 1.1.2
pkg-types: 1.0.3
ufo: 1.3.2
@@ -21148,18 +22106,18 @@ snapshots:
optionalDependencies:
msgpackr-extract: 3.0.2
- msw-storybook-addon@2.0.1(msw@2.2.14(typescript@5.4.5)):
+ msw-storybook-addon@2.0.2(msw@2.3.1(typescript@5.5.3)):
dependencies:
is-node-process: 1.2.0
- msw: 2.2.14(typescript@5.4.5)
+ msw: 2.3.1(typescript@5.5.3)
- msw@2.2.14(typescript@5.4.5):
+ msw@2.3.1(typescript@5.5.3):
dependencies:
'@bundled-es-modules/cookie': 2.0.0
'@bundled-es-modules/statuses': 1.0.1
'@inquirer/confirm': 3.1.6
'@mswjs/cookies': 1.1.0
- '@mswjs/interceptors': 0.26.15
+ '@mswjs/interceptors': 0.29.1
'@open-draft/until': 2.1.0
'@types/cookie': 0.6.0
'@types/statuses': 2.0.4
@@ -21173,7 +22131,7 @@ snapshots:
type-fest: 4.9.0
yargs: 17.7.2
optionalDependencies:
- typescript: 5.4.5
+ typescript: 5.5.3
muggle-string@0.4.1: {}
@@ -21199,7 +22157,7 @@ snapshots:
object-assign: 4.1.1
thenify-all: 1.6.0
- nan@2.18.0: {}
+ nan@2.20.0: {}
nanoid@3.3.7: {}
@@ -21301,11 +22259,11 @@ snapshots:
node-gyp-build@4.6.0:
optional: true
- node-gyp@10.0.1:
+ node-gyp@10.1.0:
dependencies:
env-paths: 2.2.1
exponential-backoff: 3.1.1
- glob: 10.3.12
+ glob: 10.4.2
graceful-fs: 4.2.11
make-fetch-happen: 13.0.0
nopt: 7.2.0
@@ -21320,7 +22278,7 @@ snapshots:
node-releases@2.0.14: {}
- nodemailer@6.9.13: {}
+ nodemailer@6.9.14: {}
nodemon@3.0.2:
dependencies:
@@ -21335,14 +22293,14 @@ snapshots:
touch: 3.1.0
undefsafe: 2.0.5
- nodemon@3.1.0:
+ nodemon@3.1.4:
dependencies:
chokidar: 3.5.3
debug: 4.3.4(supports-color@5.5.0)
ignore-by-default: 1.0.1
minimatch: 3.1.2
pstree.remy: 1.1.8
- semver: 7.5.4
+ semver: 7.6.0
simple-update-notifier: 2.0.0
supports-color: 5.5.0
touch: 3.1.0
@@ -21387,6 +22345,8 @@ snapshots:
normalize-url@8.0.0: {}
+ normalize-url@8.0.1: {}
+
npm-run-path@2.0.2:
dependencies:
path-key: 2.0.1
@@ -21399,6 +22359,10 @@ snapshots:
dependencies:
path-key: 4.0.0
+ npm-run-path@5.3.0:
+ dependencies:
+ path-key: 4.0.0
+
npmlog@5.0.1:
dependencies:
are-we-there-yet: 2.0.0
@@ -21416,7 +22380,7 @@ snapshots:
dependencies:
boolbase: 1.0.0
- nwsapi@2.2.9: {}
+ nwsapi@2.2.10: {}
oauth-sign@0.9.0: {}
@@ -21516,9 +22480,9 @@ snapshots:
opentelemetry-instrumentation-fetch-node@1.2.0:
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/instrumentation': 0.43.0(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.43.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
transitivePeerDependencies:
- supports-color
optional: true
@@ -21537,7 +22501,7 @@ snapshots:
bl: 4.1.0
chalk: 4.1.2
cli-cursor: 3.1.0
- cli-spinners: 2.7.0
+ cli-spinners: 2.9.2
is-interactive: 1.0.0
is-unicode-supported: 0.1.0
log-symbols: 4.1.0
@@ -21552,9 +22516,9 @@ snapshots:
ospath@1.2.2: {}
- otpauth@9.2.3:
+ otpauth@9.3.1:
dependencies:
- jssha: 3.3.1
+ '@noble/hashes': 1.4.0
outvariant@1.4.2: {}
@@ -21574,7 +22538,7 @@ snapshots:
dependencies:
yocto-queue: 0.1.0
- p-limit@4.0.0:
+ p-limit@5.0.0:
dependencies:
yocto-queue: 1.0.0
@@ -21605,6 +22569,8 @@ snapshots:
p-try@2.2.0: {}
+ package-json-from-dist@1.0.0: {}
+
pako@0.2.9: {}
parent-module@1.0.1:
@@ -21622,6 +22588,8 @@ snapshots:
json-parse-even-better-errors: 2.3.1
lines-and-columns: 1.2.4
+ parse-ms@4.0.0: {}
+
parse-srcset@1.0.2: {}
parse5-htmlparser2-tree-adapter@6.0.1:
@@ -21669,6 +22637,11 @@ snapshots:
lru-cache: 10.2.2
minipass: 7.0.4
+ path-scurry@1.11.1:
+ dependencies:
+ lru-cache: 10.2.2
+ minipass: 7.1.2
+
path-to-regexp@0.1.7: {}
path-to-regexp@1.8.0:
@@ -21681,6 +22654,8 @@ snapshots:
path-type@4.0.0: {}
+ path-type@5.0.0: {}
+
pathe@1.1.2: {}
pathval@1.1.1: {}
@@ -21710,11 +22685,9 @@ snapshots:
pg-numeric@1.0.2: {}
- pg-pool@3.6.2(pg@8.11.5):
+ pg-pool@3.6.2(pg@8.12.0):
dependencies:
- pg: 8.11.5
-
- pg-protocol@1.6.0: {}
+ pg: 8.12.0
pg-protocol@1.6.1: {}
@@ -21736,10 +22709,10 @@ snapshots:
postgres-interval: 3.0.0
postgres-range: 1.1.3
- pg@8.11.5:
+ pg@8.12.0:
dependencies:
pg-connection-string: 2.6.4
- pg-pool: 3.6.2(pg@8.11.5)
+ pg-pool: 3.6.2(pg@8.12.0)
pg-protocol: 1.6.1
pg-types: 2.2.0
pgpass: 1.0.5
@@ -21750,7 +22723,7 @@ snapshots:
dependencies:
split2: 4.1.0
- photoswipe@5.4.3: {}
+ photoswipe@5.4.4: {}
picocolors@1.0.0: {}
@@ -21764,26 +22737,26 @@ snapshots:
pify@4.0.1: {}
- pino-abstract-transport@1.1.0:
+ pino-abstract-transport@1.2.0:
dependencies:
readable-stream: 4.3.0
split2: 4.1.0
- pino-std-serializers@6.1.0: {}
+ pino-std-serializers@7.0.0: {}
- pino@8.17.0:
+ pino@9.2.0:
dependencies:
atomic-sleep: 1.0.0
fast-redact: 3.1.2
on-exit-leak-free: 2.1.0
- pino-abstract-transport: 1.1.0
- pino-std-serializers: 6.1.0
- process-warning: 2.2.0
+ pino-abstract-transport: 1.2.0
+ pino-std-serializers: 7.0.0
+ process-warning: 3.0.0
quick-format-unescaped: 4.0.4
real-require: 0.2.0
safe-stable-stringify: 2.4.2
- sonic-boom: 3.7.0
- thread-stream: 2.3.0
+ sonic-boom: 4.0.1
+ thread-stream: 3.1.0
pirates@4.0.5: {}
@@ -22018,7 +22991,7 @@ snapshots:
prelude-ls@1.2.1: {}
- prettier@3.2.5: {}
+ prettier@3.3.2: {}
pretty-bytes@5.6.0: {}
@@ -22036,6 +23009,10 @@ snapshots:
pretty-hrtime@1.0.3: {}
+ pretty-ms@9.0.0:
+ dependencies:
+ parse-ms: 4.0.0
+
private-ip@2.3.3:
dependencies:
ip-regex: 4.3.0
@@ -22121,19 +23098,21 @@ snapshots:
js-stringify: 1.0.2
pug-runtime: 3.0.1
- pug-code-gen@3.0.2:
+ pug-code-gen@3.0.3:
dependencies:
constantinople: 4.0.1
doctypes: 1.1.0
js-stringify: 1.0.2
pug-attrs: 3.0.0
- pug-error: 2.0.0
+ pug-error: 2.1.0
pug-runtime: 3.0.1
void-elements: 3.1.0
with: 7.0.2
pug-error@2.0.0: {}
+ pug-error@2.1.0: {}
+
pug-filters@4.0.0:
dependencies:
constantinople: 4.0.1
@@ -22171,9 +23150,9 @@ snapshots:
pug-walk@2.0.0: {}
- pug@3.0.2:
+ pug@3.0.3:
dependencies:
- pug-code-gen: 3.0.2
+ pug-code-gen: 3.0.3
pug-filters: 4.0.0
pug-lexer: 5.0.1
pug-linker: 4.0.0
@@ -22253,13 +23232,6 @@ snapshots:
ratelimiter@3.4.1: {}
- raw-body@2.5.1:
- dependencies:
- bytes: 3.1.2
- http-errors: 2.0.0
- iconv-lite: 0.4.24
- unpipe: 1.0.0
-
raw-body@2.5.2:
dependencies:
bytes: 3.1.2
@@ -22271,11 +23243,11 @@ snapshots:
dependencies:
setimmediate: 1.0.5
- re2@1.20.10:
+ re2@1.21.3:
dependencies:
install-artifact-from-github: 1.3.5
- nan: 2.18.0
- node-gyp: 10.0.1
+ nan: 2.20.0
+ node-gyp: 10.1.0
transitivePeerDependencies:
- supports-color
@@ -22284,15 +23256,15 @@ snapshots:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- react-docgen-typescript@2.2.2(typescript@5.4.5):
+ react-docgen-typescript@2.2.2(typescript@5.5.3):
dependencies:
- typescript: 5.4.5
+ typescript: 5.5.3
react-docgen@7.0.1:
dependencies:
- '@babel/core': 7.24.0
- '@babel/traverse': 7.24.0
- '@babel/types': 7.24.0
+ '@babel/core': 7.24.7
+ '@babel/traverse': 7.24.7
+ '@babel/types': 7.24.7
'@types/babel__core': 7.20.0
'@types/babel__traverse': 7.20.0
'@types/doctrine': 0.0.9
@@ -22325,6 +23297,34 @@ snapshots:
react-is@18.2.0: {}
+ react-remove-scroll-bar@2.3.6(@types/react@18.0.28)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ react-style-singleton: 2.2.1(@types/react@18.0.28)(react@18.3.1)
+ tslib: 2.6.2
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ react-remove-scroll@2.5.7(@types/react@18.0.28)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ react-remove-scroll-bar: 2.3.6(@types/react@18.0.28)(react@18.3.1)
+ react-style-singleton: 2.2.1(@types/react@18.0.28)(react@18.3.1)
+ tslib: 2.6.2
+ use-callback-ref: 1.3.2(@types/react@18.0.28)(react@18.3.1)
+ use-sidecar: 1.1.2(@types/react@18.0.28)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ react-style-singleton@2.2.1(@types/react@18.0.28)(react@18.3.1):
+ dependencies:
+ get-nonce: 1.0.1
+ invariant: 2.2.4
+ react: 18.3.1
+ tslib: 2.6.2
+ optionalDependencies:
+ '@types/react': 18.0.28
+
react@18.3.1:
dependencies:
loose-envify: 1.4.0
@@ -22386,14 +23386,6 @@ snapshots:
real-require@0.2.0: {}
- recast@0.23.4:
- dependencies:
- assert: 2.1.0
- ast-types: 0.16.1
- esprima: 4.0.1
- source-map: 0.6.1
- tslib: 2.6.2
-
recast@0.23.6:
dependencies:
ast-types: 0.16.1
@@ -22538,7 +23530,7 @@ snapshots:
require-in-the-middle@7.3.0:
dependencies:
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.5(supports-color@8.1.1)
module-details-from-path: 1.0.3
resolve: 1.22.8
transitivePeerDependencies:
@@ -22562,11 +23554,6 @@ snapshots:
resolve.exports@2.0.0: {}
- resolve@1.19.0:
- dependencies:
- is-core-module: 2.13.1
- path-parse: 1.0.7
-
resolve@1.22.8:
dependencies:
is-core-module: 2.13.1
@@ -22606,31 +23593,34 @@ snapshots:
rimraf@3.0.2:
dependencies:
glob: 7.2.3
+ optional: true
- rollup@4.17.2:
+ rollup@4.18.0:
dependencies:
'@types/estree': 1.0.5
optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.17.2
- '@rollup/rollup-android-arm64': 4.17.2
- '@rollup/rollup-darwin-arm64': 4.17.2
- '@rollup/rollup-darwin-x64': 4.17.2
- '@rollup/rollup-linux-arm-gnueabihf': 4.17.2
- '@rollup/rollup-linux-arm-musleabihf': 4.17.2
- '@rollup/rollup-linux-arm64-gnu': 4.17.2
- '@rollup/rollup-linux-arm64-musl': 4.17.2
- '@rollup/rollup-linux-powerpc64le-gnu': 4.17.2
- '@rollup/rollup-linux-riscv64-gnu': 4.17.2
- '@rollup/rollup-linux-s390x-gnu': 4.17.2
- '@rollup/rollup-linux-x64-gnu': 4.17.2
- '@rollup/rollup-linux-x64-musl': 4.17.2
- '@rollup/rollup-win32-arm64-msvc': 4.17.2
- '@rollup/rollup-win32-ia32-msvc': 4.17.2
- '@rollup/rollup-win32-x64-msvc': 4.17.2
+ '@rollup/rollup-android-arm-eabi': 4.18.0
+ '@rollup/rollup-android-arm64': 4.18.0
+ '@rollup/rollup-darwin-arm64': 4.18.0
+ '@rollup/rollup-darwin-x64': 4.18.0
+ '@rollup/rollup-linux-arm-gnueabihf': 4.18.0
+ '@rollup/rollup-linux-arm-musleabihf': 4.18.0
+ '@rollup/rollup-linux-arm64-gnu': 4.18.0
+ '@rollup/rollup-linux-arm64-musl': 4.18.0
+ '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0
+ '@rollup/rollup-linux-riscv64-gnu': 4.18.0
+ '@rollup/rollup-linux-s390x-gnu': 4.18.0
+ '@rollup/rollup-linux-x64-gnu': 4.18.0
+ '@rollup/rollup-linux-x64-musl': 4.18.0
+ '@rollup/rollup-win32-arm64-msvc': 4.18.0
+ '@rollup/rollup-win32-ia32-msvc': 4.18.0
+ '@rollup/rollup-win32-x64-msvc': 4.18.0
fsevents: 2.3.3
rrweb-cssom@0.6.0: {}
+ rrweb-cssom@0.7.1: {}
+
rss-parser@3.13.0:
dependencies:
entities: 2.2.0
@@ -22678,7 +23668,7 @@ snapshots:
parse-srcset: 1.0.2
postcss: 8.4.38
- sass@1.76.0:
+ sass@1.77.6:
dependencies:
chokidar: 3.5.3
immutable: 4.2.2
@@ -22760,14 +23750,14 @@ snapshots:
dependencies:
kind-of: 6.0.3
- sharp@0.33.3:
+ sharp@0.33.4:
dependencies:
color: 4.2.3
detect-libc: 2.0.3
semver: 7.6.0
optionalDependencies:
- '@img/sharp-darwin-arm64': 0.33.3
- '@img/sharp-darwin-x64': 0.33.3
+ '@img/sharp-darwin-arm64': 0.33.4
+ '@img/sharp-darwin-x64': 0.33.4
'@img/sharp-libvips-darwin-arm64': 1.0.2
'@img/sharp-libvips-darwin-x64': 1.0.2
'@img/sharp-libvips-linux-arm': 1.0.2
@@ -22776,15 +23766,15 @@ snapshots:
'@img/sharp-libvips-linux-x64': 1.0.2
'@img/sharp-libvips-linuxmusl-arm64': 1.0.2
'@img/sharp-libvips-linuxmusl-x64': 1.0.2
- '@img/sharp-linux-arm': 0.33.3
- '@img/sharp-linux-arm64': 0.33.3
- '@img/sharp-linux-s390x': 0.33.3
- '@img/sharp-linux-x64': 0.33.3
- '@img/sharp-linuxmusl-arm64': 0.33.3
- '@img/sharp-linuxmusl-x64': 0.33.3
- '@img/sharp-wasm32': 0.33.3
- '@img/sharp-win32-ia32': 0.33.3
- '@img/sharp-win32-x64': 0.33.3
+ '@img/sharp-linux-arm': 0.33.4
+ '@img/sharp-linux-arm64': 0.33.4
+ '@img/sharp-linux-s390x': 0.33.4
+ '@img/sharp-linux-x64': 0.33.4
+ '@img/sharp-linuxmusl-arm64': 0.33.4
+ '@img/sharp-linuxmusl-x64': 0.33.4
+ '@img/sharp-wasm32': 0.33.4
+ '@img/sharp-win32-ia32': 0.33.4
+ '@img/sharp-win32-x64': 0.33.4
shebang-command@1.2.0:
dependencies:
@@ -22798,9 +23788,9 @@ snapshots:
shebang-regex@3.0.0: {}
- shiki@1.4.0:
+ shiki@1.10.0:
dependencies:
- '@shikijs/core': 1.4.0
+ '@shikijs/core': 1.10.0
shimmer@1.2.1: {}
@@ -22816,9 +23806,9 @@ snapshots:
signal-exit@4.1.0: {}
- simple-oauth2@5.0.0:
+ simple-oauth2@5.0.1:
dependencies:
- '@hapi/hoek': 10.0.1
+ '@hapi/hoek': 11.0.4
'@hapi/wreck': 18.0.1
debug: 4.3.4(supports-color@5.5.0)
joi: 17.11.0
@@ -22901,6 +23891,8 @@ snapshots:
slash@3.0.0: {}
+ slash@5.1.0: {}
+
slice-ansi@3.0.0:
dependencies:
ansi-styles: 4.3.0
@@ -22918,7 +23910,7 @@ snapshots:
socks-proxy-agent@8.0.2:
dependencies:
agent-base: 7.1.0
- debug: 4.3.4(supports-color@5.5.0)
+ debug: 4.3.5(supports-color@8.1.1)
socks: 2.7.1
transitivePeerDependencies:
- supports-color
@@ -22928,7 +23920,7 @@ snapshots:
ip: 2.0.1
smart-buffer: 4.2.0
- sonic-boom@3.7.0:
+ sonic-boom@4.0.1:
dependencies:
atomic-sleep: 1.0.0
@@ -22984,7 +23976,7 @@ snapshots:
sprintf-js@1.0.3: {}
- sprintf-js@1.1.2: {}
+ sprintf-js@1.1.3: {}
sshpk@1.17.0:
dependencies:
@@ -23010,16 +24002,16 @@ snapshots:
standard-as-callback@2.1.0: {}
- start-server-and-test@2.0.3:
+ start-server-and-test@2.0.4:
dependencies:
arg: 5.0.2
bluebird: 3.7.2
check-more-types: 2.24.0
- debug: 4.3.4(supports-color@5.5.0)
+ debug: 4.3.5(supports-color@8.1.1)
execa: 5.1.1
lazy-ass: 1.6.0
ps-tree: 1.2.0
- wait-on: 7.2.0(debug@4.3.4)
+ wait-on: 7.2.0(debug@4.3.5)
transitivePeerDependencies:
- supports-color
@@ -23033,22 +24025,22 @@ snapshots:
store2@2.14.2: {}
- storybook-addon-misskey-theme@https://codeload.github.com/misskey-dev/storybook-addon-misskey-theme/tar.gz/cf583db098365b2ccc81a82f63ca9c93bc32b640(@storybook/blocks@8.0.9(@types/react@18.0.28)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/components@8.0.9(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/core-events@8.0.9)(@storybook/manager-api@8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/preview-api@8.0.9)(@storybook/theming@8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/types@8.0.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ storybook-addon-misskey-theme@https://codeload.github.com/misskey-dev/storybook-addon-misskey-theme/tar.gz/cf583db098365b2ccc81a82f63ca9c93bc32b640(@storybook/blocks@8.1.11(@types/react@18.0.28)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/components@8.1.11(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/core-events@8.1.11)(@storybook/manager-api@8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/preview-api@8.1.11)(@storybook/theming@8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/types@8.1.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
- '@storybook/blocks': 8.0.9(@types/react@18.0.28)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/components': 8.0.9(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/core-events': 8.0.9
- '@storybook/manager-api': 8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/preview-api': 8.0.9
- '@storybook/theming': 8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/types': 8.0.9
+ '@storybook/blocks': 8.1.11(@types/react@18.0.28)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/components': 8.1.11(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/core-events': 8.1.11
+ '@storybook/manager-api': 8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/preview-api': 8.1.11
+ '@storybook/theming': 8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/types': 8.1.11
optionalDependencies:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- storybook@8.0.9(@babel/preset-env@7.23.5(@babel/core@7.24.0))(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3):
+ storybook@8.1.11(@babel/preset-env@7.24.7(@babel/core@7.24.7))(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3):
dependencies:
- '@storybook/cli': 8.0.9(@babel/preset-env@7.23.5(@babel/core@7.24.0))(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)
+ '@storybook/cli': 8.1.11(@babel/preset-env@7.24.7(@babel/core@7.24.7))(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)
transitivePeerDependencies:
- '@babel/preset-env'
- bufferutil
@@ -23157,6 +24149,8 @@ snapshots:
strip-final-newline@3.0.0: {}
+ strip-final-newline@4.0.0: {}
+
strip-indent@3.0.0:
dependencies:
min-indent: 1.0.1
@@ -23167,9 +24161,9 @@ snapshots:
strip-json-comments@3.1.1: {}
- strip-literal@1.3.0:
+ strip-literal@2.1.0:
dependencies:
- acorn: 8.11.3
+ js-tokens: 9.0.0
strip-outer@2.0.0: {}
@@ -23219,7 +24213,7 @@ snapshots:
symbol-tree@3.2.4: {}
- systeminformation@5.22.7: {}
+ systeminformation@5.22.11: {}
tar-fs@2.1.1:
dependencies:
@@ -23270,24 +24264,23 @@ snapshots:
dependencies:
memoizerific: 1.11.3
- temp-dir@2.0.0: {}
+ temp-dir@3.0.0: {}
temp@0.8.4:
dependencies:
rimraf: 2.6.3
- tempy@1.0.1:
+ tempy@3.1.0:
dependencies:
- del: 6.1.1
- is-stream: 2.0.1
- temp-dir: 2.0.0
- type-fest: 0.16.0
- unique-string: 2.0.0
+ is-stream: 3.0.0
+ temp-dir: 3.0.0
+ type-fest: 2.19.0
+ unique-string: 3.0.0
- terser@5.30.3:
+ terser@5.31.1:
dependencies:
'@jridgewell/source-map': 0.3.5
- acorn: 8.11.3
+ acorn: 8.12.0
commander: 2.20.3
source-map-support: 0.5.21
@@ -23309,13 +24302,13 @@ snapshots:
dependencies:
any-promise: 1.3.0
- thread-stream@2.3.0:
+ thread-stream@3.1.0:
dependencies:
real-require: 0.2.0
- three@0.164.1: {}
+ three@0.165.0: {}
- throttle-debounce@5.0.0: {}
+ throttle-debounce@5.0.2: {}
throttleit@1.0.0: {}
@@ -23328,8 +24321,6 @@ snapshots:
through@2.3.8: {}
- tiny-invariant@1.3.1: {}
-
tiny-invariant@1.3.3: {}
tiny-lru@10.0.1: {}
@@ -23338,7 +24329,7 @@ snapshots:
tinycolor2@1.6.0: {}
- tinypool@0.7.0: {}
+ tinypool@0.8.4: {}
tinyspy@2.2.0: {}
@@ -23354,8 +24345,6 @@ snapshots:
dependencies:
is-number: 7.0.0
- toad-cache@3.3.0: {}
-
toad-cache@3.7.0: {}
tocbot@4.21.1: {}
@@ -23378,7 +24367,7 @@ snapshots:
psl: 1.9.0
punycode: 2.3.1
- tough-cookie@4.1.3:
+ tough-cookie@4.1.4:
dependencies:
psl: 1.9.0
punycode: 2.3.1
@@ -23405,9 +24394,9 @@ snapshots:
dependencies:
typescript: 5.3.3
- ts-api-utils@1.3.0(typescript@5.4.5):
+ ts-api-utils@1.3.0(typescript@5.5.3):
dependencies:
- typescript: 5.4.5
+ typescript: 5.5.3
ts-case-convert@2.0.2: {}
@@ -23415,7 +24404,7 @@ snapshots:
ts-map@1.0.3: {}
- tsc-alias@1.8.8:
+ tsc-alias@1.8.10:
dependencies:
chokidar: 3.5.3
commander: 9.5.0
@@ -23437,9 +24426,9 @@ snapshots:
minimist: 1.2.8
strip-bom: 3.0.0
- tsd@0.30.7:
+ tsd@0.31.1:
dependencies:
- '@tsd/typescript': 5.3.3
+ '@tsd/typescript': 5.4.5
eslint-formatter-pretty: 4.1.0
globby: 11.1.0
jest-diff: 29.7.0
@@ -23451,6 +24440,8 @@ snapshots:
tslib@2.6.2: {}
+ tslib@2.6.3: {}
+
tsx@4.4.0:
dependencies:
esbuild: 0.18.20
@@ -23470,8 +24461,6 @@ snapshots:
type-detect@4.0.8: {}
- type-fest@0.16.0: {}
-
type-fest@0.18.1: {}
type-fest@0.20.2: {}
@@ -23482,8 +24471,12 @@ snapshots:
type-fest@0.8.1: {}
+ type-fest@1.4.0: {}
+
type-fest@2.19.0: {}
+ type-fest@4.20.1: {}
+
type-fest@4.9.0: {}
type-is@1.6.18:
@@ -23520,7 +24513,7 @@ snapshots:
typedarray@0.0.6: {}
- typeorm@0.3.20(ioredis@5.4.1)(pg@8.11.5):
+ typeorm@0.3.20(ioredis@5.4.1)(pg@8.12.0):
dependencies:
'@sqltools/formatter': 1.2.5
app-root-path: 3.1.0
@@ -23539,7 +24532,7 @@ snapshots:
yargs: 17.7.2
optionalDependencies:
ioredis: 5.4.1
- pg: 8.11.5
+ pg: 8.12.0
transitivePeerDependencies:
- supports-color
@@ -23547,7 +24540,7 @@ snapshots:
typescript@5.4.2: {}
- typescript@5.4.5: {}
+ typescript@5.5.3: {}
ufo@1.3.2: {}
@@ -23588,6 +24581,8 @@ snapshots:
unicode-property-aliases-ecmascript@2.1.0: {}
+ unicorn-magic@0.1.0: {}
+
unified@11.0.4:
dependencies:
'@types/unist': 3.0.2
@@ -23608,9 +24603,9 @@ snapshots:
dependencies:
imurmurhash: 0.1.4
- unique-string@2.0.0:
+ unique-string@3.0.0:
dependencies:
- crypto-random-string: 2.0.0
+ crypto-random-string: 4.0.0
unist-util-is@6.0.0:
dependencies:
@@ -23643,7 +24638,7 @@ snapshots:
unplugin@1.4.0:
dependencies:
- acorn: 8.11.3
+ acorn: 8.12.0
chokidar: 3.5.3
webpack-sources: 3.2.3
webpack-virtual-modules: 0.5.0
@@ -23671,6 +24666,21 @@ snapshots:
querystringify: 2.2.0
requires-port: 1.0.0
+ use-callback-ref@1.3.2(@types/react@18.0.28)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ tslib: 2.6.2
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ use-sidecar@1.1.2(@types/react@18.0.28)(react@18.3.1):
+ dependencies:
+ detect-node-es: 1.1.0
+ react: 18.3.1
+ tslib: 2.6.2
+ optionalDependencies:
+ '@types/react': 18.0.28
+
utf-8-validate@6.0.3:
dependencies:
node-gyp-build: 4.6.0
@@ -23688,20 +24698,22 @@ snapshots:
utils-merge@1.0.1: {}
+ uuid@10.0.0: {}
+
uuid@3.4.0: {}
uuid@8.3.2: {}
uuid@9.0.1: {}
- v-code-diff@1.11.0(vue@3.4.26(typescript@5.4.5)):
+ v-code-diff@1.12.0(vue@3.4.31(typescript@5.5.3)):
dependencies:
diff: 5.1.0
diff-match-patch: 1.0.5
highlight.js: 11.9.0
- vue: 3.4.26(typescript@5.4.5)
- vue-demi: 0.14.7(vue@3.4.26(typescript@5.4.5))
- vue-i18n: 9.13.1(vue@3.4.26(typescript@5.4.5))
+ vue: 3.4.31(typescript@5.5.3)
+ vue-demi: 0.14.7(vue@3.4.31(typescript@5.5.3))
+ vue-i18n: 9.13.1(vue@3.4.31(typescript@5.5.3))
v8-to-istanbul@9.2.0:
dependencies:
@@ -23714,8 +24726,6 @@ snapshots:
spdx-correct: 3.1.1
spdx-expression-parse: 3.0.1
- validator@13.9.0: {}
-
vary@1.1.2: {}
verror@1.10.0:
@@ -23735,14 +24745,13 @@ snapshots:
unist-util-stringify-position: 4.0.0
vfile-message: 4.0.2
- vite-node@0.34.6(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3):
+ vite-node@1.6.0(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1):
dependencies:
cac: 6.7.14
- debug: 4.3.4(supports-color@5.5.0)
- mlly: 1.5.0
+ debug: 4.3.5(supports-color@8.1.1)
pathe: 1.1.2
picocolors: 1.0.0
- vite: 5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3)
+ vite: 5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1)
transitivePeerDependencies:
- '@types/node'
- less
@@ -23755,53 +24764,50 @@ snapshots:
vite-plugin-turbosnap@1.0.3: {}
- vite@5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3):
+ vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1):
dependencies:
- esbuild: 0.20.2
+ esbuild: 0.21.5
postcss: 8.4.38
- rollup: 4.17.2
+ rollup: 4.18.0
optionalDependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
fsevents: 2.3.3
- sass: 1.76.0
- terser: 5.30.3
+ sass: 1.77.6
+ terser: 5.31.1
- vitest-fetch-mock@0.2.2(encoding@0.1.13)(vitest@0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3)):
+ vitest-fetch-mock@0.2.2(encoding@0.1.13)(vitest@1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1)):
dependencies:
cross-fetch: 3.1.6(encoding@0.1.13)
- vitest: 0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3)
+ vitest: 1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1)
transitivePeerDependencies:
- encoding
- vitest@0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3):
- dependencies:
- '@types/chai': 4.3.11
- '@types/chai-subset': 1.3.5
- '@types/node': 20.12.7
- '@vitest/expect': 0.34.6
- '@vitest/runner': 0.34.6
- '@vitest/snapshot': 0.34.6
- '@vitest/spy': 0.34.6
- '@vitest/utils': 0.34.6
- acorn: 8.11.3
+ vitest@1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1):
+ dependencies:
+ '@vitest/expect': 1.6.0
+ '@vitest/runner': 1.6.0
+ '@vitest/snapshot': 1.6.0
+ '@vitest/spy': 1.6.0
+ '@vitest/utils': 1.6.0
acorn-walk: 8.3.2
- cac: 6.7.14
chai: 4.3.10
debug: 4.3.4(supports-color@5.5.0)
- local-pkg: 0.4.3
- magic-string: 0.30.7
+ execa: 8.0.1
+ local-pkg: 0.5.0
+ magic-string: 0.30.10
pathe: 1.1.2
picocolors: 1.0.0
std-env: 3.7.0
- strip-literal: 1.3.0
+ strip-literal: 2.1.0
tinybench: 2.6.0
- tinypool: 0.7.0
- vite: 5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3)
- vite-node: 0.34.6(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3)
+ tinypool: 0.8.4
+ vite: 5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1)
+ vite-node: 1.6.0(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1)
why-is-node-running: 2.2.2
optionalDependencies:
+ '@types/node': 20.14.9
happy-dom: 10.0.3
- jsdom: 24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3)
+ jsdom: 24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3)
transitivePeerDependencies:
- less
- lightningcss
@@ -23834,98 +24840,102 @@ snapshots:
dependencies:
vscode-languageserver-protocol: 3.17.5
- vue-component-meta@2.0.16(typescript@5.4.5):
+ vscode-uri@3.0.8: {}
+
+ vue-component-meta@2.0.16(typescript@5.5.3):
dependencies:
'@volar/typescript': 2.2.0
- '@vue/language-core': 2.0.16(typescript@5.4.5)
+ '@vue/language-core': 2.0.16(typescript@5.5.3)
path-browserify: 1.0.1
vue-component-type-helpers: 2.0.16
optionalDependencies:
- typescript: 5.4.5
+ typescript: 5.5.3
vue-component-type-helpers@1.8.4: {}
vue-component-type-helpers@2.0.16: {}
- vue-component-type-helpers@2.0.19: {}
+ vue-component-type-helpers@2.0.24: {}
- vue-demi@0.14.7(vue@3.4.26(typescript@5.4.5)):
+ vue-component-type-helpers@2.0.26: {}
+
+ vue-demi@0.14.7(vue@3.4.31(typescript@5.5.3)):
dependencies:
- vue: 3.4.26(typescript@5.4.5)
+ vue: 3.4.31(typescript@5.5.3)
- vue-docgen-api@4.75.1(vue@3.4.26(typescript@5.4.5)):
+ vue-docgen-api@4.75.1(vue@3.4.31(typescript@5.5.3)):
dependencies:
- '@babel/parser': 7.24.0
- '@babel/types': 7.24.0
- '@vue/compiler-dom': 3.4.21
- '@vue/compiler-sfc': 3.4.26
+ '@babel/parser': 7.24.7
+ '@babel/types': 7.24.7
+ '@vue/compiler-dom': 3.4.29
+ '@vue/compiler-sfc': 3.4.31
ast-types: 0.16.1
hash-sum: 2.0.0
lru-cache: 8.0.4
- pug: 3.0.2
- recast: 0.23.4
+ pug: 3.0.3
+ recast: 0.23.6
ts-map: 1.0.3
- vue: 3.4.26(typescript@5.4.5)
- vue-inbrowser-compiler-independent-utils: 4.71.1(vue@3.4.26(typescript@5.4.5))
+ vue: 3.4.31(typescript@5.5.3)
+ vue-inbrowser-compiler-independent-utils: 4.71.1(vue@3.4.31(typescript@5.5.3))
- vue-eslint-parser@9.4.2(eslint@8.57.0):
+ vue-eslint-parser@9.4.3(eslint@9.6.0):
dependencies:
debug: 4.3.4(supports-color@5.5.0)
- eslint: 8.57.0
+ eslint: 9.6.0
eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.3
espree: 9.6.1
esquery: 1.4.2
lodash: 4.17.21
- semver: 7.5.4
+ semver: 7.6.0
transitivePeerDependencies:
- supports-color
- vue-i18n@9.13.1(vue@3.4.26(typescript@5.4.5)):
+ vue-i18n@9.13.1(vue@3.4.31(typescript@5.5.3)):
dependencies:
'@intlify/core-base': 9.13.1
'@intlify/shared': 9.13.1
'@vue/devtools-api': 6.6.1
- vue: 3.4.26(typescript@5.4.5)
+ vue: 3.4.31(typescript@5.5.3)
- vue-inbrowser-compiler-independent-utils@4.71.1(vue@3.4.26(typescript@5.4.5)):
+ vue-inbrowser-compiler-independent-utils@4.71.1(vue@3.4.31(typescript@5.5.3)):
dependencies:
- vue: 3.4.26(typescript@5.4.5)
+ vue: 3.4.31(typescript@5.5.3)
vue-template-compiler@2.7.14:
dependencies:
de-indent: 1.0.2
he: 1.2.0
- vue-tsc@2.0.16(typescript@5.4.5):
+ vue-tsc@2.0.24(typescript@5.5.3):
dependencies:
- '@volar/typescript': 2.2.0
- '@vue/language-core': 2.0.16(typescript@5.4.5)
+ '@volar/typescript': 2.4.0-alpha.11
+ '@vue/language-core': 2.0.24(typescript@5.5.3)
semver: 7.6.0
- typescript: 5.4.5
+ typescript: 5.5.3
- vue@3.4.26(typescript@5.4.5):
+ vue@3.4.31(typescript@5.5.3):
dependencies:
- '@vue/compiler-dom': 3.4.26
- '@vue/compiler-sfc': 3.4.26
- '@vue/runtime-dom': 3.4.26
- '@vue/server-renderer': 3.4.26(vue@3.4.26(typescript@5.4.5))
- '@vue/shared': 3.4.26
+ '@vue/compiler-dom': 3.4.31
+ '@vue/compiler-sfc': 3.4.31
+ '@vue/runtime-dom': 3.4.31
+ '@vue/server-renderer': 3.4.31(vue@3.4.31(typescript@5.5.3))
+ '@vue/shared': 3.4.31
optionalDependencies:
- typescript: 5.4.5
+ typescript: 5.5.3
- vuedraggable@4.1.0(vue@3.4.26(typescript@5.4.5)):
+ vuedraggable@4.1.0(vue@3.4.31(typescript@5.5.3)):
dependencies:
sortablejs: 1.14.0
- vue: 3.4.26(typescript@5.4.5)
+ vue: 3.4.31(typescript@5.5.3)
w3c-xmlserializer@5.0.0:
dependencies:
xml-name-validator: 5.0.0
- wait-on@7.2.0(debug@4.3.4):
+ wait-on@7.2.0(debug@4.3.5):
dependencies:
- axios: 1.6.2(debug@4.3.4)
+ axios: 1.6.2(debug@4.3.5)
joi: 17.11.0
lodash: 4.17.21
minimist: 1.2.8
@@ -24037,8 +25047,8 @@ snapshots:
with@7.0.2:
dependencies:
- '@babel/parser': 7.23.9
- '@babel/types': 7.23.5
+ '@babel/parser': 7.24.5
+ '@babel/types': 7.24.0
assert-never: 1.2.1
babel-walk: 3.0.0-canary-5
@@ -24075,7 +25085,7 @@ snapshots:
imurmurhash: 0.1.4
signal-exit: 3.0.7
- ws@8.17.0(bufferutil@4.0.7)(utf-8-validate@6.0.3):
+ ws@8.17.1(bufferutil@4.0.7)(utf-8-validate@6.0.3):
optionalDependencies:
bufferutil: 4.0.7
utf-8-validate: 6.0.3
@@ -24163,13 +25173,7 @@ snapshots:
yocto-queue@1.0.0: {}
- z-schema@5.0.5:
- dependencies:
- lodash.get: 4.4.2
- lodash.isequal: 4.5.0
- validator: 13.9.0
- optionalDependencies:
- commander: 9.5.0
+ yoctocolors@2.0.2: {}
zip-stream@6.0.1:
dependencies:
diff --git a/scripts/build-assets.mjs b/scripts/build-assets.mjs
index b5aa5eb4ab55..2b275e12d687 100644
--- a/scripts/build-assets.mjs
+++ b/scripts/build-assets.mjs
@@ -13,7 +13,7 @@ import * as terser from 'terser';
import { build as buildLocales } from '../locales/index.js';
import generateDTS from '../locales/generateDTS.js';
-import meta from '../package.json' assert { type: "json" };
+import meta from '../package.json' with { type: "json" };
import buildTarball from './tarball.mjs';
const configDir = fileURLToPath(new URL('../.config', import.meta.url));
diff --git a/scripts/changelog-checker/.eslintrc.cjs b/scripts/changelog-checker/.eslintrc.cjs
deleted file mode 100644
index 6acf8b3e6e10..000000000000
--- a/scripts/changelog-checker/.eslintrc.cjs
+++ /dev/null
@@ -1,9 +0,0 @@
-module.exports = {
- parserOptions: {
- tsconfigRootDir: __dirname,
- project: ['./tsconfig.json'],
- },
- extends: [
- '../../packages/shared/.eslintrc.js',
- ],
-};
diff --git a/scripts/changelog-checker/eslint.config.js b/scripts/changelog-checker/eslint.config.js
new file mode 100644
index 000000000000..813e96981ace
--- /dev/null
+++ b/scripts/changelog-checker/eslint.config.js
@@ -0,0 +1,17 @@
+import tsParser from '@typescript-eslint/parser';
+import sharedConfig from '../../packages/shared/eslint.config.js';
+
+export default [
+ ...sharedConfig,
+ {
+ files: ['src/**/*.ts', 'src/**/*.tsx'],
+ languageOptions: {
+ parserOptions: {
+ parser: tsParser,
+ project: ['./tsconfig.json'],
+ sourceType: 'module',
+ tsconfigRootDir: import.meta.dirname,
+ },
+ },
+ },
+];
diff --git a/scripts/tarball.mjs b/scripts/tarball.mjs
index b1862ad289b0..e9d8900aca0c 100644
--- a/scripts/tarball.mjs
+++ b/scripts/tarball.mjs
@@ -10,7 +10,7 @@ import { fileURLToPath } from 'node:url';
import glob from 'fast-glob';
import walk from 'ignore-walk';
import Pack from 'tar/lib/pack.js';
-import meta from '../package.json' assert { type: "json" };
+import meta from '../package.json' with { type: "json" };
const cwd = fileURLToPath(new URL('..', import.meta.url));
const ignore = [