diff --git a/.bumpversion.cfg b/.bumpversion.cfg
index 582895915..f78e67f49 100644
--- a/.bumpversion.cfg
+++ b/.bumpversion.cfg
@@ -1,5 +1,5 @@
[bumpversion]
-current_version = 2023.10.1
+current_version = 2023.10.4
tag = True
commit = True
parse = (?P\d+)\.(?P\d+)\.(?P\d+)
diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml
index c13282ba0..6e5bd99e6 100644
--- a/.github/actions/setup/action.yml
+++ b/.github/actions/setup/action.yml
@@ -2,36 +2,39 @@ name: "Setup authentik testing environment"
description: "Setup authentik testing environment"
inputs:
- postgresql_tag:
+ postgresql_version:
description: "Optional postgresql image tag"
default: "12"
runs:
using: "composite"
steps:
- - name: Install poetry
+ - name: Install poetry & deps
shell: bash
run: |
pipx install poetry || true
- sudo apt update
- sudo apt install -y libpq-dev openssl libxmlsec1-dev pkg-config gettext
+ sudo apt-get update
+ sudo apt-get install --no-install-recommends -y libpq-dev openssl libxmlsec1-dev pkg-config gettext
- name: Setup python and restore poetry
- uses: actions/setup-python@v3
+ uses: actions/setup-python@v4
with:
- python-version: "3.11"
+ python-version-file: 'pyproject.toml'
cache: "poetry"
- name: Setup node
uses: actions/setup-node@v3
with:
- node-version: "20"
+ node-version-file: web/package.json
cache: "npm"
cache-dependency-path: web/package-lock.json
+ - name: Setup go
+ uses: actions/setup-go@v4
+ with:
+ go-version-file: "go.mod"
- name: Setup dependencies
shell: bash
run: |
- export PSQL_TAG=${{ inputs.postgresql_tag }}
+ export PSQL_TAG=${{ inputs.postgresql_version }}
docker-compose -f .github/actions/setup/docker-compose.yml up -d
- poetry env use python3.11
poetry install
cd web && npm ci
- name: Generate config
diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml
index 097321888..26baa3556 100644
--- a/.github/workflows/ci-main.yml
+++ b/.github/workflows/ci-main.yml
@@ -11,6 +11,7 @@ on:
pull_request:
branches:
- main
+ - version-*
env:
POSTGRES_DB: authentik
@@ -47,25 +48,38 @@ jobs:
- name: run migrations
run: poetry run python -m lifecycle.migrate
test-migrations-from-stable:
+ name: test-migrations-from-stable - PostgreSQL ${{ matrix.psql }}
runs-on: ubuntu-latest
- continue-on-error: true
+ strategy:
+ fail-fast: false
+ matrix:
+ psql:
+ - 12-alpine
+ - 15-alpine
+ - 16-alpine
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup authentik env
uses: ./.github/actions/setup
+ with:
+ postgresql_version: ${{ matrix.psql }}
- name: checkout stable
run: |
+ # Delete all poetry envs
+ rm -rf /home/runner/.cache/pypoetry
# Copy current, latest config to local
cp authentik/lib/default.yml local.env.yml
cp -R .github ..
cp -R scripts ..
- git checkout $(git describe --tags $(git rev-list --tags --max-count=1))
+ git checkout version/$(python -c "from authentik import __version__; print(__version__)")
rm -rf .github/ scripts/
mv ../.github ../scripts .
- name: Setup authentik env (ensure stable deps are installed)
uses: ./.github/actions/setup
+ with:
+ postgresql_version: ${{ matrix.psql }}
- name: run migrations to stable
run: poetry run python -m lifecycle.migrate
- name: checkout current code
@@ -75,9 +89,13 @@ jobs:
git reset --hard HEAD
git clean -d -fx .
git checkout $GITHUB_SHA
+ # Delete previous poetry env
+ rm -rf $(poetry env info --path)
poetry install
- name: Setup authentik env (ensure latest deps are installed)
uses: ./.github/actions/setup
+ with:
+ postgresql_version: ${{ matrix.psql }}
- name: migrate to latest
run: poetry run python -m lifecycle.migrate
test-unittest:
@@ -96,7 +114,7 @@ jobs:
- name: Setup authentik env
uses: ./.github/actions/setup
with:
- postgresql_tag: ${{ matrix.psql }}
+ postgresql_version: ${{ matrix.psql }}
- name: run unittest
run: |
poetry run make test
@@ -185,6 +203,9 @@ jobs:
build:
needs: ci-core-mark
runs-on: ubuntu-latest
+ permissions:
+ # Needed to upload contianer images to ghcr.io
+ packages: write
timeout-minutes: 120
steps:
- uses: actions/checkout@v4
@@ -235,6 +256,9 @@ jobs:
build-arm64:
needs: ci-core-mark
runs-on: ubuntu-latest
+ permissions:
+ # Needed to upload contianer images to ghcr.io
+ packages: write
timeout-minutes: 120
steps:
- uses: actions/checkout@v4
diff --git a/.github/workflows/ci-outpost.yml b/.github/workflows/ci-outpost.yml
index a3e80d396..3514efe09 100644
--- a/.github/workflows/ci-outpost.yml
+++ b/.github/workflows/ci-outpost.yml
@@ -9,6 +9,7 @@ on:
pull_request:
branches:
- main
+ - version-*
jobs:
lint-golint:
@@ -65,6 +66,9 @@ jobs:
- ldap
- radius
runs-on: ubuntu-latest
+ permissions:
+ # Needed to upload contianer images to ghcr.io
+ packages: write
steps:
- uses: actions/checkout@v4
with:
@@ -126,7 +130,7 @@ jobs:
go-version-file: "go.mod"
- uses: actions/setup-node@v4
with:
- node-version: "20"
+ node-version-file: web/package.json
cache: "npm"
cache-dependency-path: web/package-lock.json
- name: Generate API
diff --git a/.github/workflows/ci-web.yml b/.github/workflows/ci-web.yml
index e47e9b2df..43ca0a168 100644
--- a/.github/workflows/ci-web.yml
+++ b/.github/workflows/ci-web.yml
@@ -9,6 +9,7 @@ on:
pull_request:
branches:
- main
+ - version-*
jobs:
lint-eslint:
@@ -23,7 +24,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
- node-version: "20"
+ node-version-file: ${{ matrix.project }}/package.json
cache: "npm"
cache-dependency-path: ${{ matrix.project }}/package-lock.json
- working-directory: ${{ matrix.project }}/
@@ -39,7 +40,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
- node-version: "20"
+ node-version-file: web/package.json
cache: "npm"
cache-dependency-path: web/package-lock.json
- working-directory: web/
@@ -61,7 +62,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
- node-version: "20"
+ node-version-file: ${{ matrix.project }}/package.json
cache: "npm"
cache-dependency-path: ${{ matrix.project }}/package-lock.json
- working-directory: ${{ matrix.project }}/
@@ -77,7 +78,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
- node-version: "20"
+ node-version-file: web/package.json
cache: "npm"
cache-dependency-path: web/package-lock.json
- working-directory: web/
@@ -109,7 +110,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
- node-version: "20"
+ node-version-file: web/package.json
cache: "npm"
cache-dependency-path: web/package-lock.json
- working-directory: web/
diff --git a/.github/workflows/ci-website.yml b/.github/workflows/ci-website.yml
index 0b3376e01..78a3a8f8a 100644
--- a/.github/workflows/ci-website.yml
+++ b/.github/workflows/ci-website.yml
@@ -9,6 +9,7 @@ on:
pull_request:
branches:
- main
+ - version-*
jobs:
lint-prettier:
@@ -17,7 +18,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
- node-version: "20"
+ node-version-file: website/package.json
cache: "npm"
cache-dependency-path: website/package-lock.json
- working-directory: website/
@@ -31,7 +32,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
- node-version: "20"
+ node-version-file: website/package.json
cache: "npm"
cache-dependency-path: website/package-lock.json
- working-directory: website/
@@ -52,7 +53,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
- node-version: "20"
+ node-version-file: website/package.json
cache: "npm"
cache-dependency-path: website/package-lock.json
- working-directory: website/
diff --git a/.github/workflows/gha-cache-cleanup.yml b/.github/workflows/gha-cache-cleanup.yml
index 178d00cac..473625d1c 100644
--- a/.github/workflows/gha-cache-cleanup.yml
+++ b/.github/workflows/gha-cache-cleanup.yml
@@ -6,6 +6,10 @@ on:
types:
- closed
+permissions:
+ # Permission to delete cache
+ actions: write
+
jobs:
cleanup:
runs-on: ubuntu-latest
diff --git a/.github/workflows/release-next-branch.yml b/.github/workflows/release-next-branch.yml
index 233398e95..57b672d28 100644
--- a/.github/workflows/release-next-branch.yml
+++ b/.github/workflows/release-next-branch.yml
@@ -6,6 +6,7 @@ on:
workflow_dispatch:
permissions:
+ # Needed to be able to push to the next branch
contents: write
jobs:
diff --git a/.github/workflows/release-publish.yml b/.github/workflows/release-publish.yml
index e1a024786..4d75af0d8 100644
--- a/.github/workflows/release-publish.yml
+++ b/.github/workflows/release-publish.yml
@@ -7,6 +7,9 @@ on:
jobs:
build-server:
runs-on: ubuntu-latest
+ permissions:
+ # Needed to upload contianer images to ghcr.io
+ packages: write
steps:
- uses: actions/checkout@v4
- name: Set up QEMU
@@ -52,6 +55,9 @@ jobs:
VERSION_FAMILY=${{ steps.ev.outputs.versionFamily }}
build-outpost:
runs-on: ubuntu-latest
+ permissions:
+ # Needed to upload contianer images to ghcr.io
+ packages: write
strategy:
fail-fast: false
matrix:
@@ -106,6 +112,9 @@ jobs:
build-outpost-binary:
timeout-minutes: 120
runs-on: ubuntu-latest
+ permissions:
+ # Needed to upload binaries to the release
+ contents: write
strategy:
fail-fast: false
matrix:
@@ -122,7 +131,7 @@ jobs:
go-version-file: "go.mod"
- uses: actions/setup-node@v4
with:
- node-version: "20"
+ node-version-file: web/package.json
cache: "npm"
cache-dependency-path: web/package-lock.json
- name: Build web
diff --git a/.github/workflows/release-tag.yml b/.github/workflows/release-tag.yml
index 2365145b4..a0b896a92 100644
--- a/.github/workflows/release-tag.yml
+++ b/.github/workflows/release-tag.yml
@@ -30,7 +30,7 @@ jobs:
private_key: ${{ secrets.GH_APP_PRIVATE_KEY }}
- name: Extract version number
id: get_version
- uses: actions/github-script@v6
+ uses: actions/github-script@v7
with:
github-token: ${{ steps.generate_token.outputs.token }}
script: |
diff --git a/.github/workflows/repo-stale.yml b/.github/workflows/repo-stale.yml
index d7b9b66b4..5aa4f609c 100644
--- a/.github/workflows/repo-stale.yml
+++ b/.github/workflows/repo-stale.yml
@@ -6,8 +6,8 @@ on:
workflow_dispatch:
permissions:
+ # Needed to update issues and PRs
issues: write
- pull-requests: write
jobs:
stale:
diff --git a/.github/workflows/translation-advice.yml b/.github/workflows/translation-advice.yml
index f7a788fb6..ad76424fa 100644
--- a/.github/workflows/translation-advice.yml
+++ b/.github/workflows/translation-advice.yml
@@ -7,7 +7,12 @@ on:
paths:
- "!**"
- "locale/**"
- - "web/src/locales/**"
+ - "!locale/en/**"
+ - "web/xliff/**"
+
+permissions:
+ # Permission to write comment
+ pull-requests: write
jobs:
post-comment:
diff --git a/.github/workflows/translation-rename.yml b/.github/workflows/translation-rename.yml
index b2c947bda..7fe0a7ab5 100644
--- a/.github/workflows/translation-rename.yml
+++ b/.github/workflows/translation-rename.yml
@@ -6,6 +6,10 @@ on:
pull_request:
types: [opened, reopened]
+permissions:
+ # Permission to rename PR
+ pull-requests: write
+
jobs:
rename_pr:
runs-on: ubuntu-latest
diff --git a/.github/workflows/web-api-publish.yml b/.github/workflows/web-api-publish.yml
index a6dfaeaa9..4c617a199 100644
--- a/.github/workflows/web-api-publish.yml
+++ b/.github/workflows/web-api-publish.yml
@@ -19,7 +19,7 @@ jobs:
token: ${{ steps.generate_token.outputs.token }}
- uses: actions/setup-node@v4
with:
- node-version: "20"
+ node-version-file: web/package.json
registry-url: "https://registry.npmjs.org"
- name: Generate API Client
run: make gen-client-ts
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
index 625e45489..dd280d682 100644
--- a/.vscode/extensions.json
+++ b/.vscode/extensions.json
@@ -14,6 +14,7 @@
"ms-python.pylint",
"ms-python.python",
"ms-python.vscode-pylance",
+ "ms-python.black-formatter",
"redhat.vscode-yaml",
"Tobermory.es6-string-html",
"unifiedjs.vscode-mdx",
diff --git a/.vscode/settings.json b/.vscode/settings.json
index e674c02b5..218800d1e 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -19,10 +19,8 @@
"slo",
"scim",
],
- "python.linting.pylintEnabled": true,
"todo-tree.tree.showCountsInTree": true,
"todo-tree.tree.showBadges": true,
- "python.formatting.provider": "black",
"yaml.customTags": [
"!Find sequence",
"!KeyOf scalar",
diff --git a/Dockerfile b/Dockerfile
index fca6080de..6db21c26f 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -35,7 +35,14 @@ COPY ./gen-ts-api /work/web/node_modules/@goauthentik/api
RUN npm run build
# Stage 3: Build go proxy
-FROM docker.io/golang:1.21.3-bookworm AS go-builder
+FROM --platform=${BUILDPLATFORM} docker.io/golang:1.21.4-bookworm AS go-builder
+
+ARG TARGETOS
+ARG TARGETARCH
+ARG TARGETVARIANT
+
+ARG GOOS=$TARGETOS
+ARG GOARCH=$TARGETARCH
WORKDIR /go/src/goauthentik.io
@@ -57,10 +64,10 @@ ENV CGO_ENABLED=0
RUN --mount=type=cache,target=/go/pkg/mod \
--mount=type=cache,target=/root/.cache/go-build \
- go build -o /go/authentik ./cmd/server
+ GOARM="${TARGETVARIANT#v}" go build -o /go/authentik ./cmd/server
# Stage 4: MaxMind GeoIP
-FROM ghcr.io/maxmind/geoipupdate:v6.0 as geoip
+FROM --platform=${BUILDPLATFORM} ghcr.io/maxmind/geoipupdate:v6.0 as geoip
ENV GEOIPUPDATE_EDITION_IDS="GeoLite2-City"
ENV GEOIPUPDATE_VERBOSE="true"
@@ -74,7 +81,7 @@ RUN --mount=type=secret,id=GEOIPUPDATE_ACCOUNT_ID \
/bin/sh -c "/usr/bin/entry.sh || echo 'Failed to get GeoIP database, disabling'; exit 0"
# Stage 5: Python dependencies
-FROM docker.io/python:3.11.5-bookworm AS python-deps
+FROM docker.io/python:3.12.0-slim-bookworm AS python-deps
WORKDIR /ak-root/poetry
@@ -97,7 +104,7 @@ RUN --mount=type=bind,target=./pyproject.toml,src=./pyproject.toml \
poetry install --only=main --no-ansi --no-interaction
# Stage 6: Run
-FROM docker.io/python:3.11.5-slim-bookworm AS final-image
+FROM docker.io/python:3.12.0-slim-bookworm AS final-image
ARG GIT_BUILD_HASH
ARG VERSION
diff --git a/Makefile b/Makefile
index 07a84fb70..c649ff230 100644
--- a/Makefile
+++ b/Makefile
@@ -110,6 +110,8 @@ gen-diff: ## (Release) generate the changelog diff between the current schema a
--markdown /local/diff.md \
/local/old_schema.yml /local/schema.yml
rm old_schema.yml
+ sed -i 's/{/{/g' diff.md
+ sed -i 's/}/}/g' diff.md
npx prettier --write diff.md
gen-clean:
diff --git a/authentik/__init__.py b/authentik/__init__.py
index 2a9fc00e3..fc368ceeb 100644
--- a/authentik/__init__.py
+++ b/authentik/__init__.py
@@ -2,7 +2,7 @@
from os import environ
from typing import Optional
-__version__ = "2023.10.1"
+__version__ = "2023.10.4"
ENV_GIT_HASH_KEY = "GIT_BUILD_HASH"
diff --git a/authentik/admin/api/system.py b/authentik/admin/api/system.py
index 7e7d2d920..5a7007153 100644
--- a/authentik/admin/api/system.py
+++ b/authentik/admin/api/system.py
@@ -30,7 +30,7 @@ class RuntimeDict(TypedDict):
uname: str
-class SystemSerializer(PassiveSerializer):
+class SystemInfoSerializer(PassiveSerializer):
"""Get system information."""
http_headers = SerializerMethodField()
@@ -91,14 +91,14 @@ class SystemView(APIView):
permission_classes = [HasPermission("authentik_rbac.view_system_info")]
pagination_class = None
filter_backends = []
- serializer_class = SystemSerializer
+ serializer_class = SystemInfoSerializer
- @extend_schema(responses={200: SystemSerializer(many=False)})
+ @extend_schema(responses={200: SystemInfoSerializer(many=False)})
def get(self, request: Request) -> Response:
"""Get system information."""
- return Response(SystemSerializer(request).data)
+ return Response(SystemInfoSerializer(request).data)
- @extend_schema(responses={200: SystemSerializer(many=False)})
+ @extend_schema(responses={200: SystemInfoSerializer(many=False)})
def post(self, request: Request) -> Response:
"""Get system information."""
- return Response(SystemSerializer(request).data)
+ return Response(SystemInfoSerializer(request).data)
diff --git a/authentik/api/v3/config.py b/authentik/api/v3/config.py
index bbc676647..0defd1a5b 100644
--- a/authentik/api/v3/config.py
+++ b/authentik/api/v3/config.py
@@ -93,10 +93,10 @@ class ConfigView(APIView):
"traces_sample_rate": float(CONFIG.get("error_reporting.sample_rate", 0.4)),
},
"capabilities": self.get_capabilities(),
- "cache_timeout": CONFIG.get_int("redis.cache_timeout"),
- "cache_timeout_flows": CONFIG.get_int("redis.cache_timeout_flows"),
- "cache_timeout_policies": CONFIG.get_int("redis.cache_timeout_policies"),
- "cache_timeout_reputation": CONFIG.get_int("redis.cache_timeout_reputation"),
+ "cache_timeout": CONFIG.get_int("cache.timeout"),
+ "cache_timeout_flows": CONFIG.get_int("cache.timeout_flows"),
+ "cache_timeout_policies": CONFIG.get_int("cache.timeout_policies"),
+ "cache_timeout_reputation": CONFIG.get_int("cache.timeout_reputation"),
}
)
diff --git a/authentik/core/api/users.py b/authentik/core/api/users.py
index d4adacc97..5ee249729 100644
--- a/authentik/core/api/users.py
+++ b/authentik/core/api/users.py
@@ -171,6 +171,11 @@ class UserSerializer(ModelSerializer):
raise ValidationError("Setting a user to internal service account is not allowed.")
return user_type
+ def validate(self, attrs: dict) -> dict:
+ if self.instance and self.instance.type == UserTypes.INTERNAL_SERVICE_ACCOUNT:
+ raise ValidationError("Can't modify internal service account users")
+ return super().validate(attrs)
+
class Meta:
model = User
fields = [
diff --git a/authentik/core/management/commands/worker.py b/authentik/core/management/commands/worker.py
index b22187efe..f85c36cc9 100644
--- a/authentik/core/management/commands/worker.py
+++ b/authentik/core/management/commands/worker.py
@@ -17,9 +17,15 @@ class Command(BaseCommand):
"""Run worker"""
def add_arguments(self, parser):
- parser.add_argument("-b", "--beat", action="store_true")
+ parser.add_argument(
+ "-b",
+ "--beat",
+ action="store_false",
+ help="When set, this worker will _not_ run Beat (scheduled) tasks",
+ )
def handle(self, **options):
+ LOGGER.debug("Celery options", **options)
close_old_connections()
if CONFIG.get_bool("remote_debug"):
import debugpy
diff --git a/authentik/core/models.py b/authentik/core/models.py
index 5365ef693..7d11af3d6 100644
--- a/authentik/core/models.py
+++ b/authentik/core/models.py
@@ -517,7 +517,7 @@ class Source(ManagedModel, SerializerModel, PolicyBindingModel):
objects = InheritanceManager()
@property
- def get_icon(self) -> Optional[str]:
+ def icon_url(self) -> Optional[str]:
"""Get the URL to the Icon. If the name is /static or
starts with http it is returned as-is"""
if not self.icon:
diff --git a/authentik/events/middleware.py b/authentik/events/middleware.py
index a722d8e4a..7834bae5e 100644
--- a/authentik/events/middleware.py
+++ b/authentik/events/middleware.py
@@ -27,6 +27,7 @@ from authentik.lib.sentry import before_send
from authentik.lib.utils.errors import exception_to_string
from authentik.outposts.models import OutpostServiceConnection
from authentik.policies.models import Policy, PolicyBindingModel
+from authentik.policies.reputation.models import Reputation
from authentik.providers.oauth2.models import AccessToken, AuthorizationCode, RefreshToken
from authentik.providers.scim.models import SCIMGroup, SCIMUser
from authentik.stages.authenticator_static.models import StaticToken
@@ -52,11 +53,13 @@ IGNORED_MODELS = (
RefreshToken,
SCIMUser,
SCIMGroup,
+ Reputation,
)
def should_log_model(model: Model) -> bool:
"""Return true if operation on `model` should be logged"""
+ # Check for silk by string so this comparison doesn't fail when silk isn't installed
if model.__module__.startswith("silk"):
return False
return model.__class__ not in IGNORED_MODELS
@@ -93,21 +96,30 @@ class AuditMiddleware:
of models"""
get_response: Callable[[HttpRequest], HttpResponse]
+ anonymous_user: User = None
def __init__(self, get_response: Callable[[HttpRequest], HttpResponse]):
self.get_response = get_response
+ def _ensure_fallback_user(self):
+ """Defer fetching anonymous user until we have to"""
+ if self.anonymous_user:
+ return
+ from guardian.shortcuts import get_anonymous_user
+
+ self.anonymous_user = get_anonymous_user()
+
def connect(self, request: HttpRequest):
"""Connect signal for automatic logging"""
- if not hasattr(request, "user"):
- return
- if not getattr(request.user, "is_authenticated", False):
- return
+ self._ensure_fallback_user()
+ user = getattr(request, "user", self.anonymous_user)
+ if not user.is_authenticated:
+ user = self.anonymous_user
if not hasattr(request, "request_id"):
return
- post_save_handler = partial(self.post_save_handler, user=request.user, request=request)
- pre_delete_handler = partial(self.pre_delete_handler, user=request.user, request=request)
- m2m_changed_handler = partial(self.m2m_changed_handler, user=request.user, request=request)
+ post_save_handler = partial(self.post_save_handler, user=user, request=request)
+ pre_delete_handler = partial(self.pre_delete_handler, user=user, request=request)
+ m2m_changed_handler = partial(self.m2m_changed_handler, user=user, request=request)
post_save.connect(
post_save_handler,
dispatch_uid=request.request_id,
diff --git a/authentik/events/models.py b/authentik/events/models.py
index 4b245e49f..c43128419 100644
--- a/authentik/events/models.py
+++ b/authentik/events/models.py
@@ -217,6 +217,7 @@ class Event(SerializerModel, ExpiringModel):
"path": request.path,
"method": request.method,
"args": cleanse_dict(QueryDict(request.META.get("QUERY_STRING", ""))),
+ "user_agent": request.META.get("HTTP_USER_AGENT", ""),
}
# Special case for events created during flow execution
# since they keep the http query within a wrapped query
diff --git a/authentik/events/signals.py b/authentik/events/signals.py
index d6e65c136..0473ef013 100644
--- a/authentik/events/signals.py
+++ b/authentik/events/signals.py
@@ -13,6 +13,7 @@ from authentik.events.tasks import event_notification_handler, gdpr_cleanup
from authentik.flows.models import Stage
from authentik.flows.planner import PLAN_CONTEXT_SOURCE, FlowPlan
from authentik.flows.views.executor import SESSION_KEY_PLAN
+from authentik.lib.config import CONFIG
from authentik.stages.invitation.models import Invitation
from authentik.stages.invitation.signals import invitation_used
from authentik.stages.password.stage import PLAN_CONTEXT_METHOD, PLAN_CONTEXT_METHOD_ARGS
@@ -92,4 +93,5 @@ def event_post_save_notification(sender, instance: Event, **_):
@receiver(pre_delete, sender=User)
def event_user_pre_delete_cleanup(sender, instance: User, **_):
"""If gdpr_compliance is enabled, remove all the user's events"""
- gdpr_cleanup.delay(instance.pk)
+ if CONFIG.get_bool("gdpr_compliance", True):
+ gdpr_cleanup.delay(instance.pk)
diff --git a/authentik/events/tests/test_event.py b/authentik/events/tests/test_event.py
index 4d636e9b2..3019d5bae 100644
--- a/authentik/events/tests/test_event.py
+++ b/authentik/events/tests/test_event.py
@@ -53,7 +53,15 @@ class TestEvents(TestCase):
"""Test plain from_http"""
event = Event.new("unittest").from_http(self.factory.get("/"))
self.assertEqual(
- event.context, {"http_request": {"args": {}, "method": "GET", "path": "/"}}
+ event.context,
+ {
+ "http_request": {
+ "args": {},
+ "method": "GET",
+ "path": "/",
+ "user_agent": "",
+ }
+ },
)
def test_from_http_clean_querystring(self):
@@ -67,6 +75,7 @@ class TestEvents(TestCase):
"args": {"token": SafeExceptionReporterFilter.cleansed_substitute},
"method": "GET",
"path": "/",
+ "user_agent": "",
}
},
)
@@ -83,6 +92,7 @@ class TestEvents(TestCase):
"args": {"token": SafeExceptionReporterFilter.cleansed_substitute},
"method": "GET",
"path": "/",
+ "user_agent": "",
}
},
)
diff --git a/authentik/events/utils.py b/authentik/events/utils.py
index 59919e54d..a7c3bdf3e 100644
--- a/authentik/events/utils.py
+++ b/authentik/events/utils.py
@@ -5,12 +5,13 @@ from dataclasses import asdict, is_dataclass
from datetime import date, datetime, time, timedelta
from enum import Enum
from pathlib import Path
-from types import GeneratorType
+from types import GeneratorType, NoneType
from typing import Any, Optional
from uuid import UUID
from django.contrib.auth.models import AnonymousUser
from django.core.handlers.wsgi import WSGIRequest
+from django.core.serializers.json import DjangoJSONEncoder
from django.db import models
from django.db.models.base import Model
from django.http.request import HttpRequest
@@ -153,7 +154,20 @@ def sanitize_item(value: Any) -> Any:
return value.isoformat()
if isinstance(value, timedelta):
return str(value.total_seconds())
- return value
+ if callable(value):
+ return {
+ "type": "callable",
+ "name": value.__name__,
+ "module": value.__module__,
+ }
+ # List taken from the stdlib's JSON encoder (_make_iterencode, encoder.py:415)
+ if isinstance(value, (bool, int, float, NoneType, list, tuple, dict)):
+ return value
+ try:
+ return DjangoJSONEncoder().default(value)
+ except TypeError:
+ return str(value)
+ return str(value)
def sanitize_dict(source: dict[Any, Any]) -> dict[Any, Any]:
diff --git a/authentik/flows/planner.py b/authentik/flows/planner.py
index 4cf3c6aad..f80461490 100644
--- a/authentik/flows/planner.py
+++ b/authentik/flows/planner.py
@@ -33,7 +33,7 @@ PLAN_CONTEXT_SOURCE = "source"
# Is set by the Flow Planner when a FlowToken was used, and the currently active flow plan
# was restored.
PLAN_CONTEXT_IS_RESTORED = "is_restored"
-CACHE_TIMEOUT = CONFIG.get_int("redis.cache_timeout_flows")
+CACHE_TIMEOUT = CONFIG.get_int("cache.timeout_flows")
CACHE_PREFIX = "goauthentik.io/flows/planner/"
diff --git a/authentik/flows/tests/test_executor.py b/authentik/flows/tests/test_executor.py
index 4d5fb5c8b..dfca80517 100644
--- a/authentik/flows/tests/test_executor.py
+++ b/authentik/flows/tests/test_executor.py
@@ -472,6 +472,7 @@ class TestFlowExecutor(FlowTestCase):
ident_stage = IdentificationStage.objects.create(
name="ident",
user_fields=[UserFields.E_MAIL],
+ pretend_user_exists=False,
)
FlowStageBinding.objects.create(
target=flow,
diff --git a/authentik/lib/avatars.py b/authentik/lib/avatars.py
index 8a6e2b9c1..3faa10376 100644
--- a/authentik/lib/avatars.py
+++ b/authentik/lib/avatars.py
@@ -154,7 +154,15 @@ def generate_avatar_from_name(
def avatar_mode_generated(user: "User", mode: str) -> Optional[str]:
"""Wrapper that converts generated avatar to base64 svg"""
- svg = generate_avatar_from_name(user.name if user.name.strip() != "" else "a k")
+ # By default generate based off of user's display name
+ name = user.name.strip()
+ if name == "":
+ # Fallback to username
+ name = user.username.strip()
+ # If we still don't have anything, fallback to `a k`
+ if name == "":
+ name = "a k"
+ svg = generate_avatar_from_name(name)
return f"data:image/svg+xml;base64,{b64encode(svg.encode('utf-8')).decode('utf-8')}"
diff --git a/authentik/lib/config.py b/authentik/lib/config.py
index 63aa3493a..dd5500f8e 100644
--- a/authentik/lib/config.py
+++ b/authentik/lib/config.py
@@ -1,4 +1,6 @@
"""authentik core config loader"""
+import base64
+import json
import os
from collections.abc import Mapping
from contextlib import contextmanager
@@ -22,6 +24,25 @@ SEARCH_PATHS = ["authentik/lib/default.yml", "/etc/authentik/config.yml", ""] +
ENV_PREFIX = "AUTHENTIK"
ENVIRONMENT = os.getenv(f"{ENV_PREFIX}_ENV", "local")
+REDIS_ENV_KEYS = [
+ f"{ENV_PREFIX}_REDIS__HOST",
+ f"{ENV_PREFIX}_REDIS__PORT",
+ f"{ENV_PREFIX}_REDIS__DB",
+ f"{ENV_PREFIX}_REDIS__USERNAME",
+ f"{ENV_PREFIX}_REDIS__PASSWORD",
+ f"{ENV_PREFIX}_REDIS__TLS",
+ f"{ENV_PREFIX}_REDIS__TLS_REQS",
+]
+
+DEPRECATIONS = {
+ "redis.broker_url": "broker.url",
+ "redis.broker_transport_options": "broker.transport_options",
+ "redis.cache_timeout": "cache.timeout",
+ "redis.cache_timeout_flows": "cache.timeout_flows",
+ "redis.cache_timeout_policies": "cache.timeout_policies",
+ "redis.cache_timeout_reputation": "cache.timeout_reputation",
+}
+
def get_path_from_dict(root: dict, path: str, sep=".", default=None) -> Any:
"""Recursively walk through `root`, checking each part of `path` separated by `sep`.
@@ -81,6 +102,10 @@ class AttrEncoder(JSONEncoder):
return super().default(o)
+class UNSET:
+ """Used to test whether configuration key has not been set."""
+
+
class ConfigLoader:
"""Search through SEARCH_PATHS and load configuration. Environment variables starting with
`ENV_PREFIX` are also applied.
@@ -113,6 +138,40 @@ class ConfigLoader:
self.update_from_file(env_file)
self.update_from_env()
self.update(self.__config, kwargs)
+ self.check_deprecations()
+
+ def check_deprecations(self):
+ """Warn if any deprecated configuration options are used"""
+
+ def _pop_deprecated_key(current_obj, dot_parts, index):
+ """Recursive function to remove deprecated keys in configuration"""
+ dot_part = dot_parts[index]
+ if index == len(dot_parts) - 1:
+ return current_obj.pop(dot_part)
+ value = _pop_deprecated_key(current_obj[dot_part], dot_parts, index + 1)
+ if not current_obj[dot_part]:
+ current_obj.pop(dot_part)
+ return value
+
+ for deprecation, replacement in DEPRECATIONS.items():
+ if self.get(deprecation, default=UNSET) is not UNSET:
+ message = (
+ f"'{deprecation}' has been deprecated in favor of '{replacement}'! "
+ + "Please update your configuration."
+ )
+ self.log(
+ "warning",
+ message,
+ )
+ try:
+ from authentik.events.models import Event, EventAction
+
+ Event.new(EventAction.CONFIGURATION_ERROR, message=message).save()
+ except ImportError:
+ continue
+
+ deprecated_attr = _pop_deprecated_key(self.__config, deprecation.split("."), 0)
+ self.set(replacement, deprecated_attr.value)
def log(self, level: str, message: str, **kwargs):
"""Custom Log method, we want to ensure ConfigLoader always logs JSON even when
@@ -180,6 +239,10 @@ class ConfigLoader:
error=str(exc),
)
+ def update_from_dict(self, update: dict):
+ """Update config from dict"""
+ self.__config.update(update)
+
def update_from_env(self):
"""Check environment variables"""
outer = {}
@@ -188,19 +251,13 @@ class ConfigLoader:
if not key.startswith(ENV_PREFIX):
continue
relative_key = key.replace(f"{ENV_PREFIX}_", "", 1).replace("__", ".").lower()
- # Recursively convert path from a.b.c into outer[a][b][c]
- current_obj = outer
- dot_parts = relative_key.split(".")
- for dot_part in dot_parts[:-1]:
- if dot_part not in current_obj:
- current_obj[dot_part] = {}
- current_obj = current_obj[dot_part]
# Check if the value is json, and try to load it
try:
value = loads(value)
except JSONDecodeError:
pass
- current_obj[dot_parts[-1]] = Attr(value, Attr.Source.ENV, key)
+ attr_value = Attr(value, Attr.Source.ENV, relative_key)
+ set_path_in_dict(outer, relative_key, attr_value)
idx += 1
if idx > 0:
self.log("debug", "Loaded environment variables", count=idx)
@@ -241,6 +298,23 @@ class ConfigLoader:
"""Wrapper for get that converts value into boolean"""
return str(self.get(path, default)).lower() == "true"
+ def get_dict_from_b64_json(self, path: str, default=None) -> dict:
+ """Wrapper for get that converts value from Base64 encoded string into dictionary"""
+ config_value = self.get(path)
+ if config_value is None:
+ return {}
+ try:
+ b64decoded_str = base64.b64decode(config_value).decode("utf-8")
+ b64decoded_str = b64decoded_str.strip().lstrip("{").rstrip("}")
+ b64decoded_str = "{" + b64decoded_str + "}"
+ return json.loads(b64decoded_str)
+ except (JSONDecodeError, TypeError, ValueError) as exc:
+ self.log(
+ "warning",
+ f"Ignored invalid configuration for '{path}' due to exception: {str(exc)}",
+ )
+ return default if isinstance(default, dict) else {}
+
def set(self, path: str, value: Any, sep="."):
"""Set value using same syntax as get()"""
set_path_in_dict(self.raw, path, Attr(value), sep=sep)
diff --git a/authentik/lib/default.yml b/authentik/lib/default.yml
index 793bece13..83bd3c7c9 100644
--- a/authentik/lib/default.yml
+++ b/authentik/lib/default.yml
@@ -28,14 +28,28 @@ listen:
redis:
host: localhost
port: 6379
+ db: 0
+ username: ""
password: ""
tls: false
tls_reqs: "none"
- db: 0
- cache_timeout: 300
- cache_timeout_flows: 300
- cache_timeout_policies: 300
- cache_timeout_reputation: 300
+
+# broker:
+ # url: ""
+ # transport_options: ""
+
+cache:
+ # url: ""
+ timeout: 300
+ timeout_flows: 300
+ timeout_policies: 300
+ timeout_reputation: 300
+
+# channel:
+ # url: ""
+
+# result_backend:
+ # url: ""
paths:
media: ./media
diff --git a/authentik/lib/tests/test_config.py b/authentik/lib/tests/test_config.py
index d95ff8fb8..3c253663f 100644
--- a/authentik/lib/tests/test_config.py
+++ b/authentik/lib/tests/test_config.py
@@ -1,20 +1,32 @@
"""Test config loader"""
+import base64
+from json import dumps
from os import chmod, environ, unlink, write
from tempfile import mkstemp
+from unittest import mock
from django.conf import ImproperlyConfigured
from django.test import TestCase
-from authentik.lib.config import ENV_PREFIX, ConfigLoader
+from authentik.lib.config import ENV_PREFIX, UNSET, Attr, AttrEncoder, ConfigLoader
class TestConfig(TestCase):
"""Test config loader"""
+ check_deprecations_env_vars = {
+ ENV_PREFIX + "_REDIS__BROKER_URL": "redis://myredis:8327/43",
+ ENV_PREFIX + "_REDIS__BROKER_TRANSPORT_OPTIONS": "bWFzdGVybmFtZT1teW1hc3Rlcg==",
+ ENV_PREFIX + "_REDIS__CACHE_TIMEOUT": "124s",
+ ENV_PREFIX + "_REDIS__CACHE_TIMEOUT_FLOWS": "32m",
+ ENV_PREFIX + "_REDIS__CACHE_TIMEOUT_POLICIES": "3920ns",
+ ENV_PREFIX + "_REDIS__CACHE_TIMEOUT_REPUTATION": "298382us",
+ }
+
+ @mock.patch.dict(environ, {ENV_PREFIX + "_test__test": "bar"})
def test_env(self):
"""Test simple instance"""
config = ConfigLoader()
- environ[ENV_PREFIX + "_test__test"] = "bar"
config.update_from_env()
self.assertEqual(config.get("test.test"), "bar")
@@ -27,12 +39,20 @@ class TestConfig(TestCase):
self.assertEqual(config.get("foo.bar"), "baz")
self.assertEqual(config.get("foo.bar"), "bar")
+ @mock.patch.dict(environ, {"foo": "bar"})
def test_uri_env(self):
"""Test URI parsing (environment)"""
config = ConfigLoader()
- environ["foo"] = "bar"
- self.assertEqual(config.parse_uri("env://foo").value, "bar")
- self.assertEqual(config.parse_uri("env://foo?bar").value, "bar")
+ foo_uri = "env://foo"
+ foo_parsed = config.parse_uri(foo_uri)
+ self.assertEqual(foo_parsed.value, "bar")
+ self.assertEqual(foo_parsed.source_type, Attr.Source.URI)
+ self.assertEqual(foo_parsed.source, foo_uri)
+ foo_bar_uri = "env://foo?bar"
+ foo_bar_parsed = config.parse_uri(foo_bar_uri)
+ self.assertEqual(foo_bar_parsed.value, "bar")
+ self.assertEqual(foo_bar_parsed.source_type, Attr.Source.URI)
+ self.assertEqual(foo_bar_parsed.source, foo_bar_uri)
def test_uri_file(self):
"""Test URI parsing (file load)"""
@@ -91,3 +111,60 @@ class TestConfig(TestCase):
config = ConfigLoader()
config.set("foo", "bar")
self.assertEqual(config.get_int("foo", 1234), 1234)
+
+ def test_get_dict_from_b64_json(self):
+ """Test get_dict_from_b64_json"""
+ config = ConfigLoader()
+ test_value = ' { "foo": "bar" } '.encode("utf-8")
+ b64_value = base64.b64encode(test_value)
+ config.set("foo", b64_value)
+ self.assertEqual(config.get_dict_from_b64_json("foo"), {"foo": "bar"})
+
+ def test_get_dict_from_b64_json_missing_brackets(self):
+ """Test get_dict_from_b64_json with missing brackets"""
+ config = ConfigLoader()
+ test_value = ' "foo": "bar" '.encode("utf-8")
+ b64_value = base64.b64encode(test_value)
+ config.set("foo", b64_value)
+ self.assertEqual(config.get_dict_from_b64_json("foo"), {"foo": "bar"})
+
+ def test_get_dict_from_b64_json_invalid(self):
+ """Test get_dict_from_b64_json with invalid value"""
+ config = ConfigLoader()
+ config.set("foo", "bar")
+ self.assertEqual(config.get_dict_from_b64_json("foo"), {})
+
+ def test_attr_json_encoder(self):
+ """Test AttrEncoder"""
+ test_attr = Attr("foo", Attr.Source.ENV, "AUTHENTIK_REDIS__USERNAME")
+ json_attr = dumps(test_attr, indent=4, cls=AttrEncoder)
+ self.assertEqual(json_attr, '"foo"')
+
+ def test_attr_json_encoder_no_attr(self):
+ """Test AttrEncoder if no Attr is passed"""
+
+ class Test:
+ """Non Attr class"""
+
+ with self.assertRaises(TypeError):
+ test_obj = Test()
+ dumps(test_obj, indent=4, cls=AttrEncoder)
+
+ @mock.patch.dict(environ, check_deprecations_env_vars)
+ def test_check_deprecations(self):
+ """Test config key re-write for deprecated env vars"""
+ config = ConfigLoader()
+ config.update_from_env()
+ config.check_deprecations()
+ self.assertEqual(config.get("redis.broker_url", UNSET), UNSET)
+ self.assertEqual(config.get("redis.broker_transport_options", UNSET), UNSET)
+ self.assertEqual(config.get("redis.cache_timeout", UNSET), UNSET)
+ self.assertEqual(config.get("redis.cache_timeout_flows", UNSET), UNSET)
+ self.assertEqual(config.get("redis.cache_timeout_policies", UNSET), UNSET)
+ self.assertEqual(config.get("redis.cache_timeout_reputation", UNSET), UNSET)
+ self.assertEqual(config.get("broker.url"), "redis://myredis:8327/43")
+ self.assertEqual(config.get("broker.transport_options"), "bWFzdGVybmFtZT1teW1hc3Rlcg==")
+ self.assertEqual(config.get("cache.timeout"), "124s")
+ self.assertEqual(config.get("cache.timeout_flows"), "32m")
+ self.assertEqual(config.get("cache.timeout_policies"), "3920ns")
+ self.assertEqual(config.get("cache.timeout_reputation"), "298382us")
diff --git a/authentik/outposts/consumer.py b/authentik/outposts/consumer.py
index e8c2ee127..dda3feed0 100644
--- a/authentik/outposts/consumer.py
+++ b/authentik/outposts/consumer.py
@@ -93,7 +93,7 @@ class OutpostConsumer(AuthJsonConsumer):
expected=self.outpost.config.kubernetes_replicas,
).dec()
- def receive_json(self, content: Data):
+ def receive_json(self, content: Data, **kwargs):
msg = from_dict(WebsocketMessage, content)
uid = msg.args.get("uuid", self.channel_name)
self.last_uid = uid
diff --git a/authentik/outposts/models.py b/authentik/outposts/models.py
index ac81bcf4e..1d4193b09 100644
--- a/authentik/outposts/models.py
+++ b/authentik/outposts/models.py
@@ -346,12 +346,22 @@ class Outpost(SerializerModel, ManagedModel):
user_created = False
if not user:
user: User = User.objects.create(username=self.user_identifier)
- user.set_unusable_password()
user_created = True
- user.type = UserTypes.INTERNAL_SERVICE_ACCOUNT
- user.name = f"Outpost {self.name} Service-Account"
- user.path = USER_PATH_OUTPOSTS
- user.save()
+ attrs = {
+ "type": UserTypes.INTERNAL_SERVICE_ACCOUNT,
+ "name": f"Outpost {self.name} Service-Account",
+ "path": USER_PATH_OUTPOSTS,
+ }
+ dirty = False
+ for key, value in attrs.items():
+ if getattr(user, key) != value:
+ dirty = True
+ setattr(user, key, value)
+ if user.has_usable_password():
+ user.set_unusable_password()
+ dirty = True
+ if dirty:
+ user.save()
if user_created:
self.build_user_permissions(user)
return user
diff --git a/authentik/policies/process.py b/authentik/policies/process.py
index aa3ed9ff5..61ada16b7 100644
--- a/authentik/policies/process.py
+++ b/authentik/policies/process.py
@@ -20,7 +20,7 @@ from authentik.policies.types import CACHE_PREFIX, PolicyRequest, PolicyResult
LOGGER = get_logger()
FORK_CTX = get_context("fork")
-CACHE_TIMEOUT = CONFIG.get_int("redis.cache_timeout_policies")
+CACHE_TIMEOUT = CONFIG.get_int("cache.timeout_policies")
PROCESS_CLASS = FORK_CTX.Process
diff --git a/authentik/policies/reputation/signals.py b/authentik/policies/reputation/signals.py
index 2ee6045df..49b8cf011 100644
--- a/authentik/policies/reputation/signals.py
+++ b/authentik/policies/reputation/signals.py
@@ -13,7 +13,7 @@ from authentik.policies.reputation.tasks import save_reputation
from authentik.stages.identification.signals import identification_failed
LOGGER = get_logger()
-CACHE_TIMEOUT = CONFIG.get_int("redis.cache_timeout_reputation")
+CACHE_TIMEOUT = CONFIG.get_int("cache.timeout_reputation")
def update_score(request: HttpRequest, identifier: str, amount: int):
diff --git a/authentik/providers/oauth2/tests/test_token_pkce.py b/authentik/providers/oauth2/tests/test_token_pkce.py
new file mode 100644
index 000000000..23bcf359f
--- /dev/null
+++ b/authentik/providers/oauth2/tests/test_token_pkce.py
@@ -0,0 +1,187 @@
+"""Test token view"""
+from base64 import b64encode, urlsafe_b64encode
+from hashlib import sha256
+
+from django.test import RequestFactory
+from django.urls import reverse
+
+from authentik.core.models import Application
+from authentik.core.tests.utils import create_test_admin_user, create_test_flow
+from authentik.flows.challenge import ChallengeTypes
+from authentik.lib.generators import generate_id
+from authentik.providers.oauth2.constants import GRANT_TYPE_AUTHORIZATION_CODE
+from authentik.providers.oauth2.models import AuthorizationCode, OAuth2Provider
+from authentik.providers.oauth2.tests.utils import OAuthTestCase
+
+
+class TestTokenPKCE(OAuthTestCase):
+ """Test token view"""
+
+ def setUp(self) -> None:
+ super().setUp()
+ self.factory = RequestFactory()
+ self.app = Application.objects.create(name=generate_id(), slug="test")
+
+ def test_pkce_missing_in_token(self):
+ """Test full with pkce"""
+ flow = create_test_flow()
+ provider = OAuth2Provider.objects.create(
+ name=generate_id(),
+ client_id="test",
+ authorization_flow=flow,
+ redirect_uris="foo://localhost",
+ access_code_validity="seconds=100",
+ )
+ Application.objects.create(name="app", slug="app", provider=provider)
+ state = generate_id()
+ user = create_test_admin_user()
+ self.client.force_login(user)
+ challenge = generate_id()
+ header = b64encode(f"{provider.client_id}:{provider.client_secret}".encode()).decode()
+ # Step 1, initiate params and get redirect to flow
+ self.client.get(
+ reverse("authentik_providers_oauth2:authorize"),
+ data={
+ "response_type": "code",
+ "client_id": "test",
+ "state": state,
+ "redirect_uri": "foo://localhost",
+ "code_challenge": challenge,
+ "code_challenge_method": "S256",
+ },
+ )
+ response = self.client.get(
+ reverse("authentik_api:flow-executor", kwargs={"flow_slug": flow.slug}),
+ )
+ code: AuthorizationCode = AuthorizationCode.objects.filter(user=user).first()
+ self.assertJSONEqual(
+ response.content.decode(),
+ {
+ "component": "xak-flow-redirect",
+ "type": ChallengeTypes.REDIRECT.value,
+ "to": f"foo://localhost?code={code.code}&state={state}",
+ },
+ )
+ response = self.client.post(
+ reverse("authentik_providers_oauth2:token"),
+ data={
+ "grant_type": GRANT_TYPE_AUTHORIZATION_CODE,
+ "code": code.code,
+ # Missing the code_verifier here
+ "redirect_uri": "foo://localhost",
+ },
+ HTTP_AUTHORIZATION=f"Basic {header}",
+ )
+ self.assertJSONEqual(
+ response.content,
+ {"error": "invalid_request", "error_description": "The request is otherwise malformed"},
+ )
+ self.assertEqual(response.status_code, 400)
+
+ def test_pkce_correct_s256(self):
+ """Test full with pkce"""
+ flow = create_test_flow()
+ provider = OAuth2Provider.objects.create(
+ name=generate_id(),
+ client_id="test",
+ authorization_flow=flow,
+ redirect_uris="foo://localhost",
+ access_code_validity="seconds=100",
+ )
+ Application.objects.create(name="app", slug="app", provider=provider)
+ state = generate_id()
+ user = create_test_admin_user()
+ self.client.force_login(user)
+ verifier = generate_id()
+ challenge = (
+ urlsafe_b64encode(sha256(verifier.encode("ascii")).digest())
+ .decode("utf-8")
+ .replace("=", "")
+ )
+ header = b64encode(f"{provider.client_id}:{provider.client_secret}".encode()).decode()
+ # Step 1, initiate params and get redirect to flow
+ self.client.get(
+ reverse("authentik_providers_oauth2:authorize"),
+ data={
+ "response_type": "code",
+ "client_id": "test",
+ "state": state,
+ "redirect_uri": "foo://localhost",
+ "code_challenge": challenge,
+ "code_challenge_method": "S256",
+ },
+ )
+ response = self.client.get(
+ reverse("authentik_api:flow-executor", kwargs={"flow_slug": flow.slug}),
+ )
+ code: AuthorizationCode = AuthorizationCode.objects.filter(user=user).first()
+ self.assertJSONEqual(
+ response.content.decode(),
+ {
+ "component": "xak-flow-redirect",
+ "type": ChallengeTypes.REDIRECT.value,
+ "to": f"foo://localhost?code={code.code}&state={state}",
+ },
+ )
+ response = self.client.post(
+ reverse("authentik_providers_oauth2:token"),
+ data={
+ "grant_type": GRANT_TYPE_AUTHORIZATION_CODE,
+ "code": code.code,
+ "code_verifier": verifier,
+ "redirect_uri": "foo://localhost",
+ },
+ HTTP_AUTHORIZATION=f"Basic {header}",
+ )
+ self.assertEqual(response.status_code, 200)
+
+ def test_pkce_correct_plain(self):
+ """Test full with pkce"""
+ flow = create_test_flow()
+ provider = OAuth2Provider.objects.create(
+ name=generate_id(),
+ client_id="test",
+ authorization_flow=flow,
+ redirect_uris="foo://localhost",
+ access_code_validity="seconds=100",
+ )
+ Application.objects.create(name="app", slug="app", provider=provider)
+ state = generate_id()
+ user = create_test_admin_user()
+ self.client.force_login(user)
+ verifier = generate_id()
+ header = b64encode(f"{provider.client_id}:{provider.client_secret}".encode()).decode()
+ # Step 1, initiate params and get redirect to flow
+ self.client.get(
+ reverse("authentik_providers_oauth2:authorize"),
+ data={
+ "response_type": "code",
+ "client_id": "test",
+ "state": state,
+ "redirect_uri": "foo://localhost",
+ "code_challenge": verifier,
+ },
+ )
+ response = self.client.get(
+ reverse("authentik_api:flow-executor", kwargs={"flow_slug": flow.slug}),
+ )
+ code: AuthorizationCode = AuthorizationCode.objects.filter(user=user).first()
+ self.assertJSONEqual(
+ response.content.decode(),
+ {
+ "component": "xak-flow-redirect",
+ "type": ChallengeTypes.REDIRECT.value,
+ "to": f"foo://localhost?code={code.code}&state={state}",
+ },
+ )
+ response = self.client.post(
+ reverse("authentik_providers_oauth2:token"),
+ data={
+ "grant_type": GRANT_TYPE_AUTHORIZATION_CODE,
+ "code": code.code,
+ "code_verifier": verifier,
+ "redirect_uri": "foo://localhost",
+ },
+ HTTP_AUTHORIZATION=f"Basic {header}",
+ )
+ self.assertEqual(response.status_code, 200)
diff --git a/authentik/providers/oauth2/utils.py b/authentik/providers/oauth2/utils.py
index cc7a86519..513994b80 100644
--- a/authentik/providers/oauth2/utils.py
+++ b/authentik/providers/oauth2/utils.py
@@ -188,6 +188,7 @@ def authenticate_provider(request: HttpRequest) -> Optional[OAuth2Provider]:
if client_id != provider.client_id or client_secret != provider.client_secret:
LOGGER.debug("(basic) Provider for basic auth does not exist")
return None
+ CTX_AUTH_VIA.set("oauth_client_secret")
return provider
diff --git a/authentik/providers/oauth2/views/token.py b/authentik/providers/oauth2/views/token.py
index dc08eb526..0c0d7f4a8 100644
--- a/authentik/providers/oauth2/views/token.py
+++ b/authentik/providers/oauth2/views/token.py
@@ -17,6 +17,7 @@ from jwt import PyJWK, PyJWT, PyJWTError, decode
from sentry_sdk.hub import Hub
from structlog.stdlib import get_logger
+from authentik.core.middleware import CTX_AUTH_VIA
from authentik.core.models import (
USER_ATTRIBUTE_EXPIRES,
USER_ATTRIBUTE_GENERATED,
@@ -221,7 +222,10 @@ class TokenParams:
raise TokenError("invalid_grant")
# Validate PKCE parameters.
- if self.code_verifier:
+ if self.authorization_code.code_challenge:
+ # Authorization code had PKCE but we didn't get one
+ if not self.code_verifier:
+ raise TokenError("invalid_request")
if self.authorization_code.code_challenge_method == PKCE_METHOD_S256:
new_code_challenge = (
urlsafe_b64encode(sha256(self.code_verifier.encode("ascii")).digest())
@@ -448,6 +452,7 @@ class TokenView(View):
if not self.provider:
LOGGER.warning("OAuth2Provider does not exist", client_id=client_id)
raise TokenError("invalid_client")
+ CTX_AUTH_VIA.set("oauth_client_secret")
self.params = TokenParams.parse(request, self.provider, client_id, client_secret)
with Hub.current.start_span(
diff --git a/authentik/providers/scim/clients/group.py b/authentik/providers/scim/clients/group.py
index 98771315d..306cc21f9 100644
--- a/authentik/providers/scim/clients/group.py
+++ b/authentik/providers/scim/clients/group.py
@@ -46,7 +46,9 @@ class SCIMGroupClient(SCIMClient[Group, SCIMGroupSchema]):
def to_scim(self, obj: Group) -> SCIMGroupSchema:
"""Convert authentik user into SCIM"""
- raw_scim_group = {}
+ raw_scim_group = {
+ "schemas": ("urn:ietf:params:scim:schemas:core:2.0:Group",),
+ }
for mapping in (
self.provider.property_mappings_group.all().order_by("name").select_subclasses()
):
diff --git a/authentik/providers/scim/clients/schema.py b/authentik/providers/scim/clients/schema.py
index b9cbe3d43..b1c268255 100644
--- a/authentik/providers/scim/clients/schema.py
+++ b/authentik/providers/scim/clients/schema.py
@@ -15,12 +15,14 @@ from pydanticscim.user import User as BaseUser
class User(BaseUser):
"""Modified User schema with added externalId field"""
+ schemas: tuple[str] = ("urn:ietf:params:scim:schemas:core:2.0:User",)
externalId: Optional[str] = None
class Group(BaseGroup):
"""Modified Group schema with added externalId field"""
+ schemas: tuple[str] = ("urn:ietf:params:scim:schemas:core:2.0:Group",)
externalId: Optional[str] = None
diff --git a/authentik/providers/scim/clients/user.py b/authentik/providers/scim/clients/user.py
index 31d912858..11ef6a159 100644
--- a/authentik/providers/scim/clients/user.py
+++ b/authentik/providers/scim/clients/user.py
@@ -39,7 +39,9 @@ class SCIMUserClient(SCIMClient[User, SCIMUserSchema]):
def to_scim(self, obj: User) -> SCIMUserSchema:
"""Convert authentik user into SCIM"""
- raw_scim_user = {}
+ raw_scim_user = {
+ "schemas": ("urn:ietf:params:scim:schemas:core:2.0:User",),
+ }
for mapping in self.provider.property_mappings.all().order_by("name").select_subclasses():
if not isinstance(mapping, SCIMMapping):
continue
diff --git a/authentik/providers/scim/tests/test_group.py b/authentik/providers/scim/tests/test_group.py
index 6004a453b..6dd9d70ca 100644
--- a/authentik/providers/scim/tests/test_group.py
+++ b/authentik/providers/scim/tests/test_group.py
@@ -61,7 +61,11 @@ class SCIMGroupTests(TestCase):
self.assertEqual(mock.request_history[1].method, "POST")
self.assertJSONEqual(
mock.request_history[1].body,
- {"externalId": str(group.pk), "displayName": group.name},
+ {
+ "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
+ "externalId": str(group.pk),
+ "displayName": group.name,
+ },
)
@Mocker()
@@ -96,7 +100,11 @@ class SCIMGroupTests(TestCase):
validate(body, loads(schema.read()))
self.assertEqual(
body,
- {"externalId": str(group.pk), "displayName": group.name},
+ {
+ "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
+ "externalId": str(group.pk),
+ "displayName": group.name,
+ },
)
group.save()
self.assertEqual(mock.call_count, 4)
@@ -129,7 +137,11 @@ class SCIMGroupTests(TestCase):
self.assertEqual(mock.request_history[1].method, "POST")
self.assertJSONEqual(
mock.request_history[1].body,
- {"externalId": str(group.pk), "displayName": group.name},
+ {
+ "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
+ "externalId": str(group.pk),
+ "displayName": group.name,
+ },
)
group.delete()
self.assertEqual(mock.call_count, 4)
diff --git a/authentik/providers/scim/tests/test_membership.py b/authentik/providers/scim/tests/test_membership.py
index a0506a7cd..f2bbc74c5 100644
--- a/authentik/providers/scim/tests/test_membership.py
+++ b/authentik/providers/scim/tests/test_membership.py
@@ -89,6 +89,7 @@ class SCIMMembershipTests(TestCase):
self.assertJSONEqual(
mocker.request_history[3].body,
{
+ "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"emails": [],
"active": True,
"externalId": user.uid,
@@ -99,7 +100,11 @@ class SCIMMembershipTests(TestCase):
)
self.assertJSONEqual(
mocker.request_history[5].body,
- {"externalId": str(group.pk), "displayName": group.name},
+ {
+ "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
+ "externalId": str(group.pk),
+ "displayName": group.name,
+ },
)
with Mocker() as mocker:
@@ -118,6 +123,7 @@ class SCIMMembershipTests(TestCase):
self.assertJSONEqual(
mocker.request_history[1].body,
{
+ "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
"Operations": [
{
"op": "add",
@@ -125,7 +131,6 @@ class SCIMMembershipTests(TestCase):
"value": [{"value": user_scim_id}],
}
],
- "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
},
)
@@ -174,6 +179,7 @@ class SCIMMembershipTests(TestCase):
self.assertJSONEqual(
mocker.request_history[3].body,
{
+ "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"active": True,
"displayName": "",
"emails": [],
@@ -184,7 +190,11 @@ class SCIMMembershipTests(TestCase):
)
self.assertJSONEqual(
mocker.request_history[5].body,
- {"externalId": str(group.pk), "displayName": group.name},
+ {
+ "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
+ "externalId": str(group.pk),
+ "displayName": group.name,
+ },
)
with Mocker() as mocker:
@@ -203,6 +213,7 @@ class SCIMMembershipTests(TestCase):
self.assertJSONEqual(
mocker.request_history[1].body,
{
+ "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
"Operations": [
{
"op": "add",
@@ -210,7 +221,6 @@ class SCIMMembershipTests(TestCase):
"value": [{"value": user_scim_id}],
}
],
- "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
},
)
@@ -230,6 +240,7 @@ class SCIMMembershipTests(TestCase):
self.assertJSONEqual(
mocker.request_history[1].body,
{
+ "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
"Operations": [
{
"op": "remove",
@@ -237,6 +248,5 @@ class SCIMMembershipTests(TestCase):
"value": [{"value": user_scim_id}],
}
],
- "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
},
)
diff --git a/authentik/providers/scim/tests/test_user.py b/authentik/providers/scim/tests/test_user.py
index 842674b10..36377b925 100644
--- a/authentik/providers/scim/tests/test_user.py
+++ b/authentik/providers/scim/tests/test_user.py
@@ -66,6 +66,7 @@ class SCIMUserTests(TestCase):
self.assertJSONEqual(
mock.request_history[1].body,
{
+ "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"active": True,
"emails": [
{
@@ -121,6 +122,7 @@ class SCIMUserTests(TestCase):
self.assertEqual(
body,
{
+ "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"active": True,
"emails": [
{
@@ -173,6 +175,7 @@ class SCIMUserTests(TestCase):
self.assertJSONEqual(
mock.request_history[1].body,
{
+ "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"active": True,
"emails": [
{
@@ -240,6 +243,7 @@ class SCIMUserTests(TestCase):
self.assertJSONEqual(
mock.request_history[1].body,
{
+ "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"active": True,
"emails": [
{
diff --git a/authentik/root/settings.py b/authentik/root/settings.py
index ee31f2cc6..634e1bba8 100644
--- a/authentik/root/settings.py
+++ b/authentik/root/settings.py
@@ -1,5 +1,4 @@
"""root settings for authentik"""
-
import importlib
import os
from hashlib import sha512
@@ -195,8 +194,8 @@ _redis_url = (
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
- "LOCATION": f"{_redis_url}/{CONFIG.get('redis.db')}",
- "TIMEOUT": CONFIG.get_int("redis.cache_timeout", 300),
+ "LOCATION": CONFIG.get("cache.url") or f"{_redis_url}/{CONFIG.get('redis.db')}",
+ "TIMEOUT": CONFIG.get_int("cache.timeout", 300),
"OPTIONS": {"CLIENT_CLASS": "django_redis.client.DefaultClient"},
"KEY_PREFIX": "authentik_cache",
}
@@ -256,7 +255,7 @@ CHANNEL_LAYERS = {
"default": {
"BACKEND": "channels_redis.pubsub.RedisPubSubChannelLayer",
"CONFIG": {
- "hosts": [f"{_redis_url}/{CONFIG.get('redis.db')}"],
+ "hosts": [CONFIG.get("channel.url", f"{_redis_url}/{CONFIG.get('redis.db')}")],
"prefix": "authentik_channels_",
},
},
@@ -349,8 +348,11 @@ CELERY = {
},
"task_create_missing_queues": True,
"task_default_queue": "authentik",
- "broker_url": f"{_redis_url}/{CONFIG.get('redis.db')}{_redis_celery_tls_requirements}",
- "result_backend": f"{_redis_url}/{CONFIG.get('redis.db')}{_redis_celery_tls_requirements}",
+ "broker_url": CONFIG.get("broker.url")
+ or f"{_redis_url}/{CONFIG.get('redis.db')}{_redis_celery_tls_requirements}",
+ "broker_transport_options": CONFIG.get_dict_from_b64_json("broker.transport_options"),
+ "result_backend": CONFIG.get("result_backend.url")
+ or f"{_redis_url}/{CONFIG.get('redis.db')}{_redis_celery_tls_requirements}",
}
# Sentry integration
@@ -409,7 +411,6 @@ if DEBUG:
CELERY["task_always_eager"] = True
os.environ[ENV_GIT_HASH_KEY] = "dev"
INSTALLED_APPS.append("silk")
- SILKY_PYTHON_PROFILER = True
MIDDLEWARE = ["silk.middleware.SilkyMiddleware"] + MIDDLEWARE
REST_FRAMEWORK["DEFAULT_RENDERER_CLASSES"].append(
"rest_framework.renderers.BrowsableAPIRenderer"
diff --git a/authentik/sources/ldap/api.py b/authentik/sources/ldap/api.py
index 1914c66da..08e530bbb 100644
--- a/authentik/sources/ldap/api.py
+++ b/authentik/sources/ldap/api.py
@@ -1,13 +1,14 @@
"""Source API Views"""
-from typing import Any
+from typing import Any, Optional
+from django.core.cache import cache
from django_filters.filters import AllValuesMultipleFilter
from django_filters.filterset import FilterSet
from drf_spectacular.types import OpenApiTypes
from drf_spectacular.utils import extend_schema, extend_schema_field, inline_serializer
from rest_framework.decorators import action
from rest_framework.exceptions import ValidationError
-from rest_framework.fields import DictField, ListField
+from rest_framework.fields import BooleanField, DictField, ListField, SerializerMethodField
from rest_framework.relations import PrimaryKeyRelatedField
from rest_framework.request import Request
from rest_framework.response import Response
@@ -17,15 +18,17 @@ from authentik.admin.api.tasks import TaskSerializer
from authentik.core.api.propertymappings import PropertyMappingSerializer
from authentik.core.api.sources import SourceSerializer
from authentik.core.api.used_by import UsedByMixin
+from authentik.core.api.utils import PassiveSerializer
from authentik.crypto.models import CertificateKeyPair
from authentik.events.monitored_tasks import TaskInfo
from authentik.sources.ldap.models import LDAPPropertyMapping, LDAPSource
-from authentik.sources.ldap.tasks import SYNC_CLASSES
+from authentik.sources.ldap.tasks import CACHE_KEY_STATUS, SYNC_CLASSES
class LDAPSourceSerializer(SourceSerializer):
"""LDAP Source Serializer"""
+ connectivity = SerializerMethodField()
client_certificate = PrimaryKeyRelatedField(
allow_null=True,
help_text="Client certificate to authenticate against the LDAP Server's Certificate.",
@@ -35,6 +38,10 @@ class LDAPSourceSerializer(SourceSerializer):
required=False,
)
+ def get_connectivity(self, source: LDAPSource) -> Optional[dict[str, dict[str, str]]]:
+ """Get cached source connectivity"""
+ return cache.get(CACHE_KEY_STATUS + source.slug, None)
+
def validate(self, attrs: dict[str, Any]) -> dict[str, Any]:
"""Check that only a single source has password_sync on"""
sync_users_password = attrs.get("sync_users_password", True)
@@ -75,10 +82,18 @@ class LDAPSourceSerializer(SourceSerializer):
"sync_parent_group",
"property_mappings",
"property_mappings_group",
+ "connectivity",
]
extra_kwargs = {"bind_password": {"write_only": True}}
+class LDAPSyncStatusSerializer(PassiveSerializer):
+ """LDAP Source sync status"""
+
+ is_running = BooleanField(read_only=True)
+ tasks = TaskSerializer(many=True, read_only=True)
+
+
class LDAPSourceViewSet(UsedByMixin, ModelViewSet):
"""LDAP Source Viewset"""
@@ -114,19 +129,19 @@ class LDAPSourceViewSet(UsedByMixin, ModelViewSet):
@extend_schema(
responses={
- 200: TaskSerializer(many=True),
+ 200: LDAPSyncStatusSerializer(),
}
)
@action(methods=["GET"], detail=True, pagination_class=None, filter_backends=[])
def sync_status(self, request: Request, slug: str) -> Response:
"""Get source's sync status"""
- source = self.get_object()
- results = []
- tasks = TaskInfo.by_name(f"ldap_sync:{source.slug}:*")
- if tasks:
- for task in tasks:
- results.append(task)
- return Response(TaskSerializer(results, many=True).data)
+ source: LDAPSource = self.get_object()
+ tasks = TaskInfo.by_name(f"ldap_sync:{source.slug}:*") or []
+ status = {
+ "tasks": tasks,
+ "is_running": source.sync_lock.locked(),
+ }
+ return Response(LDAPSyncStatusSerializer(status).data)
@extend_schema(
responses={
diff --git a/authentik/sources/ldap/management/commands/ldap_check_connection.py b/authentik/sources/ldap/management/commands/ldap_check_connection.py
new file mode 100644
index 000000000..6da316aa4
--- /dev/null
+++ b/authentik/sources/ldap/management/commands/ldap_check_connection.py
@@ -0,0 +1,24 @@
+"""LDAP Connection check"""
+from json import dumps
+
+from django.core.management.base import BaseCommand
+from structlog.stdlib import get_logger
+
+from authentik.sources.ldap.models import LDAPSource
+
+LOGGER = get_logger()
+
+
+class Command(BaseCommand):
+ """Check connectivity to LDAP servers for a source"""
+
+ def add_arguments(self, parser):
+ parser.add_argument("source_slugs", nargs="?", type=str)
+
+ def handle(self, **options):
+ sources = LDAPSource.objects.filter(enabled=True)
+ if options["source_slugs"]:
+ sources = LDAPSource.objects.filter(slug__in=options["source_slugs"])
+ for source in sources.order_by("slug"):
+ status = source.check_connection()
+ self.stdout.write(dumps(status, indent=4))
diff --git a/authentik/sources/ldap/models.py b/authentik/sources/ldap/models.py
index ac7f32aca..2b939e022 100644
--- a/authentik/sources/ldap/models.py
+++ b/authentik/sources/ldap/models.py
@@ -1,13 +1,17 @@
"""authentik LDAP Models"""
from os import chmod
+from os.path import dirname, exists
+from shutil import rmtree
from ssl import CERT_REQUIRED
from tempfile import NamedTemporaryFile, mkdtemp
from typing import Optional
+from django.core.cache import cache
from django.db import models
from django.utils.translation import gettext_lazy as _
from ldap3 import ALL, NONE, RANDOM, Connection, Server, ServerPool, Tls
-from ldap3.core.exceptions import LDAPInsufficientAccessRightsResult, LDAPSchemaError
+from ldap3.core.exceptions import LDAPException, LDAPInsufficientAccessRightsResult, LDAPSchemaError
+from redis.lock import Lock
from rest_framework.serializers import Serializer
from authentik.core.models import Group, PropertyMapping, Source
@@ -117,7 +121,7 @@ class LDAPSource(Source):
return LDAPSourceSerializer
- def server(self, **kwargs) -> Server:
+ def server(self, **kwargs) -> ServerPool:
"""Get LDAP Server/ServerPool"""
servers = []
tls_kwargs = {}
@@ -154,7 +158,10 @@ class LDAPSource(Source):
return ServerPool(servers, RANDOM, active=5, exhaust=True)
def connection(
- self, server_kwargs: Optional[dict] = None, connection_kwargs: Optional[dict] = None
+ self,
+ server: Optional[Server] = None,
+ server_kwargs: Optional[dict] = None,
+ connection_kwargs: Optional[dict] = None,
) -> Connection:
"""Get a fully connected and bound LDAP Connection"""
server_kwargs = server_kwargs or {}
@@ -164,7 +171,7 @@ class LDAPSource(Source):
if self.bind_password is not None:
connection_kwargs.setdefault("password", self.bind_password)
connection = Connection(
- self.server(**server_kwargs),
+ server or self.server(**server_kwargs),
raise_exceptions=True,
receive_timeout=LDAP_TIMEOUT,
**connection_kwargs,
@@ -183,9 +190,60 @@ class LDAPSource(Source):
if server_kwargs.get("get_info", ALL) == NONE:
raise exc
server_kwargs["get_info"] = NONE
- return self.connection(server_kwargs, connection_kwargs)
+ return self.connection(server, server_kwargs, connection_kwargs)
+ finally:
+ if connection.server.tls.certificate_file is not None and exists(
+ connection.server.tls.certificate_file
+ ):
+ rmtree(dirname(connection.server.tls.certificate_file))
return RuntimeError("Failed to bind")
+ @property
+ def sync_lock(self) -> Lock:
+ """Redis lock for syncing LDAP to prevent multiple parallel syncs happening"""
+ return Lock(
+ cache.client.get_client(),
+ name=f"goauthentik.io/sources/ldap/sync-{self.slug}",
+ # Convert task timeout hours to seconds, and multiply times 3
+ # (see authentik/sources/ldap/tasks.py:54)
+ # multiply by 3 to add even more leeway
+ timeout=(60 * 60 * CONFIG.get_int("ldap.task_timeout_hours")) * 3,
+ )
+
+ def check_connection(self) -> dict[str, dict[str, str]]:
+ """Check LDAP Connection"""
+ from authentik.sources.ldap.sync.base import flatten
+
+ servers = self.server()
+ server_info = {}
+ # Check each individual server
+ for server in servers.servers:
+ server: Server
+ try:
+ connection = self.connection(server=server)
+ server_info[server.host] = {
+ "vendor": str(flatten(connection.server.info.vendor_name)),
+ "version": str(flatten(connection.server.info.vendor_version)),
+ "status": "ok",
+ }
+ except LDAPException as exc:
+ server_info[server.host] = {
+ "status": str(exc),
+ }
+ # Check server pool
+ try:
+ connection = self.connection()
+ server_info["__all__"] = {
+ "vendor": str(flatten(connection.server.info.vendor_name)),
+ "version": str(flatten(connection.server.info.vendor_version)),
+ "status": "ok",
+ }
+ except LDAPException as exc:
+ server_info["__all__"] = {
+ "status": str(exc),
+ }
+ return server_info
+
class Meta:
verbose_name = _("LDAP Source")
verbose_name_plural = _("LDAP Sources")
diff --git a/authentik/sources/ldap/settings.py b/authentik/sources/ldap/settings.py
index 6b526b357..b141687f5 100644
--- a/authentik/sources/ldap/settings.py
+++ b/authentik/sources/ldap/settings.py
@@ -8,5 +8,10 @@ CELERY_BEAT_SCHEDULE = {
"task": "authentik.sources.ldap.tasks.ldap_sync_all",
"schedule": crontab(minute=fqdn_rand("sources_ldap_sync"), hour="*/2"),
"options": {"queue": "authentik_scheduled"},
- }
+ },
+ "sources_ldap_connectivity_check": {
+ "task": "authentik.sources.ldap.tasks.ldap_connectivity_check",
+ "schedule": crontab(minute=fqdn_rand("sources_ldap_connectivity_check"), hour="*"),
+ "options": {"queue": "authentik_scheduled"},
+ },
}
diff --git a/authentik/sources/ldap/signals.py b/authentik/sources/ldap/signals.py
index 5af97376d..f95662e33 100644
--- a/authentik/sources/ldap/signals.py
+++ b/authentik/sources/ldap/signals.py
@@ -14,7 +14,7 @@ from authentik.events.models import Event, EventAction
from authentik.flows.planner import PLAN_CONTEXT_PENDING_USER
from authentik.sources.ldap.models import LDAPSource
from authentik.sources.ldap.password import LDAPPasswordChanger
-from authentik.sources.ldap.tasks import ldap_sync_single
+from authentik.sources.ldap.tasks import ldap_connectivity_check, ldap_sync_single
from authentik.stages.prompt.signals import password_validate
LOGGER = get_logger()
@@ -32,6 +32,7 @@ def sync_ldap_source_on_save(sender, instance: LDAPSource, **_):
if not instance.property_mappings.exists() or not instance.property_mappings_group.exists():
return
ldap_sync_single.delay(instance.pk)
+ ldap_connectivity_check.delay(instance.pk)
@receiver(password_validate)
diff --git a/authentik/sources/ldap/sync/base.py b/authentik/sources/ldap/sync/base.py
index 7490449ec..d3ae11f32 100644
--- a/authentik/sources/ldap/sync/base.py
+++ b/authentik/sources/ldap/sync/base.py
@@ -17,6 +17,15 @@ from authentik.sources.ldap.models import LDAPPropertyMapping, LDAPSource
LDAP_UNIQUENESS = "ldap_uniq"
+def flatten(value: Any) -> Any:
+ """Flatten `value` if its a list"""
+ if isinstance(value, list):
+ if len(value) < 1:
+ return None
+ return value[0]
+ return value
+
+
class BaseLDAPSynchronizer:
"""Sync LDAP Users and groups into authentik"""
@@ -122,14 +131,6 @@ class BaseLDAPSynchronizer:
cookie = None
yield self._connection.response
- def _flatten(self, value: Any) -> Any:
- """Flatten `value` if its a list"""
- if isinstance(value, list):
- if len(value) < 1:
- return None
- return value[0]
- return value
-
def build_user_properties(self, user_dn: str, **kwargs) -> dict[str, Any]:
"""Build attributes for User object based on property mappings."""
props = self._build_object_properties(user_dn, self._source.property_mappings, **kwargs)
@@ -163,10 +164,10 @@ class BaseLDAPSynchronizer:
object_field = mapping.object_field
if object_field.startswith("attributes."):
# Because returning a list might desired, we can't
- # rely on self._flatten here. Instead, just save the result as-is
+ # rely on flatten here. Instead, just save the result as-is
set_path_in_dict(properties, object_field, value)
else:
- properties[object_field] = self._flatten(value)
+ properties[object_field] = flatten(value)
except PropertyMappingExpressionException as exc:
Event.new(
EventAction.CONFIGURATION_ERROR,
@@ -177,7 +178,7 @@ class BaseLDAPSynchronizer:
self._logger.warning("Mapping failed to evaluate", exc=exc, mapping=mapping)
continue
if self._source.object_uniqueness_field in kwargs:
- properties["attributes"][LDAP_UNIQUENESS] = self._flatten(
+ properties["attributes"][LDAP_UNIQUENESS] = flatten(
kwargs.get(self._source.object_uniqueness_field)
)
properties["attributes"][LDAP_DISTINGUISHED_NAME] = object_dn
diff --git a/authentik/sources/ldap/sync/groups.py b/authentik/sources/ldap/sync/groups.py
index 68eedcc34..92781c3ac 100644
--- a/authentik/sources/ldap/sync/groups.py
+++ b/authentik/sources/ldap/sync/groups.py
@@ -7,7 +7,7 @@ from ldap3 import ALL_ATTRIBUTES, ALL_OPERATIONAL_ATTRIBUTES, SUBTREE
from authentik.core.models import Group
from authentik.events.models import Event, EventAction
-from authentik.sources.ldap.sync.base import LDAP_UNIQUENESS, BaseLDAPSynchronizer
+from authentik.sources.ldap.sync.base import LDAP_UNIQUENESS, BaseLDAPSynchronizer, flatten
class GroupLDAPSynchronizer(BaseLDAPSynchronizer):
@@ -39,7 +39,7 @@ class GroupLDAPSynchronizer(BaseLDAPSynchronizer):
if "attributes" not in group:
continue
attributes = group.get("attributes", {})
- group_dn = self._flatten(self._flatten(group.get("entryDN", group.get("dn"))))
+ group_dn = flatten(flatten(group.get("entryDN", group.get("dn"))))
if self._source.object_uniqueness_field not in attributes:
self.message(
f"Cannot find uniqueness field in attributes: '{group_dn}'",
@@ -47,7 +47,7 @@ class GroupLDAPSynchronizer(BaseLDAPSynchronizer):
dn=group_dn,
)
continue
- uniq = self._flatten(attributes[self._source.object_uniqueness_field])
+ uniq = flatten(attributes[self._source.object_uniqueness_field])
try:
defaults = self.build_group_properties(group_dn, **attributes)
defaults["parent"] = self._source.sync_parent_group
diff --git a/authentik/sources/ldap/sync/users.py b/authentik/sources/ldap/sync/users.py
index 68d966022..6c4d3bd0e 100644
--- a/authentik/sources/ldap/sync/users.py
+++ b/authentik/sources/ldap/sync/users.py
@@ -7,7 +7,7 @@ from ldap3 import ALL_ATTRIBUTES, ALL_OPERATIONAL_ATTRIBUTES, SUBTREE
from authentik.core.models import User
from authentik.events.models import Event, EventAction
-from authentik.sources.ldap.sync.base import LDAP_UNIQUENESS, BaseLDAPSynchronizer
+from authentik.sources.ldap.sync.base import LDAP_UNIQUENESS, BaseLDAPSynchronizer, flatten
from authentik.sources.ldap.sync.vendor.freeipa import FreeIPA
from authentik.sources.ldap.sync.vendor.ms_ad import MicrosoftActiveDirectory
@@ -41,7 +41,7 @@ class UserLDAPSynchronizer(BaseLDAPSynchronizer):
if "attributes" not in user:
continue
attributes = user.get("attributes", {})
- user_dn = self._flatten(user.get("entryDN", user.get("dn")))
+ user_dn = flatten(user.get("entryDN", user.get("dn")))
if self._source.object_uniqueness_field not in attributes:
self.message(
f"Cannot find uniqueness field in attributes: '{user_dn}'",
@@ -49,7 +49,7 @@ class UserLDAPSynchronizer(BaseLDAPSynchronizer):
dn=user_dn,
)
continue
- uniq = self._flatten(attributes[self._source.object_uniqueness_field])
+ uniq = flatten(attributes[self._source.object_uniqueness_field])
try:
defaults = self.build_user_properties(user_dn, **attributes)
self._logger.debug("Writing user with attributes", **defaults)
diff --git a/authentik/sources/ldap/sync/vendor/freeipa.py b/authentik/sources/ldap/sync/vendor/freeipa.py
index fd42c001c..d0bce0584 100644
--- a/authentik/sources/ldap/sync/vendor/freeipa.py
+++ b/authentik/sources/ldap/sync/vendor/freeipa.py
@@ -5,7 +5,7 @@ from typing import Any, Generator
from pytz import UTC
from authentik.core.models import User
-from authentik.sources.ldap.sync.base import BaseLDAPSynchronizer
+from authentik.sources.ldap.sync.base import BaseLDAPSynchronizer, flatten
class FreeIPA(BaseLDAPSynchronizer):
@@ -47,7 +47,7 @@ class FreeIPA(BaseLDAPSynchronizer):
return
# For some reason, nsaccountlock is not defined properly in the schema as bool
# hence we get it as a list of strings
- _is_locked = str(self._flatten(attributes.get("nsaccountlock", ["FALSE"])))
+ _is_locked = str(flatten(attributes.get("nsaccountlock", ["FALSE"])))
# So we have to attempt to convert it to a bool
is_locked = _is_locked.lower() == "true"
# And then invert it since freeipa saves locked and we save active
diff --git a/authentik/sources/ldap/tasks.py b/authentik/sources/ldap/tasks.py
index 9c4d6af73..7f00d6bb3 100644
--- a/authentik/sources/ldap/tasks.py
+++ b/authentik/sources/ldap/tasks.py
@@ -1,13 +1,14 @@
"""LDAP Sync tasks"""
+from typing import Optional
from uuid import uuid4
from celery import chain, group
from django.core.cache import cache
from ldap3.core.exceptions import LDAPException
from redis.exceptions import LockError
-from redis.lock import Lock
from structlog.stdlib import get_logger
+from authentik.events.monitored_tasks import CACHE_KEY_PREFIX as CACHE_KEY_PREFIX_TASKS
from authentik.events.monitored_tasks import MonitoredTask, TaskResult, TaskResultStatus
from authentik.lib.config import CONFIG
from authentik.lib.utils.errors import exception_to_string
@@ -26,6 +27,7 @@ SYNC_CLASSES = [
MembershipLDAPSynchronizer,
]
CACHE_KEY_PREFIX = "goauthentik.io/sources/ldap/page/"
+CACHE_KEY_STATUS = "goauthentik.io/sources/ldap/status/"
@CELERY_APP.task()
@@ -35,6 +37,19 @@ def ldap_sync_all():
ldap_sync_single.apply_async(args=[source.pk])
+@CELERY_APP.task()
+def ldap_connectivity_check(pk: Optional[str] = None):
+ """Check connectivity for LDAP Sources"""
+ # 2 hour timeout, this task should run every hour
+ timeout = 60 * 60 * 2
+ sources = LDAPSource.objects.filter(enabled=True)
+ if pk:
+ sources = sources.filter(pk=pk)
+ for source in sources:
+ status = source.check_connection()
+ cache.set(CACHE_KEY_STATUS + source.slug, status, timeout=timeout)
+
+
@CELERY_APP.task(
# We take the configured hours timeout time by 2.5 as we run user and
# group in parallel and then membership, so 2x is to cover the serial tasks,
@@ -47,12 +62,15 @@ def ldap_sync_single(source_pk: str):
source: LDAPSource = LDAPSource.objects.filter(pk=source_pk).first()
if not source:
return
- lock = Lock(cache.client.get_client(), name=f"goauthentik.io/sources/ldap/sync-{source.slug}")
+ lock = source.sync_lock
if lock.locked():
LOGGER.debug("LDAP sync locked, skipping task", source=source.slug)
return
try:
with lock:
+ # Delete all sync tasks from the cache
+ keys = cache.keys(f"{CACHE_KEY_PREFIX_TASKS}ldap_sync:{source.slug}*")
+ cache.delete_many(keys)
task = chain(
# User and group sync can happen at once, they have no dependencies on each other
group(
diff --git a/authentik/sources/oauth/models.py b/authentik/sources/oauth/models.py
index 6b871fe55..7acbb9223 100644
--- a/authentik/sources/oauth/models.py
+++ b/authentik/sources/oauth/models.py
@@ -74,7 +74,7 @@ class OAuthSource(Source):
def ui_login_button(self, request: HttpRequest) -> UILoginButton:
provider_type = self.source_type
provider = provider_type()
- icon = self.get_icon
+ icon = self.icon_url
if not icon:
icon = provider.icon_url()
return UILoginButton(
@@ -85,7 +85,7 @@ class OAuthSource(Source):
def ui_user_settings(self) -> Optional[UserSettingSerializer]:
provider_type = self.source_type
- icon = self.get_icon
+ icon = self.icon_url
if not icon:
icon = provider_type().icon_url()
return UserSettingSerializer(
@@ -232,7 +232,7 @@ class UserOAuthSourceConnection(UserSourceConnection):
access_token = models.TextField(blank=True, null=True, default=None)
@property
- def serializer(self) -> Serializer:
+ def serializer(self) -> type[Serializer]:
from authentik.sources.oauth.api.source_connection import (
UserOAuthSourceConnectionSerializer,
)
diff --git a/authentik/sources/oauth/types/patreon.py b/authentik/sources/oauth/types/patreon.py
index 2b54533ff..d02c3d33d 100644
--- a/authentik/sources/oauth/types/patreon.py
+++ b/authentik/sources/oauth/types/patreon.py
@@ -12,8 +12,9 @@ class PatreonOAuthRedirect(OAuthRedirect):
"""Patreon OAuth2 Redirect"""
def get_additional_parameters(self, source: OAuthSource): # pragma: no cover
+ # https://docs.patreon.com/#scopes
return {
- "scope": ["openid", "email", "profile"],
+ "scope": ["identity", "identity[email]"],
}
diff --git a/authentik/sources/plex/models.py b/authentik/sources/plex/models.py
index 06d46dc67..e20c809a3 100644
--- a/authentik/sources/plex/models.py
+++ b/authentik/sources/plex/models.py
@@ -62,7 +62,7 @@ class PlexSource(Source):
return PlexSourceSerializer
def ui_login_button(self, request: HttpRequest) -> UILoginButton:
- icon = self.get_icon
+ icon = self.icon_url
if not icon:
icon = static("authentik/sources/plex.svg")
return UILoginButton(
@@ -79,7 +79,7 @@ class PlexSource(Source):
)
def ui_user_settings(self) -> Optional[UserSettingSerializer]:
- icon = self.get_icon
+ icon = self.icon_url
if not icon:
icon = static("authentik/sources/plex.svg")
return UserSettingSerializer(
diff --git a/authentik/sources/saml/models.py b/authentik/sources/saml/models.py
index 5f01b034e..6c24abf8d 100644
--- a/authentik/sources/saml/models.py
+++ b/authentik/sources/saml/models.py
@@ -200,11 +200,11 @@ class SAMLSource(Source):
}
),
name=self.name,
- icon_url=self.get_icon,
+ icon_url=self.icon_url,
)
def ui_user_settings(self) -> Optional[UserSettingSerializer]:
- icon = self.get_icon
+ icon = self.icon_url
if not icon:
icon = static(f"authentik/sources/{self.slug}.svg")
return UserSettingSerializer(
diff --git a/authentik/stages/authenticator_sms/stage.py b/authentik/stages/authenticator_sms/stage.py
index dfbf48c68..e2c661089 100644
--- a/authentik/stages/authenticator_sms/stage.py
+++ b/authentik/stages/authenticator_sms/stage.py
@@ -69,7 +69,6 @@ class AuthenticatorSMSStageView(ChallengeStageView):
stage: AuthenticatorSMSStage = self.executor.current_stage
hashed_number = hash_phone_number(phone_number)
query = Q(phone_number=hashed_number) | Q(phone_number=phone_number)
- print(SMSDevice.objects.filter(query, stage=stage.pk))
if SMSDevice.objects.filter(query, stage=stage.pk).exists():
raise ValidationError(_("Invalid phone number"))
# No code yet, but we have a phone number, so send a verification message
diff --git a/authentik/stages/authenticator_sms/tests.py b/authentik/stages/authenticator_sms/tests.py
index 9601cf886..1ab16aa56 100644
--- a/authentik/stages/authenticator_sms/tests.py
+++ b/authentik/stages/authenticator_sms/tests.py
@@ -199,11 +199,9 @@ class AuthenticatorSMSStageTests(FlowTestCase):
sms_send_mock,
),
):
- print(self.client.session[SESSION_KEY_PLAN])
response = self.client.get(
reverse("authentik_api:flow-executor", kwargs={"flow_slug": self.flow.slug}),
)
- print(response.content.decode())
self.assertStageResponse(
response,
self.flow,
diff --git a/authentik/stages/authenticator_totp/api.py b/authentik/stages/authenticator_totp/api.py
index df1a379f4..3baffb3ff 100644
--- a/authentik/stages/authenticator_totp/api.py
+++ b/authentik/stages/authenticator_totp/api.py
@@ -1,6 +1,7 @@
"""AuthenticatorTOTPStage API Views"""
from django_filters.rest_framework.backends import DjangoFilterBackend
from rest_framework import mixins
+from rest_framework.fields import ChoiceField
from rest_framework.filters import OrderingFilter, SearchFilter
from rest_framework.permissions import IsAdminUser
from rest_framework.serializers import ModelSerializer
@@ -9,12 +10,18 @@ from rest_framework.viewsets import GenericViewSet, ModelViewSet
from authentik.api.authorization import OwnerFilter, OwnerPermissions
from authentik.core.api.used_by import UsedByMixin
from authentik.flows.api.stages import StageSerializer
-from authentik.stages.authenticator_totp.models import AuthenticatorTOTPStage, TOTPDevice
+from authentik.stages.authenticator_totp.models import (
+ AuthenticatorTOTPStage,
+ TOTPDevice,
+ TOTPDigits,
+)
class AuthenticatorTOTPStageSerializer(StageSerializer):
"""AuthenticatorTOTPStage Serializer"""
+ digits = ChoiceField(choices=TOTPDigits.choices)
+
class Meta:
model = AuthenticatorTOTPStage
fields = StageSerializer.Meta.fields + ["configure_flow", "friendly_name", "digits"]
diff --git a/authentik/stages/authenticator_totp/migrations/0010_alter_totpdevice_key.py b/authentik/stages/authenticator_totp/migrations/0010_alter_totpdevice_key.py
index af007e4df..4ea982d87 100644
--- a/authentik/stages/authenticator_totp/migrations/0010_alter_totpdevice_key.py
+++ b/authentik/stages/authenticator_totp/migrations/0010_alter_totpdevice_key.py
@@ -29,4 +29,14 @@ class Migration(migrations.Migration):
name="totpdevice",
options={"verbose_name": "TOTP Device", "verbose_name_plural": "TOTP Devices"},
),
+ migrations.AlterField(
+ model_name="authenticatortotpstage",
+ name="digits",
+ field=models.IntegerField(
+ choices=[
+ ("6", "6 digits, widely compatible"),
+ ("8", "8 digits, not compatible with apps like Google Authenticator"),
+ ]
+ ),
+ ),
]
diff --git a/authentik/stages/authenticator_totp/models.py b/authentik/stages/authenticator_totp/models.py
index 41bf2d2c8..e00d39d40 100644
--- a/authentik/stages/authenticator_totp/models.py
+++ b/authentik/stages/authenticator_totp/models.py
@@ -19,7 +19,7 @@ from authentik.stages.authenticator.oath import TOTP
from authentik.stages.authenticator.util import hex_validator, random_hex
-class TOTPDigits(models.IntegerChoices):
+class TOTPDigits(models.TextChoices):
"""OTP Time Digits"""
SIX = 6, _("6 digits, widely compatible")
diff --git a/authentik/stages/authenticator_validate/tests/test_duo.py b/authentik/stages/authenticator_validate/tests/test_duo.py
index 22d1fe746..1f3edb62e 100644
--- a/authentik/stages/authenticator_validate/tests/test_duo.py
+++ b/authentik/stages/authenticator_validate/tests/test_duo.py
@@ -184,6 +184,7 @@ class AuthenticatorValidateStageDuoTests(FlowTestCase):
"args": {},
"method": "GET",
"path": f"/api/v3/flows/executor/{flow.slug}/",
+ "user_agent": "",
},
},
)
diff --git a/authentik/stages/email/stage.py b/authentik/stages/email/stage.py
index 85af0cade..a9570190a 100644
--- a/authentik/stages/email/stage.py
+++ b/authentik/stages/email/stage.py
@@ -1,5 +1,6 @@
"""authentik multi-stage authentication engine"""
from datetime import timedelta
+from uuid import uuid4
from django.contrib import messages
from django.http import HttpRequest, HttpResponse
@@ -52,16 +53,11 @@ class EmailStageView(ChallengeStageView):
kwargs={"flow_slug": self.executor.flow.slug},
)
# Parse query string from current URL (full query string)
- query_params = QueryDict(self.request.META.get("QUERY_STRING", ""), mutable=True)
+ # this view is only run within a flow executor, where we need to get the query string
+ # from the query= parameter (double encoded); but for the redirect
+ # we need to expand it since it'll go through the flow interface
+ query_params = QueryDict(self.request.GET.get(QS_QUERY), mutable=True)
query_params.pop(QS_KEY_TOKEN, None)
-
- # Check for nested query string used by flow executor, and remove any
- # kind of flow token from that
- if QS_QUERY in query_params:
- inner_query_params = QueryDict(query_params.get(QS_QUERY), mutable=True)
- inner_query_params.pop(QS_KEY_TOKEN, None)
- query_params[QS_QUERY] = inner_query_params.urlencode()
-
query_params.update(kwargs)
full_url = base_url
if len(query_params) > 0:
@@ -75,7 +71,7 @@ class EmailStageView(ChallengeStageView):
valid_delta = timedelta(
minutes=current_stage.token_expiry + 1
) # + 1 because django timesince always rounds down
- identifier = slugify(f"ak-email-stage-{current_stage.name}-{pending_user}")
+ identifier = slugify(f"ak-email-stage-{current_stage.name}-{str(uuid4())}")
# Don't check for validity here, we only care if the token exists
tokens = FlowToken.objects.filter(identifier=identifier)
if not tokens.exists():
diff --git a/authentik/stages/email/tests/test_stage.py b/authentik/stages/email/tests/test_stage.py
index a63d105d9..853bc2a77 100644
--- a/authentik/stages/email/tests/test_stage.py
+++ b/authentik/stages/email/tests/test_stage.py
@@ -259,7 +259,7 @@ class TestEmailStage(FlowTestCase):
session.save()
url = reverse("authentik_api:flow-executor", kwargs={"flow_slug": self.flow.slug})
- url += "?foo=bar"
+ url += "?query=" + urlencode({"foo": "bar"})
request = self.factory.get(url)
stage_view = EmailStageView(
FlowExecutorView(
@@ -273,31 +273,3 @@ class TestEmailStage(FlowTestCase):
stage_view.get_full_url(**{QS_KEY_TOKEN: token}),
f"http://testserver/if/flow/{self.flow.slug}/?foo=bar&flow_token={token}",
)
-
- def test_url_existing_params_nested(self):
- """Test to ensure that URL params are preserved in the URL being sent (including nested)"""
- plan = FlowPlan(flow_pk=self.flow.pk.hex, bindings=[self.binding], markers=[StageMarker()])
- plan.context[PLAN_CONTEXT_PENDING_USER] = self.user
- session = self.client.session
- session[SESSION_KEY_PLAN] = plan
- session.save()
-
- url = reverse("authentik_api:flow-executor", kwargs={"flow_slug": self.flow.slug})
- url += "?foo=bar&"
- url += "query=" + urlencode({"nested": "value"})
- request = self.factory.get(url)
- stage_view = EmailStageView(
- FlowExecutorView(
- request=request,
- flow=self.flow,
- ),
- request=request,
- )
- token = generate_id()
- self.assertEqual(
- stage_view.get_full_url(**{QS_KEY_TOKEN: token}),
- (
- f"http://testserver/if/flow/{self.flow.slug}"
- f"/?foo=bar&query=nested%3Dvalue&flow_token={token}"
- ),
- )
diff --git a/authentik/stages/identification/api.py b/authentik/stages/identification/api.py
index 0c1983f54..1f2ab5057 100644
--- a/authentik/stages/identification/api.py
+++ b/authentik/stages/identification/api.py
@@ -33,6 +33,7 @@ class IdentificationStageSerializer(StageSerializer):
"passwordless_flow",
"sources",
"show_source_labels",
+ "pretend_user_exists",
]
diff --git a/authentik/stages/identification/migrations/0014_identificationstage_pretend.py b/authentik/stages/identification/migrations/0014_identificationstage_pretend.py
new file mode 100644
index 000000000..da6eab2e4
--- /dev/null
+++ b/authentik/stages/identification/migrations/0014_identificationstage_pretend.py
@@ -0,0 +1,23 @@
+# Generated by Django 4.2.7 on 2023-11-17 16:32
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+ dependencies = [
+ (
+ "authentik_stages_identification",
+ "0002_auto_20200530_2204_squashed_0013_identificationstage_passwordless_flow",
+ ),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name="identificationstage",
+ name="pretend_user_exists",
+ field=models.BooleanField(
+ default=True,
+ help_text="When enabled, the stage will succeed and continue even when incorrect user info is entered.",
+ ),
+ ),
+ ]
diff --git a/authentik/stages/identification/models.py b/authentik/stages/identification/models.py
index a9f65b878..8b8b3d1fd 100644
--- a/authentik/stages/identification/models.py
+++ b/authentik/stages/identification/models.py
@@ -54,6 +54,13 @@ class IdentificationStage(Stage):
"entered will be shown"
),
)
+ pretend_user_exists = models.BooleanField(
+ default=True,
+ help_text=_(
+ "When enabled, the stage will succeed and continue even when incorrect user info "
+ "is entered."
+ ),
+ )
enrollment_flow = models.ForeignKey(
Flow,
diff --git a/authentik/stages/identification/stage.py b/authentik/stages/identification/stage.py
index 3a6a5bd25..568030af8 100644
--- a/authentik/stages/identification/stage.py
+++ b/authentik/stages/identification/stage.py
@@ -121,8 +121,8 @@ class IdentificationChallengeResponse(ChallengeResponse):
self.pre_user = self.stage.executor.plan.context[PLAN_CONTEXT_PENDING_USER]
if not current_stage.show_matched_user:
self.stage.executor.plan.context[PLAN_CONTEXT_PENDING_USER_IDENTIFIER] = uid_field
- if self.stage.executor.flow.designation == FlowDesignation.RECOVERY:
- # When used in a recovery flow, always continue to not disclose if a user exists
+ # when `pretend` is enabled, continue regardless
+ if current_stage.pretend_user_exists:
return attrs
raise ValidationError("Failed to authenticate.")
self.pre_user = pre_user
diff --git a/authentik/stages/identification/tests.py b/authentik/stages/identification/tests.py
index dabdea050..375a9d04d 100644
--- a/authentik/stages/identification/tests.py
+++ b/authentik/stages/identification/tests.py
@@ -28,6 +28,7 @@ class TestIdentificationStage(FlowTestCase):
self.stage = IdentificationStage.objects.create(
name="identification",
user_fields=[UserFields.E_MAIL],
+ pretend_user_exists=False,
)
self.stage.sources.set([source])
self.stage.save()
@@ -106,6 +107,26 @@ class TestIdentificationStage(FlowTestCase):
form_data,
)
self.assertEqual(response.status_code, 200)
+ self.assertStageResponse(
+ response,
+ self.flow,
+ component="ak-stage-identification",
+ response_errors={
+ "non_field_errors": [{"string": "Failed to authenticate.", "code": "invalid"}]
+ },
+ )
+
+ def test_invalid_with_username_pretend(self):
+ """Test invalid with username (user exists but stage only allows email)"""
+ self.stage.pretend_user_exists = True
+ self.stage.save()
+ form_data = {"uid_field": self.user.username}
+ response = self.client.post(
+ reverse("authentik_api:flow-executor", kwargs={"flow_slug": self.flow.slug}),
+ form_data,
+ )
+ self.assertEqual(response.status_code, 200)
+ self.assertStageRedirects(response, reverse("authentik_core:root-redirect"))
def test_invalid_no_fields(self):
"""Test invalid with username (no user fields are enabled)"""
diff --git a/authentik/stages/user_write/tests.py b/authentik/stages/user_write/tests.py
index 66084f67e..0fe661e6b 100644
--- a/authentik/stages/user_write/tests.py
+++ b/authentik/stages/user_write/tests.py
@@ -6,6 +6,7 @@ from django.urls import reverse
from authentik.core.models import USER_ATTRIBUTE_SOURCES, Group, Source, User, UserSourceConnection
from authentik.core.sources.stage import PLAN_CONTEXT_SOURCES_CONNECTION
from authentik.core.tests.utils import create_test_admin_user, create_test_flow
+from authentik.events.models import Event, EventAction
from authentik.flows.markers import StageMarker
from authentik.flows.models import FlowStageBinding
from authentik.flows.planner import PLAN_CONTEXT_PENDING_USER, FlowPlan
@@ -58,11 +59,33 @@ class TestUserWriteStage(FlowTestCase):
self.assertStageRedirects(response, reverse("authentik_core:root-redirect"))
user_qs = User.objects.filter(username=plan.context[PLAN_CONTEXT_PROMPT]["username"])
self.assertTrue(user_qs.exists())
- self.assertTrue(user_qs.first().check_password(password))
- self.assertEqual(
- list(user_qs.first().ak_groups.order_by("name")), [self.other_group, self.group]
+ user = user_qs.first()
+ self.assertTrue(user.check_password(password))
+ self.assertEqual(list(user.ak_groups.order_by("name")), [self.other_group, self.group])
+ self.assertEqual(user.attributes, {USER_ATTRIBUTE_SOURCES: [self.source.name]})
+
+ self.assertTrue(
+ Event.objects.filter(
+ action=EventAction.MODEL_CREATED,
+ context__model={
+ "app": "authentik_core",
+ "model_name": "user",
+ "pk": user.pk,
+ "name": "name",
+ },
+ )
+ )
+ self.assertTrue(
+ Event.objects.filter(
+ action=EventAction.MODEL_UPDATED,
+ context__model={
+ "app": "authentik_core",
+ "model_name": "user",
+ "pk": user.pk,
+ "name": "name",
+ },
+ )
)
- self.assertEqual(user_qs.first().attributes, {USER_ATTRIBUTE_SOURCES: [self.source.name]})
def test_user_update(self):
"""Test update of existing user"""
diff --git a/blueprints/schema.json b/blueprints/schema.json
index 6fe11e20a..423094b60 100644
--- a/blueprints/schema.json
+++ b/blueprints/schema.json
@@ -6241,10 +6241,10 @@
"title": "Friendly name"
},
"digits": {
- "type": "integer",
+ "type": "string",
"enum": [
- 6,
- 8
+ "6",
+ "8"
],
"title": "Digits"
}
@@ -7425,6 +7425,11 @@
"show_source_labels": {
"type": "boolean",
"title": "Show source labels"
+ },
+ "pretend_user_exists": {
+ "type": "boolean",
+ "title": "Pretend user exists",
+ "description": "When enabled, the stage will succeed and continue even when incorrect user info is entered."
}
},
"required": []
diff --git a/docker-compose.yml b/docker-compose.yml
index a262103c9..68e7530e7 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -32,7 +32,7 @@ services:
volumes:
- redis:/data
server:
- image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2023.10.1}
+ image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2023.10.4}
restart: unless-stopped
command: server
environment:
@@ -53,7 +53,7 @@ services:
- postgresql
- redis
worker:
- image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2023.10.1}
+ image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2023.10.4}
restart: unless-stopped
command: worker
environment:
diff --git a/go.mod b/go.mod
index f472bf97a..c7e703a61 100644
--- a/go.mod
+++ b/go.mod
@@ -13,24 +13,24 @@ require (
github.com/go-openapi/strfmt v0.21.7
github.com/golang-jwt/jwt v3.2.2+incompatible
github.com/google/uuid v1.4.0
- github.com/gorilla/handlers v1.5.1
- github.com/gorilla/mux v1.8.0
- github.com/gorilla/securecookie v1.1.1
- github.com/gorilla/sessions v1.2.1
- github.com/gorilla/websocket v1.5.0
+ github.com/gorilla/handlers v1.5.2
+ github.com/gorilla/mux v1.8.1
+ github.com/gorilla/securecookie v1.1.2
+ github.com/gorilla/sessions v1.2.2
+ github.com/gorilla/websocket v1.5.1
github.com/jellydator/ttlcache/v3 v3.1.0
github.com/mitchellh/mapstructure v1.5.0
github.com/nmcclain/asn1-ber v0.0.0-20170104154839-2661553a0484
github.com/pires/go-proxyproto v0.7.0
github.com/prometheus/client_golang v1.17.0
- github.com/redis/go-redis/v9 v9.2.1
+ github.com/redis/go-redis/v9 v9.3.0
github.com/sirupsen/logrus v1.9.3
- github.com/spf13/cobra v1.7.0
+ github.com/spf13/cobra v1.8.0
github.com/stretchr/testify v1.8.4
- goauthentik.io/api/v3 v3.2023101.1
+ goauthentik.io/api/v3 v3.2023104.1
golang.org/x/exp v0.0.0-20230210204819-062eb4c674ab
- golang.org/x/oauth2 v0.13.0
- golang.org/x/sync v0.4.0
+ golang.org/x/oauth2 v0.15.0
+ golang.org/x/sync v0.5.0
gopkg.in/yaml.v2 v2.4.0
layeh.com/radius v0.0.0-20210819152912-ad72663a72ab
)
@@ -42,7 +42,7 @@ require (
github.com/cespare/xxhash/v2 v2.2.0 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
- github.com/felixge/httpsnoop v1.0.1 // indirect
+ github.com/felixge/httpsnoop v1.0.3 // indirect
github.com/go-asn1-ber/asn1-ber v1.5.5 // indirect
github.com/go-http-utils/fresh v0.0.0-20161124030543-7231e26a4b27 // indirect
github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a // indirect
@@ -72,10 +72,10 @@ require (
go.mongodb.org/mongo-driver v1.11.3 // indirect
go.opentelemetry.io/otel v1.14.0 // indirect
go.opentelemetry.io/otel/trace v1.14.0 // indirect
- golang.org/x/crypto v0.14.0 // indirect
- golang.org/x/net v0.17.0 // indirect
- golang.org/x/sys v0.13.0 // indirect
- golang.org/x/text v0.13.0 // indirect
+ golang.org/x/crypto v0.16.0 // indirect
+ golang.org/x/net v0.19.0 // indirect
+ golang.org/x/sys v0.15.0 // indirect
+ golang.org/x/text v0.14.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
google.golang.org/protobuf v1.31.0 // indirect
gopkg.in/square/go-jose.v2 v2.5.1 // indirect
diff --git a/go.sum b/go.sum
index 78e06b582..78aee8833 100644
--- a/go.sum
+++ b/go.sum
@@ -62,7 +62,7 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/coreos/go-oidc v2.2.1+incompatible h1:mh48q/BqXqgjVHpy2ZY7WnWAbenxRjsz9N1i1YxjHAk=
github.com/coreos/go-oidc v2.2.1+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc=
-github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
+github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
@@ -73,8 +73,8 @@ github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymF
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
-github.com/felixge/httpsnoop v1.0.1 h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8SPQ=
-github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
+github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk=
+github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
github.com/getsentry/sentry-go v0.25.0 h1:q6Eo+hS+yoJlTO3uu/azhQadsD8V+jQn2D8VvX1eOyI=
github.com/getsentry/sentry-go v0.25.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY=
github.com/go-asn1-ber/asn1-ber v1.5.5 h1:MNHlNMBDgEKD4TcKr36vQN68BA00aDfjIt3/bD50WnA=
@@ -200,6 +200,8 @@ github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
+github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
+github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
@@ -216,16 +218,16 @@ github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4=
github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
-github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4=
-github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q=
-github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
-github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
-github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ=
-github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=
-github.com/gorilla/sessions v1.2.1 h1:DHd3rPN5lE3Ts3D8rKkQ8x/0kqfeNmBAaiSi+o7FsgI=
-github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM=
-github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
-github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
+github.com/gorilla/handlers v1.5.2 h1:cLTUSsNkgcwhgRqvCNmdbRWG0A3N4F+M2nWKdScwyEE=
+github.com/gorilla/handlers v1.5.2/go.mod h1:dX+xVpaxdSw+q0Qek8SSsl3dfMk3jNddUkMzo0GtH0w=
+github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY=
+github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ=
+github.com/gorilla/securecookie v1.1.2 h1:YCIWL56dvtr73r6715mJs5ZvhtnY73hBvEF8kXD8ePA=
+github.com/gorilla/securecookie v1.1.2/go.mod h1:NfCASbcHqRSY+3a8tlWJwsQap2VX5pwzwo4h3eOamfo=
+github.com/gorilla/sessions v1.2.2 h1:lqzMYz6bOfvn2WriPUjNByzeXIlVzURcPmgMczkmTjY=
+github.com/gorilla/sessions v1.2.2/go.mod h1:ePLdVu+jbEgHH+KWw8I1z2wqd0BAdAQh/8LRvBeoNcQ=
+github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY=
+github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY=
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
@@ -295,8 +297,8 @@ github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdO
github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY=
github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI=
github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY=
-github.com/redis/go-redis/v9 v9.2.1 h1:WlYJg71ODF0dVspZZCpYmoF1+U1Jjk9Rwd7pq6QmlCg=
-github.com/redis/go-redis/v9 v9.2.1/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M=
+github.com/redis/go-redis/v9 v9.3.0 h1:RiVDjmig62jIWp7Kk4XVLs0hzV6pI3PyTnnL0cnn0u0=
+github.com/redis/go-redis/v9 v9.3.0/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M=
github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
@@ -309,8 +311,8 @@ github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6Mwd
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
-github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I=
-github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0=
+github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0=
+github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho=
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
@@ -356,8 +358,8 @@ go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyK
go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8=
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
-goauthentik.io/api/v3 v3.2023101.1 h1:KIQ4wmxjE+geAVB0wBfmxW9Uzo/tA0dbd2hSUJ7YJ3M=
-goauthentik.io/api/v3 v3.2023101.1/go.mod h1:zz+mEZg8rY/7eEjkMGWJ2DnGqk+zqxuybGCGrR2O4Kw=
+goauthentik.io/api/v3 v3.2023104.1 h1:cvAsgoKP/fmO4fzifx0OyICknauFeyN88C4Z1LdWXDs=
+goauthentik.io/api/v3 v3.2023104.1/go.mod h1:zz+mEZg8rY/7eEjkMGWJ2DnGqk+zqxuybGCGrR2O4Kw=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=
@@ -370,8 +372,8 @@ golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPh
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
-golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc=
-golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
+golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY=
+golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -438,16 +440,16 @@ golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qx
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
-golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM=
-golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
+golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c=
+golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.13.0 h1:jDDenyj+WgFtmV3zYVoi8aE2BwtXFLWOA67ZfNWftiY=
-golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0=
+golang.org/x/oauth2 v0.15.0 h1:s8pnnxNVzjWyrvYdFUQq5llS1PX2zhPXmccZv99h7uQ=
+golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -460,8 +462,8 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ=
-golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
+golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE=
+golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -502,8 +504,8 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE=
-golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
+golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
@@ -519,8 +521,9 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
-golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
+golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
+golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
diff --git a/internal/config/struct.go b/internal/config/struct.go
index 27ad926b0..c42fb2c7a 100644
--- a/internal/config/struct.go
+++ b/internal/config/struct.go
@@ -27,14 +27,11 @@ type Config struct {
type RedisConfig struct {
Host string `yaml:"host" env:"AUTHENTIK_REDIS__HOST"`
Port int `yaml:"port" env:"AUTHENTIK_REDIS__PORT"`
+ DB int `yaml:"db" env:"AUTHENTIK_REDIS__DB"`
+ Username string `yaml:"username" env:"AUTHENTIK_REDIS__USERNAME"`
Password string `yaml:"password" env:"AUTHENTIK_REDIS__PASSWORD"`
TLS bool `yaml:"tls" env:"AUTHENTIK_REDIS__TLS"`
TLSReqs string `yaml:"tls_reqs" env:"AUTHENTIK_REDIS__TLS_REQS"`
- DB int `yaml:"cache_db" env:"AUTHENTIK_REDIS__DB"`
- CacheTimeout int `yaml:"cache_timeout" env:"AUTHENTIK_REDIS__CACHE_TIMEOUT"`
- CacheTimeoutFlows int `yaml:"cache_timeout_flows" env:"AUTHENTIK_REDIS__CACHE_TIMEOUT_FLOWS"`
- CacheTimeoutPolicies int `yaml:"cache_timeout_policies" env:"AUTHENTIK_REDIS__CACHE_TIMEOUT_POLICIES"`
- CacheTimeoutReputation int `yaml:"cache_timeout_reputation" env:"AUTHENTIK_REDIS__CACHE_TIMEOUT_REPUTATION"`
}
type ListenConfig struct {
diff --git a/internal/constants/constants.go b/internal/constants/constants.go
index d49e2fc33..fb12db690 100644
--- a/internal/constants/constants.go
+++ b/internal/constants/constants.go
@@ -29,4 +29,4 @@ func UserAgent() string {
return fmt.Sprintf("authentik@%s", FullVersion())
}
-const VERSION = "2023.10.1"
+const VERSION = "2023.10.4"
diff --git a/internal/outpost/flow/executor.go b/internal/outpost/flow/executor.go
index 998249e5c..10dca6bb5 100644
--- a/internal/outpost/flow/executor.go
+++ b/internal/outpost/flow/executor.go
@@ -29,16 +29,6 @@ var (
Name: "authentik_outpost_flow_timing_post_seconds",
Help: "Duration it took to send a challenge in seconds",
}, []string{"stage", "flow"})
-
- // NOTE: the following metrics are kept for compatibility purpose
- FlowTimingGetLegacy = promauto.NewHistogramVec(prometheus.HistogramOpts{
- Name: "authentik_outpost_flow_timing_get",
- Help: "Duration it took to get a challenge",
- }, []string{"stage", "flow"})
- FlowTimingPostLegacy = promauto.NewHistogramVec(prometheus.HistogramOpts{
- Name: "authentik_outpost_flow_timing_post",
- Help: "Duration it took to send a challenge",
- }, []string{"stage", "flow"})
)
type SolverFunction func(*api.ChallengeTypes, api.ApiFlowsExecutorSolveRequest) (api.FlowChallengeResponseRequest, error)
@@ -198,10 +188,6 @@ func (fe *FlowExecutor) getInitialChallenge() (*api.ChallengeTypes, error) {
"stage": ch.GetComponent(),
"flow": fe.flowSlug,
}).Observe(float64(gcsp.EndTime.Sub(gcsp.StartTime)) / float64(time.Second))
- FlowTimingGetLegacy.With(prometheus.Labels{
- "stage": ch.GetComponent(),
- "flow": fe.flowSlug,
- }).Observe(float64(gcsp.EndTime.Sub(gcsp.StartTime)))
return challenge, nil
}
@@ -259,10 +245,6 @@ func (fe *FlowExecutor) solveFlowChallenge(challenge *api.ChallengeTypes, depth
"stage": ch.GetComponent(),
"flow": fe.flowSlug,
}).Observe(float64(scsp.EndTime.Sub(scsp.StartTime)) / float64(time.Second))
- FlowTimingPostLegacy.With(prometheus.Labels{
- "stage": ch.GetComponent(),
- "flow": fe.flowSlug,
- }).Observe(float64(scsp.EndTime.Sub(scsp.StartTime)))
if depth >= 10 {
return false, errors.New("exceeded stage recursion depth")
diff --git a/internal/outpost/ldap/bind.go b/internal/outpost/ldap/bind.go
index 5ab1e42c1..050dea646 100644
--- a/internal/outpost/ldap/bind.go
+++ b/internal/outpost/ldap/bind.go
@@ -22,11 +22,6 @@ func (ls *LDAPServer) Bind(bindDN string, bindPW string, conn net.Conn) (ldap.LD
"type": "bind",
"app": selectedApp,
}).Observe(float64(span.EndTime.Sub(span.StartTime)) / float64(time.Second))
- metrics.RequestsLegacy.With(prometheus.Labels{
- "outpost_name": ls.ac.Outpost.Name,
- "type": "bind",
- "app": selectedApp,
- }).Observe(float64(span.EndTime.Sub(span.StartTime)))
req.Log().WithField("took-ms", span.EndTime.Sub(span.StartTime).Milliseconds()).Info("Bind request")
}()
@@ -55,12 +50,6 @@ func (ls *LDAPServer) Bind(bindDN string, bindPW string, conn net.Conn) (ldap.LD
"reason": "no_provider",
"app": "",
}).Inc()
- metrics.RequestsRejectedLegacy.With(prometheus.Labels{
- "outpost_name": ls.ac.Outpost.Name,
- "type": "bind",
- "reason": "no_provider",
- "app": "",
- }).Inc()
return ldap.LDAPResultInsufficientAccessRights, nil
}
diff --git a/internal/outpost/ldap/bind/direct/bind.go b/internal/outpost/ldap/bind/direct/bind.go
index f6e49ccfb..cffa0cf36 100644
--- a/internal/outpost/ldap/bind/direct/bind.go
+++ b/internal/outpost/ldap/bind/direct/bind.go
@@ -47,12 +47,6 @@ func (db *DirectBinder) Bind(username string, req *bind.Request) (ldap.LDAPResul
"reason": "flow_error",
"app": db.si.GetAppSlug(),
}).Inc()
- metrics.RequestsRejectedLegacy.With(prometheus.Labels{
- "outpost_name": db.si.GetOutpostName(),
- "type": "bind",
- "reason": "flow_error",
- "app": db.si.GetAppSlug(),
- }).Inc()
req.Log().WithError(err).Warning("failed to execute flow")
return ldap.LDAPResultInvalidCredentials, nil
}
@@ -63,12 +57,6 @@ func (db *DirectBinder) Bind(username string, req *bind.Request) (ldap.LDAPResul
"reason": "invalid_credentials",
"app": db.si.GetAppSlug(),
}).Inc()
- metrics.RequestsRejectedLegacy.With(prometheus.Labels{
- "outpost_name": db.si.GetOutpostName(),
- "type": "bind",
- "reason": "invalid_credentials",
- "app": db.si.GetAppSlug(),
- }).Inc()
req.Log().Info("Invalid credentials")
return ldap.LDAPResultInvalidCredentials, nil
}
@@ -82,12 +70,6 @@ func (db *DirectBinder) Bind(username string, req *bind.Request) (ldap.LDAPResul
"reason": "access_denied",
"app": db.si.GetAppSlug(),
}).Inc()
- metrics.RequestsRejectedLegacy.With(prometheus.Labels{
- "outpost_name": db.si.GetOutpostName(),
- "type": "bind",
- "reason": "access_denied",
- "app": db.si.GetAppSlug(),
- }).Inc()
return ldap.LDAPResultInsufficientAccessRights, nil
}
if err != nil {
@@ -97,12 +79,6 @@ func (db *DirectBinder) Bind(username string, req *bind.Request) (ldap.LDAPResul
"reason": "access_check_fail",
"app": db.si.GetAppSlug(),
}).Inc()
- metrics.RequestsRejectedLegacy.With(prometheus.Labels{
- "outpost_name": db.si.GetOutpostName(),
- "type": "bind",
- "reason": "access_check_fail",
- "app": db.si.GetAppSlug(),
- }).Inc()
req.Log().WithError(err).Warning("failed to check access")
return ldap.LDAPResultOperationsError, nil
}
@@ -117,12 +93,6 @@ func (db *DirectBinder) Bind(username string, req *bind.Request) (ldap.LDAPResul
"reason": "user_info_fail",
"app": db.si.GetAppSlug(),
}).Inc()
- metrics.RequestsRejectedLegacy.With(prometheus.Labels{
- "outpost_name": db.si.GetOutpostName(),
- "type": "bind",
- "reason": "user_info_fail",
- "app": db.si.GetAppSlug(),
- }).Inc()
req.Log().WithError(err).Warning("failed to get user info")
return ldap.LDAPResultOperationsError, nil
}
diff --git a/internal/outpost/ldap/metrics/metrics.go b/internal/outpost/ldap/metrics/metrics.go
index 150f89e7f..8c36b2f88 100644
--- a/internal/outpost/ldap/metrics/metrics.go
+++ b/internal/outpost/ldap/metrics/metrics.go
@@ -22,16 +22,6 @@ var (
Name: "authentik_outpost_ldap_requests_rejected_total",
Help: "Total number of rejected requests",
}, []string{"outpost_name", "type", "reason", "app"})
-
- // NOTE: the following metrics are kept for compatibility purpose
- RequestsLegacy = promauto.NewHistogramVec(prometheus.HistogramOpts{
- Name: "authentik_outpost_ldap_requests",
- Help: "The total number of configured providers",
- }, []string{"outpost_name", "type", "app"})
- RequestsRejectedLegacy = promauto.NewCounterVec(prometheus.CounterOpts{
- Name: "authentik_outpost_ldap_requests_rejected",
- Help: "Total number of rejected requests",
- }, []string{"outpost_name", "type", "reason", "app"})
)
func RunServer() {
diff --git a/internal/outpost/ldap/search.go b/internal/outpost/ldap/search.go
index a330e3fb8..b26df5023 100644
--- a/internal/outpost/ldap/search.go
+++ b/internal/outpost/ldap/search.go
@@ -23,11 +23,6 @@ func (ls *LDAPServer) Search(bindDN string, searchReq ldap.SearchRequest, conn n
"type": "search",
"app": selectedApp,
}).Observe(float64(span.EndTime.Sub(span.StartTime)) / float64(time.Second))
- metrics.RequestsLegacy.With(prometheus.Labels{
- "outpost_name": ls.ac.Outpost.Name,
- "type": "search",
- "app": selectedApp,
- }).Observe(float64(span.EndTime.Sub(span.StartTime)))
req.Log().WithField("attributes", searchReq.Attributes).WithField("took-ms", span.EndTime.Sub(span.StartTime).Milliseconds()).Info("Search request")
}()
diff --git a/internal/outpost/ldap/search/direct/direct.go b/internal/outpost/ldap/search/direct/direct.go
index 9f7ccd124..7ac59f834 100644
--- a/internal/outpost/ldap/search/direct/direct.go
+++ b/internal/outpost/ldap/search/direct/direct.go
@@ -45,12 +45,6 @@ func (ds *DirectSearcher) Search(req *search.Request) (ldap.ServerSearchResult,
"reason": "empty_bind_dn",
"app": ds.si.GetAppSlug(),
}).Inc()
- metrics.RequestsRejectedLegacy.With(prometheus.Labels{
- "outpost_name": ds.si.GetOutpostName(),
- "type": "search",
- "reason": "empty_bind_dn",
- "app": ds.si.GetAppSlug(),
- }).Inc()
return ldap.ServerSearchResult{ResultCode: ldap.LDAPResultInsufficientAccessRights}, fmt.Errorf("Search Error: Anonymous BindDN not allowed %s", req.BindDN)
}
if !utils.HasSuffixNoCase(req.BindDN, ","+baseDN) {
@@ -60,12 +54,6 @@ func (ds *DirectSearcher) Search(req *search.Request) (ldap.ServerSearchResult,
"reason": "invalid_bind_dn",
"app": ds.si.GetAppSlug(),
}).Inc()
- metrics.RequestsRejectedLegacy.With(prometheus.Labels{
- "outpost_name": ds.si.GetOutpostName(),
- "type": "search",
- "reason": "invalid_bind_dn",
- "app": ds.si.GetAppSlug(),
- }).Inc()
return ldap.ServerSearchResult{ResultCode: ldap.LDAPResultInsufficientAccessRights}, fmt.Errorf("Search Error: BindDN %s not in our BaseDN %s", req.BindDN, ds.si.GetBaseDN())
}
@@ -78,12 +66,6 @@ func (ds *DirectSearcher) Search(req *search.Request) (ldap.ServerSearchResult,
"reason": "user_info_not_cached",
"app": ds.si.GetAppSlug(),
}).Inc()
- metrics.RequestsRejectedLegacy.With(prometheus.Labels{
- "outpost_name": ds.si.GetOutpostName(),
- "type": "search",
- "reason": "user_info_not_cached",
- "app": ds.si.GetAppSlug(),
- }).Inc()
return ldap.ServerSearchResult{ResultCode: ldap.LDAPResultInsufficientAccessRights}, errors.New("access denied")
}
accsp.Finish()
@@ -96,12 +78,6 @@ func (ds *DirectSearcher) Search(req *search.Request) (ldap.ServerSearchResult,
"reason": "filter_parse_fail",
"app": ds.si.GetAppSlug(),
}).Inc()
- metrics.RequestsRejectedLegacy.With(prometheus.Labels{
- "outpost_name": ds.si.GetOutpostName(),
- "type": "search",
- "reason": "filter_parse_fail",
- "app": ds.si.GetAppSlug(),
- }).Inc()
return ldap.ServerSearchResult{ResultCode: ldap.LDAPResultOperationsError}, fmt.Errorf("Search Error: error parsing filter: %s", req.Filter)
}
diff --git a/internal/outpost/ldap/search/memory/memory.go b/internal/outpost/ldap/search/memory/memory.go
index 177099f7e..2b80bbbbb 100644
--- a/internal/outpost/ldap/search/memory/memory.go
+++ b/internal/outpost/ldap/search/memory/memory.go
@@ -62,12 +62,6 @@ func (ms *MemorySearcher) Search(req *search.Request) (ldap.ServerSearchResult,
"reason": "empty_bind_dn",
"app": ms.si.GetAppSlug(),
}).Inc()
- metrics.RequestsRejectedLegacy.With(prometheus.Labels{
- "outpost_name": ms.si.GetOutpostName(),
- "type": "search",
- "reason": "empty_bind_dn",
- "app": ms.si.GetAppSlug(),
- }).Inc()
return ldap.ServerSearchResult{ResultCode: ldap.LDAPResultInsufficientAccessRights}, fmt.Errorf("Search Error: Anonymous BindDN not allowed %s", req.BindDN)
}
if !utils.HasSuffixNoCase(req.BindDN, ","+baseDN) {
@@ -77,12 +71,6 @@ func (ms *MemorySearcher) Search(req *search.Request) (ldap.ServerSearchResult,
"reason": "invalid_bind_dn",
"app": ms.si.GetAppSlug(),
}).Inc()
- metrics.RequestsRejectedLegacy.With(prometheus.Labels{
- "outpost_name": ms.si.GetOutpostName(),
- "type": "search",
- "reason": "invalid_bind_dn",
- "app": ms.si.GetAppSlug(),
- }).Inc()
return ldap.ServerSearchResult{ResultCode: ldap.LDAPResultInsufficientAccessRights}, fmt.Errorf("Search Error: BindDN %s not in our BaseDN %s", req.BindDN, ms.si.GetBaseDN())
}
@@ -95,12 +83,6 @@ func (ms *MemorySearcher) Search(req *search.Request) (ldap.ServerSearchResult,
"reason": "user_info_not_cached",
"app": ms.si.GetAppSlug(),
}).Inc()
- metrics.RequestsRejectedLegacy.With(prometheus.Labels{
- "outpost_name": ms.si.GetOutpostName(),
- "type": "search",
- "reason": "user_info_not_cached",
- "app": ms.si.GetAppSlug(),
- }).Inc()
return ldap.ServerSearchResult{ResultCode: ldap.LDAPResultInsufficientAccessRights}, errors.New("access denied")
}
accsp.Finish()
diff --git a/internal/outpost/ldap/unbind.go b/internal/outpost/ldap/unbind.go
index 35c608c32..b293cb2c0 100644
--- a/internal/outpost/ldap/unbind.go
+++ b/internal/outpost/ldap/unbind.go
@@ -22,11 +22,6 @@ func (ls *LDAPServer) Unbind(boundDN string, conn net.Conn) (ldap.LDAPResultCode
"type": "unbind",
"app": selectedApp,
}).Observe(float64(span.EndTime.Sub(span.StartTime)) / float64(time.Second))
- metrics.RequestsLegacy.With(prometheus.Labels{
- "outpost_name": ls.ac.Outpost.Name,
- "type": "unbind",
- "app": selectedApp,
- }).Observe(float64(span.EndTime.Sub(span.StartTime)))
req.Log().WithField("took-ms", span.EndTime.Sub(span.StartTime).Milliseconds()).Info("Unbind request")
}()
@@ -55,11 +50,5 @@ func (ls *LDAPServer) Unbind(boundDN string, conn net.Conn) (ldap.LDAPResultCode
"reason": "no_provider",
"app": "",
}).Inc()
- metrics.RequestsRejectedLegacy.With(prometheus.Labels{
- "outpost_name": ls.ac.Outpost.Name,
- "type": "unbind",
- "reason": "no_provider",
- "app": "",
- }).Inc()
return ldap.LDAPResultOperationsError, nil
}
diff --git a/internal/outpost/proxyv2/application/application.go b/internal/outpost/proxyv2/application/application.go
index eae4c6774..03dc4289d 100644
--- a/internal/outpost/proxyv2/application/application.go
+++ b/internal/outpost/proxyv2/application/application.go
@@ -173,12 +173,6 @@ func NewApplication(p api.ProxyOutpostConfig, c *http.Client, server Server) (*A
"method": r.Method,
"host": web.GetHost(r),
}).Observe(float64(elapsed) / float64(time.Second))
- metrics.RequestsLegacy.With(prometheus.Labels{
- "outpost_name": a.outpostName,
- "type": "app",
- "method": r.Method,
- "host": web.GetHost(r),
- }).Observe(float64(elapsed))
})
})
if server.API().GlobalConfig.ErrorReporting.Enabled {
@@ -241,7 +235,10 @@ func (a *Application) Mode() api.ProxyMode {
return *a.proxyConfig.Mode
}
-func (a *Application) HasQuerySignature(r *http.Request) bool {
+func (a *Application) ShouldHandleURL(r *http.Request) bool {
+ if strings.HasPrefix(r.URL.Path, "/outpost.goauthentik.io") {
+ return true
+ }
if strings.EqualFold(r.URL.Query().Get(CallbackSignature), "true") {
return true
}
diff --git a/internal/outpost/proxyv2/application/mode_proxy.go b/internal/outpost/proxyv2/application/mode_proxy.go
index 07a53f2d6..d987cd72b 100644
--- a/internal/outpost/proxyv2/application/mode_proxy.go
+++ b/internal/outpost/proxyv2/application/mode_proxy.go
@@ -64,13 +64,6 @@ func (a *Application) configureProxy() error {
"scheme": r.URL.Scheme,
"host": web.GetHost(r),
}).Observe(float64(elapsed) / float64(time.Second))
- metrics.UpstreamTimingLegacy.With(prometheus.Labels{
- "outpost_name": a.outpostName,
- "upstream_host": r.URL.Host,
- "method": r.Method,
- "scheme": r.URL.Scheme,
- "host": web.GetHost(r),
- }).Observe(float64(elapsed))
})
return nil
}
diff --git a/internal/outpost/proxyv2/application/session.go b/internal/outpost/proxyv2/application/session.go
index ec46d02ff..5ffa77b04 100644
--- a/internal/outpost/proxyv2/application/session.go
+++ b/internal/outpost/proxyv2/application/session.go
@@ -71,7 +71,7 @@ func (a *Application) getStore(p api.ProxyOutpostConfig, externalHost *url.URL)
cs.Options.Domain = *p.CookieDomain
cs.Options.SameSite = http.SameSiteLaxMode
cs.Options.MaxAge = maxAge
- cs.Options.Path = externalHost.Path
+ cs.Options.Path = "/"
a.log.WithField("dir", dir).Trace("using filesystem session backend")
return cs
}
@@ -131,7 +131,6 @@ func (a *Application) Logout(ctx context.Context, filter func(c Claims) bool) er
}
if rs, ok := a.sessions.(*redisstore.RedisStore); ok {
client := rs.Client()
- defer client.Close()
keys, err := client.Keys(ctx, fmt.Sprintf("%s*", RedisKeyPrefix)).Result()
if err != nil {
return err
diff --git a/internal/outpost/proxyv2/handlers.go b/internal/outpost/proxyv2/handlers.go
index 97d86a9fb..5ea61060b 100644
--- a/internal/outpost/proxyv2/handlers.go
+++ b/internal/outpost/proxyv2/handlers.go
@@ -26,12 +26,6 @@ func (ps *ProxyServer) HandlePing(rw http.ResponseWriter, r *http.Request) {
"host": web.GetHost(r),
"type": "ping",
}).Observe(float64(elapsed) / float64(time.Second))
- metrics.RequestsLegacy.With(prometheus.Labels{
- "outpost_name": ps.akAPI.Outpost.Name,
- "method": r.Method,
- "host": web.GetHost(r),
- "type": "ping",
- }).Observe(float64(elapsed))
}
func (ps *ProxyServer) HandleStatic(rw http.ResponseWriter, r *http.Request) {
@@ -44,12 +38,6 @@ func (ps *ProxyServer) HandleStatic(rw http.ResponseWriter, r *http.Request) {
"host": web.GetHost(r),
"type": "static",
}).Observe(float64(elapsed) / float64(time.Second))
- metrics.RequestsLegacy.With(prometheus.Labels{
- "outpost_name": ps.akAPI.Outpost.Name,
- "method": r.Method,
- "host": web.GetHost(r),
- "type": "static",
- }).Observe(float64(elapsed))
}
func (ps *ProxyServer) lookupApp(r *http.Request) (*application.Application, string) {
diff --git a/internal/outpost/proxyv2/metrics/metrics.go b/internal/outpost/proxyv2/metrics/metrics.go
index 564a010d0..6f589025f 100644
--- a/internal/outpost/proxyv2/metrics/metrics.go
+++ b/internal/outpost/proxyv2/metrics/metrics.go
@@ -22,16 +22,6 @@ var (
Name: "authentik_outpost_proxy_upstream_response_duration_seconds",
Help: "Proxy upstream response latencies in seconds",
}, []string{"outpost_name", "method", "scheme", "host", "upstream_host"})
-
- // NOTE: the following metric is kept for compatibility purpose
- RequestsLegacy = promauto.NewHistogramVec(prometheus.HistogramOpts{
- Name: "authentik_outpost_proxy_requests",
- Help: "The total number of configured providers",
- }, []string{"outpost_name", "method", "host", "type"})
- UpstreamTimingLegacy = promauto.NewHistogramVec(prometheus.HistogramOpts{
- Name: "authentik_outpost_proxy_upstream_time",
- Help: "A summary of the duration we wait for the upstream reply",
- }, []string{"outpost_name", "method", "scheme", "host", "upstream_host"})
)
func RunServer() {
diff --git a/internal/outpost/proxyv2/proxyv2.go b/internal/outpost/proxyv2/proxyv2.go
index 70364957f..cd0129038 100644
--- a/internal/outpost/proxyv2/proxyv2.go
+++ b/internal/outpost/proxyv2/proxyv2.go
@@ -74,7 +74,7 @@ func (ps *ProxyServer) HandleHost(rw http.ResponseWriter, r *http.Request) bool
if a == nil {
return false
}
- if a.HasQuerySignature(r) || a.Mode() == api.PROXYMODE_PROXY {
+ if a.ShouldHandleURL(r) || a.Mode() == api.PROXYMODE_PROXY {
a.ServeHTTP(rw, r)
return true
}
diff --git a/internal/outpost/radius/handle_access_request.go b/internal/outpost/radius/handle_access_request.go
index 6ea387f53..1c5f32202 100644
--- a/internal/outpost/radius/handle_access_request.go
+++ b/internal/outpost/radius/handle_access_request.go
@@ -35,11 +35,6 @@ func (rs *RadiusServer) Handle_AccessRequest(w radius.ResponseWriter, r *RadiusR
"reason": "flow_error",
"app": r.pi.appSlug,
}).Inc()
- metrics.RequestsRejectedLegacy.With(prometheus.Labels{
- "outpost_name": rs.ac.Outpost.Name,
- "reason": "flow_error",
- "app": r.pi.appSlug,
- }).Inc()
_ = w.Write(r.Response(radius.CodeAccessReject))
return
}
@@ -49,11 +44,6 @@ func (rs *RadiusServer) Handle_AccessRequest(w radius.ResponseWriter, r *RadiusR
"reason": "invalid_credentials",
"app": r.pi.appSlug,
}).Inc()
- metrics.RequestsRejectedLegacy.With(prometheus.Labels{
- "outpost_name": rs.ac.Outpost.Name,
- "reason": "invalid_credentials",
- "app": r.pi.appSlug,
- }).Inc()
_ = w.Write(r.Response(radius.CodeAccessReject))
return
}
@@ -66,11 +56,6 @@ func (rs *RadiusServer) Handle_AccessRequest(w radius.ResponseWriter, r *RadiusR
"reason": "access_check_fail",
"app": r.pi.appSlug,
}).Inc()
- metrics.RequestsRejectedLegacy.With(prometheus.Labels{
- "outpost_name": rs.ac.Outpost.Name,
- "reason": "access_check_fail",
- "app": r.pi.appSlug,
- }).Inc()
return
}
if !access {
@@ -81,11 +66,6 @@ func (rs *RadiusServer) Handle_AccessRequest(w radius.ResponseWriter, r *RadiusR
"reason": "access_denied",
"app": r.pi.appSlug,
}).Inc()
- metrics.RequestsRejectedLegacy.With(prometheus.Labels{
- "outpost_name": rs.ac.Outpost.Name,
- "reason": "access_denied",
- "app": r.pi.appSlug,
- }).Inc()
return
}
_ = w.Write(r.Response(radius.CodeAccessAccept))
diff --git a/internal/outpost/radius/handler.go b/internal/outpost/radius/handler.go
index e1d3cb531..958e88b70 100644
--- a/internal/outpost/radius/handler.go
+++ b/internal/outpost/radius/handler.go
@@ -47,10 +47,6 @@ func (rs *RadiusServer) ServeRADIUS(w radius.ResponseWriter, r *radius.Request)
"outpost_name": rs.ac.Outpost.Name,
"app": selectedApp,
}).Observe(float64(span.EndTime.Sub(span.StartTime)) / float64(time.Second))
- metrics.RequestsLegacy.With(prometheus.Labels{
- "outpost_name": rs.ac.Outpost.Name,
- "app": selectedApp,
- }).Observe(float64(span.EndTime.Sub(span.StartTime)))
}()
nr := &RadiusRequest{
diff --git a/internal/outpost/radius/metrics/metrics.go b/internal/outpost/radius/metrics/metrics.go
index 1bcecfdc2..c741c04ed 100644
--- a/internal/outpost/radius/metrics/metrics.go
+++ b/internal/outpost/radius/metrics/metrics.go
@@ -22,16 +22,6 @@ var (
Name: "authentik_outpost_radius_requests_rejected_total",
Help: "Total number of rejected requests",
}, []string{"outpost_name", "reason", "app"})
-
- // NOTE: the following metric is kept for compatibility purpose
- RequestsLegacy = promauto.NewHistogramVec(prometheus.HistogramOpts{
- Name: "authentik_outpost_radius_requests",
- Help: "The total number of successful requests",
- }, []string{"outpost_name", "app"})
- RequestsRejectedLegacy = promauto.NewCounterVec(prometheus.CounterOpts{
- Name: "authentik_outpost_radius_requests_rejected",
- Help: "Total number of rejected requests",
- }, []string{"outpost_name", "reason", "app"})
)
func RunServer() {
diff --git a/internal/web/metrics.go b/internal/web/metrics.go
index 0b8670b61..2e6b0def1 100644
--- a/internal/web/metrics.go
+++ b/internal/web/metrics.go
@@ -19,12 +19,6 @@ var (
Name: "authentik_main_request_duration_seconds",
Help: "API request latencies in seconds",
}, []string{"dest"})
-
- // NOTE: the following metric is kept for compatibility purpose
- RequestsLegacy = promauto.NewHistogramVec(prometheus.HistogramOpts{
- Name: "authentik_main_requests",
- Help: "The total number of configured providers",
- }, []string{"dest"})
)
func (ws *WebServer) runMetricsServer() {
diff --git a/internal/web/proxy.go b/internal/web/proxy.go
index b52d24c3b..56f81a072 100644
--- a/internal/web/proxy.go
+++ b/internal/web/proxy.go
@@ -32,21 +32,6 @@ func (ws *WebServer) configureProxy() {
}
rp.ErrorHandler = ws.proxyErrorHandler
rp.ModifyResponse = ws.proxyModifyResponse
- ws.m.PathPrefix("/outpost.goauthentik.io").HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
- if ws.ProxyServer != nil {
- before := time.Now()
- ws.ProxyServer.Handle(rw, r)
- elapsed := time.Since(before)
- Requests.With(prometheus.Labels{
- "dest": "embedded_outpost",
- }).Observe(float64(elapsed) / float64(time.Second))
- RequestsLegacy.With(prometheus.Labels{
- "dest": "embedded_outpost",
- }).Observe(float64(elapsed))
- return
- }
- ws.proxyErrorHandler(rw, r, errors.New("proxy not running"))
- })
ws.m.Path("/-/health/live/").HandlerFunc(sentry.SentryNoSample(func(rw http.ResponseWriter, r *http.Request) {
rw.WriteHeader(204)
}))
@@ -56,25 +41,17 @@ func (ws *WebServer) configureProxy() {
return
}
before := time.Now()
- if ws.ProxyServer != nil {
- if ws.ProxyServer.HandleHost(rw, r) {
- elapsed := time.Since(before)
- Requests.With(prometheus.Labels{
- "dest": "embedded_outpost",
- }).Observe(float64(elapsed) / float64(time.Second))
- RequestsLegacy.With(prometheus.Labels{
- "dest": "embedded_outpost",
- }).Observe(float64(elapsed))
- return
- }
+ if ws.ProxyServer != nil && ws.ProxyServer.HandleHost(rw, r) {
+ elapsed := time.Since(before)
+ Requests.With(prometheus.Labels{
+ "dest": "embedded_outpost",
+ }).Observe(float64(elapsed) / float64(time.Second))
+ return
}
elapsed := time.Since(before)
Requests.With(prometheus.Labels{
"dest": "core",
}).Observe(float64(elapsed) / float64(time.Second))
- RequestsLegacy.With(prometheus.Labels{
- "dest": "core",
- }).Observe(float64(elapsed))
r.Body = http.MaxBytesReader(rw, r.Body, 32*1024*1024)
rp.ServeHTTP(rw, r)
}))
diff --git a/ldap.Dockerfile b/ldap.Dockerfile
index 095867927..6bb161a97 100644
--- a/ldap.Dockerfile
+++ b/ldap.Dockerfile
@@ -1,5 +1,12 @@
# Stage 1: Build
-FROM docker.io/golang:1.21.3-bookworm AS builder
+FROM --platform=${BUILDPLATFORM} docker.io/golang:1.21.4-bookworm AS builder
+
+ARG TARGETOS
+ARG TARGETARCH
+ARG TARGETVARIANT
+
+ARG GOOS=$TARGETOS
+ARG GOARCH=$TARGETARCH
WORKDIR /go/src/goauthentik.io
@@ -13,7 +20,7 @@ ENV CGO_ENABLED=0
COPY . .
RUN --mount=type=cache,target=/go/pkg/mod \
--mount=type=cache,target=/root/.cache/go-build \
- go build -o /go/ldap ./cmd/ldap
+ GOARM="${TARGETVARIANT#v}" go build -o /go/ldap ./cmd/ldap
# Stage 2: Run
FROM gcr.io/distroless/static-debian11:debug
diff --git a/locale/fr/LC_MESSAGES/django.mo b/locale/fr/LC_MESSAGES/django.mo
index 44523d516..8c870e2e6 100644
Binary files a/locale/fr/LC_MESSAGES/django.mo and b/locale/fr/LC_MESSAGES/django.mo differ
diff --git a/locale/zh-Hans/LC_MESSAGES/django.mo b/locale/zh-Hans/LC_MESSAGES/django.mo
index b0f7321a4..7e17e6c28 100644
Binary files a/locale/zh-Hans/LC_MESSAGES/django.mo and b/locale/zh-Hans/LC_MESSAGES/django.mo differ
diff --git a/locale/zh_CN/LC_MESSAGES/django.mo b/locale/zh_CN/LC_MESSAGES/django.mo
index 64dba5430..221747fab 100644
Binary files a/locale/zh_CN/LC_MESSAGES/django.mo and b/locale/zh_CN/LC_MESSAGES/django.mo differ
diff --git a/locale/zh_TW/LC_MESSAGES/django.po b/locale/zh_TW/LC_MESSAGES/django.po
index b89dbd140..1b1908d49 100644
--- a/locale/zh_TW/LC_MESSAGES/django.po
+++ b/locale/zh_TW/LC_MESSAGES/django.po
@@ -4,172 +4,258 @@
# FIRST AUTHOR , YEAR.
#
# Translators:
-# Chen Zhikai, 2022
# 刘松, 2022
+# Chen Zhikai, 2022
+# Passerby Dreamer, 2023
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-03 12:29+0000\n"
-"PO-Revision-Date: 2021-10-09 18:10+0000\n"
-"Last-Translator: 刘松, 2022\n"
-"Language-Team: Chinese (Taiwan) (https://www.transifex.com/authentik/teams/119923/zh_TW/)\n"
+"POT-Creation-Date: 2023-10-02 12:46+0000\n"
+"PO-Revision-Date: 2022-09-26 16:47+0000\n"
+"Last-Translator: Passerby Dreamer, 2023\n"
+"Language-Team: Chinese (Taiwan) (https://app.transifex.com/authentik/teams/119923/zh_TW/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: zh_TW\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: authentik/admin/api/tasks.py:95
+#: authentik/admin/api/tasks.py:125
#, python-format
msgid "Successfully re-scheduled Task %(name)s!"
-msgstr "已成功重新安排任务%(name)s!"
+msgstr "已成功重新安排任務%(name)s!"
-#: authentik/api/schema.py:21
+#: authentik/api/schema.py:25
msgid "Generic API Error"
-msgstr "通用 API 错误"
+msgstr "通用 API 錯誤"
-#: authentik/api/schema.py:29
+#: authentik/api/schema.py:33
msgid "Validation Error"
-msgstr "校验错误"
+msgstr "驗證錯誤"
-#: authentik/core/api/providers.py:89
+#: authentik/blueprints/api.py:44
+msgid "Blueprint file does not exist"
+msgstr "藍圖檔案不存在"
+
+#: authentik/blueprints/api.py:55
+#, python-format
+msgid "Failed to validate blueprint: %(logs)s"
+msgstr "無法驗證以下藍圖:%(logs)s"
+
+#: authentik/blueprints/api.py:60
+msgid "Either path or content must be set."
+msgstr "必須設定路徑或內容其一。"
+
+#: authentik/blueprints/models.py:30
+msgid "Managed by authentik"
+msgstr "由 authentik 管理"
+
+#: authentik/blueprints/models.py:32
+msgid ""
+"Objects that are managed by authentik. These objects are created and updated"
+" automatically. This flag only indicates that an object can be overwritten "
+"by migrations. You can still modify the objects via the API, but expect "
+"changes to be overwritten in a later update."
+msgstr ""
+"由 authentik 管理的物件。這些物件會自動地被建立和更新。這個旗標僅表示物件可以因遷移而被改寫。您仍然可以透過 API "
+"修改物件,但預期在後續的更新中變更會被改寫。"
+
+#: authentik/blueprints/models.py:112
+msgid "Blueprint Instance"
+msgstr "藍圖執行個體"
+
+#: authentik/blueprints/models.py:113
+msgid "Blueprint Instances"
+msgstr "藍圖執行個體"
+
+#: authentik/blueprints/v1/exporter.py:62
+#, python-format
+msgid "authentik Export - %(date)s"
+msgstr "authentik 匯出 - %(date)s"
+
+#: authentik/blueprints/v1/tasks.py:150 authentik/crypto/tasks.py:93
+#, python-format
+msgid "Successfully imported %(count)d files."
+msgstr "已成功导入 %(count)d 个文件。"
+
+#: authentik/core/api/providers.py:120
msgid "SAML Provider from Metadata"
-msgstr "基于Metadata的SAML请求发起端"
+msgstr "從中繼資料取得 SAML 供應商"
-#: authentik/core/api/providers.py:90
+#: authentik/core/api/providers.py:121
msgid "Create a SAML Provider by importing its Metadata."
-msgstr "通过导入SAML请求发起端的Metadata来创建SAML请求发起端。"
+msgstr "透過匯入中繼資料來建立 SAML 供應商。"
-#: authentik/core/models.py:69
+#: authentik/core/api/users.py:158
+msgid "No leading or trailing slashes allowed."
+msgstr "不允許使用前導或尾隨的斜線。"
+
+#: authentik/core/api/users.py:161
+msgid "No empty segments in user path allowed."
+msgstr "使用者路徑中不允許有空字串。"
+
+#: authentik/core/models.py:86
msgid "name"
-msgstr "名称"
+msgstr "名稱"
-#: authentik/core/models.py:71
+#: authentik/core/models.py:88
msgid "Users added to this group will be superusers."
-msgstr "添加到该组的用户均为超级用户。"
+msgstr "加入到該群組的使用者將會成為超級使用者。"
-#: authentik/core/models.py:129
+#: authentik/core/models.py:142
msgid "User's display name."
-msgstr "用户的显示名称。"
+msgstr "使用者的顯示名稱。"
-#: authentik/core/models.py:212 authentik/providers/oauth2/models.py:299
+#: authentik/core/models.py:268 authentik/providers/oauth2/models.py:295
msgid "User"
-msgstr "用户"
+msgstr "使用者"
-#: authentik/core/models.py:213
+#: authentik/core/models.py:269
msgid "Users"
-msgstr "用户"
+msgstr "使用者"
-#: authentik/core/models.py:224
+#: authentik/core/models.py:282
+msgid ""
+"Flow used for authentication when the associated application is accessed by "
+"an un-authenticated user."
+msgstr "當未經認證的使用者存取相關應用程式時,用於認證的流程。"
+
+#: authentik/core/models.py:292
msgid "Flow used when authorizing this provider."
-msgstr "授权此请求发起端时使用的Flow。"
+msgstr "授權此供應商時所使用的流程。"
-#: authentik/core/models.py:257
+#: authentik/core/models.py:304
+msgid ""
+"Accessed from applications; optional backchannel providers for protocols "
+"like LDAP and SCIM."
+msgstr "從應用程式存取;對於像是 LDAP 和 SCIM 這類協定,提供可選的後端通道供應商。"
+
+#: authentik/core/models.py:359
msgid "Application's display Name."
-msgstr "应用的显示名称。"
+msgstr "應用程式的顯示名稱。"
-#: authentik/core/models.py:258
+#: authentik/core/models.py:360
msgid "Internal application name, used in URLs."
-msgstr "应用的内部名称,在URL中使用。"
+msgstr "應用程式的內部名稱,將會用在網址中。"
-#: authentik/core/models.py:311
+#: authentik/core/models.py:372
+msgid "Open launch URL in a new browser tab or window."
+msgstr "從新瀏覽器分頁或視窗開啟網址。"
+
+#: authentik/core/models.py:436
msgid "Application"
-msgstr "应用程序"
+msgstr "應用程式"
-#: authentik/core/models.py:312
+#: authentik/core/models.py:437
msgid "Applications"
-msgstr "应用程序"
+msgstr "應用程式"
-#: authentik/core/models.py:318
+#: authentik/core/models.py:443
msgid "Use the source-specific identifier"
-msgstr "使用源特定的标识符"
+msgstr "使用基於來源的識別碼"
-#: authentik/core/models.py:326
+#: authentik/core/models.py:445
+msgid ""
+"Link to a user with identical email address. Can have security implications "
+"when a source doesn't validate email addresses."
+msgstr "連接到具有相同電子郵件地址的使用者。當來源不驗證電子郵件地址時,可能會有安全風險。"
+
+#: authentik/core/models.py:449
msgid ""
"Use the user's email address, but deny enrollment when the email address "
"already exists."
-msgstr "使用用户的电子邮件地址,但在电子邮件地址已存在时拒绝注册。"
+msgstr "使用使用者的電子郵件地址,但在電子郵件地址已存在時拒絕註冊。"
-#: authentik/core/models.py:335
+#: authentik/core/models.py:452
+msgid ""
+"Link to a user with identical username. Can have security implications when "
+"a username is used with another source."
+msgstr "連接到具有相同使用者名稱的使用者。當使用者名稱與其他來源一同使用時,可能會有安全風險。"
+
+#: authentik/core/models.py:456
msgid ""
"Use the user's username, but deny enrollment when the username already "
"exists."
-msgstr "使用用户的用户名,但在用户名已存在时拒绝注册。"
+msgstr "使用使用者的使用者名稱,但在使用者名稱已存在時拒絕註冊。"
-#: authentik/core/models.py:342
+#: authentik/core/models.py:463
msgid "Source's display Name."
-msgstr "源的显示名称。"
+msgstr "來源的顯示名稱。"
-#: authentik/core/models.py:343
+#: authentik/core/models.py:464
msgid "Internal source name, used in URLs."
-msgstr "用于 URL的内部源名称。"
+msgstr "用於網址的內部來源名稱。"
-#: authentik/core/models.py:354
+#: authentik/core/models.py:483
msgid "Flow to use when authenticating existing users."
-msgstr "认证已存在用户时所使用的流程。"
+msgstr "認證已存在使用者時所使用的流程。"
-#: authentik/core/models.py:363
+#: authentik/core/models.py:492
msgid "Flow to use when enrolling new users."
-msgstr "新用户注册时所使用的流程。"
+msgstr "新使用者註冊時所使用的流程。"
-#: authentik/core/models.py:501
+#: authentik/core/models.py:500
+msgid ""
+"How the source determines if an existing user should be authenticated or a "
+"new user enrolled."
+msgstr "來源如何確定應對現有使用者進行身份驗證,還是註冊新使用者。"
+
+#: authentik/core/models.py:672
msgid "Token"
-msgstr "令牌"
+msgstr "權杖"
-#: authentik/core/models.py:502
+#: authentik/core/models.py:673
msgid "Tokens"
-msgstr "令牌"
+msgstr "權杖"
-#: authentik/core/models.py:545
+#: authentik/core/models.py:714
msgid "Property Mapping"
-msgstr "属性映射"
+msgstr "屬性對應"
-#: authentik/core/models.py:546
+#: authentik/core/models.py:715
msgid "Property Mappings"
-msgstr "属性映射"
+msgstr "屬性對應"
-#: authentik/core/models.py:582
+#: authentik/core/models.py:750
msgid "Authenticated Session"
-msgstr "已认证会话"
+msgstr "已認證會談"
-#: authentik/core/models.py:583
+#: authentik/core/models.py:751
msgid "Authenticated Sessions"
-msgstr "已认证会话"
+msgstr "已認證會談"
-#: authentik/core/sources/flow_manager.py:166
-msgid "source"
-msgstr "来源"
+#: authentik/core/sources/flow_manager.py:189
+#, python-format
+msgid ""
+"Request to authenticate with %(source)s has been denied. Please authenticate"
+" with the source you've previously signed up with."
+msgstr "使用來自 %(source)s 的身份驗證請求已被拒絕。請使用您之前註冊過的來源進行身份驗證。"
-#: authentik/core/sources/flow_manager.py:220
-#: authentik/core/sources/flow_manager.py:258
+#: authentik/core/sources/flow_manager.py:241
+msgid "Configured flow does not exist."
+msgstr "已設定的流程不存在。"
+
+#: authentik/core/sources/flow_manager.py:271
+#: authentik/core/sources/flow_manager.py:323
#, python-format
msgid "Successfully authenticated with %(source)s!"
-msgstr "成功认证 %(source)s !"
+msgstr "成功認證 %(source)s !"
-#: authentik/core/sources/flow_manager.py:239
+#: authentik/core/sources/flow_manager.py:295
#, python-format
msgid "Successfully linked %(source)s!"
-msgstr "成功链接 %(source)s!"
+msgstr "成功連結 %(source)s!"
-#: authentik/core/templates/error/generic.html:27
-msgid "Go to home"
-msgstr "返回主页"
-
-#: authentik/core/templates/if/admin.html:18
-#: authentik/core/templates/if/admin.html:24
-#: authentik/core/templates/if/flow.html:28
-#: authentik/core/templates/if/flow.html:34
-#: authentik/core/templates/if/user.html:18
-#: authentik/core/templates/if/user.html:24
-msgid "Loading..."
-msgstr "载入中……"
+#: authentik/core/sources/flow_manager.py:314
+msgid "Source is not configured for enrollment."
+msgstr "來源未設定為用於註冊。"
#: authentik/core/templates/if/end_session.html:7
msgid "End session"
-msgstr "结束会话"
+msgstr "結束會談"
#: authentik/core/templates/if/end_session.html:11
#, python-format
@@ -188,17 +274,23 @@ msgid ""
" "
msgstr ""
"\n"
-"您已成功登出 %(application)s 。 现在你可以返回总览并运行其他程序,或者登出的你的 authentik 账户。"
+"您已成功登出 %(application)s 。 現在您可以返回總覽並啟動其他應用程式,或者登出您的 authentik 帳戶。"
-#: authentik/core/templates/if/end_session.html:24
+#: authentik/core/templates/if/end_session.html:25
msgid "Go back to overview"
-msgstr "返回总览"
+msgstr "返回總覽"
-#: authentik/core/templates/if/end_session.html:26
-msgid "Log out of authentik"
-msgstr "登出 authentik"
+#: authentik/core/templates/if/end_session.html:29
+#, python-format
+msgid ""
+"\n"
+" Log out of %(branding_title)s\n"
+" "
+msgstr ""
+"\n"
+" 從 %(branding_title)s 登出"
-#: authentik/core/templates/if/end_session.html:30
+#: authentik/core/templates/if/end_session.html:36
#, python-format
msgid ""
"\n"
@@ -209,381 +301,585 @@ msgstr ""
" 重新登入 %(application)s\n"
" "
-#: authentik/core/templates/login/base_full.html:65
+#: authentik/core/templates/if/error.html:18
+msgid "Go home"
+msgstr "回到首頁"
+
+#: authentik/core/templates/login/base_full.html:89
msgid "Powered by authentik"
-msgstr "由 authentik 强力驱动"
+msgstr "由 authentik 技術支援"
-#: authentik/crypto/api.py:132
+#: authentik/core/views/apps.py:53
+#: authentik/providers/oauth2/views/authorize.py:393
+#: authentik/providers/oauth2/views/device_init.py:70
+#: authentik/providers/saml/views/sso.py:70
+#, python-format
+msgid "You're about to sign into %(application)s."
+msgstr "您即將登入 %(application)s。"
+
+#: authentik/crypto/api.py:179
msgid "Subject-alt name"
-msgstr "替代名称"
+msgstr "替代名稱"
-#: authentik/crypto/models.py:34
+#: authentik/crypto/models.py:30
msgid "PEM-encoded Certificate data"
-msgstr "PEM 编码的证书数据"
+msgstr "PEM 編碼的憑證資料"
-#: authentik/crypto/models.py:37
+#: authentik/crypto/models.py:33
msgid ""
"Optional Private Key. If this is set, you can use this keypair for "
"encryption."
-msgstr "可选私钥。如果设置了此设置,则可以使用此密钥对进行加密。"
-
-#: authentik/crypto/models.py:100
-msgid "Certificate-Key Pair"
-msgstr "证书密钥对"
+msgstr "可選:私鑰。如果設定了此選項,則可以使用此金鑰對進行加密。"
#: authentik/crypto/models.py:101
+msgid "Certificate-Key Pair"
+msgstr "憑證金鑰對"
+
+#: authentik/crypto/models.py:102
msgid "Certificate-Key Pairs"
-msgstr "证书密钥对"
+msgstr "憑證金鑰對"
-#: authentik/crypto/tasks.py:93
-#, python-format
-msgid "Successfully imported %(count)d files."
-msgstr "已成功导入 %(count)d 个文件。"
+#: authentik/enterprise/models.py:193
+msgid "License Usage"
+msgstr "授權使用情況"
-#: authentik/events/models.py:285
+#: authentik/enterprise/models.py:194
+msgid "License Usage Records"
+msgstr "授權使用紀錄"
+
+#: authentik/events/models.py:290
msgid "Event"
msgstr "事件"
-#: authentik/events/models.py:286
+#: authentik/events/models.py:291
msgid "Events"
msgstr "事件"
-#: authentik/events/models.py:292
+#: authentik/events/models.py:297
+msgid "authentik inbuilt notifications"
+msgstr "authentik 內建通知功能"
+
+#: authentik/events/models.py:298
msgid "Generic Webhook"
msgstr "通用 Webhook"
-#: authentik/events/models.py:293
+#: authentik/events/models.py:299
msgid "Slack Webhook (Slack/Discord)"
msgstr "Slack Webhook(Slack/Discord)"
-#: authentik/events/models.py:294
+#: authentik/events/models.py:300
msgid "Email"
-msgstr "电子邮箱"
+msgstr "電子郵件"
-#: authentik/events/models.py:312
+#: authentik/events/models.py:318
msgid ""
"Only send notification once, for example when sending a webhook into a chat "
"channel."
-msgstr "仅发送一次通知,例如在向聊天频道发送 Webhook 时。"
+msgstr "僅發送一次通知,例如在向聊天頻道發送 Webhook 時。"
-#: authentik/events/models.py:357
+#: authentik/events/models.py:383
msgid "Severity"
-msgstr "严重程度"
+msgstr "嚴重程度"
-#: authentik/events/models.py:362
+#: authentik/events/models.py:388
msgid "Dispatched for user"
-msgstr "为用户分派"
+msgstr "為使用者分派"
-#: authentik/events/models.py:439
+#: authentik/events/models.py:397
+msgid "Event user"
+msgstr "事件使用者"
+
+#: authentik/events/models.py:491
msgid "Notification Transport"
-msgstr "通知传输"
+msgstr "通知通道"
-#: authentik/events/models.py:440
+#: authentik/events/models.py:492
msgid "Notification Transports"
-msgstr "通知传输"
+msgstr "通知通道"
-#: authentik/events/models.py:446
+#: authentik/events/models.py:498
msgid "Notice"
msgstr "注意"
-#: authentik/events/models.py:447
+#: authentik/events/models.py:499
msgid "Warning"
msgstr "警告"
-#: authentik/events/models.py:448
+#: authentik/events/models.py:500
msgid "Alert"
-msgstr "注意"
+msgstr "警報"
-#: authentik/events/models.py:468
+#: authentik/events/models.py:525
msgid "Notification"
msgstr "通知"
-#: authentik/events/models.py:469
+#: authentik/events/models.py:526
msgid "Notifications"
msgstr "通知"
-#: authentik/events/models.py:488
+#: authentik/events/models.py:536
+msgid ""
+"Select which transports should be used to notify the user. If none are "
+"selected, the notification will only be shown in the authentik UI."
+msgstr "選擇使用哪些傳輸通道來通知使用者。如果沒有選擇任何方式,通知將僅在 authentik 使用者介面中顯示。"
+
+#: authentik/events/models.py:544
msgid "Controls which severity level the created notifications will have."
-msgstr "控制被创建的通知的严重性级别。"
+msgstr "控制已建立通知的嚴重性等級。"
-#: authentik/events/models.py:508
+#: authentik/events/models.py:549
+msgid ""
+"Define which group of users this notification should be sent and shown to. "
+"If left empty, Notification won't ben sent."
+msgstr "定義應該向哪個群組的使用者發送和顯示此通知。如果未設定則不會發送通知。"
+
+#: authentik/events/models.py:567
msgid "Notification Rule"
-msgstr "通知规则"
+msgstr "通知規則"
-#: authentik/events/models.py:509
+#: authentik/events/models.py:568
msgid "Notification Rules"
-msgstr "通知规则"
+msgstr "通知規則"
-#: authentik/events/models.py:530
-msgid "Notification Webhook Mapping"
-msgstr "通知 Webhook 映射"
+#: authentik/events/models.py:588
+msgid "Webhook Mapping"
+msgstr "Webhook 對應"
-#: authentik/events/models.py:531
-msgid "Notification Webhook Mappings"
-msgstr "通知 Webhook 映射"
+#: authentik/events/models.py:589
+msgid "Webhook Mappings"
+msgstr "Webhook 對應"
-#: authentik/events/monitored_tasks.py:197
+#: authentik/events/monitored_tasks.py:205
msgid "Task has not been run yet."
-msgstr "任务尚未运行。"
+msgstr "任務尚未執行。"
-#: authentik/flows/api/flows.py:350
+#: authentik/flows/api/flows.py:295
#, python-format
msgid "Flow not applicable to current user/request: %(messages)s"
-msgstr "Flow不适用于当前用户/请求: %(messages)s"
+msgstr "流程不適用於當前使用者或請求: %(messages)s"
-#: authentik/flows/models.py:107
-msgid "Visible in the URL."
-msgstr "在 URL 中可见。"
+#: authentik/flows/api/flows_diagram.py:68
+#: authentik/flows/api/flows_diagram.py:94
+#, python-format
+msgid "Policy (%(type)s)"
+msgstr "政策(%(type)s)"
-#: authentik/flows/models.py:109
-msgid "Shown as the Title in Flow pages."
-msgstr "显示为 “Flow” 页面中的标题。"
+#: authentik/flows/api/flows_diagram.py:71
+#, python-format
+msgid "Binding %(order)d"
+msgstr "附加%(order)d"
-#: authentik/flows/models.py:126
-msgid "Background shown during execution"
-msgstr "执行时的背景"
+#: authentik/flows/api/flows_diagram.py:118
+msgid "Policy passed"
+msgstr "政策已通過"
-#: authentik/flows/models.py:133
-msgid ""
-"Enable compatibility mode, increases compatibility with password managers on"
-" mobile devices."
-msgstr "启用兼容模式,增加与移动设备上密码管理器的兼容性。"
+#: authentik/flows/api/flows_diagram.py:122
+#, python-format
+msgid "Stage (%(type)s)"
+msgstr "階段(%(type)s)"
-#: authentik/flows/models.py:178
+#: authentik/flows/api/flows_diagram.py:146
+#: authentik/flows/api/flows_diagram.py:206
+msgid "Policy denied"
+msgstr "政策被拒"
+
+#: authentik/flows/api/flows_diagram.py:156
+#: authentik/flows/api/flows_diagram.py:168
+#: authentik/flows/api/flows_diagram.py:205
+#: authentik/flows/api/flows_diagram.py:227
+msgid "End of the flow"
+msgstr "流程的結束點"
+
+#: authentik/flows/api/flows_diagram.py:169
+msgid "Requirement not fulfilled"
+msgstr "需求未滿足"
+
+#: authentik/flows/api/flows_diagram.py:177
+msgid "Flow authentication requirement"
+msgstr "流程身份驗證要求"
+
+#: authentik/flows/api/flows_diagram.py:183
+msgid "Requirement fulfilled"
+msgstr "需求已滿足"
+
+#: authentik/flows/api/flows_diagram.py:196
+msgid "Pre-flow policies"
+msgstr "在流程之前的政策"
+
+#: authentik/flows/api/flows_diagram.py:214 authentik/flows/models.py:193
msgid "Flow"
msgstr "流程"
-#: authentik/flows/models.py:179
+#: authentik/flows/exceptions.py:19
+msgid "Flow does not apply to current user."
+msgstr "流程並未套用到目前的使用者。"
+
+#: authentik/flows/models.py:114
+#, python-format
+msgid "Dynamic In-memory stage: %(doc)s"
+msgstr "動態記憶體內儲存階段:%(doc)s"
+
+#: authentik/flows/models.py:129
+msgid "Visible in the URL."
+msgstr "在網址列中可見。"
+
+#: authentik/flows/models.py:131
+msgid "Shown as the Title in Flow pages."
+msgstr "做為在「流程」分頁中的標題。"
+
+#: authentik/flows/models.py:138
+msgid ""
+"Decides what this Flow is used for. For example, the Authentication flow is "
+"redirect to when an un-authenticated user visits authentik."
+msgstr "決定此流程用於何種目的。例如,當未經驗證的使用者存取 authentik 時,會重新導向到身份驗證流程。"
+
+#: authentik/flows/models.py:147
+msgid "Background shown during execution"
+msgstr "執行時顯示的背景"
+
+#: authentik/flows/models.py:154
+msgid ""
+"Enable compatibility mode, increases compatibility with password managers on"
+" mobile devices."
+msgstr "啟用相容模式,增加與行動裝置上密碼管理器的相容性。"
+
+#: authentik/flows/models.py:162
+msgid "Configure what should happen when a flow denies access to a user."
+msgstr "設定當流程拒絕某個使用者存取時,應該發生什麼事情。"
+
+#: authentik/flows/models.py:168
+msgid "Required level of authentication and authorization to access a flow."
+msgstr "存取流程時所需的身份驗證和授權等級。"
+
+#: authentik/flows/models.py:194
msgid "Flows"
msgstr "流程"
-#: authentik/flows/models.py:209
-msgid "Evaluate policies when the Stage is present to the user."
-msgstr "当阶段出现在用户面前时,评估策略。"
+#: authentik/flows/models.py:215
+msgid "Evaluate policies during the Flow planning process."
+msgstr "在流程規劃過程中的評估政策。"
-#: authentik/flows/models.py:216
+#: authentik/flows/models.py:219
+msgid "Evaluate policies when the Stage is present to the user."
+msgstr "當階段出現在使用者面前時的評估政策。"
+
+#: authentik/flows/models.py:226
msgid ""
"Configure how the flow executor should handle an invalid response to a "
"challenge. RETRY returns the error message and a similar challenge to the "
"executor. RESTART restarts the flow from the beginning, and "
"RESTART_WITH_CONTEXT restarts the flow while keeping the current context."
msgstr ""
-"配置流程执行器应如何处理对质询的无效响应。RETRY 向执行器返回错误消息和类似的质询。RESTART 从头开始重新启动流程。 "
-"RESTART_WITH_CONTEXT 在保留当前上下文的同时重新启动流程。"
+"設定流程執行器應如何處理對挑戰的無效回應。RETRY 向執行器回應錯誤訊息和類似的挑戰。RESTART "
+"從頭開始重新啟動流程,RESTART_WITH_CONTEXT 在保留當前上下文的同時重新啟動流程。"
-#: authentik/flows/models.py:240
+#: authentik/flows/models.py:249
msgid "Flow Stage Binding"
-msgstr "流阶段绑定"
+msgstr "流程階段附加"
-#: authentik/flows/models.py:241
+#: authentik/flows/models.py:250
msgid "Flow Stage Bindings"
-msgstr "流阶段绑定"
+msgstr "流程階段附加"
-#: authentik/flows/models.py:291
+#: authentik/flows/models.py:265
+msgid ""
+"Flow used by an authenticated user to configure this Stage. If empty, user "
+"will not be able to configure this stage."
+msgstr "由已認證的使用者用來設定此階段的流程。如果未設定則使用者將無法設定此階段。"
+
+#: authentik/flows/models.py:305
msgid "Flow Token"
-msgstr "流程令牌"
+msgstr "流程權杖"
-#: authentik/flows/models.py:292
+#: authentik/flows/models.py:306
msgid "Flow Tokens"
-msgstr "流程令牌"
+msgstr "流程權杖"
-#: authentik/flows/templates/flows/error.html:12
-msgid "Whoops!"
-msgstr "噢!"
-
-#: authentik/flows/templates/flows/error.html:17
-msgid "Something went wrong! Please try again later."
-msgstr "发生错误,请稍后重试。"
-
-#: authentik/lib/utils/time.py:24
+#: authentik/lib/utils/time.py:27
#, python-format
msgid "%(value)s is not in the correct format of 'hours=3;minutes=1'."
-msgstr "%(value)s 的格式不正确,应为 'hours=3;minutes=1'。"
+msgstr "%(value)s 不符合 'hours=3;minutes=1' 的正確格式。"
-#: authentik/managed/models.py:12
-msgid "Managed by authentik"
-msgstr "由 authentik 管理"
-
-#: authentik/outposts/api/service_connections.py:131
+#: authentik/outposts/api/service_connections.py:127
msgid ""
"You can only use an empty kubeconfig when connecting to a local cluster."
-msgstr "你只能在连接到本地集群时使用空的 kubeconfig。"
+msgstr "您只能在連接到本機叢集時使用空的 kubeconfig。"
-#: authentik/outposts/api/service_connections.py:139
+#: authentik/outposts/api/service_connections.py:135
msgid "Invalid kubeconfig"
-msgstr "无效 Kubeconfig "
+msgstr "無效的 kubeconfig"
-#: authentik/outposts/models.py:151
-msgid "Outpost Service-Connection"
-msgstr "Outpost Service-连接"
+#: authentik/outposts/models.py:122
+msgid ""
+"If enabled, use the local connection. Required Docker socket/Kubernetes "
+"Integration"
+msgstr "如果啟用將使用本機連線。需要 Docker socket / Kubernetes 整合。"
#: authentik/outposts/models.py:152
-msgid "Outpost Service-Connections"
-msgstr "Outpost Service-连接"
+msgid "Outpost Service-Connection"
+msgstr "Outpost 服務連線"
-#: authentik/outposts/models.py:188
+#: authentik/outposts/models.py:153
+msgid "Outpost Service-Connections"
+msgstr "Outpost 服務連線"
+
+#: authentik/outposts/models.py:161
+msgid ""
+"Can be in the format of 'unix://' when connecting to a local docker "
+"daemon, or 'https://:2376' when connecting to a remote system."
+msgstr ""
+"當連接到本地 Docker 常駐程式時,將會是 'unix://' 的格式,當連接到遠端系統時,將會是 "
+"'https://:2376' 的格式。"
+
+#: authentik/outposts/models.py:173
+msgid ""
+"CA which the endpoint's Certificate is verified against. Can be left empty "
+"for no validation."
+msgstr "用於驗證端點憑證的 CA(數位憑證認證機構)。若不需要驗證,可以留空。"
+
+#: authentik/outposts/models.py:185
msgid ""
"Certificate/Key used for authentication. Can be left empty for no "
"authentication."
-msgstr "用于身份验证的证书/密钥。可以留空,留空表示不进行身份验证。"
+msgstr "用於身份驗證的憑證/金鑰。可以留空表示不進行身份驗證。"
-#: authentik/outposts/models.py:201
+#: authentik/outposts/models.py:203
msgid "Docker Service-Connection"
-msgstr "Docker服务连接"
+msgstr "Docker 服務連線"
-#: authentik/outposts/models.py:202
+#: authentik/outposts/models.py:204
msgid "Docker Service-Connections"
-msgstr "Docker服务连接"
+msgstr "Docker 服務連線"
-#: authentik/outposts/models.py:227
+#: authentik/outposts/models.py:212
+msgid ""
+"Paste your kubeconfig here. authentik will automatically use the currently "
+"selected context."
+msgstr "在這裡貼上您的 kubeconfig。authentik 將自動使用當前選定的上下文。"
+
+#: authentik/outposts/models.py:218
+msgid "Verify SSL Certificates of the Kubernetes API endpoint"
+msgstr "驗證 Kubernetes API 端點的 SSL 憑證"
+
+#: authentik/outposts/models.py:235
msgid "Kubernetes Service-Connection"
-msgstr "Kubernetes 服务连接"
+msgstr "Kubernetes 服務連線"
-#: authentik/outposts/models.py:228
+#: authentik/outposts/models.py:236
msgid "Kubernetes Service-Connections"
-msgstr "Kubernetes 服务连接"
+msgstr "Kubernetes 服務連線"
+
+#: authentik/outposts/models.py:252
+msgid ""
+"Select Service-Connection authentik should use to manage this outpost. Leave"
+" empty if authentik should not handle the deployment."
+msgstr "選擇 authentik 用於管理此前哨站的服務連線。請留空如果 authentik 不應處理此部署。"
#: authentik/policies/denied.py:24
msgid "Access denied"
-msgstr "访问被拒绝"
+msgstr "存取被拒"
+
+#: authentik/policies/dummy/models.py:44
+msgid "Dummy Policy"
+msgstr "假政策"
#: authentik/policies/dummy/models.py:45
-msgid "Dummy Policy"
-msgstr "虚拟策略"
-
-#: authentik/policies/dummy/models.py:46
msgid "Dummy Policies"
-msgstr "虚拟策略"
+msgstr "假政策"
-#: authentik/policies/event_matcher/models.py:80
+#: authentik/policies/event_matcher/api.py:20
+#: authentik/policies/event_matcher/models.py:56
+msgid ""
+"Match events created by selected application. When left empty, all "
+"applications are matched."
+msgstr "將選擇的應用程式與建立的事件配對。如果為空則將符合所有應用程式。"
+
+#: authentik/policies/event_matcher/api.py:29
+#: authentik/policies/event_matcher/models.py:64
+msgid ""
+"Match events created by selected model. When left empty, all models are "
+"matched. When an app is selected, all the application's models are matched."
+msgstr "將選擇的模型與建立的事件配對。如果為空則將符合所有模型。如果選擇了某一個應用程式,則會配對該應用程式下所有模型的事件。"
+
+#: authentik/policies/event_matcher/api.py:42
+msgid "At least one criteria must be set."
+msgstr "必須設定至少一個條件。"
+
+#: authentik/policies/event_matcher/models.py:48
+msgid ""
+"Match created events with this action type. When left empty, all action "
+"types will be matched."
+msgstr "將此動作類型與建立的事件配對。如果為空則將符合所有動作類型。"
+
+#: authentik/policies/event_matcher/models.py:73
+msgid ""
+"Matches Event's Client IP (strict matching, for network matching use an "
+"Expression Policy)"
+msgstr "匹配事件的客戶端 IP(嚴格配對,若需進行網路層級配對,請使用表達式政策)"
+
+#: authentik/policies/event_matcher/models.py:143
msgid "Event Matcher Policy"
-msgstr "事件匹配策略"
+msgstr "事件配對政策"
-#: authentik/policies/event_matcher/models.py:81
+#: authentik/policies/event_matcher/models.py:144
msgid "Event Matcher Policies"
-msgstr "事件匹配策略"
+msgstr "事件配對政策"
-#: authentik/policies/expiry/models.py:46
-msgid "days"
-msgstr "天"
+#: authentik/policies/expiry/models.py:45
+#, python-format
+msgid "Password expired %(days)d days ago. Please update your password."
+msgstr "您的密碼在%(days)d天前已過期。請更新您的密碼。"
#: authentik/policies/expiry/models.py:49
msgid "Password has expired."
-msgstr "密码已过期。"
+msgstr "密碼已過期。"
+
+#: authentik/policies/expiry/models.py:53
+msgid "Password Expiry Policy"
+msgstr "密碼到期政策"
#: authentik/policies/expiry/models.py:54
-msgid "Password Expiry Policy"
-msgstr "密码过期策略"
-
-#: authentik/policies/expiry/models.py:55
msgid "Password Expiry Policies"
-msgstr "密码过期策略"
+msgstr "密碼到期政策"
+
+#: authentik/policies/expression/models.py:40
+msgid "Expression Policy"
+msgstr "表達式政策"
#: authentik/policies/expression/models.py:41
-msgid "Expression Policy"
-msgstr "表达策略"
-
-#: authentik/policies/expression/models.py:42
msgid "Expression Policies"
-msgstr "表达策略"
+msgstr "表達式政策"
-#: authentik/policies/hibp/models.py:22
-#: authentik/policies/password/models.py:24
-msgid "Field key to check, field keys defined in Prompt stages are available."
-msgstr "要检查的字段键,提示阶段中定义的字段键可用。"
-
-#: authentik/policies/hibp/models.py:47
-#: authentik/policies/password/models.py:57
-msgid "Password not set in context"
-msgstr "未在上下文中设置密码"
-
-#: authentik/policies/hibp/models.py:60
-#, python-format
-msgid "Password exists on %(count)d online lists."
-msgstr "在线列表%(count)d 中存在密码。"
-
-#: authentik/policies/hibp/models.py:66
-msgid "Have I Been Pwned Policy"
-msgstr "我被控制了吗政策"
-
-#: authentik/policies/hibp/models.py:67
-msgid "Have I Been Pwned Policies"
-msgstr "我被控制了吗政策"
+#: authentik/policies/models.py:22
+msgid "all, all policies must pass"
+msgstr "all, all 政策必須通過"
#: authentik/policies/models.py:23
-msgid "ALL, all policies must pass"
-msgstr "全部,必须通过所有策略"
-
-#: authentik/policies/models.py:25
-msgid "ANY, any policy must pass"
-msgstr "任意,任一策略通过"
-
-#: authentik/policies/models.py:45
-msgid "Policy Binding Model"
-msgstr "策略绑定模型"
+msgid "any, any policy must pass"
+msgstr "any, any 政策必須通過"
#: authentik/policies/models.py:46
+msgid "Policy Binding Model"
+msgstr "政策附加模型"
+
+#: authentik/policies/models.py:47
msgid "Policy Binding Models"
-msgstr "策略绑定模型"
+msgstr "政策附加模型"
-#: authentik/policies/models.py:85
+#: authentik/policies/models.py:86
msgid "Negates the outcome of the policy. Messages are unaffected."
-msgstr "否定政策的结果。消息不受影响。"
+msgstr "否定政策的結果。訊息不受影響。"
-#: authentik/policies/models.py:88
+#: authentik/policies/models.py:89
msgid "Timeout after which Policy execution is terminated."
-msgstr "超时后,策略执行将终止。"
+msgstr "逾時後,政策的執行將終止。"
-#: authentik/policies/models.py:141
+#: authentik/policies/models.py:92
+msgid "Result if the Policy execution fails."
+msgstr "如果政策執行失敗的結果。"
+
+#: authentik/policies/models.py:145
msgid "Policy Binding"
-msgstr "策略绑定"
+msgstr "政策附加"
-#: authentik/policies/models.py:142
+#: authentik/policies/models.py:146
msgid "Policy Bindings"
-msgstr "策略绑定"
+msgstr "政策附加"
-#: authentik/policies/models.py:181
+#: authentik/policies/models.py:167
+msgid ""
+"When this option is enabled, all executions of this policy will be logged. "
+"By default, only execution errors are logged."
+msgstr "當啟用此選項時,將記錄此政策的所有執行操作。預設情況下,僅記錄執行錯誤。"
+
+#: authentik/policies/models.py:189
msgid "Policy"
-msgstr "策略"
+msgstr "政策"
-#: authentik/policies/models.py:182
+#: authentik/policies/models.py:190
msgid "Policies"
-msgstr "策略"
+msgstr "政策"
-#: authentik/policies/password/models.py:89
+#: authentik/policies/password/models.py:27
+msgid "Field key to check, field keys defined in Prompt stages are available."
+msgstr "要檢查的欄位鍵,在提示階段中有可用的已定義欄位鍵。"
+
+#: authentik/policies/password/models.py:44
+msgid "How many times the password hash is allowed to be on haveibeenpwned"
+msgstr "密碼雜湊在 haveibeenpwned 上允許出現的次數"
+
+#: authentik/policies/password/models.py:49
+msgid ""
+"If the zxcvbn score is equal or less than this value, the policy will fail."
+msgstr "如果 zxcvbn 分數等於或小於此值,則該政策將失敗。"
+
+#: authentik/policies/password/models.py:72
+msgid "Password not set in context"
+msgstr "未在上下文中設定密碼"
+
+#: authentik/policies/password/models.py:134
+#, python-format
+msgid "Password exists on %(count)d online lists."
+msgstr "密碼存在於線上清單%(count)d 中。"
+
+#: authentik/policies/password/models.py:154
+msgid "Password is too weak."
+msgstr "密碼強度太弱。"
+
+#: authentik/policies/password/models.py:162
msgid "Password Policy"
-msgstr "密码策略"
+msgstr "密碼政策"
-#: authentik/policies/password/models.py:90
+#: authentik/policies/password/models.py:163
msgid "Password Policies"
-msgstr "密码策略"
+msgstr "密碼政策"
-#: authentik/policies/reputation/models.py:54
+#: authentik/policies/reputation/api.py:18
+msgid "Either IP or Username must be checked"
+msgstr "至少選取IP或使用者名稱其一"
+
+#: authentik/policies/reputation/models.py:67
msgid "Reputation Policy"
-msgstr "信誉政策"
+msgstr "信譽政策"
-#: authentik/policies/reputation/models.py:55
+#: authentik/policies/reputation/models.py:68
msgid "Reputation Policies"
-msgstr "信誉政策"
+msgstr "信譽政策"
+
+#: authentik/policies/reputation/models.py:95
+msgid "Reputation Score"
+msgstr "信譽分數"
+
+#: authentik/policies/reputation/models.py:96
+msgid "Reputation Scores"
+msgstr "信譽分數"
#: authentik/policies/templates/policies/denied.html:7
#: authentik/policies/templates/policies/denied.html:11
msgid "Permission denied"
-msgstr "没有权限。"
+msgstr "權限不足。"
-#: authentik/policies/templates/policies/denied.html:20
+#: authentik/policies/templates/policies/denied.html:21
+msgid "User's avatar"
+msgstr "個人檔案圖片"
+
+#: authentik/policies/templates/policies/denied.html:25
+msgid "Not you?"
+msgstr "不是您嗎?"
+
+#: authentik/policies/templates/policies/denied.html:33
msgid "Request has been denied."
-msgstr "请求被拒绝。"
+msgstr "請求被拒。"
-#: authentik/policies/templates/policies/denied.html:31
+#: authentik/policies/templates/policies/denied.html:44
msgid "Messages:"
-msgstr "消息:"
+msgstr "訊息:"
-#: authentik/policies/templates/policies/denied.html:41
+#: authentik/policies/templates/policies/denied.html:54
msgid "Explanation:"
-msgstr "解释:"
+msgstr "解釋:"
-#: authentik/policies/templates/policies/denied.html:45
+#: authentik/policies/templates/policies/denied.html:58
#, python-format
msgid ""
"\n"
@@ -591,879 +887,1269 @@ msgid ""
" "
msgstr ""
"\n"
-" 策略绑定 '%(name)s' 返回结果 '%(result)s'\n"
+" 附加政策 '%(name)s' 的回傳結果為 '%(result)s'\n"
" "
#: authentik/policies/views.py:68
msgid "Failed to resolve application"
-msgstr "解析应用程序失败"
+msgstr "解析應用程式失敗"
#: authentik/providers/ldap/models.py:25
msgid "DN under which objects are accessible."
-msgstr "在其下可以访问对象的 DN。"
+msgstr "可連接到物件的 DN 位置。"
#: authentik/providers/ldap/models.py:34
msgid ""
"Users in this group can do search queries. If not set, every user can "
"execute search queries."
-msgstr "该组中的用户可以执行搜索查询。如果未设置,则每个用户都可以执行搜索查询。"
+msgstr "該群組中的使用者可以執行搜尋查詢。如果未設定則每個使用者都可以執行搜尋查詢。"
#: authentik/providers/ldap/models.py:53
msgid ""
-"The start for uidNumbers, this number is added to the user.Pk to make sure "
+"The start for uidNumbers, this number is added to the user.pk to make sure "
"that the numbers aren't too low for POSIX users. Default is 2000 to ensure "
"that we don't collide with local users uidNumber"
msgstr ""
-"对于UIDNumbers来说,这个数字被添加到User.pk中,以确保对于POSIX用户来说,这个数字不会太低。默认值为 "
-"2000,以确保我们不会与本地用户 uidNumber 发生冲突"
+"uidNumbers 的起始值,這個數值會和 user.pk 產生的數值相加,以確保 POSIX 使用者編號起始值不會太低。預設值為 "
+"2000,以避免與本機使用者編號 uidNumber 發生衝突。"
#: authentik/providers/ldap/models.py:62
msgid ""
"The start for gidNumbers, this number is added to a number generated from "
-"the group.Pk to make sure that the numbers aren't too low for POSIX groups. "
+"the group.pk to make sure that the numbers aren't too low for POSIX groups. "
"Default is 4000 to ensure that we don't collide with local groups or users "
"primary groups gidNumber"
msgstr ""
-"对于 GIDNumbers 来说,这个数字被添加到从 group.pk 生成的数字中,以确保对于 POSIX 组来说,这个数字不会太低。默认值为 "
-"4000,以确保我们不会与本地组或用户主组 GIDNumber 发生冲突"
+"gidNumbers 的起始值,這個數值會和 group.pk 產生的數值相加,以確保 POSIX 群組編號起始值不會太低。預設值為 "
+"4000,以避免與本機群組或使用者的主要群組編號 gidNumber 發生衝突。"
-#: authentik/providers/ldap/models.py:97
+#: authentik/providers/ldap/models.py:76
+msgid ""
+"When enabled, code-based multi-factor authentication can be used by "
+"appending a semicolon and the TOTP code to the password. This should only be"
+" enabled if all users that will bind to this provider have a TOTP device "
+"configured, as otherwise a password may incorrectly be rejected if it "
+"contains a semicolon."
+msgstr ""
+"當啟用此功能時,可以透過在密碼後加上分號及TOTP授權碼(範例:password:totp授權碼)來使用多重要素驗證。您應只有在所有要連線到此服務的使用者都已設定TOTP裝置的情況下,才啟用此功能。如果用戶的密碼中恰好包含分號,可能會因誤判而被拒絕存取。"
+
+#: authentik/providers/ldap/models.py:108
msgid "LDAP Provider"
-msgstr "LDAP 提供商"
+msgstr "LDAP 供應商"
-#: authentik/providers/ldap/models.py:98
+#: authentik/providers/ldap/models.py:109
msgid "LDAP Providers"
-msgstr "LDAP 提供商"
+msgstr "LDAP 供應商"
-#: authentik/providers/oauth2/models.py:36
-msgid "Confidential"
-msgstr "机密"
-
-#: authentik/providers/oauth2/models.py:37
-msgid "Public"
-msgstr "公开"
-
-#: authentik/providers/oauth2/models.py:51
+#: authentik/providers/oauth2/id_token.py:27
msgid "Based on the Hashed User ID"
-msgstr "基于经过哈希处理的用户 ID"
+msgstr "基於經過雜湊處理的使用者 ID"
-#: authentik/providers/oauth2/models.py:52
+#: authentik/providers/oauth2/id_token.py:28
+msgid "Based on user ID"
+msgstr "基於使用者 ID"
+
+#: authentik/providers/oauth2/id_token.py:29
+msgid "Based on user UUID"
+msgstr "基於使用者 UUID"
+
+#: authentik/providers/oauth2/id_token.py:30
msgid "Based on the username"
-msgstr "基于用户名"
+msgstr "基於使用者名稱"
-#: authentik/providers/oauth2/models.py:55
+#: authentik/providers/oauth2/id_token.py:33
msgid "Based on the User's Email. This is recommended over the UPN method."
-msgstr "基于用户的电子邮件。 建议在 UPN 方法上使用此方法。"
+msgstr "基於使用者的電子郵件。比起使用 UPN 更推薦此方法。"
-#: authentik/providers/oauth2/models.py:71
+#: authentik/providers/oauth2/id_token.py:38
+msgid ""
+"Based on the User's UPN, only works if user has a 'upn' attribute set. Use "
+"this method only if you have different UPN and Mail domains."
+msgstr "基於使用者的 UPN,只有當使用者設定了「upn」特徵項時才有效。只有在您的 UPN 和 Mail 有不同網域時才使用這個方法。"
+
+#: authentik/providers/oauth2/models.py:43
+msgid "Confidential"
+msgstr "機密"
+
+#: authentik/providers/oauth2/models.py:44
+msgid "Public"
+msgstr "公開"
+
+#: authentik/providers/oauth2/models.py:66
msgid "Same identifier is used for all providers"
-msgstr "所有提供商都使用相同的标识符"
+msgstr "所有供應商都使用相同的識別碼"
-#: authentik/providers/oauth2/models.py:73
+#: authentik/providers/oauth2/models.py:68
msgid "Each provider has a different issuer, based on the application slug."
-msgstr "根据应用程序 slug,每个提供商都有不同的颁发者。"
+msgstr "基於應用程式的縮寫,每個供應商都有一個不同的發行者。"
+
+#: authentik/providers/oauth2/models.py:75
+msgid "code (Authorization Code Flow)"
+msgstr "code(授權碼流程)"
+
+#: authentik/providers/oauth2/models.py:76
+msgid "id_token (Implicit Flow)"
+msgstr "id_token(隱式流程)"
+
+#: authentik/providers/oauth2/models.py:77
+msgid "id_token token (Implicit Flow)"
+msgstr "id_token 權杖(隱式流程)"
+
+#: authentik/providers/oauth2/models.py:78
+msgid "code token (Hybrid Flow)"
+msgstr "授權碼權杖(混合流程)"
+
+#: authentik/providers/oauth2/models.py:79
+msgid "code id_token (Hybrid Flow)"
+msgstr "授權碼 id_token(混合流程)"
#: authentik/providers/oauth2/models.py:80
-msgid "code (Authorization Code Flow)"
-msgstr "code(授权码流)"
-
-#: authentik/providers/oauth2/models.py:81
-msgid "id_token (Implicit Flow)"
-msgstr "id_token(隐式流)"
-
-#: authentik/providers/oauth2/models.py:82
-msgid "id_token token (Implicit Flow)"
-msgstr "id_token 令牌(隐式流)"
-
-#: authentik/providers/oauth2/models.py:83
-msgid "code token (Hybrid Flow)"
-msgstr "代码令牌(混合流)"
-
-#: authentik/providers/oauth2/models.py:84
-msgid "code id_token (Hybrid Flow)"
-msgstr "code id_token(混合流)"
-
-#: authentik/providers/oauth2/models.py:85
msgid "code id_token token (Hybrid Flow)"
-msgstr "code id_token 令牌(混合流)"
+msgstr "授權碼 id_token 權杖(混合流程)"
-#: authentik/providers/oauth2/models.py:91
+#: authentik/providers/oauth2/models.py:86
msgid "HS256 (Symmetric Encryption)"
-msgstr "HS256(对称加密)"
+msgstr "HS256(對稱加密)"
-#: authentik/providers/oauth2/models.py:92
+#: authentik/providers/oauth2/models.py:87
msgid "RS256 (Asymmetric Encryption)"
-msgstr "RS256(非对称加密)"
+msgstr "RS256(非對稱加密)"
-#: authentik/providers/oauth2/models.py:93
+#: authentik/providers/oauth2/models.py:88
msgid "ES256 (Asymmetric Encryption)"
-msgstr ""
+msgstr "ES256(非對稱加密)"
-#: authentik/providers/oauth2/models.py:99
+#: authentik/providers/oauth2/models.py:94
msgid "Scope used by the client"
-msgstr "客户端使用的作用域(Scope)"
+msgstr "用戶端使用的範疇"
-#: authentik/providers/oauth2/models.py:125
+#: authentik/providers/oauth2/models.py:98
+msgid ""
+"Description shown to the user when consenting. If left empty, the user won't"
+" be informed."
+msgstr "當需要使用者同意時顯示的說明。如果未設定將不會顯示。"
+
+#: authentik/providers/oauth2/models.py:117
msgid "Scope Mapping"
-msgstr "作用域映射"
+msgstr "範疇對應"
-#: authentik/providers/oauth2/models.py:126
+#: authentik/providers/oauth2/models.py:118
msgid "Scope Mappings"
-msgstr "作用域映射"
+msgstr "範疇對應"
-#: authentik/providers/oauth2/models.py:136
+#: authentik/providers/oauth2/models.py:128
msgid "Client Type"
-msgstr "客户端类型"
+msgstr "用戶端類型"
-#: authentik/providers/oauth2/models.py:142
+#: authentik/providers/oauth2/models.py:130
+msgid ""
+"Confidential clients are capable of maintaining the confidentiality of their"
+" credentials. Public clients are incapable"
+msgstr "機密用戶端能夠維護其憑證的機密性。公開用戶端則無法做到這一點。"
+
+#: authentik/providers/oauth2/models.py:137
msgid "Client ID"
-msgstr "客户端 ID"
+msgstr "用戶端 ID"
-#: authentik/providers/oauth2/models.py:148
+#: authentik/providers/oauth2/models.py:143
msgid "Client Secret"
-msgstr "客户端密钥"
+msgstr "用戶端金鑰"
-#: authentik/providers/oauth2/models.py:154
+#: authentik/providers/oauth2/models.py:149
msgid "Redirect URIs"
-msgstr "重定向 URI"
+msgstr "重新導向 URI"
+
+#: authentik/providers/oauth2/models.py:150
+msgid "Enter each URI on a new line."
+msgstr "每行輸入一個網址。"
#: authentik/providers/oauth2/models.py:155
-msgid "Enter each URI on a new line."
-msgstr "每行输入一个URL。"
-
-#: authentik/providers/oauth2/models.py:160
msgid "Include claims in id_token"
-msgstr "在 id_token 中包含声明"
+msgstr "在 id_token 中包含身分聲明"
-#: authentik/providers/oauth2/models.py:208
-msgid "RSA Key"
-msgstr "RSA 密钥"
+#: authentik/providers/oauth2/models.py:157
+msgid ""
+"Include User claims from scopes in the id_token, for applications that don't"
+" access the userinfo endpoint."
+msgstr "對於那些不存取 userinfo 端點的應用程式,在 id_token 中將包含來自範疇的使用者身分聲明。"
-#: authentik/providers/oauth2/models.py:212
+#: authentik/providers/oauth2/models.py:166
+msgid ""
+"Access codes not valid on or after current time + this value (Format: "
+"hours=1;minutes=2;seconds=3)."
+msgstr "存取授權碼在當前時間加上此值後並非有效(格式:hours=1;minutes=2;seconds=3)。"
+
+#: authentik/providers/oauth2/models.py:174
+#: authentik/providers/oauth2/models.py:182
+msgid ""
+"Tokens not valid on or after current time + this value (Format: "
+"hours=1;minutes=2;seconds=3)."
+msgstr "權杖在當前時間加上此值後並非有效(格式:hours=1;minutes=2;seconds=3)。"
+
+#: authentik/providers/oauth2/models.py:191
+msgid ""
+"Configure what data should be used as unique User Identifier. For most "
+"cases, the default should be fine."
+msgstr "設定應該使用哪些資料作為唯一的使用者識別碼。在大多數情況下使用預設值即可。 "
+
+#: authentik/providers/oauth2/models.py:198
+msgid "Configure how the issuer field of the ID Token should be filled."
+msgstr "設定該如何填寫 ID 權杖的發行者欄位。"
+
+#: authentik/providers/oauth2/models.py:203
+msgid "Signing Key"
+msgstr "簽署金鑰"
+
+#: authentik/providers/oauth2/models.py:207
msgid ""
"Key used to sign the tokens. Only required when JWT Algorithm is set to "
"RS256."
-msgstr "用于对令牌进行签名的密钥。仅当JWT算法设置为 RS256 时才需要。"
+msgstr "用於對權杖進行簽署的金鑰。僅當 JWT 雜湊演算法設定為 RS256 時才需要。"
-#: authentik/providers/oauth2/models.py:291
+#: authentik/providers/oauth2/models.py:214
+msgid ""
+"Any JWT signed by the JWK of the selected source can be used to "
+"authenticate."
+msgstr "任何由選擇的 JWK 來源所簽署的 JWT 都可以用來進行身份驗證。"
+
+#: authentik/providers/oauth2/models.py:287
msgid "OAuth2/OpenID Provider"
-msgstr "OAuth2/OpenID 提供商"
+msgstr "OAuth2/OpenID 供應商"
-#: authentik/providers/oauth2/models.py:292
+#: authentik/providers/oauth2/models.py:288
msgid "OAuth2/OpenID Providers"
-msgstr "OAuth2/OpenID 提供商"
+msgstr "OAuth2/OpenID 供應商"
-#: authentik/providers/oauth2/models.py:300
+#: authentik/providers/oauth2/models.py:297
+#: authentik/providers/oauth2/models.py:429
msgid "Scopes"
-msgstr "范围"
+msgstr "範疇"
-#: authentik/providers/oauth2/models.py:319
+#: authentik/providers/oauth2/models.py:316
msgid "Code"
-msgstr "代码"
+msgstr "授權碼"
+
+#: authentik/providers/oauth2/models.py:317
+msgid "Nonce"
+msgstr "Nonce(單次使用隨機亂數)"
+
+#: authentik/providers/oauth2/models.py:318
+msgid "Code Challenge"
+msgstr "授權碼驗證挑戰"
#: authentik/providers/oauth2/models.py:320
-msgid "Nonce"
-msgstr "Nonce"
-
-#: authentik/providers/oauth2/models.py:321
-msgid "Is Authentication?"
-msgstr "是身份验证吗?"
-
-#: authentik/providers/oauth2/models.py:322
-msgid "Code Challenge"
-msgstr "代码质询"
-
-#: authentik/providers/oauth2/models.py:324
msgid "Code Challenge Method"
-msgstr "代码质询方法"
+msgstr "授權碼驗證挑戰方法"
-#: authentik/providers/oauth2/models.py:338
+#: authentik/providers/oauth2/models.py:340
msgid "Authorization Code"
-msgstr "授权码"
+msgstr "授權碼"
-#: authentik/providers/oauth2/models.py:339
+#: authentik/providers/oauth2/models.py:341
msgid "Authorization Codes"
-msgstr "授权码"
-
-#: authentik/providers/oauth2/models.py:382
-msgid "Access Token"
-msgstr "访问令牌"
+msgstr "授權碼"
#: authentik/providers/oauth2/models.py:383
-msgid "Refresh Token"
-msgstr "刷新令牌"
+msgid "OAuth2 Access Token"
+msgstr "OAuth2 存取權杖"
#: authentik/providers/oauth2/models.py:384
+msgid "OAuth2 Access Tokens"
+msgstr "OAuth2 存取權杖"
+
+#: authentik/providers/oauth2/models.py:394
msgid "ID Token"
-msgstr "ID 令牌"
+msgstr "ID 權杖"
-#: authentik/providers/oauth2/models.py:387
-msgid "OAuth2 Token"
-msgstr "OAuth2 令牌"
+#: authentik/providers/oauth2/models.py:413
+msgid "OAuth2 Refresh Token"
+msgstr "OAuth2 更新權杖"
-#: authentik/providers/oauth2/models.py:388
-msgid "OAuth2 Tokens"
-msgstr "OAuth2 令牌"
+#: authentik/providers/oauth2/models.py:414
+msgid "OAuth2 Refresh Tokens"
+msgstr "OAuth2 更新權杖"
-#: authentik/providers/oauth2/views/authorize.py:458
-#: authentik/providers/saml/views/sso.py:69
+#: authentik/providers/oauth2/models.py:441
+msgid "Device Token"
+msgstr "裝置權杖"
+
+#: authentik/providers/oauth2/models.py:442
+msgid "Device Tokens"
+msgstr "裝置權杖"
+
+#: authentik/providers/oauth2/views/authorize.py:448
+#: authentik/providers/saml/views/flows.py:87
#, python-format
-msgid "You're about to sign into %(application)s."
-msgstr "你即将登入 %(application)s。"
+msgid "Redirecting to %(app)s..."
+msgstr "重新導向到%(app)s..."
-#: authentik/providers/proxy/models.py:52
+#: authentik/providers/oauth2/views/device_init.py:151
+msgid "Invalid code"
+msgstr "無效的授權碼"
+
+#: authentik/providers/oauth2/views/userinfo.py:55
+#: authentik/providers/oauth2/views/userinfo.py:56
+msgid "GitHub Compatibility: Access your User Information"
+msgstr "GitHub 相容性:存取您的使用者資訊"
+
+#: authentik/providers/oauth2/views/userinfo.py:57
+msgid "GitHub Compatibility: Access you Email addresses"
+msgstr "GitHub 相容性:存取您的電子郵件地址"
+
+#: authentik/providers/oauth2/views/userinfo.py:58
+msgid "GitHub Compatibility: Access your Groups"
+msgstr "GitHub 相容性:存取您的群組"
+
+#: authentik/providers/oauth2/views/userinfo.py:59
+msgid "authentik API Access on behalf of your user"
+msgstr "代表您的使用者存取 authentik API"
+
+#: authentik/providers/proxy/api.py:52
+msgid "User and password attributes must be set when basic auth is enabled."
+msgstr "啟用基本認證時必須設定使用者和密碼特徵項。"
+
+#: authentik/providers/proxy/api.py:63
+msgid "Internal host cannot be empty when forward auth is disabled."
+msgstr "當禁用轉發認證時,內部主機不能為空。"
+
+#: authentik/providers/proxy/models.py:54
msgid "Validate SSL Certificates of upstream servers"
-msgstr "验证上游服务器的 SSL 证书"
+msgstr "驗證上游伺服器的 SSL 憑證"
-#: authentik/providers/proxy/models.py:53
+#: authentik/providers/proxy/models.py:55
msgid "Internal host SSL Validation"
-msgstr "内部主机 SSL 验证"
+msgstr "內部主機 SSL 驗證"
-#: authentik/providers/proxy/models.py:59
+#: authentik/providers/proxy/models.py:61
msgid ""
"Enable support for forwardAuth in traefik and nginx auth_request. Exclusive "
"with internal_host."
-msgstr "在 traefik 和 nginx auth_request 中启用对 ForwardAuth 的支持。internal_host 独有。"
+msgstr ""
+"啟用在 traefik 和 nginx auth_request 中對 ForwardAuth 的支援。只在 internal_host 可使用。"
-#: authentik/providers/proxy/models.py:77
+#: authentik/providers/proxy/models.py:70
+msgid ""
+"Regular expressions for which authentication is not required. Each new line "
+"is interpreted as a new Regular Expression."
+msgstr "不需要身份驗證的正規表示式。每一行各都被解釋為一個正規表示式。"
+
+#: authentik/providers/proxy/models.py:78
+msgid ""
+"When enabled, this provider will intercept the authorization header and "
+"authenticate requests based on its value."
+msgstr "當啟用時,此供應商將攔截授權標頭並根據其值對請求進行身份驗證。"
+
+#: authentik/providers/proxy/models.py:84
msgid "Set HTTP-Basic Authentication"
-msgstr "设置 HTTP 基本身份验证"
+msgstr "設定 HTTP 基本身份認證"
-#: authentik/providers/proxy/models.py:79
+#: authentik/providers/proxy/models.py:86
msgid ""
"Set a custom HTTP-Basic Authentication header based on values from "
"authentik."
-msgstr "根据来自 authentik 的值设置自定义 HTTP-Basic 身份验证标头。"
+msgstr "透過 authentik 設定的值客製化 HTTP 基本身份驗證的標頭。"
-#: authentik/providers/proxy/models.py:84
+#: authentik/providers/proxy/models.py:91
msgid "HTTP-Basic Username Key"
-msgstr "HTTP-Basic 用户名密钥"
+msgstr "HTTP 基本身份驗證的使用者名鍵值"
-#: authentik/providers/proxy/models.py:94
+#: authentik/providers/proxy/models.py:93
+msgid ""
+"User/Group Attribute used for the user part of the HTTP-Basic Header. If not"
+" set, the user's Email address is used."
+msgstr "用於 HTTP 基本認證標頭中,使用者區塊中的使用者/群組特徵項。如果未設定則套用使用者的電子郵件地址。"
+
+#: authentik/providers/proxy/models.py:99
msgid "HTTP-Basic Password Key"
-msgstr "HTTP-Basic 密码密钥"
+msgstr "HTTP 基本身份驗證的密碼鍵值"
-#: authentik/providers/proxy/models.py:149
+#: authentik/providers/proxy/models.py:100
+msgid ""
+"User/Group Attribute used for the password part of the HTTP-Basic Header."
+msgstr "用於 HTTP 基本認證標頭中,密碼區塊中的使用者/群組特徵項。"
+
+#: authentik/providers/proxy/models.py:154
msgid "Proxy Provider"
-msgstr "代理提供商"
+msgstr "代理伺服器供應商"
-#: authentik/providers/proxy/models.py:150
+#: authentik/providers/proxy/models.py:155
msgid "Proxy Providers"
-msgstr "代理提供商"
+msgstr "代理伺服器供應商"
-#: authentik/providers/saml/api.py:176
+#: authentik/providers/radius/models.py:18
+msgid "Shared secret between clients and server to hash packets."
+msgstr "用於用戶端與伺服器之間封包雜湊處理的共享金鑰。"
+
+#: authentik/providers/radius/models.py:24
+msgid ""
+"List of CIDRs (comma-separated) that clients can connect from. A more "
+"specific CIDR will match before a looser one. Clients connecting from a non-"
+"specified CIDR will be dropped."
+msgstr ""
+"在其之中的用戶端可以連線的 CIDR 列表(以逗號分隔)。更具體的 CIDR 會在較寬鬆的 CIDR 之前優先套用。來自未指定 CIDR "
+"的用戶端連線將被拒絕。"
+
+#: authentik/providers/radius/models.py:49
+msgid "Radius Provider"
+msgstr "Radius 供應商"
+
+#: authentik/providers/radius/models.py:50
+msgid "Radius Providers"
+msgstr "Radius 供應商"
+
+#: authentik/providers/saml/api/providers.py:257
msgid "Invalid XML Syntax"
-msgstr "XML 语法无效"
+msgstr "無效的 XML 語法"
-#: authentik/providers/saml/api.py:186
+#: authentik/providers/saml/api/providers.py:267
#, python-format
msgid "Failed to import Metadata: %(message)s"
-msgstr "导入元数据失败:%(message)s"
+msgstr "匯入中繼資料失敗:%(message)s"
#: authentik/providers/saml/models.py:38
msgid "ACS URL"
-msgstr "ACS URL"
+msgstr "ACS 網址"
-#: authentik/providers/saml/models.py:49
+#: authentik/providers/saml/models.py:43
+msgid ""
+"Value of the audience restriction field of the assertion. When left empty, "
+"no audience restriction will be added."
+msgstr "斷言的目標對象來源限制欄位的值。當未設定時將不會對任何目標對象進行限制。"
+
+#: authentik/providers/saml/models.py:47
msgid "Also known as EntityID"
-msgstr "也称为 EntityID"
+msgstr "也稱為 EntityID"
+
+#: authentik/providers/saml/models.py:51
+msgid "Service Provider Binding"
+msgstr "服務供應商附加"
#: authentik/providers/saml/models.py:53
-msgid "Service Provider Binding"
-msgstr "服务提供商绑定"
+msgid ""
+"This determines how authentik sends the response back to the Service "
+"Provider."
+msgstr "這決定了 authentik 如何將回應發送回服務供應商。"
+
+#: authentik/providers/saml/models.py:63
+msgid "NameID Property Mapping"
+msgstr "NameID 屬性對應"
#: authentik/providers/saml/models.py:65
-msgid "NameID Property Mapping"
-msgstr "nameID 属性映射"
+msgid ""
+"Configure how the NameID value will be created. When left empty, the "
+"NameIDPolicy of the incoming request will be considered"
+msgstr "設定 NameID 值建立的方式。如果未設定則會使用傳入請求中的 NameIDPolicy。"
-#: authentik/providers/saml/models.py:109 authentik/sources/saml/models.py:128
+#: authentik/providers/saml/models.py:74
+msgid ""
+"Assertion valid not before current time + this value (Format: "
+"hours=-1;minutes=-2;seconds=-3)."
+msgstr "斷言的有效起始時間是當前時間加上此值(格式:hours=-1;minutes=-2;seconds=-3)。"
+
+#: authentik/providers/saml/models.py:82
+msgid ""
+"Assertion not valid on or after current time + this value (Format: "
+"hours=1;minutes=2;seconds=3)."
+msgstr "斷言的有效期限為當前時間加上此值(格式:hours=1;minutes=2;seconds=3)。"
+
+#: authentik/providers/saml/models.py:91
+msgid ""
+"Session not valid on or after current time + this value (Format: "
+"hours=1;minutes=2;seconds=3)."
+msgstr "會談的有效期限是當前時間加上此值(格式:hours=1;minutes=2;seconds=3)。"
+
+#: authentik/providers/saml/models.py:99 authentik/sources/saml/models.py:150
msgid "SHA1"
msgstr "SHA1"
-#: authentik/providers/saml/models.py:110 authentik/sources/saml/models.py:129
+#: authentik/providers/saml/models.py:100 authentik/sources/saml/models.py:151
msgid "SHA256"
msgstr "SHA256"
-#: authentik/providers/saml/models.py:111 authentik/sources/saml/models.py:130
+#: authentik/providers/saml/models.py:101 authentik/sources/saml/models.py:152
msgid "SHA384"
msgstr "SHA384"
-#: authentik/providers/saml/models.py:112 authentik/sources/saml/models.py:131
+#: authentik/providers/saml/models.py:102 authentik/sources/saml/models.py:153
msgid "SHA512"
msgstr "SHA512"
-#: authentik/providers/saml/models.py:119 authentik/sources/saml/models.py:138
+#: authentik/providers/saml/models.py:109 authentik/sources/saml/models.py:160
msgid "RSA-SHA1"
msgstr "RSA-SHA1"
-#: authentik/providers/saml/models.py:120 authentik/sources/saml/models.py:139
+#: authentik/providers/saml/models.py:110 authentik/sources/saml/models.py:161
msgid "RSA-SHA256"
msgstr "RSA-SHA256"
-#: authentik/providers/saml/models.py:121 authentik/sources/saml/models.py:140
+#: authentik/providers/saml/models.py:111 authentik/sources/saml/models.py:162
msgid "RSA-SHA384"
msgstr "RSA-SHA384"
-#: authentik/providers/saml/models.py:122 authentik/sources/saml/models.py:141
+#: authentik/providers/saml/models.py:112 authentik/sources/saml/models.py:163
msgid "RSA-SHA512"
msgstr "RSA-SHA512"
-#: authentik/providers/saml/models.py:123 authentik/sources/saml/models.py:142
+#: authentik/providers/saml/models.py:113 authentik/sources/saml/models.py:164
msgid "DSA-SHA1"
msgstr "DSA-SHA1"
-#: authentik/providers/saml/models.py:140
+#: authentik/providers/saml/models.py:124 authentik/sources/saml/models.py:130
+msgid ""
+"When selected, incoming assertion's Signatures will be validated against "
+"this certificate. To allow unsigned Requests, leave on default."
+msgstr "當選擇後,傳入的斷言簽章將會根據這個憑證進行驗證。若要允許未簽屬的請求,請保留為預設值。"
+
+#: authentik/providers/saml/models.py:128 authentik/sources/saml/models.py:134
msgid "Verification Certificate"
-msgstr "验证证书"
+msgstr "驗證憑證"
-#: authentik/providers/saml/models.py:148
+#: authentik/providers/saml/models.py:136
msgid "Keypair used to sign outgoing Responses going to the Service Provider."
-msgstr "密钥对用于签署发送给服务提供商的外发响应。"
+msgstr "用於簽署傳給服務供應商回應的金鑰對。"
-#: authentik/providers/saml/models.py:150 authentik/sources/saml/models.py:118
+#: authentik/providers/saml/models.py:138 authentik/sources/saml/models.py:144
msgid "Signing Keypair"
-msgstr "签名密钥对"
+msgstr "簽署金鑰對"
-#: authentik/providers/saml/models.py:180
+#: authentik/providers/saml/models.py:167
msgid "SAML Provider"
-msgstr "SAML 提供商"
+msgstr "SAML 供應商"
-#: authentik/providers/saml/models.py:181
+#: authentik/providers/saml/models.py:168
msgid "SAML Providers"
-msgstr "SAML 提供商"
+msgstr "SAML 供應商"
-#: authentik/providers/saml/models.py:206
+#: authentik/providers/saml/models.py:192
msgid "SAML Property Mapping"
-msgstr "SAML 属性映射"
+msgstr "SAML 屬性對應"
-#: authentik/providers/saml/models.py:207
+#: authentik/providers/saml/models.py:193
msgid "SAML Property Mappings"
-msgstr "SAML 属性映射"
+msgstr "SAML 屬性對應"
+
+#: authentik/providers/scim/models.py:20
+msgid "Base URL to SCIM requests, usually ends in /v2"
+msgstr "SCIM 要求中的基礎網址,通常以 /v2 結尾。"
+
+#: authentik/providers/scim/models.py:21
+msgid "Authentication token"
+msgstr "認證權杖"
+
+#: authentik/providers/scim/models.py:27 authentik/sources/ldap/models.py:94
+msgid "Property mappings used for group creation/updating."
+msgstr "用於建立或更新群組的屬性對應。"
+
+#: authentik/providers/scim/models.py:60
+msgid "SCIM Provider"
+msgstr "SCIM 供應商"
+
+#: authentik/providers/scim/models.py:61
+msgid "SCIM Providers"
+msgstr "SCIM 供應商"
+
+#: authentik/providers/scim/models.py:81
+msgid "SCIM Mapping"
+msgstr "SCIM 對應"
+
+#: authentik/providers/scim/models.py:82
+msgid "SCIM Mappings"
+msgstr "SCIM 對應"
+
+#: authentik/providers/scim/tasks.py:52
+msgid "Starting full SCIM sync"
+msgstr "開始完全同步 SCIM"
+
+#: authentik/providers/scim/tasks.py:59
+#, python-format
+msgid "Syncing page %(page)d of users"
+msgstr "同步第 %(page)d 頁中的使用者"
+
+#: authentik/providers/scim/tasks.py:63
+#, python-format
+msgid "Syncing page %(page)d of groups"
+msgstr "同步第 %(page)d 頁中的群組"
+
+#: authentik/providers/scim/tasks.py:92
+#, python-format
+msgid "Failed to sync user %(user_name)s due to remote error: %(error)s"
+msgstr "無法同步使用者 %(user_name)s因發生遠端錯誤:%(error)s"
+
+#: authentik/providers/scim/tasks.py:103 authentik/providers/scim/tasks.py:144
+#, python-format
+msgid "Stopping sync due to error: %(error)s"
+msgstr "停止同步因發生以下錯誤:%(error)s"
+
+#: authentik/providers/scim/tasks.py:133
+#, python-format
+msgid "Failed to sync group %(group_name)s due to remote error: %(error)s"
+msgstr "無法同步群組 %(group_name)s 因發生遠端錯誤:%(error)s"
#: authentik/recovery/management/commands/create_admin_group.py:11
msgid "Create admin group if the default group gets deleted."
-msgstr "如果默认群组被删除,则创建管理员群组。"
+msgstr "如果預設群組被刪除,則建立管理員群組。"
#: authentik/recovery/management/commands/create_recovery_key.py:17
msgid "Create a Key which can be used to restore access to authentik."
-msgstr "创建一个密钥,该密钥可用于恢复对 authentik 的访问权限。"
+msgstr "建立一個金鑰用於恢復對 authentik 的存取權限。"
#: authentik/recovery/views.py:24
msgid "Used recovery-link to authenticate."
-msgstr "已使用恢复链接进行身份验证。"
+msgstr "已使用救援連結進行認證。"
-#: authentik/sources/ldap/models.py:32
+#: authentik/sources/ldap/models.py:37
msgid "Server URI"
-msgstr "服务器 URI"
+msgstr "伺服器 URI"
-#: authentik/sources/ldap/models.py:40
+#: authentik/sources/ldap/models.py:46
msgid ""
"Optionally verify the LDAP Server's Certificate against the CA Chain in this"
" keypair."
-msgstr "可选,根据此密钥对中的 CA 链验证 LDAP 服务器的证书。"
+msgstr "可選:根據此金鑰對中的 CA 鏈來驗證 LDAP 伺服器的憑證。"
-#: authentik/sources/ldap/models.py:45
+#: authentik/sources/ldap/models.py:55
+msgid ""
+"Client certificate to authenticate against the LDAP Server's Certificate."
+msgstr "對 LDAP 伺服器的憑證進行認證的用戶端憑證。"
+
+#: authentik/sources/ldap/models.py:58
msgid "Bind CN"
msgstr "Bind CN"
-#: authentik/sources/ldap/models.py:47
+#: authentik/sources/ldap/models.py:60
msgid "Enable Start TLS"
-msgstr "启用 “启动 TLS”"
+msgstr "啟用 STARTTLS"
-#: authentik/sources/ldap/models.py:49
+#: authentik/sources/ldap/models.py:61
+msgid "Use Server URI for SNI verification"
+msgstr "使用伺服器 URI 進行 SNI 驗證"
+
+#: authentik/sources/ldap/models.py:63
msgid "Base DN"
msgstr "Base DN"
-#: authentik/sources/ldap/models.py:51
+#: authentik/sources/ldap/models.py:65
msgid "Prepended to Base DN for User-queries."
-msgstr "预先添加到用户查询的Base DN 中。"
-
-#: authentik/sources/ldap/models.py:52
-msgid "Addition User DN"
-msgstr "额外的用户 DN"
-
-#: authentik/sources/ldap/models.py:56
-msgid "Prepended to Base DN for Group-queries."
-msgstr "在组查询的基本 Base DN 前面加上。"
-
-#: authentik/sources/ldap/models.py:57
-msgid "Addition Group DN"
-msgstr "额外的 Group DN"
-
-#: authentik/sources/ldap/models.py:63
-msgid "Consider Objects matching this filter to be Users."
-msgstr "将与此筛选器匹配的对象视为用户。"
+msgstr "預先附加到使用者查詢的 Base DN 之前。"
#: authentik/sources/ldap/models.py:66
-msgid "Field which contains members of a group."
-msgstr "包含组成员的字段。"
+msgid "Addition User DN"
+msgstr "額外的使用者 DN"
#: authentik/sources/ldap/models.py:70
-msgid "Consider Objects matching this filter to be Groups."
-msgstr "将与此过滤器匹配的对象视为组。"
+msgid "Prepended to Base DN for Group-queries."
+msgstr "預先附加到群組查詢的 Base DN 之前。"
-#: authentik/sources/ldap/models.py:73
-msgid "Field which contains a unique Identifier."
-msgstr "包含唯一标识符的字段。"
+#: authentik/sources/ldap/models.py:71
+msgid "Addition Group DN"
+msgstr "額外的群組 DN"
+
+#: authentik/sources/ldap/models.py:77
+msgid "Consider Objects matching this filter to be Users."
+msgstr "將符合此過濾條件的物件視為使用者。"
#: authentik/sources/ldap/models.py:80
-msgid "Property mappings used for group creation/updating."
-msgstr "用于创建/更新组的属性映射。"
+msgid "Field which contains members of a group."
+msgstr "包含群組成員的欄位。"
-#: authentik/sources/ldap/models.py:145
+#: authentik/sources/ldap/models.py:84
+msgid "Consider Objects matching this filter to be Groups."
+msgstr "將符合此過濾條件的物件視為群組。"
+
+#: authentik/sources/ldap/models.py:87
+msgid "Field which contains a unique Identifier."
+msgstr "包含唯一識別碼的欄位。"
+
+#: authentik/sources/ldap/models.py:101
+msgid ""
+"When a user changes their password, sync it back to LDAP. This can only be "
+"enabled on a single LDAP source."
+msgstr "當使用者更改密碼時,將其同步回 LDAP。這只能在只有單一 LDAP 來源上啟用。"
+
+#: authentik/sources/ldap/models.py:190
msgid "LDAP Source"
-msgstr "LDAP 源"
+msgstr "LDAP 來源"
-#: authentik/sources/ldap/models.py:146
+#: authentik/sources/ldap/models.py:191
msgid "LDAP Sources"
-msgstr "LDAP 源"
+msgstr "LDAP 來源"
-#: authentik/sources/ldap/models.py:169
+#: authentik/sources/ldap/models.py:213
msgid "LDAP Property Mapping"
-msgstr "LDAP 属性映射"
+msgstr "LDAP 屬性對應"
-#: authentik/sources/ldap/models.py:170
+#: authentik/sources/ldap/models.py:214
msgid "LDAP Property Mappings"
-msgstr "LDAP 属性映射"
+msgstr "LDAP 屬性對應"
-#: authentik/sources/ldap/signals.py:58
+#: authentik/sources/ldap/signals.py:50
msgid "Password does not match Active Directory Complexity."
-msgstr "密码与活动目录复杂度不匹配。"
+msgstr "密碼不符合 Active Directory 的複雜性要求。"
+
+#: authentik/sources/oauth/clients/oauth2.py:68
+msgid "No token received."
+msgstr "未收到權杖。"
#: authentik/sources/oauth/models.py:24
msgid "Request Token URL"
-msgstr "请求令牌网址"
+msgstr "請求權杖的網址"
#: authentik/sources/oauth/models.py:26
msgid ""
"URL used to request the initial token. This URL is only required for OAuth "
"1."
-msgstr "用于请求初始令牌的 URL。只有 OAuth 1 才需要此网址。"
+msgstr "用於請求初始權杖的網址,僅用於 OAuth 1。"
#: authentik/sources/oauth/models.py:32
msgid "Authorization URL"
-msgstr "授权网址"
+msgstr "授權網址"
#: authentik/sources/oauth/models.py:33
msgid "URL the user is redirect to to conest the flow."
-msgstr "用户被重定向到的URL,以控制流程。"
+msgstr "使用者被重新導向到此網址以連接流程。"
#: authentik/sources/oauth/models.py:38
msgid "Access Token URL"
-msgstr "访问令牌 URL"
+msgstr "存取權杖網址"
#: authentik/sources/oauth/models.py:39
msgid "URL used by authentik to retrieve tokens."
-msgstr "authentik 用来检索令牌的 URL。"
+msgstr "authentik 用來擷取權杖的網址。"
#: authentik/sources/oauth/models.py:44
msgid "Profile URL"
-msgstr "个人资料网址"
+msgstr "個人檔案網址"
#: authentik/sources/oauth/models.py:45
msgid "URL used by authentik to get user information."
-msgstr "authentik 用来获取用户信息的 URL。"
+msgstr "authentik 用來擷取使用者資訊的網址。"
-#: authentik/sources/oauth/models.py:97
-msgid "OAuth Source"
-msgstr "OAuth 源"
-
-#: authentik/sources/oauth/models.py:98
-msgid "OAuth Sources"
-msgstr "OAuth 源"
-
-#: authentik/sources/oauth/models.py:107
-msgid "GitHub OAuth Source"
-msgstr "GitHub OAuth 来"
+#: authentik/sources/oauth/models.py:48
+msgid "Additional Scopes"
+msgstr "額外的範疇"
#: authentik/sources/oauth/models.py:108
-msgid "GitHub OAuth Sources"
-msgstr "GitHub OAuth 源"
+msgid "OAuth Source"
+msgstr "OAuth 來源"
+
+#: authentik/sources/oauth/models.py:109
+msgid "OAuth Sources"
+msgstr "OAuth 來源"
#: authentik/sources/oauth/models.py:117
-msgid "Twitter OAuth Source"
-msgstr "Twitter OAuth 源"
+msgid "GitHub OAuth Source"
+msgstr "GitHub OAuth 來源"
#: authentik/sources/oauth/models.py:118
-msgid "Twitter OAuth Sources"
-msgstr "Twitter OAuth 源"
+msgid "GitHub OAuth Sources"
+msgstr "GitHub OAuth 來源"
+
+#: authentik/sources/oauth/models.py:126
+msgid "Twitch OAuth Source"
+msgstr "Twitch OAuth 來源"
#: authentik/sources/oauth/models.py:127
+msgid "Twitch OAuth Sources"
+msgstr "Twitch OAuth 來源"
+
+#: authentik/sources/oauth/models.py:135
+msgid "Mailcow OAuth Source"
+msgstr "Mailcow OAuth 來源"
+
+#: authentik/sources/oauth/models.py:136
+msgid "Mailcow OAuth Sources"
+msgstr "Mailcow OAuth 來源"
+
+#: authentik/sources/oauth/models.py:144
+msgid "Twitter OAuth Source"
+msgstr "X(Twitter) OAuth 來源"
+
+#: authentik/sources/oauth/models.py:145
+msgid "Twitter OAuth Sources"
+msgstr "X(Twitter) OAuth 來源"
+
+#: authentik/sources/oauth/models.py:153
msgid "Facebook OAuth Source"
-msgstr "Facebook OAuth 源"
+msgstr "Facebook OAuth 來源"
-#: authentik/sources/oauth/models.py:128
+#: authentik/sources/oauth/models.py:154
msgid "Facebook OAuth Sources"
-msgstr "Facebook OAuth 源"
+msgstr "Facebook OAuth 來源"
-#: authentik/sources/oauth/models.py:137
+#: authentik/sources/oauth/models.py:162
msgid "Discord OAuth Source"
-msgstr "Discord OAuth 源"
+msgstr "Discord OAuth 來源"
-#: authentik/sources/oauth/models.py:138
+#: authentik/sources/oauth/models.py:163
msgid "Discord OAuth Sources"
-msgstr "Discord OAuth 源"
+msgstr "Discord OAuth 來源"
-#: authentik/sources/oauth/models.py:147
+#: authentik/sources/oauth/models.py:171
+msgid "Patreon OAuth Source"
+msgstr "Patreon OAuth 來源"
+
+#: authentik/sources/oauth/models.py:172
+msgid "Patreon OAuth Sources"
+msgstr "Patreon OAuth 來源"
+
+#: authentik/sources/oauth/models.py:180
msgid "Google OAuth Source"
-msgstr "谷歌 OAuth 源"
+msgstr "Google OAuth 來源"
-#: authentik/sources/oauth/models.py:148
+#: authentik/sources/oauth/models.py:181
msgid "Google OAuth Sources"
-msgstr "谷歌 OAuth 源"
+msgstr "Google OAuth 來源"
-#: authentik/sources/oauth/models.py:157
+#: authentik/sources/oauth/models.py:189
msgid "Azure AD OAuth Source"
-msgstr "Azure AD OAuth 源"
+msgstr "Azure AD OAuth 來源"
-#: authentik/sources/oauth/models.py:158
+#: authentik/sources/oauth/models.py:190
msgid "Azure AD OAuth Sources"
-msgstr "Azure AD OAuth 来源"
+msgstr "Azure AD OAuth 來源"
-#: authentik/sources/oauth/models.py:167
+#: authentik/sources/oauth/models.py:198
msgid "OpenID OAuth Source"
-msgstr "OpenID OAuth 源"
+msgstr "OpenID OAuth 來源"
-#: authentik/sources/oauth/models.py:168
+#: authentik/sources/oauth/models.py:199
msgid "OpenID OAuth Sources"
-msgstr "OpenID OAuth 源"
+msgstr "OpenID OAuth 來源"
-#: authentik/sources/oauth/models.py:177
+#: authentik/sources/oauth/models.py:207
msgid "Apple OAuth Source"
-msgstr "Apple OAuth 源"
+msgstr "Apple OAuth 來源"
-#: authentik/sources/oauth/models.py:178
+#: authentik/sources/oauth/models.py:208
msgid "Apple OAuth Sources"
-msgstr "Apple OAuth 源"
+msgstr "Apple OAuth 來源"
-#: authentik/sources/oauth/models.py:187
+#: authentik/sources/oauth/models.py:216
msgid "Okta OAuth Source"
-msgstr "Okta OAuth 源"
+msgstr "Okta OAuth 來源"
-#: authentik/sources/oauth/models.py:188
+#: authentik/sources/oauth/models.py:217
msgid "Okta OAuth Sources"
-msgstr "Okta OAuth 源"
+msgstr "Okta OAuth 來源"
-#: authentik/sources/oauth/models.py:203
+#: authentik/sources/oauth/models.py:225
+msgid "Reddit OAuth Source"
+msgstr "Reddit OAuth 來源"
+
+#: authentik/sources/oauth/models.py:226
+msgid "Reddit OAuth Sources"
+msgstr "Reddit OAuth 來源"
+
+#: authentik/sources/oauth/models.py:248
msgid "User OAuth Source Connection"
-msgstr "用户 OAuth 源连接"
+msgstr "使用者 OAuth 來源連線"
-#: authentik/sources/oauth/models.py:204
+#: authentik/sources/oauth/models.py:249
msgid "User OAuth Source Connections"
-msgstr "用户 OAuth 源连接"
+msgstr "使用者 OAuth 來源連線"
-#: authentik/sources/oauth/views/callback.py:98
-msgid "Authentication Failed."
-msgstr "身份验证失败。"
+#: authentik/sources/oauth/views/callback.py:100
+#, python-format
+msgid "Authentication failed: %(reason)s"
+msgstr "認證失敗:%(reason)s"
#: authentik/sources/plex/models.py:37
msgid "Client identifier used to talk to Plex."
-msgstr "用于与Plex通话的客户端标识符。"
+msgstr "用於與 Plex 通話的用戶端識別碼。"
+
+#: authentik/sources/plex/models.py:44
+msgid ""
+"Which servers a user has to be a member of to be granted access. Empty list "
+"allows every server."
+msgstr "使用者必須是其成員才能獲得存取權限的伺服器列表。留空則允許所有伺服器。"
+
+#: authentik/sources/plex/models.py:50
+msgid "Allow friends to authenticate, even if you don't share a server."
+msgstr "允許朋友進行認證,即使你們沒有共用伺服器。"
#: authentik/sources/plex/models.py:52
-msgid "Allow friends to authenticate, even if you don't share a server."
-msgstr "允许朋友进行身份验证,即使您不共享服务器。"
-
-#: authentik/sources/plex/models.py:54
msgid "Plex token used to check friends"
-msgstr "用于检查朋友的 Plex 令牌"
+msgstr "用於檢查朋友的 Plex 權杖"
-#: authentik/sources/plex/models.py:92
+#: authentik/sources/plex/models.py:95
msgid "Plex Source"
-msgstr "Plex 源"
+msgstr "Plex 來源"
-#: authentik/sources/plex/models.py:93
+#: authentik/sources/plex/models.py:96
msgid "Plex Sources"
-msgstr "Plex 源"
+msgstr "Plex 來源"
-#: authentik/sources/plex/models.py:104
+#: authentik/sources/plex/models.py:112
msgid "User Plex Source Connection"
-msgstr "用户 Plex 源连接"
+msgstr "使用者 Plex 來源連線"
-#: authentik/sources/plex/models.py:105
+#: authentik/sources/plex/models.py:113
msgid "User Plex Source Connections"
-msgstr "用户 Plex 源连接"
+msgstr "使用者 Plex 來源連線"
-#: authentik/sources/saml/models.py:36
+#: authentik/sources/saml/models.py:40
msgid "Redirect Binding"
-msgstr "重定向绑定"
+msgstr "重新導向附加"
-#: authentik/sources/saml/models.py:37
+#: authentik/sources/saml/models.py:41
msgid "POST Binding"
-msgstr "POST 绑定"
+msgstr "POST 附加"
-#: authentik/sources/saml/models.py:38
+#: authentik/sources/saml/models.py:42
msgid "POST Binding with auto-confirmation"
-msgstr "带有自动确认功能的 POST 绑定"
-
-#: authentik/sources/saml/models.py:57
-msgid "Flow used before authentication."
-msgstr "身份验证之前使用的流程。"
-
-#: authentik/sources/saml/models.py:64
-msgid "Issuer"
-msgstr "Issuer"
-
-#: authentik/sources/saml/models.py:65
-msgid "Also known as Entity ID. Defaults the Metadata URL."
-msgstr "也称为实体 ID。 默认为 Metadata URL。"
-
-#: authentik/sources/saml/models.py:69
-msgid "SSO URL"
-msgstr "SSO 网址"
+msgstr "使用自動確認的 POST 附加"
#: authentik/sources/saml/models.py:70
-msgid "URL that the initial Login request is sent to."
-msgstr "初始登录请求发送到的URL。"
-
-#: authentik/sources/saml/models.py:76
-msgid "SLO URL"
-msgstr "SLO URL"
+msgid "Flow used before authentication."
+msgstr "在身分驗證之前所使用的流程。"
#: authentik/sources/saml/models.py:77
-msgid "Optional URL if your IDP supports Single-Logout."
-msgstr "如果您的 IDP 支持单点注销,则为可选 URL。"
+msgid "Issuer"
+msgstr "發行者"
+
+#: authentik/sources/saml/models.py:78
+msgid "Also known as Entity ID. Defaults the Metadata URL."
+msgstr "亦稱為實體 ID。預設為中繼資料的網址。"
+
+#: authentik/sources/saml/models.py:82
+msgid "SSO URL"
+msgstr "SSO 網址"
#: authentik/sources/saml/models.py:83
+msgid "URL that the initial Login request is sent to."
+msgstr "初始化登入要求時發送到的網址。"
+
+#: authentik/sources/saml/models.py:89
+msgid "SLO URL"
+msgstr "SLO 網址"
+
+#: authentik/sources/saml/models.py:90
+msgid "Optional URL if your IDP supports Single-Logout."
+msgstr "可選:如果您的身份提供者支援單一登出時使用的網址。"
+
+#: authentik/sources/saml/models.py:96
msgid ""
"Allows authentication flows initiated by the IdP. This can be a security "
"risk, as no validation of the request ID is done."
-msgstr "允许由 IdP 启动的身份验证流。这可能存在安全风险,因为未对请求 ID 进行验证。"
+msgstr "允許由身份提供者發起的認證流程。這可能是一個安全風險,因為不會驗證要求的 ID。"
-#: authentik/sources/saml/models.py:91
+#: authentik/sources/saml/models.py:104
msgid ""
"NameID Policy sent to the IdP. Can be unset, in which case no Policy is "
"sent."
-msgstr "已向 IdP 发送了 NameID 策略。可以取消设置,在这种情况下,不会发送任何策略。"
+msgstr "發送給身份提供者的 NameID 政策。可以為空,在這種情況下則不會發送任何政策。"
-#: authentik/sources/saml/models.py:102
+#: authentik/sources/saml/models.py:115
msgid "Delete temporary users after"
-msgstr "之后删除临时用户"
+msgstr "在以下狀況後刪除臨時使用者:"
-#: authentik/sources/saml/models.py:120
+#: authentik/sources/saml/models.py:118
msgid ""
-"Keypair which is used to sign outgoing requests. Leave empty to disable "
-"signing."
-msgstr "用于签署传出请求的密钥对。留空则禁用签名。"
+"Time offset when temporary users should be deleted. This only applies if "
+"your IDP uses the NameID Format 'transient', and the user doesn't log out "
+"manually. (Format: hours=1;minutes=2;seconds=3)."
+msgstr ""
+"刪除臨時使用者的時間偏移量。這僅適用於您的身份提供者使用 NameID "
+"格式「transient」,且用戶沒有手動登出的情況。(格式:hours=1;minutes=2;seconds=3)。"
-#: authentik/sources/saml/models.py:188
+#: authentik/sources/saml/models.py:142
+msgid ""
+"Keypair used to sign outgoing Responses going to the Identity Provider."
+msgstr "用於簽署發往身份提供者的外送回應的金鑰對。"
+
+#: authentik/sources/saml/models.py:226
msgid "SAML Source"
-msgstr "SAML 源"
+msgstr "SAML 來源"
-#: authentik/sources/saml/models.py:189
+#: authentik/sources/saml/models.py:227
msgid "SAML Sources"
-msgstr "SAML 源"
+msgstr "SAML 來源"
-#: authentik/stages/authenticator_duo/models.py:64
+#: authentik/sources/saml/models.py:242
+msgid "User SAML Source Connection"
+msgstr "使用者 SAML 來源連線"
+
+#: authentik/sources/saml/models.py:243
+msgid "User SAML Source Connections"
+msgstr "使用者 SAML 來源連線"
+
+#: authentik/stages/authenticator_duo/models.py:79
msgid "Duo Authenticator Setup Stage"
-msgstr "Duo 身份验证器设置阶段"
+msgstr "Duo 身份驗證器設定階段"
-#: authentik/stages/authenticator_duo/models.py:65
+#: authentik/stages/authenticator_duo/models.py:80
msgid "Duo Authenticator Setup Stages"
-msgstr "Duo 身份验证器设置阶段"
+msgstr "Duo 身份驗證器設定階段"
-#: authentik/stages/authenticator_duo/models.py:82
+#: authentik/stages/authenticator_duo/models.py:103
msgid "Duo Device"
-msgstr "Duo 设备"
+msgstr "Duo 設備"
-#: authentik/stages/authenticator_duo/models.py:83
+#: authentik/stages/authenticator_duo/models.py:104
msgid "Duo Devices"
-msgstr "Duo 设备"
+msgstr "Duo 設備"
-#: authentik/stages/authenticator_sms/models.py:157
+#: authentik/stages/authenticator_sms/models.py:57
+msgid ""
+"When enabled, the Phone number is only used during enrollment to verify the "
+"users authenticity. Only a hash of the phone number is saved to ensure it is"
+" not reused in the future."
+msgstr "啟用時,手機號碼僅在註冊期間用於驗證使用者的真實性。只保存手機號碼的雜湊以確保未來不會重複使用。"
+
+#: authentik/stages/authenticator_sms/models.py:68
+msgid "Optionally modify the payload being sent to custom providers."
+msgstr "可選:修改發送給自訂供應商的酬載。"
+
+#: authentik/stages/authenticator_sms/models.py:81
+#, python-format
+msgid "Use this code to authenticate in authentik: %(token)s"
+msgstr "使用此認證碼在 authentik 中進行認證:%(token)s"
+
+#: authentik/stages/authenticator_sms/models.py:180
msgid "SMS Authenticator Setup Stage"
-msgstr "SMS 身份验证器设置阶段"
+msgstr "簡訊身份驗證器設定階段"
-#: authentik/stages/authenticator_sms/models.py:158
+#: authentik/stages/authenticator_sms/models.py:181
msgid "SMS Authenticator Setup Stages"
-msgstr "SMS 身份验证器设置阶段"
+msgstr "簡訊身份驗證器設定階段"
-#: authentik/stages/authenticator_sms/models.py:175
+#: authentik/stages/authenticator_sms/models.py:226
msgid "SMS Device"
-msgstr "短信设备"
+msgstr "簡訊設備"
-#: authentik/stages/authenticator_sms/models.py:176
+#: authentik/stages/authenticator_sms/models.py:227
msgid "SMS Devices"
-msgstr "短信设备"
+msgstr "簡訊設備"
-#: authentik/stages/authenticator_sms/stage.py:54
-#: authentik/stages/authenticator_totp/stage.py:45
+#: authentik/stages/authenticator_sms/stage.py:55
+#: authentik/stages/authenticator_totp/stage.py:41
+#: authentik/stages/authenticator_totp/stage.py:44
msgid "Code does not match"
-msgstr "代码不匹配"
+msgstr "授權碼不符"
-#: authentik/stages/authenticator_static/models.py:47
+#: authentik/stages/authenticator_sms/stage.py:71
+msgid "Invalid phone number"
+msgstr "無效的電話號碼"
+
+#: authentik/stages/authenticator_static/models.py:52
msgid "Static Authenticator Stage"
-msgstr "静态身份验证器阶段"
+msgstr "靜態身份驗證器設定階段"
-#: authentik/stages/authenticator_static/models.py:48
+#: authentik/stages/authenticator_static/models.py:53
msgid "Static Authenticator Stages"
-msgstr "静态身份验证器阶段"
+msgstr "靜態身份驗證器設定階段"
-#: authentik/stages/authenticator_totp/models.py:16
+#: authentik/stages/authenticator_static/models.py:98
+msgid "Static device"
+msgstr "靜態設備"
+
+#: authentik/stages/authenticator_static/models.py:99
+msgid "Static devices"
+msgstr "靜態設備"
+
+#: authentik/stages/authenticator_totp/models.py:25
msgid "6 digits, widely compatible"
-msgstr "6位数字,广泛兼容"
+msgstr "6位數字,廣泛相容各類驗證器"
-#: authentik/stages/authenticator_totp/models.py:17
+#: authentik/stages/authenticator_totp/models.py:26
msgid "8 digits, not compatible with apps like Google Authenticator"
-msgstr "8位数字,与谷歌身份验证器等应用不兼容"
+msgstr "8位數字,不相容於類似 Google Authenticator 等驗證器"
-#: authentik/stages/authenticator_totp/models.py:54
+#: authentik/stages/authenticator_totp/models.py:62
msgid "TOTP Authenticator Setup Stage"
-msgstr "TOTP 身份验证器设置阶段"
+msgstr "TOTP 身份驗證器設定階段"
-#: authentik/stages/authenticator_totp/models.py:55
+#: authentik/stages/authenticator_totp/models.py:63
msgid "TOTP Authenticator Setup Stages"
-msgstr "TOTP 身份验证器设置阶段"
+msgstr "TOTP 身份驗證器設定階段"
-#: authentik/stages/authenticator_validate/challenge.py:99
+#: authentik/stages/authenticator_totp/models.py:244
+msgid "TOTP device"
+msgstr "TOTP 裝置"
+
+#: authentik/stages/authenticator_totp/models.py:245
+msgid "TOTP devices"
+msgstr "TOTP 裝置"
+
+#: authentik/stages/authenticator_validate/challenge.py:131
msgid "Invalid Token"
-msgstr "无效令牌"
+msgstr "無效權杖"
-#: authentik/stages/authenticator_validate/models.py:17
+#: authentik/stages/authenticator_validate/models.py:18
+msgid "Static"
+msgstr "靜態"
+
+#: authentik/stages/authenticator_validate/models.py:19
msgid "TOTP"
msgstr "TOTP"
-#: authentik/stages/authenticator_validate/models.py:18
+#: authentik/stages/authenticator_validate/models.py:20
msgid "WebAuthn"
msgstr "WebAuthn"
-#: authentik/stages/authenticator_validate/models.py:19
+#: authentik/stages/authenticator_validate/models.py:21
msgid "Duo"
msgstr "Duo"
-#: authentik/stages/authenticator_validate/models.py:20
+#: authentik/stages/authenticator_validate/models.py:22
msgid "SMS"
-msgstr "短信"
+msgstr "簡訊"
-#: authentik/stages/authenticator_validate/models.py:58
+#: authentik/stages/authenticator_validate/models.py:49
+msgid ""
+"Stages used to configure Authenticator when user doesn't have any compatible"
+" devices. After this configuration Stage passes, the user is not prompted "
+"again."
+msgstr "在使用者沒有任何相容設備時用於設定身份驗證器的階段。在通過此設定階段後,使用者將不再收到提示。"
+
+#: authentik/stages/authenticator_validate/models.py:56
msgid "Device classes which can be used to authenticate"
-msgstr "可用于进行身份验证的设备类别"
+msgstr "可用於身分驗證的裝置類別"
-#: authentik/stages/authenticator_validate/models.py:80
+#: authentik/stages/authenticator_validate/models.py:64
+msgid ""
+"If any of the user's device has been used within this threshold, this stage "
+"will be skipped"
+msgstr "如果在此閾值內的使用者任何設備被使用過,則將跳過此階段。"
+
+#: authentik/stages/authenticator_validate/models.py:70
+msgid "Enforce user verification for WebAuthn devices."
+msgstr "強制使用者使用 WebAuthn 裝置進行驗證。"
+
+#: authentik/stages/authenticator_validate/models.py:92
msgid "Authenticator Validation Stage"
-msgstr "身份验证器验证阶段"
+msgstr "身份驗證器驗證階段"
-#: authentik/stages/authenticator_validate/models.py:81
+#: authentik/stages/authenticator_validate/models.py:93
msgid "Authenticator Validation Stages"
-msgstr "身份验证器验证阶段"
+msgstr "身份驗證器驗證階段"
-#: authentik/stages/authenticator_webauthn/models.py:71
+#: authentik/stages/authenticator_webauthn/models.py:112
msgid "WebAuthn Authenticator Setup Stage"
-msgstr "WebAuthn 身份验证器设置阶段"
+msgstr "WebAuthn 身份驗證器設定階段"
-#: authentik/stages/authenticator_webauthn/models.py:72
+#: authentik/stages/authenticator_webauthn/models.py:113
msgid "WebAuthn Authenticator Setup Stages"
-msgstr "WebAuthn 身份验证器设置阶段"
+msgstr "WebAuthn 身份驗證器設定階段"
-#: authentik/stages/authenticator_webauthn/models.py:105
+#: authentik/stages/authenticator_webauthn/models.py:151
msgid "WebAuthn Device"
-msgstr "WebAuthn 设备"
+msgstr "WebAuthn 設備"
-#: authentik/stages/authenticator_webauthn/models.py:106
+#: authentik/stages/authenticator_webauthn/models.py:152
msgid "WebAuthn Devices"
-msgstr "WebAuthn 设备"
+msgstr "WebAuthn 設備"
+
+#: authentik/stages/captcha/models.py:14
+msgid "Public key, acquired your captcha Provider."
+msgstr "公鑰,由您的驗證碼供應商中取得"
#: authentik/stages/captcha/models.py:15
-msgid ""
-"Public key, acquired from https://www.google.com/recaptcha/intro/v3.html"
-msgstr "公钥,从 https://www.google.com/recaptcha/intro/v3.html 获取"
+msgid "Private key, acquired your captcha Provider."
+msgstr "私鑰,由您的驗證碼供應商中取得"
-#: authentik/stages/captcha/models.py:18
-msgid ""
-"Private key, acquired from https://www.google.com/recaptcha/intro/v3.html"
-msgstr "私钥,从 https://www.google.com/recaptcha/intro/v3.html 获取"
-
-#: authentik/stages/captcha/models.py:39
+#: authentik/stages/captcha/models.py:37
msgid "Captcha Stage"
-msgstr "验证码阶段"
+msgstr "驗證碼階段"
-#: authentik/stages/captcha/models.py:40
+#: authentik/stages/captcha/models.py:38
msgid "Captcha Stages"
-msgstr "验证码阶段"
+msgstr "驗證碼階段"
-#: authentik/stages/consent/models.py:52
+#: authentik/stages/consent/models.py:30
+msgid ""
+"Offset after which consent expires. (Format: hours=1;minutes=2;seconds=3)."
+msgstr "同意在此之後過期的時間偏移量。(格式:hours=1;minutes=2;seconds=3)。"
+
+#: authentik/stages/consent/models.py:50
msgid "Consent Stage"
-msgstr "同意阶段"
+msgstr "同意階段"
-#: authentik/stages/consent/models.py:53
+#: authentik/stages/consent/models.py:51
msgid "Consent Stages"
-msgstr "Consent Stages"
+msgstr "同意階段"
-#: authentik/stages/consent/models.py:68
+#: authentik/stages/consent/models.py:72
msgid "User Consent"
-msgstr "用户同意"
+msgstr "使用者同意"
-#: authentik/stages/consent/models.py:69
+#: authentik/stages/consent/models.py:73
msgid "User Consents"
-msgstr "用户同意"
+msgstr "使用者同意"
+
+#: authentik/stages/deny/models.py:30
+msgid "Deny Stage"
+msgstr "拒絕階段"
#: authentik/stages/deny/models.py:31
-msgid "Deny Stage"
-msgstr "拒绝舞台"
-
-#: authentik/stages/deny/models.py:32
msgid "Deny Stages"
-msgstr "拒绝阶段"
-
-#: authentik/stages/dummy/models.py:33
-msgid "Dummy Stage"
-msgstr "虚拟阶段"
+msgstr "拒絕階段"
#: authentik/stages/dummy/models.py:34
+msgid "Dummy Stage"
+msgstr "假階段"
+
+#: authentik/stages/dummy/models.py:35
msgid "Dummy Stages"
-msgstr "虚拟阶段"
+msgstr "假階段"
-#: authentik/stages/email/models.py:25
+#: authentik/stages/email/models.py:26
msgid "Password Reset"
-msgstr "密码重置"
+msgstr "重設密碼"
-#: authentik/stages/email/models.py:29
+#: authentik/stages/email/models.py:30
msgid "Account Confirmation"
-msgstr "账户确认"
+msgstr "帳戶認證"
-#: authentik/stages/email/models.py:75
+#: authentik/stages/email/models.py:59
+msgid ""
+"When enabled, global Email connection settings will be used and connection "
+"settings below will be ignored."
+msgstr "啟用時,將使用全域電子郵件連線設定,在此之下的連線設定將被忽略。"
+
+#: authentik/stages/email/models.py:74
msgid "Activate users upon completion of stage."
-msgstr "完成阶段后激活用户。"
+msgstr "完成階段後啟用使用者。"
-#: authentik/stages/email/models.py:79
+#: authentik/stages/email/models.py:78
msgid "Time in minutes the token sent is valid."
-msgstr "发送的令牌的有效时间(以分钟为单位)。"
+msgstr "發送權杖的有效時間(以分鐘為單位)。"
-#: authentik/stages/email/models.py:125
+#: authentik/stages/email/models.py:132
msgid "Email Stage"
-msgstr "电子邮件阶段"
+msgstr "電子郵件階段"
-#: authentik/stages/email/models.py:126
+#: authentik/stages/email/models.py:133
msgid "Email Stages"
-msgstr "电子邮件阶段"
+msgstr "電子郵件階段"
-#: authentik/stages/email/stage.py:106
+#: authentik/stages/email/stage.py:117
msgid "Successfully verified Email."
-msgstr "已成功验证电子邮件。"
+msgstr "已成功認證電子郵件。"
-#: authentik/stages/email/stage.py:113 authentik/stages/email/stage.py:135
+#: authentik/stages/email/stage.py:124 authentik/stages/email/stage.py:146
msgid "No pending user."
-msgstr "没有待处理的用户。"
+msgstr "沒有待處理的使用者。"
-#: authentik/stages/email/stage.py:125
+#: authentik/stages/email/stage.py:136
msgid "Email sent."
-msgstr "邮件已发出。"
+msgstr "已發送電子郵件。"
-#: authentik/stages/email/templates/email/account_confirmation.html:9
+#: authentik/stages/email/templates/email/account_confirmation.html:10
msgid "Welcome!"
-msgstr "欢迎!"
+msgstr "歡迎!"
-#: authentik/stages/email/templates/email/account_confirmation.html:12
+#: authentik/stages/email/templates/email/account_confirmation.html:19
msgid ""
"We're excited to have you get started. First, you need to confirm your "
"account. Just press the button below."
-msgstr "我们很高兴你能开始使用。首先,您需要确认您的帐户。只需按下下面的按钮即可。"
+msgstr "我們很高興您能開始使用。首先,您需要驗證您的帳戶。只需按下方的按鈕即可。"
-#: authentik/stages/email/templates/email/account_confirmation.html:21
+#: authentik/stages/email/templates/email/account_confirmation.html:24
msgid "Confirm Account"
-msgstr "确认账户"
+msgstr "驗證帳戶"
-#: authentik/stages/email/templates/email/account_confirmation.html:30
+#: authentik/stages/email/templates/email/account_confirmation.html:36
#, python-format
msgid ""
"\n"
@@ -1471,58 +2157,59 @@ msgid ""
" "
msgstr ""
"\n"
-" 如果这不起作用,请在浏览器中复制并粘贴以下链接:%(url)s\n"
+" 如果這不起作用,請在瀏覽器中複製並貼上以下連結:%(url)s\n"
" "
-#: authentik/stages/email/templates/email/account_confirmation.html:35
-msgid ""
-"If you have any questions, just reply to this email—we're always happy to "
-"help out."
-msgstr "如果您有任何疑问,请回复此电子邮件——我们很乐意为您提供帮助。"
-
-#: authentik/stages/email/templates/email/generic.html:24
-msgid "Additional Information"
-msgstr "其他信息"
-
-#: authentik/stages/email/templates/email/password_reset.html:9
+#: authentik/stages/email/templates/email/event_notification.html:46
#, python-format
msgid ""
"\n"
-" Hi %(username)s,\n"
-" "
+" This email was sent from the notification transport %(name)s
.\n"
+" "
msgstr ""
"\n"
-" 你好 %(username)s,\n"
-" "
+" 這封信件來自通知通道:%(name)s
。\n"
+" "
-#: authentik/stages/email/templates/email/password_reset.html:19
+#: authentik/stages/email/templates/email/password_reset.html:10
+#, python-format
msgid ""
"\n"
-" You recently requested to change your password for you authentik account. Use the button below to set a new password.\n"
-" "
+" Hi %(username)s,\n"
+" "
msgstr ""
"\n"
-" 您最近请求更改您的 authentik 账户的密码。使用下面的按钮设置新密码。\n"
-" "
+" 嗨!%(username)s。\n"
+" "
-#: authentik/stages/email/templates/email/password_reset.html:33
+#: authentik/stages/email/templates/email/password_reset.html:21
+msgid ""
+"\n"
+" You recently requested to change your password for your authentik account. Use the button below to set a new password.\n"
+" "
+msgstr ""
+"\n"
+" 您最近要求重設您的 authentik 帳戶的密碼。請使用下方的按鈕來設定新密碼。\n"
+" "
+
+#: authentik/stages/email/templates/email/password_reset.html:28
msgid "Reset Password"
-msgstr "重置密码"
+msgstr "重設密碼"
-#: authentik/stages/email/templates/email/password_reset.html:45
+#: authentik/stages/email/templates/email/password_reset.html:39
#, python-format
msgid ""
"\n"
-" If you did not request a password change, please ignore this Email. The link above is valid for %(expires)s.\n"
-" "
+" If you did not request a password change, please ignore this Email. The link above is valid for %(expires)s.\n"
+" "
msgstr ""
"\n"
-" 如果您没有请求更改密码,请忽略此电子邮件。上面的链接对 %(expires)s 有效。\n"
-" "
+" 如果您沒有要求重設密碼,請忽略本信件。以下連結將在%(expires)s 後過期。\n"
+" "
#: authentik/stages/email/templates/email/setup.html:9
msgid "authentik Test-Email"
-msgstr "authentik 测试电子邮件"
+msgstr "authentik 測試電子郵件"
#: authentik/stages/email/templates/email/setup.html:17
msgid ""
@@ -1531,219 +2218,339 @@ msgid ""
" "
msgstr ""
"\n"
-" 这是一封测试电子邮件,用于通知您,您已成功配置身份验证电子邮件。\n"
+" 這是一封測試電子郵件用於通知您,您已成功設定了 authentik 電子郵件。\n"
" "
-#: authentik/stages/identification/models.py:42
+#: authentik/stages/identification/api.py:20
+msgid "When no user fields are selected, at least one source must be selected"
+msgstr "當沒有使用者欄位被選擇時,至少要選擇一個來源"
+
+#: authentik/stages/identification/models.py:29
msgid ""
-"When set, shows a password field, instead of showing the password field as "
-"seaprate step."
-msgstr "设置后,将显示密码字段,而不是将密码字段显示为单独的步骤。"
+"Fields of the user object to match against. (Hold shift to select multiple "
+"options)"
+msgstr "用於配對使用者物件的欄位。(可按住 Shift 選擇多個選項)"
-#: authentik/stages/identification/models.py:48
+#: authentik/stages/identification/models.py:47
msgid "When enabled, user fields are matched regardless of their casing."
-msgstr "启用后,无论用户字段大小写如何,都将匹配用户字段。"
+msgstr "啟用時,配對將無視使用者欄位的大小寫差異。"
-#: authentik/stages/identification/models.py:68
+#: authentik/stages/identification/models.py:52
+msgid ""
+"When a valid username/email has been entered, and this option is enabled, "
+"the user's username and avatar will be shown. Otherwise, the text that the "
+"user entered will be shown"
+msgstr "當啟用了此選項,且輸入了有效的使用者名稱/電子郵件時,將顯示用戶的用戶名稱和頭像。否則,將顯示使用者輸入的文字。"
+
+#: authentik/stages/identification/models.py:65
msgid "Optional enrollment flow, which is linked at the bottom of the page."
-msgstr "可选注册流程,链接在页面底部。"
+msgstr "可選的註冊流程,連結在頁面的底部。"
-#: authentik/stages/identification/models.py:77
+#: authentik/stages/identification/models.py:74
msgid "Optional recovery flow, which is linked at the bottom of the page."
-msgstr "可选的恢复流程,链接在页面底部。"
+msgstr "可選的救援流程,連結在頁面底部。"
-#: authentik/stages/identification/models.py:86
+#: authentik/stages/identification/models.py:83
msgid "Optional passwordless flow, which is linked at the bottom of the page."
-msgstr "可选的无密码流程,链接在页面底部。"
+msgstr "可選的無密碼流程,連結在頁面底部。"
-#: authentik/stages/identification/models.py:90
+#: authentik/stages/identification/models.py:87
msgid "Specify which sources should be shown."
-msgstr "指定应显示哪些来源。"
+msgstr "指定應顯示那些來源。"
-#: authentik/stages/identification/models.py:112
+#: authentik/stages/identification/models.py:108
msgid "Identification Stage"
-msgstr "识别阶段"
+msgstr "識別階段"
-#: authentik/stages/identification/models.py:113
+#: authentik/stages/identification/models.py:109
msgid "Identification Stages"
-msgstr "识别阶段"
+msgstr "識別階段"
-#: authentik/stages/identification/stage.py:175
+#: authentik/stages/identification/stage.py:188
msgid "Log in"
msgstr "登入"
-#: authentik/stages/invitation/models.py:46
+#: authentik/stages/identification/stage.py:189
+msgid "Continue"
+msgstr "繼續"
+
+#: authentik/stages/invitation/models.py:21
+msgid ""
+"If this flag is set, this Stage will jump to the next Stage when no "
+"Invitation is given. By default this Stage will cancel the Flow when no "
+"invitation is given."
+msgstr "如果設定了此旗標,在沒有給予邀請的情況下將跳轉到下一階段。預設情況下,當沒有給予邀請時,階段將取消流程。"
+
+#: authentik/stages/invitation/models.py:44
msgid "Invitation Stage"
-msgstr "邀请阶段"
+msgstr "邀請階段"
-#: authentik/stages/invitation/models.py:47
+#: authentik/stages/invitation/models.py:45
msgid "Invitation Stages"
-msgstr "邀请阶段"
+msgstr "邀請階段"
-#: authentik/stages/invitation/models.py:57
-msgid "When enabled, the invitation will be deleted after usage."
-msgstr "启用后,邀请将在使用后被删除。"
+#: authentik/stages/invitation/models.py:60
+msgid "When set, only the configured flow can use this invitation."
+msgstr "如果設定此項,只有已設定的流程才能夠使用這個邀請。"
#: authentik/stages/invitation/models.py:64
+msgid "When enabled, the invitation will be deleted after usage."
+msgstr "啟用時,邀請將在使用後被刪除。"
+
+#: authentik/stages/invitation/models.py:71
msgid "Optional fixed data to enforce on user enrollment."
-msgstr "在用户注册时强制执行的可选固定数据。"
+msgstr "可選的固定資料,在使用者註冊中強制加入的固定資料。"
-#: authentik/stages/invitation/models.py:72
+#: authentik/stages/invitation/models.py:84
msgid "Invitation"
-msgstr "邀请"
+msgstr "邀請"
-#: authentik/stages/invitation/models.py:73
+#: authentik/stages/invitation/models.py:85
msgid "Invitations"
-msgstr "邀请"
+msgstr "邀請"
+
+#: authentik/stages/invitation/stage.py:62
+msgid "Invalid invite/invite not found"
+msgstr "無效的邀請或找不到該邀請"
#: authentik/stages/password/models.py:20
msgid "User database + standard password"
-msgstr "用户数据库+标准密码"
+msgstr "使用者資料庫 + 標準密碼"
#: authentik/stages/password/models.py:24
msgid "User database + app passwords"
-msgstr "用户数据库+应用程序密码"
+msgstr "使用者資料庫 + 應用程式密碼"
#: authentik/stages/password/models.py:28
msgid "User database + LDAP password"
-msgstr "用户数据库 + LDAP 密码"
+msgstr "使用者資料庫 + LDAP 密碼"
#: authentik/stages/password/models.py:38
msgid "Selection of backends to test the password against."
-msgstr "选择用于测试密码的后端。"
+msgstr "選擇要對照測試密碼的後端。"
-#: authentik/stages/password/models.py:78
+#: authentik/stages/password/models.py:43
+msgid ""
+"How many attempts a user has before the flow is canceled. To lock the user "
+"out, use a reputation policy and a user_write stage."
+msgstr "在取消流程前使用者嘗試的次數。要鎖定使用者請使用名譽政策和 user_write 階段。"
+
+#: authentik/stages/password/models.py:75
msgid "Password Stage"
-msgstr "密码阶段"
+msgstr "密碼階段"
-#: authentik/stages/password/models.py:79
+#: authentik/stages/password/models.py:76
msgid "Password Stages"
-msgstr "密码阶段"
+msgstr "密碼階段"
-#: authentik/stages/password/stage.py:152
+#: authentik/stages/password/stage.py:124
msgid "Invalid password"
-msgstr "密码无效"
+msgstr "無效的密碼"
-#: authentik/stages/prompt/models.py:29
+#: authentik/stages/prompt/models.py:43
msgid "Text: Simple Text input"
-msgstr "文本:简单文本输入"
+msgstr "文字:簡單文字輸入"
-#: authentik/stages/prompt/models.py:32
+#: authentik/stages/prompt/models.py:45
+msgid "Text area: Multiline Text Input."
+msgstr "文字區塊:多行文字輸入。"
+
+#: authentik/stages/prompt/models.py:48
msgid "Text (read-only): Simple Text input, but cannot be edited."
-msgstr "文本(只读):简单文本输入,但无法编辑。"
+msgstr "文字(唯讀):簡單文字輸入,但無法編輯。"
-#: authentik/stages/prompt/models.py:39
+#: authentik/stages/prompt/models.py:52
+msgid "Text area (read-only): Multiline Text input, but cannot be edited."
+msgstr "文字區塊(唯讀):多行文字輸入。但無法編輯。"
+
+#: authentik/stages/prompt/models.py:58
+msgid ""
+"Username: Same as Text input, but checks for and prevents duplicate "
+"usernames."
+msgstr "使用者名稱:與文字輸入相同,但檢查是否與現存有重複。"
+
+#: authentik/stages/prompt/models.py:60
msgid "Email: Text field with Email type."
-msgstr "电子邮件:具有电子邮件类型的文本字段。"
+msgstr "電子郵件:具有電子郵件類型的文字欄位。"
-#: authentik/stages/prompt/models.py:55
+#: authentik/stages/prompt/models.py:64
+msgid ""
+"Password: Masked input, multiple inputs of this type on the same prompt need"
+" to be identical."
+msgstr "密碼:遮罩輸入,同一提示上的多個此類輸入需要相同。"
+
+#: authentik/stages/prompt/models.py:71
+msgid "Fixed choice field rendered as a group of radio buttons."
+msgstr "固定選項欄位將繪製成單選按紐群組。"
+
+#: authentik/stages/prompt/models.py:73
+msgid "Fixed choice field rendered as a dropdown."
+msgstr "固定選項欄位將繪製成下拉式選單。"
+
+#: authentik/stages/prompt/models.py:80
+msgid ""
+"File: File upload for arbitrary files. File content will be available in "
+"flow context as data-URI"
+msgstr "檔案:任意檔案類型上傳。檔案內容將會作為流程內文的資料URI"
+
+#: authentik/stages/prompt/models.py:85
msgid "Separator: Static Separator Line"
-msgstr "分隔符:静态分隔线"
+msgstr "分隔符號:靜態分隔線"
-#: authentik/stages/prompt/models.py:56
+#: authentik/stages/prompt/models.py:86
msgid "Hidden: Hidden field, can be used to insert data into form."
-msgstr "隐藏:隐藏字段,可用于将数据插入表单。"
+msgstr "隱藏:隱藏欄位,可用於將資料插入表單。"
-#: authentik/stages/prompt/models.py:57
+#: authentik/stages/prompt/models.py:87
msgid "Static: Static value, displayed as-is."
-msgstr "静态:静态值,按原样显示。"
+msgstr "靜態:靜態數值,按原狀顯示。"
-#: authentik/stages/prompt/models.py:66
+#: authentik/stages/prompt/models.py:89
+msgid "authentik: Selection of locales authentik supports"
+msgstr "authentik:選擇 authentik 支援的語系"
+
+#: authentik/stages/prompt/models.py:116
msgid "Name of the form field, also used to store the value"
-msgstr "表单域的名称,也用于存储值"
+msgstr "表單名稱,也用於儲存數值。"
-#: authentik/stages/prompt/models.py:131
+#: authentik/stages/prompt/models.py:124
+msgid ""
+"Optionally provide a short hint that describes the expected input value. "
+"When creating a fixed choice field, enable interpreting as expression and "
+"return a list to return multiple choices."
+msgstr "可選:提供一個簡短提示,描述預期的輸入值。當建立一個固定選擇欄位時,啟用解釋為表示式,並回傳一個列表以提供多個選擇。"
+
+#: authentik/stages/prompt/models.py:132
+msgid ""
+"Optionally pre-fill the input with an initial value. When creating a fixed "
+"choice field, enable interpreting as expression and return a list to return "
+"multiple default choices."
+msgstr "可選:預先填入輸入框以一個初始值。當建立一個固定選擇欄位時,啟用解釋為表示式,並回傳一個列表以提供多個預設選擇。"
+
+#: authentik/stages/prompt/models.py:321
msgid "Prompt"
msgstr "提示"
-#: authentik/stages/prompt/models.py:132
+#: authentik/stages/prompt/models.py:322
msgid "Prompts"
msgstr "提示"
-#: authentik/stages/prompt/models.py:160
+#: authentik/stages/prompt/models.py:349
msgid "Prompt Stage"
-msgstr "提示阶段"
+msgstr "提示階段"
-#: authentik/stages/prompt/models.py:161
+#: authentik/stages/prompt/models.py:350
msgid "Prompt Stages"
-msgstr "提示阶段"
+msgstr "提示階段"
-#: authentik/stages/prompt/stage.py:94
+#: authentik/stages/prompt/stage.py:108
msgid "Passwords don't match."
-msgstr "密码不匹配。"
+msgstr "密碼不符。"
+
+#: authentik/stages/user_delete/models.py:31
+msgid "User Delete Stage"
+msgstr "使用者刪除階段"
#: authentik/stages/user_delete/models.py:32
-msgid "User Delete Stage"
-msgstr "用户删除阶段"
-
-#: authentik/stages/user_delete/models.py:33
msgid "User Delete Stages"
-msgstr "用户删除阶段"
+msgstr "使用者刪除階段"
-#: authentik/stages/user_delete/stage.py:24
+#: authentik/stages/user_delete/stage.py:18
msgid "No Pending User."
-msgstr "没有待处理的用户。"
+msgstr "無待處理的使用者。"
#: authentik/stages/user_login/models.py:19
msgid ""
"Determines how long a session lasts. Default of 0 means that the sessions "
"lasts until the browser is closed. (Format: hours=-1;minutes=-2;seconds=-3)"
-msgstr "确定会话持续多长时间。默认值为 0 表示会话持续到浏览器关闭为止。(格式:hours=-1;minutes=-2;seconds=-3)"
+msgstr "確定會談持續多久。預設值為 0 表示會談會持續到關閉瀏覽器為止。(格式:hours=-1;minutes=-2;seconds=-3)"
-#: authentik/stages/user_login/models.py:43
+#: authentik/stages/user_login/models.py:25
+msgid "Terminate all other sessions of the user logging in."
+msgstr "終止所有已登入的使用者連線。"
+
+#: authentik/stages/user_login/models.py:31
+msgid ""
+"Offset the session will be extended by when the user picks the remember me "
+"option. Default of 0 means that the remember me option will not be shown. "
+"(Format: hours=-1;minutes=-2;seconds=-3)"
+msgstr ""
+"當使用者選擇記住我選項時,會延長會談的偏移時間。預設值為 0 "
+"意味著不會顯示記住我選項。(格式:hours=-1;minutes=-2;seconds=-3)"
+
+#: authentik/stages/user_login/models.py:54
msgid "User Login Stage"
-msgstr "用户登录阶段"
+msgstr "使用者登入階段"
-#: authentik/stages/user_login/models.py:44
+#: authentik/stages/user_login/models.py:55
msgid "User Login Stages"
-msgstr "用户登录阶段"
-
-#: authentik/stages/user_login/stage.py:29
-msgid "No Pending user to login."
-msgstr "没有待定用户可以登录。"
+msgstr "使用者登入階段"
#: authentik/stages/user_login/stage.py:57
+msgid "No Pending user to login."
+msgstr "無待登入的使用者。"
+
+#: authentik/stages/user_login/stage.py:90
msgid "Successfully logged in!"
msgstr "已成功登入!"
-#: authentik/stages/user_logout/models.py:31
+#: authentik/stages/user_logout/models.py:30
msgid "User Logout Stage"
-msgstr "用户注销阶段"
+msgstr "使用者登出階段"
-#: authentik/stages/user_logout/models.py:32
+#: authentik/stages/user_logout/models.py:31
msgid "User Logout Stages"
-msgstr "用户注销阶段"
+msgstr "使用者登出階段"
-#: authentik/stages/user_write/models.py:18
+#: authentik/stages/user_write/models.py:31
msgid "When set, newly created users are inactive and cannot login."
-msgstr "设置后,新创建的用户将处于非活动状态,且无法登录。"
+msgstr "設定時,新建立的使用者會是非活躍狀態,無法登入。"
-#: authentik/stages/user_write/models.py:26
+#: authentik/stages/user_write/models.py:39
msgid "Optionally add newly created users to this group."
-msgstr "(可选)将新创建的用户添加到此组。"
+msgstr "可選:將新建立的使用者加入此群組。"
-#: authentik/stages/user_write/models.py:47
+#: authentik/stages/user_write/models.py:64
msgid "User Write Stage"
-msgstr "用户写入阶段"
+msgstr "使用者寫入階段"
-#: authentik/stages/user_write/models.py:48
+#: authentik/stages/user_write/models.py:65
msgid "User Write Stages"
-msgstr "用户写入阶段"
+msgstr "使用者寫入階段"
-#: authentik/stages/user_write/stage.py:53
+#: authentik/stages/user_write/stage.py:130
msgid "No Pending data."
-msgstr "没有待处理的数据。"
+msgstr "無待處理的資料。"
-#: authentik/tenants/models.py:18
+#: authentik/stages/user_write/stage.py:136
+msgid "No user found and can't create new user."
+msgstr "找不到使用者以及無法建立新的使用者。"
+
+#: authentik/stages/user_write/stage.py:153
+#: authentik/stages/user_write/stage.py:167
+msgid "Failed to update user. Please try again later."
+msgstr "無法更新使用者,請稍後重新嘗試。"
+
+#: authentik/tenants/models.py:23
msgid ""
"Domain that activates this tenant. Can be a superset, i.e. `a.b` for `aa.b` "
"and `ba.b`"
-msgstr "激活此租户的域。可以是超集,例如 `aa.b` 表示 `aa.b` 和 `ba.b`"
+msgstr "啟用此租戶的網域。可以是超集合,例如 `a.b` 對應於 `aa.b` 和 `ba.b`"
-#: authentik/tenants/models.py:70
+#: authentik/tenants/models.py:58
+msgid ""
+"Events will be deleted after this duration.(Format: "
+"weeks=3;days=2;hours=3,seconds=2)."
+msgstr "事件將在此期間後刪除。(格式:weeks=3;days=2;hours=3,seconds=2)"
+
+#: authentik/tenants/models.py:67
+msgid "Web Certificate used by the authentik Core webserver."
+msgstr "用於 authentik Core 網頁伺服器的網頁憑證。"
+
+#: authentik/tenants/models.py:93
msgid "Tenant"
-msgstr "租户"
+msgstr "租戶"
-#: authentik/tenants/models.py:71
+#: authentik/tenants/models.py:94
msgid "Tenants"
-msgstr "租户"
+msgstr "租戶"
diff --git a/poetry.lock b/poetry.lock
index 473a95429..fe90220ed 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -2,111 +2,98 @@
[[package]]
name = "aiohttp"
-version = "3.8.5"
+version = "3.9.0"
description = "Async http client/server framework (asyncio)"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.8"
files = [
- {file = "aiohttp-3.8.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a94159871304770da4dd371f4291b20cac04e8c94f11bdea1c3478e557fbe0d8"},
- {file = "aiohttp-3.8.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:13bf85afc99ce6f9ee3567b04501f18f9f8dbbb2ea11ed1a2e079670403a7c84"},
- {file = "aiohttp-3.8.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2ce2ac5708501afc4847221a521f7e4b245abf5178cf5ddae9d5b3856ddb2f3a"},
- {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:96943e5dcc37a6529d18766597c491798b7eb7a61d48878611298afc1fca946c"},
- {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ad5c3c4590bb3cc28b4382f031f3783f25ec223557124c68754a2231d989e2b"},
- {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0c413c633d0512df4dc7fd2373ec06cc6a815b7b6d6c2f208ada7e9e93a5061d"},
- {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:df72ac063b97837a80d80dec8d54c241af059cc9bb42c4de68bd5b61ceb37caa"},
- {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c48c5c0271149cfe467c0ff8eb941279fd6e3f65c9a388c984e0e6cf57538e14"},
- {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:368a42363c4d70ab52c2c6420a57f190ed3dfaca6a1b19afda8165ee16416a82"},
- {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7607ec3ce4993464368505888af5beb446845a014bc676d349efec0e05085905"},
- {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:0d21c684808288a98914e5aaf2a7c6a3179d4df11d249799c32d1808e79503b5"},
- {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:312fcfbacc7880a8da0ae8b6abc6cc7d752e9caa0051a53d217a650b25e9a691"},
- {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ad093e823df03bb3fd37e7dec9d4670c34f9e24aeace76808fc20a507cace825"},
- {file = "aiohttp-3.8.5-cp310-cp310-win32.whl", hash = "sha256:33279701c04351a2914e1100b62b2a7fdb9a25995c4a104259f9a5ead7ed4802"},
- {file = "aiohttp-3.8.5-cp310-cp310-win_amd64.whl", hash = "sha256:6e4a280e4b975a2e7745573e3fc9c9ba0d1194a3738ce1cbaa80626cc9b4f4df"},
- {file = "aiohttp-3.8.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ae871a964e1987a943d83d6709d20ec6103ca1eaf52f7e0d36ee1b5bebb8b9b9"},
- {file = "aiohttp-3.8.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:461908b2578955045efde733719d62f2b649c404189a09a632d245b445c9c975"},
- {file = "aiohttp-3.8.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:72a860c215e26192379f57cae5ab12b168b75db8271f111019509a1196dfc780"},
- {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc14be025665dba6202b6a71cfcdb53210cc498e50068bc088076624471f8bb9"},
- {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8af740fc2711ad85f1a5c034a435782fbd5b5f8314c9a3ef071424a8158d7f6b"},
- {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:841cd8233cbd2111a0ef0a522ce016357c5e3aff8a8ce92bcfa14cef890d698f"},
- {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ed1c46fb119f1b59304b5ec89f834f07124cd23ae5b74288e364477641060ff"},
- {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:84f8ae3e09a34f35c18fa57f015cc394bd1389bce02503fb30c394d04ee6b938"},
- {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:62360cb771707cb70a6fd114b9871d20d7dd2163a0feafe43fd115cfe4fe845e"},
- {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:23fb25a9f0a1ca1f24c0a371523546366bb642397c94ab45ad3aedf2941cec6a"},
- {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:b0ba0d15164eae3d878260d4c4df859bbdc6466e9e6689c344a13334f988bb53"},
- {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:5d20003b635fc6ae3f96d7260281dfaf1894fc3aa24d1888a9b2628e97c241e5"},
- {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0175d745d9e85c40dcc51c8f88c74bfbaef9e7afeeeb9d03c37977270303064c"},
- {file = "aiohttp-3.8.5-cp311-cp311-win32.whl", hash = "sha256:2e1b1e51b0774408f091d268648e3d57f7260c1682e7d3a63cb00d22d71bb945"},
- {file = "aiohttp-3.8.5-cp311-cp311-win_amd64.whl", hash = "sha256:043d2299f6dfdc92f0ac5e995dfc56668e1587cea7f9aa9d8a78a1b6554e5755"},
- {file = "aiohttp-3.8.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:cae533195e8122584ec87531d6df000ad07737eaa3c81209e85c928854d2195c"},
- {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f21e83f355643c345177a5d1d8079f9f28b5133bcd154193b799d380331d5d3"},
- {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a7a75ef35f2df54ad55dbf4b73fe1da96f370e51b10c91f08b19603c64004acc"},
- {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e2e9839e14dd5308ee773c97115f1e0a1cb1d75cbeeee9f33824fa5144c7634"},
- {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c44e65da1de4403d0576473e2344828ef9c4c6244d65cf4b75549bb46d40b8dd"},
- {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:78d847e4cde6ecc19125ccbc9bfac4a7ab37c234dd88fbb3c5c524e8e14da543"},
- {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:c7a815258e5895d8900aec4454f38dca9aed71085f227537208057853f9d13f2"},
- {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:8b929b9bd7cd7c3939f8bcfffa92fae7480bd1aa425279d51a89327d600c704d"},
- {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:5db3a5b833764280ed7618393832e0853e40f3d3e9aa128ac0ba0f8278d08649"},
- {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:a0215ce6041d501f3155dc219712bc41252d0ab76474615b9700d63d4d9292af"},
- {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:fd1ed388ea7fbed22c4968dd64bab0198de60750a25fe8c0c9d4bef5abe13824"},
- {file = "aiohttp-3.8.5-cp36-cp36m-win32.whl", hash = "sha256:6e6783bcc45f397fdebc118d772103d751b54cddf5b60fbcc958382d7dd64f3e"},
- {file = "aiohttp-3.8.5-cp36-cp36m-win_amd64.whl", hash = "sha256:b5411d82cddd212644cf9360879eb5080f0d5f7d809d03262c50dad02f01421a"},
- {file = "aiohttp-3.8.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:01d4c0c874aa4ddfb8098e85d10b5e875a70adc63db91f1ae65a4b04d3344cda"},
- {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5980a746d547a6ba173fd5ee85ce9077e72d118758db05d229044b469d9029a"},
- {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2a482e6da906d5e6e653be079b29bc173a48e381600161c9932d89dfae5942ef"},
- {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80bd372b8d0715c66c974cf57fe363621a02f359f1ec81cba97366948c7fc873"},
- {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1161b345c0a444ebcf46bf0a740ba5dcf50612fd3d0528883fdc0eff578006a"},
- {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd56db019015b6acfaaf92e1ac40eb8434847d9bf88b4be4efe5bfd260aee692"},
- {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:153c2549f6c004d2754cc60603d4668899c9895b8a89397444a9c4efa282aaf4"},
- {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4a01951fabc4ce26ab791da5f3f24dca6d9a6f24121746eb19756416ff2d881b"},
- {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bfb9162dcf01f615462b995a516ba03e769de0789de1cadc0f916265c257e5d8"},
- {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:7dde0009408969a43b04c16cbbe252c4f5ef4574ac226bc8815cd7342d2028b6"},
- {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4149d34c32f9638f38f544b3977a4c24052042affa895352d3636fa8bffd030a"},
- {file = "aiohttp-3.8.5-cp37-cp37m-win32.whl", hash = "sha256:68c5a82c8779bdfc6367c967a4a1b2aa52cd3595388bf5961a62158ee8a59e22"},
- {file = "aiohttp-3.8.5-cp37-cp37m-win_amd64.whl", hash = "sha256:2cf57fb50be5f52bda004b8893e63b48530ed9f0d6c96c84620dc92fe3cd9b9d"},
- {file = "aiohttp-3.8.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:eca4bf3734c541dc4f374ad6010a68ff6c6748f00451707f39857f429ca36ced"},
- {file = "aiohttp-3.8.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1274477e4c71ce8cfe6c1ec2f806d57c015ebf84d83373676036e256bc55d690"},
- {file = "aiohttp-3.8.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:28c543e54710d6158fc6f439296c7865b29e0b616629767e685a7185fab4a6b9"},
- {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:910bec0c49637d213f5d9877105d26e0c4a4de2f8b1b29405ff37e9fc0ad52b8"},
- {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5443910d662db951b2e58eb70b0fbe6b6e2ae613477129a5805d0b66c54b6cb7"},
- {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e460be6978fc24e3df83193dc0cc4de46c9909ed92dd47d349a452ef49325b7"},
- {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fb1558def481d84f03b45888473fc5a1f35747b5f334ef4e7a571bc0dfcb11f8"},
- {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:34dd0c107799dcbbf7d48b53be761a013c0adf5571bf50c4ecad5643fe9cfcd0"},
- {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:aa1990247f02a54185dc0dff92a6904521172a22664c863a03ff64c42f9b5410"},
- {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:0e584a10f204a617d71d359fe383406305a4b595b333721fa50b867b4a0a1548"},
- {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:a3cf433f127efa43fee6b90ea4c6edf6c4a17109d1d037d1a52abec84d8f2e42"},
- {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:c11f5b099adafb18e65c2c997d57108b5bbeaa9eeee64a84302c0978b1ec948b"},
- {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:84de26ddf621d7ac4c975dbea4c945860e08cccde492269db4e1538a6a6f3c35"},
- {file = "aiohttp-3.8.5-cp38-cp38-win32.whl", hash = "sha256:ab88bafedc57dd0aab55fa728ea10c1911f7e4d8b43e1d838a1739f33712921c"},
- {file = "aiohttp-3.8.5-cp38-cp38-win_amd64.whl", hash = "sha256:5798a9aad1879f626589f3df0f8b79b3608a92e9beab10e5fda02c8a2c60db2e"},
- {file = "aiohttp-3.8.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a6ce61195c6a19c785df04e71a4537e29eaa2c50fe745b732aa937c0c77169f3"},
- {file = "aiohttp-3.8.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:773dd01706d4db536335fcfae6ea2440a70ceb03dd3e7378f3e815b03c97ab51"},
- {file = "aiohttp-3.8.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f83a552443a526ea38d064588613aca983d0ee0038801bc93c0c916428310c28"},
- {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f7372f7341fcc16f57b2caded43e81ddd18df53320b6f9f042acad41f8e049a"},
- {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea353162f249c8097ea63c2169dd1aa55de1e8fecbe63412a9bc50816e87b761"},
- {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5d47ae48db0b2dcf70bc8a3bc72b3de86e2a590fc299fdbbb15af320d2659de"},
- {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d827176898a2b0b09694fbd1088c7a31836d1a505c243811c87ae53a3f6273c1"},
- {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3562b06567c06439d8b447037bb655ef69786c590b1de86c7ab81efe1c9c15d8"},
- {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4e874cbf8caf8959d2adf572a78bba17cb0e9d7e51bb83d86a3697b686a0ab4d"},
- {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6809a00deaf3810e38c628e9a33271892f815b853605a936e2e9e5129762356c"},
- {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:33776e945d89b29251b33a7e7d006ce86447b2cfd66db5e5ded4e5cd0340585c"},
- {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:eaeed7abfb5d64c539e2db173f63631455f1196c37d9d8d873fc316470dfbacd"},
- {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e91d635961bec2d8f19dfeb41a539eb94bd073f075ca6dae6c8dc0ee89ad6f91"},
- {file = "aiohttp-3.8.5-cp39-cp39-win32.whl", hash = "sha256:00ad4b6f185ec67f3e6562e8a1d2b69660be43070bd0ef6fcec5211154c7df67"},
- {file = "aiohttp-3.8.5-cp39-cp39-win_amd64.whl", hash = "sha256:c0a9034379a37ae42dea7ac1e048352d96286626251862e448933c0f59cbd79c"},
- {file = "aiohttp-3.8.5.tar.gz", hash = "sha256:b9552ec52cc147dbf1944ac7ac98af7602e51ea2dcd076ed194ca3c0d1c7d0bc"},
+ {file = "aiohttp-3.9.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6896b8416be9ada4d22cd359d7cb98955576ce863eadad5596b7cdfbf3e17c6c"},
+ {file = "aiohttp-3.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1736d87dad8ef46a8ec9cddd349fa9f7bd3a064c47dd6469c0d6763d3d49a4fc"},
+ {file = "aiohttp-3.9.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8c9e5f4d7208cda1a2bb600e29069eecf857e6980d0ccc922ccf9d1372c16f4b"},
+ {file = "aiohttp-3.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8488519aa05e636c5997719fe543c8daf19f538f4fa044f3ce94bee608817cff"},
+ {file = "aiohttp-3.9.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ab16c254e2312efeb799bc3c06897f65a133b38b69682bf75d1f1ee1a9c43a9"},
+ {file = "aiohttp-3.9.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7a94bde005a8f926d0fa38b88092a03dea4b4875a61fbcd9ac6f4351df1b57cd"},
+ {file = "aiohttp-3.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b777c9286b6c6a94f50ddb3a6e730deec327e9e2256cb08b5530db0f7d40fd8"},
+ {file = "aiohttp-3.9.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:571760ad7736b34d05597a1fd38cbc7d47f7b65deb722cb8e86fd827404d1f6b"},
+ {file = "aiohttp-3.9.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:deac0a32aec29608eb25d730f4bc5a261a65b6c48ded1ed861d2a1852577c932"},
+ {file = "aiohttp-3.9.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:4ee1b4152bc3190cc40ddd6a14715e3004944263ea208229ab4c297712aa3075"},
+ {file = "aiohttp-3.9.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:3607375053df58ed6f23903aa10cf3112b1240e8c799d243bbad0f7be0666986"},
+ {file = "aiohttp-3.9.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:65b0a70a25456d329a5e1426702dde67be0fb7a4ead718005ba2ca582d023a94"},
+ {file = "aiohttp-3.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5a2eb5311a37fe105aa35f62f75a078537e1a9e4e1d78c86ec9893a3c97d7a30"},
+ {file = "aiohttp-3.9.0-cp310-cp310-win32.whl", hash = "sha256:2cbc14a13fb6b42d344e4f27746a4b03a2cb0c1c3c5b932b0d6ad8881aa390e3"},
+ {file = "aiohttp-3.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:ac9669990e2016d644ba8ae4758688534aabde8dbbc81f9af129c3f5f01ca9cd"},
+ {file = "aiohttp-3.9.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f8e05f5163528962ce1d1806fce763ab893b1c5b7ace0a3538cd81a90622f844"},
+ {file = "aiohttp-3.9.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4afa8f71dba3a5a2e1e1282a51cba7341ae76585345c43d8f0e624882b622218"},
+ {file = "aiohttp-3.9.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f929f4c9b9a00f3e6cc0587abb95ab9c05681f8b14e0fe1daecfa83ea90f8318"},
+ {file = "aiohttp-3.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28185e36a78d247c55e9fbea2332d16aefa14c5276a582ce7a896231c6b1c208"},
+ {file = "aiohttp-3.9.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a486ddf57ab98b6d19ad36458b9f09e6022de0381674fe00228ca7b741aacb2f"},
+ {file = "aiohttp-3.9.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:70e851f596c00f40a2f00a46126c95c2e04e146015af05a9da3e4867cfc55911"},
+ {file = "aiohttp-3.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c5b7bf8fe4d39886adc34311a233a2e01bc10eb4e842220235ed1de57541a896"},
+ {file = "aiohttp-3.9.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c67a51ea415192c2e53e4e048c78bab82d21955b4281d297f517707dc836bf3d"},
+ {file = "aiohttp-3.9.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:694df243f394629bcae2d8ed94c589a181e8ba8604159e6e45e7b22e58291113"},
+ {file = "aiohttp-3.9.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3dd8119752dd30dd7bca7d4bc2a92a59be6a003e4e5c2cf7e248b89751b8f4b7"},
+ {file = "aiohttp-3.9.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:eb6dfd52063186ac97b4caa25764cdbcdb4b10d97f5c5f66b0fa95052e744eb7"},
+ {file = "aiohttp-3.9.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:d97c3e286d0ac9af6223bc132dc4bad6540b37c8d6c0a15fe1e70fb34f9ec411"},
+ {file = "aiohttp-3.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:816f4db40555026e4cdda604a1088577c1fb957d02f3f1292e0221353403f192"},
+ {file = "aiohttp-3.9.0-cp311-cp311-win32.whl", hash = "sha256:3abf0551874fecf95f93b58f25ef4fc9a250669a2257753f38f8f592db85ddea"},
+ {file = "aiohttp-3.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:e18d92c3e9e22553a73e33784fcb0ed484c9874e9a3e96c16a8d6a1e74a0217b"},
+ {file = "aiohttp-3.9.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:99ae01fb13a618b9942376df77a1f50c20a281390dad3c56a6ec2942e266220d"},
+ {file = "aiohttp-3.9.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:05857848da443c8c12110d99285d499b4e84d59918a21132e45c3f0804876994"},
+ {file = "aiohttp-3.9.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:317719d7f824eba55857fe0729363af58e27c066c731bc62cd97bc9c3d9c7ea4"},
+ {file = "aiohttp-3.9.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1e3b3c107ccb0e537f309f719994a55621acd2c8fdf6d5ce5152aed788fb940"},
+ {file = "aiohttp-3.9.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:45820ddbb276113ead8d4907a7802adb77548087ff5465d5c554f9aa3928ae7d"},
+ {file = "aiohttp-3.9.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:05a183f1978802588711aed0dea31e697d760ce9055292db9dc1604daa9a8ded"},
+ {file = "aiohttp-3.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51a4cd44788ea0b5e6bb8fa704597af3a30be75503a7ed1098bc5b8ffdf6c982"},
+ {file = "aiohttp-3.9.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:673343fbc0c1ac44d0d2640addc56e97a052504beacd7ade0dc5e76d3a4c16e8"},
+ {file = "aiohttp-3.9.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7e8a3b79b6d186a9c99761fd4a5e8dd575a48d96021f220ac5b5fa856e5dd029"},
+ {file = "aiohttp-3.9.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:6777a390e41e78e7c45dab43a4a0196c55c3b8c30eebe017b152939372a83253"},
+ {file = "aiohttp-3.9.0-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:7ae5f99a32c53731c93ac3075abd3e1e5cfbe72fc3eaac4c27c9dd64ba3b19fe"},
+ {file = "aiohttp-3.9.0-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:f1e4f254e9c35d8965d377e065c4a8a55d396fe87c8e7e8429bcfdeeb229bfb3"},
+ {file = "aiohttp-3.9.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:11ca808f9a6b63485059f5f6e164ef7ec826483c1212a44f268b3653c91237d8"},
+ {file = "aiohttp-3.9.0-cp312-cp312-win32.whl", hash = "sha256:de3cc86f4ea8b4c34a6e43a7306c40c1275e52bfa9748d869c6b7d54aa6dad80"},
+ {file = "aiohttp-3.9.0-cp312-cp312-win_amd64.whl", hash = "sha256:ca4fddf84ac7d8a7d0866664936f93318ff01ee33e32381a115b19fb5a4d1202"},
+ {file = "aiohttp-3.9.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:f09960b5bb1017d16c0f9e9f7fc42160a5a49fa1e87a175fd4a2b1a1833ea0af"},
+ {file = "aiohttp-3.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8303531e2c17b1a494ffaeba48f2da655fe932c4e9a2626c8718403c83e5dd2b"},
+ {file = "aiohttp-3.9.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4790e44f46a4aa07b64504089def5744d3b6780468c4ec3a1a36eb7f2cae9814"},
+ {file = "aiohttp-3.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1d7edf74a36de0e5ca50787e83a77cf352f5504eb0ffa3f07000a911ba353fb"},
+ {file = "aiohttp-3.9.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:94697c7293199c2a2551e3e3e18438b4cba293e79c6bc2319f5fd652fccb7456"},
+ {file = "aiohttp-3.9.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a1b66dbb8a7d5f50e9e2ea3804b01e766308331d0cac76eb30c563ac89c95985"},
+ {file = "aiohttp-3.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9623cfd9e85b76b83ef88519d98326d4731f8d71869867e47a0b979ffec61c73"},
+ {file = "aiohttp-3.9.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f32c86dc967ab8c719fd229ce71917caad13cc1e8356ee997bf02c5b368799bf"},
+ {file = "aiohttp-3.9.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f50b4663c3e0262c3a361faf440761fbef60ccdde5fe8545689a4b3a3c149fb4"},
+ {file = "aiohttp-3.9.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:dcf71c55ec853826cd70eadb2b6ac62ec577416442ca1e0a97ad875a1b3a0305"},
+ {file = "aiohttp-3.9.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:42fe4fd9f0dfcc7be4248c162d8056f1d51a04c60e53366b0098d1267c4c9da8"},
+ {file = "aiohttp-3.9.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:76a86a9989ebf82ee61e06e2bab408aec4ea367dc6da35145c3352b60a112d11"},
+ {file = "aiohttp-3.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f9e09a1c83521d770d170b3801eea19b89f41ccaa61d53026ed111cb6f088887"},
+ {file = "aiohttp-3.9.0-cp38-cp38-win32.whl", hash = "sha256:a00ce44c21612d185c5275c5cba4bab8d7c1590f248638b667ed8a782fa8cd6f"},
+ {file = "aiohttp-3.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:d5b9345ab92ebe6003ae11d8092ce822a0242146e6fa270889b9ba965457ca40"},
+ {file = "aiohttp-3.9.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:98d21092bf2637c5fa724a428a69e8f5955f2182bff61f8036827cf6ce1157bf"},
+ {file = "aiohttp-3.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:35a68cd63ca6aaef5707888f17a70c36efe62b099a4e853d33dc2e9872125be8"},
+ {file = "aiohttp-3.9.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3d7f6235c7475658acfc1769d968e07ab585c79f6ca438ddfecaa9a08006aee2"},
+ {file = "aiohttp-3.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:db04d1de548f7a62d1dd7e7cdf7c22893ee168e22701895067a28a8ed51b3735"},
+ {file = "aiohttp-3.9.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:536b01513d67d10baf6f71c72decdf492fb7433c5f2f133e9a9087379d4b6f31"},
+ {file = "aiohttp-3.9.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87c8b0a6487e8109427ccf638580865b54e2e3db4a6e0e11c02639231b41fc0f"},
+ {file = "aiohttp-3.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7276fe0017664414fdc3618fca411630405f1aaf0cc3be69def650eb50441787"},
+ {file = "aiohttp-3.9.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:23170247ef89ffa842a02bbfdc425028574d9e010611659abeb24d890bc53bb8"},
+ {file = "aiohttp-3.9.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b1a2ea8252cacc7fd51df5a56d7a2bb1986ed39be9397b51a08015727dfb69bd"},
+ {file = "aiohttp-3.9.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2d71abc15ff7047412ef26bf812dfc8d0d1020d664617f4913df2df469f26b76"},
+ {file = "aiohttp-3.9.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:2d820162c8c2bdbe97d328cd4f417c955ca370027dce593345e437b2e9ffdc4d"},
+ {file = "aiohttp-3.9.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:2779f5e7c70f7b421915fd47db332c81de365678180a9f3ab404088f87ba5ff9"},
+ {file = "aiohttp-3.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:366bc870d7ac61726f32a489fbe3d1d8876e87506870be66b01aeb84389e967e"},
+ {file = "aiohttp-3.9.0-cp39-cp39-win32.whl", hash = "sha256:1df43596b826022b14998f0460926ce261544fedefe0d2f653e1b20f49e96454"},
+ {file = "aiohttp-3.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:9c196b30f1b1aa3363a69dd69079ae9bec96c2965c4707eaa6914ba099fb7d4f"},
+ {file = "aiohttp-3.9.0.tar.gz", hash = "sha256:09f23292d29135025e19e8ff4f0a68df078fe4ee013bca0105b2e803989de92d"},
]
[package.dependencies]
aiosignal = ">=1.1.2"
-async-timeout = ">=4.0.0a3,<5.0"
attrs = ">=17.3.0"
-charset-normalizer = ">=2.0,<4.0"
frozenlist = ">=1.1.1"
multidict = ">=4.5,<7.0"
yarl = ">=1.0,<2.0"
[package.extras]
-speedups = ["Brotli", "aiodns", "cchardet"]
+speedups = ["Brotli", "aiodns", "brotlicffi"]
[[package]]
name = "aiohttp-retry"
@@ -138,27 +125,27 @@ frozenlist = ">=1.1.0"
[[package]]
name = "amqp"
-version = "5.1.1"
+version = "5.2.0"
description = "Low-level AMQP client for Python (fork of amqplib)."
optional = false
python-versions = ">=3.6"
files = [
- {file = "amqp-5.1.1-py3-none-any.whl", hash = "sha256:6f0956d2c23d8fa6e7691934d8c3930eadb44972cbbd1a7ae3a520f735d43359"},
- {file = "amqp-5.1.1.tar.gz", hash = "sha256:2c1b13fecc0893e946c65cbd5f36427861cffa4ea2201d8f6fca22e2a373b5e2"},
+ {file = "amqp-5.2.0-py3-none-any.whl", hash = "sha256:827cb12fb0baa892aad844fd95258143bce4027fdac4fccddbc43330fd281637"},
+ {file = "amqp-5.2.0.tar.gz", hash = "sha256:a1ecff425ad063ad42a486c902807d1482311481c8ad95a72694b2975e75f7fd"},
]
[package.dependencies]
-vine = ">=5.0.0"
+vine = ">=5.0.0,<6.0.0"
[[package]]
name = "annotated-types"
-version = "0.5.0"
+version = "0.6.0"
description = "Reusable constraint types to use with typing.Annotated"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
files = [
- {file = "annotated_types-0.5.0-py3-none-any.whl", hash = "sha256:58da39888f92c276ad970249761ebea80ba544b77acddaa1a4d6cf78287d45fd"},
- {file = "annotated_types-0.5.0.tar.gz", hash = "sha256:47cdc3490d9ac1506ce92c7aaa76c579dc3509ff11e098fc867e5130ab7be802"},
+ {file = "annotated_types-0.6.0-py3-none-any.whl", hash = "sha256:0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43"},
+ {file = "annotated_types-0.6.0.tar.gz", hash = "sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d"},
]
[[package]]
@@ -274,17 +261,6 @@ files = [
{file = "astroid-3.0.1.tar.gz", hash = "sha256:86b0bb7d7da0be1a7c4aedb7974e391b32d4ed89e33de6ed6902b4b15c97577e"},
]
-[[package]]
-name = "async-timeout"
-version = "4.0.3"
-description = "Timeout context manager for asyncio programs"
-optional = false
-python-versions = ">=3.7"
-files = [
- {file = "async-timeout-4.0.3.tar.gz", hash = "sha256:4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f"},
- {file = "async_timeout-4.0.3-py3-none-any.whl", hash = "sha256:7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028"},
-]
-
[[package]]
name = "attrs"
version = "23.1.0"
@@ -422,40 +398,40 @@ typecheck = ["mypy"]
[[package]]
name = "billiard"
-version = "4.1.0"
+version = "4.2.0"
description = "Python multiprocessing fork with improvements and bugfixes"
optional = false
python-versions = ">=3.7"
files = [
- {file = "billiard-4.1.0-py3-none-any.whl", hash = "sha256:0f50d6be051c6b2b75bfbc8bfd85af195c5739c281d3f5b86a5640c65563614a"},
- {file = "billiard-4.1.0.tar.gz", hash = "sha256:1ad2eeae8e28053d729ba3373d34d9d6e210f6e4d8bf0a9c64f92bd053f1edf5"},
+ {file = "billiard-4.2.0-py3-none-any.whl", hash = "sha256:07aa978b308f334ff8282bd4a746e681b3513db5c9a514cbdd810cbbdc19714d"},
+ {file = "billiard-4.2.0.tar.gz", hash = "sha256:9a3c3184cb275aa17a732f93f65b20c525d3d9f253722d26a82194803ade5a2c"},
]
[[package]]
name = "black"
-version = "23.10.1"
+version = "23.11.0"
description = "The uncompromising code formatter."
optional = false
python-versions = ">=3.8"
files = [
- {file = "black-23.10.1-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:ec3f8e6234c4e46ff9e16d9ae96f4ef69fa328bb4ad08198c8cee45bb1f08c69"},
- {file = "black-23.10.1-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:1b917a2aa020ca600483a7b340c165970b26e9029067f019e3755b56e8dd5916"},
- {file = "black-23.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c74de4c77b849e6359c6f01987e94873c707098322b91490d24296f66d067dc"},
- {file = "black-23.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:7b4d10b0f016616a0d93d24a448100adf1699712fb7a4efd0e2c32bbb219b173"},
- {file = "black-23.10.1-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:b15b75fc53a2fbcac8a87d3e20f69874d161beef13954747e053bca7a1ce53a0"},
- {file = "black-23.10.1-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:e293e4c2f4a992b980032bbd62df07c1bcff82d6964d6c9496f2cd726e246ace"},
- {file = "black-23.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7d56124b7a61d092cb52cce34182a5280e160e6aff3137172a68c2c2c4b76bcb"},
- {file = "black-23.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:3f157a8945a7b2d424da3335f7ace89c14a3b0625e6593d21139c2d8214d55ce"},
- {file = "black-23.10.1-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:cfcce6f0a384d0da692119f2d72d79ed07c7159879d0bb1bb32d2e443382bf3a"},
- {file = "black-23.10.1-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:33d40f5b06be80c1bbce17b173cda17994fbad096ce60eb22054da021bf933d1"},
- {file = "black-23.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:840015166dbdfbc47992871325799fd2dc0dcf9395e401ada6d88fe11498abad"},
- {file = "black-23.10.1-cp38-cp38-win_amd64.whl", hash = "sha256:037e9b4664cafda5f025a1728c50a9e9aedb99a759c89f760bd83730e76ba884"},
- {file = "black-23.10.1-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:7cb5936e686e782fddb1c73f8aa6f459e1ad38a6a7b0e54b403f1f05a1507ee9"},
- {file = "black-23.10.1-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:7670242e90dc129c539e9ca17665e39a146a761e681805c54fbd86015c7c84f7"},
- {file = "black-23.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ed45ac9a613fb52dad3b61c8dea2ec9510bf3108d4db88422bacc7d1ba1243d"},
- {file = "black-23.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:6d23d7822140e3fef190734216cefb262521789367fbdc0b3f22af6744058982"},
- {file = "black-23.10.1-py3-none-any.whl", hash = "sha256:d431e6739f727bb2e0495df64a6c7a5310758e87505f5f8cde9ff6c0f2d7e4fe"},
- {file = "black-23.10.1.tar.gz", hash = "sha256:1f8ce316753428ff68749c65a5f7844631aa18c8679dfd3ca9dc1a289979c258"},
+ {file = "black-23.11.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dbea0bb8575c6b6303cc65017b46351dc5953eea5c0a59d7b7e3a2d2f433a911"},
+ {file = "black-23.11.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:412f56bab20ac85927f3a959230331de5614aecda1ede14b373083f62ec24e6f"},
+ {file = "black-23.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d136ef5b418c81660ad847efe0e55c58c8208b77a57a28a503a5f345ccf01394"},
+ {file = "black-23.11.0-cp310-cp310-win_amd64.whl", hash = "sha256:6c1cac07e64433f646a9a838cdc00c9768b3c362805afc3fce341af0e6a9ae9f"},
+ {file = "black-23.11.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cf57719e581cfd48c4efe28543fea3d139c6b6f1238b3f0102a9c73992cbb479"},
+ {file = "black-23.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:698c1e0d5c43354ec5d6f4d914d0d553a9ada56c85415700b81dc90125aac244"},
+ {file = "black-23.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:760415ccc20f9e8747084169110ef75d545f3b0932ee21368f63ac0fee86b221"},
+ {file = "black-23.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:58e5f4d08a205b11800332920e285bd25e1a75c54953e05502052738fe16b3b5"},
+ {file = "black-23.11.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:45aa1d4675964946e53ab81aeec7a37613c1cb71647b5394779e6efb79d6d187"},
+ {file = "black-23.11.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4c44b7211a3a0570cc097e81135faa5f261264f4dfaa22bd5ee2875a4e773bd6"},
+ {file = "black-23.11.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a9acad1451632021ee0d146c8765782a0c3846e0e0ea46659d7c4f89d9b212b"},
+ {file = "black-23.11.0-cp38-cp38-win_amd64.whl", hash = "sha256:fc7f6a44d52747e65a02558e1d807c82df1d66ffa80a601862040a43ec2e3142"},
+ {file = "black-23.11.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7f622b6822f02bfaf2a5cd31fdb7cd86fcf33dab6ced5185c35f5db98260b055"},
+ {file = "black-23.11.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:250d7e60f323fcfc8ea6c800d5eba12f7967400eb6c2d21ae85ad31c204fb1f4"},
+ {file = "black-23.11.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5133f5507007ba08d8b7b263c7aa0f931af5ba88a29beacc4b2dc23fcefe9c06"},
+ {file = "black-23.11.0-cp39-cp39-win_amd64.whl", hash = "sha256:421f3e44aa67138ab1b9bfbc22ee3780b22fa5b291e4db8ab7eee95200726b07"},
+ {file = "black-23.11.0-py3-none-any.whl", hash = "sha256:54caaa703227c6e0c87b76326d0862184729a69b73d3b7305b6288e1d830067e"},
+ {file = "black-23.11.0.tar.gz", hash = "sha256:4c68855825ff432d197229846f971bc4d6666ce90492e5b02013bcaca4d9ab05"},
]
[package.dependencies]
@@ -484,89 +460,91 @@ files = [
[[package]]
name = "cachetools"
-version = "5.3.1"
+version = "5.3.2"
description = "Extensible memoizing collections and decorators"
optional = false
python-versions = ">=3.7"
files = [
- {file = "cachetools-5.3.1-py3-none-any.whl", hash = "sha256:95ef631eeaea14ba2e36f06437f36463aac3a096799e876ee55e5cdccb102590"},
- {file = "cachetools-5.3.1.tar.gz", hash = "sha256:dce83f2d9b4e1f732a8cd44af8e8fab2dbe46201467fc98b3ef8f269092bf62b"},
+ {file = "cachetools-5.3.2-py3-none-any.whl", hash = "sha256:861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1"},
+ {file = "cachetools-5.3.2.tar.gz", hash = "sha256:086ee420196f7b2ab9ca2db2520aca326318b68fe5ba8bc4d49cca91add450f2"},
]
[[package]]
name = "cbor2"
-version = "5.4.6"
+version = "5.5.1"
description = "CBOR (de)serializer with extensive tag support"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
files = [
- {file = "cbor2-5.4.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:309fffbb7f561d67f02095d4b9657b73c9220558701c997e9bfcfbca2696e927"},
- {file = "cbor2-5.4.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ff95b33e5482313a74648ca3620c9328e9f30ecfa034df040b828e476597d352"},
- {file = "cbor2-5.4.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:db9eb582fce972f0fa429d8159b7891ff8deccb7affc4995090afc61ce0d328a"},
- {file = "cbor2-5.4.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3950be57a1698086cf26d8710b4e5a637b65133c5b1f9eec23967d4089d8cfed"},
- {file = "cbor2-5.4.6-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:78304df140b9e13b93bcbb2aecee64c9aaa9f1cadbd45f043b5e7b93cc2f21a2"},
- {file = "cbor2-5.4.6-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e73ca40dd3c7210ff776acff9869ddc9ff67bae7c425b58e5715dcf55275163f"},
- {file = "cbor2-5.4.6-cp310-cp310-win_amd64.whl", hash = "sha256:0b956f19e93ba3180c336282cd1b6665631f2d3a196a9c19b29a833bf979e7a4"},
- {file = "cbor2-5.4.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1c12c0ab78f5bc290b08a79152a8621822415836a86f8f4b50dadba371736fda"},
- {file = "cbor2-5.4.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3545b16f9f0d5f34d4c99052829c3726020a07be34c99c250d0df87418f02954"},
- {file = "cbor2-5.4.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:24144822f8d2b0156f4cda9427f071f969c18683ffed39663dc86bc0a75ae4dd"},
- {file = "cbor2-5.4.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1835536e76ea16e88c934aac5e369ba9f93d495b01e5fa2d93f0b4986b89146d"},
- {file = "cbor2-5.4.6-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:39452c799453f5bf33281ffc0752c620b8bfa0b7c13070b87d370257a1311976"},
- {file = "cbor2-5.4.6-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3316f09a77af85e7772ecfdd693b0f450678a60b1aee641bac319289757e3fa0"},
- {file = "cbor2-5.4.6-cp311-cp311-win_amd64.whl", hash = "sha256:456cdff668a50a52fdb8aa6d0742511e43ed46d6a5b463dba80a5a720fa0d320"},
- {file = "cbor2-5.4.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:9394ca49ecdf0957924e45d09a4026482d184a465a047f60c4044eb464c43de9"},
- {file = "cbor2-5.4.6-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56dfa030cd3d67e5b6701d3067923f2f61536a8ffb1b45be14775d1e866b59ae"},
- {file = "cbor2-5.4.6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5094562dfe3e5583202b93ef7ca5082c2ba5571accb2c4412d27b7d0ba8a563"},
- {file = "cbor2-5.4.6-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:94f844d0e232aca061a86dd6ff191e47ba0389ddd34acb784ad9a41594dc99a4"},
- {file = "cbor2-5.4.6-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:7bbd3470eb685325398023e335be896b74f61b014896604ed45049a7b7b6d8ac"},
- {file = "cbor2-5.4.6-cp37-cp37m-win_amd64.whl", hash = "sha256:0bd12c54a48949d11f5ffc2fa27f5df1b4754111f5207453e5fae3512ebb3cab"},
- {file = "cbor2-5.4.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d2984a488f350aee1d54fa9cb8c6a3c1f1f5b268abbc91161e47185de4d829f3"},
- {file = "cbor2-5.4.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c285a2cb2c04004bfead93df89d92a0cef1874ad337d0cb5ea53c2c31e97bfdb"},
- {file = "cbor2-5.4.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6709d97695205cd08255363b54afa035306d5302b7b5e38308c8ff5a47e60f2a"},
- {file = "cbor2-5.4.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96087fa5336ebfc94465c0768cd5de0fcf9af3840d2cf0ce32f5767855f1a293"},
- {file = "cbor2-5.4.6-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0d2b926b024d3a1549b819bc82fdc387062bbd977b0299dd5fa5e0ea3267b98b"},
- {file = "cbor2-5.4.6-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6e1b5aee920b6a2f737aa12e2b54de3826b09f885a7ce402db84216343368140"},
- {file = "cbor2-5.4.6-cp38-cp38-win_amd64.whl", hash = "sha256:79e048e623846d60d735bb350263e8fdd36cb6195d7f1a2b57eacd573d9c0b33"},
- {file = "cbor2-5.4.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:80ac8ba450c7a41c5afe5f7e503d3092442ed75393e1de162b0bf0d97edf7c7f"},
- {file = "cbor2-5.4.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4ce1a2c272ba8523a55ea2f1d66e3464e89fa0e37c9a3d786a919fe64e68dbd7"},
- {file = "cbor2-5.4.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1618d16e310f7ffed141762b0ff5d8bb6b53ad449406115cc465bf04213cefcf"},
- {file = "cbor2-5.4.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4bbbdb2e3ef274865dc3f279aae109b5d94f4654aea3c72c479fb37e4a1e7ed7"},
- {file = "cbor2-5.4.6-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6f9c702bee2954fffdfa3de95a5af1a6b1c5f155e39490353d5654d83bb05bb9"},
- {file = "cbor2-5.4.6-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4b9f3924da0e460a93b3674c7e71020dd6c9e9f17400a34e52a88c0af2dcd2aa"},
- {file = "cbor2-5.4.6-cp39-cp39-win_amd64.whl", hash = "sha256:d54bd840b4fe34f097b8665fc0692c7dd175349e53976be6c5de4433b970daa4"},
- {file = "cbor2-5.4.6-py3-none-any.whl", hash = "sha256:181ac494091d1f9c5bb373cd85514ce1eb967a8cf3ec298e8dfa8878aa823956"},
- {file = "cbor2-5.4.6.tar.gz", hash = "sha256:b893500db0fe033e570c3adc956af6eefc57e280026bd2d86fd53da9f1e594d7"},
+ {file = "cbor2-5.5.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:37ba4f719384bd4ea317e92a8763ea343e205f3112c8241778fd9dbc64ae1498"},
+ {file = "cbor2-5.5.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:425ae919120b9d05b4794b3e5faf6584fc47a9d61db059d4f00ce16ae93a3f63"},
+ {file = "cbor2-5.5.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c511ff6356d6f4292ced856d5048a24ee61a85634816f29dadf1f089e8cb4f9"},
+ {file = "cbor2-5.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d6ab54a9282dd99a3a70d0f64706d3b3592e7920564a93101caa74dec322346c"},
+ {file = "cbor2-5.5.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:39d94852dd61bda5b3d2bfe74e7b194a7199937d270f90099beec3e7584f0c9b"},
+ {file = "cbor2-5.5.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:65532ba929beebe1c63317ad00c79d4936b60a5c29a3c329d2aa7df4e72ad907"},
+ {file = "cbor2-5.5.1-cp310-cp310-win_amd64.whl", hash = "sha256:1206180f66a9ad23e692cf457610c877f186ad303a1264b6c5335015b7bee83e"},
+ {file = "cbor2-5.5.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:42155a20be46312fad2ceb85a408e2d90da059c2d36a65e0b99abca57c5357fd"},
+ {file = "cbor2-5.5.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6f3827ae14c009df9b37790f1da5cd1f9d64f7ffec472a49ebf865c0af6b77e9"},
+ {file = "cbor2-5.5.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4bfa417dbb8b4581ad3c2312469899518596551cfb0fe5bdaf8a6921cff69d7e"},
+ {file = "cbor2-5.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3317e7dfb4f3180be90bcd853204558d89f119b624c2168153b53dea305e79d"},
+ {file = "cbor2-5.5.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a5770bdf4340de55679efe6c38fc6d64529fda547e7a85eb0217a82717a8235"},
+ {file = "cbor2-5.5.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b5d53826ad0c92fcb004b2a475896610b51e0ca010f6c37d762aae44ab0807b2"},
+ {file = "cbor2-5.5.1-cp311-cp311-win_amd64.whl", hash = "sha256:dc77cac985f7f7a20f2d8b1957d1e79393d7df823f61c7c6173d3a0011c1d770"},
+ {file = "cbor2-5.5.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9e45d5aa8e484b4bf57240d8e7949389f1c9d4073758abb30954386321b55c9d"},
+ {file = "cbor2-5.5.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:93b949a66bec40dd0ca87a6d026136fea2cf1660120f921199a47ac8027af253"},
+ {file = "cbor2-5.5.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:93d601ca92d917f769370a5e6c3ead62dca6451b2b603915e4fcf300083b9fcd"},
+ {file = "cbor2-5.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a11876abd50b9f70d114fcdbb0b5a3249ccd7d321465f0350028fd6d2317e114"},
+ {file = "cbor2-5.5.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:fd77c558decdba2a2a7a463e6346d53781d2163bacf205f77b999f561ba4ac73"},
+ {file = "cbor2-5.5.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efb81920d80410b8e80a4a6a8b06ec9b766be0ae7f3029af8ae4b30914edcfa3"},
+ {file = "cbor2-5.5.1-cp312-cp312-win_amd64.whl", hash = "sha256:4bb35f3b1ebd4b7b37628f0cd5c839f3008dec669194a2a4a33d91bab7f8663b"},
+ {file = "cbor2-5.5.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f41e4a439f642954ed728dc18915098b5f2ebec7029eaebe52c06c52b6a9a63a"},
+ {file = "cbor2-5.5.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4eae4d56314f22920a28bf7affefdfc918646877ce3b16220dc6cf38a584aa41"},
+ {file = "cbor2-5.5.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:559a0c1ec8dcedd6142b81727403e0f5a2e8f4c18e8bb3c548107ec39af4e9cb"},
+ {file = "cbor2-5.5.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:537da7bfee97ee44a11b300c034c18e674af6a5dc4718a6fba141037f099c7ec"},
+ {file = "cbor2-5.5.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5c99fd8bbc6bbf3bf4d6b2996594ae633b778b27b0531559487950762c4e1e3f"},
+ {file = "cbor2-5.5.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4ee46e6dbc8e2cf302a022fec513d57dba65e9d5ec495bcd1ad97a5dbdbab249"},
+ {file = "cbor2-5.5.1-cp38-cp38-win_amd64.whl", hash = "sha256:67e2be461320197495fff55f250b111d4125a0a2d02e6256e41f8598adc3ad3f"},
+ {file = "cbor2-5.5.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4384a56afef0b908b61c8ea3cca3e257a316427ace3411308f51ee301b23adf9"},
+ {file = "cbor2-5.5.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8cc64acc606b7f2a4b673a1d6cde5a9cb1860a6ce27b353e269c9535efbd62c"},
+ {file = "cbor2-5.5.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50019fea3cb07fa9b2b53772a52b4243e87de232591570c4c272b3ebdb419493"},
+ {file = "cbor2-5.5.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a18be0af9241883bc67a036c1f33e3f9956d31337ccd412194bf759bc1095e03"},
+ {file = "cbor2-5.5.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:60e7e0073291096605de27de3ce006148cf9a095199160439555f14f93d044d5"},
+ {file = "cbor2-5.5.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:41f7501338228b27dac88c1197928cf8985f6fc775f59be89c6fdaddb4e69658"},
+ {file = "cbor2-5.5.1-cp39-cp39-win_amd64.whl", hash = "sha256:c85ab7697252af2240e939707c935ea18081ccb580d4b5b9a94b04148ab2c32b"},
+ {file = "cbor2-5.5.1-py3-none-any.whl", hash = "sha256:dca639c8ff81b9f0c92faf97324adfdbfb5c2a5bb97f249606c6f5b94c77cc0d"},
+ {file = "cbor2-5.5.1.tar.gz", hash = "sha256:f9e192f461a9f8f6082df28c035b006d153904213dc8640bed8a72d72bbc9475"},
]
[package.extras]
-doc = ["sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"]
-test = ["pytest", "pytest-cov"]
+benchmarks = ["pytest-benchmark (==4.0.0)"]
+doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme (>=1.3.0)", "typing-extensions"]
+test = ["coverage (>=7)", "hypothesis", "pytest"]
[[package]]
name = "celery"
-version = "5.3.4"
+version = "5.3.5"
description = "Distributed Task Queue."
optional = false
python-versions = ">=3.8"
files = [
- {file = "celery-5.3.4-py3-none-any.whl", hash = "sha256:1e6ed40af72695464ce98ca2c201ad0ef8fd192246f6c9eac8bba343b980ad34"},
- {file = "celery-5.3.4.tar.gz", hash = "sha256:9023df6a8962da79eb30c0c84d5f4863d9793a466354cc931d7f72423996de28"},
+ {file = "celery-5.3.5-py3-none-any.whl", hash = "sha256:30b75ac60fb081c2d9f8881382c148ed7c9052031a75a1e8743ff4b4b071f184"},
+ {file = "celery-5.3.5.tar.gz", hash = "sha256:6b65d8dd5db499dd6190c45aa6398e171b99592f2af62c312f7391587feb5458"},
]
[package.dependencies]
-billiard = ">=4.1.0,<5.0"
+billiard = ">=4.2.0,<5.0"
click = ">=8.1.2,<9.0"
click-didyoumean = ">=0.3.0"
click-plugins = ">=1.1.1"
click-repl = ">=0.2.0"
-kombu = ">=5.3.2,<6.0"
+kombu = ">=5.3.3,<6.0"
python-dateutil = ">=2.8.2"
tzdata = ">=2022.7"
-vine = ">=5.0.0,<6.0"
+vine = ">=5.1.0,<6.0"
[package.extras]
arangodb = ["pyArango (>=2.0.2)"]
-auth = ["cryptography (==41.0.3)"]
+auth = ["cryptography (==41.0.5)"]
azureblockblob = ["azure-storage-blob (>=12.15.0)"]
brotli = ["brotli (>=1.0.0)", "brotlipy (>=0.7.0)"]
cassandra = ["cassandra-driver (>=3.25.0,<4)"]
@@ -576,109 +554,97 @@ couchbase = ["couchbase (>=3.0.0)"]
couchdb = ["pycouchdb (==1.14.2)"]
django = ["Django (>=2.2.28)"]
dynamodb = ["boto3 (>=1.26.143)"]
-elasticsearch = ["elasticsearch (<8.0)"]
+elasticsearch = ["elastic-transport (<=8.10.0)", "elasticsearch (<=8.10.1)"]
eventlet = ["eventlet (>=0.32.0)"]
gevent = ["gevent (>=1.5.0)"]
librabbitmq = ["librabbitmq (>=2.0.0)"]
memcache = ["pylibmc (==1.6.3)"]
mongodb = ["pymongo[srv] (>=4.0.2)"]
-msgpack = ["msgpack (==1.0.5)"]
+msgpack = ["msgpack (==1.0.7)"]
pymemcache = ["python-memcached (==1.59)"]
pyro = ["pyro4 (==4.82)"]
pytest = ["pytest-celery (==0.0.0)"]
-redis = ["redis (>=4.5.2,!=4.5.5,<5.0.0)"]
+redis = ["redis (>=4.5.2,!=4.5.5,<6.0.0)"]
s3 = ["boto3 (>=1.26.143)"]
slmq = ["softlayer-messaging (>=1.0.3)"]
-solar = ["ephem (==4.1.4)"]
+solar = ["ephem (==4.1.5)"]
sqlalchemy = ["sqlalchemy (>=1.4.48,<2.1)"]
sqs = ["boto3 (>=1.26.143)", "kombu[sqs] (>=5.3.0)", "pycurl (>=7.43.0.5)", "urllib3 (>=1.26.16)"]
tblib = ["tblib (>=1.3.0)", "tblib (>=1.5.0)"]
yaml = ["PyYAML (>=3.10)"]
zookeeper = ["kazoo (>=1.3.1)"]
-zstd = ["zstandard (==0.21.0)"]
+zstd = ["zstandard (==0.22.0)"]
[[package]]
name = "certifi"
-version = "2023.7.22"
+version = "2023.11.17"
description = "Python package for providing Mozilla's CA Bundle."
optional = false
python-versions = ">=3.6"
files = [
- {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"},
- {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"},
+ {file = "certifi-2023.11.17-py3-none-any.whl", hash = "sha256:e036ab49d5b79556f99cfc2d9320b34cfbe5be05c5871b51de9329f0603b0474"},
+ {file = "certifi-2023.11.17.tar.gz", hash = "sha256:9b469f3a900bf28dc19b8cfbf8019bf47f7fdd1a65a1d4ffb98fc14166beb4d1"},
]
[[package]]
name = "cffi"
-version = "1.15.1"
+version = "1.16.0"
description = "Foreign Function Interface for Python calling C code."
optional = false
-python-versions = "*"
+python-versions = ">=3.8"
files = [
- {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"},
- {file = "cffi-1.15.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2"},
- {file = "cffi-1.15.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914"},
- {file = "cffi-1.15.1-cp27-cp27m-win32.whl", hash = "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3"},
- {file = "cffi-1.15.1-cp27-cp27m-win_amd64.whl", hash = "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e"},
- {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162"},
- {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b"},
- {file = "cffi-1.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21"},
- {file = "cffi-1.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185"},
- {file = "cffi-1.15.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd"},
- {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc"},
- {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f"},
- {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e"},
- {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4"},
- {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01"},
- {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e"},
- {file = "cffi-1.15.1-cp310-cp310-win32.whl", hash = "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2"},
- {file = "cffi-1.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d"},
- {file = "cffi-1.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac"},
- {file = "cffi-1.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83"},
- {file = "cffi-1.15.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9"},
- {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c"},
- {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325"},
- {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c"},
- {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef"},
- {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8"},
- {file = "cffi-1.15.1-cp311-cp311-win32.whl", hash = "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d"},
- {file = "cffi-1.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104"},
- {file = "cffi-1.15.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7"},
- {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6"},
- {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d"},
- {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a"},
- {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405"},
- {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e"},
- {file = "cffi-1.15.1-cp36-cp36m-win32.whl", hash = "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf"},
- {file = "cffi-1.15.1-cp36-cp36m-win_amd64.whl", hash = "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497"},
- {file = "cffi-1.15.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375"},
- {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e"},
- {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82"},
- {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b"},
- {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c"},
- {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426"},
- {file = "cffi-1.15.1-cp37-cp37m-win32.whl", hash = "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9"},
- {file = "cffi-1.15.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045"},
- {file = "cffi-1.15.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3"},
- {file = "cffi-1.15.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a"},
- {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5"},
- {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca"},
- {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02"},
- {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192"},
- {file = "cffi-1.15.1-cp38-cp38-win32.whl", hash = "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314"},
- {file = "cffi-1.15.1-cp38-cp38-win_amd64.whl", hash = "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5"},
- {file = "cffi-1.15.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585"},
- {file = "cffi-1.15.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"},
- {file = "cffi-1.15.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415"},
- {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d"},
- {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984"},
- {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35"},
- {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27"},
- {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76"},
- {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3"},
- {file = "cffi-1.15.1-cp39-cp39-win32.whl", hash = "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee"},
- {file = "cffi-1.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c"},
- {file = "cffi-1.15.1.tar.gz", hash = "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"},
+ {file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"},
+ {file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"},
+ {file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"},
+ {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"},
+ {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"},
+ {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"},
+ {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"},
+ {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"},
+ {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"},
+ {file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"},
+ {file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"},
+ {file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"},
+ {file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"},
+ {file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"},
+ {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"},
+ {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"},
+ {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"},
+ {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"},
+ {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"},
+ {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"},
+ {file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"},
+ {file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"},
+ {file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"},
+ {file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"},
+ {file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"},
+ {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"},
+ {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"},
+ {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"},
+ {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"},
+ {file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"},
+ {file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"},
+ {file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"},
+ {file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc"},
+ {file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0"},
+ {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b"},
+ {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c"},
+ {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b"},
+ {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324"},
+ {file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a"},
+ {file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36"},
+ {file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed"},
+ {file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2"},
+ {file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872"},
+ {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8"},
+ {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f"},
+ {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4"},
+ {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098"},
+ {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000"},
+ {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe"},
+ {file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4"},
+ {file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8"},
+ {file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"},
]
[package.dependencies]
@@ -727,86 +693,101 @@ tests = ["async-timeout", "cryptography (>=1.3.0)", "pytest", "pytest-asyncio",
[[package]]
name = "charset-normalizer"
-version = "3.2.0"
+version = "3.3.2"
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
optional = false
python-versions = ">=3.7.0"
files = [
- {file = "charset-normalizer-3.2.0.tar.gz", hash = "sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace"},
- {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710"},
- {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed"},
- {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9"},
- {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623"},
- {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a"},
- {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8"},
- {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad"},
- {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c"},
- {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3"},
- {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029"},
- {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f"},
- {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a"},
- {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd"},
- {file = "charset_normalizer-3.2.0-cp310-cp310-win32.whl", hash = "sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96"},
- {file = "charset_normalizer-3.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea"},
- {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09"},
- {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2"},
- {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac"},
- {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918"},
- {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a"},
- {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a"},
- {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6"},
- {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3"},
- {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d"},
- {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2"},
- {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6"},
- {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23"},
- {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa"},
- {file = "charset_normalizer-3.2.0-cp311-cp311-win32.whl", hash = "sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1"},
- {file = "charset_normalizer-3.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489"},
- {file = "charset_normalizer-3.2.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346"},
- {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982"},
- {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c"},
- {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4"},
- {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449"},
- {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3"},
- {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a"},
- {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7"},
- {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd"},
- {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3"},
- {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592"},
- {file = "charset_normalizer-3.2.0-cp37-cp37m-win32.whl", hash = "sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1"},
- {file = "charset_normalizer-3.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959"},
- {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669"},
- {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329"},
- {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149"},
- {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94"},
- {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f"},
- {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa"},
- {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a"},
- {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037"},
- {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46"},
- {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2"},
- {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d"},
- {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c"},
- {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10"},
- {file = "charset_normalizer-3.2.0-cp38-cp38-win32.whl", hash = "sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706"},
- {file = "charset_normalizer-3.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e"},
- {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c"},
- {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f"},
- {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858"},
- {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5"},
- {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952"},
- {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4"},
- {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200"},
- {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252"},
- {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22"},
- {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c"},
- {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e"},
- {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299"},
- {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020"},
- {file = "charset_normalizer-3.2.0-cp39-cp39-win32.whl", hash = "sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9"},
- {file = "charset_normalizer-3.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80"},
- {file = "charset_normalizer-3.2.0-py3-none-any.whl", hash = "sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6"},
+ {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"},
+ {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"},
]
[[package]]
@@ -902,13 +883,13 @@ files = [
[[package]]
name = "constantly"
-version = "15.1.0"
+version = "23.10.4"
description = "Symbolic constants in Python"
optional = false
-python-versions = "*"
+python-versions = ">=3.8"
files = [
- {file = "constantly-15.1.0-py2.py3-none-any.whl", hash = "sha256:dd2fa9d6b1a51a83f0d7dd76293d734046aa176e384bf6e33b7e44880eb37c5d"},
- {file = "constantly-15.1.0.tar.gz", hash = "sha256:586372eb92059873e29eba4f9dec8381541b4d3834660707faf8ba59146dfc35"},
+ {file = "constantly-23.10.4-py3-none-any.whl", hash = "sha256:3fd9b4d1c3dc1ec9757f3c52aef7e53ad9323dbe39f51dfd4c43853b68dfa3f9"},
+ {file = "constantly-23.10.4.tar.gz", hash = "sha256:aa92b70a33e2ac0bb33cd745eb61776594dc48764b06c35e0efd050b7f1c7cbd"},
]
[[package]]
@@ -977,34 +958,34 @@ toml = ["tomli"]
[[package]]
name = "cryptography"
-version = "41.0.4"
+version = "41.0.5"
description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
optional = false
python-versions = ">=3.7"
files = [
- {file = "cryptography-41.0.4-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:80907d3faa55dc5434a16579952ac6da800935cd98d14dbd62f6f042c7f5e839"},
- {file = "cryptography-41.0.4-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:35c00f637cd0b9d5b6c6bd11b6c3359194a8eba9c46d4e875a3660e3b400005f"},
- {file = "cryptography-41.0.4-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cecfefa17042941f94ab54f769c8ce0fe14beff2694e9ac684176a2535bf9714"},
- {file = "cryptography-41.0.4-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e40211b4923ba5a6dc9769eab704bdb3fbb58d56c5b336d30996c24fcf12aadb"},
- {file = "cryptography-41.0.4-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:23a25c09dfd0d9f28da2352503b23e086f8e78096b9fd585d1d14eca01613e13"},
- {file = "cryptography-41.0.4-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:2ed09183922d66c4ec5fdaa59b4d14e105c084dd0febd27452de8f6f74704143"},
- {file = "cryptography-41.0.4-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:5a0f09cefded00e648a127048119f77bc2b2ec61e736660b5789e638f43cc397"},
- {file = "cryptography-41.0.4-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:9eeb77214afae972a00dee47382d2591abe77bdae166bda672fb1e24702a3860"},
- {file = "cryptography-41.0.4-cp37-abi3-win32.whl", hash = "sha256:3b224890962a2d7b57cf5eeb16ccaafba6083f7b811829f00476309bce2fe0fd"},
- {file = "cryptography-41.0.4-cp37-abi3-win_amd64.whl", hash = "sha256:c880eba5175f4307129784eca96f4e70b88e57aa3f680aeba3bab0e980b0f37d"},
- {file = "cryptography-41.0.4-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:004b6ccc95943f6a9ad3142cfabcc769d7ee38a3f60fb0dddbfb431f818c3a67"},
- {file = "cryptography-41.0.4-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:86defa8d248c3fa029da68ce61fe735432b047e32179883bdb1e79ed9bb8195e"},
- {file = "cryptography-41.0.4-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:37480760ae08065437e6573d14be973112c9e6dcaf5f11d00147ee74f37a3829"},
- {file = "cryptography-41.0.4-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:b5f4dfe950ff0479f1f00eda09c18798d4f49b98f4e2006d644b3301682ebdca"},
- {file = "cryptography-41.0.4-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:7e53db173370dea832190870e975a1e09c86a879b613948f09eb49324218c14d"},
- {file = "cryptography-41.0.4-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5b72205a360f3b6176485a333256b9bcd48700fc755fef51c8e7e67c4b63e3ac"},
- {file = "cryptography-41.0.4-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:93530900d14c37a46ce3d6c9e6fd35dbe5f5601bf6b3a5c325c7bffc030344d9"},
- {file = "cryptography-41.0.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:efc8ad4e6fc4f1752ebfb58aefece8b4e3c4cae940b0994d43649bdfce8d0d4f"},
- {file = "cryptography-41.0.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c3391bd8e6de35f6f1140e50aaeb3e2b3d6a9012536ca23ab0d9c35ec18c8a91"},
- {file = "cryptography-41.0.4-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:0d9409894f495d465fe6fda92cb70e8323e9648af912d5b9141d616df40a87b8"},
- {file = "cryptography-41.0.4-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:8ac4f9ead4bbd0bc8ab2d318f97d85147167a488be0e08814a37eb2f439d5cf6"},
- {file = "cryptography-41.0.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:047c4603aeb4bbd8db2756e38f5b8bd7e94318c047cfe4efeb5d715e08b49311"},
- {file = "cryptography-41.0.4.tar.gz", hash = "sha256:7febc3094125fc126a7f6fb1f420d0da639f3f32cb15c8ff0dc3997c4549f51a"},
+ {file = "cryptography-41.0.5-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:da6a0ff8f1016ccc7477e6339e1d50ce5f59b88905585f77193ebd5068f1e797"},
+ {file = "cryptography-41.0.5-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:b948e09fe5fb18517d99994184854ebd50b57248736fd4c720ad540560174ec5"},
+ {file = "cryptography-41.0.5-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d38e6031e113b7421db1de0c1b1f7739564a88f1684c6b89234fbf6c11b75147"},
+ {file = "cryptography-41.0.5-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e270c04f4d9b5671ebcc792b3ba5d4488bf7c42c3c241a3748e2599776f29696"},
+ {file = "cryptography-41.0.5-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ec3b055ff8f1dce8e6ef28f626e0972981475173d7973d63f271b29c8a2897da"},
+ {file = "cryptography-41.0.5-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:7d208c21e47940369accfc9e85f0de7693d9a5d843c2509b3846b2db170dfd20"},
+ {file = "cryptography-41.0.5-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:8254962e6ba1f4d2090c44daf50a547cd5f0bf446dc658a8e5f8156cae0d8548"},
+ {file = "cryptography-41.0.5-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:a48e74dad1fb349f3dc1d449ed88e0017d792997a7ad2ec9587ed17405667e6d"},
+ {file = "cryptography-41.0.5-cp37-abi3-win32.whl", hash = "sha256:d3977f0e276f6f5bf245c403156673db103283266601405376f075c849a0b936"},
+ {file = "cryptography-41.0.5-cp37-abi3-win_amd64.whl", hash = "sha256:73801ac9736741f220e20435f84ecec75ed70eda90f781a148f1bad546963d81"},
+ {file = "cryptography-41.0.5-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3be3ca726e1572517d2bef99a818378bbcf7d7799d5372a46c79c29eb8d166c1"},
+ {file = "cryptography-41.0.5-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:e886098619d3815e0ad5790c973afeee2c0e6e04b4da90b88e6bd06e2a0b1b72"},
+ {file = "cryptography-41.0.5-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:573eb7128cbca75f9157dcde974781209463ce56b5804983e11a1c462f0f4e88"},
+ {file = "cryptography-41.0.5-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:0c327cac00f082013c7c9fb6c46b7cc9fa3c288ca702c74773968173bda421bf"},
+ {file = "cryptography-41.0.5-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:227ec057cd32a41c6651701abc0328135e472ed450f47c2766f23267b792a88e"},
+ {file = "cryptography-41.0.5-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:22892cc830d8b2c89ea60148227631bb96a7da0c1b722f2aac8824b1b7c0b6b8"},
+ {file = "cryptography-41.0.5-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:5a70187954ba7292c7876734183e810b728b4f3965fbe571421cb2434d279179"},
+ {file = "cryptography-41.0.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:88417bff20162f635f24f849ab182b092697922088b477a7abd6664ddd82291d"},
+ {file = "cryptography-41.0.5-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c707f7afd813478e2019ae32a7c49cd932dd60ab2d2a93e796f68236b7e1fbf1"},
+ {file = "cryptography-41.0.5-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:580afc7b7216deeb87a098ef0674d6ee34ab55993140838b14c9b83312b37b86"},
+ {file = "cryptography-41.0.5-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:fba1e91467c65fe64a82c689dc6cf58151158993b13eb7a7f3f4b7f395636723"},
+ {file = "cryptography-41.0.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:0d2a6a598847c46e3e321a7aef8af1436f11c27f1254933746304ff014664d84"},
+ {file = "cryptography-41.0.5.tar.gz", hash = "sha256:392cb88b597247177172e02da6b7a63deeff1937fa6fec3bbf902ebd75d97ec7"},
]
[package.dependencies]
@@ -1117,13 +1098,13 @@ graph = ["objgraph (>=1.7.2)"]
[[package]]
name = "django"
-version = "4.2.6"
+version = "4.2.7"
description = "A high-level Python web framework that encourages rapid development and clean, pragmatic design."
optional = false
python-versions = ">=3.8"
files = [
- {file = "Django-4.2.6-py3-none-any.whl", hash = "sha256:a64d2487cdb00ad7461434320ccc38e60af9c404773a2f95ab0093b4453a3215"},
- {file = "Django-4.2.6.tar.gz", hash = "sha256:08f41f468b63335aea0d904c5729e0250300f6a1907bf293a65499496cdbc68f"},
+ {file = "Django-4.2.7-py3-none-any.whl", hash = "sha256:e1d37c51ad26186de355cbcec16613ebdabfa9689bbade9c538835205a8abbe9"},
+ {file = "Django-4.2.7.tar.gz", hash = "sha256:8e0f1c2c2786b5c0e39fe1afce24c926040fad47c8ea8ad30aaf1188df29fc41"},
]
[package.dependencies]
@@ -1137,13 +1118,13 @@ bcrypt = ["bcrypt"]
[[package]]
name = "django-filter"
-version = "23.3"
+version = "23.4"
description = "Django-filter is a reusable Django application for allowing users to filter querysets dynamically."
optional = false
python-versions = ">=3.7"
files = [
- {file = "django-filter-23.3.tar.gz", hash = "sha256:015fe155582e1805b40629344e4a6cf3cc40450827d294d040b4b8c1749a9fa6"},
- {file = "django_filter-23.3-py3-none-any.whl", hash = "sha256:65bc5d1d8f4fff3aaf74cb5da537b6620e9214fb4b3180f6c560776b1b6dccd0"},
+ {file = "django-filter-23.4.tar.gz", hash = "sha256:bed070b38359dce7d2dbe057b165d59773057986356cb809ded983b36c77a976"},
+ {file = "django_filter-23.4-py3-none-any.whl", hash = "sha256:526954f18bd7d6423f232a9a7974f58fbc6863908b9fc160de075e01adcc2a5f"},
]
[package.dependencies]
@@ -1374,33 +1355,19 @@ six = "*"
[[package]]
name = "email-validator"
-version = "2.0.0.post2"
+version = "2.1.0.post1"
description = "A robust email address syntax and deliverability validation library."
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
files = [
- {file = "email_validator-2.0.0.post2-py3-none-any.whl", hash = "sha256:2466ba57cda361fb7309fd3d5a225723c788ca4bbad32a0ebd5373b99730285c"},
- {file = "email_validator-2.0.0.post2.tar.gz", hash = "sha256:1ff6e86044200c56ae23595695c54e9614f4a9551e0e393614f764860b3d7900"},
+ {file = "email_validator-2.1.0.post1-py3-none-any.whl", hash = "sha256:c973053efbeddfef924dc0bd93f6e77a1ea7ee0fce935aea7103c7a3d6d2d637"},
+ {file = "email_validator-2.1.0.post1.tar.gz", hash = "sha256:a4b0bd1cf55f073b924258d19321b1f3aa74b4b5a71a42c305575dba920e1a44"},
]
[package.dependencies]
dnspython = ">=2.0.0"
idna = ">=2.0.0"
-[[package]]
-name = "exceptiongroup"
-version = "1.1.3"
-description = "Backport of PEP 654 (exception groups)"
-optional = false
-python-versions = ">=3.7"
-files = [
- {file = "exceptiongroup-1.1.3-py3-none-any.whl", hash = "sha256:343280667a4585d195ca1cf9cef84a4e178c4b6cf2274caef9859782b567d5e3"},
- {file = "exceptiongroup-1.1.3.tar.gz", hash = "sha256:097acd85d473d75af5bb98e41b61ff7fe35efe6675e4f9370ec6ec5126d160e9"},
-]
-
-[package.extras]
-test = ["pytest (>=6)"]
-
[[package]]
name = "facebook-sdk"
version = "3.1.0"
@@ -1535,13 +1502,13 @@ requests = ">=2.24.0,<3.0.0"
[[package]]
name = "gitdb"
-version = "4.0.10"
+version = "4.0.11"
description = "Git Object Database"
optional = false
python-versions = ">=3.7"
files = [
- {file = "gitdb-4.0.10-py3-none-any.whl", hash = "sha256:c286cf298426064079ed96a9e4a9d39e7f3e9bf15ba60701e95f5492f28415c7"},
- {file = "gitdb-4.0.10.tar.gz", hash = "sha256:6eb990b69df4e15bad899ea868dc46572c3f75339735663b81de79b06f17eb9a"},
+ {file = "gitdb-4.0.11-py3-none-any.whl", hash = "sha256:81a3407ddd2ee8df444cbacea00e2d038e40150acfa3001696fe0dcf1d3adfa4"},
+ {file = "gitdb-4.0.11.tar.gz", hash = "sha256:bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b"},
]
[package.dependencies]
@@ -1549,44 +1516,43 @@ smmap = ">=3.0.1,<6"
[[package]]
name = "gitpython"
-version = "3.1.37"
+version = "3.1.40"
description = "GitPython is a Python library used to interact with Git repositories"
optional = false
python-versions = ">=3.7"
files = [
- {file = "GitPython-3.1.37-py3-none-any.whl", hash = "sha256:5f4c4187de49616d710a77e98ddf17b4782060a1788df441846bddefbb89ab33"},
- {file = "GitPython-3.1.37.tar.gz", hash = "sha256:f9b9ddc0761c125d5780eab2d64be4873fc6817c2899cbcb34b02344bdc7bc54"},
+ {file = "GitPython-3.1.40-py3-none-any.whl", hash = "sha256:cf14627d5a8049ffbf49915732e5eddbe8134c3bdb9d476e6182b676fc573f8a"},
+ {file = "GitPython-3.1.40.tar.gz", hash = "sha256:22b126e9ffb671fdd0c129796343a02bf67bf2994b35449ffc9321aa755e18a4"},
]
[package.dependencies]
gitdb = ">=4.0.1,<5"
[package.extras]
-test = ["black", "coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mypy", "pre-commit", "pytest", "pytest-cov", "pytest-sugar"]
+test = ["black", "coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock", "mypy", "pre-commit", "pytest", "pytest-cov", "pytest-instafail", "pytest-subtests", "pytest-sugar"]
[[package]]
name = "google-auth"
-version = "2.17.3"
+version = "2.23.4"
description = "Google Authentication Library"
optional = false
-python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*"
+python-versions = ">=3.7"
files = [
- {file = "google-auth-2.17.3.tar.gz", hash = "sha256:ce311e2bc58b130fddf316df57c9b3943c2a7b4f6ec31de9663a9333e4064efc"},
- {file = "google_auth-2.17.3-py2.py3-none-any.whl", hash = "sha256:f586b274d3eb7bd932ea424b1c702a30e0393a2e2bc4ca3eae8263ffd8be229f"},
+ {file = "google-auth-2.23.4.tar.gz", hash = "sha256:79905d6b1652187def79d491d6e23d0cbb3a21d3c7ba0dbaa9c8a01906b13ff3"},
+ {file = "google_auth-2.23.4-py2.py3-none-any.whl", hash = "sha256:d4bbc92fe4b8bfd2f3e8d88e5ba7085935da208ee38a134fc280e7ce682a05f2"},
]
[package.dependencies]
cachetools = ">=2.0.0,<6.0"
pyasn1-modules = ">=0.2.1"
-rsa = {version = ">=3.1.4,<5", markers = "python_version >= \"3.6\""}
-six = ">=1.9.0"
+rsa = ">=3.1.4,<5"
[package.extras]
-aiohttp = ["aiohttp (>=3.6.2,<4.0.0dev)", "requests (>=2.20.0,<3.0.0dev)"]
+aiohttp = ["aiohttp (>=3.6.2,<4.0.0.dev0)", "requests (>=2.20.0,<3.0.0.dev0)"]
enterprise-cert = ["cryptography (==36.0.2)", "pyopenssl (==22.0.0)"]
pyopenssl = ["cryptography (>=38.0.3)", "pyopenssl (>=20.0.0)"]
reauth = ["pyu2f (>=0.1.5)"]
-requests = ["requests (>=2.20.0,<3.0.0dev)"]
+requests = ["requests (>=2.20.0,<3.0.0.dev0)"]
[[package]]
name = "gprof2dot"
@@ -1632,46 +1598,47 @@ files = [
[[package]]
name = "httptools"
-version = "0.6.0"
+version = "0.6.1"
description = "A collection of framework independent HTTP protocol utils."
optional = false
-python-versions = ">=3.5.0"
+python-versions = ">=3.8.0"
files = [
- {file = "httptools-0.6.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:818325afee467d483bfab1647a72054246d29f9053fd17cc4b86cda09cc60339"},
- {file = "httptools-0.6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72205730bf1be875003692ca54a4a7c35fac77b4746008966061d9d41a61b0f5"},
- {file = "httptools-0.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33eb1d4e609c835966e969a31b1dedf5ba16b38cab356c2ce4f3e33ffa94cad3"},
- {file = "httptools-0.6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bdc6675ec6cb79d27e0575750ac6e2b47032742e24eed011b8db73f2da9ed40"},
- {file = "httptools-0.6.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:463c3bc5ef64b9cf091be9ac0e0556199503f6e80456b790a917774a616aff6e"},
- {file = "httptools-0.6.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:82f228b88b0e8c6099a9c4757ce9fdbb8b45548074f8d0b1f0fc071e35655d1c"},
- {file = "httptools-0.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:0781fedc610293a2716bc7fa142d4c85e6776bc59d617a807ff91246a95dea35"},
- {file = "httptools-0.6.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:721e503245d591527cddd0f6fd771d156c509e831caa7a57929b55ac91ee2b51"},
- {file = "httptools-0.6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:274bf20eeb41b0956e34f6a81f84d26ed57c84dd9253f13dcb7174b27ccd8aaf"},
- {file = "httptools-0.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:259920bbae18740a40236807915def554132ad70af5067e562f4660b62c59b90"},
- {file = "httptools-0.6.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03bfd2ae8a2d532952ac54445a2fb2504c804135ed28b53fefaf03d3a93eb1fd"},
- {file = "httptools-0.6.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f959e4770b3fc8ee4dbc3578fd910fab9003e093f20ac8c621452c4d62e517cb"},
- {file = "httptools-0.6.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6e22896b42b95b3237eccc42278cd72c0df6f23247d886b7ded3163452481e38"},
- {file = "httptools-0.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:38f3cafedd6aa20ae05f81f2e616ea6f92116c8a0f8dcb79dc798df3356836e2"},
- {file = "httptools-0.6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:47043a6e0ea753f006a9d0dd076a8f8c99bc0ecae86a0888448eb3076c43d717"},
- {file = "httptools-0.6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35a541579bed0270d1ac10245a3e71e5beeb1903b5fbbc8d8b4d4e728d48ff1d"},
- {file = "httptools-0.6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65d802e7b2538a9756df5acc062300c160907b02e15ed15ba035b02bce43e89c"},
- {file = "httptools-0.6.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:26326e0a8fe56829f3af483200d914a7cd16d8d398d14e36888b56de30bec81a"},
- {file = "httptools-0.6.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e41ccac9e77cd045f3e4ee0fc62cbf3d54d7d4b375431eb855561f26ee7a9ec4"},
- {file = "httptools-0.6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:4e748fc0d5c4a629988ef50ac1aef99dfb5e8996583a73a717fc2cac4ab89932"},
- {file = "httptools-0.6.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:cf8169e839a0d740f3d3c9c4fa630ac1a5aaf81641a34575ca6773ed7ce041a1"},
- {file = "httptools-0.6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5dcc14c090ab57b35908d4a4585ec5c0715439df07be2913405991dbb37e049d"},
- {file = "httptools-0.6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d0b0571806a5168013b8c3d180d9f9d6997365a4212cb18ea20df18b938aa0b"},
- {file = "httptools-0.6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0fb4a608c631f7dcbdf986f40af7a030521a10ba6bc3d36b28c1dc9e9035a3c0"},
- {file = "httptools-0.6.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:93f89975465133619aea8b1952bc6fa0e6bad22a447c6d982fc338fbb4c89649"},
- {file = "httptools-0.6.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:73e9d66a5a28b2d5d9fbd9e197a31edd02be310186db423b28e6052472dc8201"},
- {file = "httptools-0.6.0-cp38-cp38-win_amd64.whl", hash = "sha256:22c01fcd53648162730a71c42842f73b50f989daae36534c818b3f5050b54589"},
- {file = "httptools-0.6.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3f96d2a351b5625a9fd9133c95744e8ca06f7a4f8f0b8231e4bbaae2c485046a"},
- {file = "httptools-0.6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:72ec7c70bd9f95ef1083d14a755f321d181f046ca685b6358676737a5fecd26a"},
- {file = "httptools-0.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b703d15dbe082cc23266bf5d9448e764c7cb3fcfe7cb358d79d3fd8248673ef9"},
- {file = "httptools-0.6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82c723ed5982f8ead00f8e7605c53e55ffe47c47465d878305ebe0082b6a1755"},
- {file = "httptools-0.6.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b0a816bb425c116a160fbc6f34cece097fd22ece15059d68932af686520966bd"},
- {file = "httptools-0.6.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:dea66d94e5a3f68c5e9d86e0894653b87d952e624845e0b0e3ad1c733c6cc75d"},
- {file = "httptools-0.6.0-cp39-cp39-win_amd64.whl", hash = "sha256:23b09537086a5a611fad5696fc8963d67c7e7f98cb329d38ee114d588b0b74cd"},
- {file = "httptools-0.6.0.tar.gz", hash = "sha256:9fc6e409ad38cbd68b177cd5158fc4042c796b82ca88d99ec78f07bed6c6b796"},
+ {file = "httptools-0.6.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d2f6c3c4cb1948d912538217838f6e9960bc4a521d7f9b323b3da579cd14532f"},
+ {file = "httptools-0.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:00d5d4b68a717765b1fabfd9ca755bd12bf44105eeb806c03d1962acd9b8e563"},
+ {file = "httptools-0.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:639dc4f381a870c9ec860ce5c45921db50205a37cc3334e756269736ff0aac58"},
+ {file = "httptools-0.6.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e57997ac7fb7ee43140cc03664de5f268813a481dff6245e0075925adc6aa185"},
+ {file = "httptools-0.6.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0ac5a0ae3d9f4fe004318d64b8a854edd85ab76cffbf7ef5e32920faef62f142"},
+ {file = "httptools-0.6.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:3f30d3ce413088a98b9db71c60a6ada2001a08945cb42dd65a9a9fe228627658"},
+ {file = "httptools-0.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:1ed99a373e327f0107cb513b61820102ee4f3675656a37a50083eda05dc9541b"},
+ {file = "httptools-0.6.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7a7ea483c1a4485c71cb5f38be9db078f8b0e8b4c4dc0210f531cdd2ddac1ef1"},
+ {file = "httptools-0.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:85ed077c995e942b6f1b07583e4eb0a8d324d418954fc6af913d36db7c05a5a0"},
+ {file = "httptools-0.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b0bb634338334385351a1600a73e558ce619af390c2b38386206ac6a27fecfc"},
+ {file = "httptools-0.6.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7d9ceb2c957320def533671fc9c715a80c47025139c8d1f3797477decbc6edd2"},
+ {file = "httptools-0.6.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:4f0f8271c0a4db459f9dc807acd0eadd4839934a4b9b892f6f160e94da309837"},
+ {file = "httptools-0.6.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6a4f5ccead6d18ec072ac0b84420e95d27c1cdf5c9f1bc8fbd8daf86bd94f43d"},
+ {file = "httptools-0.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:5cceac09f164bcba55c0500a18fe3c47df29b62353198e4f37bbcc5d591172c3"},
+ {file = "httptools-0.6.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:75c8022dca7935cba14741a42744eee13ba05db00b27a4b940f0d646bd4d56d0"},
+ {file = "httptools-0.6.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:48ed8129cd9a0d62cf4d1575fcf90fb37e3ff7d5654d3a5814eb3d55f36478c2"},
+ {file = "httptools-0.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f58e335a1402fb5a650e271e8c2d03cfa7cea46ae124649346d17bd30d59c90"},
+ {file = "httptools-0.6.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93ad80d7176aa5788902f207a4e79885f0576134695dfb0fefc15b7a4648d503"},
+ {file = "httptools-0.6.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9bb68d3a085c2174c2477eb3ffe84ae9fb4fde8792edb7bcd09a1d8467e30a84"},
+ {file = "httptools-0.6.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:b512aa728bc02354e5ac086ce76c3ce635b62f5fbc32ab7082b5e582d27867bb"},
+ {file = "httptools-0.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:97662ce7fb196c785344d00d638fc9ad69e18ee4bfb4000b35a52efe5adcc949"},
+ {file = "httptools-0.6.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:8e216a038d2d52ea13fdd9b9c9c7459fb80d78302b257828285eca1c773b99b3"},
+ {file = "httptools-0.6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3e802e0b2378ade99cd666b5bffb8b2a7cc8f3d28988685dc300469ea8dd86cb"},
+ {file = "httptools-0.6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4bd3e488b447046e386a30f07af05f9b38d3d368d1f7b4d8f7e10af85393db97"},
+ {file = "httptools-0.6.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe467eb086d80217b7584e61313ebadc8d187a4d95bb62031b7bab4b205c3ba3"},
+ {file = "httptools-0.6.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:3c3b214ce057c54675b00108ac42bacf2ab8f85c58e3f324a4e963bbc46424f4"},
+ {file = "httptools-0.6.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8ae5b97f690badd2ca27cbf668494ee1b6d34cf1c464271ef7bfa9ca6b83ffaf"},
+ {file = "httptools-0.6.1-cp38-cp38-win_amd64.whl", hash = "sha256:405784577ba6540fa7d6ff49e37daf104e04f4b4ff2d1ac0469eaa6a20fde084"},
+ {file = "httptools-0.6.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:95fb92dd3649f9cb139e9c56604cc2d7c7bf0fc2e7c8d7fbd58f96e35eddd2a3"},
+ {file = "httptools-0.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dcbab042cc3ef272adc11220517278519adf8f53fd3056d0e68f0a6f891ba94e"},
+ {file = "httptools-0.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cf2372e98406efb42e93bfe10f2948e467edfd792b015f1b4ecd897903d3e8d"},
+ {file = "httptools-0.6.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:678fcbae74477a17d103b7cae78b74800d795d702083867ce160fc202104d0da"},
+ {file = "httptools-0.6.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:e0b281cf5a125c35f7f6722b65d8542d2e57331be573e9e88bc8b0115c4a7a81"},
+ {file = "httptools-0.6.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:95658c342529bba4e1d3d2b1a874db16c7cca435e8827422154c9da76ac4e13a"},
+ {file = "httptools-0.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:7ebaec1bf683e4bf5e9fbb49b8cc36da482033596a415b3e4ebab5a4c0d7ec5e"},
+ {file = "httptools-0.6.1.tar.gz", hash = "sha256:c6e26c30455600b95d94b1b836085138e82f177351454ee841c148f93a9bad5a"},
]
[package.extras]
@@ -1833,13 +1800,13 @@ files = [
[[package]]
name = "jsonschema"
-version = "4.19.0"
+version = "4.20.0"
description = "An implementation of JSON Schema validation for Python"
optional = false
python-versions = ">=3.8"
files = [
- {file = "jsonschema-4.19.0-py3-none-any.whl", hash = "sha256:043dc26a3845ff09d20e4420d6012a9c91c9aa8999fa184e7efcfeccb41e32cb"},
- {file = "jsonschema-4.19.0.tar.gz", hash = "sha256:6e1e7569ac13be8139b2dd2c21a55d350066ee3f80df06c608b398cdc6f30e8f"},
+ {file = "jsonschema-4.20.0-py3-none-any.whl", hash = "sha256:ed6231f0429ecf966f5bc8dfef245998220549cbbcf140f913b7464c52c3b6b3"},
+ {file = "jsonschema-4.20.0.tar.gz", hash = "sha256:4f614fd46d8d61258610998997743ec5492a648b33cf478c1ddc23ed4598a5fa"},
]
[package.dependencies]
@@ -1854,27 +1821,27 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-
[[package]]
name = "jsonschema-specifications"
-version = "2023.7.1"
+version = "2023.11.1"
description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry"
optional = false
python-versions = ">=3.8"
files = [
- {file = "jsonschema_specifications-2023.7.1-py3-none-any.whl", hash = "sha256:05adf340b659828a004220a9613be00fa3f223f2b82002e273dee62fd50524b1"},
- {file = "jsonschema_specifications-2023.7.1.tar.gz", hash = "sha256:c91a50404e88a1f6ba40636778e2ee08f6e24c5613fe4c53ac24578a5a7f72bb"},
+ {file = "jsonschema_specifications-2023.11.1-py3-none-any.whl", hash = "sha256:f596778ab612b3fd29f72ea0d990393d0540a5aab18bf0407a46632eab540779"},
+ {file = "jsonschema_specifications-2023.11.1.tar.gz", hash = "sha256:c9b234904ffe02f079bf91b14d79987faa685fd4b39c377a0996954c0090b9ca"},
]
[package.dependencies]
-referencing = ">=0.28.0"
+referencing = ">=0.31.0"
[[package]]
name = "kombu"
-version = "5.3.2"
+version = "5.3.4"
description = "Messaging library for Python."
optional = false
python-versions = ">=3.8"
files = [
- {file = "kombu-5.3.2-py3-none-any.whl", hash = "sha256:b753c9cfc9b1e976e637a7cbc1a65d446a22e45546cd996ea28f932082b7dc9e"},
- {file = "kombu-5.3.2.tar.gz", hash = "sha256:0ba213f630a2cb2772728aef56ac6883dc3a2f13435e10048f6e97d48506dbbd"},
+ {file = "kombu-5.3.4-py3-none-any.whl", hash = "sha256:63bb093fc9bb80cfb3a0972336a5cec1fa7ac5f9ef7e8237c6bf8dda9469313e"},
+ {file = "kombu-5.3.4.tar.gz", hash = "sha256:0bb2e278644d11dea6272c17974a3dbb9688a949f3bb60aeb5b791329c44fadc"},
]
[package.dependencies]
@@ -1884,14 +1851,14 @@ vine = "*"
[package.extras]
azureservicebus = ["azure-servicebus (>=7.10.0)"]
azurestoragequeues = ["azure-identity (>=1.12.0)", "azure-storage-queue (>=12.6.0)"]
-confluentkafka = ["confluent-kafka (==2.1.1)"]
+confluentkafka = ["confluent-kafka (>=2.2.0)"]
consul = ["python-consul2"]
librabbitmq = ["librabbitmq (>=2.0.0)"]
mongodb = ["pymongo (>=4.1.1)"]
msgpack = ["msgpack"]
pyro = ["pyro4"]
qpid = ["qpid-python (>=0.26)", "qpid-tools (>=0.26)"]
-redis = ["redis (>=4.5.2)"]
+redis = ["redis (>=4.5.2,!=4.5.5,<6.0.0)"]
slmq = ["softlayer-messaging (>=1.0.3)"]
sqlalchemy = ["sqlalchemy (>=1.4.48,<2.1)"]
sqs = ["boto3 (>=1.26.143)", "pycurl (>=7.43.0.5)", "urllib3 (>=1.26.16)"]
@@ -2140,14 +2107,64 @@ files = [
[[package]]
name = "maxminddb"
-version = "2.4.0"
+version = "2.5.1"
description = "Reader for the MaxMind DB format"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
files = [
- {file = "maxminddb-2.4.0.tar.gz", hash = "sha256:81e54e53408bd502650e5969ccba16780af659ec1db1c44b2c997e4330a5ed96"},
+ {file = "maxminddb-2.5.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:62e93a8e99937bf4307eeece3ca37e1161325ebf9363c4ce195410fb5daf64a0"},
+ {file = "maxminddb-2.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea2e27a507b53dfbf2ba2ba85c98682a1ad2dac3f9941a7bffa5cb86150d0c47"},
+ {file = "maxminddb-2.5.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a01b0341bd6bee431bb8c07c7ac0ed221250c7390b125c025b7d57578e78e8a3"},
+ {file = "maxminddb-2.5.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:607344b1079ea647629bf962dcea7580ec864faaad3f5aae650e2e8652121d89"},
+ {file = "maxminddb-2.5.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2c2901daebd7c8a702302315e7a58cdc38e626406ad4a05b4d48634897d5f5a3"},
+ {file = "maxminddb-2.5.1-cp310-cp310-win32.whl", hash = "sha256:7805ae8c9de433c38939ada2e376706a9f6740239f61fd445927b88f5b42c267"},
+ {file = "maxminddb-2.5.1-cp310-cp310-win_amd64.whl", hash = "sha256:f1e5bd58b71f322dc6c16a95a129433b1bc229d4b714f870a61c2367425396ee"},
+ {file = "maxminddb-2.5.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b0bbbd58b300aaddf985f763720bdebba9f7a73168ff9f57168117f630ad1c06"},
+ {file = "maxminddb-2.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a6751e2e89d62d53217870bcc2a8c887dc56ae370ba1b74e52e880761916e54"},
+ {file = "maxminddb-2.5.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2ecb1be961f1969be047d07743093f0dcf2f6d4ec3a06a4555587f380a96f6e7"},
+ {file = "maxminddb-2.5.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1e091c2b44673c218ee2df23adbc0b6d04fd5c646cfcb6c6fe26fb849434812a"},
+ {file = "maxminddb-2.5.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09b295c401c104ae0e30f66c1a3f3c2aa4ba2cbe12a787576499356a5a4d6c1"},
+ {file = "maxminddb-2.5.1-cp311-cp311-win32.whl", hash = "sha256:3d52c693baf07bba897d109b0ecb067f21fd0cc0fb266d67db456e85b80d699e"},
+ {file = "maxminddb-2.5.1-cp311-cp311-win_amd64.whl", hash = "sha256:4c67621e842c415ce336ab019a9f087305dfcf24c095b68b8e9d27848f6f6d91"},
+ {file = "maxminddb-2.5.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:17ea454f61631b9815d420d48d00663f8718fc7de30be53ffcec0f73989475eb"},
+ {file = "maxminddb-2.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef4d508c899ce0f37de731340759c68bfd1102a39a873675c71fae2c8d71ad97"},
+ {file = "maxminddb-2.5.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c4e5ca423b1e310f0327536f5ed1a2c6e08d83289a7f909e021590b0b477cae2"},
+ {file = "maxminddb-2.5.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:0a21abd85e10e5e0f60244b49c3db17e7e48befd4972e62a62833d91e2acbb49"},
+ {file = "maxminddb-2.5.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:85a302d79577efe5bc308647394ffdc535dd5f062644c41103604ccf24931a05"},
+ {file = "maxminddb-2.5.1-cp312-cp312-win32.whl", hash = "sha256:dd28c434fb44f825dde6a75df2c338d44645791b03480af66a4d993f93801e10"},
+ {file = "maxminddb-2.5.1-cp312-cp312-win_amd64.whl", hash = "sha256:b477852cf1741d9187b021e23723e64b063794bbf946a9b5b84cc222f3caf58a"},
+ {file = "maxminddb-2.5.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a1e1a19f9740f586362f47862d0095b54d50b9d465babcaa8a563746132fe5be"},
+ {file = "maxminddb-2.5.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d654895b546a47e85f2e071b98e377a60bb03cd643b9423017fa66fcd5adedce"},
+ {file = "maxminddb-2.5.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0702da59b9670a72761b65cb1a52bc3032d8f6799bdab641cb8350ad5740580b"},
+ {file = "maxminddb-2.5.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:2e20a70c1545d6626dcd4ce2d7ecf3d566d978ea64cb37e7952f93baff66b812"},
+ {file = "maxminddb-2.5.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:0cbd272db3202e948c9088e48dec62add071a47971d84ceb11d2cb2880f83e5a"},
+ {file = "maxminddb-2.5.1-cp38-cp38-win32.whl", hash = "sha256:fbd01fc7d7b5b2befe914e8cdb5ed3a1c5476e57b765197cceff8d897f33d012"},
+ {file = "maxminddb-2.5.1-cp38-cp38-win_amd64.whl", hash = "sha256:fe0af3ba9e1a78ed5f2ad32fc18d18b78ef233e7d0c627e1a77a525a7eb0c241"},
+ {file = "maxminddb-2.5.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5d772be68cce812f7c4b15ae8c68e624c8b88ff83071e3903ca5b5f55e343c25"},
+ {file = "maxminddb-2.5.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:910e7b3ad87d5352ed3f496bd42bffbf9f896245278b0d8e76afa1382e42a7ae"},
+ {file = "maxminddb-2.5.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:892c11a8694394e97d3ac0f8d5974ea588c732d14e721f22095c58b4f584c144"},
+ {file = "maxminddb-2.5.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:3ce1f42bdfce7b86cb5a56cba730fed611fb879d867e6024f0d520257bef6891"},
+ {file = "maxminddb-2.5.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6667948e7501a513caef90edda2d367865097239d4c2381eb3998e9905af7209"},
+ {file = "maxminddb-2.5.1-cp39-cp39-win32.whl", hash = "sha256:500d321bdefe4dcd351e4390a79b7786aab49b0536bedfa0788e5ffb0e91e421"},
+ {file = "maxminddb-2.5.1-cp39-cp39-win_amd64.whl", hash = "sha256:93f7055779caf7753810f1e2c6444af6d727393fd116ffa0767fbd54fb8c9bbf"},
+ {file = "maxminddb-2.5.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:8cee4315da7cdd3f2a18f1ab1418953a7a9eda65e63095b01f03c7d3645d633e"},
+ {file = "maxminddb-2.5.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c97eac5af102cede4b5f57cecb25e8f949fa4e4a8d812bed575539951c60ecaf"},
+ {file = "maxminddb-2.5.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:526744b12075051fa20979090c111cc3a42a3b55e2714818270c7b84a41a8cfe"},
+ {file = "maxminddb-2.5.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:fad45cd2f2e3c5fbebacb8d172a60fb22443222e549bf740a0bc7eeb849e5ce7"},
+ {file = "maxminddb-2.5.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:8b98ed5c34955c48e72d35daed713ba4a6833a8a6d1204e79d2c85e644049792"},
+ {file = "maxminddb-2.5.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:639aee8abd63a95baa12b94b6f3a842d51877d631879c7d08c98c68dc44a84c3"},
+ {file = "maxminddb-2.5.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a7a73ab4bbc16b81983531c99fa102a0c7dae459db958c17fea48c981f5e764"},
+ {file = "maxminddb-2.5.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:aae262da1940a67c3ba765c49e2308947ce68ff647f87630002c306433a98ca1"},
+ {file = "maxminddb-2.5.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:b223c53077a736c304b63cf5afceb928975fbd12ddae5afd6b71370bab7b4700"},
+ {file = "maxminddb-2.5.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:969d0057ea5472e0b574c5293c4f3ecf49585362351c543e8ea55dc48b60f1eb"},
+ {file = "maxminddb-2.5.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d4d36cf3d390f02d2bdf53d9efefb92be7bd70e07a5a86cdb79020c48c2d81b7"},
+ {file = "maxminddb-2.5.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:188173c07dce0692fd5660a6eb7ea8c126d7b3a4b61496c8a8ee9e8b10186ff5"},
+ {file = "maxminddb-2.5.1.tar.gz", hash = "sha256:4807d374e645bd68334e4f487ba85a27189dbc1267a98e644aa686a7927e0559"},
]
+[package.dependencies]
+setuptools = ">=68.2.2"
+
[[package]]
name = "mccabe"
version = "0.7.0"
@@ -2172,74 +2189,67 @@ files = [
[[package]]
name = "msgpack"
-version = "1.0.5"
+version = "1.0.7"
description = "MessagePack serializer"
optional = false
-python-versions = "*"
+python-versions = ">=3.8"
files = [
- {file = "msgpack-1.0.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:525228efd79bb831cf6830a732e2e80bc1b05436b086d4264814b4b2955b2fa9"},
- {file = "msgpack-1.0.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4f8d8b3bf1ff2672567d6b5c725a1b347fe838b912772aa8ae2bf70338d5a198"},
- {file = "msgpack-1.0.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cdc793c50be3f01106245a61b739328f7dccc2c648b501e237f0699fe1395b81"},
- {file = "msgpack-1.0.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cb47c21a8a65b165ce29f2bec852790cbc04936f502966768e4aae9fa763cb7"},
- {file = "msgpack-1.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e42b9594cc3bf4d838d67d6ed62b9e59e201862a25e9a157019e171fbe672dd3"},
- {file = "msgpack-1.0.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:55b56a24893105dc52c1253649b60f475f36b3aa0fc66115bffafb624d7cb30b"},
- {file = "msgpack-1.0.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:1967f6129fc50a43bfe0951c35acbb729be89a55d849fab7686004da85103f1c"},
- {file = "msgpack-1.0.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20a97bf595a232c3ee6d57ddaadd5453d174a52594bf9c21d10407e2a2d9b3bd"},
- {file = "msgpack-1.0.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d25dd59bbbbb996eacf7be6b4ad082ed7eacc4e8f3d2df1ba43822da9bfa122a"},
- {file = "msgpack-1.0.5-cp310-cp310-win32.whl", hash = "sha256:382b2c77589331f2cb80b67cc058c00f225e19827dbc818d700f61513ab47bea"},
- {file = "msgpack-1.0.5-cp310-cp310-win_amd64.whl", hash = "sha256:4867aa2df9e2a5fa5f76d7d5565d25ec76e84c106b55509e78c1ede0f152659a"},
- {file = "msgpack-1.0.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9f5ae84c5c8a857ec44dc180a8b0cc08238e021f57abdf51a8182e915e6299f0"},
- {file = "msgpack-1.0.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9e6ca5d5699bcd89ae605c150aee83b5321f2115695e741b99618f4856c50898"},
- {file = "msgpack-1.0.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5494ea30d517a3576749cad32fa27f7585c65f5f38309c88c6d137877fa28a5a"},
- {file = "msgpack-1.0.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1ab2f3331cb1b54165976a9d976cb251a83183631c88076613c6c780f0d6e45a"},
- {file = "msgpack-1.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28592e20bbb1620848256ebc105fc420436af59515793ed27d5c77a217477705"},
- {file = "msgpack-1.0.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe5c63197c55bce6385d9aee16c4d0641684628f63ace85f73571e65ad1c1e8d"},
- {file = "msgpack-1.0.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ed40e926fa2f297e8a653c954b732f125ef97bdd4c889f243182299de27e2aa9"},
- {file = "msgpack-1.0.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b2de4c1c0538dcb7010902a2b97f4e00fc4ddf2c8cda9749af0e594d3b7fa3d7"},
- {file = "msgpack-1.0.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bf22a83f973b50f9d38e55c6aade04c41ddda19b00c4ebc558930d78eecc64ed"},
- {file = "msgpack-1.0.5-cp311-cp311-win32.whl", hash = "sha256:c396e2cc213d12ce017b686e0f53497f94f8ba2b24799c25d913d46c08ec422c"},
- {file = "msgpack-1.0.5-cp311-cp311-win_amd64.whl", hash = "sha256:6c4c68d87497f66f96d50142a2b73b97972130d93677ce930718f68828b382e2"},
- {file = "msgpack-1.0.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:a2b031c2e9b9af485d5e3c4520f4220d74f4d222a5b8dc8c1a3ab9448ca79c57"},
- {file = "msgpack-1.0.5-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f837b93669ce4336e24d08286c38761132bc7ab29782727f8557e1eb21b2080"},
- {file = "msgpack-1.0.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1d46dfe3832660f53b13b925d4e0fa1432b00f5f7210eb3ad3bb9a13c6204a6"},
- {file = "msgpack-1.0.5-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:366c9a7b9057e1547f4ad51d8facad8b406bab69c7d72c0eb6f529cf76d4b85f"},
- {file = "msgpack-1.0.5-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:4c075728a1095efd0634a7dccb06204919a2f67d1893b6aa8e00497258bf926c"},
- {file = "msgpack-1.0.5-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:f933bbda5a3ee63b8834179096923b094b76f0c7a73c1cfe8f07ad608c58844b"},
- {file = "msgpack-1.0.5-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:36961b0568c36027c76e2ae3ca1132e35123dcec0706c4b7992683cc26c1320c"},
- {file = "msgpack-1.0.5-cp36-cp36m-win32.whl", hash = "sha256:b5ef2f015b95f912c2fcab19c36814963b5463f1fb9049846994b007962743e9"},
- {file = "msgpack-1.0.5-cp36-cp36m-win_amd64.whl", hash = "sha256:288e32b47e67f7b171f86b030e527e302c91bd3f40fd9033483f2cacc37f327a"},
- {file = "msgpack-1.0.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:137850656634abddfb88236008339fdaba3178f4751b28f270d2ebe77a563b6c"},
- {file = "msgpack-1.0.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0c05a4a96585525916b109bb85f8cb6511db1c6f5b9d9cbcbc940dc6b4be944b"},
- {file = "msgpack-1.0.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56a62ec00b636583e5cb6ad313bbed36bb7ead5fa3a3e38938503142c72cba4f"},
- {file = "msgpack-1.0.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef8108f8dedf204bb7b42994abf93882da1159728a2d4c5e82012edd92c9da9f"},
- {file = "msgpack-1.0.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1835c84d65f46900920b3708f5ba829fb19b1096c1800ad60bae8418652a951d"},
- {file = "msgpack-1.0.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:e57916ef1bd0fee4f21c4600e9d1da352d8816b52a599c46460e93a6e9f17086"},
- {file = "msgpack-1.0.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:17358523b85973e5f242ad74aa4712b7ee560715562554aa2134d96e7aa4cbbf"},
- {file = "msgpack-1.0.5-cp37-cp37m-win32.whl", hash = "sha256:cb5aaa8c17760909ec6cb15e744c3ebc2ca8918e727216e79607b7bbce9c8f77"},
- {file = "msgpack-1.0.5-cp37-cp37m-win_amd64.whl", hash = "sha256:ab31e908d8424d55601ad7075e471b7d0140d4d3dd3272daf39c5c19d936bd82"},
- {file = "msgpack-1.0.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:b72d0698f86e8d9ddf9442bdedec15b71df3598199ba33322d9711a19f08145c"},
- {file = "msgpack-1.0.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:379026812e49258016dd84ad79ac8446922234d498058ae1d415f04b522d5b2d"},
- {file = "msgpack-1.0.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:332360ff25469c346a1c5e47cbe2a725517919892eda5cfaffe6046656f0b7bb"},
- {file = "msgpack-1.0.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:476a8fe8fae289fdf273d6d2a6cb6e35b5a58541693e8f9f019bfe990a51e4ba"},
- {file = "msgpack-1.0.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9985b214f33311df47e274eb788a5893a761d025e2b92c723ba4c63936b69b1"},
- {file = "msgpack-1.0.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48296af57cdb1d885843afd73c4656be5c76c0c6328db3440c9601a98f303d87"},
- {file = "msgpack-1.0.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:addab7e2e1fcc04bd08e4eb631c2a90960c340e40dfc4a5e24d2ff0d5a3b3edb"},
- {file = "msgpack-1.0.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:916723458c25dfb77ff07f4c66aed34e47503b2eb3188b3adbec8d8aa6e00f48"},
- {file = "msgpack-1.0.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:821c7e677cc6acf0fd3f7ac664c98803827ae6de594a9f99563e48c5a2f27eb0"},
- {file = "msgpack-1.0.5-cp38-cp38-win32.whl", hash = "sha256:1c0f7c47f0087ffda62961d425e4407961a7ffd2aa004c81b9c07d9269512f6e"},
- {file = "msgpack-1.0.5-cp38-cp38-win_amd64.whl", hash = "sha256:bae7de2026cbfe3782c8b78b0db9cbfc5455e079f1937cb0ab8d133496ac55e1"},
- {file = "msgpack-1.0.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:20c784e66b613c7f16f632e7b5e8a1651aa5702463d61394671ba07b2fc9e025"},
- {file = "msgpack-1.0.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:266fa4202c0eb94d26822d9bfd7af25d1e2c088927fe8de9033d929dd5ba24c5"},
- {file = "msgpack-1.0.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:18334484eafc2b1aa47a6d42427da7fa8f2ab3d60b674120bce7a895a0a85bdd"},
- {file = "msgpack-1.0.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:57e1f3528bd95cc44684beda696f74d3aaa8a5e58c816214b9046512240ef437"},
- {file = "msgpack-1.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:586d0d636f9a628ddc6a17bfd45aa5b5efaf1606d2b60fa5d87b8986326e933f"},
- {file = "msgpack-1.0.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a740fa0e4087a734455f0fc3abf5e746004c9da72fbd541e9b113013c8dc3282"},
- {file = "msgpack-1.0.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3055b0455e45810820db1f29d900bf39466df96ddca11dfa6d074fa47054376d"},
- {file = "msgpack-1.0.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:a61215eac016f391129a013c9e46f3ab308db5f5ec9f25811e811f96962599a8"},
- {file = "msgpack-1.0.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:362d9655cd369b08fda06b6657a303eb7172d5279997abe094512e919cf74b11"},
- {file = "msgpack-1.0.5-cp39-cp39-win32.whl", hash = "sha256:ac9dd47af78cae935901a9a500104e2dea2e253207c924cc95de149606dc43cc"},
- {file = "msgpack-1.0.5-cp39-cp39-win_amd64.whl", hash = "sha256:06f5174b5f8ed0ed919da0e62cbd4ffde676a374aba4020034da05fab67b9164"},
- {file = "msgpack-1.0.5.tar.gz", hash = "sha256:c075544284eadc5cddc70f4757331d99dcbc16b2bbd4849d15f8aae4cf36d31c"},
+ {file = "msgpack-1.0.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:04ad6069c86e531682f9e1e71b71c1c3937d6014a7c3e9edd2aa81ad58842862"},
+ {file = "msgpack-1.0.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cca1b62fe70d761a282496b96a5e51c44c213e410a964bdffe0928e611368329"},
+ {file = "msgpack-1.0.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e50ebce52f41370707f1e21a59514e3375e3edd6e1832f5e5235237db933c98b"},
+ {file = "msgpack-1.0.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a7b4f35de6a304b5533c238bee86b670b75b03d31b7797929caa7a624b5dda6"},
+ {file = "msgpack-1.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28efb066cde83c479dfe5a48141a53bc7e5f13f785b92ddde336c716663039ee"},
+ {file = "msgpack-1.0.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4cb14ce54d9b857be9591ac364cb08dc2d6a5c4318c1182cb1d02274029d590d"},
+ {file = "msgpack-1.0.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b573a43ef7c368ba4ea06050a957c2a7550f729c31f11dd616d2ac4aba99888d"},
+ {file = "msgpack-1.0.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:ccf9a39706b604d884d2cb1e27fe973bc55f2890c52f38df742bc1d79ab9f5e1"},
+ {file = "msgpack-1.0.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cb70766519500281815dfd7a87d3a178acf7ce95390544b8c90587d76b227681"},
+ {file = "msgpack-1.0.7-cp310-cp310-win32.whl", hash = "sha256:b610ff0f24e9f11c9ae653c67ff8cc03c075131401b3e5ef4b82570d1728f8a9"},
+ {file = "msgpack-1.0.7-cp310-cp310-win_amd64.whl", hash = "sha256:a40821a89dc373d6427e2b44b572efc36a2778d3f543299e2f24eb1a5de65415"},
+ {file = "msgpack-1.0.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:576eb384292b139821c41995523654ad82d1916da6a60cff129c715a6223ea84"},
+ {file = "msgpack-1.0.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:730076207cb816138cf1af7f7237b208340a2c5e749707457d70705715c93b93"},
+ {file = "msgpack-1.0.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:85765fdf4b27eb5086f05ac0491090fc76f4f2b28e09d9350c31aac25a5aaff8"},
+ {file = "msgpack-1.0.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3476fae43db72bd11f29a5147ae2f3cb22e2f1a91d575ef130d2bf49afd21c46"},
+ {file = "msgpack-1.0.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d4c80667de2e36970ebf74f42d1088cc9ee7ef5f4e8c35eee1b40eafd33ca5b"},
+ {file = "msgpack-1.0.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b0bf0effb196ed76b7ad883848143427a73c355ae8e569fa538365064188b8e"},
+ {file = "msgpack-1.0.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f9a7c509542db4eceed3dcf21ee5267ab565a83555c9b88a8109dcecc4709002"},
+ {file = "msgpack-1.0.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:84b0daf226913133f899ea9b30618722d45feffa67e4fe867b0b5ae83a34060c"},
+ {file = "msgpack-1.0.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ec79ff6159dffcc30853b2ad612ed572af86c92b5168aa3fc01a67b0fa40665e"},
+ {file = "msgpack-1.0.7-cp311-cp311-win32.whl", hash = "sha256:3e7bf4442b310ff154b7bb9d81eb2c016b7d597e364f97d72b1acc3817a0fdc1"},
+ {file = "msgpack-1.0.7-cp311-cp311-win_amd64.whl", hash = "sha256:3f0c8c6dfa6605ab8ff0611995ee30d4f9fcff89966cf562733b4008a3d60d82"},
+ {file = "msgpack-1.0.7-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f0936e08e0003f66bfd97e74ee530427707297b0d0361247e9b4f59ab78ddc8b"},
+ {file = "msgpack-1.0.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:98bbd754a422a0b123c66a4c341de0474cad4a5c10c164ceed6ea090f3563db4"},
+ {file = "msgpack-1.0.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b291f0ee7961a597cbbcc77709374087fa2a9afe7bdb6a40dbbd9b127e79afee"},
+ {file = "msgpack-1.0.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebbbba226f0a108a7366bf4b59bf0f30a12fd5e75100c630267d94d7f0ad20e5"},
+ {file = "msgpack-1.0.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e2d69948e4132813b8d1131f29f9101bc2c915f26089a6d632001a5c1349672"},
+ {file = "msgpack-1.0.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bdf38ba2d393c7911ae989c3bbba510ebbcdf4ecbdbfec36272abe350c454075"},
+ {file = "msgpack-1.0.7-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:993584fc821c58d5993521bfdcd31a4adf025c7d745bbd4d12ccfecf695af5ba"},
+ {file = "msgpack-1.0.7-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:52700dc63a4676669b341ba33520f4d6e43d3ca58d422e22ba66d1736b0a6e4c"},
+ {file = "msgpack-1.0.7-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e45ae4927759289c30ccba8d9fdce62bb414977ba158286b5ddaf8df2cddb5c5"},
+ {file = "msgpack-1.0.7-cp312-cp312-win32.whl", hash = "sha256:27dcd6f46a21c18fa5e5deed92a43d4554e3df8d8ca5a47bf0615d6a5f39dbc9"},
+ {file = "msgpack-1.0.7-cp312-cp312-win_amd64.whl", hash = "sha256:7687e22a31e976a0e7fc99c2f4d11ca45eff652a81eb8c8085e9609298916dcf"},
+ {file = "msgpack-1.0.7-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5b6ccc0c85916998d788b295765ea0e9cb9aac7e4a8ed71d12e7d8ac31c23c95"},
+ {file = "msgpack-1.0.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:235a31ec7db685f5c82233bddf9858748b89b8119bf4538d514536c485c15fe0"},
+ {file = "msgpack-1.0.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cab3db8bab4b7e635c1c97270d7a4b2a90c070b33cbc00c99ef3f9be03d3e1f7"},
+ {file = "msgpack-1.0.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bfdd914e55e0d2c9e1526de210f6fe8ffe9705f2b1dfcc4aecc92a4cb4b533d"},
+ {file = "msgpack-1.0.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36e17c4592231a7dbd2ed09027823ab295d2791b3b1efb2aee874b10548b7524"},
+ {file = "msgpack-1.0.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38949d30b11ae5f95c3c91917ee7a6b239f5ec276f271f28638dec9156f82cfc"},
+ {file = "msgpack-1.0.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ff1d0899f104f3921d94579a5638847f783c9b04f2d5f229392ca77fba5b82fc"},
+ {file = "msgpack-1.0.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:dc43f1ec66eb8440567186ae2f8c447d91e0372d793dfe8c222aec857b81a8cf"},
+ {file = "msgpack-1.0.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:dd632777ff3beaaf629f1ab4396caf7ba0bdd075d948a69460d13d44357aca4c"},
+ {file = "msgpack-1.0.7-cp38-cp38-win32.whl", hash = "sha256:4e71bc4416de195d6e9b4ee93ad3f2f6b2ce11d042b4d7a7ee00bbe0358bd0c2"},
+ {file = "msgpack-1.0.7-cp38-cp38-win_amd64.whl", hash = "sha256:8f5b234f567cf76ee489502ceb7165c2a5cecec081db2b37e35332b537f8157c"},
+ {file = "msgpack-1.0.7-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bfef2bb6ef068827bbd021017a107194956918ab43ce4d6dc945ffa13efbc25f"},
+ {file = "msgpack-1.0.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:484ae3240666ad34cfa31eea7b8c6cd2f1fdaae21d73ce2974211df099a95d81"},
+ {file = "msgpack-1.0.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3967e4ad1aa9da62fd53e346ed17d7b2e922cba5ab93bdd46febcac39be636fc"},
+ {file = "msgpack-1.0.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8dd178c4c80706546702c59529ffc005681bd6dc2ea234c450661b205445a34d"},
+ {file = "msgpack-1.0.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6ffbc252eb0d229aeb2f9ad051200668fc3a9aaa8994e49f0cb2ffe2b7867e7"},
+ {file = "msgpack-1.0.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:822ea70dc4018c7e6223f13affd1c5c30c0f5c12ac1f96cd8e9949acddb48a61"},
+ {file = "msgpack-1.0.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:384d779f0d6f1b110eae74cb0659d9aa6ff35aaf547b3955abf2ab4c901c4819"},
+ {file = "msgpack-1.0.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f64e376cd20d3f030190e8c32e1c64582eba56ac6dc7d5b0b49a9d44021b52fd"},
+ {file = "msgpack-1.0.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5ed82f5a7af3697b1c4786053736f24a0efd0a1b8a130d4c7bfee4b9ded0f08f"},
+ {file = "msgpack-1.0.7-cp39-cp39-win32.whl", hash = "sha256:f26a07a6e877c76a88e3cecac8531908d980d3d5067ff69213653649ec0f60ad"},
+ {file = "msgpack-1.0.7-cp39-cp39-win_amd64.whl", hash = "sha256:1dc93e8e4653bdb5910aed79f11e165c85732067614f180f70534f056da97db3"},
+ {file = "msgpack-1.0.7.tar.gz", hash = "sha256:572efc93db7a4d27e404501975ca6d2d9775705c2d922390d878fcf768d92c87"},
]
[[package]]
@@ -2338,13 +2348,13 @@ files = [
[[package]]
name = "netaddr"
-version = "0.8.0"
+version = "0.9.0"
description = "A network address manipulation library for Python"
optional = false
python-versions = "*"
files = [
- {file = "netaddr-0.8.0-py2.py3-none-any.whl", hash = "sha256:9666d0232c32d2656e5e5f8d735f58fd6c7457ce52fc21c98d45f2af78f990ac"},
- {file = "netaddr-0.8.0.tar.gz", hash = "sha256:d6cc57c7a07b1d9d2e917aa8b36ae8ce61c35ba3fcd1b83ca31c5a0ee2b5a243"},
+ {file = "netaddr-0.9.0-py3-none-any.whl", hash = "sha256:5148b1055679d2a1ec070c521b7db82137887fabd6d7e37f5199b44f775c3bb1"},
+ {file = "netaddr-0.9.0.tar.gz", hash = "sha256:7b46fa9b1a2d71fd5de9e4a3784ef339700a53a08c8040f08baf5f1194da0128"},
]
[[package]]
@@ -2375,13 +2385,13 @@ files = [
[[package]]
name = "outcome"
-version = "1.2.0"
+version = "1.3.0.post0"
description = "Capture the outcome of Python function calls."
optional = false
python-versions = ">=3.7"
files = [
- {file = "outcome-1.2.0-py2.py3-none-any.whl", hash = "sha256:c4ab89a56575d6d38a05aa16daeaa333109c1f96167aba8901ab18b6b5e0f7f5"},
- {file = "outcome-1.2.0.tar.gz", hash = "sha256:6f82bd3de45da303cf1f771ecafa1633750a358436a8bb60e06a1ceb745d2672"},
+ {file = "outcome-1.3.0.post0-py2.py3-none-any.whl", hash = "sha256:e771c5ce06d1415e356078d3bdd68523f284b4ce5419828922b6871e65eda82b"},
+ {file = "outcome-1.3.0.post0.tar.gz", hash = "sha256:9dcf02e65f2971b80047b377468e72a268e15c0af3cf1238e6ff14f7f91143b8"},
]
[package.dependencies]
@@ -2432,13 +2442,13 @@ files = [
[[package]]
name = "pbr"
-version = "5.11.1"
+version = "6.0.0"
description = "Python Build Reasonableness"
optional = false
python-versions = ">=2.6"
files = [
- {file = "pbr-5.11.1-py2.py3-none-any.whl", hash = "sha256:567f09558bae2b3ab53cb3c1e2e33e726ff3338e7bae3db5dc954b3a44eef12b"},
- {file = "pbr-5.11.1.tar.gz", hash = "sha256:aefc51675b0b533d56bb5fd1c8c6c0522fe31896679882e1c4c63d5e4a0fccb3"},
+ {file = "pbr-6.0.0-py2.py3-none-any.whl", hash = "sha256:4a7317d5e3b17a3dccb6a8cfe67dab65b20551404c52c8ed41279fa4f0cb4cda"},
+ {file = "pbr-6.0.0.tar.gz", hash = "sha256:d1377122a5a00e2f940ee482999518efe16d745d423a670c27773dfbc3c9a7d9"},
]
[[package]]
@@ -2462,13 +2472,13 @@ dev = ["black", "hypothesis", "mypy", "pygments (>=2.14.0)", "pytest", "pytest-c
[[package]]
name = "platformdirs"
-version = "3.10.0"
+version = "4.0.0"
description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
optional = false
python-versions = ">=3.7"
files = [
- {file = "platformdirs-3.10.0-py3-none-any.whl", hash = "sha256:d7c24979f292f916dc9cbf8648319032f551ea8c49a4c9bf2fb556a02070ec1d"},
- {file = "platformdirs-3.10.0.tar.gz", hash = "sha256:b45696dab2d7cc691a3226759c0d3b00c47c8b6e293d96f6436f733303f77f6d"},
+ {file = "platformdirs-4.0.0-py3-none-any.whl", hash = "sha256:118c954d7e949b35437270383a3f2531e99dd93cf7ce4dc8340d3356d30f173b"},
+ {file = "platformdirs-4.0.0.tar.gz", hash = "sha256:cb633b2bcf10c51af60beb0ab06d2f1d69064b43abf4c185ca6b28865f3f9731"},
]
[package.extras]
@@ -2492,13 +2502,13 @@ testing = ["pytest", "pytest-benchmark"]
[[package]]
name = "prometheus-client"
-version = "0.17.1"
+version = "0.18.0"
description = "Python client for the Prometheus monitoring system."
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.8"
files = [
- {file = "prometheus_client-0.17.1-py3-none-any.whl", hash = "sha256:e537f37160f6807b8202a6fc4764cdd19bac5480ddd3e0d463c3002b34462101"},
- {file = "prometheus_client-0.17.1.tar.gz", hash = "sha256:21e674f39831ae3f8acde238afd9a27a37d0d2fb5a28ea094f0ce25d2cbf2091"},
+ {file = "prometheus_client-0.18.0-py3-none-any.whl", hash = "sha256:8de3ae2755f890826f4b6479e5571d4f74ac17a81345fe69a6778fdb92579184"},
+ {file = "prometheus_client-0.18.0.tar.gz", hash = "sha256:35f7a8c22139e2bb7ca5a698e92d38145bc8dc74c1c0bf56f25cca886a764e17"},
]
[package.extras]
@@ -2506,13 +2516,13 @@ twisted = ["twisted"]
[[package]]
name = "prompt-toolkit"
-version = "3.0.39"
+version = "3.0.41"
description = "Library for building powerful interactive command lines in Python"
optional = false
python-versions = ">=3.7.0"
files = [
- {file = "prompt_toolkit-3.0.39-py3-none-any.whl", hash = "sha256:9dffbe1d8acf91e3de75f3b544e4842382fc06c6babe903ac9acb74dc6e08d88"},
- {file = "prompt_toolkit-3.0.39.tar.gz", hash = "sha256:04505ade687dc26dc4284b1ad19a83be2f2afe83e7a828ace0c72f3a1df72aac"},
+ {file = "prompt_toolkit-3.0.41-py3-none-any.whl", hash = "sha256:f36fe301fafb7470e86aaf90f036eef600a3210be4decf461a5b1ca8403d3cb2"},
+ {file = "prompt_toolkit-3.0.41.tar.gz", hash = "sha256:941367d97fc815548822aa26c2a269fdc4eb21e9ec05fc5d447cf09bad5d75f0"},
]
[package.dependencies]
@@ -2520,23 +2530,23 @@ wcwidth = "*"
[[package]]
name = "psycopg"
-version = "3.1.12"
+version = "3.1.13"
description = "PostgreSQL database adapter for Python"
optional = false
python-versions = ">=3.7"
files = [
- {file = "psycopg-3.1.12-py3-none-any.whl", hash = "sha256:8ec5230d6a7eb654b4fb3cf2d3eda8871d68f24807b934790504467f1deee9f8"},
- {file = "psycopg-3.1.12.tar.gz", hash = "sha256:cec7ad2bc6a8510e56c45746c631cf9394148bdc8a9a11fd8cf8554ce129ae78"},
+ {file = "psycopg-3.1.13-py3-none-any.whl", hash = "sha256:1253010894cfb64e2da4556d4eff5f05e45cafee641f64e02453be849c8f7687"},
+ {file = "psycopg-3.1.13.tar.gz", hash = "sha256:e6d047ce16950651d6e26c7c19ca57cc42e1d4841b58729f691244baeee46e30"},
]
[package.dependencies]
-psycopg-c = {version = "3.1.12", optional = true, markers = "extra == \"c\""}
+psycopg-c = {version = "3.1.13", optional = true, markers = "extra == \"c\""}
typing-extensions = ">=4.1"
tzdata = {version = "*", markers = "sys_platform == \"win32\""}
[package.extras]
-binary = ["psycopg-binary (==3.1.12)"]
-c = ["psycopg-c (==3.1.12)"]
+binary = ["psycopg-binary (==3.1.13)"]
+c = ["psycopg-c (==3.1.13)"]
dev = ["black (>=23.1.0)", "dnspython (>=2.1)", "flake8 (>=4.0)", "mypy (>=1.4.1)", "types-setuptools (>=57.4)", "wheel (>=0.37)"]
docs = ["Sphinx (>=5.0)", "furo (==2022.6.21)", "sphinx-autobuild (>=2021.3.14)", "sphinx-autodoc-typehints (>=1.12)"]
pool = ["psycopg-pool"]
@@ -2544,12 +2554,12 @@ test = ["anyio (>=3.6.2,<4.0)", "mypy (>=1.4.1)", "pproxy (>=2.7)", "pytest (>=6
[[package]]
name = "psycopg-c"
-version = "3.1.12"
+version = "3.1.13"
description = "PostgreSQL database adapter for Python -- C optimisation distribution"
optional = false
python-versions = ">=3.7"
files = [
- {file = "psycopg-c-3.1.12.tar.gz", hash = "sha256:81db07874c7c530482d07155d144b287b47260dd1782a0d2d3ca7ae2d4641686"},
+ {file = "psycopg-c-3.1.13.tar.gz", hash = "sha256:a7f39d29e5ba46cdc5ff6b40a1e418dba034efd2faf7369a8b6d20effbd2a19d"},
]
[[package]]
@@ -2579,13 +2589,13 @@ pyasn1 = ">=0.4.6,<0.6.0"
[[package]]
name = "pycodestyle"
-version = "2.11.0"
+version = "2.11.1"
description = "Python style guide checker"
optional = false
python-versions = ">=3.8"
files = [
- {file = "pycodestyle-2.11.0-py2.py3-none-any.whl", hash = "sha256:5d1013ba8dc7895b548be5afb05740ca82454fd899971563d2ef625d090326f8"},
- {file = "pycodestyle-2.11.0.tar.gz", hash = "sha256:259bcc17857d8a8b3b4a2327324b79e5f020a13c16074670f9c8c8f872ea76d0"},
+ {file = "pycodestyle-2.11.1-py2.py3-none-any.whl", hash = "sha256:44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67"},
+ {file = "pycodestyle-2.11.1.tar.gz", hash = "sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f"},
]
[[package]]
@@ -2642,19 +2652,19 @@ files = [
[[package]]
name = "pydantic"
-version = "2.4.2"
+version = "2.5.1"
description = "Data validation using Python type hints"
optional = false
python-versions = ">=3.7"
files = [
- {file = "pydantic-2.4.2-py3-none-any.whl", hash = "sha256:bc3ddf669d234f4220e6e1c4d96b061abe0998185a8d7855c0126782b7abc8c1"},
- {file = "pydantic-2.4.2.tar.gz", hash = "sha256:94f336138093a5d7f426aac732dcfe7ab4eb4da243c88f891d65deb4a2556ee7"},
+ {file = "pydantic-2.5.1-py3-none-any.whl", hash = "sha256:dc5244a8939e0d9a68f1f1b5f550b2e1c879912033b1becbedb315accc75441b"},
+ {file = "pydantic-2.5.1.tar.gz", hash = "sha256:0b8be5413c06aadfbe56f6dc1d45c9ed25fd43264414c571135c97dd77c2bedb"},
]
[package.dependencies]
annotated-types = ">=0.4.0"
email-validator = {version = ">=2.0.0", optional = true, markers = "extra == \"email\""}
-pydantic-core = "2.10.1"
+pydantic-core = "2.14.3"
typing-extensions = ">=4.6.1"
[package.extras]
@@ -2662,117 +2672,116 @@ email = ["email-validator (>=2.0.0)"]
[[package]]
name = "pydantic-core"
-version = "2.10.1"
+version = "2.14.3"
description = ""
optional = false
python-versions = ">=3.7"
files = [
- {file = "pydantic_core-2.10.1-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:d64728ee14e667ba27c66314b7d880b8eeb050e58ffc5fec3b7a109f8cddbd63"},
- {file = "pydantic_core-2.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:48525933fea744a3e7464c19bfede85df4aba79ce90c60b94d8b6e1eddd67096"},
- {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef337945bbd76cce390d1b2496ccf9f90b1c1242a3a7bc242ca4a9fc5993427a"},
- {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a1392e0638af203cee360495fd2cfdd6054711f2db5175b6e9c3c461b76f5175"},
- {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0675ba5d22de54d07bccde38997e780044dcfa9a71aac9fd7d4d7a1d2e3e65f7"},
- {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:128552af70a64660f21cb0eb4876cbdadf1a1f9d5de820fed6421fa8de07c893"},
- {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f6e6aed5818c264412ac0598b581a002a9f050cb2637a84979859e70197aa9e"},
- {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ecaac27da855b8d73f92123e5f03612b04c5632fd0a476e469dfc47cd37d6b2e"},
- {file = "pydantic_core-2.10.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b3c01c2fb081fced3bbb3da78510693dc7121bb893a1f0f5f4b48013201f362e"},
- {file = "pydantic_core-2.10.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:92f675fefa977625105708492850bcbc1182bfc3e997f8eecb866d1927c98ae6"},
- {file = "pydantic_core-2.10.1-cp310-none-win32.whl", hash = "sha256:420a692b547736a8d8703c39ea935ab5d8f0d2573f8f123b0a294e49a73f214b"},
- {file = "pydantic_core-2.10.1-cp310-none-win_amd64.whl", hash = "sha256:0880e239827b4b5b3e2ce05e6b766a7414e5f5aedc4523be6b68cfbc7f61c5d0"},
- {file = "pydantic_core-2.10.1-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:073d4a470b195d2b2245d0343569aac7e979d3a0dcce6c7d2af6d8a920ad0bea"},
- {file = "pydantic_core-2.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:600d04a7b342363058b9190d4e929a8e2e715c5682a70cc37d5ded1e0dd370b4"},
- {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39215d809470f4c8d1881758575b2abfb80174a9e8daf8f33b1d4379357e417c"},
- {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eeb3d3d6b399ffe55f9a04e09e635554012f1980696d6b0aca3e6cf42a17a03b"},
- {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a7a7902bf75779bc12ccfc508bfb7a4c47063f748ea3de87135d433a4cca7a2f"},
- {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3625578b6010c65964d177626fde80cf60d7f2e297d56b925cb5cdeda6e9925a"},
- {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:caa48fc31fc7243e50188197b5f0c4228956f97b954f76da157aae7f67269ae8"},
- {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:07ec6d7d929ae9c68f716195ce15e745b3e8fa122fc67698ac6498d802ed0fa4"},
- {file = "pydantic_core-2.10.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e6f31a17acede6a8cd1ae2d123ce04d8cca74056c9d456075f4f6f85de055607"},
- {file = "pydantic_core-2.10.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d8f1ebca515a03e5654f88411420fea6380fc841d1bea08effb28184e3d4899f"},
- {file = "pydantic_core-2.10.1-cp311-none-win32.whl", hash = "sha256:6db2eb9654a85ada248afa5a6db5ff1cf0f7b16043a6b070adc4a5be68c716d6"},
- {file = "pydantic_core-2.10.1-cp311-none-win_amd64.whl", hash = "sha256:4a5be350f922430997f240d25f8219f93b0c81e15f7b30b868b2fddfc2d05f27"},
- {file = "pydantic_core-2.10.1-cp311-none-win_arm64.whl", hash = "sha256:5fdb39f67c779b183b0c853cd6b45f7db84b84e0571b3ef1c89cdb1dfc367325"},
- {file = "pydantic_core-2.10.1-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:b1f22a9ab44de5f082216270552aa54259db20189e68fc12484873d926426921"},
- {file = "pydantic_core-2.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8572cadbf4cfa95fb4187775b5ade2eaa93511f07947b38f4cd67cf10783b118"},
- {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:db9a28c063c7c00844ae42a80203eb6d2d6bbb97070cfa00194dff40e6f545ab"},
- {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0e2a35baa428181cb2270a15864ec6286822d3576f2ed0f4cd7f0c1708472aff"},
- {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05560ab976012bf40f25d5225a58bfa649bb897b87192a36c6fef1ab132540d7"},
- {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d6495008733c7521a89422d7a68efa0a0122c99a5861f06020ef5b1f51f9ba7c"},
- {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14ac492c686defc8e6133e3a2d9eaf5261b3df26b8ae97450c1647286750b901"},
- {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8282bab177a9a3081fd3d0a0175a07a1e2bfb7fcbbd949519ea0980f8a07144d"},
- {file = "pydantic_core-2.10.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:aafdb89fdeb5fe165043896817eccd6434aee124d5ee9b354f92cd574ba5e78f"},
- {file = "pydantic_core-2.10.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f6defd966ca3b187ec6c366604e9296f585021d922e666b99c47e78738b5666c"},
- {file = "pydantic_core-2.10.1-cp312-none-win32.whl", hash = "sha256:7c4d1894fe112b0864c1fa75dffa045720a194b227bed12f4be7f6045b25209f"},
- {file = "pydantic_core-2.10.1-cp312-none-win_amd64.whl", hash = "sha256:5994985da903d0b8a08e4935c46ed8daf5be1cf217489e673910951dc533d430"},
- {file = "pydantic_core-2.10.1-cp312-none-win_arm64.whl", hash = "sha256:0d8a8adef23d86d8eceed3e32e9cca8879c7481c183f84ed1a8edc7df073af94"},
- {file = "pydantic_core-2.10.1-cp37-cp37m-macosx_10_7_x86_64.whl", hash = "sha256:9badf8d45171d92387410b04639d73811b785b5161ecadabf056ea14d62d4ede"},
- {file = "pydantic_core-2.10.1-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:ebedb45b9feb7258fac0a268a3f6bec0a2ea4d9558f3d6f813f02ff3a6dc6698"},
- {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cfe1090245c078720d250d19cb05d67e21a9cd7c257698ef139bc41cf6c27b4f"},
- {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e357571bb0efd65fd55f18db0a2fb0ed89d0bb1d41d906b138f088933ae618bb"},
- {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b3dcd587b69bbf54fc04ca157c2323b8911033e827fffaecf0cafa5a892a0904"},
- {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c120c9ce3b163b985a3b966bb701114beb1da4b0468b9b236fc754783d85aa3"},
- {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15d6bca84ffc966cc9976b09a18cf9543ed4d4ecbd97e7086f9ce9327ea48891"},
- {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5cabb9710f09d5d2e9e2748c3e3e20d991a4c5f96ed8f1132518f54ab2967221"},
- {file = "pydantic_core-2.10.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:82f55187a5bebae7d81d35b1e9aaea5e169d44819789837cdd4720d768c55d15"},
- {file = "pydantic_core-2.10.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:1d40f55222b233e98e3921df7811c27567f0e1a4411b93d4c5c0f4ce131bc42f"},
- {file = "pydantic_core-2.10.1-cp37-none-win32.whl", hash = "sha256:14e09ff0b8fe6e46b93d36a878f6e4a3a98ba5303c76bb8e716f4878a3bee92c"},
- {file = "pydantic_core-2.10.1-cp37-none-win_amd64.whl", hash = "sha256:1396e81b83516b9d5c9e26a924fa69164156c148c717131f54f586485ac3c15e"},
- {file = "pydantic_core-2.10.1-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:6835451b57c1b467b95ffb03a38bb75b52fb4dc2762bb1d9dbed8de31ea7d0fc"},
- {file = "pydantic_core-2.10.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b00bc4619f60c853556b35f83731bd817f989cba3e97dc792bb8c97941b8053a"},
- {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fa467fd300a6f046bdb248d40cd015b21b7576c168a6bb20aa22e595c8ffcdd"},
- {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d99277877daf2efe074eae6338453a4ed54a2d93fb4678ddfe1209a0c93a2468"},
- {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fa7db7558607afeccb33c0e4bf1c9a9a835e26599e76af6fe2fcea45904083a6"},
- {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aad7bd686363d1ce4ee930ad39f14e1673248373f4a9d74d2b9554f06199fb58"},
- {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:443fed67d33aa85357464f297e3d26e570267d1af6fef1c21ca50921d2976302"},
- {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:042462d8d6ba707fd3ce9649e7bf268633a41018d6a998fb5fbacb7e928a183e"},
- {file = "pydantic_core-2.10.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ecdbde46235f3d560b18be0cb706c8e8ad1b965e5c13bbba7450c86064e96561"},
- {file = "pydantic_core-2.10.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ed550ed05540c03f0e69e6d74ad58d026de61b9eaebebbaaf8873e585cbb18de"},
- {file = "pydantic_core-2.10.1-cp38-none-win32.whl", hash = "sha256:8cdbbd92154db2fec4ec973d45c565e767ddc20aa6dbaf50142676484cbff8ee"},
- {file = "pydantic_core-2.10.1-cp38-none-win_amd64.whl", hash = "sha256:9f6f3e2598604956480f6c8aa24a3384dbf6509fe995d97f6ca6103bb8c2534e"},
- {file = "pydantic_core-2.10.1-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:655f8f4c8d6a5963c9a0687793da37b9b681d9ad06f29438a3b2326d4e6b7970"},
- {file = "pydantic_core-2.10.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e570ffeb2170e116a5b17e83f19911020ac79d19c96f320cbfa1fa96b470185b"},
- {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64322bfa13e44c6c30c518729ef08fda6026b96d5c0be724b3c4ae4da939f875"},
- {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:485a91abe3a07c3a8d1e082ba29254eea3e2bb13cbbd4351ea4e5a21912cc9b0"},
- {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7c2b8eb9fc872e68b46eeaf835e86bccc3a58ba57d0eedc109cbb14177be531"},
- {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a5cb87bdc2e5f620693148b5f8f842d293cae46c5f15a1b1bf7ceeed324a740c"},
- {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25bd966103890ccfa028841a8f30cebcf5875eeac8c4bde4fe221364c92f0c9a"},
- {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f323306d0556351735b54acbf82904fe30a27b6a7147153cbe6e19aaaa2aa429"},
- {file = "pydantic_core-2.10.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0c27f38dc4fbf07b358b2bc90edf35e82d1703e22ff2efa4af4ad5de1b3833e7"},
- {file = "pydantic_core-2.10.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f1365e032a477c1430cfe0cf2856679529a2331426f8081172c4a74186f1d595"},
- {file = "pydantic_core-2.10.1-cp39-none-win32.whl", hash = "sha256:a1c311fd06ab3b10805abb72109f01a134019739bd3286b8ae1bc2fc4e50c07a"},
- {file = "pydantic_core-2.10.1-cp39-none-win_amd64.whl", hash = "sha256:ae8a8843b11dc0b03b57b52793e391f0122e740de3df1474814c700d2622950a"},
- {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:d43002441932f9a9ea5d6f9efaa2e21458221a3a4b417a14027a1d530201ef1b"},
- {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:fcb83175cc4936a5425dde3356f079ae03c0802bbdf8ff82c035f8a54b333521"},
- {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:962ed72424bf1f72334e2f1e61b68f16c0e596f024ca7ac5daf229f7c26e4208"},
- {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2cf5bb4dd67f20f3bbc1209ef572a259027c49e5ff694fa56bed62959b41e1f9"},
- {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e544246b859f17373bed915182ab841b80849ed9cf23f1f07b73b7c58baee5fb"},
- {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:c0877239307b7e69d025b73774e88e86ce82f6ba6adf98f41069d5b0b78bd1bf"},
- {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:53df009d1e1ba40f696f8995683e067e3967101d4bb4ea6f667931b7d4a01357"},
- {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a1254357f7e4c82e77c348dabf2d55f1d14d19d91ff025004775e70a6ef40ada"},
- {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-macosx_10_7_x86_64.whl", hash = "sha256:524ff0ca3baea164d6d93a32c58ac79eca9f6cf713586fdc0adb66a8cdeab96a"},
- {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f0ac9fb8608dbc6eaf17956bf623c9119b4db7dbb511650910a82e261e6600f"},
- {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:320f14bd4542a04ab23747ff2c8a778bde727158b606e2661349557f0770711e"},
- {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:63974d168b6233b4ed6a0046296803cb13c56637a7b8106564ab575926572a55"},
- {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:417243bf599ba1f1fef2bb8c543ceb918676954734e2dcb82bf162ae9d7bd514"},
- {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:dda81e5ec82485155a19d9624cfcca9be88a405e2857354e5b089c2a982144b2"},
- {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:14cfbb00959259e15d684505263d5a21732b31248a5dd4941f73a3be233865b9"},
- {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:631cb7415225954fdcc2a024119101946793e5923f6c4d73a5914d27eb3d3a05"},
- {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:bec7dd208a4182e99c5b6c501ce0b1f49de2802448d4056091f8e630b28e9a52"},
- {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:149b8a07712f45b332faee1a2258d8ef1fb4a36f88c0c17cb687f205c5dc6e7d"},
- {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4d966c47f9dd73c2d32a809d2be529112d509321c5310ebf54076812e6ecd884"},
- {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7eb037106f5c6b3b0b864ad226b0b7ab58157124161d48e4b30c4a43fef8bc4b"},
- {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:154ea7c52e32dce13065dbb20a4a6f0cc012b4f667ac90d648d36b12007fa9f7"},
- {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e562617a45b5a9da5be4abe72b971d4f00bf8555eb29bb91ec2ef2be348cd132"},
- {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:f23b55eb5464468f9e0e9a9935ce3ed2a870608d5f534025cd5536bca25b1402"},
- {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:e9121b4009339b0f751955baf4543a0bfd6bc3f8188f8056b1a25a2d45099934"},
- {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:0523aeb76e03f753b58be33b26540880bac5aa54422e4462404c432230543f33"},
- {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e0e2959ef5d5b8dc9ef21e1a305a21a36e254e6a34432d00c72a92fdc5ecda5"},
- {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da01bec0a26befab4898ed83b362993c844b9a607a86add78604186297eb047e"},
- {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f2e9072d71c1f6cfc79a36d4484c82823c560e6f5599c43c1ca6b5cdbd54f881"},
- {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:f36a3489d9e28fe4b67be9992a23029c3cec0babc3bd9afb39f49844a8c721c5"},
- {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f64f82cc3443149292b32387086d02a6c7fb39b8781563e0ca7b8d7d9cf72bd7"},
- {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:b4a6db486ac8e99ae696e09efc8b2b9fea67b63c8f88ba7a1a16c24a057a0776"},
- {file = "pydantic_core-2.10.1.tar.gz", hash = "sha256:0f8682dbdd2f67f8e1edddcbffcc29f60a6182b4901c367fc8c1c40d30bb0a82"},
+ {file = "pydantic_core-2.14.3-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:ba44fad1d114539d6a1509966b20b74d2dec9a5b0ee12dd7fd0a1bb7b8785e5f"},
+ {file = "pydantic_core-2.14.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4a70d23eedd88a6484aa79a732a90e36701048a1509078d1b59578ef0ea2cdf5"},
+ {file = "pydantic_core-2.14.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7cc24728a1a9cef497697e53b3d085fb4d3bc0ef1ef4d9b424d9cf808f52c146"},
+ {file = "pydantic_core-2.14.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ab4a2381005769a4af2ffddae74d769e8a4aae42e970596208ec6d615c6fb080"},
+ {file = "pydantic_core-2.14.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:905a12bf088d6fa20e094f9a477bf84bd823651d8b8384f59bcd50eaa92e6a52"},
+ {file = "pydantic_core-2.14.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:38aed5a1bbc3025859f56d6a32f6e53ca173283cb95348e03480f333b1091e7d"},
+ {file = "pydantic_core-2.14.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1767bd3f6370458e60c1d3d7b1d9c2751cc1ad743434e8ec84625a610c8b9195"},
+ {file = "pydantic_core-2.14.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7cb0c397f29688a5bd2c0dbd44451bc44ebb9b22babc90f97db5ec3e5bb69977"},
+ {file = "pydantic_core-2.14.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9ff737f24b34ed26de62d481ef522f233d3c5927279f6b7229de9b0deb3f76b5"},
+ {file = "pydantic_core-2.14.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a1a39fecb5f0b19faee9a8a8176c805ed78ce45d760259a4ff3d21a7daa4dfc1"},
+ {file = "pydantic_core-2.14.3-cp310-none-win32.whl", hash = "sha256:ccbf355b7276593c68fa824030e68cb29f630c50e20cb11ebb0ee450ae6b3d08"},
+ {file = "pydantic_core-2.14.3-cp310-none-win_amd64.whl", hash = "sha256:536e1f58419e1ec35f6d1310c88496f0d60e4f182cacb773d38076f66a60b149"},
+ {file = "pydantic_core-2.14.3-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:f1f46700402312bdc31912f6fc17f5ecaaaa3bafe5487c48f07c800052736289"},
+ {file = "pydantic_core-2.14.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:88ec906eb2d92420f5b074f59cf9e50b3bb44f3cb70e6512099fdd4d88c2f87c"},
+ {file = "pydantic_core-2.14.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:056ea7cc3c92a7d2a14b5bc9c9fa14efa794d9f05b9794206d089d06d3433dc7"},
+ {file = "pydantic_core-2.14.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:076edc972b68a66870cec41a4efdd72a6b655c4098a232314b02d2bfa3bfa157"},
+ {file = "pydantic_core-2.14.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e71f666c3bf019f2490a47dddb44c3ccea2e69ac882f7495c68dc14d4065eac2"},
+ {file = "pydantic_core-2.14.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f518eac285c9632be337323eef9824a856f2680f943a9b68ac41d5f5bad7df7c"},
+ {file = "pydantic_core-2.14.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9dbab442a8d9ca918b4ed99db8d89d11b1f067a7dadb642476ad0889560dac79"},
+ {file = "pydantic_core-2.14.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0653fb9fc2fa6787f2fa08631314ab7fc8070307bd344bf9471d1b7207c24623"},
+ {file = "pydantic_core-2.14.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c54af5069da58ea643ad34ff32fd6bc4eebb8ae0fef9821cd8919063e0aeeaab"},
+ {file = "pydantic_core-2.14.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cc956f78651778ec1ab105196e90e0e5f5275884793ab67c60938c75bcca3989"},
+ {file = "pydantic_core-2.14.3-cp311-none-win32.whl", hash = "sha256:5b73441a1159f1fb37353aaefb9e801ab35a07dd93cb8177504b25a317f4215a"},
+ {file = "pydantic_core-2.14.3-cp311-none-win_amd64.whl", hash = "sha256:7349f99f1ef8b940b309179733f2cad2e6037a29560f1b03fdc6aa6be0a8d03c"},
+ {file = "pydantic_core-2.14.3-cp311-none-win_arm64.whl", hash = "sha256:ec79dbe23702795944d2ae4c6925e35a075b88acd0d20acde7c77a817ebbce94"},
+ {file = "pydantic_core-2.14.3-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:8f5624f0f67f2b9ecaa812e1dfd2e35b256487566585160c6c19268bf2ffeccc"},
+ {file = "pydantic_core-2.14.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6c2d118d1b6c9e2d577e215567eedbe11804c3aafa76d39ec1f8bc74e918fd07"},
+ {file = "pydantic_core-2.14.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fe863491664c6720d65ae438d4efaa5eca766565a53adb53bf14bc3246c72fe0"},
+ {file = "pydantic_core-2.14.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:136bc7247e97a921a020abbd6ef3169af97569869cd6eff41b6a15a73c44ea9b"},
+ {file = "pydantic_core-2.14.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aeafc7f5bbddc46213707266cadc94439bfa87ecf699444de8be044d6d6eb26f"},
+ {file = "pydantic_core-2.14.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e16aaf788f1de5a85c8f8fcc9c1ca1dd7dd52b8ad30a7889ca31c7c7606615b8"},
+ {file = "pydantic_core-2.14.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8fc652c354d3362e2932a79d5ac4bbd7170757a41a62c4fe0f057d29f10bebb"},
+ {file = "pydantic_core-2.14.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f1b92e72babfd56585c75caf44f0b15258c58e6be23bc33f90885cebffde3400"},
+ {file = "pydantic_core-2.14.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:75f3f534f33651b73f4d3a16d0254de096f43737d51e981478d580f4b006b427"},
+ {file = "pydantic_core-2.14.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c9ffd823c46e05ef3eb28b821aa7bc501efa95ba8880b4a1380068e32c5bed47"},
+ {file = "pydantic_core-2.14.3-cp312-none-win32.whl", hash = "sha256:12e05a76b223577a4696c76d7a6b36a0ccc491ffb3c6a8cf92d8001d93ddfd63"},
+ {file = "pydantic_core-2.14.3-cp312-none-win_amd64.whl", hash = "sha256:1582f01eaf0537a696c846bea92082082b6bfc1103a88e777e983ea9fbdc2a0f"},
+ {file = "pydantic_core-2.14.3-cp312-none-win_arm64.whl", hash = "sha256:96fb679c7ca12a512d36d01c174a4fbfd912b5535cc722eb2c010c7b44eceb8e"},
+ {file = "pydantic_core-2.14.3-cp37-cp37m-macosx_10_7_x86_64.whl", hash = "sha256:71ed769b58d44e0bc2701aa59eb199b6665c16e8a5b8b4a84db01f71580ec448"},
+ {file = "pydantic_core-2.14.3-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:5402ee0f61e7798ea93a01b0489520f2abfd9b57b76b82c93714c4318c66ca06"},
+ {file = "pydantic_core-2.14.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eaab9dc009e22726c62fe3b850b797e7f0e7ba76d245284d1064081f512c7226"},
+ {file = "pydantic_core-2.14.3-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:92486a04d54987054f8b4405a9af9d482e5100d6fe6374fc3303015983fc8bda"},
+ {file = "pydantic_core-2.14.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cf08b43d1d5d1678f295f0431a4a7e1707d4652576e1d0f8914b5e0213bfeee5"},
+ {file = "pydantic_core-2.14.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8ca13480ce16daad0504be6ce893b0ee8ec34cd43b993b754198a89e2787f7e"},
+ {file = "pydantic_core-2.14.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44afa3c18d45053fe8d8228950ee4c8eaf3b5a7f3b64963fdeac19b8342c987f"},
+ {file = "pydantic_core-2.14.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:56814b41486e2d712a8bc02a7b1f17b87fa30999d2323bbd13cf0e52296813a1"},
+ {file = "pydantic_core-2.14.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c3dc2920cc96f9aa40c6dc54256e436cc95c0a15562eb7bd579e1811593c377e"},
+ {file = "pydantic_core-2.14.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e483b8b913fcd3b48badec54185c150cb7ab0e6487914b84dc7cde2365e0c892"},
+ {file = "pydantic_core-2.14.3-cp37-none-win32.whl", hash = "sha256:364dba61494e48f01ef50ae430e392f67ee1ee27e048daeda0e9d21c3ab2d609"},
+ {file = "pydantic_core-2.14.3-cp37-none-win_amd64.whl", hash = "sha256:a402ae1066be594701ac45661278dc4a466fb684258d1a2c434de54971b006ca"},
+ {file = "pydantic_core-2.14.3-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:10904368261e4509c091cbcc067e5a88b070ed9a10f7ad78f3029c175487490f"},
+ {file = "pydantic_core-2.14.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:260692420028319e201b8649b13ac0988974eeafaaef95d0dfbf7120c38dc000"},
+ {file = "pydantic_core-2.14.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c1bf1a7b05a65d3b37a9adea98e195e0081be6b17ca03a86f92aeb8b110f468"},
+ {file = "pydantic_core-2.14.3-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d7abd17a838a52140e3aeca271054e321226f52df7e0a9f0da8f91ea123afe98"},
+ {file = "pydantic_core-2.14.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a5c51460ede609fbb4fa883a8fe16e749964ddb459966d0518991ec02eb8dfb9"},
+ {file = "pydantic_core-2.14.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d06c78074646111fb01836585f1198367b17d57c9f427e07aaa9ff499003e58d"},
+ {file = "pydantic_core-2.14.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af452e69446fadf247f18ac5d153b1f7e61ef708f23ce85d8c52833748c58075"},
+ {file = "pydantic_core-2.14.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e3ad4968711fb379a67c8c755beb4dae8b721a83737737b7bcee27c05400b047"},
+ {file = "pydantic_core-2.14.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:c5ea0153482e5b4d601c25465771c7267c99fddf5d3f3bdc238ef930e6d051cf"},
+ {file = "pydantic_core-2.14.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:96eb10ef8920990e703da348bb25fedb8b8653b5966e4e078e5be382b430f9e0"},
+ {file = "pydantic_core-2.14.3-cp38-none-win32.whl", hash = "sha256:ea1498ce4491236d1cffa0eee9ad0968b6ecb0c1cd711699c5677fc689905f00"},
+ {file = "pydantic_core-2.14.3-cp38-none-win_amd64.whl", hash = "sha256:2bc736725f9bd18a60eec0ed6ef9b06b9785454c8d0105f2be16e4d6274e63d0"},
+ {file = "pydantic_core-2.14.3-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:1ea992659c03c3ea811d55fc0a997bec9dde863a617cc7b25cfde69ef32e55af"},
+ {file = "pydantic_core-2.14.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d2b53e1f851a2b406bbb5ac58e16c4a5496038eddd856cc900278fa0da97f3fc"},
+ {file = "pydantic_core-2.14.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0c7f8e8a7cf8e81ca7d44bea4f181783630959d41b4b51d2f74bc50f348a090f"},
+ {file = "pydantic_core-2.14.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8d3b9c91eeb372a64ec6686c1402afd40cc20f61a0866850f7d989b6bf39a41a"},
+ {file = "pydantic_core-2.14.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9ef3e2e407e4cad2df3c89488a761ed1f1c33f3b826a2ea9a411b0a7d1cccf1b"},
+ {file = "pydantic_core-2.14.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f86f20a9d5bee1a6ede0f2757b917bac6908cde0f5ad9fcb3606db1e2968bcf5"},
+ {file = "pydantic_core-2.14.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61beaa79d392d44dc19d6f11ccd824d3cccb865c4372157c40b92533f8d76dd0"},
+ {file = "pydantic_core-2.14.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d41df8e10b094640a6b234851b624b76a41552f637b9fb34dc720b9fe4ef3be4"},
+ {file = "pydantic_core-2.14.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2c08ac60c3caa31f825b5dbac47e4875bd4954d8f559650ad9e0b225eaf8ed0c"},
+ {file = "pydantic_core-2.14.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:98d8b3932f1a369364606417ded5412c4ffb15bedbcf797c31317e55bd5d920e"},
+ {file = "pydantic_core-2.14.3-cp39-none-win32.whl", hash = "sha256:caa94726791e316f0f63049ee00dff3b34a629b0d099f3b594770f7d0d8f1f56"},
+ {file = "pydantic_core-2.14.3-cp39-none-win_amd64.whl", hash = "sha256:2494d20e4c22beac30150b4be3b8339bf2a02ab5580fa6553ca274bc08681a65"},
+ {file = "pydantic_core-2.14.3-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:fe272a72c7ed29f84c42fedd2d06c2f9858dc0c00dae3b34ba15d6d8ae0fbaaf"},
+ {file = "pydantic_core-2.14.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:7e63a56eb7fdee1587d62f753ccd6d5fa24fbeea57a40d9d8beaef679a24bdd6"},
+ {file = "pydantic_core-2.14.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7692f539a26265cece1e27e366df5b976a6db6b1f825a9e0466395b314ee48b"},
+ {file = "pydantic_core-2.14.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af46f0b7a1342b49f208fed31f5a83b8495bb14b652f621e0a6787d2f10f24ee"},
+ {file = "pydantic_core-2.14.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6e2f9d76c00e805d47f19c7a96a14e4135238a7551a18bfd89bb757993fd0933"},
+ {file = "pydantic_core-2.14.3-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:de52ddfa6e10e892d00f747bf7135d7007302ad82e243cf16d89dd77b03b649d"},
+ {file = "pydantic_core-2.14.3-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:38113856c7fad8c19be7ddd57df0c3e77b1b2336459cb03ee3903ce9d5e236ce"},
+ {file = "pydantic_core-2.14.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:354db020b1f8f11207b35360b92d95725621eb92656725c849a61e4b550f4acc"},
+ {file = "pydantic_core-2.14.3-pp37-pypy37_pp73-macosx_10_7_x86_64.whl", hash = "sha256:76fc18653a5c95e5301a52d1b5afb27c9adc77175bf00f73e94f501caf0e05ad"},
+ {file = "pydantic_core-2.14.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2646f8270f932d79ba61102a15ea19a50ae0d43b314e22b3f8f4b5fabbfa6e38"},
+ {file = "pydantic_core-2.14.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:37dad73a2f82975ed563d6a277fd9b50e5d9c79910c4aec787e2d63547202315"},
+ {file = "pydantic_core-2.14.3-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:113752a55a8eaece2e4ac96bc8817f134c2c23477e477d085ba89e3aa0f4dc44"},
+ {file = "pydantic_core-2.14.3-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:8488e973547e8fb1b4193fd9faf5236cf1b7cd5e9e6dc7ff6b4d9afdc4c720cb"},
+ {file = "pydantic_core-2.14.3-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:3d1dde10bd9962b1434053239b1d5490fc31a2b02d8950a5f731bc584c7a5a0f"},
+ {file = "pydantic_core-2.14.3-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:2c83892c7bf92b91d30faca53bb8ea21f9d7e39f0ae4008ef2c2f91116d0464a"},
+ {file = "pydantic_core-2.14.3-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:849cff945284c577c5f621d2df76ca7b60f803cc8663ff01b778ad0af0e39bb9"},
+ {file = "pydantic_core-2.14.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa89919fbd8a553cd7d03bf23d5bc5deee622e1b5db572121287f0e64979476"},
+ {file = "pydantic_core-2.14.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf15145b1f8056d12c67255cd3ce5d317cd4450d5ee747760d8d088d85d12a2d"},
+ {file = "pydantic_core-2.14.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4cc6bb11f4e8e5ed91d78b9880774fbc0856cb226151b0a93b549c2b26a00c19"},
+ {file = "pydantic_core-2.14.3-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:832d16f248ca0cc96929139734ec32d21c67669dcf8a9f3f733c85054429c012"},
+ {file = "pydantic_core-2.14.3-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:b02b5e1f54c3396c48b665050464803c23c685716eb5d82a1d81bf81b5230da4"},
+ {file = "pydantic_core-2.14.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:1f2d4516c32255782153e858f9a900ca6deadfb217fd3fb21bb2b60b4e04d04d"},
+ {file = "pydantic_core-2.14.3-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:0a3e51c2be472b7867eb0c5d025b91400c2b73a0823b89d4303a9097e2ec6655"},
+ {file = "pydantic_core-2.14.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:df33902464410a1f1a0411a235f0a34e7e129f12cb6340daca0f9d1390f5fe10"},
+ {file = "pydantic_core-2.14.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:27828f0227b54804aac6fb077b6bb48e640b5435fdd7fbf0c274093a7b78b69c"},
+ {file = "pydantic_core-2.14.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e2979dc80246e18e348de51246d4c9b410186ffa3c50e77924bec436b1e36cb"},
+ {file = "pydantic_core-2.14.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b28996872b48baf829ee75fa06998b607c66a4847ac838e6fd7473a6b2ab68e7"},
+ {file = "pydantic_core-2.14.3-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:ca55c9671bb637ce13d18ef352fd32ae7aba21b4402f300a63f1fb1fd18e0364"},
+ {file = "pydantic_core-2.14.3-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:aecd5ed096b0e5d93fb0367fd8f417cef38ea30b786f2501f6c34eabd9062c38"},
+ {file = "pydantic_core-2.14.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:44aaf1a07ad0824e407dafc637a852e9a44d94664293bbe7d8ee549c356c8882"},
+ {file = "pydantic_core-2.14.3.tar.gz", hash = "sha256:3ad083df8fe342d4d8d00cc1d3c1a23f0dc84fce416eb301e69f1ddbbe124d3f"},
]
[package.dependencies]
@@ -2797,17 +2806,18 @@ pydantic = [
[[package]]
name = "pygments"
-version = "2.16.1"
+version = "2.17.0"
description = "Pygments is a syntax highlighting package written in Python."
optional = false
python-versions = ">=3.7"
files = [
- {file = "Pygments-2.16.1-py3-none-any.whl", hash = "sha256:13fc09fa63bc8d8671a6d247e1eb303c4b343eaee81d861f3404db2935653692"},
- {file = "Pygments-2.16.1.tar.gz", hash = "sha256:1daff0494820c69bc8941e407aa20f577374ee88364ee10a98fdbe0aece96e29"},
+ {file = "pygments-2.17.0-py3-none-any.whl", hash = "sha256:cd0c46944b2551af02ecc15961050182ea120d3895000e2676160820f3421527"},
+ {file = "pygments-2.17.0.tar.gz", hash = "sha256:edaa0fa2453d055d0ac94449d1f73ec7bc52c5e318204da1377c1392978c4a8d"},
]
[package.extras]
plugins = ["importlib-metadata"]
+windows-terminal = ["colorama (>=0.4.6)"]
[[package]]
name = "pyjwt"
@@ -2840,10 +2850,7 @@ files = [
[package.dependencies]
astroid = ">=3.0.1,<=3.1.0-dev0"
colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""}
-dill = [
- {version = ">=0.3.7", markers = "python_version >= \"3.12\""},
- {version = ">=0.3.6", markers = "python_version >= \"3.11\" and python_version < \"3.12\""},
-]
+dill = {version = ">=0.3.7", markers = "python_version >= \"3.12\""}
isort = ">=4.2.5,<6"
mccabe = ">=0.6,<0.8"
platformdirs = ">=2.2.0"
@@ -2913,20 +2920,20 @@ tests = ["hypothesis (>=3.27.0)", "pytest (>=3.2.1,!=3.3.0)"]
[[package]]
name = "pyopenssl"
-version = "23.2.0"
+version = "23.3.0"
description = "Python wrapper module around the OpenSSL library"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
files = [
- {file = "pyOpenSSL-23.2.0-py3-none-any.whl", hash = "sha256:24f0dc5227396b3e831f4c7f602b950a5e9833d292c8e4a2e06b709292806ae2"},
- {file = "pyOpenSSL-23.2.0.tar.gz", hash = "sha256:276f931f55a452e7dea69c7173e984eb2a4407ce413c918aa34b55f82f9b8bac"},
+ {file = "pyOpenSSL-23.3.0-py3-none-any.whl", hash = "sha256:6756834481d9ed5470f4a9393455154bc92fe7a64b7bc6ee2c804e78c52099b2"},
+ {file = "pyOpenSSL-23.3.0.tar.gz", hash = "sha256:6b2cba5cc46e822750ec3e5a81ee12819850b11303630d575e98108a079c2b12"},
]
[package.dependencies]
-cryptography = ">=38.0.0,<40.0.0 || >40.0.0,<40.0.1 || >40.0.1,<42"
+cryptography = ">=41.0.5,<42"
[package.extras]
-docs = ["sphinx (!=5.2.0,!=5.2.0.post0)", "sphinx-rtd-theme"]
+docs = ["sphinx (!=5.2.0,!=5.2.0.post0,!=7.2.5)", "sphinx-rtd-theme"]
test = ["flaky", "pretend", "pytest (>=3.0.1)"]
[[package]]
@@ -2978,17 +2985,17 @@ testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "no
[[package]]
name = "pytest-django"
-version = "4.5.2"
+version = "4.7.0"
description = "A Django plugin for pytest."
optional = false
-python-versions = ">=3.5"
+python-versions = ">=3.8"
files = [
- {file = "pytest-django-4.5.2.tar.gz", hash = "sha256:d9076f759bb7c36939dbdd5ae6633c18edfc2902d1a69fdbefd2426b970ce6c2"},
- {file = "pytest_django-4.5.2-py3-none-any.whl", hash = "sha256:c60834861933773109334fe5a53e83d1ef4828f2203a1d6a0fa9972f4f75ab3e"},
+ {file = "pytest-django-4.7.0.tar.gz", hash = "sha256:92d6fd46b1d79b54fb6b060bbb39428073396cec717d5f2e122a990d4b6aa5e8"},
+ {file = "pytest_django-4.7.0-py3-none-any.whl", hash = "sha256:4e1c79d5261ade2dd58d91208017cd8f62cb4710b56e012ecd361d15d5d662a2"},
]
[package.dependencies]
-pytest = ">=5.4.0"
+pytest = ">=7.0.0"
[package.extras]
docs = ["sphinx", "sphinx-rtd-theme"]
@@ -3022,6 +3029,20 @@ files = [
[package.dependencies]
pytest = "*"
+[[package]]
+name = "pytest-timeout"
+version = "2.2.0"
+description = "pytest plugin to abort hanging tests"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "pytest-timeout-2.2.0.tar.gz", hash = "sha256:3b0b95dabf3cb50bac9ef5ca912fa0cfc286526af17afc806824df20c2f72c90"},
+ {file = "pytest_timeout-2.2.0-py3-none-any.whl", hash = "sha256:bde531e096466f49398a59f2dde76fa78429a09a12411466f88a07213e220de2"},
+]
+
+[package.dependencies]
+pytest = ">=5.0.0"
+
[[package]]
name = "python-dateutil"
version = "2.8.2"
@@ -3052,13 +3073,13 @@ cli = ["click (>=5.0)"]
[[package]]
name = "pytz"
-version = "2023.3"
+version = "2023.3.post1"
description = "World timezone definitions, modern and historical"
optional = false
python-versions = "*"
files = [
- {file = "pytz-2023.3-py2.py3-none-any.whl", hash = "sha256:a151b3abb88eda1d4e34a9814df37de2a80e301e68ba0fd856fb9b46bfbbbffb"},
- {file = "pytz-2023.3.tar.gz", hash = "sha256:1d8ce29db189191fb55338ee6d0387d82ab59f3d00eac103412d64e0ebd0c588"},
+ {file = "pytz-2023.3.post1-py2.py3-none-any.whl", hash = "sha256:ce42d816b81b68506614c11e8937d3aa9e41007ceb50bfdcb0749b921bf646c7"},
+ {file = "pytz-2023.3.post1.tar.gz", hash = "sha256:7b4fddbeb94a1eba4b557da24f19fdf9db575192544270a9101d8509f9f43d7b"},
]
[[package]]
@@ -3145,31 +3166,28 @@ files = [
[[package]]
name = "redis"
-version = "5.0.0"
+version = "5.0.1"
description = "Python client for Redis database and key-value store"
optional = false
python-versions = ">=3.7"
files = [
- {file = "redis-5.0.0-py3-none-any.whl", hash = "sha256:06570d0b2d84d46c21defc550afbaada381af82f5b83e5b3777600e05d8e2ed0"},
- {file = "redis-5.0.0.tar.gz", hash = "sha256:5cea6c0d335c9a7332a460ed8729ceabb4d0c489c7285b0a86dbbf8a017bd120"},
+ {file = "redis-5.0.1-py3-none-any.whl", hash = "sha256:ed4802971884ae19d640775ba3b03aa2e7bd5e8fb8dfaed2decce4d0fc48391f"},
+ {file = "redis-5.0.1.tar.gz", hash = "sha256:0dab495cd5753069d3bc650a0dde8a8f9edde16fc5691b689a566eda58100d0f"},
]
-[package.dependencies]
-async-timeout = {version = ">=4.0.2", markers = "python_full_version <= \"3.11.2\""}
-
[package.extras]
hiredis = ["hiredis (>=1.0.0)"]
ocsp = ["cryptography (>=36.0.1)", "pyopenssl (==20.0.1)", "requests (>=2.26.0)"]
[[package]]
name = "referencing"
-version = "0.30.2"
+version = "0.31.0"
description = "JSON Referencing + Python"
optional = false
python-versions = ">=3.8"
files = [
- {file = "referencing-0.30.2-py3-none-any.whl", hash = "sha256:449b6669b6121a9e96a7f9e410b245d471e8d48964c67113ce9afe50c8dd7bdf"},
- {file = "referencing-0.30.2.tar.gz", hash = "sha256:794ad8003c65938edcdbc027f1933215e0d0ccc0291e3ce20a4d87432b59efc0"},
+ {file = "referencing-0.31.0-py3-none-any.whl", hash = "sha256:381b11e53dd93babb55696c71cf42aef2d36b8a150c49bf0bc301e36d536c882"},
+ {file = "referencing-0.31.0.tar.gz", hash = "sha256:cc28f2c88fbe7b961a7817a0abc034c09a1e36358f82fedb4ffdf29a25398863"},
]
[package.dependencies]
@@ -3236,13 +3254,13 @@ rsa = ["oauthlib[signedtoken] (>=3.0.0)"]
[[package]]
name = "rich"
-version = "13.5.2"
+version = "13.7.0"
description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal"
optional = false
python-versions = ">=3.7.0"
files = [
- {file = "rich-13.5.2-py3-none-any.whl", hash = "sha256:146a90b3b6b47cac4a73c12866a499e9817426423f57c5a66949c086191a8808"},
- {file = "rich-13.5.2.tar.gz", hash = "sha256:fb9d6c0a0f643c99eed3875b5377a184132ba9be4d61516a55273d3554d75a39"},
+ {file = "rich-13.7.0-py3-none-any.whl", hash = "sha256:6da14c108c4866ee9520bbffa71f6fe3962e193b7da68720583850cd4548e235"},
+ {file = "rich-13.7.0.tar.gz", hash = "sha256:5cb5123b5cf9ee70584244246816e9114227e0b98ad9176eede6ad54bf5403fa"},
]
[package.dependencies]
@@ -3254,108 +3272,110 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"]
[[package]]
name = "rpds-py"
-version = "0.10.0"
+version = "0.13.0"
description = "Python bindings to Rust's persistent data structures (rpds)"
optional = false
python-versions = ">=3.8"
files = [
- {file = "rpds_py-0.10.0-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:c1e0e9916301e3b3d970814b1439ca59487f0616d30f36a44cead66ee1748c31"},
- {file = "rpds_py-0.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8ce8caa29ebbdcde67e5fd652c811d34bc01f249dbc0d61e5cc4db05ae79a83b"},
- {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad277f74b1c164f7248afa968700e410651eb858d7c160d109fb451dc45a2f09"},
- {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8e1c68303ccf7fceb50fbab79064a2636119fd9aca121f28453709283dbca727"},
- {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:780fcb855be29153901c67fc9c5633d48aebef21b90aa72812fa181d731c6b00"},
- {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bbd7b24d108509a1b9b6679fcc1166a7dd031dbef1f3c2c73788f42e3ebb3beb"},
- {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0700c2133ba203c4068aaecd6a59bda22e06a5e46255c9da23cbf68c6942215d"},
- {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:576da63eae7809f375932bfcbca2cf20620a1915bf2fedce4b9cc8491eceefe3"},
- {file = "rpds_py-0.10.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:23750a9b8a329844ba1fe267ca456bb3184984da2880ed17ae641c5af8de3fef"},
- {file = "rpds_py-0.10.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:d08395595c42bcd82c3608762ce734504c6d025eef1c06f42326a6023a584186"},
- {file = "rpds_py-0.10.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1d7b7b71bcb82d8713c7c2e9c5f061415598af5938666beded20d81fa23e7640"},
- {file = "rpds_py-0.10.0-cp310-none-win32.whl", hash = "sha256:97f5811df21703446b42303475b8b855ee07d6ab6cdf8565eff115540624f25d"},
- {file = "rpds_py-0.10.0-cp310-none-win_amd64.whl", hash = "sha256:cdbed8f21204398f47de39b0a9b180d7e571f02dfb18bf5f1b618e238454b685"},
- {file = "rpds_py-0.10.0-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:7a3a3d3e4f1e3cd2a67b93a0b6ed0f2499e33f47cc568e3a0023e405abdc0ff1"},
- {file = "rpds_py-0.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fc72ae476732cdb7b2c1acb5af23b478b8a0d4b6fcf19b90dd150291e0d5b26b"},
- {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c0583f69522732bdd79dca4cd3873e63a29acf4a299769c7541f2ca1e4dd4bc6"},
- {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f8b9a7cd381970e64849070aca7c32d53ab7d96c66db6c2ef7aa23c6e803f514"},
- {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0d292cabd7c8335bdd3237ded442480a249dbcdb4ddfac5218799364a01a0f5c"},
- {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6903cdca64f1e301af9be424798328c1fe3b4b14aede35f04510989fc72f012"},
- {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bed57543c99249ab3a4586ddc8786529fbc33309e5e8a1351802a06ca2baf4c2"},
- {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:15932ec5f224b0e35764dc156514533a4fca52dcfda0dfbe462a1a22b37efd59"},
- {file = "rpds_py-0.10.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:eb2d59bc196e6d3b1827c7db06c1a898bfa0787c0574af398e65ccf2e97c0fbe"},
- {file = "rpds_py-0.10.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f99d74ddf9d3b6126b509e81865f89bd1283e3fc1b568b68cd7bd9dfa15583d7"},
- {file = "rpds_py-0.10.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f70bec8a14a692be6dbe7ce8aab303e88df891cbd4a39af091f90b6702e28055"},
- {file = "rpds_py-0.10.0-cp311-none-win32.whl", hash = "sha256:5f7487be65b9c2c510819e744e375bd41b929a97e5915c4852a82fbb085df62c"},
- {file = "rpds_py-0.10.0-cp311-none-win_amd64.whl", hash = "sha256:748e472345c3a82cfb462d0dff998a7bf43e621eed73374cb19f307e97e08a83"},
- {file = "rpds_py-0.10.0-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:d4639111e73997567343df6551da9dd90d66aece1b9fc26c786d328439488103"},
- {file = "rpds_py-0.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f4760e1b02173f4155203054f77a5dc0b4078de7645c922b208d28e7eb99f3e2"},
- {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a6420a36975e0073acaeee44ead260c1f6ea56812cfc6c31ec00c1c48197173"},
- {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:58fc4d66ee349a23dbf08c7e964120dc9027059566e29cf0ce6205d590ed7eca"},
- {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:063411228b852fb2ed7485cf91f8e7d30893e69b0acb207ec349db04cccc8225"},
- {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65af12f70355de29e1092f319f85a3467f4005e959ab65129cb697169ce94b86"},
- {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:298e8b5d8087e0330aac211c85428c8761230ef46a1f2c516d6a2f67fb8803c5"},
- {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5b9bf77008f2c55dabbd099fd3ac87009471d223a1c7ebea36873d39511b780a"},
- {file = "rpds_py-0.10.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c7853f27195598e550fe089f78f0732c66ee1d1f0eaae8ad081589a5a2f5d4af"},
- {file = "rpds_py-0.10.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:75dbfd41a61bc1fb0536bf7b1abf272dc115c53d4d77db770cd65d46d4520882"},
- {file = "rpds_py-0.10.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b25136212a3d064a8f0b9ebbb6c57094c5229e0de76d15c79b76feff26aeb7b8"},
- {file = "rpds_py-0.10.0-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:9affee8cb1ec453382c27eb9043378ab32f49cd4bc24a24275f5c39bf186c279"},
- {file = "rpds_py-0.10.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4d55528ef13af4b4e074d067977b1f61408602f53ae4537dccf42ba665c2c7bd"},
- {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7865df1fb564092bcf46dac61b5def25342faf6352e4bc0e61a286e3fa26a3d"},
- {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3f5cc8c7bc99d2bbcd704cef165ca7d155cd6464c86cbda8339026a42d219397"},
- {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cbae50d352e4717ffc22c566afc2d0da744380e87ed44a144508e3fb9114a3f4"},
- {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fccbf0cd3411719e4c9426755df90bf3449d9fc5a89f077f4a7f1abd4f70c910"},
- {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78d10c431073dc6ebceed35ab22948a016cc2b5120963c13a41e38bdde4a7212"},
- {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1b401e8b9aece651512e62c431181e6e83048a651698a727ea0eb0699e9f9b74"},
- {file = "rpds_py-0.10.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:7618a082c55cf038eede4a918c1001cc8a4411dfe508dc762659bcd48d8f4c6e"},
- {file = "rpds_py-0.10.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:b3226b246facae14909b465061ddcfa2dfeadb6a64f407f24300d42d69bcb1a1"},
- {file = "rpds_py-0.10.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a8edd467551c1102dc0f5754ab55cd0703431cd3044edf8c8e7d9208d63fa453"},
- {file = "rpds_py-0.10.0-cp38-none-win32.whl", hash = "sha256:71333c22f7cf5f0480b59a0aef21f652cf9bbaa9679ad261b405b65a57511d1e"},
- {file = "rpds_py-0.10.0-cp38-none-win_amd64.whl", hash = "sha256:a8ab1adf04ae2d6d65835995218fd3f3eb644fe20655ca8ee233e2c7270ff53b"},
- {file = "rpds_py-0.10.0-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:87c93b25d538c433fb053da6228c6290117ba53ff6a537c133b0f2087948a582"},
- {file = "rpds_py-0.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7996aed3f65667c6dcc8302a69368435a87c2364079a066750a2eac75ea01e"},
- {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8856aa76839dc234d3469f1e270918ce6bec1d6a601eba928f45d68a15f04fc3"},
- {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:00215f6a9058fbf84f9d47536902558eb61f180a6b2a0fa35338d06ceb9a2e5a"},
- {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23a059143c1393015c68936370cce11690f7294731904bdae47cc3e16d0b2474"},
- {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e5c26905aa651cc8c0ddc45e0e5dea2a1296f70bdc96af17aee9d0493280a17"},
- {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c651847545422c8131660704c58606d841e228ed576c8f1666d98b3d318f89da"},
- {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:80992eb20755701753e30a6952a96aa58f353d12a65ad3c9d48a8da5ec4690cf"},
- {file = "rpds_py-0.10.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ffcf18ad3edf1c170e27e88b10282a2c449aa0358659592462448d71b2000cfc"},
- {file = "rpds_py-0.10.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:08e08ccf5b10badb7d0a5c84829b914c6e1e1f3a716fdb2bf294e2bd01562775"},
- {file = "rpds_py-0.10.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7150b83b3e3ddaac81a8bb6a9b5f93117674a0e7a2b5a5b32ab31fdfea6df27f"},
- {file = "rpds_py-0.10.0-cp39-none-win32.whl", hash = "sha256:3455ecc46ea443b5f7d9c2f946ce4017745e017b0d0f8b99c92564eff97e97f5"},
- {file = "rpds_py-0.10.0-cp39-none-win_amd64.whl", hash = "sha256:afe6b5a04b2ab1aa89bad32ca47bf71358e7302a06fdfdad857389dca8fb5f04"},
- {file = "rpds_py-0.10.0-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:b1cb078f54af0abd835ca76f93a3152565b73be0f056264da45117d0adf5e99c"},
- {file = "rpds_py-0.10.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:8e7e2b3577e97fa43c2c2b12a16139b2cedbd0770235d5179c0412b4794efd9b"},
- {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae46a50d235f1631d9ec4670503f7b30405103034830bc13df29fd947207f795"},
- {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f869e34d2326e417baee430ae998e91412cc8e7fdd83d979277a90a0e79a5b47"},
- {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3d544a614055b131111bed6edfa1cb0fb082a7265761bcb03321f2dd7b5c6c48"},
- {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ee9c2f6ca9774c2c24bbf7b23086264e6b5fa178201450535ec0859739e6f78d"},
- {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2da4a8c6d465fde36cea7d54bf47b5cf089073452f0e47c8632ecb9dec23c07"},
- {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ac00c41dd315d147b129976204839ca9de699d83519ff1272afbe4fb9d362d12"},
- {file = "rpds_py-0.10.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:0155c33af0676fc38e1107679be882077680ad1abb6303956b97259c3177e85e"},
- {file = "rpds_py-0.10.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:db6585b600b2e76e98131e0ac0e5195759082b51687ad0c94505970c90718f4a"},
- {file = "rpds_py-0.10.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:7b6975d3763d0952c111700c0634968419268e6bbc0b55fe71138987fa66f309"},
- {file = "rpds_py-0.10.0-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:6388e4e95a26717b94a05ced084e19da4d92aca883f392dffcf8e48c8e221a24"},
- {file = "rpds_py-0.10.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:18f87baa20e02e9277ad8960cd89b63c79c05caf106f4c959a9595c43f2a34a5"},
- {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92f05fc7d832e970047662b3440b190d24ea04f8d3c760e33e7163b67308c878"},
- {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:291c9ce3929a75b45ce8ddde2aa7694fc8449f2bc8f5bd93adf021efaae2d10b"},
- {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:861d25ae0985a1dd5297fee35f476b60c6029e2e6e19847d5b4d0a43a390b696"},
- {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:668d2b45d62c68c7a370ac3dce108ffda482b0a0f50abd8b4c604a813a59e08f"},
- {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:344b89384c250ba6a4ce1786e04d01500e4dac0f4137ceebcaad12973c0ac0b3"},
- {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:885e023e73ce09b11b89ab91fc60f35d80878d2c19d6213a32b42ff36543c291"},
- {file = "rpds_py-0.10.0-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:841128a22e6ac04070a0f84776d07e9c38c4dcce8e28792a95e45fc621605517"},
- {file = "rpds_py-0.10.0-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:899b5e7e2d5a8bc92aa533c2d4e55e5ebba095c485568a5e4bedbc163421259a"},
- {file = "rpds_py-0.10.0-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:e7947d9a6264c727a556541b1630296bbd5d0a05068d21c38dde8e7a1c703ef0"},
- {file = "rpds_py-0.10.0-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:4992266817169997854f81df7f6db7bdcda1609972d8ffd6919252f09ec3c0f6"},
- {file = "rpds_py-0.10.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:26d9fd624649a10e4610fab2bc820e215a184d193e47d0be7fe53c1c8f67f370"},
- {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0028eb0967942d0d2891eae700ae1a27b7fd18604cfcb16a1ef486a790fee99e"},
- {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f9e7e493ded7042712a374471203dd43ae3fff5b81e3de1a0513fa241af9fd41"},
- {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2d68a8e8a3a816629283faf82358d8c93fe5bd974dd2704152394a3de4cec22a"},
- {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d6d5f061f6a2aa55790b9e64a23dfd87b6664ab56e24cd06c78eb43986cb260b"},
- {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c7c4266c1b61eb429e8aeb7d8ed6a3bfe6c890a1788b18dbec090c35c6b93fa"},
- {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:80772e3bda6787510d9620bc0c7572be404a922f8ccdfd436bf6c3778119464c"},
- {file = "rpds_py-0.10.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:b98e75b21fc2ba5285aef8efaf34131d16af1c38df36bdca2f50634bea2d3060"},
- {file = "rpds_py-0.10.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:d63787f289944cc4bde518ad2b5e70a4f0d6e2ce76324635359c74c113fd188f"},
- {file = "rpds_py-0.10.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:872f3dcaa8bf2245944861d7311179d2c0c9b2aaa7d3b464d99a7c2e401f01fa"},
- {file = "rpds_py-0.10.0.tar.gz", hash = "sha256:e36d7369363d2707d5f68950a64c4e025991eb0177db01ccb6aa6facae48b69f"},
+ {file = "rpds_py-0.13.0-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:1758197cc8d7ff383c07405f188253535b4aa7fa745cbc54d221ae84b18e0702"},
+ {file = "rpds_py-0.13.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:715df74cbcef4387d623c917f295352127f4b3e0388038d68fa577b4e4c6e540"},
+ {file = "rpds_py-0.13.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8a9cec0f49df9bac252d92f138c0d7708d98828e21fd57db78087d8f50b5656"},
+ {file = "rpds_py-0.13.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5c2545bba02f68abdf398ef4990dc77592cc1e5d29438b35b3a3ca34d171fb4b"},
+ {file = "rpds_py-0.13.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:95375c44ffb9ea2bc25d67fb66e726ea266ff1572df50b9556fe28a5f3519cd7"},
+ {file = "rpds_py-0.13.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:54e513df45a8a9419e7952ffd26ac9a5b7b1df97fe72530421794b0de29f9d72"},
+ {file = "rpds_py-0.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a25f514a53927b6b4bd04a9a6a13b55209df54f548660eeed673336c0c946d14"},
+ {file = "rpds_py-0.13.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c1a920fa679ec2758411d66bf68840b0a21317b9954ab0e973742d723bb67709"},
+ {file = "rpds_py-0.13.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f9339d1404b87e6d8cb35e485945753be57a99ab9bb389f42629215b2f6bda0f"},
+ {file = "rpds_py-0.13.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:c99f9dda2c959f7bb69a7125e192c74fcafb7a534a95ccf49313ae3a04807804"},
+ {file = "rpds_py-0.13.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bad6758df5f1042b35683bd1811d5432ac1b17700a5a2a51fdc293f7df5f7827"},
+ {file = "rpds_py-0.13.0-cp310-none-win32.whl", hash = "sha256:2a29ec68fa9655ce9501bc6ae074b166e8b45c2dfcd2d71d90d1a61758ed8c73"},
+ {file = "rpds_py-0.13.0-cp310-none-win_amd64.whl", hash = "sha256:244be953f13f148b0071d67a610f89cd72eb5013a147e517d6ca3f3f3b7e0380"},
+ {file = "rpds_py-0.13.0-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:240279ca0b2afd6d4710afce1c94bf9e75fc161290bf62c0feba64d64780d80b"},
+ {file = "rpds_py-0.13.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:25c9727da2dabc93664a18eda7a70feedf478f0c4c8294e4cdba7f60a479a246"},
+ {file = "rpds_py-0.13.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:981e46e1e5064f95460381bff4353783b4b5ce351c930e5b507ebe0278c61dac"},
+ {file = "rpds_py-0.13.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6052bb47ea583646b8ff562acacb9a2ec5ec847267049cbae3919671929e94c6"},
+ {file = "rpds_py-0.13.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:87f591ff8cc834fa01ca5899ab5edcd7ee590492a9cdcf43424ac142e731ce3e"},
+ {file = "rpds_py-0.13.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:62772259b3381e2aabf274c74fd1e1ac03b0524de0a6593900684becfa8cfe4b"},
+ {file = "rpds_py-0.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4de9d20fe68c16b4d97f551a09920745add0c86430262230528b83c2ed2fe90"},
+ {file = "rpds_py-0.13.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b70a54fb628c1d6400e351674a31ba63d2912b8c5b707f99b408674a5d8b69ab"},
+ {file = "rpds_py-0.13.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2063ab9cd1be7ef6b5ed0f408e2bdf32c060b6f40c097a468f32864731302636"},
+ {file = "rpds_py-0.13.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:84f7f3f18d29a1c645729634003d21d84028bd9c2fd78eba9d028998f46fa5aa"},
+ {file = "rpds_py-0.13.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f7c7ddc8d1a64623068da5a15e28001fbd0f0aff754aae7a75a4be5042191638"},
+ {file = "rpds_py-0.13.0-cp311-none-win32.whl", hash = "sha256:8a33d2b6340261191bb59adb5a453fa6c7d99de85552bd4e8196411f0509c9bf"},
+ {file = "rpds_py-0.13.0-cp311-none-win_amd64.whl", hash = "sha256:8b9c1dd90461940315981499df62a627571c4f0992e8bafc5396d33916224cac"},
+ {file = "rpds_py-0.13.0-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:15a2d542de5cbfc6abddc4846d9412b59f8ee9c8dfa0b9c92a29321297c91745"},
+ {file = "rpds_py-0.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8dd69e01b29ff45a0062cad5c480d8aa9301c3ef09da471f86337a78eb2d3405"},
+ {file = "rpds_py-0.13.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efdd02971a02f98492a72b25484f1f6125fb9f2166e48cc4c9bfa563349c851b"},
+ {file = "rpds_py-0.13.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:91ca9aaee7ccdfa66d800b5c4ec634fefca947721bab52d6ad2f6350969a3771"},
+ {file = "rpds_py-0.13.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:afcec1f5b09d0db70aeb2d90528a9164acb61841a3124e28f6ac0137f4c36cb4"},
+ {file = "rpds_py-0.13.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c6824673f66c47f7ee759c21e973bfce3ceaf2c25cb940cb45b41105dc914e8"},
+ {file = "rpds_py-0.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50b6d80925dfeb573fc5e38582fb9517c6912dc462cc858a11c8177b0837127a"},
+ {file = "rpds_py-0.13.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3a1a38512925829784b5dc38591c757b80cfce115c72c594dc59567dab62b9c4"},
+ {file = "rpds_py-0.13.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:977c6123c359dcc70ce3161b781ab70b0d342de2666944b776617e01a0a7822a"},
+ {file = "rpds_py-0.13.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c472409037e05ed87b99430f97a6b82130328bb977502813547e8ee6a3392502"},
+ {file = "rpds_py-0.13.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:28bb22019f4a783ea06a6b81437d5996551869e8a722ee8720b744f7684d97f4"},
+ {file = "rpds_py-0.13.0-cp312-none-win32.whl", hash = "sha256:46be9c0685cce2ea02151aa8308f2c1b78581be41a5dd239448a941a210ef5dd"},
+ {file = "rpds_py-0.13.0-cp312-none-win_amd64.whl", hash = "sha256:3c5b9ad4d3e05dfcf8629f0d534f92610e9805dbce2fcb9b3c801ddb886431d5"},
+ {file = "rpds_py-0.13.0-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:66eb5aa36e857f768c598d2082fafb733eaf53e06e1169c6b4de65636e04ffd0"},
+ {file = "rpds_py-0.13.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c9f4c2b7d989426e9fe9b720211172cf10eb5f7aa16c63de2e5dc61457abcf35"},
+ {file = "rpds_py-0.13.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1e37dfffe8959a492b7b331995f291847a41a035b4aad82d6060f38e8378a2b"},
+ {file = "rpds_py-0.13.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8220321f2dccd9d66f72639185247cb7bbdd90753bf0b6bfca0fa31dba8af23c"},
+ {file = "rpds_py-0.13.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e8f1d466a9747213d3cf7e1afec849cc51edb70d5b4ae9a82eca0f172bfbb6d0"},
+ {file = "rpds_py-0.13.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c4c4b4ff3de834ec5c1c690e5a18233ca78547d003eb83664668ccf09ef1398"},
+ {file = "rpds_py-0.13.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:525d19ef0a999229ef0f0a7687ab2c9a00d1b6a47a005006f4d8c4b8975fdcec"},
+ {file = "rpds_py-0.13.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0982b59d014efb84a57128e7e69399fb29ad8f2da5b0a5bcbfd12e211c00492e"},
+ {file = "rpds_py-0.13.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:f714dd5b705f1c394d1b361d96486c4981055c434a7eafb1a3147ac75e34a3de"},
+ {file = "rpds_py-0.13.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:766b573a964389ef0d91a26bb31e1b59dbc5d06eff7707f3dfcec23d93080ba3"},
+ {file = "rpds_py-0.13.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:2ed65ad3fc5065d13e31e90794e0b52e405b63ae4fab1080caeaadc10a3439c5"},
+ {file = "rpds_py-0.13.0-cp38-none-win32.whl", hash = "sha256:9645f7fe10a68b2396d238250b4b264c2632d2eb6ce2cb90aa0fe08adee194be"},
+ {file = "rpds_py-0.13.0-cp38-none-win_amd64.whl", hash = "sha256:42d0ad129c102856a364ccc7d356faec017af86b3543a8539795f22b6cabad11"},
+ {file = "rpds_py-0.13.0-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:95c11647fac2a3515ea2614a79e14b7c75025724ad54c91c7db4a6ea5c25ef19"},
+ {file = "rpds_py-0.13.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9435bf4832555c4f769c6be9401664357be33d5f5d8dc58f5c20fb8d21e2c45d"},
+ {file = "rpds_py-0.13.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54b1d671a74395344239ee3adbcd8c496525f6a2b2e54c40fec69620a31a8dcb"},
+ {file = "rpds_py-0.13.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:13c8061115f1468de6ffdfb1d31b446e1bd814f1ff6e556862169aacb9fbbc5d"},
+ {file = "rpds_py-0.13.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a78861123b002725633871a2096c3a4313224aab3d11b953dced87cfba702418"},
+ {file = "rpds_py-0.13.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:97c1be5a018cdad54fa7e5f7d36b9ab45ef941a1d185987f18bdab0a42344012"},
+ {file = "rpds_py-0.13.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e33b17915c8e4fb2ea8b91bb4c46cba92242c63dd38b87e869ead5ba217e2970"},
+ {file = "rpds_py-0.13.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:153b6d8cf7ae4b9ffd09de6abeda661e351e3e06eaafd18a8c104ea00099b131"},
+ {file = "rpds_py-0.13.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:da2852201e8e00c86be82c43d6893e6c380ef648ae53f337ffd1eaa35e3dfb8a"},
+ {file = "rpds_py-0.13.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:a2383f400691fd7bd63347d4d75eb2fd525de9d901799a33a4e896c9885609f8"},
+ {file = "rpds_py-0.13.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:d5bf560634ea6e9a59ceb2181a6cd6195a03f48cef9a400eb15e197e18f14548"},
+ {file = "rpds_py-0.13.0-cp39-none-win32.whl", hash = "sha256:fdaef49055cc0c701fb17b9b34a38ef375e5cdb230b3722d4a12baf9b7cbc6d3"},
+ {file = "rpds_py-0.13.0-cp39-none-win_amd64.whl", hash = "sha256:26660c74a20fe249fad75ca00bbfcf60e57c3fdbde92971c88a20e07fea1de64"},
+ {file = "rpds_py-0.13.0-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:28324f2f0247d407daabf7ff357ad9f36126075c92a0cf5319396d96ff4e1248"},
+ {file = "rpds_py-0.13.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b431c2c0ff1ea56048a2b066d99d0c2d151ae7625b20be159b7e699f3e80390b"},
+ {file = "rpds_py-0.13.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7472bd60a8293217444bdc6a46e516feb8d168da44d5f3fccea0336e88e3b79a"},
+ {file = "rpds_py-0.13.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:169063f346b8fd84f47d986c9c48e6094eb38b839c1287e7cb886b8a2b32195d"},
+ {file = "rpds_py-0.13.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eef7ee7c70f8b8698be468d54f9f5e01804f3a1dd5657e8a96363dbd52b9b5ec"},
+ {file = "rpds_py-0.13.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:762013dd59df12380c5444f61ccbf9ae1297027cabbd7aa25891f724ebf8c8f7"},
+ {file = "rpds_py-0.13.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:152570689a27ae0be1d5f50b21dad38d450b9227d0974f23bd400400ea087e88"},
+ {file = "rpds_py-0.13.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d70a93a40e55da117c511ddc514642bc7d59a95a99137168a5f3f2f876b47962"},
+ {file = "rpds_py-0.13.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:e6c6fed07d13b9e0fb689356c40c81f1aa92e3c9d91d8fd5816a0348ccd999f7"},
+ {file = "rpds_py-0.13.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:cdded3cf9e36840b09ccef714d5fa74a03f4eb6cf81e694226ed9cb5e6f90de0"},
+ {file = "rpds_py-0.13.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:e1f40faf406c52c7ae7d208b9140377c06397248978ccb03fbfbb30a0571e359"},
+ {file = "rpds_py-0.13.0-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:c10326e30c97a95b7e1d75e5200ef0b9827aa0f861e331e43b15dfdfd63e669b"},
+ {file = "rpds_py-0.13.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:afde37e3763c602d0385bce5c12f262e7b1dd2a0f323e239fa9d7b2d4d5d8509"},
+ {file = "rpds_py-0.13.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4084ab6840bd4d79eff3b5f497add847a7db31ce5a0c2d440c90b2d2b7011857"},
+ {file = "rpds_py-0.13.0-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1c9c9cb48ab77ebfa47db25b753f594d4f44959cfe43b713439ca6e3c9329671"},
+ {file = "rpds_py-0.13.0-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:533d728ea5ad5253af3395102723ca8a77b62de47b2295155650c9a88fcdeec8"},
+ {file = "rpds_py-0.13.0-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f22cab655b41033d430f20266bf563b35038a7f01c9a099b0ccfd30a7fb9247"},
+ {file = "rpds_py-0.13.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b9a0507342c37132813449393e6e6f351bbff376031cfff1ee6e616402ac7908"},
+ {file = "rpds_py-0.13.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4eb1faf8e2ee9a2de3cb3ae4c8c355914cdc85f2cd7f27edf76444c9550ce1e7"},
+ {file = "rpds_py-0.13.0-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:a61a152d61e3ae26e0bbba7b2f568f6f25ca0abdeb6553eca7e7c45b59d9b1a9"},
+ {file = "rpds_py-0.13.0-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:e499bf2200eb74774a6f85a7465e3bc5273fa8ef0055590d97a88c1e7ea02eea"},
+ {file = "rpds_py-0.13.0-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:1e5becd0de924616ca9a12abeb6458568d1dc8fe5c670d5cdb738402a8a8429d"},
+ {file = "rpds_py-0.13.0-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:70cfe098d915f566eeebcb683f49f9404d2f948432891b6e075354336eda9dfb"},
+ {file = "rpds_py-0.13.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:2e73511e88368f93c24efe7c9a20b319eaa828bc7431f8a17713efb9e31a39fa"},
+ {file = "rpds_py-0.13.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c07cb9bcccd08f9bc2fd05bf586479df4272ea5a6a70fbcb59b018ed48a5a84d"},
+ {file = "rpds_py-0.13.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8c4e84016ba225e09df20fed8befe8c68d14fbeff6078f4a0ff907ae2095e17e"},
+ {file = "rpds_py-0.13.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6ad465e5a70580ca9c1944f43a9a71bca3a7b74554347fc96ca0479eca8981f9"},
+ {file = "rpds_py-0.13.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:189aebd44a07fa7b7966cf78b85bde8335b0b6c3b1c4ef5589f8c03176830107"},
+ {file = "rpds_py-0.13.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f50ca0460f1f7a89ab9b8355d83ac993d5998ad4218e76654ecf8afe648d8aa"},
+ {file = "rpds_py-0.13.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f6c225011467021879c0482316e42d8a28852fc29f0c15d2a435ff457cadccd4"},
+ {file = "rpds_py-0.13.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:1e63b32b856c0f08a56b76967d61b6ad811d8d330a8aebb9d21afadd82a296f6"},
+ {file = "rpds_py-0.13.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:7e5fbe9800f09c56967fda88c4d9272955e781699a66102bd098f22511a3f260"},
+ {file = "rpds_py-0.13.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:fea99967d4a978ce95dd52310bcb4a943b77c61725393bca631b0908047d6e2f"},
+ {file = "rpds_py-0.13.0.tar.gz", hash = "sha256:35cc91cbb0b775705e0feb3362490b8418c408e9e3c3b9cb3b02f6e495f03ee7"},
]
[[package]]
@@ -3374,39 +3394,39 @@ pyasn1 = ">=0.1.3"
[[package]]
name = "ruff"
-version = "0.1.3"
-description = "An extremely fast Python linter, written in Rust."
+version = "0.1.6"
+description = "An extremely fast Python linter and code formatter, written in Rust."
optional = false
python-versions = ">=3.7"
files = [
- {file = "ruff-0.1.3-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:b46d43d51f7061652eeadb426a9e3caa1e0002470229ab2fc19de8a7b0766901"},
- {file = "ruff-0.1.3-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:b8afeb9abd26b4029c72adc9921b8363374f4e7edb78385ffaa80278313a15f9"},
- {file = "ruff-0.1.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca3cf365bf32e9ba7e6db3f48a4d3e2c446cd19ebee04f05338bc3910114528b"},
- {file = "ruff-0.1.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4874c165f96c14a00590dcc727a04dca0cfd110334c24b039458c06cf78a672e"},
- {file = "ruff-0.1.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eec2dd31eed114e48ea42dbffc443e9b7221976554a504767ceaee3dd38edeb8"},
- {file = "ruff-0.1.3-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:dc3ec4edb3b73f21b4aa51337e16674c752f1d76a4a543af56d7d04e97769613"},
- {file = "ruff-0.1.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e3de9ed2e39160800281848ff4670e1698037ca039bda7b9274f849258d26ce"},
- {file = "ruff-0.1.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c595193881922cc0556a90f3af99b1c5681f0c552e7a2a189956141d8666fe8"},
- {file = "ruff-0.1.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f75e670d529aa2288cd00fc0e9b9287603d95e1536d7a7e0cafe00f75e0dd9d"},
- {file = "ruff-0.1.3-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:76dd49f6cd945d82d9d4a9a6622c54a994689d8d7b22fa1322983389b4892e20"},
- {file = "ruff-0.1.3-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:918b454bc4f8874a616f0d725590277c42949431ceb303950e87fef7a7d94cb3"},
- {file = "ruff-0.1.3-py3-none-musllinux_1_2_i686.whl", hash = "sha256:d8859605e729cd5e53aa38275568dbbdb4fe882d2ea2714c5453b678dca83784"},
- {file = "ruff-0.1.3-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:0b6c55f5ef8d9dd05b230bb6ab80bc4381ecb60ae56db0330f660ea240cb0d4a"},
- {file = "ruff-0.1.3-py3-none-win32.whl", hash = "sha256:3e7afcbdcfbe3399c34e0f6370c30f6e529193c731b885316c5a09c9e4317eef"},
- {file = "ruff-0.1.3-py3-none-win_amd64.whl", hash = "sha256:7a18df6638cec4a5bd75350639b2bb2a2366e01222825562c7346674bdceb7ea"},
- {file = "ruff-0.1.3-py3-none-win_arm64.whl", hash = "sha256:12fd53696c83a194a2db7f9a46337ce06445fb9aa7d25ea6f293cf75b21aca9f"},
- {file = "ruff-0.1.3.tar.gz", hash = "sha256:3ba6145369a151401d5db79f0a47d50e470384d0d89d0d6f7fab0b589ad07c34"},
+ {file = "ruff-0.1.6-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:88b8cdf6abf98130991cbc9f6438f35f6e8d41a02622cc5ee130a02a0ed28703"},
+ {file = "ruff-0.1.6-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:5c549ed437680b6105a1299d2cd30e4964211606eeb48a0ff7a93ef70b902248"},
+ {file = "ruff-0.1.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cf5f701062e294f2167e66d11b092bba7af6a057668ed618a9253e1e90cfd76"},
+ {file = "ruff-0.1.6-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:05991ee20d4ac4bb78385360c684e4b417edd971030ab12a4fbd075ff535050e"},
+ {file = "ruff-0.1.6-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:87455a0c1f739b3c069e2f4c43b66479a54dea0276dd5d4d67b091265f6fd1dc"},
+ {file = "ruff-0.1.6-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:683aa5bdda5a48cb8266fcde8eea2a6af4e5700a392c56ea5fb5f0d4bfdc0240"},
+ {file = "ruff-0.1.6-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:137852105586dcbf80c1717facb6781555c4e99f520c9c827bd414fac67ddfb6"},
+ {file = "ruff-0.1.6-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd98138a98d48a1c36c394fd6b84cd943ac92a08278aa8ac8c0fdefcf7138f35"},
+ {file = "ruff-0.1.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a0cd909d25f227ac5c36d4e7e681577275fb74ba3b11d288aff7ec47e3ae745"},
+ {file = "ruff-0.1.6-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:e8fd1c62a47aa88a02707b5dd20c5ff20d035d634aa74826b42a1da77861b5ff"},
+ {file = "ruff-0.1.6-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:fd89b45d374935829134a082617954120d7a1470a9f0ec0e7f3ead983edc48cc"},
+ {file = "ruff-0.1.6-py3-none-musllinux_1_2_i686.whl", hash = "sha256:491262006e92f825b145cd1e52948073c56560243b55fb3b4ecb142f6f0e9543"},
+ {file = "ruff-0.1.6-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:ea284789861b8b5ca9d5443591a92a397ac183d4351882ab52f6296b4fdd5462"},
+ {file = "ruff-0.1.6-py3-none-win32.whl", hash = "sha256:1610e14750826dfc207ccbcdd7331b6bd285607d4181df9c1c6ae26646d6848a"},
+ {file = "ruff-0.1.6-py3-none-win_amd64.whl", hash = "sha256:4558b3e178145491e9bc3b2ee3c4b42f19d19384eaa5c59d10acf6e8f8b57e33"},
+ {file = "ruff-0.1.6-py3-none-win_arm64.whl", hash = "sha256:03910e81df0d8db0e30050725a5802441c2022ea3ae4fe0609b76081731accbc"},
+ {file = "ruff-0.1.6.tar.gz", hash = "sha256:1b09f29b16c6ead5ea6b097ef2764b42372aebe363722f1605ecbcd2b9207184"},
]
[[package]]
name = "selenium"
-version = "4.14.0"
+version = "4.15.2"
description = ""
optional = false
python-versions = ">=3.8"
files = [
- {file = "selenium-4.14.0-py3-none-any.whl", hash = "sha256:be9824a9354a7fe288e3fad9ceb6a9c65ddc7c44545d23ad0ebf4ce202b19893"},
- {file = "selenium-4.14.0.tar.gz", hash = "sha256:0d14b0d9842366f38fb5f8f842cf7c042bcfa062affc6a0a86e4d634bdd0fe54"},
+ {file = "selenium-4.15.2-py3-none-any.whl", hash = "sha256:9e82cd1ac647fb73cf0d4a6e280284102aaa3c9d94f0fa6e6cc4b5db6a30afbf"},
+ {file = "selenium-4.15.2.tar.gz", hash = "sha256:22eab5a1724c73d51b240a69ca702997b717eee4ba1f6065bf5d6b44dba01d48"},
]
[package.dependencies]
@@ -3417,13 +3437,13 @@ urllib3 = {version = ">=1.26,<3", extras = ["socks"]}
[[package]]
name = "sentry-sdk"
-version = "1.32.0"
+version = "1.36.0"
description = "Python client for Sentry (https://sentry.io)"
optional = false
python-versions = "*"
files = [
- {file = "sentry-sdk-1.32.0.tar.gz", hash = "sha256:935e8fbd7787a3702457393b74b13d89a5afb67185bc0af85c00cb27cbd42e7c"},
- {file = "sentry_sdk-1.32.0-py2.py3-none-any.whl", hash = "sha256:eeb0b3550536f3bbc05bb1c7e0feb3a78d74acb43b607159a606ed2ec0a33a4d"},
+ {file = "sentry-sdk-1.36.0.tar.gz", hash = "sha256:f32dd16547f2f45e1c71a96fd4a48925e629541f7ddfe3d5d25ef7d5e94eb3c8"},
+ {file = "sentry_sdk-1.36.0-py2.py3-none-any.whl", hash = "sha256:25d574f94fdf72199e331c2401fdac60d01b5be8f32822174c51c3ff0fc2f8cb"},
]
[package.dependencies]
@@ -3486,19 +3506,19 @@ tests = ["coverage[toml] (>=5.0.2)", "pytest"]
[[package]]
name = "setuptools"
-version = "68.1.2"
+version = "68.2.2"
description = "Easily download, build, install, upgrade, and uninstall Python packages"
optional = false
python-versions = ">=3.8"
files = [
- {file = "setuptools-68.1.2-py3-none-any.whl", hash = "sha256:3d8083eed2d13afc9426f227b24fd1659489ec107c0e86cec2ffdde5c92e790b"},
- {file = "setuptools-68.1.2.tar.gz", hash = "sha256:3d4dfa6d95f1b101d695a6160a7626e15583af71a5f52176efa5d39a054d475d"},
+ {file = "setuptools-68.2.2-py3-none-any.whl", hash = "sha256:b454a35605876da60632df1a60f736524eb73cc47bbc9f3f1ef1b644de74fd2a"},
+ {file = "setuptools-68.2.2.tar.gz", hash = "sha256:4ac1475276d2f1c48684874089fefcd83bd7162ddaafb81fac866ba0db282a87"},
]
[package.extras]
-docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5,<=7.1.2)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"]
+docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"]
testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"]
-testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"]
+testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.1)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"]
[[package]]
name = "six"
@@ -3513,13 +3533,13 @@ files = [
[[package]]
name = "smmap"
-version = "5.0.0"
+version = "5.0.1"
description = "A pure Python implementation of a sliding window memory map manager"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
files = [
- {file = "smmap-5.0.0-py3-none-any.whl", hash = "sha256:2aba19d6a040e78d8b09de5c57e96207b09ed71d8e55ce0959eeee6c8e190d94"},
- {file = "smmap-5.0.0.tar.gz", hash = "sha256:c840e62059cd3be204b0c9c9f74be2c09d5648eddd4580d9314c3ecde0b30936"},
+ {file = "smmap-5.0.1-py3-none-any.whl", hash = "sha256:e6d8668fa5f93e706934a62d7b4db19c8d9eb8cf2adbb75ef1b675aa332b69da"},
+ {file = "smmap-5.0.1.tar.gz", hash = "sha256:dceeb6c0028fdb6734471eb07c0cd2aae706ccaecab45965ee83f11c8d3b1f62"},
]
[[package]]
@@ -3609,13 +3629,13 @@ typing-extensions = "*"
[[package]]
name = "tomlkit"
-version = "0.12.1"
+version = "0.12.3"
description = "Style preserving TOML library"
optional = false
python-versions = ">=3.7"
files = [
- {file = "tomlkit-0.12.1-py3-none-any.whl", hash = "sha256:712cbd236609acc6a3e2e97253dfc52d4c2082982a88f61b640ecf0817eab899"},
- {file = "tomlkit-0.12.1.tar.gz", hash = "sha256:38e1ff8edb991273ec9f6181244a6a391ac30e9f5098e7535640ea6be97a7c86"},
+ {file = "tomlkit-0.12.3-py3-none-any.whl", hash = "sha256:b0a645a9156dc7cb5d3a1f0d4bab66db287fcb8e0430bdd4664a095ea16414ba"},
+ {file = "tomlkit-0.12.3.tar.gz", hash = "sha256:75baf5012d06501f07bee5bf8e801b9f343e7aac5a92581f20f80ce632e6b5a4"},
]
[[package]]
@@ -3640,13 +3660,13 @@ files = [
[[package]]
name = "trio"
-version = "0.22.2"
+version = "0.23.1"
description = "A friendly Python library for async concurrency and I/O"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
files = [
- {file = "trio-0.22.2-py3-none-any.whl", hash = "sha256:f43da357620e5872b3d940a2e3589aa251fd3f881b65a608d742e00809b1ec38"},
- {file = "trio-0.22.2.tar.gz", hash = "sha256:3887cf18c8bcc894433420305468388dac76932e9668afa1c49aa3806b6accb3"},
+ {file = "trio-0.23.1-py3-none-any.whl", hash = "sha256:bb4abb3f4af23f96679e7c8cdabb8b234520f2498550d2cf63ebfd95f2ce27fe"},
+ {file = "trio-0.23.1.tar.gz", hash = "sha256:16f89f7dcc8f7b9dcdec1fcd863e0c039af6d0f9a22f8dfd56f75d75ec73fd48"},
]
[package.dependencies]
@@ -3654,34 +3674,33 @@ attrs = ">=20.1.0"
cffi = {version = ">=1.14", markers = "os_name == \"nt\" and implementation_name != \"pypy\""}
idna = "*"
outcome = "*"
-sniffio = "*"
+sniffio = ">=1.3.0"
sortedcontainers = "*"
[[package]]
name = "trio-websocket"
-version = "0.10.3"
+version = "0.11.1"
description = "WebSocket library for Trio"
optional = false
python-versions = ">=3.7"
files = [
- {file = "trio-websocket-0.10.3.tar.gz", hash = "sha256:1a748604ad906a7dcab9a43c6eb5681e37de4793ba0847ef0bc9486933ed027b"},
- {file = "trio_websocket-0.10.3-py3-none-any.whl", hash = "sha256:a9937d48e8132ebf833019efde2a52ca82d223a30a7ea3e8d60a7d28f75a4e3a"},
+ {file = "trio-websocket-0.11.1.tar.gz", hash = "sha256:18c11793647703c158b1f6e62de638acada927344d534e3c7628eedcb746839f"},
+ {file = "trio_websocket-0.11.1-py3-none-any.whl", hash = "sha256:520d046b0d030cf970b8b2b2e00c4c2245b3807853ecd44214acd33d74581638"},
]
[package.dependencies]
-exceptiongroup = "*"
trio = ">=0.11"
wsproto = ">=0.14"
[[package]]
name = "twilio"
-version = "8.10.0"
+version = "8.10.2"
description = "Twilio API client and TwiML generator"
optional = false
python-versions = ">=3.7.0"
files = [
- {file = "twilio-8.10.0-py2.py3-none-any.whl", hash = "sha256:1eb04af92f3e70fcc87a2fd30617f53784e34045d054e4ae3dc9cfe7bdf1e692"},
- {file = "twilio-8.10.0.tar.gz", hash = "sha256:3bf2def228ceaa7519f4d6e58b2e3c9cb5d865af02b4618239e52c9d9e75e29d"},
+ {file = "twilio-8.10.2-py2.py3-none-any.whl", hash = "sha256:40f8bd012f6fb970adfc46d40d39162b46a337be8f1aacec83af8a450363626f"},
+ {file = "twilio-8.10.2.tar.gz", hash = "sha256:083449b27eea4fe66f690da8dada3f533d954a0704a74858ea788cf28be69019"},
]
[package.dependencies]
@@ -3692,13 +3711,13 @@ requests = ">=2.0.0"
[[package]]
name = "twisted"
-version = "23.8.0"
+version = "23.10.0"
description = "An asynchronous networking framework written in Python"
optional = false
-python-versions = ">=3.7.1"
+python-versions = ">=3.8.0"
files = [
- {file = "twisted-23.8.0-py3-none-any.whl", hash = "sha256:b8bdba145de120ffb36c20e6e071cce984e89fba798611ed0704216fb7f884cd"},
- {file = "twisted-23.8.0.tar.gz", hash = "sha256:3c73360add17336a622c0d811c2a2ce29866b6e59b1125fd6509b17252098a24"},
+ {file = "twisted-23.10.0-py3-none-any.whl", hash = "sha256:4ae8bce12999a35f7fe6443e7f1893e6fe09588c8d2bed9c35cdce8ff2d5b444"},
+ {file = "twisted-23.10.0.tar.gz", hash = "sha256:987847a0790a2c597197613686e2784fd54167df3a55d0fb17c8412305d76ce5"},
]
[package.dependencies]
@@ -3711,19 +3730,18 @@ incremental = ">=22.10.0"
pyopenssl = {version = ">=21.0.0", optional = true, markers = "extra == \"tls\""}
service-identity = {version = ">=18.1.0", optional = true, markers = "extra == \"tls\""}
twisted-iocpsupport = {version = ">=1.0.2,<2", markers = "platform_system == \"Windows\""}
-typing-extensions = ">=3.10.0"
+typing-extensions = ">=4.2.0"
zope-interface = ">=5"
[package.extras]
-all-non-platform = ["twisted[conch,contextvars,http2,serial,test,tls]", "twisted[conch,contextvars,http2,serial,test,tls]"]
+all-non-platform = ["twisted[conch,http2,serial,test,tls]", "twisted[conch,http2,serial,test,tls]"]
conch = ["appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)"]
-contextvars = ["contextvars (>=2.4,<3)"]
dev = ["coverage (>=6b1,<7)", "pyflakes (>=2.2,<3.0)", "python-subunit (>=1.4,<2.0)", "twisted[dev-release]", "twistedchecker (>=0.7,<1.0)"]
-dev-release = ["pydoctor (>=23.4.0,<23.5.0)", "pydoctor (>=23.4.0,<23.5.0)", "readthedocs-sphinx-ext (>=2.2,<3.0)", "readthedocs-sphinx-ext (>=2.2,<3.0)", "sphinx (>=5,<7)", "sphinx (>=5,<7)", "sphinx-rtd-theme (>=1.2,<2.0)", "sphinx-rtd-theme (>=1.2,<2.0)", "towncrier (>=22.12,<23.0)", "towncrier (>=22.12,<23.0)", "urllib3 (<2)", "urllib3 (<2)"]
+dev-release = ["pydoctor (>=23.9.0,<23.10.0)", "pydoctor (>=23.9.0,<23.10.0)", "sphinx (>=6,<7)", "sphinx (>=6,<7)", "sphinx-rtd-theme (>=1.3,<2.0)", "sphinx-rtd-theme (>=1.3,<2.0)", "towncrier (>=23.6,<24.0)", "towncrier (>=23.6,<24.0)"]
gtk-platform = ["pygobject", "pygobject", "twisted[all-non-platform]", "twisted[all-non-platform]"]
http2 = ["h2 (>=3.0,<5.0)", "priority (>=1.1.0,<2.0)"]
macos-platform = ["pyobjc-core", "pyobjc-core", "pyobjc-framework-cfnetwork", "pyobjc-framework-cfnetwork", "pyobjc-framework-cocoa", "pyobjc-framework-cocoa", "twisted[all-non-platform]", "twisted[all-non-platform]"]
-mypy = ["mypy (==0.981)", "mypy-extensions (==0.4.3)", "mypy-zope (==0.3.11)", "twisted[all-non-platform,dev]", "types-pyopenssl", "types-setuptools"]
+mypy = ["mypy (>=1.5.1,<1.6.0)", "mypy-zope (>=1.0.1,<1.1.0)", "twisted[all-non-platform,dev]", "types-pyopenssl", "types-setuptools"]
osx-platform = ["twisted[macos-platform]", "twisted[macos-platform]"]
serial = ["pyserial (>=3.0)", "pywin32 (!=226)"]
test = ["cython-test-exception-raiser (>=1.0.2,<2)", "hypothesis (>=6.56)", "pyhamcrest (>=2)"]
@@ -3776,13 +3794,13 @@ twisted = ["twisted (>=20.3.0)", "zope.interface (>=5.2.0)"]
[[package]]
name = "typing-extensions"
-version = "4.7.1"
-description = "Backported and Experimental Type Hints for Python 3.7+"
+version = "4.8.0"
+description = "Backported and Experimental Type Hints for Python 3.8+"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
files = [
- {file = "typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36"},
- {file = "typing_extensions-4.7.1.tar.gz", hash = "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"},
+ {file = "typing_extensions-4.8.0-py3-none-any.whl", hash = "sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0"},
+ {file = "typing_extensions-4.8.0.tar.gz", hash = "sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef"},
]
[[package]]
@@ -3820,49 +3838,32 @@ files = [
[[package]]
name = "urllib3"
-version = "2.0.7"
+version = "2.1.0"
description = "HTTP library with thread-safe connection pooling, file post, and more."
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
files = [
- {file = "urllib3-2.0.7-py3-none-any.whl", hash = "sha256:fdb6d215c776278489906c2f8916e6e7d4f5a9b602ccbcfdf7f016fc8da0596e"},
- {file = "urllib3-2.0.7.tar.gz", hash = "sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84"},
+ {file = "urllib3-2.1.0-py3-none-any.whl", hash = "sha256:55901e917a5896a349ff771be919f8bd99aff50b79fe58fec595eb37bbc56bb3"},
+ {file = "urllib3-2.1.0.tar.gz", hash = "sha256:df7aa8afb0148fa78488e7899b2c59b5f4ffcfa82e6c54ccb9dd37c1d7b52d54"},
]
[package.dependencies]
-certifi = {version = "*", optional = true, markers = "extra == \"secure\""}
-cryptography = {version = ">=1.9", optional = true, markers = "extra == \"secure\""}
-idna = {version = ">=2.0.0", optional = true, markers = "extra == \"secure\""}
-pyopenssl = {version = ">=17.1.0", optional = true, markers = "extra == \"secure\""}
pysocks = {version = ">=1.5.6,<1.5.7 || >1.5.7,<2.0", optional = true, markers = "extra == \"socks\""}
-urllib3-secure-extra = {version = "*", optional = true, markers = "extra == \"secure\""}
[package.extras]
brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"]
-secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17.1.0)", "urllib3-secure-extra"]
socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"]
zstd = ["zstandard (>=0.18.0)"]
-[[package]]
-name = "urllib3-secure-extra"
-version = "0.1.0"
-description = "Marker library to detect whether urllib3 was installed with the deprecated [secure] extra"
-optional = false
-python-versions = "*"
-files = [
- {file = "urllib3-secure-extra-0.1.0.tar.gz", hash = "sha256:ee9409cbfeb4b8609047be4c32fb4317870c602767e53fd8a41005ebe6a41dff"},
- {file = "urllib3_secure_extra-0.1.0-py2.py3-none-any.whl", hash = "sha256:f7adcb108b4d12a4b26b99eb60e265d087f435052a76aefa396b6ee85e9a6ef9"},
-]
-
[[package]]
name = "uvicorn"
-version = "0.23.2"
+version = "0.24.0.post1"
description = "The lightning-fast ASGI server."
optional = false
python-versions = ">=3.8"
files = [
- {file = "uvicorn-0.23.2-py3-none-any.whl", hash = "sha256:1f9be6558f01239d4fdf22ef8126c39cb1ad0addf76c40e760549d2c2f43ab53"},
- {file = "uvicorn-0.23.2.tar.gz", hash = "sha256:4d3cc12d7727ba72b64d12d3cc7743124074c0a69f7b201512fc50c3e3f1569a"},
+ {file = "uvicorn-0.24.0.post1-py3-none-any.whl", hash = "sha256:7c84fea70c619d4a710153482c0d230929af7bcf76c7bfa6de151f0a3a80121e"},
+ {file = "uvicorn-0.24.0.post1.tar.gz", hash = "sha256:09c8e5a79dc466bdf28dead50093957db184de356fcdc48697bad3bde4c2588e"},
]
[package.dependencies]
@@ -3881,57 +3882,57 @@ standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)",
[[package]]
name = "uvloop"
-version = "0.17.0"
+version = "0.19.0"
description = "Fast implementation of asyncio event loop on top of libuv"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8.0"
files = [
- {file = "uvloop-0.17.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ce9f61938d7155f79d3cb2ffa663147d4a76d16e08f65e2c66b77bd41b356718"},
- {file = "uvloop-0.17.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:68532f4349fd3900b839f588972b3392ee56042e440dd5873dfbbcd2cc67617c"},
- {file = "uvloop-0.17.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0949caf774b9fcefc7c5756bacbbbd3fc4c05a6b7eebc7c7ad6f825b23998d6d"},
- {file = "uvloop-0.17.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff3d00b70ce95adce264462c930fbaecb29718ba6563db354608f37e49e09024"},
- {file = "uvloop-0.17.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a5abddb3558d3f0a78949c750644a67be31e47936042d4f6c888dd6f3c95f4aa"},
- {file = "uvloop-0.17.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8efcadc5a0003d3a6e887ccc1fb44dec25594f117a94e3127954c05cf144d811"},
- {file = "uvloop-0.17.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3378eb62c63bf336ae2070599e49089005771cc651c8769aaad72d1bd9385a7c"},
- {file = "uvloop-0.17.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6aafa5a78b9e62493539456f8b646f85abc7093dd997f4976bb105537cf2635e"},
- {file = "uvloop-0.17.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c686a47d57ca910a2572fddfe9912819880b8765e2f01dc0dd12a9bf8573e539"},
- {file = "uvloop-0.17.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:864e1197139d651a76c81757db5eb199db8866e13acb0dfe96e6fc5d1cf45fc4"},
- {file = "uvloop-0.17.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:2a6149e1defac0faf505406259561bc14b034cdf1d4711a3ddcdfbaa8d825a05"},
- {file = "uvloop-0.17.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6708f30db9117f115eadc4f125c2a10c1a50d711461699a0cbfaa45b9a78e376"},
- {file = "uvloop-0.17.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:23609ca361a7fc587031429fa25ad2ed7242941adec948f9d10c045bfecab06b"},
- {file = "uvloop-0.17.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2deae0b0fb00a6af41fe60a675cec079615b01d68beb4cc7b722424406b126a8"},
- {file = "uvloop-0.17.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45cea33b208971e87a31c17622e4b440cac231766ec11e5d22c76fab3bf9df62"},
- {file = "uvloop-0.17.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:9b09e0f0ac29eee0451d71798878eae5a4e6a91aa275e114037b27f7db72702d"},
- {file = "uvloop-0.17.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:dbbaf9da2ee98ee2531e0c780455f2841e4675ff580ecf93fe5c48fe733b5667"},
- {file = "uvloop-0.17.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a4aee22ece20958888eedbad20e4dbb03c37533e010fb824161b4f05e641f738"},
- {file = "uvloop-0.17.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:307958f9fc5c8bb01fad752d1345168c0abc5d62c1b72a4a8c6c06f042b45b20"},
- {file = "uvloop-0.17.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ebeeec6a6641d0adb2ea71dcfb76017602ee2bfd8213e3fcc18d8f699c5104f"},
- {file = "uvloop-0.17.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1436c8673c1563422213ac6907789ecb2b070f5939b9cbff9ef7113f2b531595"},
- {file = "uvloop-0.17.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8887d675a64cfc59f4ecd34382e5b4f0ef4ae1da37ed665adba0c2badf0d6578"},
- {file = "uvloop-0.17.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3db8de10ed684995a7f34a001f15b374c230f7655ae840964d51496e2f8a8474"},
- {file = "uvloop-0.17.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7d37dccc7ae63e61f7b96ee2e19c40f153ba6ce730d8ba4d3b4e9738c1dccc1b"},
- {file = "uvloop-0.17.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:cbbe908fda687e39afd6ea2a2f14c2c3e43f2ca88e3a11964b297822358d0e6c"},
- {file = "uvloop-0.17.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d97672dc709fa4447ab83276f344a165075fd9f366a97b712bdd3fee05efae8"},
- {file = "uvloop-0.17.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1e507c9ee39c61bfddd79714e4f85900656db1aec4d40c6de55648e85c2799c"},
- {file = "uvloop-0.17.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c092a2c1e736086d59ac8e41f9c98f26bbf9b9222a76f21af9dfe949b99b2eb9"},
- {file = "uvloop-0.17.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:30babd84706115626ea78ea5dbc7dd8d0d01a2e9f9b306d24ca4ed5796c66ded"},
- {file = "uvloop-0.17.0.tar.gz", hash = "sha256:0ddf6baf9cf11a1a22c71487f39f15b2cf78eb5bde7e5b45fbb99e8a9d91b9e1"},
+ {file = "uvloop-0.19.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:de4313d7f575474c8f5a12e163f6d89c0a878bc49219641d49e6f1444369a90e"},
+ {file = "uvloop-0.19.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5588bd21cf1fcf06bded085f37e43ce0e00424197e7c10e77afd4bbefffef428"},
+ {file = "uvloop-0.19.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b1fd71c3843327f3bbc3237bedcdb6504fd50368ab3e04d0410e52ec293f5b8"},
+ {file = "uvloop-0.19.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a05128d315e2912791de6088c34136bfcdd0c7cbc1cf85fd6fd1bb321b7c849"},
+ {file = "uvloop-0.19.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:cd81bdc2b8219cb4b2556eea39d2e36bfa375a2dd021404f90a62e44efaaf957"},
+ {file = "uvloop-0.19.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5f17766fb6da94135526273080f3455a112f82570b2ee5daa64d682387fe0dcd"},
+ {file = "uvloop-0.19.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4ce6b0af8f2729a02a5d1575feacb2a94fc7b2e983868b009d51c9a9d2149bef"},
+ {file = "uvloop-0.19.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:31e672bb38b45abc4f26e273be83b72a0d28d074d5b370fc4dcf4c4eb15417d2"},
+ {file = "uvloop-0.19.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:570fc0ed613883d8d30ee40397b79207eedd2624891692471808a95069a007c1"},
+ {file = "uvloop-0.19.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5138821e40b0c3e6c9478643b4660bd44372ae1e16a322b8fc07478f92684e24"},
+ {file = "uvloop-0.19.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:91ab01c6cd00e39cde50173ba4ec68a1e578fee9279ba64f5221810a9e786533"},
+ {file = "uvloop-0.19.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:47bf3e9312f63684efe283f7342afb414eea4d3011542155c7e625cd799c3b12"},
+ {file = "uvloop-0.19.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:da8435a3bd498419ee8c13c34b89b5005130a476bda1d6ca8cfdde3de35cd650"},
+ {file = "uvloop-0.19.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:02506dc23a5d90e04d4f65c7791e65cf44bd91b37f24cfc3ef6cf2aff05dc7ec"},
+ {file = "uvloop-0.19.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2693049be9d36fef81741fddb3f441673ba12a34a704e7b4361efb75cf30befc"},
+ {file = "uvloop-0.19.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7010271303961c6f0fe37731004335401eb9075a12680738731e9c92ddd96ad6"},
+ {file = "uvloop-0.19.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:5daa304d2161d2918fa9a17d5635099a2f78ae5b5960e742b2fcfbb7aefaa593"},
+ {file = "uvloop-0.19.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:7207272c9520203fea9b93843bb775d03e1cf88a80a936ce760f60bb5add92f3"},
+ {file = "uvloop-0.19.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:78ab247f0b5671cc887c31d33f9b3abfb88d2614b84e4303f1a63b46c046c8bd"},
+ {file = "uvloop-0.19.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:472d61143059c84947aa8bb74eabbace30d577a03a1805b77933d6bd13ddebbd"},
+ {file = "uvloop-0.19.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45bf4c24c19fb8a50902ae37c5de50da81de4922af65baf760f7c0c42e1088be"},
+ {file = "uvloop-0.19.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:271718e26b3e17906b28b67314c45d19106112067205119dddbd834c2b7ce797"},
+ {file = "uvloop-0.19.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:34175c9fd2a4bc3adc1380e1261f60306344e3407c20a4d684fd5f3be010fa3d"},
+ {file = "uvloop-0.19.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e27f100e1ff17f6feeb1f33968bc185bf8ce41ca557deee9d9bbbffeb72030b7"},
+ {file = "uvloop-0.19.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:13dfdf492af0aa0a0edf66807d2b465607d11c4fa48f4a1fd41cbea5b18e8e8b"},
+ {file = "uvloop-0.19.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6e3d4e85ac060e2342ff85e90d0c04157acb210b9ce508e784a944f852a40e67"},
+ {file = "uvloop-0.19.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8ca4956c9ab567d87d59d49fa3704cf29e37109ad348f2d5223c9bf761a332e7"},
+ {file = "uvloop-0.19.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f467a5fd23b4fc43ed86342641f3936a68ded707f4627622fa3f82a120e18256"},
+ {file = "uvloop-0.19.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:492e2c32c2af3f971473bc22f086513cedfc66a130756145a931a90c3958cb17"},
+ {file = "uvloop-0.19.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2df95fca285a9f5bfe730e51945ffe2fa71ccbfdde3b0da5772b4ee4f2e770d5"},
+ {file = "uvloop-0.19.0.tar.gz", hash = "sha256:0246f4fd1bf2bf702e06b0d45ee91677ee5c31242f39aab4ea6fe0c51aedd0fd"},
]
[package.extras]
-dev = ["Cython (>=0.29.32,<0.30.0)", "Sphinx (>=4.1.2,<4.2.0)", "aiohttp", "flake8 (>=3.9.2,<3.10.0)", "mypy (>=0.800)", "psutil", "pyOpenSSL (>=22.0.0,<22.1.0)", "pycodestyle (>=2.7.0,<2.8.0)", "pytest (>=3.6.0)", "sphinx-rtd-theme (>=0.5.2,<0.6.0)", "sphinxcontrib-asyncio (>=0.3.0,<0.4.0)"]
docs = ["Sphinx (>=4.1.2,<4.2.0)", "sphinx-rtd-theme (>=0.5.2,<0.6.0)", "sphinxcontrib-asyncio (>=0.3.0,<0.4.0)"]
-test = ["Cython (>=0.29.32,<0.30.0)", "aiohttp", "flake8 (>=3.9.2,<3.10.0)", "mypy (>=0.800)", "psutil", "pyOpenSSL (>=22.0.0,<22.1.0)", "pycodestyle (>=2.7.0,<2.8.0)"]
+test = ["Cython (>=0.29.36,<0.30.0)", "aiohttp (==3.9.0b0)", "aiohttp (>=3.8.1)", "flake8 (>=5.0,<6.0)", "mypy (>=0.800)", "psutil", "pyOpenSSL (>=23.0.0,<23.1.0)", "pycodestyle (>=2.9.0,<2.10.0)"]
[[package]]
name = "vine"
-version = "5.0.0"
-description = "Promises, promises, promises."
+version = "5.1.0"
+description = "Python promises."
optional = false
python-versions = ">=3.6"
files = [
- {file = "vine-5.0.0-py2.py3-none-any.whl", hash = "sha256:4c9dceab6f76ed92105027c49c823800dd33cacce13bdedc5b914e3514b7fb30"},
- {file = "vine-5.0.0.tar.gz", hash = "sha256:7d3b1624a953da82ef63462013bbd271d3eb75751489f9807598e8f340bd637e"},
+ {file = "vine-5.1.0-py3-none-any.whl", hash = "sha256:40fdf3c48b2cfe1c38a49e9ae2da6fda88e4794c810050a728bd7413811fb1dc"},
+ {file = "vine-5.1.0.tar.gz", hash = "sha256:8b62e981d35c41049211cf62a0a1242d8c1ee9bd15bb196ce38aefd6799e61e0"},
]
[[package]]
@@ -3975,33 +3976,86 @@ watchmedo = ["PyYAML (>=3.10)"]
[[package]]
name = "watchfiles"
-version = "0.20.0"
+version = "0.21.0"
description = "Simple, modern and high performance file watching and code reload in python."
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
files = [
- {file = "watchfiles-0.20.0-cp37-abi3-macosx_10_7_x86_64.whl", hash = "sha256:3796312bd3587e14926013612b23066912cf45a14af71cf2b20db1c12dadf4e9"},
- {file = "watchfiles-0.20.0-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:d0002d81c89a662b595645fb684a371b98ff90a9c7d8f8630c82f0fde8310458"},
- {file = "watchfiles-0.20.0-cp37-abi3-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:570848706440373b4cd8017f3e850ae17f76dbdf1e9045fc79023b11e1afe490"},
- {file = "watchfiles-0.20.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9a0351d20d03c6f7ad6b2e8a226a5efafb924c7755ee1e34f04c77c3682417fa"},
- {file = "watchfiles-0.20.0-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:007dcc4a401093010b389c044e81172c8a2520dba257c88f8828b3d460c6bb38"},
- {file = "watchfiles-0.20.0-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0d82dbc1832da83e441d112069833eedd4cf583d983fb8dd666fbefbea9d99c0"},
- {file = "watchfiles-0.20.0-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:99f4c65fd2fce61a571b2a6fcf747d6868db0bef8a934e8ca235cc8533944d95"},
- {file = "watchfiles-0.20.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5392dd327a05f538c56edb1c6ebba6af91afc81b40822452342f6da54907bbdf"},
- {file = "watchfiles-0.20.0-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:08dc702529bb06a2b23859110c214db245455532da5eaea602921687cfcd23db"},
- {file = "watchfiles-0.20.0-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:7d4e66a857621584869cfbad87039e65dadd7119f0d9bb9dbc957e089e32c164"},
- {file = "watchfiles-0.20.0-cp37-abi3-win32.whl", hash = "sha256:a03d1e6feb7966b417f43c3e3783188167fd69c2063e86bad31e62c4ea794cc5"},
- {file = "watchfiles-0.20.0-cp37-abi3-win_amd64.whl", hash = "sha256:eccc8942bcdc7d638a01435d915b913255bbd66f018f1af051cd8afddb339ea3"},
- {file = "watchfiles-0.20.0-cp37-abi3-win_arm64.whl", hash = "sha256:b17d4176c49d207865630da5b59a91779468dd3e08692fe943064da260de2c7c"},
- {file = "watchfiles-0.20.0-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:d97db179f7566dcf145c5179ddb2ae2a4450e3a634eb864b09ea04e68c252e8e"},
- {file = "watchfiles-0.20.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:835df2da7a5df5464c4a23b2d963e1a9d35afa422c83bf4ff4380b3114603644"},
- {file = "watchfiles-0.20.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:608cd94a8767f49521901aff9ae0c92cc8f5a24d528db7d6b0295290f9d41193"},
- {file = "watchfiles-0.20.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89d1de8218874925bce7bb2ae9657efc504411528930d7a83f98b1749864f2ef"},
- {file = "watchfiles-0.20.0-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:13f995d5152a8ba4ed7c2bbbaeee4e11a5944defc7cacd0ccb4dcbdcfd78029a"},
- {file = "watchfiles-0.20.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:9b5c8d3be7b502f8c43a33c63166ada8828dbb0c6d49c8f9ce990a96de2f5a49"},
- {file = "watchfiles-0.20.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e43af4464daa08723c04b43cf978ab86cc55c684c16172622bdac64b34e36af0"},
- {file = "watchfiles-0.20.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87d9e1f75c4f86c93d73b5bd1ebe667558357548f11b4f8af4e0e272f79413ce"},
- {file = "watchfiles-0.20.0.tar.gz", hash = "sha256:728575b6b94c90dd531514677201e8851708e6e4b5fe7028ac506a200b622019"},
+ {file = "watchfiles-0.21.0-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:27b4035013f1ea49c6c0b42d983133b136637a527e48c132d368eb19bf1ac6aa"},
+ {file = "watchfiles-0.21.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c81818595eff6e92535ff32825f31c116f867f64ff8cdf6562cd1d6b2e1e8f3e"},
+ {file = "watchfiles-0.21.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:6c107ea3cf2bd07199d66f156e3ea756d1b84dfd43b542b2d870b77868c98c03"},
+ {file = "watchfiles-0.21.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d9ac347653ebd95839a7c607608703b20bc07e577e870d824fa4801bc1cb124"},
+ {file = "watchfiles-0.21.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5eb86c6acb498208e7663ca22dbe68ca2cf42ab5bf1c776670a50919a56e64ab"},
+ {file = "watchfiles-0.21.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f564bf68404144ea6b87a78a3f910cc8de216c6b12a4cf0b27718bf4ec38d303"},
+ {file = "watchfiles-0.21.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d0f32ebfaa9c6011f8454994f86108c2eb9c79b8b7de00b36d558cadcedaa3d"},
+ {file = "watchfiles-0.21.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b6d45d9b699ecbac6c7bd8e0a2609767491540403610962968d258fd6405c17c"},
+ {file = "watchfiles-0.21.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:aff06b2cac3ef4616e26ba17a9c250c1fe9dd8a5d907d0193f84c499b1b6e6a9"},
+ {file = "watchfiles-0.21.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d9792dff410f266051025ecfaa927078b94cc7478954b06796a9756ccc7e14a9"},
+ {file = "watchfiles-0.21.0-cp310-none-win32.whl", hash = "sha256:214cee7f9e09150d4fb42e24919a1e74d8c9b8a9306ed1474ecaddcd5479c293"},
+ {file = "watchfiles-0.21.0-cp310-none-win_amd64.whl", hash = "sha256:1ad7247d79f9f55bb25ab1778fd47f32d70cf36053941f07de0b7c4e96b5d235"},
+ {file = "watchfiles-0.21.0-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:668c265d90de8ae914f860d3eeb164534ba2e836811f91fecc7050416ee70aa7"},
+ {file = "watchfiles-0.21.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3a23092a992e61c3a6a70f350a56db7197242f3490da9c87b500f389b2d01eef"},
+ {file = "watchfiles-0.21.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:e7941bbcfdded9c26b0bf720cb7e6fd803d95a55d2c14b4bd1f6a2772230c586"},
+ {file = "watchfiles-0.21.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:11cd0c3100e2233e9c53106265da31d574355c288e15259c0d40a4405cbae317"},
+ {file = "watchfiles-0.21.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d78f30cbe8b2ce770160d3c08cff01b2ae9306fe66ce899b73f0409dc1846c1b"},
+ {file = "watchfiles-0.21.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6674b00b9756b0af620aa2a3346b01f8e2a3dc729d25617e1b89cf6af4a54eb1"},
+ {file = "watchfiles-0.21.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fd7ac678b92b29ba630d8c842d8ad6c555abda1b9ef044d6cc092dacbfc9719d"},
+ {file = "watchfiles-0.21.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c873345680c1b87f1e09e0eaf8cf6c891b9851d8b4d3645e7efe2ec20a20cc7"},
+ {file = "watchfiles-0.21.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:49f56e6ecc2503e7dbe233fa328b2be1a7797d31548e7a193237dcdf1ad0eee0"},
+ {file = "watchfiles-0.21.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:02d91cbac553a3ad141db016e3350b03184deaafeba09b9d6439826ee594b365"},
+ {file = "watchfiles-0.21.0-cp311-none-win32.whl", hash = "sha256:ebe684d7d26239e23d102a2bad2a358dedf18e462e8808778703427d1f584400"},
+ {file = "watchfiles-0.21.0-cp311-none-win_amd64.whl", hash = "sha256:4566006aa44cb0d21b8ab53baf4b9c667a0ed23efe4aaad8c227bfba0bf15cbe"},
+ {file = "watchfiles-0.21.0-cp311-none-win_arm64.whl", hash = "sha256:c550a56bf209a3d987d5a975cdf2063b3389a5d16caf29db4bdddeae49f22078"},
+ {file = "watchfiles-0.21.0-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:51ddac60b96a42c15d24fbdc7a4bfcd02b5a29c047b7f8bf63d3f6f5a860949a"},
+ {file = "watchfiles-0.21.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:511f0b034120cd1989932bf1e9081aa9fb00f1f949fbd2d9cab6264916ae89b1"},
+ {file = "watchfiles-0.21.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:cfb92d49dbb95ec7a07511bc9efb0faff8fe24ef3805662b8d6808ba8409a71a"},
+ {file = "watchfiles-0.21.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f92944efc564867bbf841c823c8b71bb0be75e06b8ce45c084b46411475a915"},
+ {file = "watchfiles-0.21.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:642d66b75eda909fd1112d35c53816d59789a4b38c141a96d62f50a3ef9b3360"},
+ {file = "watchfiles-0.21.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d23bcd6c8eaa6324fe109d8cac01b41fe9a54b8c498af9ce464c1aeeb99903d6"},
+ {file = "watchfiles-0.21.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18d5b4da8cf3e41895b34e8c37d13c9ed294954907929aacd95153508d5d89d7"},
+ {file = "watchfiles-0.21.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b8d1eae0f65441963d805f766c7e9cd092f91e0c600c820c764a4ff71a0764c"},
+ {file = "watchfiles-0.21.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1fd9a5205139f3c6bb60d11f6072e0552f0a20b712c85f43d42342d162be1235"},
+ {file = "watchfiles-0.21.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a1e3014a625bcf107fbf38eece0e47fa0190e52e45dc6eee5a8265ddc6dc5ea7"},
+ {file = "watchfiles-0.21.0-cp312-none-win32.whl", hash = "sha256:9d09869f2c5a6f2d9df50ce3064b3391d3ecb6dced708ad64467b9e4f2c9bef3"},
+ {file = "watchfiles-0.21.0-cp312-none-win_amd64.whl", hash = "sha256:18722b50783b5e30a18a8a5db3006bab146d2b705c92eb9a94f78c72beb94094"},
+ {file = "watchfiles-0.21.0-cp312-none-win_arm64.whl", hash = "sha256:a3b9bec9579a15fb3ca2d9878deae789df72f2b0fdaf90ad49ee389cad5edab6"},
+ {file = "watchfiles-0.21.0-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:4ea10a29aa5de67de02256a28d1bf53d21322295cb00bd2d57fcd19b850ebd99"},
+ {file = "watchfiles-0.21.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:40bca549fdc929b470dd1dbfcb47b3295cb46a6d2c90e50588b0a1b3bd98f429"},
+ {file = "watchfiles-0.21.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9b37a7ba223b2f26122c148bb8d09a9ff312afca998c48c725ff5a0a632145f7"},
+ {file = "watchfiles-0.21.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec8c8900dc5c83650a63dd48c4d1d245343f904c4b64b48798c67a3767d7e165"},
+ {file = "watchfiles-0.21.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8ad3fe0a3567c2f0f629d800409cd528cb6251da12e81a1f765e5c5345fd0137"},
+ {file = "watchfiles-0.21.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d353c4cfda586db2a176ce42c88f2fc31ec25e50212650c89fdd0f560ee507b"},
+ {file = "watchfiles-0.21.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:83a696da8922314ff2aec02987eefb03784f473281d740bf9170181829133765"},
+ {file = "watchfiles-0.21.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a03651352fc20975ee2a707cd2d74a386cd303cc688f407296064ad1e6d1562"},
+ {file = "watchfiles-0.21.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:3ad692bc7792be8c32918c699638b660c0de078a6cbe464c46e1340dadb94c19"},
+ {file = "watchfiles-0.21.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06247538e8253975bdb328e7683f8515ff5ff041f43be6c40bff62d989b7d0b0"},
+ {file = "watchfiles-0.21.0-cp38-none-win32.whl", hash = "sha256:9a0aa47f94ea9a0b39dd30850b0adf2e1cd32a8b4f9c7aa443d852aacf9ca214"},
+ {file = "watchfiles-0.21.0-cp38-none-win_amd64.whl", hash = "sha256:8d5f400326840934e3507701f9f7269247f7c026d1b6cfd49477d2be0933cfca"},
+ {file = "watchfiles-0.21.0-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:7f762a1a85a12cc3484f77eee7be87b10f8c50b0b787bb02f4e357403cad0c0e"},
+ {file = "watchfiles-0.21.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6e9be3ef84e2bb9710f3f777accce25556f4a71e15d2b73223788d528fcc2052"},
+ {file = "watchfiles-0.21.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:4c48a10d17571d1275701e14a601e36959ffada3add8cdbc9e5061a6e3579a5d"},
+ {file = "watchfiles-0.21.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c889025f59884423428c261f212e04d438de865beda0b1e1babab85ef4c0f01"},
+ {file = "watchfiles-0.21.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:66fac0c238ab9a2e72d026b5fb91cb902c146202bbd29a9a1a44e8db7b710b6f"},
+ {file = "watchfiles-0.21.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b4a21f71885aa2744719459951819e7bf5a906a6448a6b2bbce8e9cc9f2c8128"},
+ {file = "watchfiles-0.21.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c9198c989f47898b2c22201756f73249de3748e0fc9de44adaf54a8b259cc0c"},
+ {file = "watchfiles-0.21.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8f57c4461cd24fda22493109c45b3980863c58a25b8bec885ca8bea6b8d4b28"},
+ {file = "watchfiles-0.21.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:853853cbf7bf9408b404754b92512ebe3e3a83587503d766d23e6bf83d092ee6"},
+ {file = "watchfiles-0.21.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d5b1dc0e708fad9f92c296ab2f948af403bf201db8fb2eb4c8179db143732e49"},
+ {file = "watchfiles-0.21.0-cp39-none-win32.whl", hash = "sha256:59137c0c6826bd56c710d1d2bda81553b5e6b7c84d5a676747d80caf0409ad94"},
+ {file = "watchfiles-0.21.0-cp39-none-win_amd64.whl", hash = "sha256:6cb8fdc044909e2078c248986f2fc76f911f72b51ea4a4fbbf472e01d14faa58"},
+ {file = "watchfiles-0.21.0-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:ab03a90b305d2588e8352168e8c5a1520b721d2d367f31e9332c4235b30b8994"},
+ {file = "watchfiles-0.21.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:927c589500f9f41e370b0125c12ac9e7d3a2fd166b89e9ee2828b3dda20bfe6f"},
+ {file = "watchfiles-0.21.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1bd467213195e76f838caf2c28cd65e58302d0254e636e7c0fca81efa4a2e62c"},
+ {file = "watchfiles-0.21.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02b73130687bc3f6bb79d8a170959042eb56eb3a42df3671c79b428cd73f17cc"},
+ {file = "watchfiles-0.21.0-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:08dca260e85ffae975448e344834d765983237ad6dc308231aa16e7933db763e"},
+ {file = "watchfiles-0.21.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:3ccceb50c611c433145502735e0370877cced72a6c70fd2410238bcbc7fe51d8"},
+ {file = "watchfiles-0.21.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:57d430f5fb63fea141ab71ca9c064e80de3a20b427ca2febcbfcef70ff0ce895"},
+ {file = "watchfiles-0.21.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dd5fad9b9c0dd89904bbdea978ce89a2b692a7ee8a0ce19b940e538c88a809c"},
+ {file = "watchfiles-0.21.0-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:be6dd5d52b73018b21adc1c5d28ac0c68184a64769052dfeb0c5d9998e7f56a2"},
+ {file = "watchfiles-0.21.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:b3cab0e06143768499384a8a5efb9c4dc53e19382952859e4802f294214f36ec"},
+ {file = "watchfiles-0.21.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c6ed10c2497e5fedadf61e465b3ca12a19f96004c15dcffe4bd442ebadc2d85"},
+ {file = "watchfiles-0.21.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:43babacef21c519bc6631c5fce2a61eccdfc011b4bcb9047255e9620732c8097"},
+ {file = "watchfiles-0.21.0.tar.gz", hash = "sha256:c76c635fabf542bb78524905718c39f736a98e5ab25b23ec6d4abede1a85a6a3"},
]
[package.dependencies]
@@ -4009,24 +4063,24 @@ anyio = ">=3.0.0"
[[package]]
name = "wcwidth"
-version = "0.2.6"
+version = "0.2.10"
description = "Measures the displayed width of unicode strings in a terminal"
optional = false
python-versions = "*"
files = [
- {file = "wcwidth-0.2.6-py2.py3-none-any.whl", hash = "sha256:795b138f6875577cd91bba52baf9e445cd5118fd32723b460e30a0af30ea230e"},
- {file = "wcwidth-0.2.6.tar.gz", hash = "sha256:a5220780a404dbe3353789870978e472cfe477761f06ee55077256e509b156d0"},
+ {file = "wcwidth-0.2.10-py2.py3-none-any.whl", hash = "sha256:aec5179002dd0f0d40c456026e74a729661c9d468e1ed64405e3a6c2176ca36f"},
+ {file = "wcwidth-0.2.10.tar.gz", hash = "sha256:390c7454101092a6a5e43baad8f83de615463af459201709556b6e4b1c861f97"},
]
[[package]]
name = "webauthn"
-version = "1.11.0"
+version = "1.11.1"
description = "Pythonic WebAuthn"
optional = false
python-versions = "*"
files = [
- {file = "webauthn-1.11.0-py3-none-any.whl", hash = "sha256:9c8a81f7e310aee022a038ae2c76711bcf0a94521a471225e05c36871f83eeda"},
- {file = "webauthn-1.11.0.tar.gz", hash = "sha256:1e808de1e3625a4b361e249e1bbb254d2a3a5c6b206e6f7260c4febe51f45276"},
+ {file = "webauthn-1.11.1-py3-none-any.whl", hash = "sha256:13592ee71489b571cb6e4a5d8b3c34f7b040cd3539a9d94b6b7d23fa88df5dfb"},
+ {file = "webauthn-1.11.1.tar.gz", hash = "sha256:24eda57903897369797f52a377f8c470e7057e79da5525779d0720a9fcc11926"},
]
[package.dependencies]
@@ -4038,13 +4092,13 @@ pyOpenSSL = ">=23.2.0"
[[package]]
name = "websocket-client"
-version = "1.6.2"
+version = "1.6.4"
description = "WebSocket client for Python with low level API options"
optional = false
python-versions = ">=3.8"
files = [
- {file = "websocket-client-1.6.2.tar.gz", hash = "sha256:53e95c826bf800c4c465f50093a8c4ff091c7327023b10bfaff40cf1ef170eaa"},
- {file = "websocket_client-1.6.2-py3-none-any.whl", hash = "sha256:ce54f419dfae71f4bdba69ebe65bf7f0a93fe71bc009ad3a010aacc3eebad537"},
+ {file = "websocket-client-1.6.4.tar.gz", hash = "sha256:b3324019b3c28572086c4a319f91d1dcd44e6e11cd340232978c684a7650d0df"},
+ {file = "websocket_client-1.6.4-py3-none-any.whl", hash = "sha256:084072e0a7f5f347ef2ac3d8698a5e0b4ffbfcab607628cadabc650fc9a83a24"},
]
[package.extras]
@@ -4054,81 +4108,83 @@ test = ["websockets"]
[[package]]
name = "websockets"
-version = "11.0.3"
+version = "12.0"
description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
files = [
- {file = "websockets-11.0.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3ccc8a0c387629aec40f2fc9fdcb4b9d5431954f934da3eaf16cdc94f67dbfac"},
- {file = "websockets-11.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d67ac60a307f760c6e65dad586f556dde58e683fab03323221a4e530ead6f74d"},
- {file = "websockets-11.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:84d27a4832cc1a0ee07cdcf2b0629a8a72db73f4cf6de6f0904f6661227f256f"},
- {file = "websockets-11.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffd7dcaf744f25f82190856bc26ed81721508fc5cbf2a330751e135ff1283564"},
- {file = "websockets-11.0.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7622a89d696fc87af8e8d280d9b421db5133ef5b29d3f7a1ce9f1a7bf7fcfa11"},
- {file = "websockets-11.0.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bceab846bac555aff6427d060f2fcfff71042dba6f5fca7dc4f75cac815e57ca"},
- {file = "websockets-11.0.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:54c6e5b3d3a8936a4ab6870d46bdd6ec500ad62bde9e44462c32d18f1e9a8e54"},
- {file = "websockets-11.0.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:41f696ba95cd92dc047e46b41b26dd24518384749ed0d99bea0a941ca87404c4"},
- {file = "websockets-11.0.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:86d2a77fd490ae3ff6fae1c6ceaecad063d3cc2320b44377efdde79880e11526"},
- {file = "websockets-11.0.3-cp310-cp310-win32.whl", hash = "sha256:2d903ad4419f5b472de90cd2d40384573b25da71e33519a67797de17ef849b69"},
- {file = "websockets-11.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:1d2256283fa4b7f4c7d7d3e84dc2ece74d341bce57d5b9bf385df109c2a1a82f"},
- {file = "websockets-11.0.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e848f46a58b9fcf3d06061d17be388caf70ea5b8cc3466251963c8345e13f7eb"},
- {file = "websockets-11.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:aa5003845cdd21ac0dc6c9bf661c5beddd01116f6eb9eb3c8e272353d45b3288"},
- {file = "websockets-11.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b58cbf0697721120866820b89f93659abc31c1e876bf20d0b3d03cef14faf84d"},
- {file = "websockets-11.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:660e2d9068d2bedc0912af508f30bbeb505bbbf9774d98def45f68278cea20d3"},
- {file = "websockets-11.0.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c1f0524f203e3bd35149f12157438f406eff2e4fb30f71221c8a5eceb3617b6b"},
- {file = "websockets-11.0.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:def07915168ac8f7853812cc593c71185a16216e9e4fa886358a17ed0fd9fcf6"},
- {file = "websockets-11.0.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b30c6590146e53149f04e85a6e4fcae068df4289e31e4aee1fdf56a0dead8f97"},
- {file = "websockets-11.0.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:619d9f06372b3a42bc29d0cd0354c9bb9fb39c2cbc1a9c5025b4538738dbffaf"},
- {file = "websockets-11.0.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:01f5567d9cf6f502d655151645d4e8b72b453413d3819d2b6f1185abc23e82dd"},
- {file = "websockets-11.0.3-cp311-cp311-win32.whl", hash = "sha256:e1459677e5d12be8bbc7584c35b992eea142911a6236a3278b9b5ce3326f282c"},
- {file = "websockets-11.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:e7837cb169eca3b3ae94cc5787c4fed99eef74c0ab9506756eea335e0d6f3ed8"},
- {file = "websockets-11.0.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:9f59a3c656fef341a99e3d63189852be7084c0e54b75734cde571182c087b152"},
- {file = "websockets-11.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2529338a6ff0eb0b50c7be33dc3d0e456381157a31eefc561771ee431134a97f"},
- {file = "websockets-11.0.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:34fd59a4ac42dff6d4681d8843217137f6bc85ed29722f2f7222bd619d15e95b"},
- {file = "websockets-11.0.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:332d126167ddddec94597c2365537baf9ff62dfcc9db4266f263d455f2f031cb"},
- {file = "websockets-11.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6505c1b31274723ccaf5f515c1824a4ad2f0d191cec942666b3d0f3aa4cb4007"},
- {file = "websockets-11.0.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f467ba0050b7de85016b43f5a22b46383ef004c4f672148a8abf32bc999a87f0"},
- {file = "websockets-11.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:9d9acd80072abcc98bd2c86c3c9cd4ac2347b5a5a0cae7ed5c0ee5675f86d9af"},
- {file = "websockets-11.0.3-cp37-cp37m-win32.whl", hash = "sha256:e590228200fcfc7e9109509e4d9125eace2042fd52b595dd22bbc34bb282307f"},
- {file = "websockets-11.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:b16fff62b45eccb9c7abb18e60e7e446998093cdcb50fed33134b9b6878836de"},
- {file = "websockets-11.0.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:fb06eea71a00a7af0ae6aefbb932fb8a7df3cb390cc217d51a9ad7343de1b8d0"},
- {file = "websockets-11.0.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8a34e13a62a59c871064dfd8ffb150867e54291e46d4a7cf11d02c94a5275bae"},
- {file = "websockets-11.0.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4841ed00f1026dfbced6fca7d963c4e7043aa832648671b5138008dc5a8f6d99"},
- {file = "websockets-11.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a073fc9ab1c8aff37c99f11f1641e16da517770e31a37265d2755282a5d28aa"},
- {file = "websockets-11.0.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:68b977f21ce443d6d378dbd5ca38621755f2063d6fdb3335bda981d552cfff86"},
- {file = "websockets-11.0.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1a99a7a71631f0efe727c10edfba09ea6bee4166a6f9c19aafb6c0b5917d09c"},
- {file = "websockets-11.0.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:bee9fcb41db2a23bed96c6b6ead6489702c12334ea20a297aa095ce6d31370d0"},
- {file = "websockets-11.0.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4b253869ea05a5a073ebfdcb5cb3b0266a57c3764cf6fe114e4cd90f4bfa5f5e"},
- {file = "websockets-11.0.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:1553cb82942b2a74dd9b15a018dce645d4e68674de2ca31ff13ebc2d9f283788"},
- {file = "websockets-11.0.3-cp38-cp38-win32.whl", hash = "sha256:f61bdb1df43dc9c131791fbc2355535f9024b9a04398d3bd0684fc16ab07df74"},
- {file = "websockets-11.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:03aae4edc0b1c68498f41a6772d80ac7c1e33c06c6ffa2ac1c27a07653e79d6f"},
- {file = "websockets-11.0.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:777354ee16f02f643a4c7f2b3eff8027a33c9861edc691a2003531f5da4f6bc8"},
- {file = "websockets-11.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8c82f11964f010053e13daafdc7154ce7385ecc538989a354ccc7067fd7028fd"},
- {file = "websockets-11.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3580dd9c1ad0701169e4d6fc41e878ffe05e6bdcaf3c412f9d559389d0c9e016"},
- {file = "websockets-11.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f1a3f10f836fab6ca6efa97bb952300b20ae56b409414ca85bff2ad241d2a61"},
- {file = "websockets-11.0.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:df41b9bc27c2c25b486bae7cf42fccdc52ff181c8c387bfd026624a491c2671b"},
- {file = "websockets-11.0.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:279e5de4671e79a9ac877427f4ac4ce93751b8823f276b681d04b2156713b9dd"},
- {file = "websockets-11.0.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1fdf26fa8a6a592f8f9235285b8affa72748dc12e964a5518c6c5e8f916716f7"},
- {file = "websockets-11.0.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:69269f3a0b472e91125b503d3c0b3566bda26da0a3261c49f0027eb6075086d1"},
- {file = "websockets-11.0.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:97b52894d948d2f6ea480171a27122d77af14ced35f62e5c892ca2fae9344311"},
- {file = "websockets-11.0.3-cp39-cp39-win32.whl", hash = "sha256:c7f3cb904cce8e1be667c7e6fef4516b98d1a6a0635a58a57528d577ac18a128"},
- {file = "websockets-11.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:c792ea4eabc0159535608fc5658a74d1a81020eb35195dd63214dcf07556f67e"},
- {file = "websockets-11.0.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:f2e58f2c36cc52d41f2659e4c0cbf7353e28c8c9e63e30d8c6d3494dc9fdedcf"},
- {file = "websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de36fe9c02995c7e6ae6efe2e205816f5f00c22fd1fbf343d4d18c3d5ceac2f5"},
- {file = "websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0ac56b661e60edd453585f4bd68eb6a29ae25b5184fd5ba51e97652580458998"},
- {file = "websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e052b8467dd07d4943936009f46ae5ce7b908ddcac3fda581656b1b19c083d9b"},
- {file = "websockets-11.0.3-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:42cc5452a54a8e46a032521d7365da775823e21bfba2895fb7b77633cce031bb"},
- {file = "websockets-11.0.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e6316827e3e79b7b8e7d8e3b08f4e331af91a48e794d5d8b099928b6f0b85f20"},
- {file = "websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8531fdcad636d82c517b26a448dcfe62f720e1922b33c81ce695d0edb91eb931"},
- {file = "websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c114e8da9b475739dde229fd3bc6b05a6537a88a578358bc8eb29b4030fac9c9"},
- {file = "websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e063b1865974611313a3849d43f2c3f5368093691349cf3c7c8f8f75ad7cb280"},
- {file = "websockets-11.0.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:92b2065d642bf8c0a82d59e59053dd2fdde64d4ed44efe4870fa816c1232647b"},
- {file = "websockets-11.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0ee68fe502f9031f19d495dae2c268830df2760c0524cbac5d759921ba8c8e82"},
- {file = "websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dcacf2c7a6c3a84e720d1bb2b543c675bf6c40e460300b628bab1b1efc7c034c"},
- {file = "websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b67c6f5e5a401fc56394f191f00f9b3811fe843ee93f4a70df3c389d1adf857d"},
- {file = "websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d5023a4b6a5b183dc838808087033ec5df77580485fc533e7dab2567851b0a4"},
- {file = "websockets-11.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ed058398f55163a79bb9f06a90ef9ccc063b204bb346c4de78efc5d15abfe602"},
- {file = "websockets-11.0.3-py3-none-any.whl", hash = "sha256:6681ba9e7f8f3b19440921e99efbb40fc89f26cd71bf539e45d8c8a25c976dc6"},
- {file = "websockets-11.0.3.tar.gz", hash = "sha256:88fc51d9a26b10fc331be344f1781224a375b78488fc343620184e95a4b27016"},
+ {file = "websockets-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d554236b2a2006e0ce16315c16eaa0d628dab009c33b63ea03f41c6107958374"},
+ {file = "websockets-12.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2d225bb6886591b1746b17c0573e29804619c8f755b5598d875bb4235ea639be"},
+ {file = "websockets-12.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:eb809e816916a3b210bed3c82fb88eaf16e8afcf9c115ebb2bacede1797d2547"},
+ {file = "websockets-12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c588f6abc13f78a67044c6b1273a99e1cf31038ad51815b3b016ce699f0d75c2"},
+ {file = "websockets-12.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5aa9348186d79a5f232115ed3fa9020eab66d6c3437d72f9d2c8ac0c6858c558"},
+ {file = "websockets-12.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6350b14a40c95ddd53e775dbdbbbc59b124a5c8ecd6fbb09c2e52029f7a9f480"},
+ {file = "websockets-12.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:70ec754cc2a769bcd218ed8d7209055667b30860ffecb8633a834dde27d6307c"},
+ {file = "websockets-12.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6e96f5ed1b83a8ddb07909b45bd94833b0710f738115751cdaa9da1fb0cb66e8"},
+ {file = "websockets-12.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4d87be612cbef86f994178d5186add3d94e9f31cc3cb499a0482b866ec477603"},
+ {file = "websockets-12.0-cp310-cp310-win32.whl", hash = "sha256:befe90632d66caaf72e8b2ed4d7f02b348913813c8b0a32fae1cc5fe3730902f"},
+ {file = "websockets-12.0-cp310-cp310-win_amd64.whl", hash = "sha256:363f57ca8bc8576195d0540c648aa58ac18cf85b76ad5202b9f976918f4219cf"},
+ {file = "websockets-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5d873c7de42dea355d73f170be0f23788cf3fa9f7bed718fd2830eefedce01b4"},
+ {file = "websockets-12.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3f61726cae9f65b872502ff3c1496abc93ffbe31b278455c418492016e2afc8f"},
+ {file = "websockets-12.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ed2fcf7a07334c77fc8a230755c2209223a7cc44fc27597729b8ef5425aa61a3"},
+ {file = "websockets-12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e332c210b14b57904869ca9f9bf4ca32f5427a03eeb625da9b616c85a3a506c"},
+ {file = "websockets-12.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5693ef74233122f8ebab026817b1b37fe25c411ecfca084b29bc7d6efc548f45"},
+ {file = "websockets-12.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e9e7db18b4539a29cc5ad8c8b252738a30e2b13f033c2d6e9d0549b45841c04"},
+ {file = "websockets-12.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6e2df67b8014767d0f785baa98393725739287684b9f8d8a1001eb2839031447"},
+ {file = "websockets-12.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:bea88d71630c5900690fcb03161ab18f8f244805c59e2e0dc4ffadae0a7ee0ca"},
+ {file = "websockets-12.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dff6cdf35e31d1315790149fee351f9e52978130cef6c87c4b6c9b3baf78bc53"},
+ {file = "websockets-12.0-cp311-cp311-win32.whl", hash = "sha256:3e3aa8c468af01d70332a382350ee95f6986db479ce7af14d5e81ec52aa2b402"},
+ {file = "websockets-12.0-cp311-cp311-win_amd64.whl", hash = "sha256:25eb766c8ad27da0f79420b2af4b85d29914ba0edf69f547cc4f06ca6f1d403b"},
+ {file = "websockets-12.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0e6e2711d5a8e6e482cacb927a49a3d432345dfe7dea8ace7b5790df5932e4df"},
+ {file = "websockets-12.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:dbcf72a37f0b3316e993e13ecf32f10c0e1259c28ffd0a85cee26e8549595fbc"},
+ {file = "websockets-12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:12743ab88ab2af1d17dd4acb4645677cb7063ef4db93abffbf164218a5d54c6b"},
+ {file = "websockets-12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b645f491f3c48d3f8a00d1fce07445fab7347fec54a3e65f0725d730d5b99cb"},
+ {file = "websockets-12.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9893d1aa45a7f8b3bc4510f6ccf8db8c3b62120917af15e3de247f0780294b92"},
+ {file = "websockets-12.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f38a7b376117ef7aff996e737583172bdf535932c9ca021746573bce40165ed"},
+ {file = "websockets-12.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:f764ba54e33daf20e167915edc443b6f88956f37fb606449b4a5b10ba42235a5"},
+ {file = "websockets-12.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:1e4b3f8ea6a9cfa8be8484c9221ec0257508e3a1ec43c36acdefb2a9c3b00aa2"},
+ {file = "websockets-12.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9fdf06fd06c32205a07e47328ab49c40fc1407cdec801d698a7c41167ea45113"},
+ {file = "websockets-12.0-cp312-cp312-win32.whl", hash = "sha256:baa386875b70cbd81798fa9f71be689c1bf484f65fd6fb08d051a0ee4e79924d"},
+ {file = "websockets-12.0-cp312-cp312-win_amd64.whl", hash = "sha256:ae0a5da8f35a5be197f328d4727dbcfafa53d1824fac3d96cdd3a642fe09394f"},
+ {file = "websockets-12.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5f6ffe2c6598f7f7207eef9a1228b6f5c818f9f4d53ee920aacd35cec8110438"},
+ {file = "websockets-12.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9edf3fc590cc2ec20dc9d7a45108b5bbaf21c0d89f9fd3fd1685e223771dc0b2"},
+ {file = "websockets-12.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8572132c7be52632201a35f5e08348137f658e5ffd21f51f94572ca6c05ea81d"},
+ {file = "websockets-12.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:604428d1b87edbf02b233e2c207d7d528460fa978f9e391bd8aaf9c8311de137"},
+ {file = "websockets-12.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1a9d160fd080c6285e202327aba140fc9a0d910b09e423afff4ae5cbbf1c7205"},
+ {file = "websockets-12.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87b4aafed34653e465eb77b7c93ef058516cb5acf3eb21e42f33928616172def"},
+ {file = "websockets-12.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b2ee7288b85959797970114deae81ab41b731f19ebcd3bd499ae9ca0e3f1d2c8"},
+ {file = "websockets-12.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:7fa3d25e81bfe6a89718e9791128398a50dec6d57faf23770787ff441d851967"},
+ {file = "websockets-12.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:a571f035a47212288e3b3519944f6bf4ac7bc7553243e41eac50dd48552b6df7"},
+ {file = "websockets-12.0-cp38-cp38-win32.whl", hash = "sha256:3c6cc1360c10c17463aadd29dd3af332d4a1adaa8796f6b0e9f9df1fdb0bad62"},
+ {file = "websockets-12.0-cp38-cp38-win_amd64.whl", hash = "sha256:1bf386089178ea69d720f8db6199a0504a406209a0fc23e603b27b300fdd6892"},
+ {file = "websockets-12.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ab3d732ad50a4fbd04a4490ef08acd0517b6ae6b77eb967251f4c263011a990d"},
+ {file = "websockets-12.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a1d9697f3337a89691e3bd8dc56dea45a6f6d975f92e7d5f773bc715c15dde28"},
+ {file = "websockets-12.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1df2fbd2c8a98d38a66f5238484405b8d1d16f929bb7a33ed73e4801222a6f53"},
+ {file = "websockets-12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23509452b3bc38e3a057382c2e941d5ac2e01e251acce7adc74011d7d8de434c"},
+ {file = "websockets-12.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e5fc14ec6ea568200ea4ef46545073da81900a2b67b3e666f04adf53ad452ec"},
+ {file = "websockets-12.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46e71dbbd12850224243f5d2aeec90f0aaa0f2dde5aeeb8fc8df21e04d99eff9"},
+ {file = "websockets-12.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b81f90dcc6c85a9b7f29873beb56c94c85d6f0dac2ea8b60d995bd18bf3e2aae"},
+ {file = "websockets-12.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:a02413bc474feda2849c59ed2dfb2cddb4cd3d2f03a2fedec51d6e959d9b608b"},
+ {file = "websockets-12.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:bbe6013f9f791944ed31ca08b077e26249309639313fff132bfbf3ba105673b9"},
+ {file = "websockets-12.0-cp39-cp39-win32.whl", hash = "sha256:cbe83a6bbdf207ff0541de01e11904827540aa069293696dd528a6640bd6a5f6"},
+ {file = "websockets-12.0-cp39-cp39-win_amd64.whl", hash = "sha256:fc4e7fa5414512b481a2483775a8e8be7803a35b30ca805afa4998a84f9fd9e8"},
+ {file = "websockets-12.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:248d8e2446e13c1d4326e0a6a4e9629cb13a11195051a73acf414812700badbd"},
+ {file = "websockets-12.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f44069528d45a933997a6fef143030d8ca8042f0dfaad753e2906398290e2870"},
+ {file = "websockets-12.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c4e37d36f0d19f0a4413d3e18c0d03d0c268ada2061868c1e6f5ab1a6d575077"},
+ {file = "websockets-12.0-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d829f975fc2e527a3ef2f9c8f25e553eb7bc779c6665e8e1d52aa22800bb38b"},
+ {file = "websockets-12.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:2c71bd45a777433dd9113847af751aae36e448bc6b8c361a566cb043eda6ec30"},
+ {file = "websockets-12.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0bee75f400895aef54157b36ed6d3b308fcab62e5260703add87f44cee9c82a6"},
+ {file = "websockets-12.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:423fc1ed29f7512fceb727e2d2aecb952c46aa34895e9ed96071821309951123"},
+ {file = "websockets-12.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27a5e9964ef509016759f2ef3f2c1e13f403725a5e6a1775555994966a66e931"},
+ {file = "websockets-12.0-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3181df4583c4d3994d31fb235dc681d2aaad744fbdbf94c4802485ececdecf2"},
+ {file = "websockets-12.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:b067cb952ce8bf40115f6c19f478dc71c5e719b7fbaa511359795dfd9d1a6468"},
+ {file = "websockets-12.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:00700340c6c7ab788f176d118775202aadea7602c5cc6be6ae127761c16d6b0b"},
+ {file = "websockets-12.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e469d01137942849cff40517c97a30a93ae79917752b34029f0ec72df6b46399"},
+ {file = "websockets-12.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffefa1374cd508d633646d51a8e9277763a9b78ae71324183693959cf94635a7"},
+ {file = "websockets-12.0-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba0cab91b3956dfa9f512147860783a1829a8d905ee218a9837c18f683239611"},
+ {file = "websockets-12.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2cb388a5bfb56df4d9a406783b7f9dbefb888c09b71629351cc6b036e9259370"},
+ {file = "websockets-12.0-py3-none-any.whl", hash = "sha256:dc284bbc8d7c78a6c69e0c7325ab46ee5e40bb4d50e494d8131a07ef47500e9e"},
+ {file = "websockets-12.0.tar.gz", hash = "sha256:81df9cbcbb6c260de1e007e58c011bfebe2dafc8435107b0537f393dd38c8b1b"},
]
[[package]]
@@ -4259,63 +4315,69 @@ multidict = ">=4.0"
[[package]]
name = "zipp"
-version = "3.16.2"
+version = "3.17.0"
description = "Backport of pathlib-compatible object wrapper for zip files"
optional = false
python-versions = ">=3.8"
files = [
- {file = "zipp-3.16.2-py3-none-any.whl", hash = "sha256:679e51dd4403591b2d6838a48de3d283f3d188412a9782faadf845f298736ba0"},
- {file = "zipp-3.16.2.tar.gz", hash = "sha256:ebc15946aa78bd63458992fc81ec3b6f7b1e92d51c35e6de1c3804e73b799147"},
+ {file = "zipp-3.17.0-py3-none-any.whl", hash = "sha256:0e923e726174922dce09c53c59ad483ff7bbb8e572e00c7f7c46b88556409f31"},
+ {file = "zipp-3.17.0.tar.gz", hash = "sha256:84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0"},
]
[package.extras]
-docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
+docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"]
testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"]
[[package]]
name = "zope-interface"
-version = "6.0"
+version = "6.1"
description = "Interfaces for Python"
optional = false
python-versions = ">=3.7"
files = [
- {file = "zope.interface-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f299c020c6679cb389814a3b81200fe55d428012c5e76da7e722491f5d205990"},
- {file = "zope.interface-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ee4b43f35f5dc15e1fec55ccb53c130adb1d11e8ad8263d68b1284b66a04190d"},
- {file = "zope.interface-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5a158846d0fca0a908c1afb281ddba88744d403f2550dc34405c3691769cdd85"},
- {file = "zope.interface-6.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f72f23bab1848edb7472309e9898603141644faec9fd57a823ea6b4d1c4c8995"},
- {file = "zope.interface-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:48f4d38cf4b462e75fac78b6f11ad47b06b1c568eb59896db5b6ec1094eb467f"},
- {file = "zope.interface-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:87b690bbee9876163210fd3f500ee59f5803e4a6607d1b1238833b8885ebd410"},
- {file = "zope.interface-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f2363e5fd81afb650085c6686f2ee3706975c54f331b426800b53531191fdf28"},
- {file = "zope.interface-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:af169ba897692e9cd984a81cb0f02e46dacdc07d6cf9fd5c91e81f8efaf93d52"},
- {file = "zope.interface-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fa90bac61c9dc3e1a563e5babb3fd2c0c1c80567e815442ddbe561eadc803b30"},
- {file = "zope.interface-6.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:89086c9d3490a0f265a3c4b794037a84541ff5ffa28bb9c24cc9f66566968464"},
- {file = "zope.interface-6.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:809fe3bf1a91393abc7e92d607976bbb8586512913a79f2bf7d7ec15bd8ea518"},
- {file = "zope.interface-6.0-cp311-cp311-win_amd64.whl", hash = "sha256:0ec9653825f837fbddc4e4b603d90269b501486c11800d7c761eee7ce46d1bbb"},
- {file = "zope.interface-6.0-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:790c1d9d8f9c92819c31ea660cd43c3d5451df1df61e2e814a6f99cebb292788"},
- {file = "zope.interface-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b39b8711578dcfd45fc0140993403b8a81e879ec25d53189f3faa1f006087dca"},
- {file = "zope.interface-6.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eba51599370c87088d8882ab74f637de0c4f04a6d08a312dce49368ba9ed5c2a"},
- {file = "zope.interface-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ee934f023f875ec2cfd2b05a937bd817efcc6c4c3f55c5778cbf78e58362ddc"},
- {file = "zope.interface-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:042f2381118b093714081fd82c98e3b189b68db38ee7d35b63c327c470ef8373"},
- {file = "zope.interface-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:dfbbbf0809a3606046a41f8561c3eada9db811be94138f42d9135a5c47e75f6f"},
- {file = "zope.interface-6.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:424d23b97fa1542d7be882eae0c0fc3d6827784105264a8169a26ce16db260d8"},
- {file = "zope.interface-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e538f2d4a6ffb6edfb303ce70ae7e88629ac6e5581870e66c306d9ad7b564a58"},
- {file = "zope.interface-6.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:12175ca6b4db7621aedd7c30aa7cfa0a2d65ea3a0105393e05482d7a2d367446"},
- {file = "zope.interface-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c3d7dfd897a588ec27e391edbe3dd320a03684457470415870254e714126b1f"},
- {file = "zope.interface-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:b3f543ae9d3408549a9900720f18c0194ac0fe810cecda2a584fd4dca2eb3bb8"},
- {file = "zope.interface-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d0583b75f2e70ec93f100931660328965bb9ff65ae54695fb3fa0a1255daa6f2"},
- {file = "zope.interface-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:23ac41d52fd15dd8be77e3257bc51bbb82469cf7f5e9a30b75e903e21439d16c"},
- {file = "zope.interface-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99856d6c98a326abbcc2363827e16bd6044f70f2ef42f453c0bd5440c4ce24e5"},
- {file = "zope.interface-6.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1592f68ae11e557b9ff2bc96ac8fc30b187e77c45a3c9cd876e3368c53dc5ba8"},
- {file = "zope.interface-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4407b1435572e3e1610797c9203ad2753666c62883b921318c5403fb7139dec2"},
- {file = "zope.interface-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:5171eb073474a5038321409a630904fd61f12dd1856dd7e9d19cd6fe092cbbc5"},
- {file = "zope.interface-6.0.tar.gz", hash = "sha256:aab584725afd10c710b8f1e6e208dbee2d0ad009f57d674cb9d1b3964037275d"},
+ {file = "zope.interface-6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:43b576c34ef0c1f5a4981163b551a8781896f2a37f71b8655fd20b5af0386abb"},
+ {file = "zope.interface-6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:67be3ca75012c6e9b109860820a8b6c9a84bfb036fbd1076246b98e56951ca92"},
+ {file = "zope.interface-6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b9bc671626281f6045ad61d93a60f52fd5e8209b1610972cf0ef1bbe6d808e3"},
+ {file = "zope.interface-6.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bbe81def9cf3e46f16ce01d9bfd8bea595e06505e51b7baf45115c77352675fd"},
+ {file = "zope.interface-6.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6dc998f6de015723196a904045e5a2217f3590b62ea31990672e31fbc5370b41"},
+ {file = "zope.interface-6.1-cp310-cp310-win_amd64.whl", hash = "sha256:239a4a08525c080ff833560171d23b249f7f4d17fcbf9316ef4159f44997616f"},
+ {file = "zope.interface-6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9ffdaa5290422ac0f1688cb8adb1b94ca56cee3ad11f29f2ae301df8aecba7d1"},
+ {file = "zope.interface-6.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:34c15ca9248f2e095ef2e93af2d633358c5f048c49fbfddf5fdfc47d5e263736"},
+ {file = "zope.interface-6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b012d023b4fb59183909b45d7f97fb493ef7a46d2838a5e716e3155081894605"},
+ {file = "zope.interface-6.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:97806e9ca3651588c1baaebb8d0c5ee3db95430b612db354c199b57378312ee8"},
+ {file = "zope.interface-6.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fddbab55a2473f1d3b8833ec6b7ac31e8211b0aa608df5ab09ce07f3727326de"},
+ {file = "zope.interface-6.1-cp311-cp311-win_amd64.whl", hash = "sha256:a0da79117952a9a41253696ed3e8b560a425197d4e41634a23b1507efe3273f1"},
+ {file = "zope.interface-6.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e8bb9c990ca9027b4214fa543fd4025818dc95f8b7abce79d61dc8a2112b561a"},
+ {file = "zope.interface-6.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b51b64432eed4c0744241e9ce5c70dcfecac866dff720e746d0a9c82f371dfa7"},
+ {file = "zope.interface-6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa6fd016e9644406d0a61313e50348c706e911dca29736a3266fc9e28ec4ca6d"},
+ {file = "zope.interface-6.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c8cf55261e15590065039696607f6c9c1aeda700ceee40c70478552d323b3ff"},
+ {file = "zope.interface-6.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e30506bcb03de8983f78884807e4fd95d8db6e65b69257eea05d13d519b83ac0"},
+ {file = "zope.interface-6.1-cp312-cp312-win_amd64.whl", hash = "sha256:e33e86fd65f369f10608b08729c8f1c92ec7e0e485964670b4d2633a4812d36b"},
+ {file = "zope.interface-6.1-cp37-cp37m-macosx_11_0_x86_64.whl", hash = "sha256:2f8d89721834524a813f37fa174bac074ec3d179858e4ad1b7efd4401f8ac45d"},
+ {file = "zope.interface-6.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:13b7d0f2a67eb83c385880489dbb80145e9d344427b4262c49fbf2581677c11c"},
+ {file = "zope.interface-6.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef43ee91c193f827e49599e824385ec7c7f3cd152d74cb1dfe02cb135f264d83"},
+ {file = "zope.interface-6.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e441e8b7d587af0414d25e8d05e27040d78581388eed4c54c30c0c91aad3a379"},
+ {file = "zope.interface-6.1-cp37-cp37m-win_amd64.whl", hash = "sha256:f89b28772fc2562ed9ad871c865f5320ef761a7fcc188a935e21fe8b31a38ca9"},
+ {file = "zope.interface-6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:70d2cef1bf529bff41559be2de9d44d47b002f65e17f43c73ddefc92f32bf00f"},
+ {file = "zope.interface-6.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ad54ed57bdfa3254d23ae04a4b1ce405954969c1b0550cc2d1d2990e8b439de1"},
+ {file = "zope.interface-6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef467d86d3cfde8b39ea1b35090208b0447caaabd38405420830f7fd85fbdd56"},
+ {file = "zope.interface-6.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6af47f10cfc54c2ba2d825220f180cc1e2d4914d783d6fc0cd93d43d7bc1c78b"},
+ {file = "zope.interface-6.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9559138690e1bd4ea6cd0954d22d1e9251e8025ce9ede5d0af0ceae4a401e43"},
+ {file = "zope.interface-6.1-cp38-cp38-win_amd64.whl", hash = "sha256:964a7af27379ff4357dad1256d9f215047e70e93009e532d36dcb8909036033d"},
+ {file = "zope.interface-6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:387545206c56b0315fbadb0431d5129c797f92dc59e276b3ce82db07ac1c6179"},
+ {file = "zope.interface-6.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:57d0a8ce40ce440f96a2c77824ee94bf0d0925e6089df7366c2272ccefcb7941"},
+ {file = "zope.interface-6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ebc4d34e7620c4f0da7bf162c81978fce0ea820e4fa1e8fc40ee763839805f3"},
+ {file = "zope.interface-6.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5a804abc126b33824a44a7aa94f06cd211a18bbf31898ba04bd0924fbe9d282d"},
+ {file = "zope.interface-6.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f294a15f7723fc0d3b40701ca9b446133ec713eafc1cc6afa7b3d98666ee1ac"},
+ {file = "zope.interface-6.1-cp39-cp39-win_amd64.whl", hash = "sha256:a41f87bb93b8048fe866fa9e3d0c51e27fe55149035dcf5f43da4b56732c0a40"},
+ {file = "zope.interface-6.1.tar.gz", hash = "sha256:2fdc7ccbd6eb6b7df5353012fbed6c3c5d04ceaca0038f75e601060e95345309"},
]
[package.dependencies]
setuptools = "*"
[package.extras]
-docs = ["Sphinx", "repoze.sphinx.autointerface"]
+docs = ["Sphinx", "repoze.sphinx.autointerface", "sphinx-rtd-theme"]
test = ["coverage (>=5.0.3)", "zope.event", "zope.testing"]
testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"]
@@ -4331,5 +4393,5 @@ files = [
[metadata]
lock-version = "2.0"
-python-versions = "^3.11"
-content-hash = "2fc746976187f4674f04575cffd6a367744723bf78c356b6951c2370bc47ceae"
+python-versions = "~3.12"
+content-hash = "d0fe6ae1be389f8a5ca5112aa90555e2ce0a4f336f07a1da9c43dd521e9d9340"
diff --git a/proxy.Dockerfile b/proxy.Dockerfile
index 990e8ecd8..e8bb5a3f8 100644
--- a/proxy.Dockerfile
+++ b/proxy.Dockerfile
@@ -15,7 +15,14 @@ COPY web .
RUN npm run build-proxy
# Stage 2: Build
-FROM docker.io/golang:1.21.3-bookworm AS builder
+FROM --platform=${BUILDPLATFORM} docker.io/golang:1.21.4-bookworm AS builder
+
+ARG TARGETOS
+ARG TARGETARCH
+ARG TARGETVARIANT
+
+ARG GOOS=$TARGETOS
+ARG GOARCH=$TARGETARCH
WORKDIR /go/src/goauthentik.io
@@ -29,7 +36,7 @@ ENV CGO_ENABLED=0
COPY . .
RUN --mount=type=cache,target=/go/pkg/mod \
--mount=type=cache,target=/root/.cache/go-build \
- go build -o /go/proxy ./cmd/proxy
+ GOARM="${TARGETVARIANT#v}" go build -o /go/proxy ./cmd/proxy
# Stage 3: Run
FROM gcr.io/distroless/static-debian11:debug
diff --git a/pyproject.toml b/pyproject.toml
index 14c2dd09d..519dfee67 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -12,7 +12,7 @@ reportOptionalSubscript = false
# so we have to disable those for now
reportGeneralTypeIssues = false
verboseOutput = false
-pythonVersion = "3.11"
+pythonVersion = "3.12"
pythonPlatform = "All"
[tool.black]
@@ -97,7 +97,7 @@ const-rgx = "[a-zA-Z0-9_]{1,40}$"
ignored-modules = ["binascii", "socket", "zlib"]
generated-members = ["xmlsec.constants.*", "xmlsec.tree.*", "xmlsec.template.*"]
-ignore = "migrations"
+ignore = ["migrations", "tests"]
max-attributes = 12
max-branches = 20
@@ -113,7 +113,7 @@ filterwarnings = [
[tool.poetry]
name = "authentik"
-version = "2023.10.1"
+version = "2023.10.4"
description = ""
authors = ["authentik Team "]
@@ -151,10 +151,10 @@ packaging = "*"
paramiko = "*"
psycopg = { extras = ["c"], version = "*" }
pycryptodome = "*"
-pydantic = "<3.0.0"
-pydantic-scim = "^0.0.8"
+pydantic = "*"
+pydantic-scim = "*"
pyjwt = "*"
-python = "^3.11"
+python = "~3.12"
pyyaml = "*"
requests-oauthlib = "*"
sentry-sdk = "*"
@@ -192,6 +192,7 @@ pytest = "*"
pytest-django = "*"
pytest-github-actions-annotate-failures = "*"
pytest-randomly = "*"
+pytest-timeout = "*"
requests-mock = "*"
ruff = "*"
selenium = "*"
diff --git a/radius.Dockerfile b/radius.Dockerfile
index cc3c9d611..7e6b8fd42 100644
--- a/radius.Dockerfile
+++ b/radius.Dockerfile
@@ -1,5 +1,12 @@
# Stage 1: Build
-FROM docker.io/golang:1.21.3-bookworm AS builder
+FROM --platform=${BUILDPLATFORM} docker.io/golang:1.21.4-bookworm AS builder
+
+ARG TARGETOS
+ARG TARGETARCH
+ARG TARGETVARIANT
+
+ARG GOOS=$TARGETOS
+ARG GOARCH=$TARGETARCH
WORKDIR /go/src/goauthentik.io
@@ -13,7 +20,7 @@ ENV CGO_ENABLED=0
COPY . .
RUN --mount=type=cache,target=/go/pkg/mod \
--mount=type=cache,target=/root/.cache/go-build \
- go build -o /go/radius ./cmd/radius
+ GOARM="${TARGETVARIANT#v}" go build -o /go/radius ./cmd/radius
# Stage 2: Run
FROM gcr.io/distroless/static-debian11:debug
diff --git a/schema.yml b/schema.yml
index 903a01bf2..5f0be7c2d 100644
--- a/schema.yml
+++ b/schema.yml
@@ -1,7 +1,7 @@
openapi: 3.0.3
info:
title: authentik
- version: 2023.10.1
+ version: 2023.10.4
description: Making authentication simple.
contact:
email: hello@goauthentik.io
@@ -107,7 +107,7 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/System'
+ $ref: '#/components/schemas/SystemInfo'
description: ''
'400':
content:
@@ -133,7 +133,7 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/System'
+ $ref: '#/components/schemas/SystemInfo'
description: ''
'400':
content:
@@ -18942,7 +18942,7 @@ paths:
description: ''
/sources/ldap/{slug}/sync_status/:
get:
- operationId: sources_ldap_sync_status_list
+ operationId: sources_ldap_sync_status_retrieve
description: Get source's sync status
parameters:
- in: path
@@ -18960,9 +18960,7 @@ paths:
content:
application/json:
schema:
- type: array
- items:
- $ref: '#/components/schemas/Task'
+ $ref: '#/components/schemas/LDAPSyncStatus'
description: ''
'400':
content:
@@ -22453,10 +22451,10 @@ paths:
- in: query
name: digits
schema:
- type: integer
+ type: string
enum:
- - 6
- - 8
+ - '6'
+ - '8'
description: |-
* `6` - 6 digits, widely compatible
* `8` - 8 digits, not compatible with apps like Google Authenticator
@@ -28796,10 +28794,7 @@ components:
type: string
nullable: true
digits:
- allOf:
- - $ref: '#/components/schemas/DigitsEnum'
- minimum: -2147483648
- maximum: 2147483647
+ $ref: '#/components/schemas/DigitsEnum'
required:
- component
- digits
@@ -28830,10 +28825,7 @@ components:
nullable: true
minLength: 1
digits:
- allOf:
- - $ref: '#/components/schemas/DigitsEnum'
- minimum: -2147483648
- maximum: 2147483647
+ $ref: '#/components/schemas/DigitsEnum'
required:
- digits
- name
@@ -29922,9 +29914,9 @@ components:
* `http://www.w3.org/2001/04/xmlenc#sha512` - SHA512
DigitsEnum:
enum:
- - 6
- - 8
- type: integer
+ - '6'
+ - '8'
+ type: string
description: |-
* `6` - 6 digits, widely compatible
* `8` - 8 digits, not compatible with apps like Google Authenticator
@@ -32021,6 +32013,10 @@ components:
description: Specify which sources should be shown.
show_source_labels:
type: boolean
+ pretend_user_exists:
+ type: boolean
+ description: When enabled, the stage will succeed and continue even when
+ incorrect user info is entered.
required:
- component
- meta_model_name
@@ -32085,6 +32081,10 @@ components:
description: Specify which sources should be shown.
show_source_labels:
type: boolean
+ pretend_user_exists:
+ type: boolean
+ description: When enabled, the stage will succeed and continue even when
+ incorrect user info is entered.
required:
- name
InstallID:
@@ -32812,9 +32812,19 @@ components:
type: string
format: uuid
description: Property mappings used for group creation/updating.
+ connectivity:
+ type: object
+ additionalProperties:
+ type: object
+ additionalProperties:
+ type: string
+ nullable: true
+ description: Get cached source connectivity
+ readOnly: true
required:
- base_dn
- component
+ - connectivity
- icon
- managed
- meta_model_name
@@ -32948,6 +32958,21 @@ components:
- name
- server_uri
- slug
+ LDAPSyncStatus:
+ type: object
+ description: LDAP Source sync status
+ properties:
+ is_running:
+ type: boolean
+ readOnly: true
+ tasks:
+ type: array
+ items:
+ $ref: '#/components/schemas/Task'
+ readOnly: true
+ required:
+ - is_running
+ - tasks
LayoutEnum:
enum:
- stacked
@@ -35886,10 +35911,7 @@ components:
nullable: true
minLength: 1
digits:
- allOf:
- - $ref: '#/components/schemas/DigitsEnum'
- minimum: -2147483648
- maximum: 2147483647
+ $ref: '#/components/schemas/DigitsEnum'
PatchedAuthenticatorValidateStageRequest:
type: object
description: AuthenticatorValidateStage Serializer
@@ -36546,6 +36568,10 @@ components:
description: Specify which sources should be shown.
show_source_labels:
type: boolean
+ pretend_user_exists:
+ type: boolean
+ description: When enabled, the stage will succeed and continue even when
+ incorrect user info is entered.
PatchedInvitationRequest:
type: object
description: Invitation Serializer
@@ -41129,7 +41155,7 @@ components:
* `user_username` - Based on the username
* `user_email` - Based on the User's Email. This is recommended over the UPN method.
* `user_upn` - Based on the User's UPN, only works if user has a 'upn' attribute set. Use this method only if you have different UPN and Mail domains.
- System:
+ SystemInfo:
type: object
description: Get system information.
properties:
diff --git a/tests/e2e/test_provider_oauth2_github.py b/tests/e2e/test_provider_oauth2_github.py
index 49f640093..7df12137b 100644
--- a/tests/e2e/test_provider_oauth2_github.py
+++ b/tests/e2e/test_provider_oauth2_github.py
@@ -36,8 +36,8 @@ class TestProviderOAuth2Github(SeleniumTestCase):
"auto_remove": True,
"healthcheck": Healthcheck(
test=["CMD", "wget", "--spider", "http://localhost:3000"],
- interval=5 * 100 * 1000000,
- start_period=1 * 100 * 1000000,
+ interval=5 * 1_000 * 1_000_000,
+ start_period=1 * 1_000 * 1_000_000,
),
"environment": {
"GF_AUTH_GITHUB_ENABLED": "true",
diff --git a/tests/e2e/test_provider_oauth2_grafana.py b/tests/e2e/test_provider_oauth2_grafana.py
index d096a3483..fdb75e1b9 100644
--- a/tests/e2e/test_provider_oauth2_grafana.py
+++ b/tests/e2e/test_provider_oauth2_grafana.py
@@ -42,8 +42,8 @@ class TestProviderOAuth2OAuth(SeleniumTestCase):
"auto_remove": True,
"healthcheck": Healthcheck(
test=["CMD", "wget", "--spider", "http://localhost:3000"],
- interval=5 * 100 * 1000000,
- start_period=1 * 100 * 1000000,
+ interval=5 * 1_000 * 1_000_000,
+ start_period=1 * 1_000 * 1_000_000,
),
"environment": {
"GF_AUTH_GENERIC_OAUTH_ENABLED": "true",
diff --git a/tests/e2e/test_source_oauth.py b/tests/e2e/test_source_oauth.py
index 40f7e1ce7..c7f0fd881 100644
--- a/tests/e2e/test_source_oauth.py
+++ b/tests/e2e/test_source_oauth.py
@@ -113,8 +113,8 @@ class TestSourceOAuth2(SeleniumTestCase):
"command": "dex serve /config.yml",
"healthcheck": Healthcheck(
test=["CMD", "wget", "--spider", "http://localhost:5556/dex/healthz"],
- interval=5 * 100 * 1000000,
- start_period=1 * 100 * 1000000,
+ interval=5 * 1_000 * 1_000_000,
+ start_period=1 * 1_000 * 1_000_000,
),
"volumes": {str(Path(CONFIG_PATH).absolute()): {"bind": "/config.yml", "mode": "ro"}},
}
diff --git a/tests/e2e/test_source_saml.py b/tests/e2e/test_source_saml.py
index 2d5a7efa9..0921335b7 100644
--- a/tests/e2e/test_source_saml.py
+++ b/tests/e2e/test_source_saml.py
@@ -83,8 +83,8 @@ class TestSourceSAML(SeleniumTestCase):
"auto_remove": True,
"healthcheck": Healthcheck(
test=["CMD", "curl", "http://localhost:8080"],
- interval=5 * 100 * 1000000,
- start_period=1 * 100 * 1000000,
+ interval=5 * 1_000 * 1_000_000,
+ start_period=1 * 1_000 * 1_000_000,
),
"environment": {
"SIMPLESAMLPHP_SP_ENTITY_ID": "entity-id",
diff --git a/tests/integration/test_outpost_docker.py b/tests/integration/test_outpost_docker.py
index 4e12cbbca..99daf1915 100644
--- a/tests/integration/test_outpost_docker.py
+++ b/tests/integration/test_outpost_docker.py
@@ -2,6 +2,7 @@
from shutil import rmtree
from tempfile import mkdtemp
+import pytest
import yaml
from channels.testing import ChannelsLiveServerTestCase
from docker import DockerClient, from_env
@@ -34,8 +35,8 @@ class OutpostDockerTests(DockerTestCase, ChannelsLiveServerTestCase):
privileged=True,
healthcheck=Healthcheck(
test=["CMD", "docker", "info"],
- interval=5 * 100 * 1000000,
- start_period=5 * 100 * 1000000,
+ interval=5 * 1_000 * 1_000_000,
+ start_period=5 * 1_000 * 1_000_000,
),
environment={"DOCKER_TLS_CERTDIR": "/ssl"},
volumes={
@@ -95,12 +96,14 @@ class OutpostDockerTests(DockerTestCase, ChannelsLiveServerTestCase):
except PermissionError:
pass
+ @pytest.mark.timeout(120)
def test_docker_controller(self):
"""test that deployment requires update"""
controller = DockerController(self.outpost, self.service_connection)
controller.up()
controller.down()
+ @pytest.mark.timeout(120)
def test_docker_static(self):
"""test that deployment requires update"""
controller = DockerController(self.outpost, self.service_connection)
diff --git a/tests/integration/test_outpost_kubernetes.py b/tests/integration/test_outpost_kubernetes.py
index ac5e38bca..58a1195dd 100644
--- a/tests/integration/test_outpost_kubernetes.py
+++ b/tests/integration/test_outpost_kubernetes.py
@@ -1,6 +1,7 @@
"""outpost tests"""
from unittest.mock import MagicMock, patch
+import pytest
from django.test import TestCase
from kubernetes.client import AppsV1Api
from kubernetes.client.exceptions import OpenApiException
@@ -50,6 +51,7 @@ class OutpostKubernetesTests(TestCase):
self.outpost.providers.add(self.provider)
self.outpost.save()
+ @pytest.mark.timeout(120)
def test_deployment_reconciler(self):
"""test that deployment requires update"""
controller = ProxyKubernetesController(self.outpost, self.service_connection)
@@ -88,6 +90,7 @@ class OutpostKubernetesTests(TestCase):
deployment_reconciler.delete(deployment_reconciler.get_reference_object())
+ @pytest.mark.timeout(120)
def test_controller_rename(self):
"""test that objects get deleted and re-created with new names"""
controller = ProxyKubernetesController(self.outpost, self.service_connection)
@@ -100,6 +103,7 @@ class OutpostKubernetesTests(TestCase):
apps.read_namespaced_deployment("test", self.outpost.config.kubernetes_namespace)
controller.down()
+ @pytest.mark.timeout(120)
def test_controller_full_update(self):
"""Test an update that triggers all objects"""
controller = ProxyKubernetesController(self.outpost, self.service_connection)
diff --git a/tests/integration/test_proxy_docker.py b/tests/integration/test_proxy_docker.py
index 8cbeb0bdd..7ba027cdd 100644
--- a/tests/integration/test_proxy_docker.py
+++ b/tests/integration/test_proxy_docker.py
@@ -2,6 +2,7 @@
from shutil import rmtree
from tempfile import mkdtemp
+import pytest
import yaml
from channels.testing.live import ChannelsLiveServerTestCase
from docker import DockerClient, from_env
@@ -34,8 +35,8 @@ class TestProxyDocker(DockerTestCase, ChannelsLiveServerTestCase):
privileged=True,
healthcheck=Healthcheck(
test=["CMD", "docker", "info"],
- interval=5 * 100 * 1000000,
- start_period=5 * 100 * 1000000,
+ interval=5 * 1_000 * 1_000_000,
+ start_period=5 * 1_000 * 1_000_000,
),
environment={"DOCKER_TLS_CERTDIR": "/ssl"},
volumes={
@@ -95,12 +96,14 @@ class TestProxyDocker(DockerTestCase, ChannelsLiveServerTestCase):
except PermissionError:
pass
+ @pytest.mark.timeout(120)
def test_docker_controller(self):
"""test that deployment requires update"""
controller = DockerController(self.outpost, self.service_connection)
controller.up()
controller.down()
+ @pytest.mark.timeout(120)
def test_docker_static(self):
"""test that deployment requires update"""
controller = DockerController(self.outpost, self.service_connection)
diff --git a/tests/integration/test_proxy_kubernetes.py b/tests/integration/test_proxy_kubernetes.py
index 3e1fed715..935c0c134 100644
--- a/tests/integration/test_proxy_kubernetes.py
+++ b/tests/integration/test_proxy_kubernetes.py
@@ -1,6 +1,7 @@
"""Test Controllers"""
from typing import Optional
+import pytest
import yaml
from django.test import TestCase
from structlog.stdlib import get_logger
@@ -32,6 +33,7 @@ class TestProxyKubernetes(TestCase):
LOGGER.info(log)
return super().tearDown()
+ @pytest.mark.timeout(120)
def test_kubernetes_controller_static(self):
"""Test Kubernetes Controller"""
provider: ProxyProvider = ProxyProvider.objects.create(
@@ -53,6 +55,7 @@ class TestProxyKubernetes(TestCase):
manifest = self.controller.get_static_deployment()
self.assertEqual(len(list(yaml.load_all(manifest, Loader=yaml.SafeLoader))), 4)
+ @pytest.mark.timeout(120)
def test_kubernetes_controller_ingress(self):
"""Test Kubernetes Controller's Ingress"""
provider: ProxyProvider = ProxyProvider.objects.create(
diff --git a/tests/wdio/package-lock.json b/tests/wdio/package-lock.json
index 002cb42fe..010d35352 100644
--- a/tests/wdio/package-lock.json
+++ b/tests/wdio/package-lock.json
@@ -6,21 +6,24 @@
"": {
"name": "@goauthentik/web-tests",
"devDependencies": {
- "@trivago/prettier-plugin-sort-imports": "^4.2.1",
- "@typescript-eslint/eslint-plugin": "^6.9.0",
- "@typescript-eslint/parser": "^6.9.0",
- "@wdio/cli": "^8.20.5",
- "@wdio/local-runner": "^8.20.5",
- "@wdio/mocha-framework": "^8.20.3",
- "@wdio/spec-reporter": "^8.20.0",
- "eslint": "^8.52.0",
+ "@trivago/prettier-plugin-sort-imports": "^4.3.0",
+ "@typescript-eslint/eslint-plugin": "^6.13.1",
+ "@typescript-eslint/parser": "^6.13.1",
+ "@wdio/cli": "^8.24.3",
+ "@wdio/local-runner": "^8.24.3",
+ "@wdio/mocha-framework": "^8.24.3",
+ "@wdio/spec-reporter": "^8.24.2",
+ "eslint": "^8.54.0",
"eslint-config-google": "^0.14.0",
- "eslint-plugin-sonarjs": "^0.21.0",
+ "eslint-plugin-sonarjs": "^0.23.0",
"npm-run-all": "^4.1.5",
- "prettier": "^3.0.3",
+ "prettier": "^3.1.0",
"ts-node": "^10.9.1",
- "typescript": "^5.2.2",
- "wdio-wait-for": "^3.0.7"
+ "typescript": "^5.3.2",
+ "wdio-wait-for": "^3.0.9"
+ },
+ "engines": {
+ "node": ">=20"
}
},
"node_modules/@aashutoshrathi/word-wrap": {
@@ -329,9 +332,9 @@
}
},
"node_modules/@eslint/eslintrc": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz",
- "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==",
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz",
+ "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==",
"dev": true,
"dependencies": {
"ajv": "^6.12.4",
@@ -352,9 +355,9 @@
}
},
"node_modules/@eslint/eslintrc/node_modules/globals": {
- "version": "13.22.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz",
- "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==",
+ "version": "13.23.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz",
+ "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==",
"dev": true,
"dependencies": {
"type-fest": "^0.20.2"
@@ -379,9 +382,9 @@
}
},
"node_modules/@eslint/js": {
- "version": "8.52.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz",
- "integrity": "sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==",
+ "version": "8.54.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz",
+ "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -649,10 +652,13 @@
}
},
"node_modules/@ljharb/through": {
- "version": "2.3.9",
- "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.9.tgz",
- "integrity": "sha512-yN599ZBuMPPK4tdoToLlvgJB4CLK8fGl7ntfy0Wn7U6ttNvHYurd81bfUiK/6sMkiIwm65R6ck4L6+Y3DfVbNQ==",
+ "version": "2.3.11",
+ "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz",
+ "integrity": "sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==",
"dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
"engines": {
"node": ">= 0.4"
}
@@ -787,9 +793,9 @@
"dev": true
},
"node_modules/@trivago/prettier-plugin-sort-imports": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.2.1.tgz",
- "integrity": "sha512-iuy2MPVURGdxILTchHr15VAioItuYBejKfcTmQFlxIuqA7jeaT6ngr5aUIG6S6U096d6a6lJCgaOwlRrPLlOPg==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.3.0.tgz",
+ "integrity": "sha512-r3n0onD3BTOVUNPhR4lhVK4/pABGpbA7bW3eumZnYdKaHkf1qEC+Mag6DPbGNuuh0eG8AaYj+YqmVHSiGslaTQ==",
"dev": true,
"dependencies": {
"@babel/generator": "7.17.7",
@@ -864,9 +870,9 @@
}
},
"node_modules/@types/json-schema": {
- "version": "7.0.14",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.14.tgz",
- "integrity": "sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==",
+ "version": "7.0.15",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
"dev": true
},
"node_modules/@types/mocha": {
@@ -888,9 +894,9 @@
"dev": true
},
"node_modules/@types/semver": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.4.tgz",
- "integrity": "sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==",
+ "version": "7.5.6",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz",
+ "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==",
"dev": true
},
"node_modules/@types/stack-utils": {
@@ -940,16 +946,16 @@
}
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "6.9.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.9.0.tgz",
- "integrity": "sha512-lgX7F0azQwRPB7t7WAyeHWVfW1YJ9NIgd9mvGhfQpRY56X6AVf8mwM8Wol+0z4liE7XX3QOt8MN1rUKCfSjRIA==",
+ "version": "6.13.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.13.1.tgz",
+ "integrity": "sha512-5bQDGkXaxD46bPvQt08BUz9YSaO4S0fB1LB5JHQuXTfkGPI3+UUeS387C/e9jRie5GqT8u5kFTrMvAjtX4O5kA==",
"dev": true,
"dependencies": {
"@eslint-community/regexpp": "^4.5.1",
- "@typescript-eslint/scope-manager": "6.9.0",
- "@typescript-eslint/type-utils": "6.9.0",
- "@typescript-eslint/utils": "6.9.0",
- "@typescript-eslint/visitor-keys": "6.9.0",
+ "@typescript-eslint/scope-manager": "6.13.1",
+ "@typescript-eslint/type-utils": "6.13.1",
+ "@typescript-eslint/utils": "6.13.1",
+ "@typescript-eslint/visitor-keys": "6.13.1",
"debug": "^4.3.4",
"graphemer": "^1.4.0",
"ignore": "^5.2.4",
@@ -975,15 +981,15 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "6.9.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.9.0.tgz",
- "integrity": "sha512-GZmjMh4AJ/5gaH4XF2eXA8tMnHWP+Pm1mjQR2QN4Iz+j/zO04b9TOvJYOX2sCNIQHtRStKTxRY1FX7LhpJT4Gw==",
+ "version": "6.13.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.13.1.tgz",
+ "integrity": "sha512-fs2XOhWCzRhqMmQf0eicLa/CWSaYss2feXsy7xBD/pLyWke/jCIVc2s1ikEAtSW7ina1HNhv7kONoEfVNEcdDQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "6.9.0",
- "@typescript-eslint/types": "6.9.0",
- "@typescript-eslint/typescript-estree": "6.9.0",
- "@typescript-eslint/visitor-keys": "6.9.0",
+ "@typescript-eslint/scope-manager": "6.13.1",
+ "@typescript-eslint/types": "6.13.1",
+ "@typescript-eslint/typescript-estree": "6.13.1",
+ "@typescript-eslint/visitor-keys": "6.13.1",
"debug": "^4.3.4"
},
"engines": {
@@ -1003,13 +1009,13 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "6.9.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.9.0.tgz",
- "integrity": "sha512-1R8A9Mc39n4pCCz9o79qRO31HGNDvC7UhPhv26TovDsWPBDx+Sg3rOZdCELIA3ZmNoWAuxaMOT7aWtGRSYkQxw==",
+ "version": "6.13.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.13.1.tgz",
+ "integrity": "sha512-BW0kJ7ceiKi56GbT2KKzZzN+nDxzQK2DS6x0PiSMPjciPgd/JRQGMibyaN2cPt2cAvuoH0oNvn2fwonHI+4QUQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "6.9.0",
- "@typescript-eslint/visitor-keys": "6.9.0"
+ "@typescript-eslint/types": "6.13.1",
+ "@typescript-eslint/visitor-keys": "6.13.1"
},
"engines": {
"node": "^16.0.0 || >=18.0.0"
@@ -1020,13 +1026,13 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "6.9.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.9.0.tgz",
- "integrity": "sha512-XXeahmfbpuhVbhSOROIzJ+b13krFmgtc4GlEuu1WBT+RpyGPIA4Y/eGnXzjbDj5gZLzpAXO/sj+IF/x2GtTMjQ==",
+ "version": "6.13.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.13.1.tgz",
+ "integrity": "sha512-A2qPlgpxx2v//3meMqQyB1qqTg1h1dJvzca7TugM3Yc2USDY+fsRBiojAEo92HO7f5hW5mjAUF6qobOPzlBCBQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/typescript-estree": "6.9.0",
- "@typescript-eslint/utils": "6.9.0",
+ "@typescript-eslint/typescript-estree": "6.13.1",
+ "@typescript-eslint/utils": "6.13.1",
"debug": "^4.3.4",
"ts-api-utils": "^1.0.1"
},
@@ -1047,9 +1053,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "6.9.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.9.0.tgz",
- "integrity": "sha512-+KB0lbkpxBkBSiVCuQvduqMJy+I1FyDbdwSpM3IoBS7APl4Bu15lStPjgBIdykdRqQNYqYNMa8Kuidax6phaEw==",
+ "version": "6.13.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.13.1.tgz",
+ "integrity": "sha512-gjeEskSmiEKKFIbnhDXUyiqVma1gRCQNbVZ1C8q7Zjcxh3WZMbzWVfGE9rHfWd1msQtPS0BVD9Jz9jded44eKg==",
"dev": true,
"engines": {
"node": "^16.0.0 || >=18.0.0"
@@ -1060,13 +1066,13 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "6.9.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.9.0.tgz",
- "integrity": "sha512-NJM2BnJFZBEAbCfBP00zONKXvMqihZCrmwCaik0UhLr0vAgb6oguXxLX1k00oQyD+vZZ+CJn3kocvv2yxm4awQ==",
+ "version": "6.13.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.1.tgz",
+ "integrity": "sha512-sBLQsvOC0Q7LGcUHO5qpG1HxRgePbT6wwqOiGLpR8uOJvPJbfs0mW3jPA3ujsDvfiVwVlWUDESNXv44KtINkUQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "6.9.0",
- "@typescript-eslint/visitor-keys": "6.9.0",
+ "@typescript-eslint/types": "6.13.1",
+ "@typescript-eslint/visitor-keys": "6.13.1",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
@@ -1087,17 +1093,17 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "6.9.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.9.0.tgz",
- "integrity": "sha512-5Wf+Jsqya7WcCO8me504FBigeQKVLAMPmUzYgDbWchINNh1KJbxCgVya3EQ2MjvJMVeXl3pofRmprqX6mfQkjQ==",
+ "version": "6.13.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.13.1.tgz",
+ "integrity": "sha512-ouPn/zVoan92JgAegesTXDB/oUp6BP1v8WpfYcqh649ejNc9Qv+B4FF2Ff626kO1xg0wWwwG48lAJ4JuesgdOw==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
"@types/json-schema": "^7.0.12",
"@types/semver": "^7.5.0",
- "@typescript-eslint/scope-manager": "6.9.0",
- "@typescript-eslint/types": "6.9.0",
- "@typescript-eslint/typescript-estree": "6.9.0",
+ "@typescript-eslint/scope-manager": "6.13.1",
+ "@typescript-eslint/types": "6.13.1",
+ "@typescript-eslint/typescript-estree": "6.13.1",
"semver": "^7.5.4"
},
"engines": {
@@ -1112,12 +1118,12 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "6.9.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.9.0.tgz",
- "integrity": "sha512-dGtAfqjV6RFOtIP8I0B4ZTBRrlTT8NHHlZZSchQx3qReaoDeXhYM++M4So2AgFK9ZB0emRPA6JI1HkafzA2Ibg==",
+ "version": "6.13.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.1.tgz",
+ "integrity": "sha512-NDhQUy2tg6XGNBGDRm1XybOHSia8mcXmlbKWoQP+nm1BIIMxa55shyJfZkHpEBN62KNPLrocSM2PdPcaLgDKMQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "6.9.0",
+ "@typescript-eslint/types": "6.13.1",
"eslint-visitor-keys": "^3.4.1"
},
"engines": {
@@ -1135,18 +1141,18 @@
"dev": true
},
"node_modules/@wdio/cli": {
- "version": "8.20.5",
- "resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-8.20.5.tgz",
- "integrity": "sha512-Z5wAf8gJMBZGK15pRVFbX8TOIEk7cOXKb9Gjs9pP3DOgx3+xpGlLmgrbLg/wB+rMXA4eu7bt5ZUItPWAWmq6IQ==",
+ "version": "8.24.3",
+ "resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-8.24.3.tgz",
+ "integrity": "sha512-yJBsYubAws7X9i2vgM/9VOnI+f7YpaeVv4utz8DEXFTWtNm5X0OVqUBZnU173OXLuNan9ychaH7L1Fyth1KYnA==",
"dev": true,
"dependencies": {
"@types/node": "^20.1.1",
- "@wdio/config": "8.20.3",
- "@wdio/globals": "8.20.5",
+ "@wdio/config": "8.24.3",
+ "@wdio/globals": "8.24.3",
"@wdio/logger": "8.16.17",
- "@wdio/protocols": "8.20.4",
- "@wdio/types": "8.20.0",
- "@wdio/utils": "8.20.3",
+ "@wdio/protocols": "8.23.0",
+ "@wdio/types": "8.24.2",
+ "@wdio/utils": "8.24.3",
"async-exit-hook": "^2.0.1",
"chalk": "^5.2.0",
"chokidar": "^3.5.3",
@@ -1156,13 +1162,13 @@
"ejs": "^3.1.9",
"execa": "^8.0.1",
"import-meta-resolve": "^3.0.0",
- "inquirer": "9.2.11",
+ "inquirer": "9.2.12",
"lodash.flattendeep": "^4.4.0",
"lodash.pickby": "^4.6.0",
"lodash.union": "^4.6.0",
- "read-pkg-up": "10.1.0",
+ "read-pkg-up": "^10.0.0",
"recursive-readdir": "^2.2.3",
- "webdriverio": "8.20.4",
+ "webdriverio": "8.24.3",
"yargs": "^17.7.2"
},
"bin": {
@@ -1185,48 +1191,47 @@
}
},
"node_modules/@wdio/config": {
- "version": "8.20.3",
- "resolved": "https://registry.npmjs.org/@wdio/config/-/config-8.20.3.tgz",
- "integrity": "sha512-UaPjDjdXztrWgpoodSjZc1/9oXX1WpjhZSW55ZA2PKzCO7QuS/Fory5lMMpJD4v6/9fNUiRp7A4/rd+w7am1vA==",
+ "version": "8.24.3",
+ "resolved": "https://registry.npmjs.org/@wdio/config/-/config-8.24.3.tgz",
+ "integrity": "sha512-KXJ3qKJTTOa0nwwPtCxxgYBMfqGghij8bEg7DTGkydyuqVvBTSc0py7tXmSI4Uoh7ZdpZxZ6Q9C+Y3CVQhaiWQ==",
"dev": true,
"dependencies": {
"@wdio/logger": "8.16.17",
- "@wdio/types": "8.20.0",
- "@wdio/utils": "8.20.3",
+ "@wdio/types": "8.24.2",
+ "@wdio/utils": "8.24.3",
"decamelize": "^6.0.0",
"deepmerge-ts": "^5.0.0",
"glob": "^10.2.2",
- "import-meta-resolve": "^3.0.0",
- "read-pkg-up": "^10.0.0"
+ "import-meta-resolve": "^3.0.0"
},
"engines": {
"node": "^16.13 || >=18"
}
},
"node_modules/@wdio/globals": {
- "version": "8.20.5",
- "resolved": "https://registry.npmjs.org/@wdio/globals/-/globals-8.20.5.tgz",
- "integrity": "sha512-79BFF/b+qQ1Td3KfoN/xEf9Bzbb3rKovjyl5BD205pIyWJCeZJDsK693vV8g6z6Q+/pvp/GPfepqSmvrKQokEw==",
+ "version": "8.24.3",
+ "resolved": "https://registry.npmjs.org/@wdio/globals/-/globals-8.24.3.tgz",
+ "integrity": "sha512-hxCe5qKl1eBSqNtI5MVSBqO5E0PR+KEal7/mAYYLN4YFUUEwNFXlamUrkbM9lj5VyYf29RAig+Mt4LgTCYaReA==",
"dev": true,
"engines": {
"node": "^16.13 || >=18"
},
"optionalDependencies": {
- "expect-webdriverio": "^4.2.5",
- "webdriverio": "8.20.4"
+ "expect-webdriverio": "^4.6.1",
+ "webdriverio": "8.24.3"
}
},
"node_modules/@wdio/local-runner": {
- "version": "8.20.5",
- "resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-8.20.5.tgz",
- "integrity": "sha512-lm5eyirDiSuxLkwe1fkMXjPd54Ortp5i8wfJPlAImyG9fxU5CY8D9V1bkjpDqOkd4RLmUk1z4mp9gJWghrAd0Q==",
+ "version": "8.24.3",
+ "resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-8.24.3.tgz",
+ "integrity": "sha512-zSlLYta2IOgAySza9U829VTpQ9+5etfMJrjuzTKwILWOhH6uHOTyLnYVQZgp5GIcEhcPevKGJAsnD3CkYopBxg==",
"dev": true,
"dependencies": {
"@types/node": "^20.1.0",
"@wdio/logger": "8.16.17",
- "@wdio/repl": "8.10.1",
- "@wdio/runner": "8.20.5",
- "@wdio/types": "8.20.0",
+ "@wdio/repl": "8.23.1",
+ "@wdio/runner": "8.24.3",
+ "@wdio/types": "8.24.2",
"async-exit-hook": "^2.0.1",
"split2": "^4.1.0",
"stream-buffers": "^3.0.2"
@@ -1263,16 +1268,16 @@
}
},
"node_modules/@wdio/mocha-framework": {
- "version": "8.20.3",
- "resolved": "https://registry.npmjs.org/@wdio/mocha-framework/-/mocha-framework-8.20.3.tgz",
- "integrity": "sha512-AF27tW2ToQ4+fzuBwI71ABjPhmPoESj+UtJYx4ahZjHQUyCCEhkiYIeh8T6UEFFpbIQeQV1Fz12UEK/18EGbzw==",
+ "version": "8.24.3",
+ "resolved": "https://registry.npmjs.org/@wdio/mocha-framework/-/mocha-framework-8.24.3.tgz",
+ "integrity": "sha512-6+ew6hWEETiy1ZANX1XUY9XbGQ/gMQsDfINlzUGVoh8YzptcU9Su+7QtfZBw4ioo5CrDVDlg4X3CKN6VDBp6Bg==",
"dev": true,
"dependencies": {
"@types/mocha": "^10.0.0",
"@types/node": "^20.1.0",
"@wdio/logger": "8.16.17",
- "@wdio/types": "8.20.0",
- "@wdio/utils": "8.20.3",
+ "@wdio/types": "8.24.2",
+ "@wdio/utils": "8.24.3",
"mocha": "^10.0.0"
},
"engines": {
@@ -1280,15 +1285,15 @@
}
},
"node_modules/@wdio/protocols": {
- "version": "8.20.4",
- "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-8.20.4.tgz",
- "integrity": "sha512-9PwA2xgjsoB/9Fm8UWRhJlw61O69ckRICuBn0bzoHmMF7uMzYgDvDTekzYKn8JfjzvLm/MnWXL8raCZfQQ0P5g==",
+ "version": "8.23.0",
+ "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-8.23.0.tgz",
+ "integrity": "sha512-2XTzD+lqQP3g8BWn+Bn5BTFzjHqzZNwq7DjlYrb27Bq8nOA+1DEcj3WzQ6V6CktTnKI/LAYKA1IFAF//Azrp/Q==",
"dev": true
},
"node_modules/@wdio/repl": {
- "version": "8.10.1",
- "resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-8.10.1.tgz",
- "integrity": "sha512-VZ1WFHTNKjR8Ga97TtV2SZM6fvRjWbYI2i/f4pJB4PtusorKvONAMJf2LQcUBIyzbVobqr7KSrcjmSwRolI+yw==",
+ "version": "8.23.1",
+ "resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-8.23.1.tgz",
+ "integrity": "sha512-u6zG2cgBm67V5/WlQzadWqLGXs3moH8MOsgoljULQncelSBBZGZ5DyLB4p7jKcUAsKtMjgmFQmIvpQoqmyvdfg==",
"dev": true,
"dependencies": {
"@types/node": "^20.1.0"
@@ -1298,14 +1303,14 @@
}
},
"node_modules/@wdio/reporter": {
- "version": "8.20.0",
- "resolved": "https://registry.npmjs.org/@wdio/reporter/-/reporter-8.20.0.tgz",
- "integrity": "sha512-9a0cIuwDYwMgBwx/JTRITjlxef63xEt+q+nQBsEwzaPtcTMLzRIGAYO7BKxf9ejYL3tdoPJYJm3GtBKeh+2QIQ==",
+ "version": "8.24.2",
+ "resolved": "https://registry.npmjs.org/@wdio/reporter/-/reporter-8.24.2.tgz",
+ "integrity": "sha512-10hTEk4JIIXW8hnwyxTNgby1ZxoJAbXH9d/eMbkEoAwxx/eqaM+ghPs1GSrzOIjjZ3lwz369POEYfJcLkw3g2w==",
"dev": true,
"dependencies": {
"@types/node": "^20.1.0",
"@wdio/logger": "8.16.17",
- "@wdio/types": "8.20.0",
+ "@wdio/types": "8.24.2",
"diff": "^5.0.0",
"object-inspect": "^1.12.0"
},
@@ -1314,35 +1319,35 @@
}
},
"node_modules/@wdio/runner": {
- "version": "8.20.5",
- "resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-8.20.5.tgz",
- "integrity": "sha512-JmH9995lI4FB95vQ2/l4oAJ3zoo49PIhZutNcwu98o2DDFWPxSGsOPRKI/B5u5OvJ0OkK0AzcN6XdJAfAPZSfA==",
+ "version": "8.24.3",
+ "resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-8.24.3.tgz",
+ "integrity": "sha512-HmK3vBnJnhYKhH4h2sPxTIddvRZ/QVDR8mBRDAgaZwozAuovBbnAvUYeHKpau2KCH4m4sLD6YDVZRcQvzTeYjQ==",
"dev": true,
"dependencies": {
"@types/node": "^20.1.0",
- "@wdio/config": "8.20.3",
- "@wdio/globals": "8.20.5",
+ "@wdio/config": "8.24.3",
+ "@wdio/globals": "8.24.3",
"@wdio/logger": "8.16.17",
- "@wdio/types": "8.20.0",
- "@wdio/utils": "8.20.3",
+ "@wdio/types": "8.24.2",
+ "@wdio/utils": "8.24.3",
"deepmerge-ts": "^5.0.0",
- "expect-webdriverio": "^4.2.5",
+ "expect-webdriverio": "^4.6.1",
"gaze": "^1.1.2",
- "webdriver": "8.20.4",
- "webdriverio": "8.20.4"
+ "webdriver": "8.24.3",
+ "webdriverio": "8.24.3"
},
"engines": {
"node": "^16.13 || >=18"
}
},
"node_modules/@wdio/spec-reporter": {
- "version": "8.20.0",
- "resolved": "https://registry.npmjs.org/@wdio/spec-reporter/-/spec-reporter-8.20.0.tgz",
- "integrity": "sha512-HpVE/99Kg/no94ETpI4JWoJzqpcsAnJQpbg5HdSyZqXuGj9WnRF/PGXK7VDU+DZwGQgOF9A6s6H0hd+FTHDrHg==",
+ "version": "8.24.2",
+ "resolved": "https://registry.npmjs.org/@wdio/spec-reporter/-/spec-reporter-8.24.2.tgz",
+ "integrity": "sha512-FJ1+/kgxlw4ong+5PJJcOzLf8B/TzPL9hGeOF2xoWkk2uMsmNBJN2r27pjtfFxA41lw4q+Oav0Vb/RhdCB601Q==",
"dev": true,
"dependencies": {
- "@wdio/reporter": "8.20.0",
- "@wdio/types": "8.20.0",
+ "@wdio/reporter": "8.24.2",
+ "@wdio/types": "8.24.2",
"chalk": "^5.1.2",
"easy-table": "^1.2.0",
"pretty-ms": "^7.0.0"
@@ -1364,9 +1369,9 @@
}
},
"node_modules/@wdio/types": {
- "version": "8.20.0",
- "resolved": "https://registry.npmjs.org/@wdio/types/-/types-8.20.0.tgz",
- "integrity": "sha512-y0En5V5PPF48IHJMetaNYQobhCr3ddsgp2aX/crLL51UccWqnFpCL8pCh6cP01gRgCchCasa2JCBMB+PucbYmA==",
+ "version": "8.24.2",
+ "resolved": "https://registry.npmjs.org/@wdio/types/-/types-8.24.2.tgz",
+ "integrity": "sha512-x7iWF5NM8NfVxziGwLdQ+3sstgSxRoqfmmFEDTDps0oFrN5CgkqcoLkqXJ5u166gvpxpEq0gxZwxkbPC/Lp0cw==",
"dev": true,
"dependencies": {
"@types/node": "^20.1.0"
@@ -1376,14 +1381,14 @@
}
},
"node_modules/@wdio/utils": {
- "version": "8.20.3",
- "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-8.20.3.tgz",
- "integrity": "sha512-McGS9TFNfjS3cGJkF8hXyajGE5LKFJnPg/fbdXTIBzYohiAzQ1rUMyllPdxxHslnpQPkflBHI6XSYBxU7yB9Lw==",
+ "version": "8.24.3",
+ "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-8.24.3.tgz",
+ "integrity": "sha512-/thr+f2pn7z5wUWiyiFp7/JoJ30oHatyfuxKpcIBcjkv+YZbph0bbEBVv641UlmZxUMVVeXGvWMNdlWH7rMo7g==",
"dev": true,
"dependencies": {
"@puppeteer/browsers": "^1.6.0",
"@wdio/logger": "8.16.17",
- "@wdio/types": "8.20.0",
+ "@wdio/types": "8.24.2",
"decamelize": "^6.0.0",
"deepmerge-ts": "^5.1.0",
"edgedriver": "^5.3.5",
@@ -2572,9 +2577,9 @@
}
},
"node_modules/devtools-protocol": {
- "version": "0.0.1209236",
- "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1209236.tgz",
- "integrity": "sha512-z4eehc+fhmptqhxwreLcg9iydszZGU4Q5FzaaElXVGp3KyfXbjtXeUCmo4l8FxBJbyXtCz4VRIJsGW2ekApyUQ==",
+ "version": "0.0.1213968",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1213968.tgz",
+ "integrity": "sha512-o4n/beY+3CcZwFctYapjGelKptR4AuQT5gXS1Kvgbig+ArwkxK7f8wDVuD1wsoswiJWCwV6OK+Qb7vhNzNmABQ==",
"dev": true
},
"node_modules/diff": {
@@ -2922,15 +2927,15 @@
}
},
"node_modules/eslint": {
- "version": "8.52.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz",
- "integrity": "sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==",
+ "version": "8.54.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz",
+ "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
- "@eslint/eslintrc": "^2.1.2",
- "@eslint/js": "8.52.0",
+ "@eslint/eslintrc": "^2.1.3",
+ "@eslint/js": "8.54.0",
"@humanwhocodes/config-array": "^0.11.13",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
@@ -2989,9 +2994,9 @@
}
},
"node_modules/eslint-plugin-sonarjs": {
- "version": "0.21.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-0.21.0.tgz",
- "integrity": "sha512-oezUDfFT5S6j3rQheZ4DLPrbetPmMS7zHIKWGHr0CM3g5JgyZroz1FpIKa4jV83NsGpmgIeagpokWDKIJzRQmw==",
+ "version": "0.23.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-0.23.0.tgz",
+ "integrity": "sha512-z44T3PBf9W7qQ/aR+NmofOTyg6HLhSEZOPD4zhStqBpLoMp8GYhFksuUBnCxbnf1nfISpKBVkQhiBLFI/F4Wlg==",
"dev": true,
"engines": {
"node": ">=14"
@@ -3273,20 +3278,22 @@
}
},
"node_modules/expect-webdriverio": {
- "version": "4.2.8",
- "resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-4.2.8.tgz",
- "integrity": "sha512-UdhcjLPo02gt+apUJghNMMlJ19F41ITgBEfoVvV3SbTz9CRS43pctXSk04h51LuH4ZWbEgz7Va3gjX0N1JUlyg==",
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-4.6.1.tgz",
+ "integrity": "sha512-w6ee91kN3BoxNGVKQheAqFpRGMehdDg7kDiErEk/oM7tbd/WUT4R4v9KYOUtjiaUFHWWCRW2FtcOOjcd0+1pvQ==",
"dev": true,
"dependencies": {
"expect": "^29.7.0",
- "jest-matcher-utils": "^29.7.0"
+ "jest-matcher-utils": "^29.7.0",
+ "lodash.isequal": "^4.5.0"
},
"engines": {
"node": ">=16 || >=18 || >=20"
},
"optionalDependencies": {
- "@wdio/globals": "^8.16.7",
- "webdriverio": "^8.16.7"
+ "@wdio/globals": "^8.23.1",
+ "@wdio/logger": "^8.16.17",
+ "webdriverio": "^8.23.1"
}
},
"node_modules/external-editor": {
@@ -4299,12 +4306,12 @@
"dev": true
},
"node_modules/inquirer": {
- "version": "9.2.11",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.11.tgz",
- "integrity": "sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g==",
+ "version": "9.2.12",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.12.tgz",
+ "integrity": "sha512-mg3Fh9g2zfuVWJn6lhST0O7x4n03k7G8Tx5nvikJkbq8/CK47WDVm+UznF0G6s5Zi0KcyUisr6DU8T67N5U+1Q==",
"dev": true,
"dependencies": {
- "@ljharb/through": "^2.3.9",
+ "@ljharb/through": "^2.3.11",
"ansi-escapes": "^4.3.2",
"chalk": "^5.3.0",
"cli-cursor": "^3.1.0",
@@ -5396,6 +5403,12 @@
"integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==",
"dev": true
},
+ "node_modules/lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==",
+ "dev": true
+ },
"node_modules/lodash.merge": {
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
@@ -6591,9 +6604,9 @@
}
},
"node_modules/prettier": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz",
- "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz",
+ "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==",
"dev": true,
"bin": {
"prettier": "bin/prettier.cjs"
@@ -6706,9 +6719,9 @@
}
},
"node_modules/punycode": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
- "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
"dev": true,
"engines": {
"node": ">=6"
@@ -8233,6 +8246,19 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/tshy/node_modules/typescript": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
+ "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
+ "dev": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
"node_modules/tslib": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
@@ -8329,9 +8355,9 @@
}
},
"node_modules/typescript": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
- "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.2.tgz",
+ "integrity": "sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
@@ -8572,9 +8598,9 @@
}
},
"node_modules/wdio-wait-for": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/wdio-wait-for/-/wdio-wait-for-3.0.7.tgz",
- "integrity": "sha512-NLxEg57+DAQvsEgsAcuF0zM2XDAQTfbKn2mN4nw9hDzz3RfgsZbCxvp93Nm/3609QuxpikC+MxgQ5ORLSoptvA==",
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/wdio-wait-for/-/wdio-wait-for-3.0.9.tgz",
+ "integrity": "sha512-f7SZ916X9DpN1ZpY82wbwS0UwpRl8fOmT3v5TIfSn/XNLwDS1qZiGndayd5sNKhzYZFlDQDIIcfOcZDr7YBMcA==",
"dev": true,
"engines": {
"node": "^16.13 || >=18"
@@ -8590,18 +8616,18 @@
}
},
"node_modules/webdriver": {
- "version": "8.20.4",
- "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.20.4.tgz",
- "integrity": "sha512-X/6l+zGXn1trqA1LRwYETIJgkJQTVZ/xE1SrTlSxk2BE7Tq40voxfbDKUyauaCyRyABhA0ZgK5/1UOqeCKW15w==",
+ "version": "8.24.3",
+ "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.24.3.tgz",
+ "integrity": "sha512-GbD1X7WzSh2ssb/U52K5RyChKgcPjNDZft5RmHJa1ieT2biTEHAqZycHxNBcpExAlwGlw91hmpoNbwPfdFORRw==",
"dev": true,
"dependencies": {
"@types/node": "^20.1.0",
"@types/ws": "^8.5.3",
- "@wdio/config": "8.20.3",
+ "@wdio/config": "8.24.3",
"@wdio/logger": "8.16.17",
- "@wdio/protocols": "8.20.4",
- "@wdio/types": "8.20.0",
- "@wdio/utils": "8.20.3",
+ "@wdio/protocols": "8.23.0",
+ "@wdio/types": "8.24.2",
+ "@wdio/utils": "8.24.3",
"deepmerge-ts": "^5.1.0",
"got": "^ 12.6.1",
"ky": "^0.33.0",
@@ -8649,23 +8675,23 @@
}
},
"node_modules/webdriverio": {
- "version": "8.20.4",
- "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.20.4.tgz",
- "integrity": "sha512-+iyYK0NTviXv3Lyws07CaX9pLET9l0bh8aPICfCyf7f0NZLUDvUoEKvjviMCfLq4lbDu7CFIEyDZUJeuqlRwlw==",
+ "version": "8.24.3",
+ "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.24.3.tgz",
+ "integrity": "sha512-c0IkkGkJtxxpuO53DfeN9UlHmEKSeKCWCREJBzEkpHrjveVlfhh8cQBacLdUzJwE61xByNDH1cu1RVXKL+ZEJw==",
"dev": true,
"dependencies": {
"@types/node": "^20.1.0",
- "@wdio/config": "8.20.3",
+ "@wdio/config": "8.24.3",
"@wdio/logger": "8.16.17",
- "@wdio/protocols": "8.20.4",
- "@wdio/repl": "8.10.1",
- "@wdio/types": "8.20.0",
- "@wdio/utils": "8.20.3",
+ "@wdio/protocols": "8.23.0",
+ "@wdio/repl": "8.23.1",
+ "@wdio/types": "8.24.2",
+ "@wdio/utils": "8.24.3",
"archiver": "^6.0.0",
"aria-query": "^5.0.0",
"css-shorthand-properties": "^1.1.1",
"css-value": "^0.0.1",
- "devtools-protocol": "^0.0.1209236",
+ "devtools-protocol": "^0.0.1213968",
"grapheme-splitter": "^1.0.2",
"import-meta-resolve": "^3.0.0",
"is-plain-obj": "^4.1.0",
@@ -8677,7 +8703,7 @@
"resq": "^1.9.1",
"rgb2hex": "0.2.5",
"serialize-error": "^11.0.1",
- "webdriver": "8.20.4"
+ "webdriver": "8.24.3"
},
"engines": {
"node": "^16.13 || >=18"
diff --git a/tests/wdio/package.json b/tests/wdio/package.json
index b74ed30d0..7113d6dc6 100644
--- a/tests/wdio/package.json
+++ b/tests/wdio/package.json
@@ -3,21 +3,21 @@
"private": true,
"type": "module",
"devDependencies": {
- "@trivago/prettier-plugin-sort-imports": "^4.2.1",
- "@typescript-eslint/eslint-plugin": "^6.9.0",
- "@typescript-eslint/parser": "^6.9.0",
- "@wdio/cli": "^8.20.5",
- "@wdio/local-runner": "^8.20.5",
- "@wdio/mocha-framework": "^8.20.3",
- "@wdio/spec-reporter": "^8.20.0",
- "eslint": "^8.52.0",
+ "@trivago/prettier-plugin-sort-imports": "^4.3.0",
+ "@typescript-eslint/eslint-plugin": "^6.13.1",
+ "@typescript-eslint/parser": "^6.13.1",
+ "@wdio/cli": "^8.24.3",
+ "@wdio/local-runner": "^8.24.3",
+ "@wdio/mocha-framework": "^8.24.3",
+ "@wdio/spec-reporter": "^8.24.2",
+ "eslint": "^8.54.0",
"eslint-config-google": "^0.14.0",
- "eslint-plugin-sonarjs": "^0.21.0",
+ "eslint-plugin-sonarjs": "^0.23.0",
"npm-run-all": "^4.1.5",
- "prettier": "^3.0.3",
+ "prettier": "^3.1.0",
"ts-node": "^10.9.1",
- "typescript": "^5.2.2",
- "wdio-wait-for": "^3.0.7"
+ "typescript": "^5.3.2",
+ "wdio-wait-for": "^3.0.9"
},
"scripts": {
"wdio": "wdio run ./wdio.conf.ts",
@@ -27,5 +27,8 @@
"precommit": "run-s lint:precommit lint:spelling prettier",
"prettier-check": "prettier --check .",
"prettier": "prettier --write ."
+ },
+ "engines": {
+ "node": ">=20"
}
}
diff --git a/web/package-lock.json b/web/package-lock.json
index 1b8168963..2f6fc20f4 100644
--- a/web/package-lock.json
+++ b/web/package-lock.json
@@ -9,101 +9,104 @@
"version": "0.0.0",
"license": "MIT",
"dependencies": {
- "@codemirror/lang-html": "^6.4.6",
+ "@codemirror/lang-html": "^6.4.7",
"@codemirror/lang-javascript": "^6.2.1",
"@codemirror/lang-python": "^6.1.3",
"@codemirror/lang-xml": "^6.0.2",
"@codemirror/legacy-modes": "^6.3.3",
"@codemirror/theme-one-dark": "^6.1.2",
- "@formatjs/intl-listformat": "^7.5.0",
- "@fortawesome/fontawesome-free": "^6.4.2",
- "@goauthentik/api": "^2023.10.1-1698348102",
- "@lit-labs/context": "^0.4.1",
+ "@formatjs/intl-listformat": "^7.5.3",
+ "@fortawesome/fontawesome-free": "^6.5.0",
+ "@goauthentik/api": "^2023.10.4-1700591367",
+ "@lit-labs/context": "^0.4.0",
"@lit-labs/task": "^3.1.0",
"@lit/localize": "^0.11.4",
"@open-wc/lit-helpers": "^0.6.0",
"@patternfly/elements": "^2.4.0",
"@patternfly/patternfly": "^4.224.2",
- "@sentry/browser": "^7.75.1",
- "@sentry/tracing": "^7.75.1",
+ "@sentry/browser": "^7.83.0",
+ "@sentry/tracing": "^7.83.0",
"@webcomponents/webcomponentsjs": "^2.8.0",
"base64-js": "^1.5.1",
"chart.js": "^4.4.0",
"chartjs-adapter-moment": "^1.0.1",
"codemirror": "^6.0.1",
"construct-style-sheets-polyfill": "^3.1.0",
- "core-js": "^3.33.1",
- "country-flag-icons": "^1.5.7",
+ "core-js": "^3.33.3",
+ "country-flag-icons": "^1.5.9",
"fuse.js": "^7.0.0",
"lit": "^2.8.0",
- "mermaid": "^10.6.0",
+ "mermaid": "^10.6.1",
"rapidoc": "^9.3.4",
"style-mod": "^4.1.0",
"webcomponent-qr-code": "^1.2.0",
- "yaml": "^2.3.3"
+ "yaml": "^2.3.4"
},
"devDependencies": {
- "@babel/core": "^7.23.2",
+ "@babel/core": "^7.23.3",
"@babel/plugin-proposal-class-properties": "^7.18.6",
- "@babel/plugin-proposal-decorators": "^7.23.2",
- "@babel/plugin-transform-private-methods": "^7.22.5",
- "@babel/plugin-transform-private-property-in-object": "^7.22.11",
- "@babel/plugin-transform-runtime": "^7.23.2",
- "@babel/preset-env": "^7.23.2",
- "@babel/preset-typescript": "^7.23.2",
+ "@babel/plugin-proposal-decorators": "^7.23.3",
+ "@babel/plugin-transform-private-methods": "^7.23.3",
+ "@babel/plugin-transform-private-property-in-object": "^7.23.4",
+ "@babel/plugin-transform-runtime": "^7.23.4",
+ "@babel/preset-env": "^7.23.3",
+ "@babel/preset-typescript": "^7.23.3",
"@hcaptcha/types": "^1.0.3",
"@jackfranklin/rollup-plugin-markdown": "^0.4.0",
"@jeysal/storybook-addon-css-user-preferences": "^0.2.0",
- "@lit/localize-tools": "^0.7.0",
+ "@lit/localize-tools": "^0.7.1",
"@rollup/plugin-babel": "^6.0.4",
"@rollup/plugin-commonjs": "^25.0.7",
"@rollup/plugin-node-resolve": "^15.2.3",
- "@rollup/plugin-replace": "^5.0.4",
+ "@rollup/plugin-replace": "^5.0.5",
"@rollup/plugin-terser": "^0.4.4",
"@rollup/plugin-typescript": "^11.1.5",
- "@storybook/addon-essentials": "^7.5.1",
- "@storybook/addon-links": "^7.5.1",
+ "@storybook/addon-essentials": "^7.6.0",
+ "@storybook/addon-links": "^7.6.0",
"@storybook/blocks": "^7.1.1",
- "@storybook/web-components": "^7.5.1",
- "@storybook/web-components-vite": "^7.5.1",
- "@trivago/prettier-plugin-sort-imports": "^4.2.1",
- "@types/chart.js": "^2.9.39",
- "@types/codemirror": "5.60.12",
- "@types/grecaptcha": "^3.0.6",
- "@typescript-eslint/eslint-plugin": "^6.9.0",
- "@typescript-eslint/parser": "^6.9.0",
+ "@storybook/web-components": "^7.6.0",
+ "@storybook/web-components-vite": "^7.6.0",
+ "@trivago/prettier-plugin-sort-imports": "^4.3.0",
+ "@types/chart.js": "^2.9.41",
+ "@types/codemirror": "5.60.15",
+ "@types/grecaptcha": "^3.0.7",
+ "@typescript-eslint/eslint-plugin": "^6.13.0",
+ "@typescript-eslint/parser": "^6.13.0",
"babel-plugin-macros": "^3.1.0",
"babel-plugin-tsconfig-paths": "^1.0.3",
"cross-env": "^7.0.3",
- "eslint": "^8.52.0",
+ "eslint": "^8.54.0",
"eslint-config-google": "^0.14.0",
"eslint-plugin-custom-elements": "0.0.8",
"eslint-plugin-lit": "^1.10.1",
- "eslint-plugin-sonarjs": "^0.21.0",
+ "eslint-plugin-sonarjs": "^0.23.0",
"eslint-plugin-storybook": "^0.6.15",
"lit-analyzer": "^2.0.1",
"npm-run-all": "^4.1.5",
- "prettier": "^3.0.3",
+ "prettier": "^3.1.0",
"pseudolocale": "^2.0.0",
- "pyright": "^1.1.333",
+ "pyright": "^1.1.337",
"react": "^18.2.0",
"react-dom": "^18.2.0",
- "rollup": "^4.1.4",
+ "rollup": "^4.6.0",
"rollup-plugin-copy": "^3.5.0",
"rollup-plugin-cssimport": "^1.0.3",
"rollup-plugin-postcss-lit": "^2.1.0",
- "storybook": "^7.5.1",
+ "storybook": "^7.6.0",
"storybook-addon-mock": "^4.3.0",
- "ts-lit-plugin": "^2.0.0",
+ "ts-lit-plugin": "^2.0.1",
"tslib": "^2.6.2",
"turnstile-types": "^1.1.3",
- "typescript": "^5.2.2",
+ "typescript": "^5.3.2",
"vite-tsconfig-paths": "^4.2.1"
},
+ "engines": {
+ "node": ">=20"
+ },
"optionalDependencies": {
- "@esbuild/darwin-arm64": "^0.19.5",
+ "@esbuild/darwin-arm64": "^0.19.8",
"@esbuild/linux-amd64": "^0.18.11",
- "@esbuild/linux-arm64": "^0.19.5"
+ "@esbuild/linux-arm64": "^0.19.8"
}
},
"node_modules/@aashutoshrathi/word-wrap": {
@@ -162,30 +165,30 @@
}
},
"node_modules/@babel/compat-data": {
- "version": "7.23.2",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz",
- "integrity": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz",
+ "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/core": {
- "version": "7.23.2",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz",
- "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz",
+ "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==",
"dev": true,
"dependencies": {
"@ampproject/remapping": "^2.2.0",
"@babel/code-frame": "^7.22.13",
- "@babel/generator": "^7.23.0",
+ "@babel/generator": "^7.23.3",
"@babel/helper-compilation-targets": "^7.22.15",
- "@babel/helper-module-transforms": "^7.23.0",
+ "@babel/helper-module-transforms": "^7.23.3",
"@babel/helpers": "^7.23.2",
- "@babel/parser": "^7.23.0",
+ "@babel/parser": "^7.23.3",
"@babel/template": "^7.22.15",
- "@babel/traverse": "^7.23.2",
- "@babel/types": "^7.23.0",
+ "@babel/traverse": "^7.23.3",
+ "@babel/types": "^7.23.3",
"convert-source-map": "^2.0.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
@@ -200,6 +203,27 @@
"url": "https://opencollective.com/babel"
}
},
+ "node_modules/@babel/core/node_modules/@babel/traverse": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.3.tgz",
+ "integrity": "sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.22.13",
+ "@babel/generator": "^7.23.3",
+ "@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.23.3",
+ "@babel/types": "^7.23.3",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
"node_modules/@babel/core/node_modules/convert-source-map": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
@@ -207,12 +231,12 @@
"dev": true
},
"node_modules/@babel/generator": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz",
- "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.3.tgz",
+ "integrity": "sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==",
"dev": true,
"dependencies": {
- "@babel/types": "^7.23.0",
+ "@babel/types": "^7.23.3",
"@jridgewell/gen-mapping": "^0.3.2",
"@jridgewell/trace-mapping": "^0.3.17",
"jsesc": "^2.5.1"
@@ -376,9 +400,9 @@
}
},
"node_modules/@babel/helper-module-transforms": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz",
- "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz",
+ "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==",
"dev": true,
"dependencies": {
"@babel/helper-environment-visitor": "^7.22.20",
@@ -555,9 +579,9 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
- "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz",
+ "integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==",
"dev": true,
"bin": {
"parser": "bin/babel-parser.js"
@@ -567,9 +591,9 @@
}
},
"node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz",
- "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz",
+ "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -582,14 +606,14 @@
}
},
"node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz",
- "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz",
+ "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
- "@babel/plugin-transform-optional-chaining": "^7.22.15"
+ "@babel/plugin-transform-optional-chaining": "^7.23.3"
},
"engines": {
"node": ">=6.9.0"
@@ -598,6 +622,22 @@
"@babel/core": "^7.13.0"
}
},
+ "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz",
+ "integrity": "sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
"node_modules/@babel/plugin-proposal-class-properties": {
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
@@ -616,51 +656,16 @@
}
},
"node_modules/@babel/plugin-proposal-decorators": {
- "version": "7.23.2",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.2.tgz",
- "integrity": "sha512-eR0gJQc830fJVGz37oKLvt9W9uUIQSAovUl0e9sJ3YeO09dlcoBVYD3CLrjCj4qHdXmfiyTyFt8yeQYSN5fxLg==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.3.tgz",
+ "integrity": "sha512-u8SwzOcP0DYSsa++nHd/9exlHb0NAlHCb890qtZZbSwPX2bFv8LBEztxwN7Xg/dS8oAFFidhrI9PBcLBJSkGRQ==",
"dev": true,
"dependencies": {
"@babel/helper-create-class-features-plugin": "^7.22.15",
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/helper-replace-supers": "^7.22.20",
"@babel/helper-split-export-declaration": "^7.22.6",
- "@babel/plugin-syntax-decorators": "^7.22.10"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
- "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==",
- "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-proposal-optional-chaining": {
- "version": "7.21.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz",
- "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==",
- "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.20.2",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3"
+ "@babel/plugin-syntax-decorators": "^7.23.3"
},
"engines": {
"node": ">=6.9.0"
@@ -721,9 +726,9 @@
}
},
"node_modules/@babel/plugin-syntax-decorators": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.22.10.tgz",
- "integrity": "sha512-z1KTVemBjnz+kSEilAsI4lbkPOl5TvJH7YDSY1CTIzvLWJ+KHXp+mRe8VPmfnyvqOPqar1V2gid2PleKzRUstQ==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.23.3.tgz",
+ "integrity": "sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -760,9 +765,9 @@
}
},
"node_modules/@babel/plugin-syntax-flow": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz",
- "integrity": "sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.23.3.tgz",
+ "integrity": "sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -775,9 +780,9 @@
}
},
"node_modules/@babel/plugin-syntax-import-assertions": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz",
- "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz",
+ "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -790,9 +795,9 @@
}
},
"node_modules/@babel/plugin-syntax-import-attributes": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz",
- "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz",
+ "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -829,9 +834,9 @@
}
},
"node_modules/@babel/plugin-syntax-jsx": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz",
- "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz",
+ "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -946,9 +951,9 @@
}
},
"node_modules/@babel/plugin-syntax-typescript": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz",
- "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz",
+ "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -977,9 +982,9 @@
}
},
"node_modules/@babel/plugin-transform-arrow-functions": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz",
- "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz",
+ "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -992,9 +997,9 @@
}
},
"node_modules/@babel/plugin-transform-async-generator-functions": {
- "version": "7.23.2",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz",
- "integrity": "sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.3.tgz",
+ "integrity": "sha512-59GsVNavGxAXCDDbakWSMJhajASb4kBCqDjqJsv+p5nKdbz7istmZ3HrX3L2LuiI80+zsOADCvooqQH3qGCucQ==",
"dev": true,
"dependencies": {
"@babel/helper-environment-visitor": "^7.22.20",
@@ -1010,14 +1015,14 @@
}
},
"node_modules/@babel/plugin-transform-async-to-generator": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz",
- "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz",
+ "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==",
"dev": true,
"dependencies": {
- "@babel/helper-module-imports": "^7.22.5",
+ "@babel/helper-module-imports": "^7.22.15",
"@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-remap-async-to-generator": "^7.22.5"
+ "@babel/helper-remap-async-to-generator": "^7.22.20"
},
"engines": {
"node": ">=6.9.0"
@@ -1027,9 +1032,9 @@
}
},
"node_modules/@babel/plugin-transform-block-scoped-functions": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz",
- "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz",
+ "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -1042,9 +1047,9 @@
}
},
"node_modules/@babel/plugin-transform-block-scoping": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz",
- "integrity": "sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.3.tgz",
+ "integrity": "sha512-QPZxHrThbQia7UdvfpaRRlq/J9ciz1J4go0k+lPBXbgaNeY7IQrBj/9ceWjvMMI07/ZBzHl/F0R/2K0qH7jCVw==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -1057,12 +1062,12 @@
}
},
"node_modules/@babel/plugin-transform-class-properties": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz",
- "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz",
+ "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==",
"dev": true,
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.22.5",
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
"@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
@@ -1073,12 +1078,12 @@
}
},
"node_modules/@babel/plugin-transform-class-static-block": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz",
- "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.3.tgz",
+ "integrity": "sha512-PENDVxdr7ZxKPyi5Ffc0LjXdnJyrJxyqF5T5YjlVg4a0VFfQHW0r8iAtRiDXkfHlu1wwcvdtnndGYIeJLSuRMQ==",
"dev": true,
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.22.11",
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-class-static-block": "^7.14.5"
},
@@ -1090,18 +1095,18 @@
}
},
"node_modules/@babel/plugin-transform-classes": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz",
- "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.3.tgz",
+ "integrity": "sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w==",
"dev": true,
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.22.5",
"@babel/helper-compilation-targets": "^7.22.15",
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-function-name": "^7.22.5",
+ "@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.9",
+ "@babel/helper-replace-supers": "^7.22.20",
"@babel/helper-split-export-declaration": "^7.22.6",
"globals": "^11.1.0"
},
@@ -1113,13 +1118,13 @@
}
},
"node_modules/@babel/plugin-transform-computed-properties": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz",
- "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz",
+ "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
- "@babel/template": "^7.22.5"
+ "@babel/template": "^7.22.15"
},
"engines": {
"node": ">=6.9.0"
@@ -1129,9 +1134,9 @@
}
},
"node_modules/@babel/plugin-transform-destructuring": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz",
- "integrity": "sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz",
+ "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -1144,12 +1149,12 @@
}
},
"node_modules/@babel/plugin-transform-dotall-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz",
- "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz",
+ "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==",
"dev": true,
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
"@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
@@ -1160,9 +1165,9 @@
}
},
"node_modules/@babel/plugin-transform-duplicate-keys": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz",
- "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz",
+ "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -1175,9 +1180,9 @@
}
},
"node_modules/@babel/plugin-transform-dynamic-import": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz",
- "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.3.tgz",
+ "integrity": "sha512-vTG+cTGxPFou12Rj7ll+eD5yWeNl5/8xvQvF08y5Gv3v4mZQoyFf8/n9zg4q5vvCWt5jmgymfzMAldO7orBn7A==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
@@ -1191,12 +1196,12 @@
}
},
"node_modules/@babel/plugin-transform-exponentiation-operator": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz",
- "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz",
+ "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==",
"dev": true,
"dependencies": {
- "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5",
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15",
"@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
@@ -1207,9 +1212,9 @@
}
},
"node_modules/@babel/plugin-transform-export-namespace-from": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz",
- "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.3.tgz",
+ "integrity": "sha512-yCLhW34wpJWRdTxxWtFZASJisihrfyMOTOQexhVzA78jlU+dH7Dw+zQgcPepQ5F3C6bAIiblZZ+qBggJdHiBAg==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
@@ -1223,13 +1228,13 @@
}
},
"node_modules/@babel/plugin-transform-flow-strip-types": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.22.5.tgz",
- "integrity": "sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.23.3.tgz",
+ "integrity": "sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-flow": "^7.22.5"
+ "@babel/plugin-syntax-flow": "^7.23.3"
},
"engines": {
"node": ">=6.9.0"
@@ -1239,9 +1244,9 @@
}
},
"node_modules/@babel/plugin-transform-for-of": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz",
- "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz",
+ "integrity": "sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -1254,13 +1259,13 @@
}
},
"node_modules/@babel/plugin-transform-function-name": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz",
- "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz",
+ "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==",
"dev": true,
"dependencies": {
- "@babel/helper-compilation-targets": "^7.22.5",
- "@babel/helper-function-name": "^7.22.5",
+ "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/helper-function-name": "^7.23.0",
"@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
@@ -1271,9 +1276,9 @@
}
},
"node_modules/@babel/plugin-transform-json-strings": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz",
- "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.3.tgz",
+ "integrity": "sha512-H9Ej2OiISIZowZHaBwF0tsJOih1PftXJtE8EWqlEIwpc7LMTGq0rPOrywKLQ4nefzx8/HMR0D3JGXoMHYvhi0A==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
@@ -1287,9 +1292,9 @@
}
},
"node_modules/@babel/plugin-transform-literals": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz",
- "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz",
+ "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -1302,9 +1307,9 @@
}
},
"node_modules/@babel/plugin-transform-logical-assignment-operators": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz",
- "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.3.tgz",
+ "integrity": "sha512-+pD5ZbxofyOygEp+zZAfujY2ShNCXRpDRIPOiBmTO693hhyOEteZgl876Xs9SAHPQpcV0vz8LvA/T+w8AzyX8A==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
@@ -1318,9 +1323,9 @@
}
},
"node_modules/@babel/plugin-transform-member-expression-literals": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz",
- "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz",
+ "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -1333,12 +1338,12 @@
}
},
"node_modules/@babel/plugin-transform-modules-amd": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz",
- "integrity": "sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz",
+ "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==",
"dev": true,
"dependencies": {
- "@babel/helper-module-transforms": "^7.23.0",
+ "@babel/helper-module-transforms": "^7.23.3",
"@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
@@ -1349,12 +1354,12 @@
}
},
"node_modules/@babel/plugin-transform-modules-commonjs": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz",
- "integrity": "sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz",
+ "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==",
"dev": true,
"dependencies": {
- "@babel/helper-module-transforms": "^7.23.0",
+ "@babel/helper-module-transforms": "^7.23.3",
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/helper-simple-access": "^7.22.5"
},
@@ -1366,13 +1371,13 @@
}
},
"node_modules/@babel/plugin-transform-modules-systemjs": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz",
- "integrity": "sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz",
+ "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==",
"dev": true,
"dependencies": {
"@babel/helper-hoist-variables": "^7.22.5",
- "@babel/helper-module-transforms": "^7.23.0",
+ "@babel/helper-module-transforms": "^7.23.3",
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/helper-validator-identifier": "^7.22.20"
},
@@ -1384,12 +1389,12 @@
}
},
"node_modules/@babel/plugin-transform-modules-umd": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz",
- "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz",
+ "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==",
"dev": true,
"dependencies": {
- "@babel/helper-module-transforms": "^7.22.5",
+ "@babel/helper-module-transforms": "^7.23.3",
"@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
@@ -1416,9 +1421,9 @@
}
},
"node_modules/@babel/plugin-transform-new-target": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz",
- "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz",
+ "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -1431,9 +1436,9 @@
}
},
"node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz",
- "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.3.tgz",
+ "integrity": "sha512-xzg24Lnld4DYIdysyf07zJ1P+iIfJpxtVFOzX4g+bsJ3Ng5Le7rXx9KwqKzuyaUeRnt+I1EICwQITqc0E2PmpA==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
@@ -1447,9 +1452,9 @@
}
},
"node_modules/@babel/plugin-transform-numeric-separator": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz",
- "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.3.tgz",
+ "integrity": "sha512-s9GO7fIBi/BLsZ0v3Rftr6Oe4t0ctJ8h4CCXfPoEJwmvAPMyNrfkOOJzm6b9PX9YXcCJWWQd/sBF/N26eBiMVw==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
@@ -1463,16 +1468,16 @@
}
},
"node_modules/@babel/plugin-transform-object-rest-spread": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz",
- "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.3.tgz",
+ "integrity": "sha512-VxHt0ANkDmu8TANdE9Kc0rndo/ccsmfe2Cx2y5sI4hu3AukHQ5wAu4cM7j3ba8B9548ijVyclBU+nuDQftZsog==",
"dev": true,
"dependencies": {
- "@babel/compat-data": "^7.22.9",
+ "@babel/compat-data": "^7.23.3",
"@babel/helper-compilation-targets": "^7.22.15",
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.22.15"
+ "@babel/plugin-transform-parameters": "^7.23.3"
},
"engines": {
"node": ">=6.9.0"
@@ -1482,13 +1487,13 @@
}
},
"node_modules/@babel/plugin-transform-object-super": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz",
- "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz",
+ "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-replace-supers": "^7.22.5"
+ "@babel/helper-replace-supers": "^7.22.20"
},
"engines": {
"node": ">=6.9.0"
@@ -1498,9 +1503,9 @@
}
},
"node_modules/@babel/plugin-transform-optional-catch-binding": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz",
- "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.3.tgz",
+ "integrity": "sha512-LxYSb0iLjUamfm7f1D7GpiS4j0UAC8AOiehnsGAP8BEsIX8EOi3qV6bbctw8M7ZvLtcoZfZX5Z7rN9PlWk0m5A==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
@@ -1514,9 +1519,9 @@
}
},
"node_modules/@babel/plugin-transform-optional-chaining": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz",
- "integrity": "sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.3.tgz",
+ "integrity": "sha512-zvL8vIfIUgMccIAK1lxjvNv572JHFJIKb4MWBz5OGdBQA0fB0Xluix5rmOby48exiJc987neOmP/m9Fnpkz3Tg==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
@@ -1531,9 +1536,9 @@
}
},
"node_modules/@babel/plugin-transform-parameters": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz",
- "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz",
+ "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -1546,12 +1551,12 @@
}
},
"node_modules/@babel/plugin-transform-private-methods": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz",
- "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz",
+ "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==",
"dev": true,
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.22.5",
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
"@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
@@ -1562,13 +1567,13 @@
}
},
"node_modules/@babel/plugin-transform-private-property-in-object": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz",
- "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==",
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz",
+ "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==",
"dev": true,
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-create-class-features-plugin": "^7.22.11",
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-private-property-in-object": "^7.14.5"
},
@@ -1580,9 +1585,9 @@
}
},
"node_modules/@babel/plugin-transform-property-literals": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz",
- "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz",
+ "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -1595,9 +1600,9 @@
}
},
"node_modules/@babel/plugin-transform-regenerator": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz",
- "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz",
+ "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
@@ -1611,9 +1616,9 @@
}
},
"node_modules/@babel/plugin-transform-reserved-words": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz",
- "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz",
+ "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -1626,9 +1631,9 @@
}
},
"node_modules/@babel/plugin-transform-runtime": {
- "version": "7.23.2",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.2.tgz",
- "integrity": "sha512-XOntj6icgzMS58jPVtQpiuF6ZFWxQiJavISGx5KGjRj+3gqZr8+N6Kx+N9BApWzgS+DOjIZfXXj0ZesenOWDyA==",
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.4.tgz",
+ "integrity": "sha512-ITwqpb6V4btwUG0YJR82o2QvmWrLgDnx/p2A3CTPYGaRgULkDiC0DRA2C4jlRB9uXGUEfaSS/IGHfVW+ohzYDw==",
"dev": true,
"dependencies": {
"@babel/helper-module-imports": "^7.22.15",
@@ -1646,9 +1651,9 @@
}
},
"node_modules/@babel/plugin-transform-shorthand-properties": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz",
- "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz",
+ "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -1661,9 +1666,9 @@
}
},
"node_modules/@babel/plugin-transform-spread": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz",
- "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz",
+ "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
@@ -1677,9 +1682,9 @@
}
},
"node_modules/@babel/plugin-transform-sticky-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz",
- "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz",
+ "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -1692,9 +1697,9 @@
}
},
"node_modules/@babel/plugin-transform-template-literals": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz",
- "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz",
+ "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -1707,9 +1712,9 @@
}
},
"node_modules/@babel/plugin-transform-typeof-symbol": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz",
- "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz",
+ "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -1722,15 +1727,15 @@
}
},
"node_modules/@babel/plugin-transform-typescript": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz",
- "integrity": "sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.3.tgz",
+ "integrity": "sha512-ogV0yWnq38CFwH20l2Afz0dfKuZBx9o/Y2Rmh5vuSS0YD1hswgEgTfyTzuSrT2q9btmHRSqYoSfwFUVaC1M1Jw==",
"dev": true,
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.22.5",
"@babel/helper-create-class-features-plugin": "^7.22.15",
"@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-typescript": "^7.22.5"
+ "@babel/plugin-syntax-typescript": "^7.23.3"
},
"engines": {
"node": ">=6.9.0"
@@ -1740,9 +1745,9 @@
}
},
"node_modules/@babel/plugin-transform-unicode-escapes": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz",
- "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz",
+ "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -1755,12 +1760,12 @@
}
},
"node_modules/@babel/plugin-transform-unicode-property-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz",
- "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz",
+ "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==",
"dev": true,
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
"@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
@@ -1771,12 +1776,12 @@
}
},
"node_modules/@babel/plugin-transform-unicode-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz",
- "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz",
+ "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==",
"dev": true,
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
"@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
@@ -1787,12 +1792,12 @@
}
},
"node_modules/@babel/plugin-transform-unicode-sets-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz",
- "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz",
+ "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==",
"dev": true,
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
"@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
@@ -1803,25 +1808,26 @@
}
},
"node_modules/@babel/preset-env": {
- "version": "7.23.2",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.2.tgz",
- "integrity": "sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.3.tgz",
+ "integrity": "sha512-ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q==",
"dev": true,
"dependencies": {
- "@babel/compat-data": "^7.23.2",
+ "@babel/compat-data": "^7.23.3",
"@babel/helper-compilation-targets": "^7.22.15",
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/helper-validator-option": "^7.22.15",
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15",
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3",
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.3",
"@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
"@babel/plugin-syntax-async-generators": "^7.8.4",
"@babel/plugin-syntax-class-properties": "^7.12.13",
"@babel/plugin-syntax-class-static-block": "^7.14.5",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3",
- "@babel/plugin-syntax-import-assertions": "^7.22.5",
- "@babel/plugin-syntax-import-attributes": "^7.22.5",
+ "@babel/plugin-syntax-import-assertions": "^7.23.3",
+ "@babel/plugin-syntax-import-attributes": "^7.23.3",
"@babel/plugin-syntax-import-meta": "^7.10.4",
"@babel/plugin-syntax-json-strings": "^7.8.3",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
@@ -1833,56 +1839,55 @@
"@babel/plugin-syntax-private-property-in-object": "^7.14.5",
"@babel/plugin-syntax-top-level-await": "^7.14.5",
"@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
- "@babel/plugin-transform-arrow-functions": "^7.22.5",
- "@babel/plugin-transform-async-generator-functions": "^7.23.2",
- "@babel/plugin-transform-async-to-generator": "^7.22.5",
- "@babel/plugin-transform-block-scoped-functions": "^7.22.5",
- "@babel/plugin-transform-block-scoping": "^7.23.0",
- "@babel/plugin-transform-class-properties": "^7.22.5",
- "@babel/plugin-transform-class-static-block": "^7.22.11",
- "@babel/plugin-transform-classes": "^7.22.15",
- "@babel/plugin-transform-computed-properties": "^7.22.5",
- "@babel/plugin-transform-destructuring": "^7.23.0",
- "@babel/plugin-transform-dotall-regex": "^7.22.5",
- "@babel/plugin-transform-duplicate-keys": "^7.22.5",
- "@babel/plugin-transform-dynamic-import": "^7.22.11",
- "@babel/plugin-transform-exponentiation-operator": "^7.22.5",
- "@babel/plugin-transform-export-namespace-from": "^7.22.11",
- "@babel/plugin-transform-for-of": "^7.22.15",
- "@babel/plugin-transform-function-name": "^7.22.5",
- "@babel/plugin-transform-json-strings": "^7.22.11",
- "@babel/plugin-transform-literals": "^7.22.5",
- "@babel/plugin-transform-logical-assignment-operators": "^7.22.11",
- "@babel/plugin-transform-member-expression-literals": "^7.22.5",
- "@babel/plugin-transform-modules-amd": "^7.23.0",
- "@babel/plugin-transform-modules-commonjs": "^7.23.0",
- "@babel/plugin-transform-modules-systemjs": "^7.23.0",
- "@babel/plugin-transform-modules-umd": "^7.22.5",
+ "@babel/plugin-transform-arrow-functions": "^7.23.3",
+ "@babel/plugin-transform-async-generator-functions": "^7.23.3",
+ "@babel/plugin-transform-async-to-generator": "^7.23.3",
+ "@babel/plugin-transform-block-scoped-functions": "^7.23.3",
+ "@babel/plugin-transform-block-scoping": "^7.23.3",
+ "@babel/plugin-transform-class-properties": "^7.23.3",
+ "@babel/plugin-transform-class-static-block": "^7.23.3",
+ "@babel/plugin-transform-classes": "^7.23.3",
+ "@babel/plugin-transform-computed-properties": "^7.23.3",
+ "@babel/plugin-transform-destructuring": "^7.23.3",
+ "@babel/plugin-transform-dotall-regex": "^7.23.3",
+ "@babel/plugin-transform-duplicate-keys": "^7.23.3",
+ "@babel/plugin-transform-dynamic-import": "^7.23.3",
+ "@babel/plugin-transform-exponentiation-operator": "^7.23.3",
+ "@babel/plugin-transform-export-namespace-from": "^7.23.3",
+ "@babel/plugin-transform-for-of": "^7.23.3",
+ "@babel/plugin-transform-function-name": "^7.23.3",
+ "@babel/plugin-transform-json-strings": "^7.23.3",
+ "@babel/plugin-transform-literals": "^7.23.3",
+ "@babel/plugin-transform-logical-assignment-operators": "^7.23.3",
+ "@babel/plugin-transform-member-expression-literals": "^7.23.3",
+ "@babel/plugin-transform-modules-amd": "^7.23.3",
+ "@babel/plugin-transform-modules-commonjs": "^7.23.3",
+ "@babel/plugin-transform-modules-systemjs": "^7.23.3",
+ "@babel/plugin-transform-modules-umd": "^7.23.3",
"@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5",
- "@babel/plugin-transform-new-target": "^7.22.5",
- "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11",
- "@babel/plugin-transform-numeric-separator": "^7.22.11",
- "@babel/plugin-transform-object-rest-spread": "^7.22.15",
- "@babel/plugin-transform-object-super": "^7.22.5",
- "@babel/plugin-transform-optional-catch-binding": "^7.22.11",
- "@babel/plugin-transform-optional-chaining": "^7.23.0",
- "@babel/plugin-transform-parameters": "^7.22.15",
- "@babel/plugin-transform-private-methods": "^7.22.5",
- "@babel/plugin-transform-private-property-in-object": "^7.22.11",
- "@babel/plugin-transform-property-literals": "^7.22.5",
- "@babel/plugin-transform-regenerator": "^7.22.10",
- "@babel/plugin-transform-reserved-words": "^7.22.5",
- "@babel/plugin-transform-shorthand-properties": "^7.22.5",
- "@babel/plugin-transform-spread": "^7.22.5",
- "@babel/plugin-transform-sticky-regex": "^7.22.5",
- "@babel/plugin-transform-template-literals": "^7.22.5",
- "@babel/plugin-transform-typeof-symbol": "^7.22.5",
- "@babel/plugin-transform-unicode-escapes": "^7.22.10",
- "@babel/plugin-transform-unicode-property-regex": "^7.22.5",
- "@babel/plugin-transform-unicode-regex": "^7.22.5",
- "@babel/plugin-transform-unicode-sets-regex": "^7.22.5",
+ "@babel/plugin-transform-new-target": "^7.23.3",
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.3",
+ "@babel/plugin-transform-numeric-separator": "^7.23.3",
+ "@babel/plugin-transform-object-rest-spread": "^7.23.3",
+ "@babel/plugin-transform-object-super": "^7.23.3",
+ "@babel/plugin-transform-optional-catch-binding": "^7.23.3",
+ "@babel/plugin-transform-optional-chaining": "^7.23.3",
+ "@babel/plugin-transform-parameters": "^7.23.3",
+ "@babel/plugin-transform-private-methods": "^7.23.3",
+ "@babel/plugin-transform-private-property-in-object": "^7.23.3",
+ "@babel/plugin-transform-property-literals": "^7.23.3",
+ "@babel/plugin-transform-regenerator": "^7.23.3",
+ "@babel/plugin-transform-reserved-words": "^7.23.3",
+ "@babel/plugin-transform-shorthand-properties": "^7.23.3",
+ "@babel/plugin-transform-spread": "^7.23.3",
+ "@babel/plugin-transform-sticky-regex": "^7.23.3",
+ "@babel/plugin-transform-template-literals": "^7.23.3",
+ "@babel/plugin-transform-typeof-symbol": "^7.23.3",
+ "@babel/plugin-transform-unicode-escapes": "^7.23.3",
+ "@babel/plugin-transform-unicode-property-regex": "^7.23.3",
+ "@babel/plugin-transform-unicode-regex": "^7.23.3",
+ "@babel/plugin-transform-unicode-sets-regex": "^7.23.3",
"@babel/preset-modules": "0.1.6-no-external-plugins",
- "@babel/types": "^7.23.0",
"babel-plugin-polyfill-corejs2": "^0.4.6",
"babel-plugin-polyfill-corejs3": "^0.8.5",
"babel-plugin-polyfill-regenerator": "^0.5.3",
@@ -1897,14 +1902,14 @@
}
},
"node_modules/@babel/preset-flow": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.22.15.tgz",
- "integrity": "sha512-dB5aIMqpkgbTfN5vDdTRPzjqtWiZcRESNR88QYnoPR+bmdYoluOzMX9tQerTv0XzSgZYctPfO1oc0N5zdog1ew==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.23.3.tgz",
+ "integrity": "sha512-7yn6hl8RIv+KNk6iIrGZ+D06VhVY35wLVf23Cz/mMu1zOr7u4MMP4j0nZ9tLf8+4ZFpnib8cFYgB/oYg9hfswA==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/helper-validator-option": "^7.22.15",
- "@babel/plugin-transform-flow-strip-types": "^7.22.5"
+ "@babel/plugin-transform-flow-strip-types": "^7.23.3"
},
"engines": {
"node": ">=6.9.0"
@@ -1928,16 +1933,16 @@
}
},
"node_modules/@babel/preset-typescript": {
- "version": "7.23.2",
- "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.2.tgz",
- "integrity": "sha512-u4UJc1XsS1GhIGteM8rnGiIvf9rJpiVgMEeCnwlLA7WJPC+jcXWJAGxYmeqs5hOZD8BbAfnV5ezBOxQbb4OUxA==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz",
+ "integrity": "sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/helper-validator-option": "^7.22.15",
- "@babel/plugin-syntax-jsx": "^7.22.5",
- "@babel/plugin-transform-modules-commonjs": "^7.23.0",
- "@babel/plugin-transform-typescript": "^7.22.15"
+ "@babel/plugin-syntax-jsx": "^7.23.3",
+ "@babel/plugin-transform-modules-commonjs": "^7.23.3",
+ "@babel/plugin-transform-typescript": "^7.23.3"
},
"engines": {
"node": ">=6.9.0"
@@ -2149,9 +2154,9 @@
}
},
"node_modules/@babel/types": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz",
- "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.3.tgz",
+ "integrity": "sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==",
"dev": true,
"dependencies": {
"@babel/helper-string-parser": "^7.22.5",
@@ -2208,9 +2213,9 @@
}
},
"node_modules/@codemirror/lang-html": {
- "version": "6.4.6",
- "resolved": "https://registry.npmjs.org/@codemirror/lang-html/-/lang-html-6.4.6.tgz",
- "integrity": "sha512-E4C8CVupBksXvgLSme/zv31x91g06eZHSph7NczVxZW+/K+3XgJGWNT//2WLzaKSBoxpAjaOi5ZnPU1SHhjh3A==",
+ "version": "6.4.7",
+ "resolved": "https://registry.npmjs.org/@codemirror/lang-html/-/lang-html-6.4.7.tgz",
+ "integrity": "sha512-y9hWSSO41XlcL4uYwWyk0lEgTHcelWWfRuqmvcAmxfCs0HNWZdriWo/EU43S63SxEZpc1Hd50Itw7ktfQvfkUg==",
"dependencies": {
"@codemirror/autocomplete": "^6.0.0",
"@codemirror/lang-css": "^6.0.0",
@@ -2403,9 +2408,9 @@
}
},
"node_modules/@esbuild/darwin-arm64": {
- "version": "0.19.5",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz",
- "integrity": "sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==",
+ "version": "0.19.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.8.tgz",
+ "integrity": "sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw==",
"cpu": [
"arm64"
],
@@ -2482,9 +2487,9 @@
}
},
"node_modules/@esbuild/linux-arm64": {
- "version": "0.19.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz",
- "integrity": "sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==",
+ "version": "0.19.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.8.tgz",
+ "integrity": "sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ==",
"cpu": [
"arm64"
],
@@ -2729,9 +2734,9 @@
}
},
"node_modules/@eslint/eslintrc": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz",
- "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==",
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz",
+ "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==",
"dev": true,
"dependencies": {
"ajv": "^6.12.4",
@@ -2758,9 +2763,9 @@
"dev": true
},
"node_modules/@eslint/eslintrc/node_modules/globals": {
- "version": "13.21.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz",
- "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==",
+ "version": "13.23.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz",
+ "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==",
"dev": true,
"dependencies": {
"type-fest": "^0.20.2"
@@ -2797,9 +2802,9 @@
}
},
"node_modules/@eslint/js": {
- "version": "8.52.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz",
- "integrity": "sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==",
+ "version": "8.54.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz",
+ "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -2847,45 +2852,45 @@
"integrity": "sha512-ou3elfqG/hZsbmF4bxeJhPHIf3G2pm0ujc39hYEZrfVqt7Vk/Zji6CXc3W0pmYM8BW1g40U+akTl9DKZhFhInQ=="
},
"node_modules/@formatjs/ecma402-abstract": {
- "version": "1.17.2",
- "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.17.2.tgz",
- "integrity": "sha512-k2mTh0m+IV1HRdU0xXM617tSQTi53tVR2muvYOsBeYcUgEAyxV1FOC7Qj279th3fBVQ+Dj6muvNJZcHSPNdbKg==",
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.18.0.tgz",
+ "integrity": "sha512-PEVLoa3zBevWSCZzPIM/lvPCi8P5l4G+NXQMc/CjEiaCWgyHieUoo0nM7Bs0n/NbuQ6JpXEolivQ9pKSBHaDlA==",
"dependencies": {
- "@formatjs/intl-localematcher": "0.4.2",
+ "@formatjs/intl-localematcher": "0.5.2",
"tslib": "^2.4.0"
}
},
"node_modules/@formatjs/intl-listformat": {
- "version": "7.5.0",
- "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-7.5.0.tgz",
- "integrity": "sha512-n9FsXGl1T2ZbX6wSyrzCDJHrbJR0YJ9ZNsAqUvHXfbY3nsOmGnSTf5+bkuIp1Xiywu7m1X1Pfm/Ngp/yK1H84A==",
+ "version": "7.5.3",
+ "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-7.5.3.tgz",
+ "integrity": "sha512-l7EOr0Yh1m8KagytukB90yw81uyzrM7amKFrgxXqphz4KeSIL0KPa68lPsdtZ+JmQB73GaDQRwLOwUKFZ1VZPQ==",
"dependencies": {
- "@formatjs/ecma402-abstract": "1.17.2",
- "@formatjs/intl-localematcher": "0.4.2",
+ "@formatjs/ecma402-abstract": "1.18.0",
+ "@formatjs/intl-localematcher": "0.5.2",
"tslib": "^2.4.0"
}
},
"node_modules/@formatjs/intl-localematcher": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.4.2.tgz",
- "integrity": "sha512-BGdtJFmaNJy5An/Zan4OId/yR9Ih1OojFjcduX/xOvq798OgWSyDtd6Qd5jqJXwJs1ipe4Fxu9+cshic5Ox2tA==",
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.2.tgz",
+ "integrity": "sha512-txaaE2fiBMagLrR4jYhxzFO6wEdEG4TPMqrzBAcbr4HFUYzH/YC+lg6OIzKCHm8WgDdyQevxbAAV1OgcXctuGw==",
"dependencies": {
"tslib": "^2.4.0"
}
},
"node_modules/@fortawesome/fontawesome-free": {
- "version": "6.4.2",
- "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.4.2.tgz",
- "integrity": "sha512-m5cPn3e2+FDCOgi1mz0RexTUvvQibBebOUlUlW0+YrMjDTPkiJ6VTKukA1GRsvRw+12KyJndNjj0O4AgTxm2Pg==",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.5.0.tgz",
+ "integrity": "sha512-npV8sIYN4tQmLkzkWU6Q2Ot8L3XqBzLpS+rGTl96nFM7qbMWIoFqcdp0YrcWlfRDQx5G+gA2sn8uSFNRAYTrrA==",
"hasInstallScript": true,
"engines": {
"node": ">=6"
}
},
"node_modules/@goauthentik/api": {
- "version": "2023.10.1-1698348102",
- "resolved": "https://registry.npmjs.org/@goauthentik/api/-/api-2023.10.1-1698348102.tgz",
- "integrity": "sha512-Melx4hoHOLbgAOHREGzx83uN5BKvgql4qIUloxh/abvNeGLlfKL49caiU8++ANUaERr1vb8X2tHFwiwxtqXKeQ=="
+ "version": "2023.10.4-1700591367",
+ "resolved": "https://registry.npmjs.org/@goauthentik/api/-/api-2023.10.4-1700591367.tgz",
+ "integrity": "sha512-ljC/SHH6ZgGC2qjvuA3gley8sRz9wVzr5FgRGKeqd1mi6G6TfnFYeA7tuuqgQc6WGN2MVMG17FnBraTI77Rl/A=="
},
"node_modules/@hcaptcha/types": {
"version": "1.0.3",
@@ -3467,9 +3472,9 @@
}
},
"node_modules/@lit/localize-tools": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/@lit/localize-tools/-/localize-tools-0.7.0.tgz",
- "integrity": "sha512-sM59gJjU6gf55pyk1PuhotCy0O4qnXbBDFLGViklCDIEnZHVSQqSYgti4eUglsyoVD4baQ1sjn+kGT7fNENAZA==",
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/@lit/localize-tools/-/localize-tools-0.7.1.tgz",
+ "integrity": "sha512-qqJw501aEPF1j9QQmiVC25yU1By1DKEUIFgjszIierwr5jJzfVtGTj67D8UU0hF3vA2yAaWxcl4eooM1Yr0zKQ==",
"dev": true,
"dependencies": {
"@lit/localize": "^0.12.0",
@@ -3478,7 +3483,7 @@
"fast-glob": "^3.2.7",
"fs-extra": "^10.0.0",
"jsonschema": "^1.4.0",
- "lit": "^3.0.0",
+ "lit": "^2.0.0 || ^3.0.0",
"minimist": "^1.2.5",
"parse5": "^7.1.1",
"source-map-support": "^0.5.19",
@@ -3550,6 +3555,19 @@
"url": "https://github.com/inikulin/parse5?sponsor=1"
}
},
+ "node_modules/@lit/localize-tools/node_modules/typescript": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
+ "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
+ "dev": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
"node_modules/@lit/reactive-element": {
"version": "1.6.3",
"resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz",
@@ -4448,9 +4466,9 @@
}
},
"node_modules/@rollup/plugin-replace": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.4.tgz",
- "integrity": "sha512-E2hmRnlh09K8HGT0rOnnri9OTh+BILGr7NVJGB30S4E3cLRn3J0xjdiyOZ74adPs4NiAMgrjUMGAZNJDBgsdmQ==",
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.5.tgz",
+ "integrity": "sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==",
"dev": true,
"dependencies": {
"@rollup/pluginutils": "^5.0.1",
@@ -4539,9 +4557,9 @@
}
},
"node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.1.4.tgz",
- "integrity": "sha512-WlzkuFvpKl6CLFdc3V6ESPt7gq5Vrimd2Yv9IzKXdOpgbH4cdDSS1JLiACX8toygihtH5OlxyQzhXOph7Ovlpw==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.6.0.tgz",
+ "integrity": "sha512-keHkkWAe7OtdALGoutLY3utvthkGF+Y17ws9LYT8pxMBYXaCoH/8dXS2uzo6e8+sEhY7y/zi5RFo22Dy2lFpDw==",
"cpu": [
"arm"
],
@@ -4552,9 +4570,9 @@
]
},
"node_modules/@rollup/rollup-android-arm64": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.1.4.tgz",
- "integrity": "sha512-D1e+ABe56T9Pq2fD+R3ybe1ylCDzu3tY4Qm2Mj24R9wXNCq35+JbFbOpc2yrroO2/tGhTobmEl2Bm5xfE/n8RA==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.6.0.tgz",
+ "integrity": "sha512-y3Kt+34smKQNWilicPbBz/MXEY7QwDzMFNgwEWeYiOhUt9MTWKjHqe3EVkXwT2fR7izOvHpDWZ0o2IyD9SWX7A==",
"cpu": [
"arm64"
],
@@ -4565,9 +4583,9 @@
]
},
"node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.1.4.tgz",
- "integrity": "sha512-7vTYrgEiOrjxnjsgdPB+4i7EMxbVp7XXtS+50GJYj695xYTTEMn3HZVEvgtwjOUkAP/Q4HDejm4fIAjLeAfhtg==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.6.0.tgz",
+ "integrity": "sha512-oLzzxcUIHltHxOCmaXl+pkIlU+uhSxef5HfntW7RsLh1eHm+vJzjD9Oo4oUKso4YuP4PpbFJNlZjJuOrxo8dPg==",
"cpu": [
"arm64"
],
@@ -4578,9 +4596,9 @@
]
},
"node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.1.4.tgz",
- "integrity": "sha512-eGJVZScKSLZkYjhTAESCtbyTBq9SXeW9+TX36ki5gVhDqJtnQ5k0f9F44jNK5RhAMgIj0Ht9+n6HAgH0gUUyWQ==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.6.0.tgz",
+ "integrity": "sha512-+ANnmjkcOBaV25n0+M0Bere3roeVAnwlKW65qagtuAfIxXF9YxUneRyAn/RDcIdRa7QrjRNJL3jR7T43ObGe8Q==",
"cpu": [
"x64"
],
@@ -4591,9 +4609,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.1.4.tgz",
- "integrity": "sha512-HnigYSEg2hOdX1meROecbk++z1nVJDpEofw9V2oWKqOWzTJlJf1UXVbDE6Hg30CapJxZu5ga4fdAQc/gODDkKg==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.6.0.tgz",
+ "integrity": "sha512-tBTSIkjSVUyrekddpkAqKOosnj1Fc0ZY0rJL2bIEWPKqlEQk0paORL9pUIlt7lcGJi3LzMIlUGXvtNi1Z6MOCQ==",
"cpu": [
"arm"
],
@@ -4604,9 +4622,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.1.4.tgz",
- "integrity": "sha512-TzJ+N2EoTLWkaClV2CUhBlj6ljXofaYzF/R9HXqQ3JCMnCHQZmQnbnZllw7yTDp0OG5whP4gIPozR4QiX+00MQ==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.6.0.tgz",
+ "integrity": "sha512-Ed8uJI3kM11de9S0j67wAV07JUNhbAqIrDYhQBrQW42jGopgheyk/cdcshgGO4fW5Wjq97COCY/BHogdGvKVNQ==",
"cpu": [
"arm64"
],
@@ -4617,9 +4635,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.1.4.tgz",
- "integrity": "sha512-aVPmNMdp6Dlo2tWkAduAD/5TL/NT5uor290YvjvFvCv0Q3L7tVdlD8MOGDL+oRSw5XKXKAsDzHhUOPUNPRHVTQ==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.6.0.tgz",
+ "integrity": "sha512-mZoNQ/qK4D7SSY8v6kEsAAyDgznzLLuSFCA3aBHZTmf3HP/dW4tNLTtWh9+LfyO0Z1aUn+ecpT7IQ3WtIg3ViQ==",
"cpu": [
"arm64"
],
@@ -4630,9 +4648,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.1.4.tgz",
- "integrity": "sha512-77Fb79ayiDad0grvVsz4/OB55wJRyw9Ao+GdOBA9XywtHpuq5iRbVyHToGxWquYWlEf6WHFQQnFEttsAzboyKg==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.6.0.tgz",
+ "integrity": "sha512-rouezFHpwCqdEXsqAfNsTgSWO0FoZ5hKv5p+TGO5KFhyN/dvYXNMqMolOb8BkyKcPqjYRBeT+Z6V3aM26rPaYg==",
"cpu": [
"x64"
],
@@ -4643,9 +4661,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.1.4.tgz",
- "integrity": "sha512-/t6C6niEQTqmQTVTD9TDwUzxG91Mlk69/v0qodIPUnjjB3wR4UA3klg+orR2SU3Ux2Cgf2pWPL9utK80/1ek8g==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.6.0.tgz",
+ "integrity": "sha512-Bbm+fyn3S6u51urfj3YnqBXg5vI2jQPncRRELaucmhBVyZkbWClQ1fEsRmdnCPpQOQfkpg9gZArvtMVkOMsh1w==",
"cpu": [
"x64"
],
@@ -4656,9 +4674,9 @@
]
},
"node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.1.4.tgz",
- "integrity": "sha512-ZY5BHHrOPkMbCuGWFNpJH0t18D2LU6GMYKGaqaWTQ3CQOL57Fem4zE941/Ek5pIsVt70HyDXssVEFQXlITI5Gg==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.6.0.tgz",
+ "integrity": "sha512-+MRMcyx9L2kTrTUzYmR61+XVsliMG4odFb5UmqtiT8xOfEicfYAGEuF/D1Pww1+uZkYhBqAHpvju7VN+GnC3ng==",
"cpu": [
"arm64"
],
@@ -4669,9 +4687,9 @@
]
},
"node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.1.4.tgz",
- "integrity": "sha512-XG2mcRfFrJvYyYaQmvCIvgfkaGinfXrpkBuIbJrTl9SaIQ8HumheWTIwkNz2mktCKwZfXHQNpO7RgXLIGQ7HXA==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.6.0.tgz",
+ "integrity": "sha512-rxfeE6K6s/Xl2HGeK6cO8SiQq3k/3BYpw7cfhW5Bk2euXNEpuzi2cc7llxx1si1QgwfjNtdRNTGqdBzGlFZGFw==",
"cpu": [
"ia32"
],
@@ -4682,9 +4700,9 @@
]
},
"node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.1.4.tgz",
- "integrity": "sha512-ANFqWYPwkhIqPmXw8vm0GpBEHiPpqcm99jiiAp71DbCSqLDhrtr019C5vhD0Bw4My+LmMvciZq6IsWHqQpl2ZQ==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.6.0.tgz",
+ "integrity": "sha512-QqmCsydHS172Y0Kc13bkMXvipbJSvzeglBncJG3LsYJSiPlxYACz7MmJBs4A8l1oU+jfhYEIC/+AUSlvjmiX/g==",
"cpu": [
"x64"
],
@@ -4695,84 +4713,84 @@
]
},
"node_modules/@sentry-internal/tracing": {
- "version": "7.75.1",
- "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.75.1.tgz",
- "integrity": "sha512-nynV+7iVcF8k3CqhvI2K7iA8h4ovJhgYHKnXR8RDDevQOqNG2AEX9+hjCj9fZM4MhKHYFqf1od2oO9lTr38kwg==",
+ "version": "7.83.0",
+ "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.83.0.tgz",
+ "integrity": "sha512-fY1ZyOiQaaUTuoq5rO+G4/5Ov3n8BnfNK7ck97yAGxy3w+E1CwhVZkXHEvTngNfdYV3ArxvlrtPRb9STFRqXvQ==",
"dependencies": {
- "@sentry/core": "7.75.1",
- "@sentry/types": "7.75.1",
- "@sentry/utils": "7.75.1"
+ "@sentry/core": "7.83.0",
+ "@sentry/types": "7.83.0",
+ "@sentry/utils": "7.83.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/@sentry/browser": {
- "version": "7.75.1",
- "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.75.1.tgz",
- "integrity": "sha512-0+jPfPA5P9HVYYRQraDokGCY2NiMknSfz11dggClK4VmjvG+hOXiEyf73SFVwLFnv/hwrkWySjoIrVCX65xXQA==",
+ "version": "7.83.0",
+ "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.83.0.tgz",
+ "integrity": "sha512-8v7QEaC/fVAHn8pi59ZlJznr7ZdOQIgtz8DAOJeJsC2vHTAxQ9nVkoMkJWjTp/qaDHUjSe5ob6eqaChuhi6t2g==",
"dependencies": {
- "@sentry-internal/tracing": "7.75.1",
- "@sentry/core": "7.75.1",
- "@sentry/replay": "7.75.1",
- "@sentry/types": "7.75.1",
- "@sentry/utils": "7.75.1"
+ "@sentry-internal/tracing": "7.83.0",
+ "@sentry/core": "7.83.0",
+ "@sentry/replay": "7.83.0",
+ "@sentry/types": "7.83.0",
+ "@sentry/utils": "7.83.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/@sentry/core": {
- "version": "7.75.1",
- "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.75.1.tgz",
- "integrity": "sha512-Kw4KyKBxbxbh8OKO0S11Tm0gWP+6AaXXYrsq3hp8H338l/wOmIzyckmCbUrc/XJeoRqaFLJbdcCrcUEDZUvsVQ==",
+ "version": "7.83.0",
+ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.83.0.tgz",
+ "integrity": "sha512-fglvpw8aWM6nWXzCjAVXIMTiTEAQ9G9b85IpDd/7L8fuwaFTPQAUSJXupF2PfbpQ3FUYbJt80dxshbERVJG8vQ==",
"dependencies": {
- "@sentry/types": "7.75.1",
- "@sentry/utils": "7.75.1"
+ "@sentry/types": "7.83.0",
+ "@sentry/utils": "7.83.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/@sentry/replay": {
- "version": "7.75.1",
- "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.75.1.tgz",
- "integrity": "sha512-MKQTDWNYs9QXCJ+irGX5gu8Kxdk/Ds5puhILy8+DnCoXgXuPFRMGob1Sxt8qXmbQmcGeogsx221MNTselsRS6g==",
+ "version": "7.83.0",
+ "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.83.0.tgz",
+ "integrity": "sha512-B/rzmjmQ3ZWE68m4Z9rHIN3Fa/wkfVVTK+iSQtqErFflyMETMNwtWRNd6P9FhXnphEINZEbcn/UZF5w5xu/DfA==",
"dependencies": {
- "@sentry-internal/tracing": "7.75.1",
- "@sentry/core": "7.75.1",
- "@sentry/types": "7.75.1",
- "@sentry/utils": "7.75.1"
+ "@sentry-internal/tracing": "7.83.0",
+ "@sentry/core": "7.83.0",
+ "@sentry/types": "7.83.0",
+ "@sentry/utils": "7.83.0"
},
"engines": {
"node": ">=12"
}
},
"node_modules/@sentry/tracing": {
- "version": "7.75.1",
- "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.75.1.tgz",
- "integrity": "sha512-hy8MQB9TAYdvuO6O6Lotmi/xMkhseM5E3ecY6yjgkbQwzjJV+dBBW4xsCXowMQQQ1qN+E/n95p/gUPvbfe2mgQ==",
+ "version": "7.83.0",
+ "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.83.0.tgz",
+ "integrity": "sha512-0VqUOV/DTYdnkxMU28miybyxsRDjizFe+O5vBzShZNR2XfRHI70ozd8kI/Uni685QlCYirpcnS5evrEx1yLf+A==",
"dependencies": {
- "@sentry-internal/tracing": "7.75.1"
+ "@sentry-internal/tracing": "7.83.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/@sentry/types": {
- "version": "7.75.1",
- "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.75.1.tgz",
- "integrity": "sha512-km+ygqgMDaFfTrbQwdhrptFqx0Oq15jZABqIoIpbaOCkCAMm+tyCqrFS8dTfaq5wpCktqWOy2qU/DOpppO99Cg==",
+ "version": "7.83.0",
+ "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.83.0.tgz",
+ "integrity": "sha512-Bd+zJcy8p1VgCfQqUprmUaw0QPWUV+GmCt6zJRHrHTb2pwLahXv6sHJvQ8F8Va6S7Keuy088U+kHzUFGQLMZMQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/@sentry/utils": {
- "version": "7.75.1",
- "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.75.1.tgz",
- "integrity": "sha512-QzW2eRjY20epD//9/tQ0FTNwdAL6XZi+LyJNUQIeK3NMnc5NgHrgpxId87gmFq8cNx47utH1Blub8RuMbKqiwQ==",
+ "version": "7.83.0",
+ "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.83.0.tgz",
+ "integrity": "sha512-7SrZtgAn3pHFBqSSvV/VL0CWTBQ7VenJjok4+WGWd6/FhP3fKrEEd9rjVTUb2Pzq9WLJJYzdvxAG8RlggG+H4g==",
"dependencies": {
- "@sentry/types": "7.75.1"
+ "@sentry/types": "7.83.0"
},
"engines": {
"node": ">=8"
@@ -4785,80 +4803,27 @@
"dev": true
},
"node_modules/@storybook/addon-actions": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.5.1.tgz",
- "integrity": "sha512-GieD3ru6EslKvwol1cE4lvszQCLB/AkQdnLofnqy1nnYso+hRxmPAw9/O+pWfpUBFdjXsQ7GX09+wEUpOJzepw==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.6.0.tgz",
+ "integrity": "sha512-yc4d/6j0XaTQPkEMkT0JxWPjRwZUg0oC929/vpouYhaC60Ch/b3PnzUFkSQ2BqgeUUH0c9wfzs/9np6USRXpBQ==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/components": "7.5.1",
- "@storybook/core-events": "7.5.1",
+ "@storybook/core-events": "7.6.0",
"@storybook/global": "^5.0.0",
- "@storybook/manager-api": "7.5.1",
- "@storybook/preview-api": "7.5.1",
- "@storybook/theming": "7.5.1",
- "@storybook/types": "7.5.1",
+ "@types/uuid": "^9.0.1",
"dequal": "^2.0.2",
- "lodash": "^4.17.21",
"polished": "^4.2.2",
- "prop-types": "^15.7.2",
- "react-inspector": "^6.0.0",
- "telejson": "^7.2.0",
- "ts-dedent": "^2.0.0",
"uuid": "^9.0.0"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- },
- "peerDependenciesMeta": {
- "react": {
- "optional": true
- },
- "react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@storybook/addon-actions/node_modules/@storybook/channels": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.5.1.tgz",
- "integrity": "sha512-7hTGHqvtdFTqRx8LuCznOpqPBYfUeMUt/0IIp7SFuZT585yMPxrYoaK//QmLEWnPb80B8HVTSQi7caUkJb32LA==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/global": "^5.0.0",
- "qs": "^6.10.0",
- "telejson": "^7.2.0",
- "tiny-invariant": "^1.3.1"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-actions/node_modules/@storybook/client-logger": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.5.1.tgz",
- "integrity": "sha512-XxbLvg0aQRoBrzxYLcVYCbjDkGbkU8Rfb74XbV2CLiO2bIbFPmA1l1Nwbp+wkCGA+O6Z1zwzSl6wcKKqZ6XZCg==",
- "dev": true,
- "dependencies": {
- "@storybook/global": "^5.0.0"
- },
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
}
},
"node_modules/@storybook/addon-actions/node_modules/@storybook/core-events": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.5.1.tgz",
- "integrity": "sha512-2eyaUhTfmEEqOEZVoCXVITCBn6N7QuZCG2UNxv0l//ED+7MuMiFhVw7kS7H3WOVk65R7gb8qbKFTNX8HFTgBHg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.0.tgz",
+ "integrity": "sha512-13d4YOcXPu0j5PDjqE2iy+mG68w2TLit408cF/ZbJ8d6V4QwuUiz6mUt34vTuTc3yB93q5moYXYo6a/AhrsPnQ==",
"dev": true,
"dependencies": {
"ts-dedent": "^2.0.0"
@@ -4868,620 +4833,57 @@
"url": "https://opencollective.com/storybook"
}
},
- "node_modules/@storybook/addon-actions/node_modules/@storybook/manager-api": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.5.1.tgz",
- "integrity": "sha512-ygwJywluhhE1dpA0jC2D/3NFhMXzFCt+iW4m3cOwexYTuiDWF66AbGOFBx9peE7Wk/Z9doKkf9E3v11enwaidA==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
- "@storybook/global": "^5.0.0",
- "@storybook/router": "7.5.1",
- "@storybook/theming": "7.5.1",
- "@storybook/types": "7.5.1",
- "dequal": "^2.0.2",
- "lodash": "^4.17.21",
- "memoizerific": "^1.11.3",
- "semver": "^7.3.7",
- "store2": "^2.14.2",
- "telejson": "^7.2.0",
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/addon-actions/node_modules/@storybook/preview-api": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.5.1.tgz",
- "integrity": "sha512-8xjUbuGmHLmw8tfTUCjXSvMM9r96JaexPFmHdwW6XLe71KKdWp8u96vRDRE5648cd+/of15OjaRtakRKqluA/A==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
- "@storybook/global": "^5.0.0",
- "@storybook/types": "7.5.1",
- "@types/qs": "^6.9.5",
- "dequal": "^2.0.2",
- "lodash": "^4.17.21",
- "memoizerific": "^1.11.3",
- "qs": "^6.10.0",
- "synchronous-promise": "^2.0.15",
- "ts-dedent": "^2.0.0",
- "util-deprecate": "^1.0.2"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-actions/node_modules/@storybook/router": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.5.1.tgz",
- "integrity": "sha512-BvKo+IxWwo3dfIG1+vLtZLT4qqkNHL5GTIozTyX04uqt9ByYZL6SJEzxEa1Xn6Qq/fbdQwzCanNHbTlwiTMf7Q==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.1",
- "memoizerific": "^1.11.3",
- "qs": "^6.10.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/addon-actions/node_modules/@storybook/theming": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.5.1.tgz",
- "integrity": "sha512-ETLAOn10hI4Mkmjsr0HGcM6HbzaURrrPBYmfXOrdbrzEVN+AHW4FlvP9d8fYyP1gdjPE1F39XvF0jYgt1zXiHQ==",
- "dev": true,
- "dependencies": {
- "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0",
- "@storybook/client-logger": "7.5.1",
- "@storybook/global": "^5.0.0",
- "memoizerific": "^1.11.3"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/addon-actions/node_modules/@storybook/types": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.5.1.tgz",
- "integrity": "sha512-ZcMSaqFNx1E+G00nRDUi8kKL7gxJVlnCvbKLNj3V85guy4DkIYAZr31yDqze07gDWbjvKoHIp3tKpgE+2i8upQ==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.1",
- "@types/babel__core": "^7.0.0",
- "@types/express": "^4.7.0",
- "file-system-cache": "2.3.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-actions/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@storybook/addon-actions/node_modules/semver": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
- "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@storybook/addon-actions/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
"node_modules/@storybook/addon-backgrounds": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.5.1.tgz",
- "integrity": "sha512-XZoyJw/WoUlVvQHPTbSAZjKy2SEUjaSmAWgcRync25vp+q0obthjx6UnZHEUuH8Ud07HA3FYzlFtMicH5y/OIQ==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.6.0.tgz",
+ "integrity": "sha512-8BMwVXiazDQlqYS8Snzowzn6MbcsigaUxhWzWoCkLUmyOvciywvOjQD9241wbEdLc/rdFZAPRGoQLZfn/1BV9g==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/components": "7.5.1",
- "@storybook/core-events": "7.5.1",
"@storybook/global": "^5.0.0",
- "@storybook/manager-api": "7.5.1",
- "@storybook/preview-api": "7.5.1",
- "@storybook/theming": "7.5.1",
- "@storybook/types": "7.5.1",
"memoizerific": "^1.11.3",
"ts-dedent": "^2.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- },
- "peerDependenciesMeta": {
- "react": {
- "optional": true
- },
- "react-dom": {
- "optional": true
- }
}
},
- "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/channels": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.5.1.tgz",
- "integrity": "sha512-7hTGHqvtdFTqRx8LuCznOpqPBYfUeMUt/0IIp7SFuZT585yMPxrYoaK//QmLEWnPb80B8HVTSQi7caUkJb32LA==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/global": "^5.0.0",
- "qs": "^6.10.0",
- "telejson": "^7.2.0",
- "tiny-invariant": "^1.3.1"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/client-logger": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.5.1.tgz",
- "integrity": "sha512-XxbLvg0aQRoBrzxYLcVYCbjDkGbkU8Rfb74XbV2CLiO2bIbFPmA1l1Nwbp+wkCGA+O6Z1zwzSl6wcKKqZ6XZCg==",
- "dev": true,
- "dependencies": {
- "@storybook/global": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/core-events": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.5.1.tgz",
- "integrity": "sha512-2eyaUhTfmEEqOEZVoCXVITCBn6N7QuZCG2UNxv0l//ED+7MuMiFhVw7kS7H3WOVk65R7gb8qbKFTNX8HFTgBHg==",
- "dev": true,
- "dependencies": {
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/manager-api": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.5.1.tgz",
- "integrity": "sha512-ygwJywluhhE1dpA0jC2D/3NFhMXzFCt+iW4m3cOwexYTuiDWF66AbGOFBx9peE7Wk/Z9doKkf9E3v11enwaidA==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
- "@storybook/global": "^5.0.0",
- "@storybook/router": "7.5.1",
- "@storybook/theming": "7.5.1",
- "@storybook/types": "7.5.1",
- "dequal": "^2.0.2",
- "lodash": "^4.17.21",
- "memoizerific": "^1.11.3",
- "semver": "^7.3.7",
- "store2": "^2.14.2",
- "telejson": "^7.2.0",
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/preview-api": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.5.1.tgz",
- "integrity": "sha512-8xjUbuGmHLmw8tfTUCjXSvMM9r96JaexPFmHdwW6XLe71KKdWp8u96vRDRE5648cd+/of15OjaRtakRKqluA/A==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
- "@storybook/global": "^5.0.0",
- "@storybook/types": "7.5.1",
- "@types/qs": "^6.9.5",
- "dequal": "^2.0.2",
- "lodash": "^4.17.21",
- "memoizerific": "^1.11.3",
- "qs": "^6.10.0",
- "synchronous-promise": "^2.0.15",
- "ts-dedent": "^2.0.0",
- "util-deprecate": "^1.0.2"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/router": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.5.1.tgz",
- "integrity": "sha512-BvKo+IxWwo3dfIG1+vLtZLT4qqkNHL5GTIozTyX04uqt9ByYZL6SJEzxEa1Xn6Qq/fbdQwzCanNHbTlwiTMf7Q==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.1",
- "memoizerific": "^1.11.3",
- "qs": "^6.10.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/theming": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.5.1.tgz",
- "integrity": "sha512-ETLAOn10hI4Mkmjsr0HGcM6HbzaURrrPBYmfXOrdbrzEVN+AHW4FlvP9d8fYyP1gdjPE1F39XvF0jYgt1zXiHQ==",
- "dev": true,
- "dependencies": {
- "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0",
- "@storybook/client-logger": "7.5.1",
- "@storybook/global": "^5.0.0",
- "memoizerific": "^1.11.3"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/types": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.5.1.tgz",
- "integrity": "sha512-ZcMSaqFNx1E+G00nRDUi8kKL7gxJVlnCvbKLNj3V85guy4DkIYAZr31yDqze07gDWbjvKoHIp3tKpgE+2i8upQ==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.1",
- "@types/babel__core": "^7.0.0",
- "@types/express": "^4.7.0",
- "file-system-cache": "2.3.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-backgrounds/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@storybook/addon-backgrounds/node_modules/semver": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
- "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@storybook/addon-backgrounds/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
"node_modules/@storybook/addon-controls": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.5.1.tgz",
- "integrity": "sha512-Xag1e7TZo04LjUenfobkShpKMxTtwa4xM4bXQA8LjaAGZQ7jipbQ4PE73a17K59S2vqq89VAhkuMJWiyaOFqpw==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.6.0.tgz",
+ "integrity": "sha512-x6OszUmbi+xO4TlFAmw7nFq3IEzM10yPtAMC+RZ8jfSnlfevtZvT/KYb6WySo0H3b7b6GIxLwzbHceZrkHYPHg==",
"dev": true,
"dependencies": {
- "@storybook/blocks": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/components": "7.5.1",
- "@storybook/core-common": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/manager-api": "7.5.1",
- "@storybook/node-logger": "7.5.1",
- "@storybook/preview-api": "7.5.1",
- "@storybook/theming": "7.5.1",
- "@storybook/types": "7.5.1",
+ "@storybook/blocks": "7.6.0",
"lodash": "^4.17.21",
"ts-dedent": "^2.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- },
- "peerDependenciesMeta": {
- "react": {
- "optional": true
- },
- "react-dom": {
- "optional": true
- }
}
},
- "node_modules/@storybook/addon-controls/node_modules/@storybook/channels": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.5.1.tgz",
- "integrity": "sha512-7hTGHqvtdFTqRx8LuCznOpqPBYfUeMUt/0IIp7SFuZT585yMPxrYoaK//QmLEWnPb80B8HVTSQi7caUkJb32LA==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/global": "^5.0.0",
- "qs": "^6.10.0",
- "telejson": "^7.2.0",
- "tiny-invariant": "^1.3.1"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-controls/node_modules/@storybook/client-logger": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.5.1.tgz",
- "integrity": "sha512-XxbLvg0aQRoBrzxYLcVYCbjDkGbkU8Rfb74XbV2CLiO2bIbFPmA1l1Nwbp+wkCGA+O6Z1zwzSl6wcKKqZ6XZCg==",
- "dev": true,
- "dependencies": {
- "@storybook/global": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-controls/node_modules/@storybook/core-events": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.5.1.tgz",
- "integrity": "sha512-2eyaUhTfmEEqOEZVoCXVITCBn6N7QuZCG2UNxv0l//ED+7MuMiFhVw7kS7H3WOVk65R7gb8qbKFTNX8HFTgBHg==",
- "dev": true,
- "dependencies": {
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-controls/node_modules/@storybook/manager-api": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.5.1.tgz",
- "integrity": "sha512-ygwJywluhhE1dpA0jC2D/3NFhMXzFCt+iW4m3cOwexYTuiDWF66AbGOFBx9peE7Wk/Z9doKkf9E3v11enwaidA==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
- "@storybook/global": "^5.0.0",
- "@storybook/router": "7.5.1",
- "@storybook/theming": "7.5.1",
- "@storybook/types": "7.5.1",
- "dequal": "^2.0.2",
- "lodash": "^4.17.21",
- "memoizerific": "^1.11.3",
- "semver": "^7.3.7",
- "store2": "^2.14.2",
- "telejson": "^7.2.0",
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/addon-controls/node_modules/@storybook/preview-api": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.5.1.tgz",
- "integrity": "sha512-8xjUbuGmHLmw8tfTUCjXSvMM9r96JaexPFmHdwW6XLe71KKdWp8u96vRDRE5648cd+/of15OjaRtakRKqluA/A==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
- "@storybook/global": "^5.0.0",
- "@storybook/types": "7.5.1",
- "@types/qs": "^6.9.5",
- "dequal": "^2.0.2",
- "lodash": "^4.17.21",
- "memoizerific": "^1.11.3",
- "qs": "^6.10.0",
- "synchronous-promise": "^2.0.15",
- "ts-dedent": "^2.0.0",
- "util-deprecate": "^1.0.2"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-controls/node_modules/@storybook/router": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.5.1.tgz",
- "integrity": "sha512-BvKo+IxWwo3dfIG1+vLtZLT4qqkNHL5GTIozTyX04uqt9ByYZL6SJEzxEa1Xn6Qq/fbdQwzCanNHbTlwiTMf7Q==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.1",
- "memoizerific": "^1.11.3",
- "qs": "^6.10.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/addon-controls/node_modules/@storybook/theming": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.5.1.tgz",
- "integrity": "sha512-ETLAOn10hI4Mkmjsr0HGcM6HbzaURrrPBYmfXOrdbrzEVN+AHW4FlvP9d8fYyP1gdjPE1F39XvF0jYgt1zXiHQ==",
- "dev": true,
- "dependencies": {
- "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0",
- "@storybook/client-logger": "7.5.1",
- "@storybook/global": "^5.0.0",
- "memoizerific": "^1.11.3"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/addon-controls/node_modules/@storybook/types": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.5.1.tgz",
- "integrity": "sha512-ZcMSaqFNx1E+G00nRDUi8kKL7gxJVlnCvbKLNj3V85guy4DkIYAZr31yDqze07gDWbjvKoHIp3tKpgE+2i8upQ==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.1",
- "@types/babel__core": "^7.0.0",
- "@types/express": "^4.7.0",
- "file-system-cache": "2.3.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-controls/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@storybook/addon-controls/node_modules/semver": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
- "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@storybook/addon-controls/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
"node_modules/@storybook/addon-docs": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.5.1.tgz",
- "integrity": "sha512-+wE67oWIhGK9+kv2sxoY2KDXm3v62RfEgxiksdhtffTP/joOK3p88S0lO+8g0G4xfNGUnBhPtzGMuUxWwaH2Pw==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.6.0.tgz",
+ "integrity": "sha512-gvBMqERBilXEQaDFbsmUZSVSRjBJUSmHaGRYLMb72PnK1pfoRSxvi0TrIqbOScTQLUukKN42OwA83xLS+2eubg==",
"dev": true,
"dependencies": {
"@jest/transform": "^29.3.1",
"@mdx-js/react": "^2.1.5",
- "@storybook/blocks": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/components": "7.5.1",
- "@storybook/csf-plugin": "7.5.1",
- "@storybook/csf-tools": "7.5.1",
+ "@storybook/blocks": "7.6.0",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/components": "7.6.0",
+ "@storybook/csf-plugin": "7.6.0",
+ "@storybook/csf-tools": "7.6.0",
"@storybook/global": "^5.0.0",
"@storybook/mdx2-csf": "^1.0.0",
- "@storybook/node-logger": "7.5.1",
- "@storybook/postinstall": "7.5.1",
- "@storybook/preview-api": "7.5.1",
- "@storybook/react-dom-shim": "7.5.1",
- "@storybook/theming": "7.5.1",
- "@storybook/types": "7.5.1",
+ "@storybook/node-logger": "7.6.0",
+ "@storybook/postinstall": "7.6.0",
+ "@storybook/preview-api": "7.6.0",
+ "@storybook/react-dom-shim": "7.6.0",
+ "@storybook/theming": "7.6.0",
+ "@storybook/types": "7.6.0",
"fs-extra": "^11.1.0",
"remark-external-links": "^8.0.0",
"remark-slug": "^6.0.0",
@@ -5497,13 +4899,13 @@
}
},
"node_modules/@storybook/addon-docs/node_modules/@storybook/channels": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.5.1.tgz",
- "integrity": "sha512-7hTGHqvtdFTqRx8LuCznOpqPBYfUeMUt/0IIp7SFuZT585yMPxrYoaK//QmLEWnPb80B8HVTSQi7caUkJb32LA==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.0.tgz",
+ "integrity": "sha512-Zobr57AkPIE+cdQMrIC9FdgQZDJt8XmpCR+QCxzhrhz6zJLVbIDjf866vKmy3EGSzGrlajfAg/G1PK4v7FdAcw==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/core-events": "7.6.0",
"@storybook/global": "^5.0.0",
"qs": "^6.10.0",
"telejson": "^7.2.0",
@@ -5515,9 +4917,9 @@
}
},
"node_modules/@storybook/addon-docs/node_modules/@storybook/client-logger": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.5.1.tgz",
- "integrity": "sha512-XxbLvg0aQRoBrzxYLcVYCbjDkGbkU8Rfb74XbV2CLiO2bIbFPmA1l1Nwbp+wkCGA+O6Z1zwzSl6wcKKqZ6XZCg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.0.tgz",
+ "integrity": "sha512-18XPPEWYHmmUav7i+PjZGwtImshNtay0xO2vh2DmQtzoCh2Lx/NVldqv9Li1eHCI88+4y7fyutmC5OIi0YASbg==",
"dev": true,
"dependencies": {
"@storybook/global": "^5.0.0"
@@ -5528,9 +4930,9 @@
}
},
"node_modules/@storybook/addon-docs/node_modules/@storybook/core-events": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.5.1.tgz",
- "integrity": "sha512-2eyaUhTfmEEqOEZVoCXVITCBn6N7QuZCG2UNxv0l//ED+7MuMiFhVw7kS7H3WOVk65R7gb8qbKFTNX8HFTgBHg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.0.tgz",
+ "integrity": "sha512-13d4YOcXPu0j5PDjqE2iy+mG68w2TLit408cF/ZbJ8d6V4QwuUiz6mUt34vTuTc3yB93q5moYXYo6a/AhrsPnQ==",
"dev": true,
"dependencies": {
"ts-dedent": "^2.0.0"
@@ -5541,17 +4943,17 @@
}
},
"node_modules/@storybook/addon-docs/node_modules/@storybook/preview-api": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.5.1.tgz",
- "integrity": "sha512-8xjUbuGmHLmw8tfTUCjXSvMM9r96JaexPFmHdwW6XLe71KKdWp8u96vRDRE5648cd+/of15OjaRtakRKqluA/A==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.0.tgz",
+ "integrity": "sha512-//8mYKM8gkSDkIRcG3kSozGEvPUurVhfjBXDtaF8Y8cOZLzwe8/AZy+mUYHShh9HWFUXx5QAj5oU0U0PflfMeg==",
"dev": true,
"dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
+ "@storybook/channels": "7.6.0",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/core-events": "7.6.0",
+ "@storybook/csf": "^0.1.2",
"@storybook/global": "^5.0.0",
- "@storybook/types": "7.5.1",
+ "@storybook/types": "7.6.0",
"@types/qs": "^6.9.5",
"dequal": "^2.0.2",
"lodash": "^4.17.21",
@@ -5567,13 +4969,13 @@
}
},
"node_modules/@storybook/addon-docs/node_modules/@storybook/theming": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.5.1.tgz",
- "integrity": "sha512-ETLAOn10hI4Mkmjsr0HGcM6HbzaURrrPBYmfXOrdbrzEVN+AHW4FlvP9d8fYyP1gdjPE1F39XvF0jYgt1zXiHQ==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.6.0.tgz",
+ "integrity": "sha512-F5PTGkaRQ0TWIWRrZgQ2dmVxVcjX77vDc6QfUYxvOfez9/zrduKRHP5lGqHoqJlugJc8i2zpRNEFbL99frdUKg==",
"dev": true,
"dependencies": {
"@emotion/use-insertion-effect-with-fallbacks": "^1.0.0",
- "@storybook/client-logger": "7.5.1",
+ "@storybook/client-logger": "7.6.0",
"@storybook/global": "^5.0.0",
"memoizerific": "^1.11.3"
},
@@ -5587,12 +4989,12 @@
}
},
"node_modules/@storybook/addon-docs/node_modules/@storybook/types": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.5.1.tgz",
- "integrity": "sha512-ZcMSaqFNx1E+G00nRDUi8kKL7gxJVlnCvbKLNj3V85guy4DkIYAZr31yDqze07gDWbjvKoHIp3tKpgE+2i8upQ==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.0.tgz",
+ "integrity": "sha512-mrbL9qrRekaPCAV3d7jYpege5wOpsvBvNW6pmATG3UvNXpqz5BOWe6RWZJXbtkvjyt01b6HE9CbVUFJppplr6w==",
"dev": true,
"dependencies": {
- "@storybook/channels": "7.5.1",
+ "@storybook/channels": "7.6.0",
"@types/babel__core": "^7.0.0",
"@types/express": "^4.7.0",
"file-system-cache": "2.3.0"
@@ -5603,9 +5005,9 @@
}
},
"node_modules/@storybook/addon-docs/node_modules/fs-extra": {
- "version": "11.1.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
- "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
+ "version": "11.2.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
+ "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.2.0",
@@ -5617,24 +5019,24 @@
}
},
"node_modules/@storybook/addon-essentials": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.5.1.tgz",
- "integrity": "sha512-/jaUZXV+mE/2G5PgEpFKm4lFEHluWn6GFR/pg+hphvHOzBGA3Y75JMgUfJ5CDYHB1dAVSf9JrPOd8Eb1tpESfA==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.6.0.tgz",
+ "integrity": "sha512-cLmLradZqGxh3xavAhPTmJYUdV66NZsEyAZKdc2Fjo9sVWbWstODe/IC1xhD1dRgxEMCTlBpmUENqeCbbnkpqA==",
"dev": true,
"dependencies": {
- "@storybook/addon-actions": "7.5.1",
- "@storybook/addon-backgrounds": "7.5.1",
- "@storybook/addon-controls": "7.5.1",
- "@storybook/addon-docs": "7.5.1",
- "@storybook/addon-highlight": "7.5.1",
- "@storybook/addon-measure": "7.5.1",
- "@storybook/addon-outline": "7.5.1",
- "@storybook/addon-toolbars": "7.5.1",
- "@storybook/addon-viewport": "7.5.1",
- "@storybook/core-common": "7.5.1",
- "@storybook/manager-api": "7.5.1",
- "@storybook/node-logger": "7.5.1",
- "@storybook/preview-api": "7.5.1",
+ "@storybook/addon-actions": "7.6.0",
+ "@storybook/addon-backgrounds": "7.6.0",
+ "@storybook/addon-controls": "7.6.0",
+ "@storybook/addon-docs": "7.6.0",
+ "@storybook/addon-highlight": "7.6.0",
+ "@storybook/addon-measure": "7.6.0",
+ "@storybook/addon-outline": "7.6.0",
+ "@storybook/addon-toolbars": "7.6.0",
+ "@storybook/addon-viewport": "7.6.0",
+ "@storybook/core-common": "7.6.0",
+ "@storybook/manager-api": "7.6.0",
+ "@storybook/node-logger": "7.6.0",
+ "@storybook/preview-api": "7.6.0",
"ts-dedent": "^2.0.0"
},
"funding": {
@@ -5647,13 +5049,13 @@
}
},
"node_modules/@storybook/addon-essentials/node_modules/@storybook/channels": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.5.1.tgz",
- "integrity": "sha512-7hTGHqvtdFTqRx8LuCznOpqPBYfUeMUt/0IIp7SFuZT585yMPxrYoaK//QmLEWnPb80B8HVTSQi7caUkJb32LA==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.0.tgz",
+ "integrity": "sha512-Zobr57AkPIE+cdQMrIC9FdgQZDJt8XmpCR+QCxzhrhz6zJLVbIDjf866vKmy3EGSzGrlajfAg/G1PK4v7FdAcw==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/core-events": "7.6.0",
"@storybook/global": "^5.0.0",
"qs": "^6.10.0",
"telejson": "^7.2.0",
@@ -5665,9 +5067,9 @@
}
},
"node_modules/@storybook/addon-essentials/node_modules/@storybook/client-logger": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.5.1.tgz",
- "integrity": "sha512-XxbLvg0aQRoBrzxYLcVYCbjDkGbkU8Rfb74XbV2CLiO2bIbFPmA1l1Nwbp+wkCGA+O6Z1zwzSl6wcKKqZ6XZCg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.0.tgz",
+ "integrity": "sha512-18XPPEWYHmmUav7i+PjZGwtImshNtay0xO2vh2DmQtzoCh2Lx/NVldqv9Li1eHCI88+4y7fyutmC5OIi0YASbg==",
"dev": true,
"dependencies": {
"@storybook/global": "^5.0.0"
@@ -5678,9 +5080,9 @@
}
},
"node_modules/@storybook/addon-essentials/node_modules/@storybook/core-events": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.5.1.tgz",
- "integrity": "sha512-2eyaUhTfmEEqOEZVoCXVITCBn6N7QuZCG2UNxv0l//ED+7MuMiFhVw7kS7H3WOVk65R7gb8qbKFTNX8HFTgBHg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.0.tgz",
+ "integrity": "sha512-13d4YOcXPu0j5PDjqE2iy+mG68w2TLit408cF/ZbJ8d6V4QwuUiz6mUt34vTuTc3yB93q5moYXYo6a/AhrsPnQ==",
"dev": true,
"dependencies": {
"ts-dedent": "^2.0.0"
@@ -5691,19 +5093,19 @@
}
},
"node_modules/@storybook/addon-essentials/node_modules/@storybook/manager-api": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.5.1.tgz",
- "integrity": "sha512-ygwJywluhhE1dpA0jC2D/3NFhMXzFCt+iW4m3cOwexYTuiDWF66AbGOFBx9peE7Wk/Z9doKkf9E3v11enwaidA==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.6.0.tgz",
+ "integrity": "sha512-P2ISRw8cmIDPrsMwDTOZvFOH6P9GN6O9wC2cSrfMWYE/aaXHWf/7f5gk5pX/zILHuLQeVnDBguS/zXmMDxJj7g==",
"dev": true,
"dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
+ "@storybook/channels": "7.6.0",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/core-events": "7.6.0",
+ "@storybook/csf": "^0.1.2",
"@storybook/global": "^5.0.0",
- "@storybook/router": "7.5.1",
- "@storybook/theming": "7.5.1",
- "@storybook/types": "7.5.1",
+ "@storybook/router": "7.6.0",
+ "@storybook/theming": "7.6.0",
+ "@storybook/types": "7.6.0",
"dequal": "^2.0.2",
"lodash": "^4.17.21",
"memoizerific": "^1.11.3",
@@ -5715,24 +5117,20 @@
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
}
},
"node_modules/@storybook/addon-essentials/node_modules/@storybook/preview-api": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.5.1.tgz",
- "integrity": "sha512-8xjUbuGmHLmw8tfTUCjXSvMM9r96JaexPFmHdwW6XLe71KKdWp8u96vRDRE5648cd+/of15OjaRtakRKqluA/A==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.0.tgz",
+ "integrity": "sha512-//8mYKM8gkSDkIRcG3kSozGEvPUurVhfjBXDtaF8Y8cOZLzwe8/AZy+mUYHShh9HWFUXx5QAj5oU0U0PflfMeg==",
"dev": true,
"dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
+ "@storybook/channels": "7.6.0",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/core-events": "7.6.0",
+ "@storybook/csf": "^0.1.2",
"@storybook/global": "^5.0.0",
- "@storybook/types": "7.5.1",
+ "@storybook/types": "7.6.0",
"@types/qs": "^6.9.5",
"dequal": "^2.0.2",
"lodash": "^4.17.21",
@@ -5748,32 +5146,28 @@
}
},
"node_modules/@storybook/addon-essentials/node_modules/@storybook/router": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.5.1.tgz",
- "integrity": "sha512-BvKo+IxWwo3dfIG1+vLtZLT4qqkNHL5GTIozTyX04uqt9ByYZL6SJEzxEa1Xn6Qq/fbdQwzCanNHbTlwiTMf7Q==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.6.0.tgz",
+ "integrity": "sha512-661mO2JtO/wdWJEtVqyaUjQ8tsy56LrsKqz4suzO0L32Z7NHCBu0IzbZbLON6MXje3PWXksw0vFbd8jwH/i//w==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.5.1",
+ "@storybook/client-logger": "7.6.0",
"memoizerific": "^1.11.3",
"qs": "^6.10.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
}
},
"node_modules/@storybook/addon-essentials/node_modules/@storybook/theming": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.5.1.tgz",
- "integrity": "sha512-ETLAOn10hI4Mkmjsr0HGcM6HbzaURrrPBYmfXOrdbrzEVN+AHW4FlvP9d8fYyP1gdjPE1F39XvF0jYgt1zXiHQ==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.6.0.tgz",
+ "integrity": "sha512-F5PTGkaRQ0TWIWRrZgQ2dmVxVcjX77vDc6QfUYxvOfez9/zrduKRHP5lGqHoqJlugJc8i2zpRNEFbL99frdUKg==",
"dev": true,
"dependencies": {
"@emotion/use-insertion-effect-with-fallbacks": "^1.0.0",
- "@storybook/client-logger": "7.5.1",
+ "@storybook/client-logger": "7.6.0",
"@storybook/global": "^5.0.0",
"memoizerific": "^1.11.3"
},
@@ -5787,12 +5181,12 @@
}
},
"node_modules/@storybook/addon-essentials/node_modules/@storybook/types": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.5.1.tgz",
- "integrity": "sha512-ZcMSaqFNx1E+G00nRDUi8kKL7gxJVlnCvbKLNj3V85guy4DkIYAZr31yDqze07gDWbjvKoHIp3tKpgE+2i8upQ==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.0.tgz",
+ "integrity": "sha512-mrbL9qrRekaPCAV3d7jYpege5wOpsvBvNW6pmATG3UvNXpqz5BOWe6RWZJXbtkvjyt01b6HE9CbVUFJppplr6w==",
"dev": true,
"dependencies": {
- "@storybook/channels": "7.5.1",
+ "@storybook/channels": "7.6.0",
"@types/babel__core": "^7.0.0",
"@types/express": "^4.7.0",
"file-system-cache": "2.3.0"
@@ -5836,42 +5230,9 @@
"dev": true
},
"node_modules/@storybook/addon-highlight": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.5.1.tgz",
- "integrity": "sha512-js9OV17kpjRowuaGAPfI9aOn/zzt8P589ACZE+/eYBO9jT65CADwAUxg//Uq0/he+Ac9495pcK3BcYyDeym7/g==",
- "dev": true,
- "dependencies": {
- "@storybook/core-events": "7.5.1",
- "@storybook/global": "^5.0.0",
- "@storybook/preview-api": "7.5.1"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-highlight/node_modules/@storybook/channels": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.5.1.tgz",
- "integrity": "sha512-7hTGHqvtdFTqRx8LuCznOpqPBYfUeMUt/0IIp7SFuZT585yMPxrYoaK//QmLEWnPb80B8HVTSQi7caUkJb32LA==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/global": "^5.0.0",
- "qs": "^6.10.0",
- "telejson": "^7.2.0",
- "tiny-invariant": "^1.3.1"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-highlight/node_modules/@storybook/client-logger": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.5.1.tgz",
- "integrity": "sha512-XxbLvg0aQRoBrzxYLcVYCbjDkGbkU8Rfb74XbV2CLiO2bIbFPmA1l1Nwbp+wkCGA+O6Z1zwzSl6wcKKqZ6XZCg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.6.0.tgz",
+ "integrity": "sha512-9Ho4L47k9e36kIgNa0RA9ZXzn7AWmq/sXBMRK7PcgrMiKvYdRQMU0AMHDvICg2vI8IkMVXTEaT/CQPefG3XT0Q==",
"dev": true,
"dependencies": {
"@storybook/global": "^5.0.0"
@@ -5881,76 +5242,14 @@
"url": "https://opencollective.com/storybook"
}
},
- "node_modules/@storybook/addon-highlight/node_modules/@storybook/core-events": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.5.1.tgz",
- "integrity": "sha512-2eyaUhTfmEEqOEZVoCXVITCBn6N7QuZCG2UNxv0l//ED+7MuMiFhVw7kS7H3WOVk65R7gb8qbKFTNX8HFTgBHg==",
- "dev": true,
- "dependencies": {
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-highlight/node_modules/@storybook/preview-api": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.5.1.tgz",
- "integrity": "sha512-8xjUbuGmHLmw8tfTUCjXSvMM9r96JaexPFmHdwW6XLe71KKdWp8u96vRDRE5648cd+/of15OjaRtakRKqluA/A==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
- "@storybook/global": "^5.0.0",
- "@storybook/types": "7.5.1",
- "@types/qs": "^6.9.5",
- "dequal": "^2.0.2",
- "lodash": "^4.17.21",
- "memoizerific": "^1.11.3",
- "qs": "^6.10.0",
- "synchronous-promise": "^2.0.15",
- "ts-dedent": "^2.0.0",
- "util-deprecate": "^1.0.2"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-highlight/node_modules/@storybook/types": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.5.1.tgz",
- "integrity": "sha512-ZcMSaqFNx1E+G00nRDUi8kKL7gxJVlnCvbKLNj3V85guy4DkIYAZr31yDqze07gDWbjvKoHIp3tKpgE+2i8upQ==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.1",
- "@types/babel__core": "^7.0.0",
- "@types/express": "^4.7.0",
- "file-system-cache": "2.3.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
"node_modules/@storybook/addon-links": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.5.1.tgz",
- "integrity": "sha512-KDiQYAVNXxuVTB3QLFZxHlfT8q4KnlNKY+0OODvgD5o1FqFpIyUiR5mIBL4SZMRj2EtwrR3KmZ2UPccFZdu9vw==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.6.0.tgz",
+ "integrity": "sha512-Qfq6U7EuxlXUFSbWVH8XRzQWva+CNtNgqjwO2hGsbhCisX5cb8vjl1mQF9DH00Lc021UcUjDPXiCCEEhj6Mpvg==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
+ "@storybook/csf": "^0.1.2",
"@storybook/global": "^5.0.0",
- "@storybook/manager-api": "7.5.1",
- "@storybook/preview-api": "7.5.1",
- "@storybook/router": "7.5.1",
- "@storybook/types": "7.5.1",
- "prop-types": "^15.7.2",
"ts-dedent": "^2.0.0"
},
"funding": {
@@ -5958,250 +5257,21 @@
"url": "https://opencollective.com/storybook"
},
"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"
},
"peerDependenciesMeta": {
"react": {
"optional": true
- },
- "react-dom": {
- "optional": true
}
}
},
- "node_modules/@storybook/addon-links/node_modules/@storybook/channels": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.5.1.tgz",
- "integrity": "sha512-7hTGHqvtdFTqRx8LuCznOpqPBYfUeMUt/0IIp7SFuZT585yMPxrYoaK//QmLEWnPb80B8HVTSQi7caUkJb32LA==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/global": "^5.0.0",
- "qs": "^6.10.0",
- "telejson": "^7.2.0",
- "tiny-invariant": "^1.3.1"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-links/node_modules/@storybook/client-logger": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.5.1.tgz",
- "integrity": "sha512-XxbLvg0aQRoBrzxYLcVYCbjDkGbkU8Rfb74XbV2CLiO2bIbFPmA1l1Nwbp+wkCGA+O6Z1zwzSl6wcKKqZ6XZCg==",
- "dev": true,
- "dependencies": {
- "@storybook/global": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-links/node_modules/@storybook/core-events": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.5.1.tgz",
- "integrity": "sha512-2eyaUhTfmEEqOEZVoCXVITCBn6N7QuZCG2UNxv0l//ED+7MuMiFhVw7kS7H3WOVk65R7gb8qbKFTNX8HFTgBHg==",
- "dev": true,
- "dependencies": {
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-links/node_modules/@storybook/manager-api": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.5.1.tgz",
- "integrity": "sha512-ygwJywluhhE1dpA0jC2D/3NFhMXzFCt+iW4m3cOwexYTuiDWF66AbGOFBx9peE7Wk/Z9doKkf9E3v11enwaidA==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
- "@storybook/global": "^5.0.0",
- "@storybook/router": "7.5.1",
- "@storybook/theming": "7.5.1",
- "@storybook/types": "7.5.1",
- "dequal": "^2.0.2",
- "lodash": "^4.17.21",
- "memoizerific": "^1.11.3",
- "semver": "^7.3.7",
- "store2": "^2.14.2",
- "telejson": "^7.2.0",
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/addon-links/node_modules/@storybook/preview-api": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.5.1.tgz",
- "integrity": "sha512-8xjUbuGmHLmw8tfTUCjXSvMM9r96JaexPFmHdwW6XLe71KKdWp8u96vRDRE5648cd+/of15OjaRtakRKqluA/A==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
- "@storybook/global": "^5.0.0",
- "@storybook/types": "7.5.1",
- "@types/qs": "^6.9.5",
- "dequal": "^2.0.2",
- "lodash": "^4.17.21",
- "memoizerific": "^1.11.3",
- "qs": "^6.10.0",
- "synchronous-promise": "^2.0.15",
- "ts-dedent": "^2.0.0",
- "util-deprecate": "^1.0.2"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-links/node_modules/@storybook/router": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.5.1.tgz",
- "integrity": "sha512-BvKo+IxWwo3dfIG1+vLtZLT4qqkNHL5GTIozTyX04uqt9ByYZL6SJEzxEa1Xn6Qq/fbdQwzCanNHbTlwiTMf7Q==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.1",
- "memoizerific": "^1.11.3",
- "qs": "^6.10.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/addon-links/node_modules/@storybook/theming": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.5.1.tgz",
- "integrity": "sha512-ETLAOn10hI4Mkmjsr0HGcM6HbzaURrrPBYmfXOrdbrzEVN+AHW4FlvP9d8fYyP1gdjPE1F39XvF0jYgt1zXiHQ==",
- "dev": true,
- "dependencies": {
- "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0",
- "@storybook/client-logger": "7.5.1",
- "@storybook/global": "^5.0.0",
- "memoizerific": "^1.11.3"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/addon-links/node_modules/@storybook/types": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.5.1.tgz",
- "integrity": "sha512-ZcMSaqFNx1E+G00nRDUi8kKL7gxJVlnCvbKLNj3V85guy4DkIYAZr31yDqze07gDWbjvKoHIp3tKpgE+2i8upQ==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.1",
- "@types/babel__core": "^7.0.0",
- "@types/express": "^4.7.0",
- "file-system-cache": "2.3.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-links/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@storybook/addon-links/node_modules/semver": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
- "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@storybook/addon-links/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
"node_modules/@storybook/addon-measure": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.5.1.tgz",
- "integrity": "sha512-yR6oELJe0UHYxRijd1YMuGaQRlZ3uABjmrXaFCPnd6agahgTwIJLiK4XamtkVur//LaiJMvtmM2XXrkJ1BvNJw==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.6.0.tgz",
+ "integrity": "sha512-CtGZ45LUvylvM7z53TbUdJ8qx5QRgWXAA1Lk/+yBlIYgXQhvMzSupxmhjRyZZdj1rMj8S5NYuIg43nsQYijnsQ==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/components": "7.5.1",
- "@storybook/core-events": "7.5.1",
"@storybook/global": "^5.0.0",
- "@storybook/manager-api": "7.5.1",
- "@storybook/preview-api": "7.5.1",
- "@storybook/types": "7.5.1",
- "tiny-invariant": "^1.3.1"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- },
- "peerDependenciesMeta": {
- "react": {
- "optional": true
- },
- "react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@storybook/addon-measure/node_modules/@storybook/channels": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.5.1.tgz",
- "integrity": "sha512-7hTGHqvtdFTqRx8LuCznOpqPBYfUeMUt/0IIp7SFuZT585yMPxrYoaK//QmLEWnPb80B8HVTSQi7caUkJb32LA==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/global": "^5.0.0",
- "qs": "^6.10.0",
- "telejson": "^7.2.0",
"tiny-invariant": "^1.3.1"
},
"funding": {
@@ -6209,246 +5279,13 @@
"url": "https://opencollective.com/storybook"
}
},
- "node_modules/@storybook/addon-measure/node_modules/@storybook/client-logger": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.5.1.tgz",
- "integrity": "sha512-XxbLvg0aQRoBrzxYLcVYCbjDkGbkU8Rfb74XbV2CLiO2bIbFPmA1l1Nwbp+wkCGA+O6Z1zwzSl6wcKKqZ6XZCg==",
- "dev": true,
- "dependencies": {
- "@storybook/global": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-measure/node_modules/@storybook/core-events": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.5.1.tgz",
- "integrity": "sha512-2eyaUhTfmEEqOEZVoCXVITCBn6N7QuZCG2UNxv0l//ED+7MuMiFhVw7kS7H3WOVk65R7gb8qbKFTNX8HFTgBHg==",
- "dev": true,
- "dependencies": {
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-measure/node_modules/@storybook/manager-api": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.5.1.tgz",
- "integrity": "sha512-ygwJywluhhE1dpA0jC2D/3NFhMXzFCt+iW4m3cOwexYTuiDWF66AbGOFBx9peE7Wk/Z9doKkf9E3v11enwaidA==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
- "@storybook/global": "^5.0.0",
- "@storybook/router": "7.5.1",
- "@storybook/theming": "7.5.1",
- "@storybook/types": "7.5.1",
- "dequal": "^2.0.2",
- "lodash": "^4.17.21",
- "memoizerific": "^1.11.3",
- "semver": "^7.3.7",
- "store2": "^2.14.2",
- "telejson": "^7.2.0",
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/addon-measure/node_modules/@storybook/preview-api": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.5.1.tgz",
- "integrity": "sha512-8xjUbuGmHLmw8tfTUCjXSvMM9r96JaexPFmHdwW6XLe71KKdWp8u96vRDRE5648cd+/of15OjaRtakRKqluA/A==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
- "@storybook/global": "^5.0.0",
- "@storybook/types": "7.5.1",
- "@types/qs": "^6.9.5",
- "dequal": "^2.0.2",
- "lodash": "^4.17.21",
- "memoizerific": "^1.11.3",
- "qs": "^6.10.0",
- "synchronous-promise": "^2.0.15",
- "ts-dedent": "^2.0.0",
- "util-deprecate": "^1.0.2"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-measure/node_modules/@storybook/router": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.5.1.tgz",
- "integrity": "sha512-BvKo+IxWwo3dfIG1+vLtZLT4qqkNHL5GTIozTyX04uqt9ByYZL6SJEzxEa1Xn6Qq/fbdQwzCanNHbTlwiTMf7Q==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.1",
- "memoizerific": "^1.11.3",
- "qs": "^6.10.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/addon-measure/node_modules/@storybook/theming": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.5.1.tgz",
- "integrity": "sha512-ETLAOn10hI4Mkmjsr0HGcM6HbzaURrrPBYmfXOrdbrzEVN+AHW4FlvP9d8fYyP1gdjPE1F39XvF0jYgt1zXiHQ==",
- "dev": true,
- "dependencies": {
- "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0",
- "@storybook/client-logger": "7.5.1",
- "@storybook/global": "^5.0.0",
- "memoizerific": "^1.11.3"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/addon-measure/node_modules/@storybook/types": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.5.1.tgz",
- "integrity": "sha512-ZcMSaqFNx1E+G00nRDUi8kKL7gxJVlnCvbKLNj3V85guy4DkIYAZr31yDqze07gDWbjvKoHIp3tKpgE+2i8upQ==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.1",
- "@types/babel__core": "^7.0.0",
- "@types/express": "^4.7.0",
- "file-system-cache": "2.3.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-measure/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@storybook/addon-measure/node_modules/semver": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
- "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@storybook/addon-measure/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
"node_modules/@storybook/addon-outline": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.5.1.tgz",
- "integrity": "sha512-IMi5Bo34/Q5YUG5uD8ZUTBwlpGrkDIV+PUgkyNIbmn9OgozoCH80Fs7YlGluRFODQISpHwio9qvSFRGdSNT56A==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.6.0.tgz",
+ "integrity": "sha512-W5KcuxM2w9VugZmU8nCwRa1FZdLj+sMcLZG4R1JcplY4SkWXrVtqMRJE0TNvyUEPUJpqcUwZWvL31fOZHQaOwg==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/components": "7.5.1",
- "@storybook/core-events": "7.5.1",
"@storybook/global": "^5.0.0",
- "@storybook/manager-api": "7.5.1",
- "@storybook/preview-api": "7.5.1",
- "@storybook/types": "7.5.1",
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- },
- "peerDependenciesMeta": {
- "react": {
- "optional": true
- },
- "react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@storybook/addon-outline/node_modules/@storybook/channels": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.5.1.tgz",
- "integrity": "sha512-7hTGHqvtdFTqRx8LuCznOpqPBYfUeMUt/0IIp7SFuZT585yMPxrYoaK//QmLEWnPb80B8HVTSQi7caUkJb32LA==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/global": "^5.0.0",
- "qs": "^6.10.0",
- "telejson": "^7.2.0",
- "tiny-invariant": "^1.3.1"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-outline/node_modules/@storybook/client-logger": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.5.1.tgz",
- "integrity": "sha512-XxbLvg0aQRoBrzxYLcVYCbjDkGbkU8Rfb74XbV2CLiO2bIbFPmA1l1Nwbp+wkCGA+O6Z1zwzSl6wcKKqZ6XZCg==",
- "dev": true,
- "dependencies": {
- "@storybook/global": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-outline/node_modules/@storybook/core-events": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.5.1.tgz",
- "integrity": "sha512-2eyaUhTfmEEqOEZVoCXVITCBn6N7QuZCG2UNxv0l//ED+7MuMiFhVw7kS7H3WOVk65R7gb8qbKFTNX8HFTgBHg==",
- "dev": true,
- "dependencies": {
"ts-dedent": "^2.0.0"
},
"funding": {
@@ -6456,591 +5293,29 @@
"url": "https://opencollective.com/storybook"
}
},
- "node_modules/@storybook/addon-outline/node_modules/@storybook/manager-api": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.5.1.tgz",
- "integrity": "sha512-ygwJywluhhE1dpA0jC2D/3NFhMXzFCt+iW4m3cOwexYTuiDWF66AbGOFBx9peE7Wk/Z9doKkf9E3v11enwaidA==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
- "@storybook/global": "^5.0.0",
- "@storybook/router": "7.5.1",
- "@storybook/theming": "7.5.1",
- "@storybook/types": "7.5.1",
- "dequal": "^2.0.2",
- "lodash": "^4.17.21",
- "memoizerific": "^1.11.3",
- "semver": "^7.3.7",
- "store2": "^2.14.2",
- "telejson": "^7.2.0",
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/addon-outline/node_modules/@storybook/preview-api": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.5.1.tgz",
- "integrity": "sha512-8xjUbuGmHLmw8tfTUCjXSvMM9r96JaexPFmHdwW6XLe71KKdWp8u96vRDRE5648cd+/of15OjaRtakRKqluA/A==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
- "@storybook/global": "^5.0.0",
- "@storybook/types": "7.5.1",
- "@types/qs": "^6.9.5",
- "dequal": "^2.0.2",
- "lodash": "^4.17.21",
- "memoizerific": "^1.11.3",
- "qs": "^6.10.0",
- "synchronous-promise": "^2.0.15",
- "ts-dedent": "^2.0.0",
- "util-deprecate": "^1.0.2"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-outline/node_modules/@storybook/router": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.5.1.tgz",
- "integrity": "sha512-BvKo+IxWwo3dfIG1+vLtZLT4qqkNHL5GTIozTyX04uqt9ByYZL6SJEzxEa1Xn6Qq/fbdQwzCanNHbTlwiTMf7Q==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.1",
- "memoizerific": "^1.11.3",
- "qs": "^6.10.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/addon-outline/node_modules/@storybook/theming": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.5.1.tgz",
- "integrity": "sha512-ETLAOn10hI4Mkmjsr0HGcM6HbzaURrrPBYmfXOrdbrzEVN+AHW4FlvP9d8fYyP1gdjPE1F39XvF0jYgt1zXiHQ==",
- "dev": true,
- "dependencies": {
- "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0",
- "@storybook/client-logger": "7.5.1",
- "@storybook/global": "^5.0.0",
- "memoizerific": "^1.11.3"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/addon-outline/node_modules/@storybook/types": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.5.1.tgz",
- "integrity": "sha512-ZcMSaqFNx1E+G00nRDUi8kKL7gxJVlnCvbKLNj3V85guy4DkIYAZr31yDqze07gDWbjvKoHIp3tKpgE+2i8upQ==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.1",
- "@types/babel__core": "^7.0.0",
- "@types/express": "^4.7.0",
- "file-system-cache": "2.3.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-outline/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@storybook/addon-outline/node_modules/semver": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
- "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@storybook/addon-outline/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
"node_modules/@storybook/addon-toolbars": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.5.1.tgz",
- "integrity": "sha512-T88hEEQicV6eCovr5TN2nFgKt7wU0o7pAunP5cU01iiVRj63+oQiVIBB8Xtm4tN+/DsqtyP0BTa6rFwt2ULy8A==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.6.0.tgz",
+ "integrity": "sha512-IZ6LGqu4QYsXSKof8KO0bL9+UR4KXho4z/+o0OYBwQRnO1KBQh73yRoeRxZPsJWE0Ms5zZnAMEA6iSZ+Zyvs5g==",
"dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/components": "7.5.1",
- "@storybook/manager-api": "7.5.1",
- "@storybook/preview-api": "7.5.1",
- "@storybook/theming": "7.5.1"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- },
- "peerDependenciesMeta": {
- "react": {
- "optional": true
- },
- "react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@storybook/addon-toolbars/node_modules/@storybook/channels": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.5.1.tgz",
- "integrity": "sha512-7hTGHqvtdFTqRx8LuCznOpqPBYfUeMUt/0IIp7SFuZT585yMPxrYoaK//QmLEWnPb80B8HVTSQi7caUkJb32LA==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/global": "^5.0.0",
- "qs": "^6.10.0",
- "telejson": "^7.2.0",
- "tiny-invariant": "^1.3.1"
- },
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
}
},
- "node_modules/@storybook/addon-toolbars/node_modules/@storybook/client-logger": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.5.1.tgz",
- "integrity": "sha512-XxbLvg0aQRoBrzxYLcVYCbjDkGbkU8Rfb74XbV2CLiO2bIbFPmA1l1Nwbp+wkCGA+O6Z1zwzSl6wcKKqZ6XZCg==",
- "dev": true,
- "dependencies": {
- "@storybook/global": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-toolbars/node_modules/@storybook/core-events": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.5.1.tgz",
- "integrity": "sha512-2eyaUhTfmEEqOEZVoCXVITCBn6N7QuZCG2UNxv0l//ED+7MuMiFhVw7kS7H3WOVk65R7gb8qbKFTNX8HFTgBHg==",
- "dev": true,
- "dependencies": {
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-toolbars/node_modules/@storybook/manager-api": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.5.1.tgz",
- "integrity": "sha512-ygwJywluhhE1dpA0jC2D/3NFhMXzFCt+iW4m3cOwexYTuiDWF66AbGOFBx9peE7Wk/Z9doKkf9E3v11enwaidA==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
- "@storybook/global": "^5.0.0",
- "@storybook/router": "7.5.1",
- "@storybook/theming": "7.5.1",
- "@storybook/types": "7.5.1",
- "dequal": "^2.0.2",
- "lodash": "^4.17.21",
- "memoizerific": "^1.11.3",
- "semver": "^7.3.7",
- "store2": "^2.14.2",
- "telejson": "^7.2.0",
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/addon-toolbars/node_modules/@storybook/preview-api": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.5.1.tgz",
- "integrity": "sha512-8xjUbuGmHLmw8tfTUCjXSvMM9r96JaexPFmHdwW6XLe71KKdWp8u96vRDRE5648cd+/of15OjaRtakRKqluA/A==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
- "@storybook/global": "^5.0.0",
- "@storybook/types": "7.5.1",
- "@types/qs": "^6.9.5",
- "dequal": "^2.0.2",
- "lodash": "^4.17.21",
- "memoizerific": "^1.11.3",
- "qs": "^6.10.0",
- "synchronous-promise": "^2.0.15",
- "ts-dedent": "^2.0.0",
- "util-deprecate": "^1.0.2"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-toolbars/node_modules/@storybook/router": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.5.1.tgz",
- "integrity": "sha512-BvKo+IxWwo3dfIG1+vLtZLT4qqkNHL5GTIozTyX04uqt9ByYZL6SJEzxEa1Xn6Qq/fbdQwzCanNHbTlwiTMf7Q==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.1",
- "memoizerific": "^1.11.3",
- "qs": "^6.10.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/addon-toolbars/node_modules/@storybook/theming": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.5.1.tgz",
- "integrity": "sha512-ETLAOn10hI4Mkmjsr0HGcM6HbzaURrrPBYmfXOrdbrzEVN+AHW4FlvP9d8fYyP1gdjPE1F39XvF0jYgt1zXiHQ==",
- "dev": true,
- "dependencies": {
- "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0",
- "@storybook/client-logger": "7.5.1",
- "@storybook/global": "^5.0.0",
- "memoizerific": "^1.11.3"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/addon-toolbars/node_modules/@storybook/types": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.5.1.tgz",
- "integrity": "sha512-ZcMSaqFNx1E+G00nRDUi8kKL7gxJVlnCvbKLNj3V85guy4DkIYAZr31yDqze07gDWbjvKoHIp3tKpgE+2i8upQ==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.1",
- "@types/babel__core": "^7.0.0",
- "@types/express": "^4.7.0",
- "file-system-cache": "2.3.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-toolbars/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@storybook/addon-toolbars/node_modules/semver": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
- "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@storybook/addon-toolbars/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
"node_modules/@storybook/addon-viewport": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.5.1.tgz",
- "integrity": "sha512-L57lOGB3LfKgAdLinaZojRQ9W9w2RC0iP9bVaXwrRVeJdpNayfuW4Kh1C8dmacZroB4Zp2U/nEjkSmdcp6uUWg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.6.0.tgz",
+ "integrity": "sha512-1NGgoEnDYLWw0HuRTTrIHCj8I0Xtc76PgPtArj92HQu+ENu4Hy0Y8MypZ+ZmAFddykaInwmZeQo2CD0GXU9qUQ==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/components": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/global": "^5.0.0",
- "@storybook/manager-api": "7.5.1",
- "@storybook/preview-api": "7.5.1",
- "@storybook/theming": "7.5.1",
- "memoizerific": "^1.11.3",
- "prop-types": "^15.7.2"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- },
- "peerDependenciesMeta": {
- "react": {
- "optional": true
- },
- "react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@storybook/addon-viewport/node_modules/@storybook/channels": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.5.1.tgz",
- "integrity": "sha512-7hTGHqvtdFTqRx8LuCznOpqPBYfUeMUt/0IIp7SFuZT585yMPxrYoaK//QmLEWnPb80B8HVTSQi7caUkJb32LA==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/global": "^5.0.0",
- "qs": "^6.10.0",
- "telejson": "^7.2.0",
- "tiny-invariant": "^1.3.1"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-viewport/node_modules/@storybook/client-logger": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.5.1.tgz",
- "integrity": "sha512-XxbLvg0aQRoBrzxYLcVYCbjDkGbkU8Rfb74XbV2CLiO2bIbFPmA1l1Nwbp+wkCGA+O6Z1zwzSl6wcKKqZ6XZCg==",
- "dev": true,
- "dependencies": {
- "@storybook/global": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-viewport/node_modules/@storybook/core-events": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.5.1.tgz",
- "integrity": "sha512-2eyaUhTfmEEqOEZVoCXVITCBn6N7QuZCG2UNxv0l//ED+7MuMiFhVw7kS7H3WOVk65R7gb8qbKFTNX8HFTgBHg==",
- "dev": true,
- "dependencies": {
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-viewport/node_modules/@storybook/manager-api": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.5.1.tgz",
- "integrity": "sha512-ygwJywluhhE1dpA0jC2D/3NFhMXzFCt+iW4m3cOwexYTuiDWF66AbGOFBx9peE7Wk/Z9doKkf9E3v11enwaidA==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
- "@storybook/global": "^5.0.0",
- "@storybook/router": "7.5.1",
- "@storybook/theming": "7.5.1",
- "@storybook/types": "7.5.1",
- "dequal": "^2.0.2",
- "lodash": "^4.17.21",
- "memoizerific": "^1.11.3",
- "semver": "^7.3.7",
- "store2": "^2.14.2",
- "telejson": "^7.2.0",
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/addon-viewport/node_modules/@storybook/preview-api": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.5.1.tgz",
- "integrity": "sha512-8xjUbuGmHLmw8tfTUCjXSvMM9r96JaexPFmHdwW6XLe71KKdWp8u96vRDRE5648cd+/of15OjaRtakRKqluA/A==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
- "@storybook/global": "^5.0.0",
- "@storybook/types": "7.5.1",
- "@types/qs": "^6.9.5",
- "dequal": "^2.0.2",
- "lodash": "^4.17.21",
- "memoizerific": "^1.11.3",
- "qs": "^6.10.0",
- "synchronous-promise": "^2.0.15",
- "ts-dedent": "^2.0.0",
- "util-deprecate": "^1.0.2"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-viewport/node_modules/@storybook/router": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.5.1.tgz",
- "integrity": "sha512-BvKo+IxWwo3dfIG1+vLtZLT4qqkNHL5GTIozTyX04uqt9ByYZL6SJEzxEa1Xn6Qq/fbdQwzCanNHbTlwiTMf7Q==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.1",
- "memoizerific": "^1.11.3",
- "qs": "^6.10.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/addon-viewport/node_modules/@storybook/theming": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.5.1.tgz",
- "integrity": "sha512-ETLAOn10hI4Mkmjsr0HGcM6HbzaURrrPBYmfXOrdbrzEVN+AHW4FlvP9d8fYyP1gdjPE1F39XvF0jYgt1zXiHQ==",
- "dev": true,
- "dependencies": {
- "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0",
- "@storybook/client-logger": "7.5.1",
- "@storybook/global": "^5.0.0",
"memoizerific": "^1.11.3"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
}
},
- "node_modules/@storybook/addon-viewport/node_modules/@storybook/types": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.5.1.tgz",
- "integrity": "sha512-ZcMSaqFNx1E+G00nRDUi8kKL7gxJVlnCvbKLNj3V85guy4DkIYAZr31yDqze07gDWbjvKoHIp3tKpgE+2i8upQ==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.1",
- "@types/babel__core": "^7.0.0",
- "@types/express": "^4.7.0",
- "file-system-cache": "2.3.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-viewport/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@storybook/addon-viewport/node_modules/semver": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
- "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@storybook/addon-viewport/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
"node_modules/@storybook/addons": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-7.4.2.tgz",
@@ -7251,22 +5526,22 @@
}
},
"node_modules/@storybook/blocks": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.5.1.tgz",
- "integrity": "sha512-7b69p6kDdgmlejEMM2mW6/Lz4OmU/R3Qr+TpKnPcV5iS7ADxRQEQCTEMoQ5RyLJf0vDRh/7Ljn/RMo8Ux3X7JA==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.6.0.tgz",
+ "integrity": "sha512-S5g0h9dJevngPXnsFAjxQryOU/rQuA4cet40hIH0qRKesFwaXDFrsYHMZfxg6uGKygpeGbIEBoXckL8DT3SofA==",
"dev": true,
"dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/components": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
- "@storybook/docs-tools": "7.5.1",
+ "@storybook/channels": "7.6.0",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/components": "7.6.0",
+ "@storybook/core-events": "7.6.0",
+ "@storybook/csf": "^0.1.2",
+ "@storybook/docs-tools": "7.6.0",
"@storybook/global": "^5.0.0",
- "@storybook/manager-api": "7.5.1",
- "@storybook/preview-api": "7.5.1",
- "@storybook/theming": "7.5.1",
- "@storybook/types": "7.5.1",
+ "@storybook/manager-api": "7.6.0",
+ "@storybook/preview-api": "7.6.0",
+ "@storybook/theming": "7.6.0",
+ "@storybook/types": "7.6.0",
"@types/lodash": "^4.14.167",
"color-convert": "^2.0.1",
"dequal": "^2.0.2",
@@ -7290,13 +5565,13 @@
}
},
"node_modules/@storybook/blocks/node_modules/@storybook/channels": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.5.1.tgz",
- "integrity": "sha512-7hTGHqvtdFTqRx8LuCznOpqPBYfUeMUt/0IIp7SFuZT585yMPxrYoaK//QmLEWnPb80B8HVTSQi7caUkJb32LA==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.0.tgz",
+ "integrity": "sha512-Zobr57AkPIE+cdQMrIC9FdgQZDJt8XmpCR+QCxzhrhz6zJLVbIDjf866vKmy3EGSzGrlajfAg/G1PK4v7FdAcw==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/core-events": "7.6.0",
"@storybook/global": "^5.0.0",
"qs": "^6.10.0",
"telejson": "^7.2.0",
@@ -7308,9 +5583,9 @@
}
},
"node_modules/@storybook/blocks/node_modules/@storybook/client-logger": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.5.1.tgz",
- "integrity": "sha512-XxbLvg0aQRoBrzxYLcVYCbjDkGbkU8Rfb74XbV2CLiO2bIbFPmA1l1Nwbp+wkCGA+O6Z1zwzSl6wcKKqZ6XZCg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.0.tgz",
+ "integrity": "sha512-18XPPEWYHmmUav7i+PjZGwtImshNtay0xO2vh2DmQtzoCh2Lx/NVldqv9Li1eHCI88+4y7fyutmC5OIi0YASbg==",
"dev": true,
"dependencies": {
"@storybook/global": "^5.0.0"
@@ -7321,9 +5596,9 @@
}
},
"node_modules/@storybook/blocks/node_modules/@storybook/core-events": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.5.1.tgz",
- "integrity": "sha512-2eyaUhTfmEEqOEZVoCXVITCBn6N7QuZCG2UNxv0l//ED+7MuMiFhVw7kS7H3WOVk65R7gb8qbKFTNX8HFTgBHg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.0.tgz",
+ "integrity": "sha512-13d4YOcXPu0j5PDjqE2iy+mG68w2TLit408cF/ZbJ8d6V4QwuUiz6mUt34vTuTc3yB93q5moYXYo6a/AhrsPnQ==",
"dev": true,
"dependencies": {
"ts-dedent": "^2.0.0"
@@ -7334,19 +5609,19 @@
}
},
"node_modules/@storybook/blocks/node_modules/@storybook/manager-api": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.5.1.tgz",
- "integrity": "sha512-ygwJywluhhE1dpA0jC2D/3NFhMXzFCt+iW4m3cOwexYTuiDWF66AbGOFBx9peE7Wk/Z9doKkf9E3v11enwaidA==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.6.0.tgz",
+ "integrity": "sha512-P2ISRw8cmIDPrsMwDTOZvFOH6P9GN6O9wC2cSrfMWYE/aaXHWf/7f5gk5pX/zILHuLQeVnDBguS/zXmMDxJj7g==",
"dev": true,
"dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
+ "@storybook/channels": "7.6.0",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/core-events": "7.6.0",
+ "@storybook/csf": "^0.1.2",
"@storybook/global": "^5.0.0",
- "@storybook/router": "7.5.1",
- "@storybook/theming": "7.5.1",
- "@storybook/types": "7.5.1",
+ "@storybook/router": "7.6.0",
+ "@storybook/theming": "7.6.0",
+ "@storybook/types": "7.6.0",
"dequal": "^2.0.2",
"lodash": "^4.17.21",
"memoizerific": "^1.11.3",
@@ -7358,24 +5633,20 @@
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
}
},
"node_modules/@storybook/blocks/node_modules/@storybook/preview-api": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.5.1.tgz",
- "integrity": "sha512-8xjUbuGmHLmw8tfTUCjXSvMM9r96JaexPFmHdwW6XLe71KKdWp8u96vRDRE5648cd+/of15OjaRtakRKqluA/A==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.0.tgz",
+ "integrity": "sha512-//8mYKM8gkSDkIRcG3kSozGEvPUurVhfjBXDtaF8Y8cOZLzwe8/AZy+mUYHShh9HWFUXx5QAj5oU0U0PflfMeg==",
"dev": true,
"dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
+ "@storybook/channels": "7.6.0",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/core-events": "7.6.0",
+ "@storybook/csf": "^0.1.2",
"@storybook/global": "^5.0.0",
- "@storybook/types": "7.5.1",
+ "@storybook/types": "7.6.0",
"@types/qs": "^6.9.5",
"dequal": "^2.0.2",
"lodash": "^4.17.21",
@@ -7391,32 +5662,28 @@
}
},
"node_modules/@storybook/blocks/node_modules/@storybook/router": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.5.1.tgz",
- "integrity": "sha512-BvKo+IxWwo3dfIG1+vLtZLT4qqkNHL5GTIozTyX04uqt9ByYZL6SJEzxEa1Xn6Qq/fbdQwzCanNHbTlwiTMf7Q==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.6.0.tgz",
+ "integrity": "sha512-661mO2JtO/wdWJEtVqyaUjQ8tsy56LrsKqz4suzO0L32Z7NHCBu0IzbZbLON6MXje3PWXksw0vFbd8jwH/i//w==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.5.1",
+ "@storybook/client-logger": "7.6.0",
"memoizerific": "^1.11.3",
"qs": "^6.10.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
}
},
"node_modules/@storybook/blocks/node_modules/@storybook/theming": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.5.1.tgz",
- "integrity": "sha512-ETLAOn10hI4Mkmjsr0HGcM6HbzaURrrPBYmfXOrdbrzEVN+AHW4FlvP9d8fYyP1gdjPE1F39XvF0jYgt1zXiHQ==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.6.0.tgz",
+ "integrity": "sha512-F5PTGkaRQ0TWIWRrZgQ2dmVxVcjX77vDc6QfUYxvOfez9/zrduKRHP5lGqHoqJlugJc8i2zpRNEFbL99frdUKg==",
"dev": true,
"dependencies": {
"@emotion/use-insertion-effect-with-fallbacks": "^1.0.0",
- "@storybook/client-logger": "7.5.1",
+ "@storybook/client-logger": "7.6.0",
"@storybook/global": "^5.0.0",
"memoizerific": "^1.11.3"
},
@@ -7430,12 +5697,12 @@
}
},
"node_modules/@storybook/blocks/node_modules/@storybook/types": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.5.1.tgz",
- "integrity": "sha512-ZcMSaqFNx1E+G00nRDUi8kKL7gxJVlnCvbKLNj3V85guy4DkIYAZr31yDqze07gDWbjvKoHIp3tKpgE+2i8upQ==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.0.tgz",
+ "integrity": "sha512-mrbL9qrRekaPCAV3d7jYpege5wOpsvBvNW6pmATG3UvNXpqz5BOWe6RWZJXbtkvjyt01b6HE9CbVUFJppplr6w==",
"dev": true,
"dependencies": {
- "@storybook/channels": "7.5.1",
+ "@storybook/channels": "7.6.0",
"@types/babel__core": "^7.0.0",
"@types/express": "^4.7.0",
"file-system-cache": "2.3.0"
@@ -7479,15 +5746,15 @@
"dev": true
},
"node_modules/@storybook/builder-manager": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.5.1.tgz",
- "integrity": "sha512-a02kg/DCcYgiTz+7rw4KdvQzif+2lZ+NIFF5U5u8SDoCQuoe3wRT6QBrFYQTxJexA4WfO6cpyRLDJ1rx6NLo8A==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.6.0.tgz",
+ "integrity": "sha512-xbyc1aMdvJrmN6mk7GW1mv/+gGxDfk3Rrv6tZph5nAWUojibEEqVHv5k6IXq5yyTzwRU+IpCf8gzCUSEvORt7w==",
"dev": true,
"dependencies": {
"@fal-works/esbuild-plugin-global-externals": "^2.1.2",
- "@storybook/core-common": "7.5.1",
- "@storybook/manager": "7.5.1",
- "@storybook/node-logger": "7.5.1",
+ "@storybook/core-common": "7.6.0",
+ "@storybook/manager": "7.6.0",
+ "@storybook/node-logger": "7.6.0",
"@types/ejs": "^3.1.1",
"@types/find-cache-dir": "^3.2.1",
"@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10",
@@ -7507,9 +5774,9 @@
}
},
"node_modules/@storybook/builder-manager/node_modules/fs-extra": {
- "version": "11.1.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
- "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
+ "version": "11.2.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
+ "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.2.0",
@@ -7521,19 +5788,19 @@
}
},
"node_modules/@storybook/builder-vite": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.5.1.tgz",
- "integrity": "sha512-fsF4LsxroVvjBJoI5AvRA6euhpYrb5euii5kPzrsWXLOn6gDBK0jQ0looep/io7J45MisDjRTPp14A02pi1bkw==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.6.0.tgz",
+ "integrity": "sha512-gYJbQxquk/REN0Gg3okC56gFsrWHvnNtvc5Dbs+WRN8Zm2hUr7Gyrp3BQGgqvbinLFy2oK4Hq+Z18UAptG4LGw==",
"dev": true,
"dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-common": "7.5.1",
- "@storybook/csf-plugin": "7.5.1",
- "@storybook/node-logger": "7.5.1",
- "@storybook/preview": "7.5.1",
- "@storybook/preview-api": "7.5.1",
- "@storybook/types": "7.5.1",
+ "@storybook/channels": "7.6.0",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/core-common": "7.6.0",
+ "@storybook/csf-plugin": "7.6.0",
+ "@storybook/node-logger": "7.6.0",
+ "@storybook/preview": "7.6.0",
+ "@storybook/preview-api": "7.6.0",
+ "@storybook/types": "7.6.0",
"@types/find-cache-dir": "^3.2.1",
"browser-assert": "^1.2.1",
"es-module-lexer": "^0.9.3",
@@ -7566,13 +5833,13 @@
}
},
"node_modules/@storybook/builder-vite/node_modules/@storybook/channels": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.5.1.tgz",
- "integrity": "sha512-7hTGHqvtdFTqRx8LuCznOpqPBYfUeMUt/0IIp7SFuZT585yMPxrYoaK//QmLEWnPb80B8HVTSQi7caUkJb32LA==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.0.tgz",
+ "integrity": "sha512-Zobr57AkPIE+cdQMrIC9FdgQZDJt8XmpCR+QCxzhrhz6zJLVbIDjf866vKmy3EGSzGrlajfAg/G1PK4v7FdAcw==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/core-events": "7.6.0",
"@storybook/global": "^5.0.0",
"qs": "^6.10.0",
"telejson": "^7.2.0",
@@ -7584,9 +5851,9 @@
}
},
"node_modules/@storybook/builder-vite/node_modules/@storybook/client-logger": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.5.1.tgz",
- "integrity": "sha512-XxbLvg0aQRoBrzxYLcVYCbjDkGbkU8Rfb74XbV2CLiO2bIbFPmA1l1Nwbp+wkCGA+O6Z1zwzSl6wcKKqZ6XZCg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.0.tgz",
+ "integrity": "sha512-18XPPEWYHmmUav7i+PjZGwtImshNtay0xO2vh2DmQtzoCh2Lx/NVldqv9Li1eHCI88+4y7fyutmC5OIi0YASbg==",
"dev": true,
"dependencies": {
"@storybook/global": "^5.0.0"
@@ -7597,9 +5864,9 @@
}
},
"node_modules/@storybook/builder-vite/node_modules/@storybook/core-events": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.5.1.tgz",
- "integrity": "sha512-2eyaUhTfmEEqOEZVoCXVITCBn6N7QuZCG2UNxv0l//ED+7MuMiFhVw7kS7H3WOVk65R7gb8qbKFTNX8HFTgBHg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.0.tgz",
+ "integrity": "sha512-13d4YOcXPu0j5PDjqE2iy+mG68w2TLit408cF/ZbJ8d6V4QwuUiz6mUt34vTuTc3yB93q5moYXYo6a/AhrsPnQ==",
"dev": true,
"dependencies": {
"ts-dedent": "^2.0.0"
@@ -7610,17 +5877,17 @@
}
},
"node_modules/@storybook/builder-vite/node_modules/@storybook/preview-api": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.5.1.tgz",
- "integrity": "sha512-8xjUbuGmHLmw8tfTUCjXSvMM9r96JaexPFmHdwW6XLe71KKdWp8u96vRDRE5648cd+/of15OjaRtakRKqluA/A==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.0.tgz",
+ "integrity": "sha512-//8mYKM8gkSDkIRcG3kSozGEvPUurVhfjBXDtaF8Y8cOZLzwe8/AZy+mUYHShh9HWFUXx5QAj5oU0U0PflfMeg==",
"dev": true,
"dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
+ "@storybook/channels": "7.6.0",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/core-events": "7.6.0",
+ "@storybook/csf": "^0.1.2",
"@storybook/global": "^5.0.0",
- "@storybook/types": "7.5.1",
+ "@storybook/types": "7.6.0",
"@types/qs": "^6.9.5",
"dequal": "^2.0.2",
"lodash": "^4.17.21",
@@ -7636,12 +5903,12 @@
}
},
"node_modules/@storybook/builder-vite/node_modules/@storybook/types": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.5.1.tgz",
- "integrity": "sha512-ZcMSaqFNx1E+G00nRDUi8kKL7gxJVlnCvbKLNj3V85guy4DkIYAZr31yDqze07gDWbjvKoHIp3tKpgE+2i8upQ==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.0.tgz",
+ "integrity": "sha512-mrbL9qrRekaPCAV3d7jYpege5wOpsvBvNW6pmATG3UvNXpqz5BOWe6RWZJXbtkvjyt01b6HE9CbVUFJppplr6w==",
"dev": true,
"dependencies": {
- "@storybook/channels": "7.5.1",
+ "@storybook/channels": "7.6.0",
"@types/babel__core": "^7.0.0",
"@types/express": "^4.7.0",
"file-system-cache": "2.3.0"
@@ -7652,9 +5919,9 @@
}
},
"node_modules/@storybook/builder-vite/node_modules/fs-extra": {
- "version": "11.1.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
- "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
+ "version": "11.2.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
+ "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.2.0",
@@ -7701,23 +5968,23 @@
}
},
"node_modules/@storybook/cli": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.5.1.tgz",
- "integrity": "sha512-qKIJs8gqXTy0eSEbt0OW5nsJqiV/2+N1eWoiBiIxoZ+8b0ACXIAUcE/N6AsEDUqIq8AMK7lebqjEfIAt2Sp7Mg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.6.0.tgz",
+ "integrity": "sha512-bpkJDBrpdrwn4D0XlqpPHuKBplpTirAC6hAvYLE1yVXFYKcZjF/Xavd6uaSZ5IK8G8E6BWJ2cgNFHM/FtF510w==",
"dev": true,
"dependencies": {
- "@babel/core": "^7.22.9",
- "@babel/preset-env": "^7.22.9",
- "@babel/types": "^7.22.5",
+ "@babel/core": "^7.23.2",
+ "@babel/preset-env": "^7.23.2",
+ "@babel/types": "^7.23.0",
"@ndelangen/get-tarball": "^3.0.7",
- "@storybook/codemod": "7.5.1",
- "@storybook/core-common": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/core-server": "7.5.1",
- "@storybook/csf-tools": "7.5.1",
- "@storybook/node-logger": "7.5.1",
- "@storybook/telemetry": "7.5.1",
- "@storybook/types": "7.5.1",
+ "@storybook/codemod": "7.6.0",
+ "@storybook/core-common": "7.6.0",
+ "@storybook/core-events": "7.6.0",
+ "@storybook/core-server": "7.6.0",
+ "@storybook/csf-tools": "7.6.0",
+ "@storybook/node-logger": "7.6.0",
+ "@storybook/telemetry": "7.6.0",
+ "@storybook/types": "7.6.0",
"@types/semver": "^7.3.4",
"@yarnpkg/fslib": "2.10.3",
"@yarnpkg/libzip": "2.3.0",
@@ -7734,7 +6001,7 @@
"get-port": "^5.1.1",
"giget": "^1.0.0",
"globby": "^11.0.2",
- "jscodeshift": "^0.14.0",
+ "jscodeshift": "^0.15.1",
"leven": "^3.1.0",
"ora": "^5.4.1",
"prettier": "^2.8.0",
@@ -7758,13 +6025,13 @@
}
},
"node_modules/@storybook/cli/node_modules/@storybook/channels": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.5.1.tgz",
- "integrity": "sha512-7hTGHqvtdFTqRx8LuCznOpqPBYfUeMUt/0IIp7SFuZT585yMPxrYoaK//QmLEWnPb80B8HVTSQi7caUkJb32LA==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.0.tgz",
+ "integrity": "sha512-Zobr57AkPIE+cdQMrIC9FdgQZDJt8XmpCR+QCxzhrhz6zJLVbIDjf866vKmy3EGSzGrlajfAg/G1PK4v7FdAcw==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/core-events": "7.6.0",
"@storybook/global": "^5.0.0",
"qs": "^6.10.0",
"telejson": "^7.2.0",
@@ -7776,9 +6043,9 @@
}
},
"node_modules/@storybook/cli/node_modules/@storybook/client-logger": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.5.1.tgz",
- "integrity": "sha512-XxbLvg0aQRoBrzxYLcVYCbjDkGbkU8Rfb74XbV2CLiO2bIbFPmA1l1Nwbp+wkCGA+O6Z1zwzSl6wcKKqZ6XZCg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.0.tgz",
+ "integrity": "sha512-18XPPEWYHmmUav7i+PjZGwtImshNtay0xO2vh2DmQtzoCh2Lx/NVldqv9Li1eHCI88+4y7fyutmC5OIi0YASbg==",
"dev": true,
"dependencies": {
"@storybook/global": "^5.0.0"
@@ -7789,9 +6056,9 @@
}
},
"node_modules/@storybook/cli/node_modules/@storybook/core-events": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.5.1.tgz",
- "integrity": "sha512-2eyaUhTfmEEqOEZVoCXVITCBn6N7QuZCG2UNxv0l//ED+7MuMiFhVw7kS7H3WOVk65R7gb8qbKFTNX8HFTgBHg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.0.tgz",
+ "integrity": "sha512-13d4YOcXPu0j5PDjqE2iy+mG68w2TLit408cF/ZbJ8d6V4QwuUiz6mUt34vTuTc3yB93q5moYXYo6a/AhrsPnQ==",
"dev": true,
"dependencies": {
"ts-dedent": "^2.0.0"
@@ -7802,12 +6069,12 @@
}
},
"node_modules/@storybook/cli/node_modules/@storybook/types": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.5.1.tgz",
- "integrity": "sha512-ZcMSaqFNx1E+G00nRDUi8kKL7gxJVlnCvbKLNj3V85guy4DkIYAZr31yDqze07gDWbjvKoHIp3tKpgE+2i8upQ==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.0.tgz",
+ "integrity": "sha512-mrbL9qrRekaPCAV3d7jYpege5wOpsvBvNW6pmATG3UvNXpqz5BOWe6RWZJXbtkvjyt01b6HE9CbVUFJppplr6w==",
"dev": true,
"dependencies": {
- "@storybook/channels": "7.5.1",
+ "@storybook/channels": "7.6.0",
"@types/babel__core": "^7.0.0",
"@types/express": "^4.7.0",
"file-system-cache": "2.3.0"
@@ -7858,9 +6125,9 @@
}
},
"node_modules/@storybook/cli/node_modules/fs-extra": {
- "version": "11.1.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
- "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
+ "version": "11.2.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
+ "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.2.0",
@@ -7955,22 +6222,22 @@
}
},
"node_modules/@storybook/codemod": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.5.1.tgz",
- "integrity": "sha512-PqHGOz/CZnRG9pWgshezCacu524CrXOJrCOwMUP9OMpH0Jk/NhBkHaBZrB8wMjn5hekTj0UmRa/EN8wJm9CCUQ==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.6.0.tgz",
+ "integrity": "sha512-86/7AH5qg5uOE5e4ymnXjykfzA29eSFRQnTYJN0pbI/xlnFnPnh1mLQtinV03S2DtdcZKAm04UntfNgSFrSJNA==",
"dev": true,
"dependencies": {
- "@babel/core": "^7.22.9",
- "@babel/preset-env": "^7.22.9",
- "@babel/types": "^7.22.5",
- "@storybook/csf": "^0.1.0",
- "@storybook/csf-tools": "7.5.1",
- "@storybook/node-logger": "7.5.1",
- "@storybook/types": "7.5.1",
+ "@babel/core": "^7.23.2",
+ "@babel/preset-env": "^7.23.2",
+ "@babel/types": "^7.23.0",
+ "@storybook/csf": "^0.1.2",
+ "@storybook/csf-tools": "7.6.0",
+ "@storybook/node-logger": "7.6.0",
+ "@storybook/types": "7.6.0",
"@types/cross-spawn": "^6.0.2",
"cross-spawn": "^7.0.3",
"globby": "^11.0.2",
- "jscodeshift": "^0.14.0",
+ "jscodeshift": "^0.15.1",
"lodash": "^4.17.21",
"prettier": "^2.8.0",
"recast": "^0.23.1"
@@ -7981,13 +6248,13 @@
}
},
"node_modules/@storybook/codemod/node_modules/@storybook/channels": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.5.1.tgz",
- "integrity": "sha512-7hTGHqvtdFTqRx8LuCznOpqPBYfUeMUt/0IIp7SFuZT585yMPxrYoaK//QmLEWnPb80B8HVTSQi7caUkJb32LA==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.0.tgz",
+ "integrity": "sha512-Zobr57AkPIE+cdQMrIC9FdgQZDJt8XmpCR+QCxzhrhz6zJLVbIDjf866vKmy3EGSzGrlajfAg/G1PK4v7FdAcw==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/core-events": "7.6.0",
"@storybook/global": "^5.0.0",
"qs": "^6.10.0",
"telejson": "^7.2.0",
@@ -7999,9 +6266,9 @@
}
},
"node_modules/@storybook/codemod/node_modules/@storybook/client-logger": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.5.1.tgz",
- "integrity": "sha512-XxbLvg0aQRoBrzxYLcVYCbjDkGbkU8Rfb74XbV2CLiO2bIbFPmA1l1Nwbp+wkCGA+O6Z1zwzSl6wcKKqZ6XZCg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.0.tgz",
+ "integrity": "sha512-18XPPEWYHmmUav7i+PjZGwtImshNtay0xO2vh2DmQtzoCh2Lx/NVldqv9Li1eHCI88+4y7fyutmC5OIi0YASbg==",
"dev": true,
"dependencies": {
"@storybook/global": "^5.0.0"
@@ -8012,9 +6279,9 @@
}
},
"node_modules/@storybook/codemod/node_modules/@storybook/core-events": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.5.1.tgz",
- "integrity": "sha512-2eyaUhTfmEEqOEZVoCXVITCBn6N7QuZCG2UNxv0l//ED+7MuMiFhVw7kS7H3WOVk65R7gb8qbKFTNX8HFTgBHg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.0.tgz",
+ "integrity": "sha512-13d4YOcXPu0j5PDjqE2iy+mG68w2TLit408cF/ZbJ8d6V4QwuUiz6mUt34vTuTc3yB93q5moYXYo6a/AhrsPnQ==",
"dev": true,
"dependencies": {
"ts-dedent": "^2.0.0"
@@ -8025,12 +6292,12 @@
}
},
"node_modules/@storybook/codemod/node_modules/@storybook/types": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.5.1.tgz",
- "integrity": "sha512-ZcMSaqFNx1E+G00nRDUi8kKL7gxJVlnCvbKLNj3V85guy4DkIYAZr31yDqze07gDWbjvKoHIp3tKpgE+2i8upQ==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.0.tgz",
+ "integrity": "sha512-mrbL9qrRekaPCAV3d7jYpege5wOpsvBvNW6pmATG3UvNXpqz5BOWe6RWZJXbtkvjyt01b6HE9CbVUFJppplr6w==",
"dev": true,
"dependencies": {
- "@storybook/channels": "7.5.1",
+ "@storybook/channels": "7.6.0",
"@types/babel__core": "^7.0.0",
"@types/express": "^4.7.0",
"file-system-cache": "2.3.0"
@@ -8056,18 +6323,18 @@
}
},
"node_modules/@storybook/components": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.5.1.tgz",
- "integrity": "sha512-fdzzxGBV/Fj9pYwfYL3RZsVUHeBqlfLMBP/L6mPmjaZSwHFqkaRZZUajZc57lCtI+TOy2gY6WH3cPavEtqtgLw==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.6.0.tgz",
+ "integrity": "sha512-yV2krJOGYHldThfFShl5jC5EySUYVOWnhomwwT2b0J5e7odp04TCBycKmLxZhYmaFawnf5BNbDaIXvxcnY518A==",
"dev": true,
"dependencies": {
"@radix-ui/react-select": "^1.2.2",
"@radix-ui/react-toolbar": "^1.0.4",
- "@storybook/client-logger": "7.5.1",
- "@storybook/csf": "^0.1.0",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/csf": "^0.1.2",
"@storybook/global": "^5.0.0",
- "@storybook/theming": "7.5.1",
- "@storybook/types": "7.5.1",
+ "@storybook/theming": "7.6.0",
+ "@storybook/types": "7.6.0",
"memoizerific": "^1.11.3",
"use-resize-observer": "^9.1.0",
"util-deprecate": "^1.0.2"
@@ -8082,13 +6349,13 @@
}
},
"node_modules/@storybook/components/node_modules/@storybook/channels": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.5.1.tgz",
- "integrity": "sha512-7hTGHqvtdFTqRx8LuCznOpqPBYfUeMUt/0IIp7SFuZT585yMPxrYoaK//QmLEWnPb80B8HVTSQi7caUkJb32LA==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.0.tgz",
+ "integrity": "sha512-Zobr57AkPIE+cdQMrIC9FdgQZDJt8XmpCR+QCxzhrhz6zJLVbIDjf866vKmy3EGSzGrlajfAg/G1PK4v7FdAcw==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/core-events": "7.6.0",
"@storybook/global": "^5.0.0",
"qs": "^6.10.0",
"telejson": "^7.2.0",
@@ -8100,9 +6367,9 @@
}
},
"node_modules/@storybook/components/node_modules/@storybook/client-logger": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.5.1.tgz",
- "integrity": "sha512-XxbLvg0aQRoBrzxYLcVYCbjDkGbkU8Rfb74XbV2CLiO2bIbFPmA1l1Nwbp+wkCGA+O6Z1zwzSl6wcKKqZ6XZCg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.0.tgz",
+ "integrity": "sha512-18XPPEWYHmmUav7i+PjZGwtImshNtay0xO2vh2DmQtzoCh2Lx/NVldqv9Li1eHCI88+4y7fyutmC5OIi0YASbg==",
"dev": true,
"dependencies": {
"@storybook/global": "^5.0.0"
@@ -8113,9 +6380,9 @@
}
},
"node_modules/@storybook/components/node_modules/@storybook/core-events": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.5.1.tgz",
- "integrity": "sha512-2eyaUhTfmEEqOEZVoCXVITCBn6N7QuZCG2UNxv0l//ED+7MuMiFhVw7kS7H3WOVk65R7gb8qbKFTNX8HFTgBHg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.0.tgz",
+ "integrity": "sha512-13d4YOcXPu0j5PDjqE2iy+mG68w2TLit408cF/ZbJ8d6V4QwuUiz6mUt34vTuTc3yB93q5moYXYo6a/AhrsPnQ==",
"dev": true,
"dependencies": {
"ts-dedent": "^2.0.0"
@@ -8126,13 +6393,13 @@
}
},
"node_modules/@storybook/components/node_modules/@storybook/theming": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.5.1.tgz",
- "integrity": "sha512-ETLAOn10hI4Mkmjsr0HGcM6HbzaURrrPBYmfXOrdbrzEVN+AHW4FlvP9d8fYyP1gdjPE1F39XvF0jYgt1zXiHQ==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.6.0.tgz",
+ "integrity": "sha512-F5PTGkaRQ0TWIWRrZgQ2dmVxVcjX77vDc6QfUYxvOfez9/zrduKRHP5lGqHoqJlugJc8i2zpRNEFbL99frdUKg==",
"dev": true,
"dependencies": {
"@emotion/use-insertion-effect-with-fallbacks": "^1.0.0",
- "@storybook/client-logger": "7.5.1",
+ "@storybook/client-logger": "7.6.0",
"@storybook/global": "^5.0.0",
"memoizerific": "^1.11.3"
},
@@ -8146,12 +6413,12 @@
}
},
"node_modules/@storybook/components/node_modules/@storybook/types": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.5.1.tgz",
- "integrity": "sha512-ZcMSaqFNx1E+G00nRDUi8kKL7gxJVlnCvbKLNj3V85guy4DkIYAZr31yDqze07gDWbjvKoHIp3tKpgE+2i8upQ==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.0.tgz",
+ "integrity": "sha512-mrbL9qrRekaPCAV3d7jYpege5wOpsvBvNW6pmATG3UvNXpqz5BOWe6RWZJXbtkvjyt01b6HE9CbVUFJppplr6w==",
"dev": true,
"dependencies": {
- "@storybook/channels": "7.5.1",
+ "@storybook/channels": "7.6.0",
"@types/babel__core": "^7.0.0",
"@types/express": "^4.7.0",
"file-system-cache": "2.3.0"
@@ -8162,13 +6429,13 @@
}
},
"node_modules/@storybook/core-client": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.5.1.tgz",
- "integrity": "sha512-K651UnNKkW8U078CH5rcUqf0siGcfEhwya2yQN5RBb/H78HSLBLdYgzKqxaKtmz+S8DFyWhrgbXZLdBjavozJg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.6.0.tgz",
+ "integrity": "sha512-zc2v1WoyN64okcVWfZb1/fWasaZX3mdFVigqavUOIeXsxWFcywU5bcr0bWCCwwk19xKaNzJ2FvWVqXrkOUq22w==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/preview-api": "7.5.1"
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/preview-api": "7.6.0"
},
"funding": {
"type": "opencollective",
@@ -8176,13 +6443,13 @@
}
},
"node_modules/@storybook/core-client/node_modules/@storybook/channels": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.5.1.tgz",
- "integrity": "sha512-7hTGHqvtdFTqRx8LuCznOpqPBYfUeMUt/0IIp7SFuZT585yMPxrYoaK//QmLEWnPb80B8HVTSQi7caUkJb32LA==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.0.tgz",
+ "integrity": "sha512-Zobr57AkPIE+cdQMrIC9FdgQZDJt8XmpCR+QCxzhrhz6zJLVbIDjf866vKmy3EGSzGrlajfAg/G1PK4v7FdAcw==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/core-events": "7.6.0",
"@storybook/global": "^5.0.0",
"qs": "^6.10.0",
"telejson": "^7.2.0",
@@ -8194,9 +6461,9 @@
}
},
"node_modules/@storybook/core-client/node_modules/@storybook/client-logger": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.5.1.tgz",
- "integrity": "sha512-XxbLvg0aQRoBrzxYLcVYCbjDkGbkU8Rfb74XbV2CLiO2bIbFPmA1l1Nwbp+wkCGA+O6Z1zwzSl6wcKKqZ6XZCg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.0.tgz",
+ "integrity": "sha512-18XPPEWYHmmUav7i+PjZGwtImshNtay0xO2vh2DmQtzoCh2Lx/NVldqv9Li1eHCI88+4y7fyutmC5OIi0YASbg==",
"dev": true,
"dependencies": {
"@storybook/global": "^5.0.0"
@@ -8207,9 +6474,9 @@
}
},
"node_modules/@storybook/core-client/node_modules/@storybook/core-events": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.5.1.tgz",
- "integrity": "sha512-2eyaUhTfmEEqOEZVoCXVITCBn6N7QuZCG2UNxv0l//ED+7MuMiFhVw7kS7H3WOVk65R7gb8qbKFTNX8HFTgBHg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.0.tgz",
+ "integrity": "sha512-13d4YOcXPu0j5PDjqE2iy+mG68w2TLit408cF/ZbJ8d6V4QwuUiz6mUt34vTuTc3yB93q5moYXYo6a/AhrsPnQ==",
"dev": true,
"dependencies": {
"ts-dedent": "^2.0.0"
@@ -8220,17 +6487,17 @@
}
},
"node_modules/@storybook/core-client/node_modules/@storybook/preview-api": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.5.1.tgz",
- "integrity": "sha512-8xjUbuGmHLmw8tfTUCjXSvMM9r96JaexPFmHdwW6XLe71KKdWp8u96vRDRE5648cd+/of15OjaRtakRKqluA/A==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.0.tgz",
+ "integrity": "sha512-//8mYKM8gkSDkIRcG3kSozGEvPUurVhfjBXDtaF8Y8cOZLzwe8/AZy+mUYHShh9HWFUXx5QAj5oU0U0PflfMeg==",
"dev": true,
"dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
+ "@storybook/channels": "7.6.0",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/core-events": "7.6.0",
+ "@storybook/csf": "^0.1.2",
"@storybook/global": "^5.0.0",
- "@storybook/types": "7.5.1",
+ "@storybook/types": "7.6.0",
"@types/qs": "^6.9.5",
"dequal": "^2.0.2",
"lodash": "^4.17.21",
@@ -8246,12 +6513,12 @@
}
},
"node_modules/@storybook/core-client/node_modules/@storybook/types": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.5.1.tgz",
- "integrity": "sha512-ZcMSaqFNx1E+G00nRDUi8kKL7gxJVlnCvbKLNj3V85guy4DkIYAZr31yDqze07gDWbjvKoHIp3tKpgE+2i8upQ==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.0.tgz",
+ "integrity": "sha512-mrbL9qrRekaPCAV3d7jYpege5wOpsvBvNW6pmATG3UvNXpqz5BOWe6RWZJXbtkvjyt01b6HE9CbVUFJppplr6w==",
"dev": true,
"dependencies": {
- "@storybook/channels": "7.5.1",
+ "@storybook/channels": "7.6.0",
"@types/babel__core": "^7.0.0",
"@types/express": "^4.7.0",
"file-system-cache": "2.3.0"
@@ -8262,14 +6529,14 @@
}
},
"node_modules/@storybook/core-common": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.5.1.tgz",
- "integrity": "sha512-/rQ0/xvxFHSGCgIkK74HrgDMnzfYtDYTCoSod/qCTojfs9aciX+JYgvo5ChPnI/LEKWwxRTkrE7pl2u5+C4XGA==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.6.0.tgz",
+ "integrity": "sha512-Le11+Pcbi2D+i63utkhjHEAUIVO65CNiZiDFa/ZJI5aSajy209ece2eX0Z12wPecfYu5TXlqhqaeXAVBABAUow==",
"dev": true,
"dependencies": {
- "@storybook/core-events": "7.5.1",
- "@storybook/node-logger": "7.5.1",
- "@storybook/types": "7.5.1",
+ "@storybook/core-events": "7.6.0",
+ "@storybook/node-logger": "7.6.0",
+ "@storybook/types": "7.6.0",
"@types/find-cache-dir": "^3.2.1",
"@types/node": "^18.0.0",
"@types/node-fetch": "^2.6.4",
@@ -8297,13 +6564,13 @@
}
},
"node_modules/@storybook/core-common/node_modules/@storybook/channels": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.5.1.tgz",
- "integrity": "sha512-7hTGHqvtdFTqRx8LuCznOpqPBYfUeMUt/0IIp7SFuZT585yMPxrYoaK//QmLEWnPb80B8HVTSQi7caUkJb32LA==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.0.tgz",
+ "integrity": "sha512-Zobr57AkPIE+cdQMrIC9FdgQZDJt8XmpCR+QCxzhrhz6zJLVbIDjf866vKmy3EGSzGrlajfAg/G1PK4v7FdAcw==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/core-events": "7.6.0",
"@storybook/global": "^5.0.0",
"qs": "^6.10.0",
"telejson": "^7.2.0",
@@ -8315,9 +6582,9 @@
}
},
"node_modules/@storybook/core-common/node_modules/@storybook/client-logger": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.5.1.tgz",
- "integrity": "sha512-XxbLvg0aQRoBrzxYLcVYCbjDkGbkU8Rfb74XbV2CLiO2bIbFPmA1l1Nwbp+wkCGA+O6Z1zwzSl6wcKKqZ6XZCg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.0.tgz",
+ "integrity": "sha512-18XPPEWYHmmUav7i+PjZGwtImshNtay0xO2vh2DmQtzoCh2Lx/NVldqv9Li1eHCI88+4y7fyutmC5OIi0YASbg==",
"dev": true,
"dependencies": {
"@storybook/global": "^5.0.0"
@@ -8328,9 +6595,9 @@
}
},
"node_modules/@storybook/core-common/node_modules/@storybook/core-events": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.5.1.tgz",
- "integrity": "sha512-2eyaUhTfmEEqOEZVoCXVITCBn6N7QuZCG2UNxv0l//ED+7MuMiFhVw7kS7H3WOVk65R7gb8qbKFTNX8HFTgBHg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.0.tgz",
+ "integrity": "sha512-13d4YOcXPu0j5PDjqE2iy+mG68w2TLit408cF/ZbJ8d6V4QwuUiz6mUt34vTuTc3yB93q5moYXYo6a/AhrsPnQ==",
"dev": true,
"dependencies": {
"ts-dedent": "^2.0.0"
@@ -8341,12 +6608,12 @@
}
},
"node_modules/@storybook/core-common/node_modules/@storybook/types": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.5.1.tgz",
- "integrity": "sha512-ZcMSaqFNx1E+G00nRDUi8kKL7gxJVlnCvbKLNj3V85guy4DkIYAZr31yDqze07gDWbjvKoHIp3tKpgE+2i8upQ==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.0.tgz",
+ "integrity": "sha512-mrbL9qrRekaPCAV3d7jYpege5wOpsvBvNW6pmATG3UvNXpqz5BOWe6RWZJXbtkvjyt01b6HE9CbVUFJppplr6w==",
"dev": true,
"dependencies": {
- "@storybook/channels": "7.5.1",
+ "@storybook/channels": "7.6.0",
"@types/babel__core": "^7.0.0",
"@types/express": "^4.7.0",
"file-system-cache": "2.3.0"
@@ -8357,10 +6624,13 @@
}
},
"node_modules/@storybook/core-common/node_modules/@types/node": {
- "version": "18.18.6",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.6.tgz",
- "integrity": "sha512-wf3Vz+jCmOQ2HV1YUJuCWdL64adYxumkrxtc+H1VUQlnQI04+5HtH+qZCOE21lBE7gIrt+CwX2Wv8Acrw5Ak6w==",
- "dev": true
+ "version": "18.18.13",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.13.tgz",
+ "integrity": "sha512-vXYZGRrSCreZmq1rEjMRLXJhiy8MrIeVasx+PCVlP414N7CJLHnMf+juVvjdprHyH+XRy3zKZLHeNueOpJCn0g==",
+ "dev": true,
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
},
"node_modules/@storybook/core-common/node_modules/ansi-styles": {
"version": "4.3.0",
@@ -8403,9 +6673,9 @@
}
},
"node_modules/@storybook/core-common/node_modules/fs-extra": {
- "version": "11.1.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
- "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
+ "version": "11.2.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
+ "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.2.0",
@@ -8489,26 +6759,26 @@
}
},
"node_modules/@storybook/core-server": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.5.1.tgz",
- "integrity": "sha512-DD4BXCH91aZJoFuu0cQwG1ZUmE59kG5pazuE3S89zH1GwKS1jWyeAv4EwEfvynT5Ah1ctd8QdCZCSXVzjq0qcw==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.6.0.tgz",
+ "integrity": "sha512-9DmUDcMKbeZDaTENjRoV3cFvqLOKq64RNIh/eDffeRyzaj8PvY4E7MOd7XXx6pTSO7CmSpgcaZ4OYbmvu2xI/A==",
"dev": true,
"dependencies": {
"@aw-web-design/x-default-browser": "1.4.126",
"@discoveryjs/json-ext": "^0.5.3",
- "@storybook/builder-manager": "7.5.1",
- "@storybook/channels": "7.5.1",
- "@storybook/core-common": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
- "@storybook/csf-tools": "7.5.1",
+ "@storybook/builder-manager": "7.6.0",
+ "@storybook/channels": "7.6.0",
+ "@storybook/core-common": "7.6.0",
+ "@storybook/core-events": "7.6.0",
+ "@storybook/csf": "^0.1.2",
+ "@storybook/csf-tools": "7.6.0",
"@storybook/docs-mdx": "^0.1.0",
"@storybook/global": "^5.0.0",
- "@storybook/manager": "7.5.1",
- "@storybook/node-logger": "7.5.1",
- "@storybook/preview-api": "7.5.1",
- "@storybook/telemetry": "7.5.1",
- "@storybook/types": "7.5.1",
+ "@storybook/manager": "7.6.0",
+ "@storybook/node-logger": "7.6.0",
+ "@storybook/preview-api": "7.6.0",
+ "@storybook/telemetry": "7.6.0",
+ "@storybook/types": "7.6.0",
"@types/detect-port": "^1.3.0",
"@types/node": "^18.0.0",
"@types/pretty-hrtime": "^1.0.0",
@@ -8542,13 +6812,13 @@
}
},
"node_modules/@storybook/core-server/node_modules/@storybook/channels": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.5.1.tgz",
- "integrity": "sha512-7hTGHqvtdFTqRx8LuCznOpqPBYfUeMUt/0IIp7SFuZT585yMPxrYoaK//QmLEWnPb80B8HVTSQi7caUkJb32LA==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.0.tgz",
+ "integrity": "sha512-Zobr57AkPIE+cdQMrIC9FdgQZDJt8XmpCR+QCxzhrhz6zJLVbIDjf866vKmy3EGSzGrlajfAg/G1PK4v7FdAcw==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/core-events": "7.6.0",
"@storybook/global": "^5.0.0",
"qs": "^6.10.0",
"telejson": "^7.2.0",
@@ -8560,9 +6830,9 @@
}
},
"node_modules/@storybook/core-server/node_modules/@storybook/client-logger": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.5.1.tgz",
- "integrity": "sha512-XxbLvg0aQRoBrzxYLcVYCbjDkGbkU8Rfb74XbV2CLiO2bIbFPmA1l1Nwbp+wkCGA+O6Z1zwzSl6wcKKqZ6XZCg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.0.tgz",
+ "integrity": "sha512-18XPPEWYHmmUav7i+PjZGwtImshNtay0xO2vh2DmQtzoCh2Lx/NVldqv9Li1eHCI88+4y7fyutmC5OIi0YASbg==",
"dev": true,
"dependencies": {
"@storybook/global": "^5.0.0"
@@ -8573,9 +6843,9 @@
}
},
"node_modules/@storybook/core-server/node_modules/@storybook/core-events": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.5.1.tgz",
- "integrity": "sha512-2eyaUhTfmEEqOEZVoCXVITCBn6N7QuZCG2UNxv0l//ED+7MuMiFhVw7kS7H3WOVk65R7gb8qbKFTNX8HFTgBHg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.0.tgz",
+ "integrity": "sha512-13d4YOcXPu0j5PDjqE2iy+mG68w2TLit408cF/ZbJ8d6V4QwuUiz6mUt34vTuTc3yB93q5moYXYo6a/AhrsPnQ==",
"dev": true,
"dependencies": {
"ts-dedent": "^2.0.0"
@@ -8586,17 +6856,17 @@
}
},
"node_modules/@storybook/core-server/node_modules/@storybook/preview-api": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.5.1.tgz",
- "integrity": "sha512-8xjUbuGmHLmw8tfTUCjXSvMM9r96JaexPFmHdwW6XLe71KKdWp8u96vRDRE5648cd+/of15OjaRtakRKqluA/A==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.0.tgz",
+ "integrity": "sha512-//8mYKM8gkSDkIRcG3kSozGEvPUurVhfjBXDtaF8Y8cOZLzwe8/AZy+mUYHShh9HWFUXx5QAj5oU0U0PflfMeg==",
"dev": true,
"dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
+ "@storybook/channels": "7.6.0",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/core-events": "7.6.0",
+ "@storybook/csf": "^0.1.2",
"@storybook/global": "^5.0.0",
- "@storybook/types": "7.5.1",
+ "@storybook/types": "7.6.0",
"@types/qs": "^6.9.5",
"dequal": "^2.0.2",
"lodash": "^4.17.21",
@@ -8612,12 +6882,12 @@
}
},
"node_modules/@storybook/core-server/node_modules/@storybook/types": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.5.1.tgz",
- "integrity": "sha512-ZcMSaqFNx1E+G00nRDUi8kKL7gxJVlnCvbKLNj3V85guy4DkIYAZr31yDqze07gDWbjvKoHIp3tKpgE+2i8upQ==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.0.tgz",
+ "integrity": "sha512-mrbL9qrRekaPCAV3d7jYpege5wOpsvBvNW6pmATG3UvNXpqz5BOWe6RWZJXbtkvjyt01b6HE9CbVUFJppplr6w==",
"dev": true,
"dependencies": {
- "@storybook/channels": "7.5.1",
+ "@storybook/channels": "7.6.0",
"@types/babel__core": "^7.0.0",
"@types/express": "^4.7.0",
"file-system-cache": "2.3.0"
@@ -8628,10 +6898,13 @@
}
},
"node_modules/@storybook/core-server/node_modules/@types/node": {
- "version": "18.18.6",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.6.tgz",
- "integrity": "sha512-wf3Vz+jCmOQ2HV1YUJuCWdL64adYxumkrxtc+H1VUQlnQI04+5HtH+qZCOE21lBE7gIrt+CwX2Wv8Acrw5Ak6w==",
- "dev": true
+ "version": "18.18.13",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.13.tgz",
+ "integrity": "sha512-vXYZGRrSCreZmq1rEjMRLXJhiy8MrIeVasx+PCVlP414N7CJLHnMf+juVvjdprHyH+XRy3zKZLHeNueOpJCn0g==",
+ "dev": true,
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
},
"node_modules/@storybook/core-server/node_modules/ansi-styles": {
"version": "4.3.0",
@@ -8665,9 +6938,9 @@
}
},
"node_modules/@storybook/core-server/node_modules/fs-extra": {
- "version": "11.1.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
- "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
+ "version": "11.2.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
+ "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.2.0",
@@ -8733,21 +7006,21 @@
"dev": true
},
"node_modules/@storybook/csf": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.1.tgz",
- "integrity": "sha512-4hE3AlNVxR60Wc5KSC68ASYzUobjPqtSKyhV6G+ge0FIXU55N5nTY7dXGRZHQGDBPq+XqchMkIdlkHPRs8nTHg==",
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.2.tgz",
+ "integrity": "sha512-ePrvE/pS1vsKR9Xr+o+YwdqNgHUyXvg+1Xjx0h9LrVx7Zq4zNe06pd63F5EvzTbCbJsHj7GHr9tkiaqm7U8WRA==",
"dev": true,
"dependencies": {
"type-fest": "^2.19.0"
}
},
"node_modules/@storybook/csf-plugin": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.5.1.tgz",
- "integrity": "sha512-jhV2aCZhSIXUiQDcHtuCg3dyYMzjYHTwLb4cJtkNw4sXqQoTGydTSWYwWigcHFfKGoyQp82rSgE1hE4YYx6iew==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.6.0.tgz",
+ "integrity": "sha512-d/rcRcNad+tLGXV3GQiQdFJOBS4fj90fqa4joJIekgVh+LfRBS+KYuiPeukBxfnmz2AbhF9ezwXQMFIYYyHmzg==",
"dev": true,
"dependencies": {
- "@storybook/csf-tools": "7.5.1",
+ "@storybook/csf-tools": "7.6.0",
"unplugin": "^1.3.1"
},
"funding": {
@@ -8756,17 +7029,17 @@
}
},
"node_modules/@storybook/csf-tools": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.5.1.tgz",
- "integrity": "sha512-YChGbT1/odLS4RLb2HtK7ixM7mH5s7G5nOsWGKXalbza4SFKZIU2UzllEUsA+X8YfxMHnCD5TC3xLfK0ByxmzQ==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.6.0.tgz",
+ "integrity": "sha512-JhGJeLgnE96JfBBXM1DIPVR/JLQH2OTGH+yZ3ohiTPGWjf+aShB3jKUxTkBl7Fjq0xu57tnky7kNUO690vYypg==",
"dev": true,
"dependencies": {
- "@babel/generator": "^7.22.9",
- "@babel/parser": "^7.22.7",
- "@babel/traverse": "^7.22.8",
- "@babel/types": "^7.22.5",
- "@storybook/csf": "^0.1.0",
- "@storybook/types": "7.5.1",
+ "@babel/generator": "^7.23.0",
+ "@babel/parser": "^7.23.0",
+ "@babel/traverse": "^7.23.2",
+ "@babel/types": "^7.23.0",
+ "@storybook/csf": "^0.1.2",
+ "@storybook/types": "7.6.0",
"fs-extra": "^11.1.0",
"recast": "^0.23.1",
"ts-dedent": "^2.0.0"
@@ -8777,13 +7050,13 @@
}
},
"node_modules/@storybook/csf-tools/node_modules/@storybook/channels": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.5.1.tgz",
- "integrity": "sha512-7hTGHqvtdFTqRx8LuCznOpqPBYfUeMUt/0IIp7SFuZT585yMPxrYoaK//QmLEWnPb80B8HVTSQi7caUkJb32LA==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.0.tgz",
+ "integrity": "sha512-Zobr57AkPIE+cdQMrIC9FdgQZDJt8XmpCR+QCxzhrhz6zJLVbIDjf866vKmy3EGSzGrlajfAg/G1PK4v7FdAcw==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/core-events": "7.6.0",
"@storybook/global": "^5.0.0",
"qs": "^6.10.0",
"telejson": "^7.2.0",
@@ -8795,9 +7068,9 @@
}
},
"node_modules/@storybook/csf-tools/node_modules/@storybook/client-logger": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.5.1.tgz",
- "integrity": "sha512-XxbLvg0aQRoBrzxYLcVYCbjDkGbkU8Rfb74XbV2CLiO2bIbFPmA1l1Nwbp+wkCGA+O6Z1zwzSl6wcKKqZ6XZCg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.0.tgz",
+ "integrity": "sha512-18XPPEWYHmmUav7i+PjZGwtImshNtay0xO2vh2DmQtzoCh2Lx/NVldqv9Li1eHCI88+4y7fyutmC5OIi0YASbg==",
"dev": true,
"dependencies": {
"@storybook/global": "^5.0.0"
@@ -8808,9 +7081,9 @@
}
},
"node_modules/@storybook/csf-tools/node_modules/@storybook/core-events": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.5.1.tgz",
- "integrity": "sha512-2eyaUhTfmEEqOEZVoCXVITCBn6N7QuZCG2UNxv0l//ED+7MuMiFhVw7kS7H3WOVk65R7gb8qbKFTNX8HFTgBHg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.0.tgz",
+ "integrity": "sha512-13d4YOcXPu0j5PDjqE2iy+mG68w2TLit408cF/ZbJ8d6V4QwuUiz6mUt34vTuTc3yB93q5moYXYo6a/AhrsPnQ==",
"dev": true,
"dependencies": {
"ts-dedent": "^2.0.0"
@@ -8821,12 +7094,12 @@
}
},
"node_modules/@storybook/csf-tools/node_modules/@storybook/types": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.5.1.tgz",
- "integrity": "sha512-ZcMSaqFNx1E+G00nRDUi8kKL7gxJVlnCvbKLNj3V85guy4DkIYAZr31yDqze07gDWbjvKoHIp3tKpgE+2i8upQ==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.0.tgz",
+ "integrity": "sha512-mrbL9qrRekaPCAV3d7jYpege5wOpsvBvNW6pmATG3UvNXpqz5BOWe6RWZJXbtkvjyt01b6HE9CbVUFJppplr6w==",
"dev": true,
"dependencies": {
- "@storybook/channels": "7.5.1",
+ "@storybook/channels": "7.6.0",
"@types/babel__core": "^7.0.0",
"@types/express": "^4.7.0",
"file-system-cache": "2.3.0"
@@ -8837,9 +7110,9 @@
}
},
"node_modules/@storybook/csf-tools/node_modules/fs-extra": {
- "version": "11.1.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
- "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
+ "version": "11.2.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
+ "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.2.0",
@@ -8857,15 +7130,16 @@
"dev": true
},
"node_modules/@storybook/docs-tools": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.5.1.tgz",
- "integrity": "sha512-tDtQGeKU5Kc2XoqZ5vpeGQrOkRg2UoDiSRS6cLy+M/sMB03Annq0ZngnJXaMiv0DLi2zpWSgWqPgYA3TJTZHBw==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.6.0.tgz",
+ "integrity": "sha512-06M/Vo3AwOdr4VP1LbvnSih8eWT5zO6Mkm3ZZikMQVn+eDr5YJ9PzUeI2/SAymgCs4jH9qRf4lmKTPMl4bjGsQ==",
"dev": true,
"dependencies": {
- "@storybook/core-common": "7.5.1",
- "@storybook/preview-api": "7.5.1",
- "@storybook/types": "7.5.1",
+ "@storybook/core-common": "7.6.0",
+ "@storybook/preview-api": "7.6.0",
+ "@storybook/types": "7.6.0",
"@types/doctrine": "^0.0.3",
+ "assert": "^2.1.0",
"doctrine": "^3.0.0",
"lodash": "^4.17.21"
},
@@ -8875,13 +7149,13 @@
}
},
"node_modules/@storybook/docs-tools/node_modules/@storybook/channels": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.5.1.tgz",
- "integrity": "sha512-7hTGHqvtdFTqRx8LuCznOpqPBYfUeMUt/0IIp7SFuZT585yMPxrYoaK//QmLEWnPb80B8HVTSQi7caUkJb32LA==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.0.tgz",
+ "integrity": "sha512-Zobr57AkPIE+cdQMrIC9FdgQZDJt8XmpCR+QCxzhrhz6zJLVbIDjf866vKmy3EGSzGrlajfAg/G1PK4v7FdAcw==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/core-events": "7.6.0",
"@storybook/global": "^5.0.0",
"qs": "^6.10.0",
"telejson": "^7.2.0",
@@ -8893,9 +7167,9 @@
}
},
"node_modules/@storybook/docs-tools/node_modules/@storybook/client-logger": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.5.1.tgz",
- "integrity": "sha512-XxbLvg0aQRoBrzxYLcVYCbjDkGbkU8Rfb74XbV2CLiO2bIbFPmA1l1Nwbp+wkCGA+O6Z1zwzSl6wcKKqZ6XZCg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.0.tgz",
+ "integrity": "sha512-18XPPEWYHmmUav7i+PjZGwtImshNtay0xO2vh2DmQtzoCh2Lx/NVldqv9Li1eHCI88+4y7fyutmC5OIi0YASbg==",
"dev": true,
"dependencies": {
"@storybook/global": "^5.0.0"
@@ -8906,9 +7180,9 @@
}
},
"node_modules/@storybook/docs-tools/node_modules/@storybook/core-events": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.5.1.tgz",
- "integrity": "sha512-2eyaUhTfmEEqOEZVoCXVITCBn6N7QuZCG2UNxv0l//ED+7MuMiFhVw7kS7H3WOVk65R7gb8qbKFTNX8HFTgBHg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.0.tgz",
+ "integrity": "sha512-13d4YOcXPu0j5PDjqE2iy+mG68w2TLit408cF/ZbJ8d6V4QwuUiz6mUt34vTuTc3yB93q5moYXYo6a/AhrsPnQ==",
"dev": true,
"dependencies": {
"ts-dedent": "^2.0.0"
@@ -8919,17 +7193,17 @@
}
},
"node_modules/@storybook/docs-tools/node_modules/@storybook/preview-api": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.5.1.tgz",
- "integrity": "sha512-8xjUbuGmHLmw8tfTUCjXSvMM9r96JaexPFmHdwW6XLe71KKdWp8u96vRDRE5648cd+/of15OjaRtakRKqluA/A==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.0.tgz",
+ "integrity": "sha512-//8mYKM8gkSDkIRcG3kSozGEvPUurVhfjBXDtaF8Y8cOZLzwe8/AZy+mUYHShh9HWFUXx5QAj5oU0U0PflfMeg==",
"dev": true,
"dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
+ "@storybook/channels": "7.6.0",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/core-events": "7.6.0",
+ "@storybook/csf": "^0.1.2",
"@storybook/global": "^5.0.0",
- "@storybook/types": "7.5.1",
+ "@storybook/types": "7.6.0",
"@types/qs": "^6.9.5",
"dequal": "^2.0.2",
"lodash": "^4.17.21",
@@ -8945,12 +7219,12 @@
}
},
"node_modules/@storybook/docs-tools/node_modules/@storybook/types": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.5.1.tgz",
- "integrity": "sha512-ZcMSaqFNx1E+G00nRDUi8kKL7gxJVlnCvbKLNj3V85guy4DkIYAZr31yDqze07gDWbjvKoHIp3tKpgE+2i8upQ==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.0.tgz",
+ "integrity": "sha512-mrbL9qrRekaPCAV3d7jYpege5wOpsvBvNW6pmATG3UvNXpqz5BOWe6RWZJXbtkvjyt01b6HE9CbVUFJppplr6w==",
"dev": true,
"dependencies": {
- "@storybook/channels": "7.5.1",
+ "@storybook/channels": "7.6.0",
"@types/babel__core": "^7.0.0",
"@types/express": "^4.7.0",
"file-system-cache": "2.3.0"
@@ -8967,9 +7241,9 @@
"dev": true
},
"node_modules/@storybook/manager": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.5.1.tgz",
- "integrity": "sha512-Jo83sj7KvsZ78vvqjH72ErmQ31Frx6GBLbpeYXZtbAXWl0/LHsxAEVz0Mke+DixzWDyP0/cn+Nw8QUfA+Oz1fg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.6.0.tgz",
+ "integrity": "sha512-HJ1DCCf3GT+irAFCZg9WsPcGwSZlDyQiJHsaqxFVzuoPnz2lx10eHkXTnKa3t8x6hJeWK9BFHVyOXEFUV78ryg==",
"dev": true,
"funding": {
"type": "opencollective",
@@ -9051,9 +7325,9 @@
"dev": true
},
"node_modules/@storybook/node-logger": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.5.1.tgz",
- "integrity": "sha512-xRMdL5YPe8C9sgJ1R0QD3YbiLjDGrfQk91+GplRD8N9FVCT5dki55Bv5Kp0FpemLYYg6uxAZL5nHmsZHKDKQoA==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.6.0.tgz",
+ "integrity": "sha512-Z+wVmjnTMhMG2ydL4T8F+gf/awvuAv3IAzH6T4D5UgjmdABqxVqWNAAF+Mgp48TUAGxiJCowzI6sGDg3iNJx2w==",
"dev": true,
"funding": {
"type": "opencollective",
@@ -9061,9 +7335,9 @@
}
},
"node_modules/@storybook/postinstall": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.5.1.tgz",
- "integrity": "sha512-+LFUe2nNbmmLPKNt34RXSSC1r40yGGOoP/qlaPFwNOgQN2AZUrfqk6ZYnw6LjmcuHpQInZ4y4WDgbzg6QQL3+w==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.6.0.tgz",
+ "integrity": "sha512-saxxLh6dXpNYA1WQ5KnOfMsJ1U+WtxBLSgYv8DWYujbFirmafgzPKslxgCjP6OlV3erQgnoO/xBUK4YVTfsuag==",
"dev": true,
"funding": {
"type": "opencollective",
@@ -9071,9 +7345,9 @@
}
},
"node_modules/@storybook/preview": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.5.1.tgz",
- "integrity": "sha512-nfZC103z9Cy27FrJKUr2IjDuVt8Mvn1Z5gZ0TtJihoK7sfLTv29nd/XU9zzrb/epM3o8UEzc63xZZsMaToDbAw==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.6.0.tgz",
+ "integrity": "sha512-/zHTMl3aj1S3xxnffwaGzhMi1KySCKeln3xX15RBme014ZQ8cNYwnSDRAsiW/n3viDFFyZ6ybrtmw2HnpNBUhw==",
"dev": true,
"funding": {
"type": "opencollective",
@@ -9167,9 +7441,9 @@
}
},
"node_modules/@storybook/react-dom-shim": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.5.1.tgz",
- "integrity": "sha512-bzTIfLm91O9h3rPYJLtRbmsPARerY3z7MoyvadGp8TikvIvf+WyT/vHujw+20SxnqiZVq5Jv65FFlxc46GGB1Q==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.6.0.tgz",
+ "integrity": "sha512-DBsQ9OBwSjUEI2bvHcGqs+ucVy3UE8CjoWpD93kRcJZY913DCoNDrMSBWozhBHlcO65LhuBjrNm7oKdmwAKJsg==",
"dev": true,
"funding": {
"type": "opencollective",
@@ -9201,14 +7475,14 @@
}
},
"node_modules/@storybook/telemetry": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.5.1.tgz",
- "integrity": "sha512-z9PGouNqvZ2F7vD79qDF4PN7iW3kE3MO7YX0iKTmzgLi4ImKuXIJRF04GRH8r+WYghnbomAyA4o6z9YJMdNuVw==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.6.0.tgz",
+ "integrity": "sha512-xUYiWiXicYX6oneDqHx5bq3zViTuckLoXi1QTzKN+WPO98vt4NBr532XeVNJG+x+UE8ERSKazT6CHkZ9XeqyMA==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-common": "7.5.1",
- "@storybook/csf-tools": "7.5.1",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/core-common": "7.6.0",
+ "@storybook/csf-tools": "7.6.0",
"chalk": "^4.1.0",
"detect-package-manager": "^2.0.1",
"fetch-retry": "^5.0.2",
@@ -9221,9 +7495,9 @@
}
},
"node_modules/@storybook/telemetry/node_modules/@storybook/client-logger": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.5.1.tgz",
- "integrity": "sha512-XxbLvg0aQRoBrzxYLcVYCbjDkGbkU8Rfb74XbV2CLiO2bIbFPmA1l1Nwbp+wkCGA+O6Z1zwzSl6wcKKqZ6XZCg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.0.tgz",
+ "integrity": "sha512-18XPPEWYHmmUav7i+PjZGwtImshNtay0xO2vh2DmQtzoCh2Lx/NVldqv9Li1eHCI88+4y7fyutmC5OIi0YASbg==",
"dev": true,
"dependencies": {
"@storybook/global": "^5.0.0"
@@ -9265,9 +7539,9 @@
}
},
"node_modules/@storybook/telemetry/node_modules/fs-extra": {
- "version": "11.1.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
- "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
+ "version": "11.2.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
+ "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.2.0",
@@ -9338,18 +7612,18 @@
}
},
"node_modules/@storybook/web-components": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.5.1.tgz",
- "integrity": "sha512-6fo9ZTut7BegwMV5T0g5Rl9ZGcvcLAx0KXCfUuHY6tpRsLl3WFm0EP1P8ZKfPrfLdsLcyRO0o4SQheKRlsPfwQ==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.6.0.tgz",
+ "integrity": "sha512-g4GKN5ZZP2dSprGFssRCU7xTGk5GoQMUtGIBUnttI9KeCT23mUI3gDCdwRwniOYcM0/lhcjA8tfx6OHZ0qhxBQ==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-client": "7.5.1",
- "@storybook/docs-tools": "7.5.1",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/core-client": "7.6.0",
+ "@storybook/docs-tools": "7.6.0",
"@storybook/global": "^5.0.0",
- "@storybook/manager-api": "7.5.1",
- "@storybook/preview-api": "7.5.1",
- "@storybook/types": "7.5.1",
+ "@storybook/manager-api": "7.6.0",
+ "@storybook/preview-api": "7.6.0",
+ "@storybook/types": "7.6.0",
"tiny-invariant": "^1.3.1",
"ts-dedent": "^2.0.0"
},
@@ -9365,15 +7639,15 @@
}
},
"node_modules/@storybook/web-components-vite": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.5.1.tgz",
- "integrity": "sha512-15DBk7l1R/jdPXj2yGPnu34436r/VAnD2wGvDAeDD1zJ/tcOa0P2N0gSjr+g9O0x5hLIM5YWzYZjUtMNUj41+A==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.6.0.tgz",
+ "integrity": "sha512-e3DDri8SESsrS0SvA/RG1k55V32RjFFxmQeit3a04sQHGO3A0CXTVPonujV5ml/2hERWamOarZSnMVxUigJfKw==",
"dev": true,
"dependencies": {
- "@storybook/builder-vite": "7.5.1",
- "@storybook/core-server": "7.5.1",
- "@storybook/node-logger": "7.5.1",
- "@storybook/web-components": "7.5.1",
+ "@storybook/builder-vite": "7.6.0",
+ "@storybook/core-server": "7.6.0",
+ "@storybook/node-logger": "7.6.0",
+ "@storybook/web-components": "7.6.0",
"magic-string": "^0.30.0"
},
"engines": {
@@ -9382,20 +7656,16 @@
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
}
},
"node_modules/@storybook/web-components/node_modules/@storybook/channels": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.5.1.tgz",
- "integrity": "sha512-7hTGHqvtdFTqRx8LuCznOpqPBYfUeMUt/0IIp7SFuZT585yMPxrYoaK//QmLEWnPb80B8HVTSQi7caUkJb32LA==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.0.tgz",
+ "integrity": "sha512-Zobr57AkPIE+cdQMrIC9FdgQZDJt8XmpCR+QCxzhrhz6zJLVbIDjf866vKmy3EGSzGrlajfAg/G1PK4v7FdAcw==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/core-events": "7.6.0",
"@storybook/global": "^5.0.0",
"qs": "^6.10.0",
"telejson": "^7.2.0",
@@ -9407,9 +7677,9 @@
}
},
"node_modules/@storybook/web-components/node_modules/@storybook/client-logger": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.5.1.tgz",
- "integrity": "sha512-XxbLvg0aQRoBrzxYLcVYCbjDkGbkU8Rfb74XbV2CLiO2bIbFPmA1l1Nwbp+wkCGA+O6Z1zwzSl6wcKKqZ6XZCg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.0.tgz",
+ "integrity": "sha512-18XPPEWYHmmUav7i+PjZGwtImshNtay0xO2vh2DmQtzoCh2Lx/NVldqv9Li1eHCI88+4y7fyutmC5OIi0YASbg==",
"dev": true,
"dependencies": {
"@storybook/global": "^5.0.0"
@@ -9420,9 +7690,9 @@
}
},
"node_modules/@storybook/web-components/node_modules/@storybook/core-events": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.5.1.tgz",
- "integrity": "sha512-2eyaUhTfmEEqOEZVoCXVITCBn6N7QuZCG2UNxv0l//ED+7MuMiFhVw7kS7H3WOVk65R7gb8qbKFTNX8HFTgBHg==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.0.tgz",
+ "integrity": "sha512-13d4YOcXPu0j5PDjqE2iy+mG68w2TLit408cF/ZbJ8d6V4QwuUiz6mUt34vTuTc3yB93q5moYXYo6a/AhrsPnQ==",
"dev": true,
"dependencies": {
"ts-dedent": "^2.0.0"
@@ -9433,19 +7703,19 @@
}
},
"node_modules/@storybook/web-components/node_modules/@storybook/manager-api": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.5.1.tgz",
- "integrity": "sha512-ygwJywluhhE1dpA0jC2D/3NFhMXzFCt+iW4m3cOwexYTuiDWF66AbGOFBx9peE7Wk/Z9doKkf9E3v11enwaidA==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.6.0.tgz",
+ "integrity": "sha512-P2ISRw8cmIDPrsMwDTOZvFOH6P9GN6O9wC2cSrfMWYE/aaXHWf/7f5gk5pX/zILHuLQeVnDBguS/zXmMDxJj7g==",
"dev": true,
"dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
+ "@storybook/channels": "7.6.0",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/core-events": "7.6.0",
+ "@storybook/csf": "^0.1.2",
"@storybook/global": "^5.0.0",
- "@storybook/router": "7.5.1",
- "@storybook/theming": "7.5.1",
- "@storybook/types": "7.5.1",
+ "@storybook/router": "7.6.0",
+ "@storybook/theming": "7.6.0",
+ "@storybook/types": "7.6.0",
"dequal": "^2.0.2",
"lodash": "^4.17.21",
"memoizerific": "^1.11.3",
@@ -9457,24 +7727,20 @@
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
}
},
"node_modules/@storybook/web-components/node_modules/@storybook/preview-api": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.5.1.tgz",
- "integrity": "sha512-8xjUbuGmHLmw8tfTUCjXSvMM9r96JaexPFmHdwW6XLe71KKdWp8u96vRDRE5648cd+/of15OjaRtakRKqluA/A==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.0.tgz",
+ "integrity": "sha512-//8mYKM8gkSDkIRcG3kSozGEvPUurVhfjBXDtaF8Y8cOZLzwe8/AZy+mUYHShh9HWFUXx5QAj5oU0U0PflfMeg==",
"dev": true,
"dependencies": {
- "@storybook/channels": "7.5.1",
- "@storybook/client-logger": "7.5.1",
- "@storybook/core-events": "7.5.1",
- "@storybook/csf": "^0.1.0",
+ "@storybook/channels": "7.6.0",
+ "@storybook/client-logger": "7.6.0",
+ "@storybook/core-events": "7.6.0",
+ "@storybook/csf": "^0.1.2",
"@storybook/global": "^5.0.0",
- "@storybook/types": "7.5.1",
+ "@storybook/types": "7.6.0",
"@types/qs": "^6.9.5",
"dequal": "^2.0.2",
"lodash": "^4.17.21",
@@ -9490,32 +7756,28 @@
}
},
"node_modules/@storybook/web-components/node_modules/@storybook/router": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.5.1.tgz",
- "integrity": "sha512-BvKo+IxWwo3dfIG1+vLtZLT4qqkNHL5GTIozTyX04uqt9ByYZL6SJEzxEa1Xn6Qq/fbdQwzCanNHbTlwiTMf7Q==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.6.0.tgz",
+ "integrity": "sha512-661mO2JtO/wdWJEtVqyaUjQ8tsy56LrsKqz4suzO0L32Z7NHCBu0IzbZbLON6MXje3PWXksw0vFbd8jwH/i//w==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.5.1",
+ "@storybook/client-logger": "7.6.0",
"memoizerific": "^1.11.3",
"qs": "^6.10.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
}
},
"node_modules/@storybook/web-components/node_modules/@storybook/theming": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.5.1.tgz",
- "integrity": "sha512-ETLAOn10hI4Mkmjsr0HGcM6HbzaURrrPBYmfXOrdbrzEVN+AHW4FlvP9d8fYyP1gdjPE1F39XvF0jYgt1zXiHQ==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.6.0.tgz",
+ "integrity": "sha512-F5PTGkaRQ0TWIWRrZgQ2dmVxVcjX77vDc6QfUYxvOfez9/zrduKRHP5lGqHoqJlugJc8i2zpRNEFbL99frdUKg==",
"dev": true,
"dependencies": {
"@emotion/use-insertion-effect-with-fallbacks": "^1.0.0",
- "@storybook/client-logger": "7.5.1",
+ "@storybook/client-logger": "7.6.0",
"@storybook/global": "^5.0.0",
"memoizerific": "^1.11.3"
},
@@ -9529,12 +7791,12 @@
}
},
"node_modules/@storybook/web-components/node_modules/@storybook/types": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.5.1.tgz",
- "integrity": "sha512-ZcMSaqFNx1E+G00nRDUi8kKL7gxJVlnCvbKLNj3V85guy4DkIYAZr31yDqze07gDWbjvKoHIp3tKpgE+2i8upQ==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.0.tgz",
+ "integrity": "sha512-mrbL9qrRekaPCAV3d7jYpege5wOpsvBvNW6pmATG3UvNXpqz5BOWe6RWZJXbtkvjyt01b6HE9CbVUFJppplr6w==",
"dev": true,
"dependencies": {
- "@storybook/channels": "7.5.1",
+ "@storybook/channels": "7.6.0",
"@types/babel__core": "^7.0.0",
"@types/express": "^4.7.0",
"file-system-cache": "2.3.0"
@@ -9951,9 +8213,9 @@
}
},
"node_modules/@trivago/prettier-plugin-sort-imports": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.2.1.tgz",
- "integrity": "sha512-iuy2MPVURGdxILTchHr15VAioItuYBejKfcTmQFlxIuqA7jeaT6ngr5aUIG6S6U096d6a6lJCgaOwlRrPLlOPg==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.3.0.tgz",
+ "integrity": "sha512-r3n0onD3BTOVUNPhR4lhVK4/pABGpbA7bW3eumZnYdKaHkf1qEC+Mag6DPbGNuuh0eG8AaYj+YqmVHSiGslaTQ==",
"dev": true,
"dependencies": {
"@babel/generator": "7.17.7",
@@ -10061,18 +8323,18 @@
}
},
"node_modules/@types/chart.js": {
- "version": "2.9.39",
- "resolved": "https://registry.npmjs.org/@types/chart.js/-/chart.js-2.9.39.tgz",
- "integrity": "sha512-FAsZ6v8ds40mVCgM44T1/ZDKuT1Lh6/a2D3nD8ZNX9SqBObBc0vH2VrcLjYP3PL8onPPt9rIw+QyEkgrzj31TQ==",
+ "version": "2.9.41",
+ "resolved": "https://registry.npmjs.org/@types/chart.js/-/chart.js-2.9.41.tgz",
+ "integrity": "sha512-3dvkDvueckY83UyUXtJMalYoH6faOLkWQoaTlJgB4Djde3oORmNP0Jw85HtzTuXyliUHcdp704s0mZFQKio/KQ==",
"dev": true,
"dependencies": {
"moment": "^2.10.2"
}
},
"node_modules/@types/codemirror": {
- "version": "5.60.12",
- "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.12.tgz",
- "integrity": "sha512-SFSj5Tb/mtQoVgaltsipdRGG1PkcFu/L0OXPNBGCXYUQtwsNoAGRNNHOTl1jYcQUcEI77EiUfk94bgETTbSo/A==",
+ "version": "5.60.15",
+ "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.15.tgz",
+ "integrity": "sha512-dTOvwEQ+ouKJ/rE9LT1Ue2hmP6H1mZv5+CCnNWu2qtiOe2LQa9lCprEY20HxiDmV/Bxh+dXjywmy5aKvoGjULA==",
"dev": true,
"dependencies": {
"@types/tern": "*"
@@ -10088,9 +8350,9 @@
}
},
"node_modules/@types/cross-spawn": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/@types/cross-spawn/-/cross-spawn-6.0.4.tgz",
- "integrity": "sha512-GGLpeThc2Bu8FBGmVn76ZU3lix17qZensEI4/MPty0aZpm2CHfgEMis31pf5X5EiudYKcPAsWciAsCALoPo5dw==",
+ "version": "6.0.6",
+ "resolved": "https://registry.npmjs.org/@types/cross-spawn/-/cross-spawn-6.0.6.tgz",
+ "integrity": "sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA==",
"dev": true,
"dependencies": {
"@types/node": "*"
@@ -10135,15 +8397,15 @@
"dev": true
},
"node_modules/@types/ejs": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/@types/ejs/-/ejs-3.1.4.tgz",
- "integrity": "sha512-fnM/NjByiWdSRJRrmGxgqOSAnmOnsvX1QcNYk5TVyIIj+7ZqOKMb9gQa4OIl/lil2w/8TiTWV+nz3q8yqxez/w==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/@types/ejs/-/ejs-3.1.5.tgz",
+ "integrity": "sha512-nv+GSx77ZtXiJzwKdsASqi+YQ5Z7vwHsTP0JY2SiQgjGckkBRKZnk8nIM+7oUZ1VCtuTz0+By4qVR7fqzp/Dfg==",
"dev": true
},
"node_modules/@types/emscripten": {
- "version": "1.39.9",
- "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.39.9.tgz",
- "integrity": "sha512-ILdWj4XYtNOqxJaW22NEQx2gJsLfV5ncxYhhGX1a1H1lXl2Ta0gUz7QOnOoF1xQbJwWDjImi8gXN9mKdIf6n9g==",
+ "version": "1.39.10",
+ "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.39.10.tgz",
+ "integrity": "sha512-TB/6hBkYQJxsZHSqyeuO1Jt0AB/bW6G7rHt9g7lML7SOF6lbgcHvw/Lr+69iqN0qxgXLhWKScAon73JNnptuDw==",
"dev": true
},
"node_modules/@types/estree": {
@@ -10202,18 +8464,18 @@
}
},
"node_modules/@types/graceful-fs": {
- "version": "4.1.8",
- "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.8.tgz",
- "integrity": "sha512-NhRH7YzWq8WiNKVavKPBmtLYZHxNY19Hh+az28O/phfp68CF45pMFud+ZzJ8ewnxnC5smIdF3dqFeiSUQ5I+pw==",
+ "version": "4.1.9",
+ "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz",
+ "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==",
"dev": true,
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/grecaptcha": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/grecaptcha/-/grecaptcha-3.0.6.tgz",
- "integrity": "sha512-4BR/3v+pbiRt3cwRwibFnV4+LmuvRUjVVqgeCul9ODAyQhlPKE4tIIRJwZUeWWpmX8e9vo/xXuQTQl8FJPP7KA==",
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/@types/grecaptcha/-/grecaptcha-3.0.7.tgz",
+ "integrity": "sha512-ah5GDQfsiK3dnkaCbYcDFZXkZCG3o90VRu9hzXHnSe4kACrRB1KUI/ZyWHvYmqm1W5Tl8B5YxxT98uGTlkbf2Q==",
"dev": true
},
"node_modules/@types/http-errors": {
@@ -10223,24 +8485,24 @@
"dev": true
},
"node_modules/@types/istanbul-lib-coverage": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz",
- "integrity": "sha512-zONci81DZYCZjiLe0r6equvZut0b+dBRPBN5kBDjsONnutYNtJMoWQ9uR2RkL1gLG9NMTzvf+29e5RFfPbeKhQ==",
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
+ "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==",
"dev": true
},
"node_modules/@types/istanbul-lib-report": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.2.tgz",
- "integrity": "sha512-8toY6FgdltSdONav1XtUHl4LN1yTmLza+EuDazb/fEmRNCwjyqNVIQWs2IfC74IqjHkREs/nQ2FWq5kZU9IC0w==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
+ "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
"dev": true,
"dependencies": {
"@types/istanbul-lib-coverage": "*"
}
},
"node_modules/@types/istanbul-reports": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.3.tgz",
- "integrity": "sha512-1nESsePMBlf0RPRffLZi5ujYh7IH1BWL4y9pr+Bn3cJBdxz+RTP8bUFljLz9HvzhhOSWKdyBZ4DIivdL6rvgZg==",
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
+ "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
"dev": true,
"dependencies": {
"@types/istanbul-lib-report": "*"
@@ -10267,9 +8529,9 @@
}
},
"node_modules/@types/mdx": {
- "version": "2.0.9",
- "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.9.tgz",
- "integrity": "sha512-OKMdj17y8Cs+k1r0XFyp59ChSOwf8ODGtMQ4mnpfz5eFDk1aO41yN3pSKGuvVzmWAkFp37seubY1tzOVpwfWwg==",
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.10.tgz",
+ "integrity": "sha512-Rllzc5KHk0Al5/WANwgSPl1/CwjqCy+AZrGd78zuK+jO9aDM6ffblZ+zIjgPNAaEBmlO0RYDvLNh7wD0zKVgEg==",
"dev": true
},
"node_modules/@types/mime": {
@@ -10279,9 +8541,9 @@
"dev": true
},
"node_modules/@types/mime-types": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/@types/mime-types/-/mime-types-2.1.3.tgz",
- "integrity": "sha512-bvxCbHeeS7quxS7uOJShyoOQj/BfLabhF6mk9Rmr+2MRfW8W1yxyyL/0GTxLFTHen41GrIw4K3D4DrLouhb8vg==",
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@types/mime-types/-/mime-types-2.1.4.tgz",
+ "integrity": "sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w==",
"dev": true
},
"node_modules/@types/minimatch": {
@@ -10430,32 +8692,38 @@
"resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.8.tgz",
"integrity": "sha512-d0XxK3YTObnWVp6rZuev3c49+j4Lo8g4L1ZRm9z5L0xpoZycUPshHgczK5gsUMaZOstjVYYi09p5gYvUtfChYw=="
},
+ "node_modules/@types/uuid": {
+ "version": "9.0.7",
+ "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.7.tgz",
+ "integrity": "sha512-WUtIVRUZ9i5dYXefDEAI7sh9/O7jGvHg7Df/5O/gtH3Yabe5odI3UWopVR1qbPXQtvOxWu3mM4XxlYeZtMWF4g==",
+ "dev": true
+ },
"node_modules/@types/yargs": {
- "version": "17.0.29",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.29.tgz",
- "integrity": "sha512-nacjqA3ee9zRF/++a3FUY1suHTFKZeHba2n8WeDw9cCVdmzmHpIxyzOJBcpHvvEmS8E9KqWlSnWHUkOrkhWcvA==",
+ "version": "17.0.32",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz",
+ "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==",
"dev": true,
"dependencies": {
"@types/yargs-parser": "*"
}
},
"node_modules/@types/yargs-parser": {
- "version": "21.0.2",
- "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.2.tgz",
- "integrity": "sha512-5qcvofLPbfjmBfKaLfj/+f+Sbd6pN4zl7w7VSVI5uz7m9QZTuB2aZAa2uo1wHFBNN2x6g/SoTkXmd8mQnQF2Cw==",
+ "version": "21.0.3",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
+ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==",
"dev": true
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "6.9.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.9.0.tgz",
- "integrity": "sha512-lgX7F0azQwRPB7t7WAyeHWVfW1YJ9NIgd9mvGhfQpRY56X6AVf8mwM8Wol+0z4liE7XX3QOt8MN1rUKCfSjRIA==",
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.13.0.tgz",
+ "integrity": "sha512-HTvbSd0JceI2GW5DHS3R9zbarOqjkM9XDR7zL8eCsBUO/eSiHcoNE7kSL5sjGXmVa9fjH5LCfHDXNnH4QLp7tQ==",
"dev": true,
"dependencies": {
"@eslint-community/regexpp": "^4.5.1",
- "@typescript-eslint/scope-manager": "6.9.0",
- "@typescript-eslint/type-utils": "6.9.0",
- "@typescript-eslint/utils": "6.9.0",
- "@typescript-eslint/visitor-keys": "6.9.0",
+ "@typescript-eslint/scope-manager": "6.13.0",
+ "@typescript-eslint/type-utils": "6.13.0",
+ "@typescript-eslint/utils": "6.13.0",
+ "@typescript-eslint/visitor-keys": "6.13.0",
"debug": "^4.3.4",
"graphemer": "^1.4.0",
"ignore": "^5.2.4",
@@ -10514,15 +8782,15 @@
"dev": true
},
"node_modules/@typescript-eslint/parser": {
- "version": "6.9.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.9.0.tgz",
- "integrity": "sha512-GZmjMh4AJ/5gaH4XF2eXA8tMnHWP+Pm1mjQR2QN4Iz+j/zO04b9TOvJYOX2sCNIQHtRStKTxRY1FX7LhpJT4Gw==",
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.13.0.tgz",
+ "integrity": "sha512-VpG+M7GNhHLI/aTDctqAV0XbzB16vf+qDX9DXuMZSe/0bahzDA9AKZB15NDbd+D9M4cDsJvfkbGOA7qiZ/bWJw==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "6.9.0",
- "@typescript-eslint/types": "6.9.0",
- "@typescript-eslint/typescript-estree": "6.9.0",
- "@typescript-eslint/visitor-keys": "6.9.0",
+ "@typescript-eslint/scope-manager": "6.13.0",
+ "@typescript-eslint/types": "6.13.0",
+ "@typescript-eslint/typescript-estree": "6.13.0",
+ "@typescript-eslint/visitor-keys": "6.13.0",
"debug": "^4.3.4"
},
"engines": {
@@ -10542,13 +8810,13 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "6.9.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.9.0.tgz",
- "integrity": "sha512-1R8A9Mc39n4pCCz9o79qRO31HGNDvC7UhPhv26TovDsWPBDx+Sg3rOZdCELIA3ZmNoWAuxaMOT7aWtGRSYkQxw==",
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.13.0.tgz",
+ "integrity": "sha512-2x0K2/CujsokIv+LN2T0l5FVDMtsCjkUyYtlcY4xxnxLAW+x41LXr16duoicHpGtLhmtN7kqvuFJ3zbz00Ikhw==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "6.9.0",
- "@typescript-eslint/visitor-keys": "6.9.0"
+ "@typescript-eslint/types": "6.13.0",
+ "@typescript-eslint/visitor-keys": "6.13.0"
},
"engines": {
"node": "^16.0.0 || >=18.0.0"
@@ -10559,13 +8827,13 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "6.9.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.9.0.tgz",
- "integrity": "sha512-XXeahmfbpuhVbhSOROIzJ+b13krFmgtc4GlEuu1WBT+RpyGPIA4Y/eGnXzjbDj5gZLzpAXO/sj+IF/x2GtTMjQ==",
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.13.0.tgz",
+ "integrity": "sha512-YHufAmZd/yP2XdoD3YeFEjq+/Tl+myhzv+GJHSOz+ro/NFGS84mIIuLU3pVwUcauSmwlCrVXbBclkn1HfjY0qQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/typescript-estree": "6.9.0",
- "@typescript-eslint/utils": "6.9.0",
+ "@typescript-eslint/typescript-estree": "6.13.0",
+ "@typescript-eslint/utils": "6.13.0",
"debug": "^4.3.4",
"ts-api-utils": "^1.0.1"
},
@@ -10586,9 +8854,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "6.9.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.9.0.tgz",
- "integrity": "sha512-+KB0lbkpxBkBSiVCuQvduqMJy+I1FyDbdwSpM3IoBS7APl4Bu15lStPjgBIdykdRqQNYqYNMa8Kuidax6phaEw==",
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.13.0.tgz",
+ "integrity": "sha512-oXg7DFxx/GmTrKXKKLSoR2rwiutOC7jCQ5nDH5p5VS6cmHE1TcPTaYQ0VPSSUvj7BnNqCgQ/NXcTBxn59pfPTQ==",
"dev": true,
"engines": {
"node": "^16.0.0 || >=18.0.0"
@@ -10599,13 +8867,13 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "6.9.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.9.0.tgz",
- "integrity": "sha512-NJM2BnJFZBEAbCfBP00zONKXvMqihZCrmwCaik0UhLr0vAgb6oguXxLX1k00oQyD+vZZ+CJn3kocvv2yxm4awQ==",
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.0.tgz",
+ "integrity": "sha512-IT4O/YKJDoiy/mPEDsfOfp+473A9GVqXlBKckfrAOuVbTqM8xbc0LuqyFCcgeFWpqu3WjQexolgqN2CuWBYbog==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "6.9.0",
- "@typescript-eslint/visitor-keys": "6.9.0",
+ "@typescript-eslint/types": "6.13.0",
+ "@typescript-eslint/visitor-keys": "6.13.0",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
@@ -10659,17 +8927,17 @@
"dev": true
},
"node_modules/@typescript-eslint/utils": {
- "version": "6.9.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.9.0.tgz",
- "integrity": "sha512-5Wf+Jsqya7WcCO8me504FBigeQKVLAMPmUzYgDbWchINNh1KJbxCgVya3EQ2MjvJMVeXl3pofRmprqX6mfQkjQ==",
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.13.0.tgz",
+ "integrity": "sha512-V+txaxARI8yznDkcQ6FNRXxG+T37qT3+2NsDTZ/nKLxv6VfGrRhTnuvxPUxpVuWWr+eVeIxU53PioOXbz8ratQ==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
"@types/json-schema": "^7.0.12",
"@types/semver": "^7.5.0",
- "@typescript-eslint/scope-manager": "6.9.0",
- "@typescript-eslint/types": "6.9.0",
- "@typescript-eslint/typescript-estree": "6.9.0",
+ "@typescript-eslint/scope-manager": "6.13.0",
+ "@typescript-eslint/types": "6.13.0",
+ "@typescript-eslint/typescript-estree": "6.13.0",
"semver": "^7.5.4"
},
"engines": {
@@ -10717,12 +8985,12 @@
"dev": true
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "6.9.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.9.0.tgz",
- "integrity": "sha512-dGtAfqjV6RFOtIP8I0B4ZTBRrlTT8NHHlZZSchQx3qReaoDeXhYM++M4So2AgFK9ZB0emRPA6JI1HkafzA2Ibg==",
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.0.tgz",
+ "integrity": "sha512-UQklteCEMCRoq/1UhKFZsHv5E4dN1wQSzJoxTfABasWk1HgJRdg1xNUve/Kv/Sdymt4x+iEzpESOqRFlQr/9Aw==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "6.9.0",
+ "@typescript-eslint/types": "6.13.0",
"eslint-visitor-keys": "^3.4.1"
},
"engines": {
@@ -11079,9 +9347,9 @@
}
},
"node_modules/async": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
- "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==",
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz",
+ "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==",
"dev": true
},
"node_modules/async-limiter": {
@@ -11108,9 +9376,9 @@
}
},
"node_modules/axios": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.0.tgz",
- "integrity": "sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==",
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.1.tgz",
+ "integrity": "sha512-vfBmhDpKafglh0EldBEbVuoe7DyAavGSLWhuSm5ZSEKQnHhBf0xAAwybbNH1IkrJNGnS/VG4I5yxig1pCEXE4g==",
"dependencies": {
"follow-redirects": "^1.15.0",
"form-data": "^4.0.0",
@@ -11711,9 +9979,9 @@
}
},
"node_modules/cli-spinners": {
- "version": "2.9.1",
- "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.1.tgz",
- "integrity": "sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==",
+ "version": "2.9.2",
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz",
+ "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==",
"dev": true,
"engines": {
"node": ">=6"
@@ -12012,9 +10280,9 @@
"dev": true
},
"node_modules/core-js": {
- "version": "3.33.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.33.1.tgz",
- "integrity": "sha512-qVSq3s+d4+GsqN0teRCJtM6tdEEXyWxjzbhVrCHmBS5ZTM0FS2MOS0D13dUXAWDUN6a+lHI/N1hF9Ytz6iLl9Q==",
+ "version": "3.33.3",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.33.3.tgz",
+ "integrity": "sha512-lo0kOocUlLKmm6kv/FswQL8zbkH7mVsLJ/FULClOhv8WRVmKLVcs6XPNQAzstfeJTCHMyButEwG+z1kHxHoDZw==",
"hasInstallScript": true,
"funding": {
"type": "opencollective",
@@ -12084,9 +10352,9 @@
}
},
"node_modules/country-flag-icons": {
- "version": "1.5.7",
- "resolved": "https://registry.npmjs.org/country-flag-icons/-/country-flag-icons-1.5.7.tgz",
- "integrity": "sha512-AdvXhMcmSp7nBSkpGfW4qR/luAdRUutJqya9PuwRbsBzuoknThfultbv7Ib6fWsHXC43Es/4QJ8gzQQdBNm75A=="
+ "version": "1.5.9",
+ "resolved": "https://registry.npmjs.org/country-flag-icons/-/country-flag-icons-1.5.9.tgz",
+ "integrity": "sha512-9jrjv2w7kRbqNtdtMdK2j3gmDIZzd5l9L2pZiQjF9J0mUcB+NKIGDNADTDHBEp8EQtjOkCOcciJGGSOpERdXPQ=="
},
"node_modules/crelt": {
"version": "1.0.6",
@@ -12751,9 +11019,9 @@
}
},
"node_modules/defu": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.2.tgz",
- "integrity": "sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==",
+ "version": "6.1.3",
+ "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.3.tgz",
+ "integrity": "sha512-Vy2wmG3NTkmHNg/kzpuvHhkqeIx3ODWqasgCRbKtbXEN0G+HpEEv9BtJLp7ZG1CZloFaC41Ah3ZFbq7aqCqMeQ==",
"dev": true
},
"node_modules/del": {
@@ -13060,9 +11328,9 @@
}
},
"node_modules/envinfo": {
- "version": "7.10.0",
- "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.10.0.tgz",
- "integrity": "sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz",
+ "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==",
"dev": true,
"bin": {
"envinfo": "dist/cli.js"
@@ -13282,15 +11550,15 @@
}
},
"node_modules/eslint": {
- "version": "8.52.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz",
- "integrity": "sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==",
+ "version": "8.54.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz",
+ "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
- "@eslint/eslintrc": "^2.1.2",
- "@eslint/js": "8.52.0",
+ "@eslint/eslintrc": "^2.1.3",
+ "@eslint/js": "8.54.0",
"@humanwhocodes/config-array": "^0.11.13",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
@@ -13375,9 +11643,9 @@
}
},
"node_modules/eslint-plugin-sonarjs": {
- "version": "0.21.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-0.21.0.tgz",
- "integrity": "sha512-oezUDfFT5S6j3rQheZ4DLPrbetPmMS7zHIKWGHr0CM3g5JgyZroz1FpIKa4jV83NsGpmgIeagpokWDKIJzRQmw==",
+ "version": "0.23.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-0.23.0.tgz",
+ "integrity": "sha512-z44T3PBf9W7qQ/aR+NmofOTyg6HLhSEZOPD4zhStqBpLoMp8GYhFksuUBnCxbnf1nfISpKBVkQhiBLFI/F4Wlg==",
"dev": true,
"engines": {
"node": ">=14"
@@ -14277,9 +12545,9 @@
"dev": true
},
"node_modules/flow-parser": {
- "version": "0.219.2",
- "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.219.2.tgz",
- "integrity": "sha512-OqzmNECXX85x/5L/OP9TfHErdDoSUoKR4y1sTTy/A5K2arwl7s5EmX0XTkkcJPlCAHYkElWj5Se+ZwNN/6ry2Q==",
+ "version": "0.222.0",
+ "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.222.0.tgz",
+ "integrity": "sha512-Fq5OkFlFRSMV2EOZW+4qUYMTE0uj8pcLsYJMxXYriSBDpHAF7Ofx3PibCTy3cs5P6vbsry7eYj7Z7xFD49GIOQ==",
"dev": true,
"engines": {
"node": ">=0.4.0"
@@ -14542,9 +12810,9 @@
}
},
"node_modules/get-npm-tarball-url": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/get-npm-tarball-url/-/get-npm-tarball-url-2.0.3.tgz",
- "integrity": "sha512-R/PW6RqyaBQNWYaSyfrh54/qtcnOp22FHCCiRhSSZj0FP3KQWCsxxt0DzIdVTbwTqe9CtQfvl/FPD4UIPt4pqw==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/get-npm-tarball-url/-/get-npm-tarball-url-2.1.0.tgz",
+ "integrity": "sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==",
"dev": true,
"engines": {
"node": ">=12.17"
@@ -15611,9 +13879,9 @@
}
},
"node_modules/istanbul-lib-coverage": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
- "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
+ "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
"dev": true,
"engines": {
"node": ">=8"
@@ -15891,20 +14159,21 @@
}
},
"node_modules/jscodeshift": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.14.0.tgz",
- "integrity": "sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==",
+ "version": "0.15.1",
+ "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.15.1.tgz",
+ "integrity": "sha512-hIJfxUy8Rt4HkJn/zZPU9ChKfKZM1342waJ1QC2e2YsPcWhM+3BJ4dcfQCzArTrk1jJeNLB341H+qOcEHRxJZg==",
"dev": true,
"dependencies": {
- "@babel/core": "^7.13.16",
- "@babel/parser": "^7.13.16",
- "@babel/plugin-proposal-class-properties": "^7.13.0",
- "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8",
- "@babel/plugin-proposal-optional-chaining": "^7.13.12",
- "@babel/plugin-transform-modules-commonjs": "^7.13.8",
- "@babel/preset-flow": "^7.13.13",
- "@babel/preset-typescript": "^7.13.0",
- "@babel/register": "^7.13.16",
+ "@babel/core": "^7.23.0",
+ "@babel/parser": "^7.23.0",
+ "@babel/plugin-transform-class-properties": "^7.22.5",
+ "@babel/plugin-transform-modules-commonjs": "^7.23.0",
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11",
+ "@babel/plugin-transform-optional-chaining": "^7.23.0",
+ "@babel/plugin-transform-private-methods": "^7.22.5",
+ "@babel/preset-flow": "^7.22.15",
+ "@babel/preset-typescript": "^7.23.0",
+ "@babel/register": "^7.22.15",
"babel-core": "^7.0.0-bridge.0",
"chalk": "^4.1.2",
"flow-parser": "0.*",
@@ -15912,7 +14181,7 @@
"micromatch": "^4.0.4",
"neo-async": "^2.5.0",
"node-dir": "^0.1.17",
- "recast": "^0.21.0",
+ "recast": "^0.23.3",
"temp": "^0.8.4",
"write-file-atomic": "^2.3.0"
},
@@ -15921,6 +14190,11 @@
},
"peerDependencies": {
"@babel/preset-env": "^7.1.6"
+ },
+ "peerDependenciesMeta": {
+ "@babel/preset-env": {
+ "optional": true
+ }
}
},
"node_modules/jscodeshift/node_modules/ansi-styles": {
@@ -15938,18 +14212,6 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/jscodeshift/node_modules/ast-types": {
- "version": "0.15.2",
- "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.15.2.tgz",
- "integrity": "sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==",
- "dev": true,
- "dependencies": {
- "tslib": "^2.0.1"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/jscodeshift/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
@@ -15975,21 +14237,6 @@
"node": ">=8"
}
},
- "node_modules/jscodeshift/node_modules/recast": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/recast/-/recast-0.21.5.tgz",
- "integrity": "sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==",
- "dev": true,
- "dependencies": {
- "ast-types": "0.15.2",
- "esprima": "~4.0.0",
- "source-map": "~0.6.1",
- "tslib": "^2.0.1"
- },
- "engines": {
- "node": ">= 4"
- }
- },
"node_modules/jscodeshift/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -16561,9 +14808,9 @@
}
},
"node_modules/mermaid": {
- "version": "10.6.0",
- "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-10.6.0.tgz",
- "integrity": "sha512-Hcti+Q2NiWnb2ZCijSX89Bn2i7TCUwosBdIn/d+u63Sz7y40XU6EKMctT4UX4qZuZGfKGZpfOeim2/KTrdR7aQ==",
+ "version": "10.6.1",
+ "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-10.6.1.tgz",
+ "integrity": "sha512-Hky0/RpOw/1il9X8AvzOEChfJtVvmXm+y7JML5C//ePYMy0/9jCEmW1E1g86x9oDfW9+iVEdTV/i+M6KWRNs4A==",
"dependencies": {
"@braintree/sanitize-url": "^6.0.1",
"@types/d3-scale": "^4.0.3",
@@ -17435,9 +15682,9 @@
}
},
"node_modules/node-fetch-native": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.4.0.tgz",
- "integrity": "sha512-F5kfEj95kX8tkDhUCYdV8dg3/8Olx/94zB8+ZNthFs6Bz31UpUi8Xh40TN3thLwXgrwXry1pEg9lJ++tLWTcqA==",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.4.1.tgz",
+ "integrity": "sha512-NsXBU0UgBxo2rQLOeWNZqS3fvflWePMECr8CoSWoSTqCqGbVVsvl9vZu1HfQicYN0g5piV9Gh8RTEvo/uP752w==",
"dev": true
},
"node_modules/node-int64": {
@@ -17969,9 +16216,9 @@
}
},
"node_modules/path-scurry/node_modules/lru-cache": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz",
- "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==",
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz",
+ "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==",
"dev": true,
"engines": {
"node": "14 || >=16.14"
@@ -18152,9 +16399,9 @@
}
},
"node_modules/prettier": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz",
- "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz",
+ "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==",
"dev": true,
"bin": {
"prettier": "bin/prettier.cjs"
@@ -18304,9 +16551,9 @@
}
},
"node_modules/punycode": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
- "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
"dev": true,
"engines": {
"node": ">=6"
@@ -18409,9 +16656,9 @@
}
},
"node_modules/pyright": {
- "version": "1.1.333",
- "resolved": "https://registry.npmjs.org/pyright/-/pyright-1.1.333.tgz",
- "integrity": "sha512-oFHXvzvg2cU1enatWqI76+sjSi+McsUBIJ9aR5W6p4kU9Rrgu+MYfXX5aHEPaZE64Vz3sNbG7IelXuAVEkyk/A==",
+ "version": "1.1.337",
+ "resolved": "https://registry.npmjs.org/pyright/-/pyright-1.1.337.tgz",
+ "integrity": "sha512-iZcID/OX5rjiToKCb3DShygOC21Zx8GvSwei+ApyTfK2C2xdRWyV+yJCrUUF75/qVkTZy8ZCDwQc4aYDqD8Scg==",
"dev": true,
"bin": {
"pyright": "index.js",
@@ -18611,15 +16858,6 @@
"react": "^18.2.0"
}
},
- "node_modules/react-inspector": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-6.0.2.tgz",
- "integrity": "sha512-x+b7LxhmHXjHoU/VrFAzw5iutsILRoYyDq97EDYdFpPLcvqtEzk4ZSZSQjnFPbr5T57tLXnHcqFYoN1pI6u8uQ==",
- "dev": true,
- "peerDependencies": {
- "react": "^16.8.4 || ^17.0.0 || ^18.0.0"
- }
- },
"node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
@@ -19111,9 +17349,9 @@
"integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg=="
},
"node_modules/rollup": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.1.4.tgz",
- "integrity": "sha512-U8Yk1lQRKqCkDBip/pMYT+IKaN7b7UesK3fLSTuHBoBJacCE+oBqo/dfG/gkUdQNNB2OBmRP98cn2C2bkYZkyw==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.6.0.tgz",
+ "integrity": "sha512-R8i5Her4oO1LiMQ3jKf7MUglYV/mhQ5g5OKeld5CnkmPdIGo79FDDQYqPhq/PCVuTQVuxsWgIbDy9F+zdHn80w==",
"dev": true,
"bin": {
"rollup": "dist/bin/rollup"
@@ -19123,18 +17361,18 @@
"npm": ">=8.0.0"
},
"optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.1.4",
- "@rollup/rollup-android-arm64": "4.1.4",
- "@rollup/rollup-darwin-arm64": "4.1.4",
- "@rollup/rollup-darwin-x64": "4.1.4",
- "@rollup/rollup-linux-arm-gnueabihf": "4.1.4",
- "@rollup/rollup-linux-arm64-gnu": "4.1.4",
- "@rollup/rollup-linux-arm64-musl": "4.1.4",
- "@rollup/rollup-linux-x64-gnu": "4.1.4",
- "@rollup/rollup-linux-x64-musl": "4.1.4",
- "@rollup/rollup-win32-arm64-msvc": "4.1.4",
- "@rollup/rollup-win32-ia32-msvc": "4.1.4",
- "@rollup/rollup-win32-x64-msvc": "4.1.4",
+ "@rollup/rollup-android-arm-eabi": "4.6.0",
+ "@rollup/rollup-android-arm64": "4.6.0",
+ "@rollup/rollup-darwin-arm64": "4.6.0",
+ "@rollup/rollup-darwin-x64": "4.6.0",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.6.0",
+ "@rollup/rollup-linux-arm64-gnu": "4.6.0",
+ "@rollup/rollup-linux-arm64-musl": "4.6.0",
+ "@rollup/rollup-linux-x64-gnu": "4.6.0",
+ "@rollup/rollup-linux-x64-musl": "4.6.0",
+ "@rollup/rollup-win32-arm64-msvc": "4.6.0",
+ "@rollup/rollup-win32-ia32-msvc": "4.6.0",
+ "@rollup/rollup-win32-x64-msvc": "4.6.0",
"fsevents": "~2.3.2"
}
},
@@ -19771,12 +18009,12 @@
"dev": true
},
"node_modules/storybook": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.5.1.tgz",
- "integrity": "sha512-Wg3j3z5H03PYnEcmlnhf6bls0OtjmsNPsQ93dTV8F4AweqBECwzjf94Wj++NrP3X+WbfMoCbBU6LRFuEyzCCxw==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.6.0.tgz",
+ "integrity": "sha512-t844tajV8dcWiGmGV0zXUdmLzLnftTqQOfzX678AjJXh7ijhMkNi2dgSFLaAOLQqeljdGfyrgFrivveZxkaj2w==",
"dev": true,
"dependencies": {
- "@storybook/cli": "7.5.1"
+ "@storybook/cli": "7.6.0"
},
"bin": {
"sb": "index.js",
@@ -20670,12 +18908,12 @@
}
},
"node_modules/ts-lit-plugin": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ts-lit-plugin/-/ts-lit-plugin-2.0.0.tgz",
- "integrity": "sha512-NPQ235pyUSqBTve/SkPIiIqmfGiR08ov7D2WeEtu/3WpsZyKHhxK7BSMoFQi+LzgCx/2Gr6nd+0Iv5DvlrJXow==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/ts-lit-plugin/-/ts-lit-plugin-2.0.1.tgz",
+ "integrity": "sha512-Y5G03aDiMYHMLzoZ50kdeVkzgVig2mBw6PVY2oI9PcWl3ONTcDyYq6rJ0QzhlACYWP8sT0dmaPMsHMObgNNvvg==",
"dev": true,
"dependencies": {
- "lit-analyzer": "^2.0.0",
+ "lit-analyzer": "^2.0.1",
"web-component-analyzer": "^2.0.0"
}
},
@@ -20871,9 +19109,9 @@
}
},
"node_modules/typescript": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
- "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.2.tgz",
+ "integrity": "sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
@@ -20911,6 +19149,12 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/undici-types": {
+ "version": "5.26.5",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+ "dev": true
+ },
"node_modules/unicode-canonical-property-names-ecmascript": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
@@ -21439,6 +19683,19 @@
"web-component-analyzer": "cli.js"
}
},
+ "node_modules/web-component-analyzer/node_modules/typescript": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
+ "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
+ "dev": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
"node_modules/web-streams-polyfill": {
"version": "4.0.0-beta.3",
"resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz",
@@ -21695,9 +19952,9 @@
"dev": true
},
"node_modules/yaml": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.3.tgz",
- "integrity": "sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ==",
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz",
+ "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==",
"engines": {
"node": ">= 14"
}
diff --git a/web/package.json b/web/package.json
index c4b4c04b7..bc0f3c827 100644
--- a/web/package.json
+++ b/web/package.json
@@ -30,100 +30,103 @@
"storybook:build": "cross-env NODE_OPTIONS='--max_old_space_size=4096' storybook build"
},
"dependencies": {
- "@codemirror/lang-html": "^6.4.6",
+ "@codemirror/lang-html": "^6.4.7",
"@codemirror/lang-javascript": "^6.2.1",
"@codemirror/lang-python": "^6.1.3",
"@codemirror/lang-xml": "^6.0.2",
"@codemirror/legacy-modes": "^6.3.3",
"@codemirror/theme-one-dark": "^6.1.2",
- "@formatjs/intl-listformat": "^7.5.0",
- "@fortawesome/fontawesome-free": "^6.4.2",
- "@goauthentik/api": "^2023.10.1-1698348102",
- "@lit-labs/context": "^0.4.1",
+ "@formatjs/intl-listformat": "^7.5.3",
+ "@fortawesome/fontawesome-free": "^6.5.0",
+ "@goauthentik/api": "^2023.10.4-1700591367",
+ "@lit-labs/context": "^0.4.0",
"@lit-labs/task": "^3.1.0",
"@lit/localize": "^0.11.4",
"@open-wc/lit-helpers": "^0.6.0",
"@patternfly/elements": "^2.4.0",
"@patternfly/patternfly": "^4.224.2",
- "@sentry/browser": "^7.75.1",
- "@sentry/tracing": "^7.75.1",
+ "@sentry/browser": "^7.83.0",
+ "@sentry/tracing": "^7.83.0",
"@webcomponents/webcomponentsjs": "^2.8.0",
"base64-js": "^1.5.1",
"chart.js": "^4.4.0",
"chartjs-adapter-moment": "^1.0.1",
"codemirror": "^6.0.1",
"construct-style-sheets-polyfill": "^3.1.0",
- "core-js": "^3.33.1",
- "country-flag-icons": "^1.5.7",
+ "core-js": "^3.33.3",
+ "country-flag-icons": "^1.5.9",
"fuse.js": "^7.0.0",
"lit": "^2.8.0",
- "mermaid": "^10.6.0",
+ "mermaid": "^10.6.1",
"rapidoc": "^9.3.4",
"style-mod": "^4.1.0",
"webcomponent-qr-code": "^1.2.0",
- "yaml": "^2.3.3"
+ "yaml": "^2.3.4"
},
"devDependencies": {
- "@babel/core": "^7.23.2",
+ "@babel/core": "^7.23.3",
"@babel/plugin-proposal-class-properties": "^7.18.6",
- "@babel/plugin-proposal-decorators": "^7.23.2",
- "@babel/plugin-transform-private-methods": "^7.22.5",
- "@babel/plugin-transform-private-property-in-object": "^7.22.11",
- "@babel/plugin-transform-runtime": "^7.23.2",
- "@babel/preset-env": "^7.23.2",
- "@babel/preset-typescript": "^7.23.2",
+ "@babel/plugin-proposal-decorators": "^7.23.3",
+ "@babel/plugin-transform-private-methods": "^7.23.3",
+ "@babel/plugin-transform-private-property-in-object": "^7.23.4",
+ "@babel/plugin-transform-runtime": "^7.23.4",
+ "@babel/preset-env": "^7.23.3",
+ "@babel/preset-typescript": "^7.23.3",
"@hcaptcha/types": "^1.0.3",
"@jackfranklin/rollup-plugin-markdown": "^0.4.0",
"@jeysal/storybook-addon-css-user-preferences": "^0.2.0",
- "@lit/localize-tools": "^0.7.0",
+ "@lit/localize-tools": "^0.7.1",
"@rollup/plugin-babel": "^6.0.4",
"@rollup/plugin-commonjs": "^25.0.7",
"@rollup/plugin-node-resolve": "^15.2.3",
- "@rollup/plugin-replace": "^5.0.4",
+ "@rollup/plugin-replace": "^5.0.5",
"@rollup/plugin-terser": "^0.4.4",
"@rollup/plugin-typescript": "^11.1.5",
- "@storybook/addon-essentials": "^7.5.1",
- "@storybook/addon-links": "^7.5.1",
+ "@storybook/addon-essentials": "^7.6.0",
+ "@storybook/addon-links": "^7.6.0",
"@storybook/blocks": "^7.1.1",
- "@storybook/web-components": "^7.5.1",
- "@storybook/web-components-vite": "^7.5.1",
- "@trivago/prettier-plugin-sort-imports": "^4.2.1",
- "@types/chart.js": "^2.9.39",
- "@types/codemirror": "5.60.12",
- "@types/grecaptcha": "^3.0.6",
- "@typescript-eslint/eslint-plugin": "^6.9.0",
- "@typescript-eslint/parser": "^6.9.0",
+ "@storybook/web-components": "^7.6.0",
+ "@storybook/web-components-vite": "^7.6.0",
+ "@trivago/prettier-plugin-sort-imports": "^4.3.0",
+ "@types/chart.js": "^2.9.41",
+ "@types/codemirror": "5.60.15",
+ "@types/grecaptcha": "^3.0.7",
+ "@typescript-eslint/eslint-plugin": "^6.13.0",
+ "@typescript-eslint/parser": "^6.13.0",
"babel-plugin-macros": "^3.1.0",
"babel-plugin-tsconfig-paths": "^1.0.3",
"cross-env": "^7.0.3",
- "eslint": "^8.52.0",
+ "eslint": "^8.54.0",
"eslint-config-google": "^0.14.0",
"eslint-plugin-custom-elements": "0.0.8",
"eslint-plugin-lit": "^1.10.1",
- "eslint-plugin-sonarjs": "^0.21.0",
+ "eslint-plugin-sonarjs": "^0.23.0",
"eslint-plugin-storybook": "^0.6.15",
"lit-analyzer": "^2.0.1",
"npm-run-all": "^4.1.5",
- "prettier": "^3.0.3",
+ "prettier": "^3.1.0",
"pseudolocale": "^2.0.0",
- "pyright": "^1.1.333",
+ "pyright": "^1.1.337",
"react": "^18.2.0",
"react-dom": "^18.2.0",
- "rollup": "^4.1.4",
+ "rollup": "^4.6.0",
"rollup-plugin-copy": "^3.5.0",
"rollup-plugin-cssimport": "^1.0.3",
"rollup-plugin-postcss-lit": "^2.1.0",
- "storybook": "^7.5.1",
+ "storybook": "^7.6.0",
"storybook-addon-mock": "^4.3.0",
- "ts-lit-plugin": "^2.0.0",
+ "ts-lit-plugin": "^2.0.1",
"tslib": "^2.6.2",
"turnstile-types": "^1.1.3",
- "typescript": "^5.2.2",
+ "typescript": "^5.3.2",
"vite-tsconfig-paths": "^4.2.1"
},
"optionalDependencies": {
- "@esbuild/darwin-arm64": "^0.19.5",
+ "@esbuild/darwin-arm64": "^0.19.8",
"@esbuild/linux-amd64": "^0.18.11",
- "@esbuild/linux-arm64": "^0.19.5"
+ "@esbuild/linux-arm64": "^0.19.8"
+ },
+ "engines": {
+ "node": ">=20"
}
}
diff --git a/web/rollup.config.mjs b/web/rollup.config.mjs
index db9caf6ee..49825a29d 100644
--- a/web/rollup.config.mjs
+++ b/web/rollup.config.mjs
@@ -148,7 +148,7 @@ export default [
},
// Admin interface
{
- input: "./src/admin/AdminInterface.ts",
+ input: "./src/admin/AdminInterface/AdminInterface.ts",
output: [
{
format: "es",
diff --git a/web/src/admin/AdminInterface.ts b/web/src/admin/AdminInterface.ts
deleted file mode 100644
index e59793706..000000000
--- a/web/src/admin/AdminInterface.ts
+++ /dev/null
@@ -1,296 +0,0 @@
-import { ROUTES } from "@goauthentik/admin/Routes";
-import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
-import {
- EVENT_API_DRAWER_TOGGLE,
- EVENT_NOTIFICATION_DRAWER_TOGGLE,
- EVENT_SIDEBAR_TOGGLE,
- VERSION,
-} from "@goauthentik/common/constants";
-import { configureSentry } from "@goauthentik/common/sentry";
-import { me } from "@goauthentik/common/users";
-import { WebsocketClient } from "@goauthentik/common/ws";
-import { Interface } from "@goauthentik/elements/Base";
-import "@goauthentik/elements/ak-locale-context";
-import "@goauthentik/elements/enterprise/EnterpriseStatusBanner";
-import "@goauthentik/elements/messages/MessageContainer";
-import "@goauthentik/elements/messages/MessageContainer";
-import "@goauthentik/elements/notifications/APIDrawer";
-import "@goauthentik/elements/notifications/NotificationDrawer";
-import { ID_REGEX, SLUG_REGEX, UUID_REGEX } from "@goauthentik/elements/router/Route";
-import { getURLParam, updateURLParams } from "@goauthentik/elements/router/RouteMatch";
-import "@goauthentik/elements/router/RouterOutlet";
-import "@goauthentik/elements/sidebar/Sidebar";
-import "@goauthentik/elements/sidebar/SidebarItem";
-import { spread } from "@open-wc/lit-helpers";
-
-import { msg, str } from "@lit/localize";
-import { CSSResult, TemplateResult, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators.js";
-import { map } from "lit/directives/map.js";
-
-import PFButton from "@patternfly/patternfly/components/Button/button.css";
-import PFDrawer from "@patternfly/patternfly/components/Drawer/drawer.css";
-import PFPage from "@patternfly/patternfly/components/Page/page.css";
-import PFBase from "@patternfly/patternfly/patternfly-base.css";
-
-import {
- AdminApi,
- CapabilitiesEnum,
- CoreApi,
- SessionUser,
- UiThemeEnum,
- Version,
-} from "@goauthentik/api";
-
-@customElement("ak-interface-admin")
-export class AdminInterface extends Interface {
- @property({ type: Boolean })
- sidebarOpen = true;
-
- @property({ type: Boolean })
- notificationDrawerOpen = getURLParam("notificationDrawerOpen", false);
-
- @property({ type: Boolean })
- apiDrawerOpen = getURLParam("apiDrawerOpen", false);
-
- ws: WebsocketClient;
-
- @state()
- version?: Version;
-
- @state()
- user?: SessionUser;
-
- static get styles(): CSSResult[] {
- return [
- PFBase,
- PFPage,
- PFButton,
- PFDrawer,
- css`
- .pf-c-page__main,
- .pf-c-drawer__content,
- .pf-c-page__drawer {
- z-index: auto !important;
- background-color: transparent;
- }
- .display-none {
- display: none;
- }
- .pf-c-page {
- background-color: var(--pf-c-page--BackgroundColor) !important;
- }
- /* Global page background colour */
- :host([theme="dark"]) .pf-c-page {
- --pf-c-page--BackgroundColor: var(--ak-dark-background);
- }
- `,
- ];
- }
-
- constructor() {
- super();
- this.ws = new WebsocketClient();
- this.sidebarOpen = window.innerWidth >= 1280;
- window.addEventListener("resize", () => {
- this.sidebarOpen = window.innerWidth >= 1280;
- });
- window.addEventListener(EVENT_SIDEBAR_TOGGLE, () => {
- this.sidebarOpen = !this.sidebarOpen;
- });
- window.addEventListener(EVENT_NOTIFICATION_DRAWER_TOGGLE, () => {
- this.notificationDrawerOpen = !this.notificationDrawerOpen;
- updateURLParams({
- notificationDrawerOpen: this.notificationDrawerOpen,
- });
- });
- window.addEventListener(EVENT_API_DRAWER_TOGGLE, () => {
- this.apiDrawerOpen = !this.apiDrawerOpen;
- updateURLParams({
- apiDrawerOpen: this.apiDrawerOpen,
- });
- });
- }
-
- async firstUpdated(): Promise {
- configureSentry(true);
- this.version = await new AdminApi(DEFAULT_CONFIG).adminVersionRetrieve();
- this.user = await me();
- const canAccessAdmin =
- this.user.user.isSuperuser ||
- // TODO: somehow add `access_admin_interface` to the API schema
- this.user.user.systemPermissions.includes("access_admin_interface");
- if (!canAccessAdmin && this.user.user.pk > 0) {
- window.location.assign("/if/user/");
- }
- }
-
- render(): TemplateResult {
- return html`
- `;
- }
-
- renderSidebarItems(): TemplateResult {
- // The second attribute type is of string[] to help with the 'activeWhen' control, which was
- // commonplace and singular enough to merit its own handler.
- type SidebarEntry = [
- path: string | null,
- label: string,
- attributes?: Record | string[] | null, // eslint-disable-line
- children?: SidebarEntry[],
- ];
-
- // prettier-ignore
- const sidebarContent: SidebarEntry[] = [
- ["/if/user/", msg("User interface"), { "?isAbsoluteLink": true, "?highlight": true }],
- [null, msg("Dashboards"), { "?expanded": true }, [
- ["/administration/overview", msg("Overview")],
- ["/administration/dashboard/users", msg("User Statistics")],
- ["/administration/system-tasks", msg("System Tasks")]]],
- [null, msg("Applications"), null, [
- ["/core/providers", msg("Providers"), [`^/core/providers/(?${ID_REGEX})$`]],
- ["/core/applications", msg("Applications"), [`^/core/applications/(?${SLUG_REGEX})$`]],
- ["/outpost/outposts", msg("Outposts")]]],
- [null, msg("Events"), null, [
- ["/events/log", msg("Logs"), [`^/events/log/(?${UUID_REGEX})$`]],
- ["/events/rules", msg("Notification Rules")],
- ["/events/transports", msg("Notification Transports")]]],
- [null, msg("Customisation"), null, [
- ["/policy/policies", msg("Policies")],
- ["/core/property-mappings", msg("Property Mappings")],
- ["/blueprints/instances", msg("Blueprints")],
- ["/policy/reputation", msg("Reputation scores")]]],
- [null, msg("Flows and Stages"), null, [
- ["/flow/flows", msg("Flows"), [`^/flow/flows/(?${SLUG_REGEX})$`]],
- ["/flow/stages", msg("Stages")],
- ["/flow/stages/prompts", msg("Prompts")]]],
- [null, msg("Directory"), null, [
- ["/identity/users", msg("Users"), [`^/identity/users/(?${ID_REGEX})$`]],
- ["/identity/groups", msg("Groups"), [`^/identity/groups/(?${UUID_REGEX})$`]],
- ["/identity/roles", msg("Roles"), [`^/identity/roles/(?${UUID_REGEX})$`]],
- ["/core/sources", msg("Federation and Social login"), [`^/core/sources/(?${SLUG_REGEX})$`]],
- ["/core/tokens", msg("Tokens and App passwords")],
- ["/flow/stages/invitations", msg("Invitations")]]],
- [null, msg("System"), null, [
- ["/core/tenants", msg("Tenants")],
- ["/crypto/certificates", msg("Certificates")],
- ["/outpost/integrations", msg("Outpost Integrations")]]]
- ];
-
- // Typescript requires the type here to correctly type the recursive path
- type SidebarRenderer = (_: SidebarEntry) => TemplateResult;
-
- const renderOneSidebarItem: SidebarRenderer = ([path, label, attributes, children]) => {
- const properties = Array.isArray(attributes)
- ? { ".activeWhen": attributes }
- : attributes ?? {};
- if (path) {
- properties["path"] = path;
- }
- return html`
- ${label ? html`${label} ` : nothing}
- ${map(children, renderOneSidebarItem)}
- `;
- };
-
- // prettier-ignore
- return html`
- ${this.renderNewVersionMessage()}
- ${this.renderImpersonationMessage()}
- ${map(sidebarContent, renderOneSidebarItem)}
- ${this.renderEnterpriseMessage()}
- `;
- }
-
- renderNewVersionMessage() {
- return this.version && this.version.versionCurrent !== VERSION
- ? html`
-
- ${msg("A newer version of the frontend is available.")}
-
- `
- : nothing;
- }
-
- renderImpersonationMessage() {
- return this.user?.original
- ? html` {
- new CoreApi(DEFAULT_CONFIG).coreUsersImpersonateEndRetrieve().then(() => {
- window.location.reload();
- });
- }}
- >
- ${msg(
- str`You're currently impersonating ${this.user.user.username}. Click to stop.`,
- )}
- `
- : nothing;
- }
-
- renderEnterpriseMessage() {
- return this.config?.capabilities.includes(CapabilitiesEnum.IsEnterprise)
- ? html`
-
- ${msg("Enterprise")}
-
- ${msg("Licenses")}
-
-
- `
- : nothing;
- }
-}
diff --git a/web/src/admin/AdminInterface/AdminInterface.ts b/web/src/admin/AdminInterface/AdminInterface.ts
new file mode 100644
index 000000000..834c98f37
--- /dev/null
+++ b/web/src/admin/AdminInterface/AdminInterface.ts
@@ -0,0 +1,160 @@
+import { ROUTES } from "@goauthentik/admin/Routes";
+import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
+import {
+ EVENT_API_DRAWER_TOGGLE,
+ EVENT_NOTIFICATION_DRAWER_TOGGLE,
+} from "@goauthentik/common/constants";
+import { configureSentry } from "@goauthentik/common/sentry";
+import { me } from "@goauthentik/common/users";
+import { WebsocketClient } from "@goauthentik/common/ws";
+import { Interface } from "@goauthentik/elements/Base";
+import "@goauthentik/elements/ak-locale-context";
+import "@goauthentik/elements/enterprise/EnterpriseStatusBanner";
+import "@goauthentik/elements/messages/MessageContainer";
+import "@goauthentik/elements/messages/MessageContainer";
+import "@goauthentik/elements/notifications/APIDrawer";
+import "@goauthentik/elements/notifications/NotificationDrawer";
+import { getURLParam, updateURLParams } from "@goauthentik/elements/router/RouteMatch";
+import "@goauthentik/elements/router/RouterOutlet";
+import "@goauthentik/elements/sidebar/Sidebar";
+import "@goauthentik/elements/sidebar/SidebarItem";
+
+import { CSSResult, TemplateResult, css, html } from "lit";
+import { customElement, property, state } from "lit/decorators.js";
+import { classMap } from "lit/directives/class-map.js";
+
+import PFButton from "@patternfly/patternfly/components/Button/button.css";
+import PFDrawer from "@patternfly/patternfly/components/Drawer/drawer.css";
+import PFPage from "@patternfly/patternfly/components/Page/page.css";
+import PFBase from "@patternfly/patternfly/patternfly-base.css";
+
+import { AdminApi, SessionUser, UiThemeEnum, Version } from "@goauthentik/api";
+
+import "./AdminSidebar";
+
+@customElement("ak-interface-admin")
+export class AdminInterface extends Interface {
+ @property({ type: Boolean })
+ notificationDrawerOpen = getURLParam("notificationDrawerOpen", false);
+
+ @property({ type: Boolean })
+ apiDrawerOpen = getURLParam("apiDrawerOpen", false);
+
+ ws: WebsocketClient;
+
+ @state()
+ version?: Version;
+
+ @state()
+ user?: SessionUser;
+
+ static get styles(): CSSResult[] {
+ return [
+ PFBase,
+ PFPage,
+ PFButton,
+ PFDrawer,
+ css`
+ .pf-c-page__main,
+ .pf-c-drawer__content,
+ .pf-c-page__drawer {
+ z-index: auto !important;
+ background-color: transparent;
+ }
+ .display-none {
+ display: none;
+ }
+ .pf-c-page {
+ background-color: var(--pf-c-page--BackgroundColor) !important;
+ }
+ /* Global page background colour */
+ :host([theme="dark"]) .pf-c-page {
+ --pf-c-page--BackgroundColor: var(--ak-dark-background);
+ }
+ `,
+ ];
+ }
+
+ constructor() {
+ super();
+ this.ws = new WebsocketClient();
+ window.addEventListener(EVENT_NOTIFICATION_DRAWER_TOGGLE, () => {
+ this.notificationDrawerOpen = !this.notificationDrawerOpen;
+ updateURLParams({
+ notificationDrawerOpen: this.notificationDrawerOpen,
+ });
+ });
+ window.addEventListener(EVENT_API_DRAWER_TOGGLE, () => {
+ this.apiDrawerOpen = !this.apiDrawerOpen;
+ updateURLParams({
+ apiDrawerOpen: this.apiDrawerOpen,
+ });
+ });
+ }
+
+ async firstUpdated(): Promise {
+ configureSentry(true);
+ this.version = await new AdminApi(DEFAULT_CONFIG).adminVersionRetrieve();
+ this.user = await me();
+ const canAccessAdmin =
+ this.user.user.isSuperuser ||
+ // TODO: somehow add `access_admin_interface` to the API schema
+ this.user.user.systemPermissions.includes("access_admin_interface");
+ if (!canAccessAdmin && this.user.user.pk > 0) {
+ window.location.assign("/if/user/");
+ }
+ }
+
+ render(): TemplateResult {
+ const sidebarClasses = {
+ "pf-m-light": this.activeTheme === UiThemeEnum.Light,
+ };
+
+ const drawerOpen = this.notificationDrawerOpen || this.apiDrawerOpen;
+ const drawerClasses = {
+ "pf-m-expanded": drawerOpen,
+ "pf-m-collapsed": !drawerOpen,
+ };
+
+ return html`
+ `;
+ }
+}
diff --git a/web/src/admin/AdminInterface/AdminSidebar.ts b/web/src/admin/AdminInterface/AdminSidebar.ts
new file mode 100644
index 000000000..2f973ca7e
--- /dev/null
+++ b/web/src/admin/AdminInterface/AdminSidebar.ts
@@ -0,0 +1,214 @@
+import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
+import { EVENT_SIDEBAR_TOGGLE, VERSION } from "@goauthentik/common/constants";
+import { me } from "@goauthentik/common/users";
+import { authentikConfigContext } from "@goauthentik/elements/AuthentikContexts";
+import { AKElement } from "@goauthentik/elements/Base";
+import { ID_REGEX, SLUG_REGEX, UUID_REGEX } from "@goauthentik/elements/router/Route";
+import { getRootStyle } from "@goauthentik/elements/utils/getRootStyle";
+import { spread } from "@open-wc/lit-helpers";
+
+import { consume } from "@lit-labs/context";
+import { msg, str } from "@lit/localize";
+import { TemplateResult, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators.js";
+import { map } from "lit/directives/map.js";
+
+import { AdminApi, CapabilitiesEnum, CoreApi, UiThemeEnum, Version } from "@goauthentik/api";
+import type { Config, SessionUser, UserSelf } from "@goauthentik/api";
+
+@customElement("ak-admin-sidebar")
+export class AkAdminSidebar extends AKElement {
+ @property({ type: Boolean, reflect: true })
+ open = true;
+
+ @state()
+ version: Version["versionCurrent"] | null = null;
+
+ @state()
+ impersonation: UserSelf["username"] | null = null;
+
+ @consume({ context: authentikConfigContext })
+ public config!: Config;
+
+ constructor() {
+ super();
+ new AdminApi(DEFAULT_CONFIG).adminVersionRetrieve().then((version) => {
+ this.version = version.versionCurrent;
+ });
+ me().then((user: SessionUser) => {
+ this.impersonation = user.original ? user.user.username : null;
+ });
+ this.toggleOpen = this.toggleOpen.bind(this);
+ this.checkWidth = this.checkWidth.bind(this);
+ }
+
+ // This has to be a bound method so the event listener can be removed on disconnection as
+ // needed.
+ toggleOpen() {
+ this.open = !this.open;
+ }
+
+ checkWidth() {
+ // This works just fine, but it assumes that the `--ak-sidebar--minimum-auto-width` is in
+ // REMs. If that changes, this code will have to be adjusted as well.
+ const minWidth =
+ parseFloat(getRootStyle("--ak-sidebar--minimum-auto-width")) *
+ parseFloat(getRootStyle("font-size"));
+ this.open = window.innerWidth >= minWidth;
+ }
+
+ connectedCallback() {
+ super.connectedCallback();
+ window.addEventListener(EVENT_SIDEBAR_TOGGLE, this.toggleOpen);
+ window.addEventListener("resize", this.checkWidth);
+ // After connecting to the DOM, we can now perform this check to see if the sidebar should
+ // be open by default.
+ this.checkWidth();
+ }
+
+ // The symmetry (☟, ☝) here is critical in that you want to start adding these handlers after
+ // connection, and removing them before disconnection.
+
+ disconnectedCallback() {
+ window.removeEventListener(EVENT_SIDEBAR_TOGGLE, this.toggleOpen);
+ window.removeEventListener("resize", this.checkWidth);
+ super.disconnectedCallback();
+ }
+
+ render() {
+ return html`
+
+ `;
+ }
+
+ updated() {
+ // This is permissible as`:host.classList` is not one of the properties Lit uses as a
+ // scheduling trigger. This sort of shenanigans can trigger an loop, in that it will trigger
+ // a browser reflow, which may trigger some other styling the application is monitoring,
+ // triggering a re-render which triggers a browser reflow, ad infinitum. But we've been
+ // living with that since jQuery, and it's both well-known and fortunately rare.
+ this.classList.remove("pf-m-expanded", "pf-m-collapsed");
+ this.classList.add(this.open ? "pf-m-expanded" : "pf-m-collapsed");
+ }
+
+ renderSidebarItems(): TemplateResult {
+ // The second attribute type is of string[] to help with the 'activeWhen' control, which was
+ // commonplace and singular enough to merit its own handler.
+ type SidebarEntry = [
+ path: string | null,
+ label: string,
+ attributes?: Record | string[] | null, // eslint-disable-line
+ children?: SidebarEntry[],
+ ];
+
+ // prettier-ignore
+ const sidebarContent: SidebarEntry[] = [
+ ["/if/user/", msg("User interface"), { "?isAbsoluteLink": true, "?highlight": true }],
+ [null, msg("Dashboards"), { "?expanded": true }, [
+ ["/administration/overview", msg("Overview")],
+ ["/administration/dashboard/users", msg("User Statistics")],
+ ["/administration/system-tasks", msg("System Tasks")]]],
+ [null, msg("Applications"), null, [
+ ["/core/applications", msg("Applications"), [`^/core/applications/(?${SLUG_REGEX})$`]],
+ ["/core/providers", msg("Providers"), [`^/core/providers/(?${ID_REGEX})$`]],
+ ["/outpost/outposts", msg("Outposts")]]],
+ [null, msg("Events"), null, [
+ ["/events/log", msg("Logs"), [`^/events/log/(?${UUID_REGEX})$`]],
+ ["/events/rules", msg("Notification Rules")],
+ ["/events/transports", msg("Notification Transports")]]],
+ [null, msg("Customisation"), null, [
+ ["/policy/policies", msg("Policies")],
+ ["/core/property-mappings", msg("Property Mappings")],
+ ["/blueprints/instances", msg("Blueprints")],
+ ["/policy/reputation", msg("Reputation scores")]]],
+ [null, msg("Flows and Stages"), null, [
+ ["/flow/flows", msg("Flows"), [`^/flow/flows/(?${SLUG_REGEX})$`]],
+ ["/flow/stages", msg("Stages")],
+ ["/flow/stages/prompts", msg("Prompts")]]],
+ [null, msg("Directory"), null, [
+ ["/identity/users", msg("Users"), [`^/identity/users/(?${ID_REGEX})$`]],
+ ["/identity/groups", msg("Groups"), [`^/identity/groups/(?${UUID_REGEX})$`]],
+ ["/identity/roles", msg("Roles"), [`^/identity/roles/(?${UUID_REGEX})$`]],
+ ["/core/sources", msg("Federation and Social login"), [`^/core/sources/(?${SLUG_REGEX})$`]],
+ ["/core/tokens", msg("Tokens and App passwords")],
+ ["/flow/stages/invitations", msg("Invitations")]]],
+ [null, msg("System"), null, [
+ ["/core/tenants", msg("Tenants")],
+ ["/crypto/certificates", msg("Certificates")],
+ ["/outpost/integrations", msg("Outpost Integrations")]]]
+ ];
+
+ // Typescript requires the type here to correctly type the recursive path
+ type SidebarRenderer = (_: SidebarEntry) => TemplateResult;
+
+ const renderOneSidebarItem: SidebarRenderer = ([path, label, attributes, children]) => {
+ const properties = Array.isArray(attributes)
+ ? { ".activeWhen": attributes }
+ : attributes ?? {};
+ if (path) {
+ properties["path"] = path;
+ }
+ return html`
+ ${label ? html`${label} ` : nothing}
+ ${map(children, renderOneSidebarItem)}
+ `;
+ };
+
+ // prettier-ignore
+ return html`
+ ${this.renderNewVersionMessage()}
+ ${this.renderImpersonationMessage()}
+ ${map(sidebarContent, renderOneSidebarItem)}
+ ${this.renderEnterpriseMessage()}
+ `;
+ }
+
+ renderNewVersionMessage() {
+ return this.version && this.version !== VERSION
+ ? html`
+
+ ${msg("A newer version of the frontend is available.")}
+
+ `
+ : nothing;
+ }
+
+ renderImpersonationMessage() {
+ const reload = () =>
+ new CoreApi(DEFAULT_CONFIG).coreUsersImpersonateEndRetrieve().then(() => {
+ window.location.reload();
+ });
+
+ return this.impersonation
+ ? html`
+ ${msg(
+ str`You're currently impersonating ${this.impersonation}. Click to stop.`,
+ )}
+ `
+ : nothing;
+ }
+
+ renderEnterpriseMessage() {
+ return this.config?.capabilities.includes(CapabilitiesEnum.IsEnterprise)
+ ? html`
+
+ ${msg("Enterprise")}
+
+ ${msg("Licenses")}
+
+
+ `
+ : nothing;
+ }
+}
diff --git a/web/src/admin/AdminInterface/index.ts b/web/src/admin/AdminInterface/index.ts
new file mode 100644
index 000000000..570b87e3b
--- /dev/null
+++ b/web/src/admin/AdminInterface/index.ts
@@ -0,0 +1,5 @@
+import { AdminInterface } from "./AdminInterface";
+import "./AdminInterface";
+
+export { AdminInterface };
+export default AdminInterface;
diff --git a/web/src/admin/admin-overview/DashboardUserPage.ts b/web/src/admin/admin-overview/DashboardUserPage.ts
index 94e788bf4..b3829ed6a 100644
--- a/web/src/admin/admin-overview/DashboardUserPage.ts
+++ b/web/src/admin/admin-overview/DashboardUserPage.ts
@@ -54,6 +54,7 @@ export class DashboardUserPage extends AKElement {
context__model__app: "authentik_core",
context__model__model_name: "user",
}}
+ label=${msg("Users created")}
>
@@ -66,7 +67,10 @@ export class DashboardUserPage extends AKElement {
class="pf-l-grid__item pf-m-12-col pf-m-6-col-on-xl pf-m-6-col-on-2xl big-graph-container"
>
-
+
@@ -74,7 +78,10 @@ export class DashboardUserPage extends AKElement {
class="pf-l-grid__item pf-m-12-col pf-m-6-col-on-xl pf-m-6-col-on-2xl big-graph-container"
>
-
+
diff --git a/web/src/admin/admin-overview/cards/SystemStatusCard.ts b/web/src/admin/admin-overview/cards/SystemStatusCard.ts
index eee0bca32..7c6ac276c 100644
--- a/web/src/admin/admin-overview/cards/SystemStatusCard.ts
+++ b/web/src/admin/admin-overview/cards/SystemStatusCard.ts
@@ -8,10 +8,10 @@ import { msg } from "@lit/localize";
import { TemplateResult, html } from "lit";
import { customElement, state } from "lit/decorators.js";
-import { AdminApi, OutpostsApi, System } from "@goauthentik/api";
+import { AdminApi, OutpostsApi, SystemInfo } from "@goauthentik/api";
@customElement("ak-admin-status-system")
-export class SystemStatusCard extends AdminStatusCard {
+export class SystemStatusCard extends AdminStatusCard {
now?: Date;
icon = "pf-icon pf-icon-server";
@@ -19,7 +19,7 @@ export class SystemStatusCard extends AdminStatusCard {
@state()
statusSummary?: string;
- async getPrimaryValue(): Promise {
+ async getPrimaryValue(): Promise {
this.now = new Date();
let status = await new AdminApi(DEFAULT_CONFIG).adminSystemRetrieve();
if (status.embeddedOutpostHost === "" || !status.embeddedOutpostHost.includes("http")) {
@@ -50,7 +50,7 @@ export class SystemStatusCard extends AdminStatusCard {
});
}
- getStatus(value: System): Promise {
+ getStatus(value: SystemInfo): Promise {
if (value.embeddedOutpostHost === "") {
this.statusSummary = msg("Warning");
return Promise.resolve({
diff --git a/web/src/admin/admin-overview/charts/AdminModelPerDay.ts b/web/src/admin/admin-overview/charts/AdminModelPerDay.ts
index bc88b3d83..eb4a3a4e2 100644
--- a/web/src/admin/admin-overview/charts/AdminModelPerDay.ts
+++ b/web/src/admin/admin-overview/charts/AdminModelPerDay.ts
@@ -12,6 +12,9 @@ export class AdminModelPerDay extends AKChart {
@property()
action: EventActions = EventActions.ModelCreated;
+ @property()
+ label?: string;
+
@property({ attribute: false })
query?: { [key: string]: unknown } | undefined;
@@ -33,7 +36,7 @@ export class AdminModelPerDay extends AKChart {
return {
datasets: [
{
- label: msg("Objects created"),
+ label: this.label || msg("Objects created"),
backgroundColor: "rgba(189, 229, 184, .5)",
spanGaps: true,
data:
diff --git a/web/src/admin/admin-overview/charts/SyncStatusChart.ts b/web/src/admin/admin-overview/charts/SyncStatusChart.ts
index f306a578d..28747d682 100644
--- a/web/src/admin/admin-overview/charts/SyncStatusChart.ts
+++ b/web/src/admin/admin-overview/charts/SyncStatusChart.ts
@@ -44,11 +44,11 @@ export class LDAPSyncStatusChart extends AKChart {
await Promise.all(
sources.results.map(async (element) => {
try {
- const health = await api.sourcesLdapSyncStatusList({
+ const health = await api.sourcesLdapSyncStatusRetrieve({
slug: element.slug,
});
- health.forEach((task) => {
+ health.tasks.forEach((task) => {
if (task.status !== TaskStatusEnum.Successful) {
metrics.failed += 1;
}
@@ -60,7 +60,7 @@ export class LDAPSyncStatusChart extends AKChart {
metrics.healthy += 1;
}
});
- if (health.length < 1) {
+ if (health.tasks.length < 1) {
metrics.unsynced += 1;
}
} catch {
diff --git a/web/src/admin/applications/ApplicationCheckAccessForm.ts b/web/src/admin/applications/ApplicationCheckAccessForm.ts
index 59292e17d..7f1c18e17 100644
--- a/web/src/admin/applications/ApplicationCheckAccessForm.ts
+++ b/web/src/admin/applications/ApplicationCheckAccessForm.ts
@@ -1,5 +1,5 @@
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
-import { PFColor } from "@goauthentik/elements/Label";
+import "@goauthentik/components/ak-status-label";
import { Form } from "@goauthentik/elements/forms/Form";
import "@goauthentik/elements/forms/HorizontalFormElement";
import "@goauthentik/elements/forms/SearchSelect";
@@ -57,9 +57,7 @@ export class ApplicationCheckAccessForm extends Form<{ forUser: number }> {
diff --git a/web/src/admin/applications/ApplicationForm.ts b/web/src/admin/applications/ApplicationForm.ts
index 42489f9f3..3401b1d6d 100644
--- a/web/src/admin/applications/ApplicationForm.ts
+++ b/web/src/admin/applications/ApplicationForm.ts
@@ -116,7 +116,7 @@ export class ApplicationForm extends ModelForm {
return app;
}
- handleConfirmBackchannelProviders({ items }: { items: Provider[] }) {
+ handleConfirmBackchannelProviders(items: Provider[]) {
this.backchannelProviders = items;
this.requestUpdate();
return Promise.resolve();
diff --git a/web/src/admin/applications/components/ak-backchannel-input.ts b/web/src/admin/applications/components/ak-backchannel-input.ts
index 5150b16ca..06fccc32b 100644
--- a/web/src/admin/applications/components/ak-backchannel-input.ts
+++ b/web/src/admin/applications/components/ak-backchannel-input.ts
@@ -63,7 +63,7 @@ export class AkBackchannelProvidersInput extends AKElement {
return html`
diff --git a/web/src/admin/groups/MemberSelectModal.ts b/web/src/admin/groups/MemberSelectModal.ts
index 1d5a53cc7..f573644b2 100644
--- a/web/src/admin/groups/MemberSelectModal.ts
+++ b/web/src/admin/groups/MemberSelectModal.ts
@@ -1,7 +1,7 @@
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
import { uiConfig } from "@goauthentik/common/ui/config";
import { first } from "@goauthentik/common/utils";
-import { PFColor } from "@goauthentik/elements/Label";
+import "@goauthentik/components/ak-status-label";
import "@goauthentik/elements/buttons/SpinnerButton";
import { PaginatedResponse } from "@goauthentik/elements/table/Table";
import { TableColumn } from "@goauthentik/elements/table/Table";
@@ -48,9 +48,7 @@ export class MemberSelectTable extends TableModal {
return [
html`${item.username}
${item.name} `,
- html`
- ${item.isActive ? msg("Yes") : msg("No")}
- `,
+ html` `,
html`${first(item.lastLogin?.toLocaleString(), msg("-"))}`,
];
}
diff --git a/web/src/admin/groups/RelatedGroupList.ts b/web/src/admin/groups/RelatedGroupList.ts
index d0b965648..19adf1276 100644
--- a/web/src/admin/groups/RelatedGroupList.ts
+++ b/web/src/admin/groups/RelatedGroupList.ts
@@ -3,7 +3,7 @@ import "@goauthentik/admin/groups/GroupForm";
import "@goauthentik/admin/users/GroupSelectModal";
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
import { uiConfig } from "@goauthentik/common/ui/config";
-import { PFColor } from "@goauthentik/elements/Label";
+import "@goauthentik/components/ak-status-label";
import "@goauthentik/elements/buttons/SpinnerButton";
import "@goauthentik/elements/forms/DeleteBulkForm";
import { Form } from "@goauthentik/elements/forms/Form";
@@ -145,9 +145,7 @@ export class RelatedGroupList extends Table {
return [
html`${item.name} `,
html`${item.parentName || msg("-")}`,
- html`
- ${item.isSuperuser ? msg("Yes") : msg("No")}
- `,
+ html` `,
html`
${msg("Update")}
${msg("Update Group")}
diff --git a/web/src/admin/users/RelatedUserList.ts b/web/src/admin/groups/RelatedUserList.ts
similarity index 93%
rename from web/src/admin/users/RelatedUserList.ts
rename to web/src/admin/groups/RelatedUserList.ts
index 276b172f8..2474ee2fe 100644
--- a/web/src/admin/users/RelatedUserList.ts
+++ b/web/src/admin/groups/RelatedUserList.ts
@@ -8,8 +8,8 @@ import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
import { MessageLevel } from "@goauthentik/common/messages";
import { uiConfig } from "@goauthentik/common/ui/config";
import { first } from "@goauthentik/common/utils";
+import "@goauthentik/components/ak-status-label";
import { rootInterface } from "@goauthentik/elements/Base";
-import { PFColor } from "@goauthentik/elements/Label";
import "@goauthentik/elements/buttons/ActionButton";
import "@goauthentik/elements/buttons/Dropdown";
import "@goauthentik/elements/forms/DeleteBulkForm";
@@ -24,7 +24,7 @@ import { UserOption } from "@goauthentik/elements/user/utils";
import "@patternfly/elements/pf-tooltip/pf-tooltip.js";
import { msg, str } from "@lit/localize";
-import { CSSResult, TemplateResult, html } from "lit";
+import { CSSResult, TemplateResult, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators.js";
import { ifDefined } from "lit/directives/if-defined.js";
@@ -195,9 +195,7 @@ export class RelatedUserList extends Table {
${item.username}
${item.name}
`,
- html`
- ${item.isActive ? msg("Yes") : msg("No")}
- `,
+ html` `,
html`${first(item.lastLogin?.toLocaleString(), msg("-"))}`,
html`
${msg("Update")}
@@ -402,7 +400,16 @@ export class RelatedUserList extends Table {
${msg("Create")}
${msg("Create User")}
-
+ ${this.targetGroup
+ ? html`
+
+ ${msg(
+ str`This user will be added to the group "${this.targetGroup.name}".`,
+ )}
+
+ `
+ : nothing}
+
@@ -415,7 +422,17 @@ export class RelatedUserList extends Table {
>
${msg("Create")}
${msg("Create Service account")}
-
+ ${this.targetGroup
+ ? html`
+
+ ${msg(
+ str`This user will be added to the group "${this.targetGroup.name}".`,
+ )}
+
+ `
+ : nothing}
+
+
diff --git a/web/src/admin/outposts/ServiceConnectionListPage.ts b/web/src/admin/outposts/ServiceConnectionListPage.ts
index 49ef585a4..a212358f5 100644
--- a/web/src/admin/outposts/ServiceConnectionListPage.ts
+++ b/web/src/admin/outposts/ServiceConnectionListPage.ts
@@ -4,6 +4,7 @@ import "@goauthentik/admin/outposts/ServiceConnectionKubernetesForm";
import "@goauthentik/admin/outposts/ServiceConnectionWizard";
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
import { uiConfig } from "@goauthentik/common/ui/config";
+import "@goauthentik/components/ak-status-label";
import { PFColor } from "@goauthentik/elements/Label";
import "@goauthentik/elements/buttons/SpinnerButton";
import "@goauthentik/elements/forms/DeleteBulkForm";
@@ -83,9 +84,7 @@ export class OutpostServiceConnectionListPage extends TablePage
- ${item.local ? msg("Yes") : msg("No")}
- `,
+ html` `,
html`${itemState?.healthy
? html`${ifDefined(itemState.version)} `
: html`${msg("Unhealthy")} `}`,
diff --git a/web/src/admin/policies/BoundPoliciesList.ts b/web/src/admin/policies/BoundPoliciesList.ts
index b7470a422..c9e29bf67 100644
--- a/web/src/admin/policies/BoundPoliciesList.ts
+++ b/web/src/admin/policies/BoundPoliciesList.ts
@@ -4,7 +4,7 @@ import "@goauthentik/admin/policies/PolicyWizard";
import "@goauthentik/admin/users/UserForm";
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
import { uiConfig } from "@goauthentik/common/ui/config";
-import { PFColor } from "@goauthentik/elements/Label";
+import "@goauthentik/components/ak-status-label";
import { PFSize } from "@goauthentik/elements/Spinner";
import "@goauthentik/elements/Tabs";
import "@goauthentik/elements/forms/DeleteBulkForm";
@@ -147,9 +147,7 @@ export class BoundPoliciesList extends Table {
return [
html`${item.order} `,
html`${this.getPolicyUserGroupRow(item)}`,
- html`
- ${item.enabled ? msg("Yes") : msg("No")}
- `,
+ html` `,
html`${item.timeout}`,
html` ${this.getObjectEditButton(item)}
diff --git a/web/src/admin/policies/PolicyTestForm.ts b/web/src/admin/policies/PolicyTestForm.ts
index aa874f37e..50771abbd 100644
--- a/web/src/admin/policies/PolicyTestForm.ts
+++ b/web/src/admin/policies/PolicyTestForm.ts
@@ -1,8 +1,8 @@
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
import { first } from "@goauthentik/common/utils";
+import "@goauthentik/components/ak-status-label";
import "@goauthentik/elements/CodeMirror";
import { CodeMirrorMode } from "@goauthentik/elements/CodeMirror";
-import { PFColor } from "@goauthentik/elements/Label";
import { Form } from "@goauthentik/elements/forms/Form";
import "@goauthentik/elements/forms/HorizontalFormElement";
import "@goauthentik/elements/forms/SearchSelect";
@@ -58,9 +58,7 @@ export class PolicyTestForm extends Form {
diff --git a/web/src/admin/policies/password/PasswordPolicyForm.ts b/web/src/admin/policies/password/PasswordPolicyForm.ts
index 126d7386b..96183b077 100644
--- a/web/src/admin/policies/password/PasswordPolicyForm.ts
+++ b/web/src/admin/policies/password/PasswordPolicyForm.ts
@@ -22,17 +22,14 @@ export class PasswordPolicyForm extends ModelForm {
@state()
showZxcvbn = false;
- loadInstance(pk: string): Promise {
- return new PoliciesApi(DEFAULT_CONFIG)
- .policiesPasswordRetrieve({
- policyUuid: pk,
- })
- .then((policy) => {
- this.showStatic = policy.checkStaticRules || false;
- this.showHIBP = policy.checkHaveIBeenPwned || false;
- this.showZxcvbn = policy.checkZxcvbn || false;
- return policy;
- });
+ async loadInstance(pk: string): Promise {
+ const policy = await new PoliciesApi(DEFAULT_CONFIG).policiesPasswordRetrieve({
+ policyUuid: pk,
+ });
+ this.showStatic = policy.checkStaticRules || false;
+ this.showHIBP = policy.checkHaveIBeenPwned || false;
+ this.showZxcvbn = policy.checkZxcvbn || false;
+ return policy;
}
getSuccessMessage(): string {
@@ -200,26 +197,26 @@ export class PasswordPolicyForm extends ModelForm {
)}
- ${msg("0: Too guessable: risky password. (guesses < 10^3)")}
+ ${msg("0: Too guessable: risky password. (guesses < 10^3)")}
${msg(
- "1: Very guessable: protection from throttled online attacks. (guesses < 10^6)",
+ "1: Very guessable: protection from throttled online attacks. (guesses < 10^6)",
)}
${msg(
- "2: Somewhat guessable: protection from unthrottled online attacks. (guesses < 10^8)",
+ "2: Somewhat guessable: protection from unthrottled online attacks. (guesses < 10^8)",
)}
${msg(
- "3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses < 10^10)",
+ "3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses < 10^10)",
)}
${msg(
- "4: Very unguessable: strong protection from offline slow-hash scenario. (guesses >= 10^10)",
+ "4: Very unguessable: strong protection from offline slow-hash scenario. (guesses >= 10^10)",
)}
diff --git a/web/src/admin/providers/oauth2/OAuth2ProviderForm.ts b/web/src/admin/providers/oauth2/OAuth2ProviderForm.ts
index c98ae860f..f5b59efe5 100644
--- a/web/src/admin/providers/oauth2/OAuth2ProviderForm.ts
+++ b/web/src/admin/providers/oauth2/OAuth2ProviderForm.ts
@@ -334,13 +334,14 @@ export class OAuth2ProviderFormPage extends ModelForm {
)}
>
-
+
+ )}
+ >
-
- ${this.provider.basicAuthEnabled
- ? msg("Yes")
- : msg("No")}
-
+
diff --git a/web/src/admin/sources/ldap/LDAPSourceConnectivity.ts b/web/src/admin/sources/ldap/LDAPSourceConnectivity.ts
new file mode 100644
index 000000000..34cdc2ffe
--- /dev/null
+++ b/web/src/admin/sources/ldap/LDAPSourceConnectivity.ts
@@ -0,0 +1,50 @@
+import { AKElement } from "@goauthentik/app/elements/Base";
+import "@patternfly/elements/pf-tooltip/pf-tooltip.js";
+
+import { msg } from "@lit/localize";
+import { CSSResult, TemplateResult, html } from "lit";
+import { customElement, property } from "lit/decorators.js";
+
+import PFList from "@patternfly/patternfly/components/List/list.css";
+import PFBase from "@patternfly/patternfly/patternfly-base.css";
+
+@customElement("ak-source-ldap-connectivity")
+export class LDAPSourceConnectivity extends AKElement {
+ @property()
+ connectivity?: {
+ [key: string]: {
+ [key: string]: string;
+ };
+ };
+
+ static get styles(): CSSResult[] {
+ return [PFBase, PFList];
+ }
+
+ render(): TemplateResult {
+ if (!this.connectivity) {
+ return html``;
+ }
+ return html`
+ ${Object.keys(this.connectivity).map((serverKey) => {
+ let serverLabel = html`${serverKey}`;
+ if (serverKey === "__all__") {
+ serverLabel = html`${msg("Global status")} `;
+ }
+ const server = this.connectivity![serverKey];
+ const content = html`${serverLabel}: ${server.status}`;
+ let tooltip = html`${content}`;
+ if (server.status === "ok") {
+ tooltip = html`
+
+ ${msg("Vendor")}: ${server.vendor}
+ ${msg("Version")}: ${server.version}
+
+ ${content}
+ `;
+ }
+ return html`${tooltip} `;
+ })}
+ `;
+ }
+}
diff --git a/web/src/admin/sources/ldap/LDAPSourceViewPage.ts b/web/src/admin/sources/ldap/LDAPSourceViewPage.ts
index 36129c3c4..6ac64c14b 100644
--- a/web/src/admin/sources/ldap/LDAPSourceViewPage.ts
+++ b/web/src/admin/sources/ldap/LDAPSourceViewPage.ts
@@ -1,3 +1,4 @@
+import "@goauthentik/admin/sources/ldap/LDAPSourceConnectivity";
import "@goauthentik/admin/sources/ldap/LDAPSourceForm";
import "@goauthentik/app/elements/rbac/ObjectPermissionsPage";
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
@@ -25,9 +26,9 @@ import PFBase from "@patternfly/patternfly/patternfly-base.css";
import {
LDAPSource,
+ LDAPSyncStatus,
RbacPermissionsAssignedByUsersListModelEnum,
SourcesApi,
- Task,
TaskStatusEnum,
} from "@goauthentik/api";
@@ -48,7 +49,7 @@ export class LDAPSourceViewPage extends AKElement {
source!: LDAPSource;
@state()
- syncState: Task[] = [];
+ syncState?: LDAPSyncStatus;
static get styles(): CSSResult[] {
return [PFBase, PFPage, PFButton, PFGrid, PFContent, PFCard, PFDescriptionList, PFList];
@@ -62,6 +63,51 @@ export class LDAPSourceViewPage extends AKElement {
});
}
+ renderSyncStatus(): TemplateResult {
+ if (!this.syncState) {
+ return html`${msg("No sync status.")}`;
+ }
+ if (this.syncState.isRunning) {
+ return html`${msg("Sync currently running.")}`;
+ }
+ if (this.syncState.tasks.length < 1) {
+ return html`${msg("Not synced yet.")}`;
+ }
+ return html`
+
+ ${this.syncState.tasks.map((task) => {
+ let header = "";
+ if (task.status === TaskStatusEnum.Warning) {
+ header = msg("Task finished with warnings");
+ } else if (task.status === TaskStatusEnum.Error) {
+ header = msg("Task finished with errors");
+ } else {
+ header = msg(str`Last sync: ${task.taskFinishTimestamp.toLocaleString()}`);
+ }
+ return html`
+ ${task.taskName}
+
+ ${header}
+ ${task.messages.map((m) => {
+ return html`${m} `;
+ })}
+
+ `;
+ })}
+
+ `;
+ }
+
+ load(): void {
+ new SourcesApi(DEFAULT_CONFIG)
+ .sourcesLdapSyncStatusRetrieve({
+ slug: this.source.slug,
+ })
+ .then((state) => {
+ this.syncState = state;
+ });
+ }
+
render(): TemplateResult {
if (!this.source) {
return html``;
@@ -72,13 +118,7 @@ export class LDAPSourceViewPage extends AKElement {
data-tab-title="${msg("Overview")}"
class="pf-c-page__main-section pf-m-no-padding-mobile"
@activate=${() => {
- new SourcesApi(DEFAULT_CONFIG)
- .sourcesLdapSyncStatusList({
- slug: this.source.slug,
- })
- .then((state) => {
- this.syncState = state;
- });
+ this.load();
}}
>
@@ -137,42 +177,25 @@ export class LDAPSourceViewPage extends AKElement {
-
+
+
+
${msg("Connectivity")}
+
+
+
+
-
- ${this.syncState.length < 1
- ? html`
${msg("Not synced yet.")}
`
- : html`
-
- ${this.syncState.map((task) => {
- let header = "";
- if (task.status === TaskStatusEnum.Warning) {
- header = msg("Task finished with warnings");
- } else if (task.status === TaskStatusEnum.Error) {
- header = msg("Task finished with errors");
- } else {
- header = msg(
- str`Last sync: ${task.taskFinishTimestamp.toLocaleString()}`,
- );
- }
- return html`
- ${task.taskName}
-
- ${header}
- ${task.messages.map((m) => {
- return html`${m} `;
- })}
-
- `;
- })}
-
- `}
-
+
${this.renderSyncStatus()}
`;
@@ -386,6 +387,7 @@ export class OAuthSourceForm extends ModelForm
{
class="pf-c-form-control"
required
/>
+ ${msg("Also known as Client ID.")}
{
name="consumerSecret"
>
+ ${msg("Also known as Client Secret.")}
${msg("6 digits, widely compatible")}
${msg(
"8 digits, not compatible with apps like Google Authenticator",
diff --git a/web/src/admin/stages/identification/IdentificationStageForm.ts b/web/src/admin/stages/identification/IdentificationStageForm.ts
index 769caaa76..6fad5fbb2 100644
--- a/web/src/admin/stages/identification/IdentificationStageForm.ts
+++ b/web/src/admin/stages/identification/IdentificationStageForm.ts
@@ -68,7 +68,7 @@ export class IdentificationStageForm extends ModelForm
+ return html`
${msg("Let the user identify themselves with their username or Email address.")}
@@ -169,6 +169,26 @@ export class IdentificationStageForm extends ModelForm
+
+
+
+
+
+
+
+
+ ${msg("Pretend user exists")}
+
+
+ ${msg(
+ "When enabled, the stage will always accept the given user identifier and continue.",
+ )}
+
+
{
row(item: Tenant): TemplateResult[] {
return [
html`${item.domain}`,
- html`
- ${item._default ? msg("Yes") : msg("No")}
- `,
+ html` `,
html`
${msg("Update")}
${msg("Update Tenant")}
diff --git a/web/src/admin/tokens/TokenListPage.ts b/web/src/admin/tokens/TokenListPage.ts
index ec4d1018d..953cd17dd 100644
--- a/web/src/admin/tokens/TokenListPage.ts
+++ b/web/src/admin/tokens/TokenListPage.ts
@@ -2,7 +2,7 @@ import "@goauthentik/admin/tokens/TokenForm";
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
import { intentToLabel } from "@goauthentik/common/labels";
import { uiConfig } from "@goauthentik/common/ui/config";
-import { PFColor } from "@goauthentik/elements/Label";
+import "@goauthentik/components/ak-status-label";
import "@goauthentik/elements/buttons/Dropdown";
import "@goauthentik/elements/buttons/TokenCopyButton";
import "@goauthentik/elements/forms/DeleteBulkForm";
@@ -109,9 +109,7 @@ export class TokenListPage extends TablePage {
? html`${msg("Token is managed by authentik.")} `
: html``}`,
html`${item.userObj?.username} `,
- html`
- ${item.expiring ? msg("Yes") : msg("No")}
- `,
+ html` `,
html`${item.expiring ? item.expires?.toLocaleString() : msg("-")}`,
html`${intentToLabel(item.intent ?? IntentEnum.Api)}`,
html`
diff --git a/web/src/admin/users/GroupSelectModal.ts b/web/src/admin/users/GroupSelectModal.ts
index 350095c9b..eac99d4ae 100644
--- a/web/src/admin/users/GroupSelectModal.ts
+++ b/web/src/admin/users/GroupSelectModal.ts
@@ -1,6 +1,6 @@
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
import { uiConfig } from "@goauthentik/common/ui/config";
-import { PFColor } from "@goauthentik/elements/Label";
+import "@goauthentik/components/ak-status-label";
import "@goauthentik/elements/buttons/SpinnerButton";
import { PaginatedResponse } from "@goauthentik/elements/table/Table";
import { TableColumn } from "@goauthentik/elements/table/Table";
@@ -54,9 +54,7 @@ export class GroupSelectModal extends TableModal {
html``,
- html`
- ${item.isSuperuser ? msg("Yes") : msg("No")}
- `,
+ html` `,
html`${(item.users || []).length}`,
];
}
diff --git a/web/src/admin/users/ServiceAccountForm.ts b/web/src/admin/users/ServiceAccountForm.ts
index 96dbb89be..914e5fd51 100644
--- a/web/src/admin/users/ServiceAccountForm.ts
+++ b/web/src/admin/users/ServiceAccountForm.ts
@@ -4,19 +4,30 @@ import { Form } from "@goauthentik/elements/forms/Form";
import "@goauthentik/elements/forms/HorizontalFormElement";
import { ModalForm } from "@goauthentik/elements/forms/ModalForm";
-import { msg } from "@lit/localize";
+import { msg, str } from "@lit/localize";
import { TemplateResult, html } from "lit";
import { customElement, property } from "lit/decorators.js";
import { ifDefined } from "lit/directives/if-defined.js";
-import { CoreApi, UserServiceAccountRequest, UserServiceAccountResponse } from "@goauthentik/api";
+import {
+ CoreApi,
+ Group,
+ UserServiceAccountRequest,
+ UserServiceAccountResponse,
+} from "@goauthentik/api";
-@customElement("ak-user-service-account")
+@customElement("ak-user-service-account-form")
export class ServiceAccountForm extends Form {
@property({ attribute: false })
result?: UserServiceAccountResponse;
+ @property({ attribute: false })
+ group?: Group;
+
getSuccessMessage(): string {
+ if (this.group) {
+ return msg(str`Successfully created user and added to group ${this.group.name}`);
+ }
return msg("Successfully created user.");
}
@@ -26,6 +37,14 @@ export class ServiceAccountForm extends Form {
});
this.result = result;
(this.parentElement as ModalForm).showSubmitButton = false;
+ if (this.group) {
+ await new CoreApi(DEFAULT_CONFIG).coreGroupsAddUserCreate({
+ groupUuid: this.group.pk,
+ userAccountRequest: {
+ pk: this.result.userPk,
+ },
+ });
+ }
return result;
}
diff --git a/web/src/admin/users/UserDevicesTable.ts b/web/src/admin/users/UserDevicesTable.ts
index b120c3265..06ead21df 100644
--- a/web/src/admin/users/UserDevicesTable.ts
+++ b/web/src/admin/users/UserDevicesTable.ts
@@ -15,6 +15,8 @@ export class UserDeviceTable extends Table {
@property({ type: Number })
userId?: number;
+ checkbox = true;
+
async apiEndpoint(): Promise> {
return new AuthenticatorsApi(DEFAULT_CONFIG)
.authenticatorsAdminAllList({
@@ -64,6 +66,21 @@ export class UserDeviceTable extends Table {
}
}
+ renderToolbarSelected(): TemplateResult {
+ const disabled = this.selectedElements.length < 1;
+ return html` {
+ return this.deleteWrapper(item);
+ }}
+ >
+
+ ${msg("Delete")}
+
+ `;
+ }
+
renderToolbar(): TemplateResult {
return html` {
diff --git a/web/src/admin/users/UserForm.ts b/web/src/admin/users/UserForm.ts
index 13d2ac141..061fd6f56 100644
--- a/web/src/admin/users/UserForm.ts
+++ b/web/src/admin/users/UserForm.ts
@@ -8,15 +8,18 @@ import { ModelForm } from "@goauthentik/elements/forms/ModelForm";
import "@goauthentik/elements/forms/Radio";
import YAML from "yaml";
-import { msg } from "@lit/localize";
+import { msg, str } from "@lit/localize";
import { CSSResult, TemplateResult, css, html } from "lit";
-import { customElement } from "lit/decorators.js";
+import { customElement, property } from "lit/decorators.js";
import { ifDefined } from "lit/directives/if-defined.js";
-import { CoreApi, User, UserTypeEnum } from "@goauthentik/api";
+import { CoreApi, Group, User, UserTypeEnum } from "@goauthentik/api";
@customElement("ak-user-form")
export class UserForm extends ModelForm {
+ @property({ attribute: false })
+ group?: Group;
+
static get defaultUserAttributes(): { [key: string]: unknown } {
return {};
}
@@ -42,6 +45,9 @@ export class UserForm extends ModelForm {
if (this.instance) {
return msg("Successfully updated user.");
} else {
+ if (this.group) {
+ return msg(str`Successfully created user and added to group ${this.group.name}`);
+ }
return msg("Successfully created user.");
}
}
@@ -50,21 +56,31 @@ export class UserForm extends ModelForm {
if (data.attributes === null) {
data.attributes = UserForm.defaultUserAttributes;
}
+ let user;
if (this.instance?.pk) {
- return new CoreApi(DEFAULT_CONFIG).coreUsersPartialUpdate({
+ user = await new CoreApi(DEFAULT_CONFIG).coreUsersPartialUpdate({
id: this.instance.pk,
patchedUserRequest: data,
});
} else {
data.groups = [];
- return new CoreApi(DEFAULT_CONFIG).coreUsersCreate({
+ user = await new CoreApi(DEFAULT_CONFIG).coreUsersCreate({
userRequest: data,
});
}
+ if (this.group) {
+ await new CoreApi(DEFAULT_CONFIG).coreGroupsAddUserCreate({
+ groupUuid: this.group.pk,
+ userAccountRequest: {
+ pk: user.pk,
+ },
+ });
+ }
+ return user;
}
renderForm(): TemplateResult {
- return html` {
${item.username}
${item.name === "" ? msg("") : item.name} ${userTypeToLabel(item.type)} `,
- html`
- ${item.isActive ? msg("Yes") : msg("No")}
- `,
+ html` `,
html`${first(item.lastLogin?.toLocaleString(), msg("-"))}`,
html`
${msg("Update")}
@@ -399,7 +397,7 @@ export class UserListPage extends TablePage {
${msg("Create")}
${msg("Create Service account")}
-
+
${msg("Create Service account")}
diff --git a/web/src/admin/users/UserViewPage.ts b/web/src/admin/users/UserViewPage.ts
index d752f645a..25915b64a 100644
--- a/web/src/admin/users/UserViewPage.ts
+++ b/web/src/admin/users/UserViewPage.ts
@@ -14,11 +14,11 @@ import "@goauthentik/app/elements/rbac/ObjectPermissionsPage";
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
import { EVENT_REFRESH } from "@goauthentik/common/constants";
import { userTypeToLabel } from "@goauthentik/common/labels";
+import "@goauthentik/components/ak-status-label";
import "@goauthentik/components/events/ObjectChangelog";
import "@goauthentik/components/events/UserEvents";
import { AKElement, rootInterface } from "@goauthentik/elements/Base";
import "@goauthentik/elements/CodeMirror";
-import { PFColor } from "@goauthentik/elements/Label";
import "@goauthentik/elements/PageHeader";
import { PFSize } from "@goauthentik/elements/Spinner";
import "@goauthentik/elements/Tabs";
@@ -185,9 +185,10 @@ export class UserViewPage extends AKElement {
@@ -207,9 +208,10 @@ export class UserViewPage extends AKElement {
diff --git a/web/src/common/constants.ts b/web/src/common/constants.ts
index 13671883b..459fc91a5 100644
--- a/web/src/common/constants.ts
+++ b/web/src/common/constants.ts
@@ -3,7 +3,7 @@ export const SUCCESS_CLASS = "pf-m-success";
export const ERROR_CLASS = "pf-m-danger";
export const PROGRESS_CLASS = "pf-m-in-progress";
export const CURRENT_CLASS = "pf-m-current";
-export const VERSION = "2023.10.1";
+export const VERSION = "2023.10.4";
export const TITLE_DEFAULT = "authentik";
export const ROUTE_SEPARATOR = ";";
diff --git a/web/src/common/styles/authentik.css b/web/src/common/styles/authentik.css
index a46ec8eb1..6a0000e4e 100644
--- a/web/src/common/styles/authentik.css
+++ b/web/src/common/styles/authentik.css
@@ -12,6 +12,9 @@
/* PatternFly likes to override global variables for some reason */
--ak-global--Color--100: var(--pf-global--Color--100);
+
+ /* Minimum width after which the sidebar becomes automatic */
+ --ak-sidebar--minimum-auto-width: 80rem;
}
::-webkit-scrollbar {
diff --git a/web/src/components/ak-status-label.ts b/web/src/components/ak-status-label.ts
new file mode 100644
index 000000000..f2ff005bf
--- /dev/null
+++ b/web/src/components/ak-status-label.ts
@@ -0,0 +1,116 @@
+import { AKElement } from "@goauthentik/elements/Base";
+
+import { msg } from "@lit/localize";
+import { css, html } from "lit";
+import { customElement, property } from "lit/decorators.js";
+import { classMap } from "lit/directives/class-map.js";
+
+import PFLabel from "@patternfly/patternfly/components/Label/label.css";
+import PFBase from "@patternfly/patternfly/patternfly-base.css";
+
+const statusNames = ["error", "warning", "info"] as const;
+type StatusName = (typeof statusNames)[number];
+
+const statusToDetails = new Map([
+ ["error", ["pf-m-red", "fa-times"]],
+ ["warning", ["pf-m-orange", "fa-exclamation-triangle"]],
+ ["info", ["pf-m-gray", "fa-info-circle"]],
+]);
+
+const styles = css`
+ :host {
+ --pf-c-label--m-gray--BackgroundColor: var(--pf-global--palette--black-100);
+ --pf-c-label--m-gray__icon--Color: var(--pf-global--primary-color--100);
+ --pf-c-label--m-gray__content--Color: var(--pf-global--info-color--200);
+ --pf-c-label--m-gray__content--before--BorderColor: var(--pf-global--palette--black-400);
+ --pf-c-label--m-gray__content--link--hover--before--BorderColor: var(
+ --pf-global--primary-color--100
+ );
+ --pf-c-label--m-gray__content--link--focus--before--BorderColor: var(
+ --pf-global--primary-color--100
+ );
+ }
+
+ .pf-c-label.pf-m-gray {
+ --pf-c-label--BackgroundColor: var(--pf-c-label--m-gray--BackgroundColor);
+ --pf-c-label__icon--Color: var(--pf-c-label--m-gray__icon--Color);
+ --pf-c-label__content--Color: var(--pf-c-label--m-gray__content--Color);
+ --pf-c-label__content--before--BorderColor: var(
+ --pf-c-label--m-gray__content--before--BorderColor
+ );
+ --pf-c-label__content--link--hover--before--BorderColor: var(
+ --pf-c-label--m-gray__content--link--hover--before--BorderColor
+ );
+ --pf-c-label__content--link--focus--before--BorderColor: var(
+ --pf-c-label--m-gray__content--link--focus--before--BorderColor
+ );
+ }
+`;
+
+/**
+ * A boolean status indicator
+ *
+ * Based on the Patternfly "label" pattern, this component exists to display "Yes" or "No", but this
+ * is configurable.
+ *
+ * When the boolean attribute `good` is present, the background will be green and the icon will be a
+ * ✓. If the `good` attribute is not present, the background will be a warning color and an
+ * alternative symbol. Which color and symbol depends on the `type` of the negative status we want
+ * to show:
+ *
+ * - type="error" (default): A Red ✖
+ * - type="warning" An orange ⚠
+ * - type="info" A grey ⓘ
+ *
+ * By default, the messages for "good" and "other" are "Yes" and "No" respectively, but these can be
+ * customized with the attributes `good-label` and `bad-label`.
+ */
+
+@customElement("ak-status-label")
+export class AkStatusLabel extends AKElement {
+ static get styles() {
+ return [PFBase, PFLabel, styles];
+ }
+
+ @property({ type: Boolean })
+ good = false;
+
+ @property({ type: String, attribute: "good-label" })
+ goodLabel = msg("Yes");
+
+ @property({ type: String, attribute: "bad-label" })
+ badLabel = msg("No");
+
+ @property({ type: Boolean })
+ compact = false;
+
+ @property({ type: String })
+ type: StatusName = "error";
+
+ render() {
+ const details = statusToDetails.get(this.type);
+ if (!details) {
+ throw new Error(`Bad status type [${this.type}] passed to ak-status-label`);
+ }
+
+ const [label, color, icon] = this.good
+ ? [this.goodLabel, "pf-m-green", "fa-check"]
+ : [this.badLabel, ...details];
+
+ const classes = {
+ "pf-c-label": true,
+ [color]: true,
+ "pf-m-compact": this.compact,
+ };
+
+ return html`
+
+
+ ${label}
+
+ `;
+ }
+}
+
+export default AkStatusLabel;
diff --git a/web/src/components/stories/ak-number-input.stories.ts b/web/src/components/stories/ak-number-input.stories.ts
index 642a543a8..e1c991fa7 100644
--- a/web/src/components/stories/ak-number-input.stories.ts
+++ b/web/src/components/stories/ak-number-input.stories.ts
@@ -39,9 +39,8 @@ const container = (testItem: TemplateResult) =>
export const NumberInput = () => {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const displayChange = (ev: any) => {
- document.getElementById(
- "number-message-pad",
- )!.innerText = `Value selected: ${JSON.stringify(ev.target.value, null, 2)}`;
+ document.getElementById("number-message-pad")!.innerText =
+ `Value selected: ${JSON.stringify(ev.target.value, null, 2)}`;
};
return container(
diff --git a/web/src/components/stories/ak-status-label.stories.ts b/web/src/components/stories/ak-status-label.stories.ts
new file mode 100644
index 000000000..ab525a20e
--- /dev/null
+++ b/web/src/components/stories/ak-status-label.stories.ts
@@ -0,0 +1,101 @@
+import "@goauthentik/elements/messages/MessageContainer";
+import { Meta } from "@storybook/web-components";
+
+import { TemplateResult, html } from "lit";
+
+import "../ak-status-label";
+import AkStatusLabel from "../ak-status-label";
+
+const metadata: Meta = {
+ title: "Components / App Status Label",
+ component: "ak-status-label",
+ parameters: {
+ docs: {
+ description: {
+ component: "A status label display",
+ },
+ },
+ },
+};
+
+export default metadata;
+
+const container = (testItem: TemplateResult) =>
+ html`
+
+ ${testItem}
+
`;
+
+export const AppIcon = () => {
+ // prettier-ignore
+ return container(html`
+
+ Good
+
+
+
+
+ Bad (Default)
+
+
+
+
+ Programmatically Good
+
+
+
+
+ Programmatically Bad
+
+
+
+
+ Good Warning
+
+
+
+
+ Bad Warning
+
+
+
+
+ Good Info
+
+
+
+
+ Bad Info
+
+
+
+
+ Good With Alternative Message
+
+
+
+
+ Bad with Alternative Message
+
+
+
+
+ Good, Compact
+
+
+
+
+ Bad, Compact
+
+
+
+
+
+ `);
+};
diff --git a/web/src/components/stories/ak-switch-input.stories.ts b/web/src/components/stories/ak-switch-input.stories.ts
index 530e8c368..4985d7891 100644
--- a/web/src/components/stories/ak-switch-input.stories.ts
+++ b/web/src/components/stories/ak-switch-input.stories.ts
@@ -46,9 +46,8 @@ export const SwitchInput = () => {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const displayChange = (ev: any) => {
- document.getElementById(
- "switch-message-pad",
- )!.innerText = `Value selected: ${JSON.stringify(ev.target.checked, null, 2)}`;
+ document.getElementById("switch-message-pad")!.innerText =
+ `Value selected: ${JSON.stringify(ev.target.checked, null, 2)}`;
};
return container(
diff --git a/web/src/components/stories/ak-textarea-input.stories.ts b/web/src/components/stories/ak-textarea-input.stories.ts
index cab3c47ff..9afb1dd9e 100644
--- a/web/src/components/stories/ak-textarea-input.stories.ts
+++ b/web/src/components/stories/ak-textarea-input.stories.ts
@@ -39,9 +39,8 @@ const container = (testItem: TemplateResult) =>
export const TextareaInput = () => {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const displayChange = (ev: any) => {
- document.getElementById(
- "textarea-message-pad",
- )!.innerText = `Value selected: ${JSON.stringify(ev.target.value, null, 2)}`;
+ document.getElementById("textarea-message-pad")!.innerText =
+ `Value selected: ${JSON.stringify(ev.target.value, null, 2)}`;
};
return container(
diff --git a/web/src/components/stories/ak-toggle-group.stories.ts b/web/src/components/stories/ak-toggle-group.stories.ts
index 31b2e6c7f..ed35571f6 100644
--- a/web/src/components/stories/ak-toggle-group.stories.ts
+++ b/web/src/components/stories/ak-toggle-group.stories.ts
@@ -54,9 +54,8 @@ const testOptions = [
export const ToggleGroup = () => {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const displayChange = (ev: any) => {
- document.getElementById(
- "toggle-message-pad",
- )!.innerText = `Value selected: ${ev.detail.value}`;
+ document.getElementById("toggle-message-pad")!.innerText =
+ `Value selected: ${ev.detail.value}`;
};
return container(
diff --git a/web/src/elements/AuthentikContexts.ts b/web/src/elements/AuthentikContexts.ts
new file mode 100644
index 000000000..97a89a881
--- /dev/null
+++ b/web/src/elements/AuthentikContexts.ts
@@ -0,0 +1,7 @@
+import { createContext } from "@lit-labs/context";
+
+import { type Config } from "@goauthentik/api";
+
+export const authentikConfigContext = createContext(Symbol("authentik-config-context"));
+
+export default authentikConfigContext;
diff --git a/web/src/elements/Base.ts b/web/src/elements/Base.ts
index 7b2420454..46c983aad 100644
--- a/web/src/elements/Base.ts
+++ b/web/src/elements/Base.ts
@@ -2,7 +2,9 @@ import { config, tenant } from "@goauthentik/common/api/config";
import { EVENT_THEME_CHANGE } from "@goauthentik/common/constants";
import { UIConfig, uiConfig } from "@goauthentik/common/ui/config";
import { adaptCSS } from "@goauthentik/common/utils";
+import { authentikConfigContext } from "@goauthentik/elements/AuthentikContexts";
+import { ContextProvider } from "@lit-labs/context";
import { localized } from "@lit/localize";
import { CSSResult, LitElement } from "lit";
import { state } from "lit/decorators.js";
@@ -181,8 +183,23 @@ export class Interface extends AKElement implements AkInterface {
@state()
uiConfig?: UIConfig;
+ _configContext = new ContextProvider(this, {
+ context: authentikConfigContext,
+ initialValue: undefined,
+ });
+
+ _config?: Config;
+
@state()
- config?: Config;
+ set config(c: Config) {
+ this._config = c;
+ this._configContext.setValue(c);
+ this.requestUpdate();
+ }
+
+ get config(): Config | undefined {
+ return this._config;
+ }
constructor() {
super();
diff --git a/web/src/elements/buttons/SpinnerButton/BaseTaskButton.ts b/web/src/elements/buttons/SpinnerButton/BaseTaskButton.ts
index 0b59a7937..653055ce4 100644
--- a/web/src/elements/buttons/SpinnerButton/BaseTaskButton.ts
+++ b/web/src/elements/buttons/SpinnerButton/BaseTaskButton.ts
@@ -5,6 +5,7 @@ import { CustomEmitterElement } from "@goauthentik/elements/utils/eventEmitter";
import { Task, TaskStatus } from "@lit-labs/task";
import { css, html } from "lit";
+import { property } from "lit/decorators.js";
import PFButton from "@patternfly/patternfly/components/Button/button.css";
import PFSpinner from "@patternfly/patternfly/components/Spinner/spinner.css";
@@ -57,6 +58,9 @@ export abstract class BaseTaskButton extends CustomEmitterElement(AKElement) {
actionTask: Task;
+ @property({ type: Boolean })
+ disabled = false;
+
constructor() {
super();
this.onSuccess = this.onSuccess.bind(this);
@@ -121,6 +125,7 @@ export abstract class BaseTaskButton extends CustomEmitterElement(AKElement) {
part="spinner-button"
class="pf-c-button pf-m-progress ${this.buttonClasses}"
@click=${this.onClick}
+ ?disabled=${this.disabled}
>
${this.actionTask.render({ pending: () => this.spinner })}
diff --git a/web/src/elements/forms/FormElement.ts b/web/src/elements/forms/FormElement.ts
index bb408af88..b28c3bd7d 100644
--- a/web/src/elements/forms/FormElement.ts
+++ b/web/src/elements/forms/FormElement.ts
@@ -6,19 +6,20 @@ import { customElement, property } from "lit/decorators.js";
import PFForm from "@patternfly/patternfly/components/Form/form.css";
import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css";
+import PFBase from "@patternfly/patternfly/patternfly-base.css";
import { ErrorDetail } from "@goauthentik/api";
/**
* This is used in two places outside of Flow, and in both cases is used primarily to
- * display content, not take input. It displays the TOPT QR code, and the static
+ * display content, not take input. It displays the TOTP QR code, and the static
* recovery tokens. But it's used a lot in Flow.
*/
@customElement("ak-form-element")
export class FormElement extends AKElement {
static get styles(): CSSResult[] {
- return [PFForm, PFFormControl];
+ return [PFBase, PFForm, PFFormControl];
}
@property()
@@ -28,7 +29,16 @@ export class FormElement extends AKElement {
required = false;
@property({ attribute: false })
- errors?: ErrorDetail[];
+ set errors(value: ErrorDetail[] | undefined) {
+ this._errors = value;
+ const hasError = (value || []).length > 0;
+ this.querySelectorAll("input").forEach((input) => {
+ input.setAttribute("aria-invalid", hasError.toString());
+ });
+ this.requestUpdate();
+ }
+
+ _errors?: ErrorDetail[];
updated(): void {
this.querySelectorAll("input[autofocus]").forEach((input) => {
@@ -45,8 +55,12 @@ export class FormElement extends AKElement {
: html``}
- ${(this.errors || []).map((error) => {
- return html`${error.string}
`;
+ ${(this._errors || []).map((error) => {
+ return html`
+
+ ${error.string}
+
`;
})}
`;
}
diff --git a/web/src/elements/oauth/UserRefreshList.ts b/web/src/elements/oauth/UserRefreshList.ts
index 288bf032b..2c5915f74 100644
--- a/web/src/elements/oauth/UserRefreshList.ts
+++ b/web/src/elements/oauth/UserRefreshList.ts
@@ -1,6 +1,6 @@
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
import { uiConfig } from "@goauthentik/common/ui/config";
-import { PFColor } from "@goauthentik/elements/Label";
+import "@goauthentik/components/ak-status-label";
import "@goauthentik/elements/forms/DeleteBulkForm";
import { PaginatedResponse } from "@goauthentik/elements/table/Table";
import { Table, TableColumn } from "@goauthentik/elements/table/Table";
@@ -85,9 +85,7 @@ export class UserOAuthRefreshList extends Table {
row(item: TokenModel): TemplateResult[] {
return [
html` ${item.provider?.name} `,
- html`
- ${item.revoked ? msg("Yes") : msg("No")}
- `,
+ html` `,
html`${item.expires?.toLocaleString()}`,
html`${item.scope.join(", ")}`,
];
diff --git a/web/src/elements/sidebar/SidebarItem.ts b/web/src/elements/sidebar/SidebarItem.ts
index 9d5374736..26cdb975e 100644
--- a/web/src/elements/sidebar/SidebarItem.ts
+++ b/web/src/elements/sidebar/SidebarItem.ts
@@ -144,47 +144,84 @@ export class SidebarItem extends AKElement {
return this.renderInner();
}
- renderInner(): TemplateResult {
- if (this.childItems.length > 0) {
- return html`
+ {
+ this.expanded = !this.expanded;
+ }}
>
- {
- this.expanded = !this.expanded;
- }}
- >
-
-
-
-
-
+
+
+
+
-
-
- `;
+
+
+
+ `;
+ }
+
+ renderWithPathAndChildren() {
+ return html`
+
+ {
+ this.expanded = !this.expanded;
+ }}
+ >
+
+
+
+
+
+
+
+ `;
+ }
+
+ renderWithPath() {
+ return html`
+
+
+
+ `;
+ }
+
+ renderWithLabel() {
+ html`
+
+
+
+ `;
+ }
+
+ renderInner() {
+ if (this.childItems.length > 0) {
+ return this.path ? this.renderWithPathAndChildren() : this.renderWithChildren();
}
+
return html`
- ${this.path
- ? html`
-
-
-
- `
- : html`
-
-
-
- `}
+ ${this.path ? this.renderWithPath() : this.renderWithLabel()}
`;
}
}
diff --git a/web/src/elements/table/Table.ts b/web/src/elements/table/Table.ts
index 642af4801..6175b5296 100644
--- a/web/src/elements/table/Table.ts
+++ b/web/src/elements/table/Table.ts
@@ -194,7 +194,6 @@ export abstract class Table extends AKElement {
this.data = await this.apiEndpoint(this.page);
this.error = undefined;
this.page = this.data.pagination.current;
- const newSelected: T[] = [];
const newExpanded: T[] = [];
this.data.results.forEach((res) => {
const jsonRes = JSON.stringify(res);
@@ -214,18 +213,12 @@ export abstract class Table extends AKElement {
);
};
}
-
- const selectedIndex = this.selectedElements.findIndex(comp);
- if (selectedIndex > -1) {
- newSelected.push(res);
- }
const expandedIndex = this.expandedElements.findIndex(comp);
if (expandedIndex > -1) {
newExpanded.push(res);
}
});
this.isLoading = false;
- this.selectedElements = newSelected;
this.expandedElements = newExpanded;
} catch (ex) {
this.isLoading = false;
diff --git a/web/src/elements/utils/getRootStyle.ts b/web/src/elements/utils/getRootStyle.ts
new file mode 100644
index 000000000..f91d63e5f
--- /dev/null
+++ b/web/src/elements/utils/getRootStyle.ts
@@ -0,0 +1,5 @@
+export function getRootStyle(selector: string, element: HTMLElement = document.documentElement) {
+ return getComputedStyle(element, null).getPropertyValue(selector);
+}
+
+export default getRootStyle;
diff --git a/web/src/flow/stages/identification/IdentificationStage.ts b/web/src/flow/stages/identification/IdentificationStage.ts
index 49b530026..65b30a73c 100644
--- a/web/src/flow/stages/identification/IdentificationStage.ts
+++ b/web/src/flow/stages/identification/IdentificationStage.ts
@@ -75,16 +75,19 @@ export class IdentificationStage extends BaseStage<
// meaning that without the auto-redirect the user would only have the option
// to manually click on the source button
if ((this.challenge.userFields || []).length !== 0) return;
+ // we also don't want to auto-redirect if there's a passwordless URL configured
+ if (this.challenge.passwordlessUrl) return;
const source = this.challenge.sources[0];
this.host.challenge = source.challenge;
}
createHelperForm(): void {
+ const compatMode = "ShadyDOM" in window;
this.form = document.createElement("form");
document.documentElement.appendChild(this.form);
// Only add the additional username input if we're in a shadow dom
// otherwise it just confuses browsers
- if (!("ShadyDOM" in window)) {
+ if (!compatMode) {
// This is a workaround for the fact that we're in a shadow dom
// adapted from https://github.com/home-assistant/frontend/issues/3133
const username = document.createElement("input");
@@ -104,30 +107,33 @@ export class IdentificationStage extends BaseStage<
};
this.form.appendChild(username);
}
- const password = document.createElement("input");
- password.setAttribute("type", "password");
- password.setAttribute("name", "password");
- password.setAttribute("autocomplete", "current-password");
- password.onkeyup = (ev: KeyboardEvent) => {
- if (ev.key == "Enter") {
- this.submitForm(ev);
- }
- const el = ev.target as HTMLInputElement;
- // Because the password field is not actually on this page,
- // and we want to 'prefill' the password for the user,
- // save it globally
- PasswordManagerPrefill.password = el.value;
- // Because password managers fill username, then password,
- // we need to re-focus the uid_field here too
- (this.shadowRoot || this)
- .querySelectorAll("input[name=uidField]")
- .forEach((input) => {
- // Because we assume only one input field exists that matches this
- // call focus so the user can press enter
- input.focus();
- });
- };
- this.form.appendChild(password);
+ // Only add the password field when we don't already show a password field
+ if (!compatMode && !this.challenge.passwordFields) {
+ const password = document.createElement("input");
+ password.setAttribute("type", "password");
+ password.setAttribute("name", "password");
+ password.setAttribute("autocomplete", "current-password");
+ password.onkeyup = (ev: KeyboardEvent) => {
+ if (ev.key == "Enter") {
+ this.submitForm(ev);
+ }
+ const el = ev.target as HTMLInputElement;
+ // Because the password field is not actually on this page,
+ // and we want to 'prefill' the password for the user,
+ // save it globally
+ PasswordManagerPrefill.password = el.value;
+ // Because password managers fill username, then password,
+ // we need to re-focus the uid_field here too
+ (this.shadowRoot || this)
+ .querySelectorAll("input[name=uidField]")
+ .forEach((input) => {
+ // Because we assume only one input field exists that matches this
+ // call focus so the user can press enter
+ input.focus();
+ });
+ };
+ this.form.appendChild(password);
+ }
const totp = document.createElement("input");
totp.setAttribute("type", "text");
totp.setAttribute("name", "code");
diff --git a/web/src/flow/stages/password/PasswordStage.ts b/web/src/flow/stages/password/PasswordStage.ts
index 774a1f5b3..36e301749 100644
--- a/web/src/flow/stages/password/PasswordStage.ts
+++ b/web/src/flow/stages/password/PasswordStage.ts
@@ -28,6 +28,11 @@ export class PasswordStage extends BaseStage 0;
+ }
+
renderInput(): HTMLInputElement {
this.input = document.createElement("input");
this.input.type = "password";
@@ -38,6 +43,7 @@ export class PasswordStage extends BaseStage {
diff --git a/web/src/user/user-settings/tokens/UserTokenList.ts b/web/src/user/user-settings/tokens/UserTokenList.ts
index f32b06173..82cadeee1 100644
--- a/web/src/user/user-settings/tokens/UserTokenList.ts
+++ b/web/src/user/user-settings/tokens/UserTokenList.ts
@@ -2,7 +2,7 @@ import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
import { intentToLabel } from "@goauthentik/common/labels";
import { uiConfig } from "@goauthentik/common/ui/config";
import { me } from "@goauthentik/common/users";
-import { PFColor } from "@goauthentik/elements/Label";
+import "@goauthentik/components/ak-status-label";
import "@goauthentik/elements/buttons/Dropdown";
import "@goauthentik/elements/buttons/ModalButton";
import "@goauthentik/elements/buttons/TokenCopyButton";
@@ -97,9 +97,7 @@ export class UserTokenList extends Table {
-
- ${item.expiring ? msg("Yes") : msg("No")}
-
+
diff --git a/web/xliff/de.xlf b/web/xliff/de.xlf
index 1e95e6975..cacf5580c 100644
--- a/web/xliff/de.xlf
+++ b/web/xliff/de.xlf
@@ -1954,22 +1954,6 @@
If the password's score is less than or equal this value, the policy will fail.
-
- 0: Too guessable: risky password. (guesses < 10^3)
- Riskantes Passwort, einfach zu erraten. (Anzahl Versuche < 10^3)
-
-
- 1: Very guessable: protection from throttled online attacks. (guesses < 10^6)
-
-
- 2: Somewhat guessable: protection from unthrottled online attacks. (guesses < 10^8)
-
-
- 3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses < 10^10)
-
-
- 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses >= 10^10)
-
Checks the value from the policy request against several rules, mostly used to ensure password strength.
Überprüft den Wert aus der Richtlinienanforderung anhand mehrerer Regeln, die hauptsächlich zur Gewährleistung der Kennwortstärke verwendet werden.
@@ -5005,9 +4989,9 @@ Bindings to groups/users are checked against the user of the event.
Eine neuere Version des Frontends ist verfügbar.
- You're currently impersonating . Click to stop.
+ You're currently impersonating . Click to stop.
Sie geben sich gerade als
- aus. Klicken Sie zum Stoppen.
+ aus. Klicken Sie zum Stoppen.
User interface
@@ -6037,6 +6021,60 @@ Bindings to groups/users are checked against the user of the event.
User type used for newly created users.
+
+
+ Users created
+
+
+ Failed logins
+
+
+ Also known as Client ID.
+
+
+ Also known as Client Secret.
+
+
+ Global status
+
+
+ Vendor
+
+
+ No sync status.
+
+
+ Sync currently running.
+
+
+ Connectivity
+
+
+ 0: Too guessable: risky password. (guesses < 10^3)
+
+
+ 1: Very guessable: protection from throttled online attacks. (guesses < 10^6)
+
+
+ 2: Somewhat guessable: protection from unthrottled online attacks. (guesses < 10^8)
+
+
+ 3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses < 10^10)
+
+
+ 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses >= 10^10)
+
+
+ Successfully created user and added to group
+
+
+ This user will be added to the group " ".
+
+
+ Pretend user exists
+
+
+ When enabled, the stage will always accept the given user identifier and continue.