Compare commits
1 Commits
website/in
...
providers/
| Author | SHA1 | Date | |
|---|---|---|---|
| faf8bf591f |
@ -7,9 +7,6 @@ charset = utf-8
|
|||||||
trim_trailing_whitespace = true
|
trim_trailing_whitespace = true
|
||||||
insert_final_newline = true
|
insert_final_newline = true
|
||||||
|
|
||||||
[*.toml]
|
|
||||||
indent_size = 2
|
|
||||||
|
|
||||||
[*.html]
|
[*.html]
|
||||||
indent_size = 2
|
indent_size = 2
|
||||||
|
|
||||||
|
|||||||
22
.github/workflows/ci-website.yml
vendored
22
.github/workflows/ci-website.yml
vendored
@ -41,27 +41,6 @@ jobs:
|
|||||||
- name: test
|
- name: test
|
||||||
working-directory: website/
|
working-directory: website/
|
||||||
run: npm test
|
run: npm test
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
name: ${{ matrix.job }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
job:
|
|
||||||
- build
|
|
||||||
- build:integrations
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version-file: website/package.json
|
|
||||||
cache: "npm"
|
|
||||||
cache-dependency-path: website/package-lock.json
|
|
||||||
- working-directory: website/
|
|
||||||
run: npm ci
|
|
||||||
- name: build
|
|
||||||
working-directory: website/
|
|
||||||
run: npm run ${{ matrix.job }}
|
|
||||||
build-container:
|
build-container:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
permissions:
|
||||||
@ -115,7 +94,6 @@ jobs:
|
|||||||
needs:
|
needs:
|
||||||
- lint
|
- lint
|
||||||
- test
|
- test
|
||||||
- build
|
|
||||||
- build-container
|
- build-container
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
|
|||||||
@ -386,23 +386,8 @@ class UserViewSet(UsedByMixin, ModelViewSet):
|
|||||||
queryset = User.objects.none()
|
queryset = User.objects.none()
|
||||||
ordering = ["username"]
|
ordering = ["username"]
|
||||||
serializer_class = UserSerializer
|
serializer_class = UserSerializer
|
||||||
filterset_class = UsersFilter
|
|
||||||
search_fields = ["username", "name", "is_active", "email", "uuid", "attributes"]
|
search_fields = ["username", "name", "is_active", "email", "uuid", "attributes"]
|
||||||
|
filterset_class = UsersFilter
|
||||||
def get_ql_fields(self):
|
|
||||||
from djangoql.schema import BoolField, StrField
|
|
||||||
|
|
||||||
from authentik.enterprise.search.fields import ChoiceSearchField, JSONSearchField
|
|
||||||
|
|
||||||
return [
|
|
||||||
StrField(User, "username"),
|
|
||||||
StrField(User, "name"),
|
|
||||||
StrField(User, "email"),
|
|
||||||
StrField(User, "path"),
|
|
||||||
BoolField(User, "is_active", nullable=True),
|
|
||||||
ChoiceSearchField(User, "type"),
|
|
||||||
JSONSearchField(User, "attributes"),
|
|
||||||
]
|
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
base_qs = User.objects.all().exclude_anonymous()
|
base_qs = User.objects.all().exclude_anonymous()
|
||||||
|
|||||||
@ -18,7 +18,7 @@ from django.http import HttpRequest
|
|||||||
from django.utils.functional import SimpleLazyObject, cached_property
|
from django.utils.functional import SimpleLazyObject, cached_property
|
||||||
from django.utils.timezone import now
|
from django.utils.timezone import now
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
from django_cte import CTE, with_cte
|
from django_cte import CTEQuerySet, With
|
||||||
from guardian.conf import settings
|
from guardian.conf import settings
|
||||||
from guardian.mixins import GuardianUserMixin
|
from guardian.mixins import GuardianUserMixin
|
||||||
from model_utils.managers import InheritanceManager
|
from model_utils.managers import InheritanceManager
|
||||||
@ -136,7 +136,7 @@ class AttributesMixin(models.Model):
|
|||||||
return instance, False
|
return instance, False
|
||||||
|
|
||||||
|
|
||||||
class GroupQuerySet(QuerySet):
|
class GroupQuerySet(CTEQuerySet):
|
||||||
def with_children_recursive(self):
|
def with_children_recursive(self):
|
||||||
"""Recursively get all groups that have the current queryset as parents
|
"""Recursively get all groups that have the current queryset as parents
|
||||||
or are indirectly related."""
|
or are indirectly related."""
|
||||||
@ -165,9 +165,9 @@ class GroupQuerySet(QuerySet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Build the recursive query, see above
|
# Build the recursive query, see above
|
||||||
cte = CTE.recursive(make_cte)
|
cte = With.recursive(make_cte)
|
||||||
# Return the result, as a usable queryset for Group.
|
# Return the result, as a usable queryset for Group.
|
||||||
return with_cte(cte, select=cte.join(Group, group_uuid=cte.col.group_uuid))
|
return cte.join(Group, group_uuid=cte.col.group_uuid).with_cte(cte)
|
||||||
|
|
||||||
|
|
||||||
class Group(SerializerModel, AttributesMixin):
|
class Group(SerializerModel, AttributesMixin):
|
||||||
|
|||||||
@ -114,7 +114,6 @@ class TestApplicationsAPI(APITestCase):
|
|||||||
self.assertJSONEqual(
|
self.assertJSONEqual(
|
||||||
response.content.decode(),
|
response.content.decode(),
|
||||||
{
|
{
|
||||||
"autocomplete": {},
|
|
||||||
"pagination": {
|
"pagination": {
|
||||||
"next": 0,
|
"next": 0,
|
||||||
"previous": 0,
|
"previous": 0,
|
||||||
@ -168,7 +167,6 @@ class TestApplicationsAPI(APITestCase):
|
|||||||
self.assertJSONEqual(
|
self.assertJSONEqual(
|
||||||
response.content.decode(),
|
response.content.decode(),
|
||||||
{
|
{
|
||||||
"autocomplete": {},
|
|
||||||
"pagination": {
|
"pagination": {
|
||||||
"next": 0,
|
"next": 0,
|
||||||
"previous": 0,
|
"previous": 0,
|
||||||
|
|||||||
@ -119,17 +119,17 @@ class TestTrimPasswordHistory(TestCase):
|
|||||||
[
|
[
|
||||||
UserPasswordHistory(
|
UserPasswordHistory(
|
||||||
user=self.user,
|
user=self.user,
|
||||||
old_password="hunter1", # nosec
|
old_password="hunter1", # nosec B106
|
||||||
created_at=_now - timedelta(days=3),
|
created_at=_now - timedelta(days=3),
|
||||||
),
|
),
|
||||||
UserPasswordHistory(
|
UserPasswordHistory(
|
||||||
user=self.user,
|
user=self.user,
|
||||||
old_password="hunter2", # nosec
|
old_password="hunter2", # nosec B106
|
||||||
created_at=_now - timedelta(days=2),
|
created_at=_now - timedelta(days=2),
|
||||||
),
|
),
|
||||||
UserPasswordHistory(
|
UserPasswordHistory(
|
||||||
user=self.user,
|
user=self.user,
|
||||||
old_password="hunter3", # nosec
|
old_password="hunter3", # nosec B106
|
||||||
created_at=_now,
|
created_at=_now,
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|||||||
@ -1,12 +0,0 @@
|
|||||||
"""Enterprise app config"""
|
|
||||||
|
|
||||||
from authentik.enterprise.apps import EnterpriseConfig
|
|
||||||
|
|
||||||
|
|
||||||
class AuthentikEnterpriseSearchConfig(EnterpriseConfig):
|
|
||||||
"""Enterprise app config"""
|
|
||||||
|
|
||||||
name = "authentik.enterprise.search"
|
|
||||||
label = "authentik_search"
|
|
||||||
verbose_name = "authentik Enterprise.Search"
|
|
||||||
default = True
|
|
||||||
@ -1,128 +0,0 @@
|
|||||||
"""DjangoQL search"""
|
|
||||||
|
|
||||||
from collections import OrderedDict, defaultdict
|
|
||||||
from collections.abc import Generator
|
|
||||||
|
|
||||||
from django.db import connection
|
|
||||||
from django.db.models import Model, Q
|
|
||||||
from djangoql.compat import text_type
|
|
||||||
from djangoql.schema import StrField
|
|
||||||
|
|
||||||
|
|
||||||
class JSONSearchField(StrField):
|
|
||||||
"""JSON field for DjangoQL"""
|
|
||||||
|
|
||||||
model: Model
|
|
||||||
|
|
||||||
def __init__(self, model=None, name=None, nullable=None, suggest_nested=True):
|
|
||||||
# Set this in the constructor to not clobber the type variable
|
|
||||||
self.type = "relation"
|
|
||||||
self.suggest_nested = suggest_nested
|
|
||||||
super().__init__(model, name, nullable)
|
|
||||||
|
|
||||||
def get_lookup(self, path, operator, value):
|
|
||||||
search = "__".join(path)
|
|
||||||
op, invert = self.get_operator(operator)
|
|
||||||
q = Q(**{f"{search}{op}": self.get_lookup_value(value)})
|
|
||||||
return ~q if invert else q
|
|
||||||
|
|
||||||
def json_field_keys(self) -> Generator[tuple[str]]:
|
|
||||||
with connection.cursor() as cursor:
|
|
||||||
cursor.execute(
|
|
||||||
f"""
|
|
||||||
WITH RECURSIVE "{self.name}_keys" AS (
|
|
||||||
SELECT
|
|
||||||
ARRAY[jsonb_object_keys("{self.name}")] AS key_path_array,
|
|
||||||
"{self.name}" -> jsonb_object_keys("{self.name}") AS value
|
|
||||||
FROM {self.model._meta.db_table}
|
|
||||||
WHERE "{self.name}" IS NOT NULL
|
|
||||||
AND jsonb_typeof("{self.name}") = 'object'
|
|
||||||
|
|
||||||
UNION ALL
|
|
||||||
|
|
||||||
SELECT
|
|
||||||
ck.key_path_array || jsonb_object_keys(ck.value),
|
|
||||||
ck.value -> jsonb_object_keys(ck.value) AS value
|
|
||||||
FROM "{self.name}_keys" ck
|
|
||||||
WHERE jsonb_typeof(ck.value) = 'object'
|
|
||||||
),
|
|
||||||
|
|
||||||
unique_paths AS (
|
|
||||||
SELECT DISTINCT key_path_array
|
|
||||||
FROM "{self.name}_keys"
|
|
||||||
)
|
|
||||||
|
|
||||||
SELECT key_path_array FROM unique_paths;
|
|
||||||
""" # nosec
|
|
||||||
)
|
|
||||||
return (x[0] for x in cursor.fetchall())
|
|
||||||
|
|
||||||
def get_nested_options(self) -> OrderedDict:
|
|
||||||
"""Get keys of all nested objects to show autocomplete"""
|
|
||||||
if not self.suggest_nested:
|
|
||||||
return OrderedDict()
|
|
||||||
base_model_name = f"{self.model._meta.app_label}.{self.model._meta.model_name}_{self.name}"
|
|
||||||
|
|
||||||
def recursive_function(parts: list[str], parent_parts: list[str] | None = None):
|
|
||||||
if not parent_parts:
|
|
||||||
parent_parts = []
|
|
||||||
path = parts.pop(0)
|
|
||||||
parent_parts.append(path)
|
|
||||||
relation_key = "_".join(parent_parts)
|
|
||||||
if len(parts) > 1:
|
|
||||||
out_dict = {
|
|
||||||
relation_key: {
|
|
||||||
parts[0]: {
|
|
||||||
"type": "relation",
|
|
||||||
"relation": f"{relation_key}_{parts[0]}",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
child_paths = recursive_function(parts.copy(), parent_parts.copy())
|
|
||||||
child_paths.update(out_dict)
|
|
||||||
return child_paths
|
|
||||||
else:
|
|
||||||
return {relation_key: {parts[0]: {}}}
|
|
||||||
|
|
||||||
relation_structure = defaultdict(dict)
|
|
||||||
|
|
||||||
for relations in self.json_field_keys():
|
|
||||||
result = recursive_function([base_model_name] + relations)
|
|
||||||
for relation_key, value in result.items():
|
|
||||||
for sub_relation_key, sub_value in value.items():
|
|
||||||
if not relation_structure[relation_key].get(sub_relation_key, None):
|
|
||||||
relation_structure[relation_key][sub_relation_key] = sub_value
|
|
||||||
else:
|
|
||||||
relation_structure[relation_key][sub_relation_key].update(sub_value)
|
|
||||||
|
|
||||||
final_dict = defaultdict(dict)
|
|
||||||
|
|
||||||
for key, value in relation_structure.items():
|
|
||||||
for sub_key, sub_value in value.items():
|
|
||||||
if not sub_value:
|
|
||||||
final_dict[key][sub_key] = {
|
|
||||||
"type": "str",
|
|
||||||
"nullable": True,
|
|
||||||
}
|
|
||||||
else:
|
|
||||||
final_dict[key][sub_key] = sub_value
|
|
||||||
return OrderedDict(final_dict)
|
|
||||||
|
|
||||||
def relation(self) -> str:
|
|
||||||
return f"{self.model._meta.app_label}.{self.model._meta.model_name}_{self.name}"
|
|
||||||
|
|
||||||
|
|
||||||
class ChoiceSearchField(StrField):
|
|
||||||
def __init__(self, model=None, name=None, nullable=None):
|
|
||||||
super().__init__(model, name, nullable, suggest_options=True)
|
|
||||||
|
|
||||||
def get_options(self, search):
|
|
||||||
result = []
|
|
||||||
choices = self._field_choices()
|
|
||||||
if choices:
|
|
||||||
search = search.lower()
|
|
||||||
for c in choices:
|
|
||||||
choice = text_type(c[0])
|
|
||||||
if search in choice.lower():
|
|
||||||
result.append(choice)
|
|
||||||
return result
|
|
||||||
@ -1,53 +0,0 @@
|
|||||||
from rest_framework.response import Response
|
|
||||||
|
|
||||||
from authentik.api.pagination import Pagination
|
|
||||||
from authentik.enterprise.search.ql import AUTOCOMPLETE_COMPONENT_NAME, QLSearch
|
|
||||||
|
|
||||||
|
|
||||||
class AutocompletePagination(Pagination):
|
|
||||||
|
|
||||||
def paginate_queryset(self, queryset, request, view=None):
|
|
||||||
self.view = view
|
|
||||||
return super().paginate_queryset(queryset, request, view)
|
|
||||||
|
|
||||||
def get_autocomplete(self):
|
|
||||||
schema = QLSearch().get_schema(self.request, self.view)
|
|
||||||
introspections = {}
|
|
||||||
if hasattr(self.view, "get_ql_fields"):
|
|
||||||
from authentik.enterprise.search.schema import AKQLSchemaSerializer
|
|
||||||
|
|
||||||
introspections = AKQLSchemaSerializer().serialize(
|
|
||||||
schema(self.page.paginator.object_list.model)
|
|
||||||
)
|
|
||||||
return introspections
|
|
||||||
|
|
||||||
def get_paginated_response(self, data):
|
|
||||||
previous_page_number = 0
|
|
||||||
if self.page.has_previous():
|
|
||||||
previous_page_number = self.page.previous_page_number()
|
|
||||||
next_page_number = 0
|
|
||||||
if self.page.has_next():
|
|
||||||
next_page_number = self.page.next_page_number()
|
|
||||||
return Response(
|
|
||||||
{
|
|
||||||
"pagination": {
|
|
||||||
"next": next_page_number,
|
|
||||||
"previous": previous_page_number,
|
|
||||||
"count": self.page.paginator.count,
|
|
||||||
"current": self.page.number,
|
|
||||||
"total_pages": self.page.paginator.num_pages,
|
|
||||||
"start_index": self.page.start_index(),
|
|
||||||
"end_index": self.page.end_index(),
|
|
||||||
},
|
|
||||||
"results": data,
|
|
||||||
"autocomplete": self.get_autocomplete(),
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
def get_paginated_response_schema(self, schema):
|
|
||||||
final_schema = super().get_paginated_response_schema(schema)
|
|
||||||
final_schema["properties"]["autocomplete"] = {
|
|
||||||
"$ref": f"#/components/schemas/{AUTOCOMPLETE_COMPONENT_NAME}"
|
|
||||||
}
|
|
||||||
final_schema["required"].append("autocomplete")
|
|
||||||
return final_schema
|
|
||||||
@ -1,78 +0,0 @@
|
|||||||
"""DjangoQL search"""
|
|
||||||
|
|
||||||
from django.apps import apps
|
|
||||||
from django.db.models import QuerySet
|
|
||||||
from djangoql.ast import Name
|
|
||||||
from djangoql.exceptions import DjangoQLError
|
|
||||||
from djangoql.queryset import apply_search
|
|
||||||
from djangoql.schema import DjangoQLSchema
|
|
||||||
from rest_framework.filters import SearchFilter
|
|
||||||
from rest_framework.request import Request
|
|
||||||
from structlog.stdlib import get_logger
|
|
||||||
|
|
||||||
from authentik.enterprise.search.fields import JSONSearchField
|
|
||||||
|
|
||||||
LOGGER = get_logger()
|
|
||||||
AUTOCOMPLETE_COMPONENT_NAME = "Autocomplete"
|
|
||||||
AUTOCOMPLETE_SCHEMA = {
|
|
||||||
"type": "object",
|
|
||||||
"additionalProperties": {},
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class BaseSchema(DjangoQLSchema):
|
|
||||||
"""Base Schema which deals with JSON Fields"""
|
|
||||||
|
|
||||||
def resolve_name(self, name: Name):
|
|
||||||
model = self.model_label(self.current_model)
|
|
||||||
root_field = name.parts[0]
|
|
||||||
field = self.models[model].get(root_field)
|
|
||||||
# If the query goes into a JSON field, return the root
|
|
||||||
# field as the JSON field will do the rest
|
|
||||||
if isinstance(field, JSONSearchField):
|
|
||||||
# This is a workaround; build_filter will remove the right-most
|
|
||||||
# entry in the path as that is intended to be the same as the field
|
|
||||||
# however for JSON that is not the case
|
|
||||||
if name.parts[-1] != root_field:
|
|
||||||
name.parts.append(root_field)
|
|
||||||
return field
|
|
||||||
return super().resolve_name(name)
|
|
||||||
|
|
||||||
|
|
||||||
class QLSearch(SearchFilter):
|
|
||||||
"""rest_framework search filter which uses DjangoQL"""
|
|
||||||
|
|
||||||
@property
|
|
||||||
def enabled(self):
|
|
||||||
return apps.get_app_config("authentik_enterprise").enabled()
|
|
||||||
|
|
||||||
def get_search_terms(self, request) -> str:
|
|
||||||
"""
|
|
||||||
Search terms are set by a ?search=... query parameter,
|
|
||||||
and may be comma and/or whitespace delimited.
|
|
||||||
"""
|
|
||||||
params = request.query_params.get(self.search_param, "")
|
|
||||||
params = params.replace("\x00", "") # strip null characters
|
|
||||||
return params
|
|
||||||
|
|
||||||
def get_schema(self, request: Request, view) -> BaseSchema:
|
|
||||||
ql_fields = []
|
|
||||||
if hasattr(view, "get_ql_fields"):
|
|
||||||
ql_fields = view.get_ql_fields()
|
|
||||||
|
|
||||||
class InlineSchema(BaseSchema):
|
|
||||||
def get_fields(self, model):
|
|
||||||
return ql_fields or []
|
|
||||||
|
|
||||||
return InlineSchema
|
|
||||||
|
|
||||||
def filter_queryset(self, request: Request, queryset: QuerySet, view) -> QuerySet:
|
|
||||||
search_query = self.get_search_terms(request)
|
|
||||||
schema = self.get_schema(request, view)
|
|
||||||
if len(search_query) == 0 or not self.enabled:
|
|
||||||
return super().filter_queryset(request, queryset, view)
|
|
||||||
try:
|
|
||||||
return apply_search(queryset, search_query, schema=schema)
|
|
||||||
except DjangoQLError as exc:
|
|
||||||
LOGGER.debug("Failed to parse search expression", exc=exc)
|
|
||||||
return super().filter_queryset(request, queryset, view)
|
|
||||||
@ -1,29 +0,0 @@
|
|||||||
from djangoql.serializers import DjangoQLSchemaSerializer
|
|
||||||
from drf_spectacular.generators import SchemaGenerator
|
|
||||||
|
|
||||||
from authentik.api.schema import create_component
|
|
||||||
from authentik.enterprise.search.fields import JSONSearchField
|
|
||||||
from authentik.enterprise.search.ql import AUTOCOMPLETE_COMPONENT_NAME, AUTOCOMPLETE_SCHEMA
|
|
||||||
|
|
||||||
|
|
||||||
class AKQLSchemaSerializer(DjangoQLSchemaSerializer):
|
|
||||||
def serialize(self, schema):
|
|
||||||
serialization = super().serialize(schema)
|
|
||||||
for _, fields in schema.models.items():
|
|
||||||
for _, field in fields.items():
|
|
||||||
if not isinstance(field, JSONSearchField):
|
|
||||||
continue
|
|
||||||
serialization["models"].update(field.get_nested_options())
|
|
||||||
return serialization
|
|
||||||
|
|
||||||
def serialize_field(self, field):
|
|
||||||
result = super().serialize_field(field)
|
|
||||||
if isinstance(field, JSONSearchField):
|
|
||||||
result["relation"] = field.relation()
|
|
||||||
return result
|
|
||||||
|
|
||||||
|
|
||||||
def postprocess_schema_search_autocomplete(result, generator: SchemaGenerator, **kwargs):
|
|
||||||
create_component(generator, AUTOCOMPLETE_COMPONENT_NAME, AUTOCOMPLETE_SCHEMA)
|
|
||||||
|
|
||||||
return result
|
|
||||||
@ -1,17 +0,0 @@
|
|||||||
SPECTACULAR_SETTINGS = {
|
|
||||||
"POSTPROCESSING_HOOKS": [
|
|
||||||
"authentik.api.schema.postprocess_schema_responses",
|
|
||||||
"authentik.enterprise.search.schema.postprocess_schema_search_autocomplete",
|
|
||||||
"drf_spectacular.hooks.postprocess_schema_enums",
|
|
||||||
],
|
|
||||||
}
|
|
||||||
|
|
||||||
REST_FRAMEWORK = {
|
|
||||||
"DEFAULT_PAGINATION_CLASS": "authentik.enterprise.search.pagination.AutocompletePagination",
|
|
||||||
"DEFAULT_FILTER_BACKENDS": [
|
|
||||||
"authentik.enterprise.search.ql.QLSearch",
|
|
||||||
"authentik.rbac.filters.ObjectFilter",
|
|
||||||
"django_filters.rest_framework.DjangoFilterBackend",
|
|
||||||
"rest_framework.filters.OrderingFilter",
|
|
||||||
],
|
|
||||||
}
|
|
||||||
@ -1,78 +0,0 @@
|
|||||||
from json import loads
|
|
||||||
from unittest.mock import PropertyMock, patch
|
|
||||||
from urllib.parse import urlencode
|
|
||||||
|
|
||||||
from django.urls import reverse
|
|
||||||
from rest_framework.test import APITestCase
|
|
||||||
|
|
||||||
from authentik.core.tests.utils import create_test_admin_user
|
|
||||||
|
|
||||||
|
|
||||||
@patch(
|
|
||||||
"authentik.enterprise.audit.middleware.EnterpriseAuditMiddleware.enabled",
|
|
||||||
PropertyMock(return_value=True),
|
|
||||||
)
|
|
||||||
class QLTest(APITestCase):
|
|
||||||
|
|
||||||
def setUp(self):
|
|
||||||
self.user = create_test_admin_user()
|
|
||||||
# ensure we have more than 1 user
|
|
||||||
create_test_admin_user()
|
|
||||||
|
|
||||||
def test_search(self):
|
|
||||||
"""Test simple search query"""
|
|
||||||
self.client.force_login(self.user)
|
|
||||||
query = f'username = "{self.user.username}"'
|
|
||||||
res = self.client.get(
|
|
||||||
reverse(
|
|
||||||
"authentik_api:user-list",
|
|
||||||
)
|
|
||||||
+ f"?{urlencode({"search": query})}"
|
|
||||||
)
|
|
||||||
self.assertEqual(res.status_code, 200)
|
|
||||||
content = loads(res.content)
|
|
||||||
self.assertEqual(content["pagination"]["count"], 1)
|
|
||||||
self.assertEqual(content["results"][0]["username"], self.user.username)
|
|
||||||
|
|
||||||
def test_no_search(self):
|
|
||||||
"""Ensure works with no search query"""
|
|
||||||
self.client.force_login(self.user)
|
|
||||||
res = self.client.get(
|
|
||||||
reverse(
|
|
||||||
"authentik_api:user-list",
|
|
||||||
)
|
|
||||||
)
|
|
||||||
self.assertEqual(res.status_code, 200)
|
|
||||||
content = loads(res.content)
|
|
||||||
self.assertNotEqual(content["pagination"]["count"], 1)
|
|
||||||
|
|
||||||
def test_search_no_ql(self):
|
|
||||||
"""Test simple search query (no QL)"""
|
|
||||||
self.client.force_login(self.user)
|
|
||||||
res = self.client.get(
|
|
||||||
reverse(
|
|
||||||
"authentik_api:user-list",
|
|
||||||
)
|
|
||||||
+ f"?{urlencode({"search": self.user.username})}"
|
|
||||||
)
|
|
||||||
self.assertEqual(res.status_code, 200)
|
|
||||||
content = loads(res.content)
|
|
||||||
self.assertGreaterEqual(content["pagination"]["count"], 1)
|
|
||||||
self.assertEqual(content["results"][0]["username"], self.user.username)
|
|
||||||
|
|
||||||
def test_search_json(self):
|
|
||||||
"""Test search query with a JSON attribute"""
|
|
||||||
self.user.attributes = {"foo": {"bar": "baz"}}
|
|
||||||
self.user.save()
|
|
||||||
self.client.force_login(self.user)
|
|
||||||
query = 'attributes.foo.bar = "baz"'
|
|
||||||
res = self.client.get(
|
|
||||||
reverse(
|
|
||||||
"authentik_api:user-list",
|
|
||||||
)
|
|
||||||
+ f"?{urlencode({"search": query})}"
|
|
||||||
)
|
|
||||||
self.assertEqual(res.status_code, 200)
|
|
||||||
content = loads(res.content)
|
|
||||||
self.assertEqual(content["pagination"]["count"], 1)
|
|
||||||
self.assertEqual(content["results"][0]["username"], self.user.username)
|
|
||||||
@ -18,7 +18,6 @@ TENANT_APPS = [
|
|||||||
"authentik.enterprise.providers.google_workspace",
|
"authentik.enterprise.providers.google_workspace",
|
||||||
"authentik.enterprise.providers.microsoft_entra",
|
"authentik.enterprise.providers.microsoft_entra",
|
||||||
"authentik.enterprise.providers.ssf",
|
"authentik.enterprise.providers.ssf",
|
||||||
"authentik.enterprise.search",
|
|
||||||
"authentik.enterprise.stages.authenticator_endpoint_gdtc",
|
"authentik.enterprise.stages.authenticator_endpoint_gdtc",
|
||||||
"authentik.enterprise.stages.mtls",
|
"authentik.enterprise.stages.mtls",
|
||||||
"authentik.enterprise.stages.source",
|
"authentik.enterprise.stages.source",
|
||||||
|
|||||||
@ -132,22 +132,6 @@ class EventViewSet(ModelViewSet):
|
|||||||
]
|
]
|
||||||
filterset_class = EventsFilter
|
filterset_class = EventsFilter
|
||||||
|
|
||||||
def get_ql_fields(self):
|
|
||||||
from djangoql.schema import DateTimeField, StrField
|
|
||||||
|
|
||||||
from authentik.enterprise.search.fields import ChoiceSearchField, JSONSearchField
|
|
||||||
|
|
||||||
return [
|
|
||||||
ChoiceSearchField(Event, "action"),
|
|
||||||
StrField(Event, "event_uuid"),
|
|
||||||
StrField(Event, "app", suggest_options=True),
|
|
||||||
StrField(Event, "client_ip"),
|
|
||||||
JSONSearchField(Event, "user", suggest_nested=False),
|
|
||||||
JSONSearchField(Event, "brand", suggest_nested=False),
|
|
||||||
JSONSearchField(Event, "context", suggest_nested=False),
|
|
||||||
DateTimeField(Event, "created", suggest_options=True),
|
|
||||||
]
|
|
||||||
|
|
||||||
@extend_schema(
|
@extend_schema(
|
||||||
methods=["GET"],
|
methods=["GET"],
|
||||||
responses={200: EventTopPerUserSerializer(many=True)},
|
responses={200: EventTopPerUserSerializer(many=True)},
|
||||||
|
|||||||
@ -11,7 +11,7 @@ from authentik.events.models import NotificationRule
|
|||||||
class NotificationRuleSerializer(ModelSerializer):
|
class NotificationRuleSerializer(ModelSerializer):
|
||||||
"""NotificationRule Serializer"""
|
"""NotificationRule Serializer"""
|
||||||
|
|
||||||
destination_group_obj = GroupSerializer(read_only=True, source="destination_group")
|
group_obj = GroupSerializer(read_only=True, source="group")
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = NotificationRule
|
model = NotificationRule
|
||||||
@ -20,9 +20,8 @@ class NotificationRuleSerializer(ModelSerializer):
|
|||||||
"name",
|
"name",
|
||||||
"transports",
|
"transports",
|
||||||
"severity",
|
"severity",
|
||||||
"destination_group",
|
"group",
|
||||||
"destination_group_obj",
|
"group_obj",
|
||||||
"destination_event_user",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@ -31,6 +30,6 @@ class NotificationRuleViewSet(UsedByMixin, ModelViewSet):
|
|||||||
|
|
||||||
queryset = NotificationRule.objects.all()
|
queryset = NotificationRule.objects.all()
|
||||||
serializer_class = NotificationRuleSerializer
|
serializer_class = NotificationRuleSerializer
|
||||||
filterset_fields = ["name", "severity", "destination_group__name"]
|
filterset_fields = ["name", "severity", "group__name"]
|
||||||
ordering = ["name"]
|
ordering = ["name"]
|
||||||
search_fields = ["name", "destination_group__name"]
|
search_fields = ["name", "group__name"]
|
||||||
|
|||||||
@ -1,26 +0,0 @@
|
|||||||
# Generated by Django 5.1.11 on 2025-06-16 23:21
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
("authentik_events", "0009_remove_notificationtransport_webhook_mapping_and_more"),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.RenameField(
|
|
||||||
model_name="notificationrule",
|
|
||||||
old_name="group",
|
|
||||||
new_name="destination_group",
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name="notificationrule",
|
|
||||||
name="destination_event_user",
|
|
||||||
field=models.BooleanField(
|
|
||||||
default=False,
|
|
||||||
help_text="When enabled, notification will be sent to user the user that triggered the event.When destination_group is configured, notification is sent to both.",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
]
|
|
||||||
@ -1,12 +1,10 @@
|
|||||||
"""authentik events models"""
|
"""authentik events models"""
|
||||||
|
|
||||||
from collections.abc import Generator
|
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
from difflib import get_close_matches
|
from difflib import get_close_matches
|
||||||
from functools import lru_cache
|
from functools import lru_cache
|
||||||
from inspect import currentframe
|
from inspect import currentframe
|
||||||
from smtplib import SMTPException
|
from smtplib import SMTPException
|
||||||
from typing import Any
|
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from django.apps import apps
|
from django.apps import apps
|
||||||
@ -549,7 +547,7 @@ class NotificationRule(SerializerModel, PolicyBindingModel):
|
|||||||
default=NotificationSeverity.NOTICE,
|
default=NotificationSeverity.NOTICE,
|
||||||
help_text=_("Controls which severity level the created notifications will have."),
|
help_text=_("Controls which severity level the created notifications will have."),
|
||||||
)
|
)
|
||||||
destination_group = models.ForeignKey(
|
group = models.ForeignKey(
|
||||||
Group,
|
Group,
|
||||||
help_text=_(
|
help_text=_(
|
||||||
"Define which group of users this notification should be sent and shown to. "
|
"Define which group of users this notification should be sent and shown to. "
|
||||||
@ -559,19 +557,6 @@ class NotificationRule(SerializerModel, PolicyBindingModel):
|
|||||||
blank=True,
|
blank=True,
|
||||||
on_delete=models.SET_NULL,
|
on_delete=models.SET_NULL,
|
||||||
)
|
)
|
||||||
destination_event_user = models.BooleanField(
|
|
||||||
default=False,
|
|
||||||
help_text=_(
|
|
||||||
"When enabled, notification will be sent to user the user that triggered the event."
|
|
||||||
"When destination_group is configured, notification is sent to both."
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
def destination_users(self, event: Event) -> Generator[User, Any]:
|
|
||||||
if self.destination_event_user and event.user.get("pk"):
|
|
||||||
yield User(pk=event.user.get("pk"))
|
|
||||||
if self.destination_group:
|
|
||||||
yield from self.destination_group.users.all()
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def serializer(self) -> type[Serializer]:
|
def serializer(self) -> type[Serializer]:
|
||||||
|
|||||||
@ -68,10 +68,14 @@ def event_trigger_handler(event_uuid: str, trigger_name: str):
|
|||||||
if not result.passing:
|
if not result.passing:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if not trigger.group:
|
||||||
|
LOGGER.debug("e(trigger): trigger has no group", trigger=trigger)
|
||||||
|
return
|
||||||
|
|
||||||
LOGGER.debug("e(trigger): event trigger matched", trigger=trigger)
|
LOGGER.debug("e(trigger): event trigger matched", trigger=trigger)
|
||||||
# Create the notification objects
|
# Create the notification objects
|
||||||
for transport in trigger.transports.all():
|
for transport in trigger.transports.all():
|
||||||
for user in trigger.destination_users(event):
|
for user in trigger.group.users.all():
|
||||||
LOGGER.debug("created notification")
|
LOGGER.debug("created notification")
|
||||||
notification_transport.apply_async(
|
notification_transport.apply_async(
|
||||||
args=[
|
args=[
|
||||||
|
|||||||
@ -6,7 +6,6 @@ from django.urls import reverse
|
|||||||
from rest_framework.test import APITestCase
|
from rest_framework.test import APITestCase
|
||||||
|
|
||||||
from authentik.core.models import Group, User
|
from authentik.core.models import Group, User
|
||||||
from authentik.core.tests.utils import create_test_user
|
|
||||||
from authentik.events.models import (
|
from authentik.events.models import (
|
||||||
Event,
|
Event,
|
||||||
EventAction,
|
EventAction,
|
||||||
@ -35,7 +34,7 @@ class TestEventsNotifications(APITestCase):
|
|||||||
def test_trigger_empty(self):
|
def test_trigger_empty(self):
|
||||||
"""Test trigger without any policies attached"""
|
"""Test trigger without any policies attached"""
|
||||||
transport = NotificationTransport.objects.create(name=generate_id())
|
transport = NotificationTransport.objects.create(name=generate_id())
|
||||||
trigger = NotificationRule.objects.create(name=generate_id(), destination_group=self.group)
|
trigger = NotificationRule.objects.create(name=generate_id(), group=self.group)
|
||||||
trigger.transports.add(transport)
|
trigger.transports.add(transport)
|
||||||
trigger.save()
|
trigger.save()
|
||||||
|
|
||||||
@ -47,7 +46,7 @@ class TestEventsNotifications(APITestCase):
|
|||||||
def test_trigger_single(self):
|
def test_trigger_single(self):
|
||||||
"""Test simple transport triggering"""
|
"""Test simple transport triggering"""
|
||||||
transport = NotificationTransport.objects.create(name=generate_id())
|
transport = NotificationTransport.objects.create(name=generate_id())
|
||||||
trigger = NotificationRule.objects.create(name=generate_id(), destination_group=self.group)
|
trigger = NotificationRule.objects.create(name=generate_id(), group=self.group)
|
||||||
trigger.transports.add(transport)
|
trigger.transports.add(transport)
|
||||||
trigger.save()
|
trigger.save()
|
||||||
matcher = EventMatcherPolicy.objects.create(
|
matcher = EventMatcherPolicy.objects.create(
|
||||||
@ -60,25 +59,6 @@ class TestEventsNotifications(APITestCase):
|
|||||||
Event.new(EventAction.CUSTOM_PREFIX).save()
|
Event.new(EventAction.CUSTOM_PREFIX).save()
|
||||||
self.assertEqual(execute_mock.call_count, 1)
|
self.assertEqual(execute_mock.call_count, 1)
|
||||||
|
|
||||||
def test_trigger_event_user(self):
|
|
||||||
"""Test trigger with event user"""
|
|
||||||
user = create_test_user()
|
|
||||||
transport = NotificationTransport.objects.create(name=generate_id())
|
|
||||||
trigger = NotificationRule.objects.create(name=generate_id(), destination_event_user=True)
|
|
||||||
trigger.transports.add(transport)
|
|
||||||
trigger.save()
|
|
||||||
matcher = EventMatcherPolicy.objects.create(
|
|
||||||
name="matcher", action=EventAction.CUSTOM_PREFIX
|
|
||||||
)
|
|
||||||
PolicyBinding.objects.create(target=trigger, policy=matcher, order=0)
|
|
||||||
|
|
||||||
execute_mock = MagicMock()
|
|
||||||
with patch("authentik.events.models.NotificationTransport.send", execute_mock):
|
|
||||||
Event.new(EventAction.CUSTOM_PREFIX).set_user(user).save()
|
|
||||||
self.assertEqual(execute_mock.call_count, 1)
|
|
||||||
notification: Notification = execute_mock.call_args[0][0]
|
|
||||||
self.assertEqual(notification.user, user)
|
|
||||||
|
|
||||||
def test_trigger_no_group(self):
|
def test_trigger_no_group(self):
|
||||||
"""Test trigger without group"""
|
"""Test trigger without group"""
|
||||||
trigger = NotificationRule.objects.create(name=generate_id())
|
trigger = NotificationRule.objects.create(name=generate_id())
|
||||||
@ -96,7 +76,7 @@ class TestEventsNotifications(APITestCase):
|
|||||||
"""Test Policy error which would cause recursion"""
|
"""Test Policy error which would cause recursion"""
|
||||||
transport = NotificationTransport.objects.create(name=generate_id())
|
transport = NotificationTransport.objects.create(name=generate_id())
|
||||||
NotificationRule.objects.filter(name__startswith="default").delete()
|
NotificationRule.objects.filter(name__startswith="default").delete()
|
||||||
trigger = NotificationRule.objects.create(name=generate_id(), destination_group=self.group)
|
trigger = NotificationRule.objects.create(name=generate_id(), group=self.group)
|
||||||
trigger.transports.add(transport)
|
trigger.transports.add(transport)
|
||||||
trigger.save()
|
trigger.save()
|
||||||
matcher = EventMatcherPolicy.objects.create(
|
matcher = EventMatcherPolicy.objects.create(
|
||||||
@ -119,7 +99,7 @@ class TestEventsNotifications(APITestCase):
|
|||||||
|
|
||||||
transport = NotificationTransport.objects.create(name=generate_id(), send_once=True)
|
transport = NotificationTransport.objects.create(name=generate_id(), send_once=True)
|
||||||
NotificationRule.objects.filter(name__startswith="default").delete()
|
NotificationRule.objects.filter(name__startswith="default").delete()
|
||||||
trigger = NotificationRule.objects.create(name=generate_id(), destination_group=self.group)
|
trigger = NotificationRule.objects.create(name=generate_id(), group=self.group)
|
||||||
trigger.transports.add(transport)
|
trigger.transports.add(transport)
|
||||||
trigger.save()
|
trigger.save()
|
||||||
matcher = EventMatcherPolicy.objects.create(
|
matcher = EventMatcherPolicy.objects.create(
|
||||||
@ -143,7 +123,7 @@ class TestEventsNotifications(APITestCase):
|
|||||||
name=generate_id(), webhook_mapping_body=mapping, mode=TransportMode.LOCAL
|
name=generate_id(), webhook_mapping_body=mapping, mode=TransportMode.LOCAL
|
||||||
)
|
)
|
||||||
NotificationRule.objects.filter(name__startswith="default").delete()
|
NotificationRule.objects.filter(name__startswith="default").delete()
|
||||||
trigger = NotificationRule.objects.create(name=generate_id(), destination_group=self.group)
|
trigger = NotificationRule.objects.create(name=generate_id(), group=self.group)
|
||||||
trigger.transports.add(transport)
|
trigger.transports.add(transport)
|
||||||
matcher = EventMatcherPolicy.objects.create(
|
matcher = EventMatcherPolicy.objects.create(
|
||||||
name="matcher", action=EventAction.CUSTOM_PREFIX
|
name="matcher", action=EventAction.CUSTOM_PREFIX
|
||||||
|
|||||||
@ -49,7 +49,6 @@ class TestEndpointsAPI(APITestCase):
|
|||||||
self.assertJSONEqual(
|
self.assertJSONEqual(
|
||||||
response.content.decode(),
|
response.content.decode(),
|
||||||
{
|
{
|
||||||
"autocomplete": {},
|
|
||||||
"pagination": {
|
"pagination": {
|
||||||
"next": 0,
|
"next": 0,
|
||||||
"previous": 0,
|
"previous": 0,
|
||||||
@ -102,7 +101,6 @@ class TestEndpointsAPI(APITestCase):
|
|||||||
self.assertJSONEqual(
|
self.assertJSONEqual(
|
||||||
response.content.decode(),
|
response.content.decode(),
|
||||||
{
|
{
|
||||||
"autocomplete": {},
|
|
||||||
"pagination": {
|
"pagination": {
|
||||||
"next": 0,
|
"next": 0,
|
||||||
"previous": 0,
|
"previous": 0,
|
||||||
|
|||||||
@ -190,6 +190,7 @@ class SAMLProviderSerializer(ProviderSerializer):
|
|||||||
"sign_response",
|
"sign_response",
|
||||||
"sp_binding",
|
"sp_binding",
|
||||||
"default_relay_state",
|
"default_relay_state",
|
||||||
|
"default_name_id_policy",
|
||||||
"url_download_metadata",
|
"url_download_metadata",
|
||||||
"url_sso_post",
|
"url_sso_post",
|
||||||
"url_sso_redirect",
|
"url_sso_redirect",
|
||||||
|
|||||||
@ -0,0 +1,31 @@
|
|||||||
|
# Generated by Django 5.1.11 on 2025-06-18 09:27
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("authentik_providers_saml", "0018_alter_samlprovider_acs_url"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name="samlprovider",
|
||||||
|
name="default_name_id_policy",
|
||||||
|
field=models.TextField(
|
||||||
|
choices=[
|
||||||
|
("urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", "Email"),
|
||||||
|
("urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "Persistent"),
|
||||||
|
("urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName", "X509"),
|
||||||
|
(
|
||||||
|
"urn:oasis:names:tc:SAML:2.0:nameid-format:WindowsDomainQualifiedName",
|
||||||
|
"Windows",
|
||||||
|
),
|
||||||
|
("urn:oasis:names:tc:SAML:2.0:nameid-format:transient", "Transient"),
|
||||||
|
("urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified", "Unspecified"),
|
||||||
|
],
|
||||||
|
default="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
||||||
@ -12,6 +12,7 @@ from authentik.core.models import PropertyMapping, Provider
|
|||||||
from authentik.crypto.models import CertificateKeyPair
|
from authentik.crypto.models import CertificateKeyPair
|
||||||
from authentik.lib.models import DomainlessURLValidator
|
from authentik.lib.models import DomainlessURLValidator
|
||||||
from authentik.lib.utils.time import timedelta_string_validator
|
from authentik.lib.utils.time import timedelta_string_validator
|
||||||
|
from authentik.sources.saml.models import SAMLNameIDPolicy
|
||||||
from authentik.sources.saml.processors.constants import (
|
from authentik.sources.saml.processors.constants import (
|
||||||
DSA_SHA1,
|
DSA_SHA1,
|
||||||
ECDSA_SHA1,
|
ECDSA_SHA1,
|
||||||
@ -179,6 +180,9 @@ class SAMLProvider(Provider):
|
|||||||
default_relay_state = models.TextField(
|
default_relay_state = models.TextField(
|
||||||
default="", blank=True, help_text=_("Default relay_state value for IDP-initiated logins")
|
default="", blank=True, help_text=_("Default relay_state value for IDP-initiated logins")
|
||||||
)
|
)
|
||||||
|
default_name_id_policy = models.TextField(
|
||||||
|
choices=SAMLNameIDPolicy.choices, default=SAMLNameIDPolicy.UNSPECIFIED
|
||||||
|
)
|
||||||
|
|
||||||
sign_assertion = models.BooleanField(default=True)
|
sign_assertion = models.BooleanField(default=True)
|
||||||
sign_response = models.BooleanField(default=False)
|
sign_response = models.BooleanField(default=False)
|
||||||
|
|||||||
@ -205,6 +205,13 @@ class AssertionProcessor:
|
|||||||
def get_name_id(self) -> Element:
|
def get_name_id(self) -> Element:
|
||||||
"""Get NameID Element"""
|
"""Get NameID Element"""
|
||||||
name_id = Element(f"{{{NS_SAML_ASSERTION}}}NameID")
|
name_id = Element(f"{{{NS_SAML_ASSERTION}}}NameID")
|
||||||
|
# For requests that don't specify a NameIDPolicy, check if we
|
||||||
|
# can fall back to the provider default
|
||||||
|
if (
|
||||||
|
self.auth_n_request.name_id_policy == SAML_NAME_ID_FORMAT_UNSPECIFIED
|
||||||
|
and self.provider.default_name_id_policy != SAML_NAME_ID_FORMAT_UNSPECIFIED
|
||||||
|
):
|
||||||
|
self.auth_n_request.name_id_policy = self.provider.default_name_id_policy
|
||||||
name_id.attrib["Format"] = self.auth_n_request.name_id_policy
|
name_id.attrib["Format"] = self.auth_n_request.name_id_policy
|
||||||
# persistent is used as a fallback, so always generate it
|
# persistent is used as a fallback, so always generate it
|
||||||
persistent = self.http_request.user.uid
|
persistent = self.http_request.user.uid
|
||||||
|
|||||||
@ -13,6 +13,7 @@ from authentik.lib.xml import lxml_from_string
|
|||||||
from authentik.providers.saml.exceptions import CannotHandleAssertion
|
from authentik.providers.saml.exceptions import CannotHandleAssertion
|
||||||
from authentik.providers.saml.models import SAMLProvider
|
from authentik.providers.saml.models import SAMLProvider
|
||||||
from authentik.providers.saml.utils.encoding import decode_base64_and_inflate
|
from authentik.providers.saml.utils.encoding import decode_base64_and_inflate
|
||||||
|
from authentik.sources.saml.models import SAMLNameIDPolicy
|
||||||
from authentik.sources.saml.processors.constants import (
|
from authentik.sources.saml.processors.constants import (
|
||||||
DSA_SHA1,
|
DSA_SHA1,
|
||||||
NS_MAP,
|
NS_MAP,
|
||||||
@ -175,7 +176,9 @@ class AuthNRequestParser:
|
|||||||
|
|
||||||
def idp_initiated(self) -> AuthNRequest:
|
def idp_initiated(self) -> AuthNRequest:
|
||||||
"""Create IdP Initiated AuthNRequest"""
|
"""Create IdP Initiated AuthNRequest"""
|
||||||
relay_state = None
|
request = AuthNRequest(relay_state=None)
|
||||||
if self.provider.default_relay_state != "":
|
if self.provider.default_relay_state != "":
|
||||||
relay_state = self.provider.default_relay_state
|
request.relay_state = self.provider.default_relay_state
|
||||||
return AuthNRequest(relay_state=relay_state)
|
if self.provider.default_name_id_policy != SAMLNameIDPolicy.UNSPECIFIED:
|
||||||
|
request.name_id_policy = self.provider.default_name_id_policy
|
||||||
|
return request
|
||||||
|
|||||||
@ -13,6 +13,7 @@ from authentik.crypto.models import CertificateKeyPair
|
|||||||
from authentik.flows.models import Flow
|
from authentik.flows.models import Flow
|
||||||
from authentik.providers.saml.models import SAMLBindings, SAMLPropertyMapping, SAMLProvider
|
from authentik.providers.saml.models import SAMLBindings, SAMLPropertyMapping, SAMLProvider
|
||||||
from authentik.providers.saml.utils.encoding import PEM_FOOTER, PEM_HEADER
|
from authentik.providers.saml.utils.encoding import PEM_FOOTER, PEM_HEADER
|
||||||
|
from authentik.sources.saml.models import SAMLNameIDPolicy
|
||||||
from authentik.sources.saml.processors.constants import (
|
from authentik.sources.saml.processors.constants import (
|
||||||
NS_MAP,
|
NS_MAP,
|
||||||
NS_SAML_METADATA,
|
NS_SAML_METADATA,
|
||||||
@ -46,6 +47,7 @@ class ServiceProviderMetadata:
|
|||||||
|
|
||||||
auth_n_request_signed: bool
|
auth_n_request_signed: bool
|
||||||
assertion_signed: bool
|
assertion_signed: bool
|
||||||
|
name_id_policy: SAMLNameIDPolicy
|
||||||
|
|
||||||
signing_keypair: CertificateKeyPair | None = None
|
signing_keypair: CertificateKeyPair | None = None
|
||||||
|
|
||||||
@ -60,6 +62,7 @@ class ServiceProviderMetadata:
|
|||||||
provider.issuer = self.entity_id
|
provider.issuer = self.entity_id
|
||||||
provider.sp_binding = self.acs_binding
|
provider.sp_binding = self.acs_binding
|
||||||
provider.acs_url = self.acs_location
|
provider.acs_url = self.acs_location
|
||||||
|
provider.default_name_id_policy = self.name_id_policy
|
||||||
if self.signing_keypair and self.auth_n_request_signed:
|
if self.signing_keypair and self.auth_n_request_signed:
|
||||||
self.signing_keypair.name = f"Provider {name} - SAML Signing Certificate"
|
self.signing_keypair.name = f"Provider {name} - SAML Signing Certificate"
|
||||||
self.signing_keypair.save()
|
self.signing_keypair.save()
|
||||||
@ -148,6 +151,11 @@ class ServiceProviderMetadataParser:
|
|||||||
if signing_keypair:
|
if signing_keypair:
|
||||||
self.check_signature(root, signing_keypair)
|
self.check_signature(root, signing_keypair)
|
||||||
|
|
||||||
|
name_id_format = descriptor.findall(f"{{{NS_SAML_METADATA}}}NameIDFormat")
|
||||||
|
name_id_policy = SAMLNameIDPolicy.UNSPECIFIED
|
||||||
|
if len(name_id_format) > 0:
|
||||||
|
name_id_policy = SAMLNameIDPolicy(name_id_format[0].text)
|
||||||
|
|
||||||
return ServiceProviderMetadata(
|
return ServiceProviderMetadata(
|
||||||
entity_id=entity_id,
|
entity_id=entity_id,
|
||||||
acs_binding=acs_binding,
|
acs_binding=acs_binding,
|
||||||
@ -155,4 +163,5 @@ class ServiceProviderMetadataParser:
|
|||||||
auth_n_request_signed=auth_n_request_signed,
|
auth_n_request_signed=auth_n_request_signed,
|
||||||
assertion_signed=assertion_signed,
|
assertion_signed=assertion_signed,
|
||||||
signing_keypair=signing_keypair,
|
signing_keypair=signing_keypair,
|
||||||
|
name_id_policy=name_id_policy,
|
||||||
)
|
)
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
cacheDuration="PT604800S"
|
cacheDuration="PT604800S"
|
||||||
entityID="http://localhost:8080/saml/metadata">
|
entityID="http://localhost:8080/saml/metadata">
|
||||||
<md:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
|
<md:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
|
||||||
<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>
|
<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat>
|
||||||
<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
|
<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
|
||||||
Location="http://localhost:8080/saml/acs"
|
Location="http://localhost:8080/saml/acs"
|
||||||
index="1" />
|
index="1" />
|
||||||
|
|||||||
@ -14,6 +14,7 @@ from authentik.lib.xml import lxml_from_string
|
|||||||
from authentik.providers.saml.models import SAMLBindings, SAMLPropertyMapping, SAMLProvider
|
from authentik.providers.saml.models import SAMLBindings, SAMLPropertyMapping, SAMLProvider
|
||||||
from authentik.providers.saml.processors.metadata import MetadataProcessor
|
from authentik.providers.saml.processors.metadata import MetadataProcessor
|
||||||
from authentik.providers.saml.processors.metadata_parser import ServiceProviderMetadataParser
|
from authentik.providers.saml.processors.metadata_parser import ServiceProviderMetadataParser
|
||||||
|
from authentik.sources.saml.models import SAMLNameIDPolicy
|
||||||
from authentik.sources.saml.processors.constants import ECDSA_SHA256, NS_MAP, NS_SAML_METADATA
|
from authentik.sources.saml.processors.constants import ECDSA_SHA256, NS_MAP, NS_SAML_METADATA
|
||||||
|
|
||||||
|
|
||||||
@ -86,6 +87,7 @@ class TestServiceProviderMetadataParser(TestCase):
|
|||||||
self.assertEqual(provider.acs_url, "http://localhost:8080/saml/acs")
|
self.assertEqual(provider.acs_url, "http://localhost:8080/saml/acs")
|
||||||
self.assertEqual(provider.issuer, "http://localhost:8080/saml/metadata")
|
self.assertEqual(provider.issuer, "http://localhost:8080/saml/metadata")
|
||||||
self.assertEqual(provider.sp_binding, SAMLBindings.POST)
|
self.assertEqual(provider.sp_binding, SAMLBindings.POST)
|
||||||
|
self.assertEqual(provider.default_name_id_policy, SAMLNameIDPolicy.EMAIL)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
len(provider.property_mappings.all()),
|
len(provider.property_mappings.all()),
|
||||||
len(SAMLPropertyMapping.objects.exclude(managed__isnull=True)),
|
len(SAMLPropertyMapping.objects.exclude(managed__isnull=True)),
|
||||||
|
|||||||
@ -44,7 +44,6 @@ class TestRBACRoleAPI(APITestCase):
|
|||||||
self.assertJSONEqual(
|
self.assertJSONEqual(
|
||||||
res.content.decode(),
|
res.content.decode(),
|
||||||
{
|
{
|
||||||
"autocomplete": {},
|
|
||||||
"pagination": {
|
"pagination": {
|
||||||
"next": 0,
|
"next": 0,
|
||||||
"previous": 0,
|
"previous": 0,
|
||||||
|
|||||||
@ -46,7 +46,6 @@ class TestRBACUserAPI(APITestCase):
|
|||||||
self.assertJSONEqual(
|
self.assertJSONEqual(
|
||||||
res.content.decode(),
|
res.content.decode(),
|
||||||
{
|
{
|
||||||
"autocomplete": {},
|
|
||||||
"pagination": {
|
"pagination": {
|
||||||
"next": 0,
|
"next": 0,
|
||||||
"previous": 0,
|
"previous": 0,
|
||||||
|
|||||||
@ -38,7 +38,6 @@ class TestAPIPerms(APITestCase):
|
|||||||
self.assertJSONEqual(
|
self.assertJSONEqual(
|
||||||
res.content.decode(),
|
res.content.decode(),
|
||||||
{
|
{
|
||||||
"autocomplete": {},
|
|
||||||
"pagination": {
|
"pagination": {
|
||||||
"next": 0,
|
"next": 0,
|
||||||
"previous": 0,
|
"previous": 0,
|
||||||
@ -74,7 +73,6 @@ class TestAPIPerms(APITestCase):
|
|||||||
self.assertJSONEqual(
|
self.assertJSONEqual(
|
||||||
res.content.decode(),
|
res.content.decode(),
|
||||||
{
|
{
|
||||||
"autocomplete": {},
|
|
||||||
"pagination": {
|
"pagination": {
|
||||||
"next": 0,
|
"next": 0,
|
||||||
"previous": 0,
|
"previous": 0,
|
||||||
|
|||||||
@ -9,14 +9,13 @@ https://docs.djangoproject.com/en/3.0/howto/deployment/asgi/
|
|||||||
|
|
||||||
import django
|
import django
|
||||||
from channels.routing import ProtocolTypeRouter, URLRouter
|
from channels.routing import ProtocolTypeRouter, URLRouter
|
||||||
|
from defusedxml import defuse_stdlib
|
||||||
from django.core.asgi import get_asgi_application
|
from django.core.asgi import get_asgi_application
|
||||||
from sentry_sdk.integrations.asgi import SentryAsgiMiddleware
|
from sentry_sdk.integrations.asgi import SentryAsgiMiddleware
|
||||||
|
|
||||||
from authentik.root.setup import setup
|
|
||||||
|
|
||||||
# DJANGO_SETTINGS_MODULE is set in gunicorn.conf.py
|
# DJANGO_SETTINGS_MODULE is set in gunicorn.conf.py
|
||||||
|
|
||||||
setup()
|
defuse_stdlib()
|
||||||
django.setup()
|
django.setup()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -166,6 +166,7 @@ SPECTACULAR_SETTINGS = {
|
|||||||
"UserVerificationEnum": "authentik.stages.authenticator_webauthn.models.UserVerification",
|
"UserVerificationEnum": "authentik.stages.authenticator_webauthn.models.UserVerification",
|
||||||
"UserTypeEnum": "authentik.core.models.UserTypes",
|
"UserTypeEnum": "authentik.core.models.UserTypes",
|
||||||
"OutgoingSyncDeleteAction": "authentik.lib.sync.outgoing.models.OutgoingSyncDeleteAction",
|
"OutgoingSyncDeleteAction": "authentik.lib.sync.outgoing.models.OutgoingSyncDeleteAction",
|
||||||
|
"SAMLNameIDPolicyEnum": "authentik.sources.saml.models.SAMLNameIDPolicy",
|
||||||
},
|
},
|
||||||
"ENUM_ADD_EXPLICIT_BLANK_NULL_CHOICE": False,
|
"ENUM_ADD_EXPLICIT_BLANK_NULL_CHOICE": False,
|
||||||
"ENUM_GENERATE_CHOICE_DESCRIPTION": False,
|
"ENUM_GENERATE_CHOICE_DESCRIPTION": False,
|
||||||
@ -446,8 +447,6 @@ _DISALLOWED_ITEMS = [
|
|||||||
"MIDDLEWARE",
|
"MIDDLEWARE",
|
||||||
"AUTHENTICATION_BACKENDS",
|
"AUTHENTICATION_BACKENDS",
|
||||||
"CELERY",
|
"CELERY",
|
||||||
"SPECTACULAR_SETTINGS",
|
|
||||||
"REST_FRAMEWORK",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
SILENCED_SYSTEM_CHECKS = [
|
SILENCED_SYSTEM_CHECKS = [
|
||||||
@ -470,8 +469,6 @@ def _update_settings(app_path: str):
|
|||||||
TENANT_APPS.extend(getattr(settings_module, "TENANT_APPS", []))
|
TENANT_APPS.extend(getattr(settings_module, "TENANT_APPS", []))
|
||||||
MIDDLEWARE.extend(getattr(settings_module, "MIDDLEWARE", []))
|
MIDDLEWARE.extend(getattr(settings_module, "MIDDLEWARE", []))
|
||||||
AUTHENTICATION_BACKENDS.extend(getattr(settings_module, "AUTHENTICATION_BACKENDS", []))
|
AUTHENTICATION_BACKENDS.extend(getattr(settings_module, "AUTHENTICATION_BACKENDS", []))
|
||||||
SPECTACULAR_SETTINGS.update(getattr(settings_module, "SPECTACULAR_SETTINGS", {}))
|
|
||||||
REST_FRAMEWORK.update(getattr(settings_module, "REST_FRAMEWORK", {}))
|
|
||||||
CELERY["beat_schedule"].update(getattr(settings_module, "CELERY_BEAT_SCHEDULE", {}))
|
CELERY["beat_schedule"].update(getattr(settings_module, "CELERY_BEAT_SCHEDULE", {}))
|
||||||
for _attr in dir(settings_module):
|
for _attr in dir(settings_module):
|
||||||
if not _attr.startswith("__") and _attr not in _DISALLOWED_ITEMS:
|
if not _attr.startswith("__") and _attr not in _DISALLOWED_ITEMS:
|
||||||
|
|||||||
@ -1,26 +0,0 @@
|
|||||||
import os
|
|
||||||
import warnings
|
|
||||||
|
|
||||||
from cryptography.hazmat.backends.openssl.backend import backend
|
|
||||||
from defusedxml import defuse_stdlib
|
|
||||||
|
|
||||||
from authentik.lib.config import CONFIG
|
|
||||||
|
|
||||||
|
|
||||||
def setup():
|
|
||||||
warnings.filterwarnings("ignore", "SelectableGroups dict interface")
|
|
||||||
warnings.filterwarnings(
|
|
||||||
"ignore",
|
|
||||||
"defusedxml.lxml is no longer supported and will be removed in a future release.",
|
|
||||||
)
|
|
||||||
warnings.filterwarnings(
|
|
||||||
"ignore",
|
|
||||||
"defusedxml.cElementTree is deprecated, import from defusedxml.ElementTree instead.",
|
|
||||||
)
|
|
||||||
|
|
||||||
defuse_stdlib()
|
|
||||||
|
|
||||||
if CONFIG.get_bool("compliance.fips.enabled", False):
|
|
||||||
backend._enable_fips()
|
|
||||||
|
|
||||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "authentik.root.settings")
|
|
||||||
@ -0,0 +1,32 @@
|
|||||||
|
# Generated by Django 5.1.11 on 2025-06-18 09:27
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("authentik_sources_saml", "0019_migrate_usersamlsourceconnection_identifier"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name="samlsource",
|
||||||
|
name="name_id_policy",
|
||||||
|
field=models.TextField(
|
||||||
|
choices=[
|
||||||
|
("urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", "Email"),
|
||||||
|
("urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "Persistent"),
|
||||||
|
("urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName", "X509"),
|
||||||
|
(
|
||||||
|
"urn:oasis:names:tc:SAML:2.0:nameid-format:WindowsDomainQualifiedName",
|
||||||
|
"Windows",
|
||||||
|
),
|
||||||
|
("urn:oasis:names:tc:SAML:2.0:nameid-format:transient", "Transient"),
|
||||||
|
("urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified", "Unspecified"),
|
||||||
|
],
|
||||||
|
default="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent",
|
||||||
|
help_text="NameID Policy sent to the IdP. Can be unset, in which case no Policy is sent.",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
||||||
@ -39,6 +39,7 @@ from authentik.sources.saml.processors.constants import (
|
|||||||
SAML_NAME_ID_FORMAT_EMAIL,
|
SAML_NAME_ID_FORMAT_EMAIL,
|
||||||
SAML_NAME_ID_FORMAT_PERSISTENT,
|
SAML_NAME_ID_FORMAT_PERSISTENT,
|
||||||
SAML_NAME_ID_FORMAT_TRANSIENT,
|
SAML_NAME_ID_FORMAT_TRANSIENT,
|
||||||
|
SAML_NAME_ID_FORMAT_UNSPECIFIED,
|
||||||
SAML_NAME_ID_FORMAT_WINDOWS,
|
SAML_NAME_ID_FORMAT_WINDOWS,
|
||||||
SAML_NAME_ID_FORMAT_X509,
|
SAML_NAME_ID_FORMAT_X509,
|
||||||
SHA1,
|
SHA1,
|
||||||
@ -73,6 +74,7 @@ class SAMLNameIDPolicy(models.TextChoices):
|
|||||||
X509 = SAML_NAME_ID_FORMAT_X509
|
X509 = SAML_NAME_ID_FORMAT_X509
|
||||||
WINDOWS = SAML_NAME_ID_FORMAT_WINDOWS
|
WINDOWS = SAML_NAME_ID_FORMAT_WINDOWS
|
||||||
TRANSIENT = SAML_NAME_ID_FORMAT_TRANSIENT
|
TRANSIENT = SAML_NAME_ID_FORMAT_TRANSIENT
|
||||||
|
UNSPECIFIED = SAML_NAME_ID_FORMAT_UNSPECIFIED
|
||||||
|
|
||||||
|
|
||||||
class SAMLSource(Source):
|
class SAMLSource(Source):
|
||||||
|
|||||||
@ -6628,16 +6628,11 @@
|
|||||||
"title": "Severity",
|
"title": "Severity",
|
||||||
"description": "Controls which severity level the created notifications will have."
|
"description": "Controls which severity level the created notifications will have."
|
||||||
},
|
},
|
||||||
"destination_group": {
|
"group": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"format": "uuid",
|
"format": "uuid",
|
||||||
"title": "Destination group",
|
"title": "Group",
|
||||||
"description": "Define which group of users this notification should be sent and shown to. If left empty, Notification won't ben sent."
|
"description": "Define which group of users this notification should be sent and shown to. If left empty, Notification won't ben sent."
|
||||||
},
|
|
||||||
"destination_event_user": {
|
|
||||||
"type": "boolean",
|
|
||||||
"title": "Destination event user",
|
|
||||||
"description": "When enabled, notification will be sent to user the user that triggered the event.When destination_group is configured, notification is sent to both."
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": []
|
"required": []
|
||||||
@ -7345,7 +7340,6 @@
|
|||||||
"authentik.enterprise.providers.google_workspace",
|
"authentik.enterprise.providers.google_workspace",
|
||||||
"authentik.enterprise.providers.microsoft_entra",
|
"authentik.enterprise.providers.microsoft_entra",
|
||||||
"authentik.enterprise.providers.ssf",
|
"authentik.enterprise.providers.ssf",
|
||||||
"authentik.enterprise.search",
|
|
||||||
"authentik.enterprise.stages.authenticator_endpoint_gdtc",
|
"authentik.enterprise.stages.authenticator_endpoint_gdtc",
|
||||||
"authentik.enterprise.stages.mtls",
|
"authentik.enterprise.stages.mtls",
|
||||||
"authentik.enterprise.stages.source",
|
"authentik.enterprise.stages.source",
|
||||||
@ -9239,6 +9233,18 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"title": "Default relay state",
|
"title": "Default relay state",
|
||||||
"description": "Default relay_state value for IDP-initiated logins"
|
"description": "Default relay_state value for IDP-initiated logins"
|
||||||
|
},
|
||||||
|
"default_name_id_policy": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
|
||||||
|
"urn:oasis:names:tc:SAML:2.0:nameid-format:persistent",
|
||||||
|
"urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName",
|
||||||
|
"urn:oasis:names:tc:SAML:2.0:nameid-format:WindowsDomainQualifiedName",
|
||||||
|
"urn:oasis:names:tc:SAML:2.0:nameid-format:transient",
|
||||||
|
"urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"
|
||||||
|
],
|
||||||
|
"title": "Default name id policy"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": []
|
"required": []
|
||||||
@ -11661,7 +11667,8 @@
|
|||||||
"urn:oasis:names:tc:SAML:2.0:nameid-format:persistent",
|
"urn:oasis:names:tc:SAML:2.0:nameid-format:persistent",
|
||||||
"urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName",
|
"urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName",
|
||||||
"urn:oasis:names:tc:SAML:2.0:nameid-format:WindowsDomainQualifiedName",
|
"urn:oasis:names:tc:SAML:2.0:nameid-format:WindowsDomainQualifiedName",
|
||||||
"urn:oasis:names:tc:SAML:2.0:nameid-format:transient"
|
"urn:oasis:names:tc:SAML:2.0:nameid-format:transient",
|
||||||
|
"urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"
|
||||||
],
|
],
|
||||||
"title": "Name id policy",
|
"title": "Name id policy",
|
||||||
"description": "NameID Policy sent to the IdP. Can be unset, in which case no Policy is sent."
|
"description": "NameID Policy sent to the IdP. Can be unset, in which case no Policy is sent."
|
||||||
|
|||||||
2
go.mod
2
go.mod
@ -29,7 +29,7 @@ require (
|
|||||||
github.com/spf13/cobra v1.9.1
|
github.com/spf13/cobra v1.9.1
|
||||||
github.com/stretchr/testify v1.10.0
|
github.com/stretchr/testify v1.10.0
|
||||||
github.com/wwt/guac v1.3.2
|
github.com/wwt/guac v1.3.2
|
||||||
goauthentik.io/api/v3 v3.2025062.3
|
goauthentik.io/api/v3 v3.2025062.1
|
||||||
golang.org/x/exp v0.0.0-20230210204819-062eb4c674ab
|
golang.org/x/exp v0.0.0-20230210204819-062eb4c674ab
|
||||||
golang.org/x/oauth2 v0.30.0
|
golang.org/x/oauth2 v0.30.0
|
||||||
golang.org/x/sync v0.15.0
|
golang.org/x/sync v0.15.0
|
||||||
|
|||||||
4
go.sum
4
go.sum
@ -298,8 +298,8 @@ go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y
|
|||||||
go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU=
|
go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU=
|
||||||
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
|
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
|
||||||
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
|
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
|
||||||
goauthentik.io/api/v3 v3.2025062.3 h1:syBOKigaHyX/8Rwmh9kOSF+TzsxOzmP5i7rsFwbemzA=
|
goauthentik.io/api/v3 v3.2025062.1 h1:spvILDpDDWJNO3pM6QGqmryx6NvSchr1E8H60J/XUCA=
|
||||||
goauthentik.io/api/v3 v3.2025062.3/go.mod h1:zz+mEZg8rY/7eEjkMGWJ2DnGqk+zqxuybGCGrR2O4Kw=
|
goauthentik.io/api/v3 v3.2025062.1/go.mod h1:zz+mEZg8rY/7eEjkMGWJ2DnGqk+zqxuybGCGrR2O4Kw=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
|
|||||||
@ -7,6 +7,8 @@ from pathlib import Path
|
|||||||
from tempfile import gettempdir
|
from tempfile import gettempdir
|
||||||
from typing import TYPE_CHECKING
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
|
from cryptography.hazmat.backends.openssl.backend import backend
|
||||||
|
from defusedxml import defuse_stdlib
|
||||||
from prometheus_client.values import MultiProcessValue
|
from prometheus_client.values import MultiProcessValue
|
||||||
|
|
||||||
from authentik import get_full_version
|
from authentik import get_full_version
|
||||||
@ -16,7 +18,6 @@ from authentik.lib.logging import get_logger_config
|
|||||||
from authentik.lib.utils.http import get_http_session
|
from authentik.lib.utils.http import get_http_session
|
||||||
from authentik.lib.utils.reflection import get_env
|
from authentik.lib.utils.reflection import get_env
|
||||||
from authentik.root.install_id import get_install_id_raw
|
from authentik.root.install_id import get_install_id_raw
|
||||||
from authentik.root.setup import setup
|
|
||||||
from lifecycle.migrate import run_migrations
|
from lifecycle.migrate import run_migrations
|
||||||
from lifecycle.wait_for_db import wait_for_db
|
from lifecycle.wait_for_db import wait_for_db
|
||||||
from lifecycle.worker import DjangoUvicornWorker
|
from lifecycle.worker import DjangoUvicornWorker
|
||||||
@ -27,7 +28,10 @@ if TYPE_CHECKING:
|
|||||||
|
|
||||||
from authentik.root.asgi import AuthentikAsgi
|
from authentik.root.asgi import AuthentikAsgi
|
||||||
|
|
||||||
setup()
|
defuse_stdlib()
|
||||||
|
|
||||||
|
if CONFIG.get_bool("compliance.fips.enabled", False):
|
||||||
|
backend._enable_fips()
|
||||||
|
|
||||||
wait_for_db()
|
wait_for_db()
|
||||||
|
|
||||||
|
|||||||
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-06-19 00:10+0000\n"
|
"POT-Creation-Date: 2025-06-04 00:12+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -763,12 +763,6 @@ msgid ""
|
|||||||
"If left empty, Notification won't ben sent."
|
"If left empty, Notification won't ben sent."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: authentik/events/models.py
|
|
||||||
msgid ""
|
|
||||||
"When enabled, notification will be sent to user the user that triggered the "
|
|
||||||
"event.When destination_group is configured, notification is sent to both."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: authentik/events/models.py
|
#: authentik/events/models.py
|
||||||
msgid "Notification Rule"
|
msgid "Notification Rule"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
23
manage.py
23
manage.py
@ -1,18 +1,35 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
"""Django manage.py"""
|
"""Django manage.py"""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
import warnings
|
||||||
|
|
||||||
|
from authentik.lib.config import CONFIG
|
||||||
|
from cryptography.hazmat.backends.openssl.backend import backend
|
||||||
|
from defusedxml import defuse_stdlib
|
||||||
from django.utils.autoreload import DJANGO_AUTORELOAD_ENV
|
from django.utils.autoreload import DJANGO_AUTORELOAD_ENV
|
||||||
|
|
||||||
from authentik.root.setup import setup
|
|
||||||
from lifecycle.migrate import run_migrations
|
from lifecycle.migrate import run_migrations
|
||||||
from lifecycle.wait_for_db import wait_for_db
|
from lifecycle.wait_for_db import wait_for_db
|
||||||
|
|
||||||
setup()
|
warnings.filterwarnings("ignore", "SelectableGroups dict interface")
|
||||||
|
warnings.filterwarnings(
|
||||||
|
"ignore",
|
||||||
|
"defusedxml.lxml is no longer supported and will be removed in a future release.",
|
||||||
|
)
|
||||||
|
warnings.filterwarnings(
|
||||||
|
"ignore",
|
||||||
|
"defusedxml.cElementTree is deprecated, import from defusedxml.ElementTree instead.",
|
||||||
|
)
|
||||||
|
|
||||||
|
defuse_stdlib()
|
||||||
|
|
||||||
|
if CONFIG.get_bool("compliance.fips.enabled", False):
|
||||||
|
backend._enable_fips()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "authentik.root.settings")
|
||||||
wait_for_db()
|
wait_for_db()
|
||||||
if (
|
if (
|
||||||
len(sys.argv) > 1
|
len(sys.argv) > 1
|
||||||
|
|||||||
@ -1,10 +0,0 @@
|
|||||||
# Prettier Ignorefile
|
|
||||||
|
|
||||||
## Static Files
|
|
||||||
**/LICENSE
|
|
||||||
|
|
||||||
## Build asset directories
|
|
||||||
coverage
|
|
||||||
dist
|
|
||||||
out
|
|
||||||
.docusaurus
|
|
||||||
@ -4,5 +4,3 @@
|
|||||||
|
|
||||||
export * from "./lib/theme.js";
|
export * from "./lib/theme.js";
|
||||||
export * from "./lib/common.js";
|
export * from "./lib/common.js";
|
||||||
export * from "./lib/routing.js";
|
|
||||||
export * from "./lib/navbar.js";
|
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
/**
|
/**
|
||||||
* @file Common Docusaurus configuration utilities.
|
* @file Common Docusaurus configuration utilities.
|
||||||
*
|
*
|
||||||
* @import { Config, DocusaurusConfig } from "@docusaurus/types"
|
* @import { Config as DocusaurusConfig } from "@docusaurus/types"
|
||||||
* @import { UserThemeConfig, UserThemeConfigExtra } from "./theme.js"
|
* @import { UserThemeConfig } from "./theme.js"
|
||||||
*/
|
*/
|
||||||
import { deepmerge } from "deepmerge-ts";
|
import { deepmerge } from "deepmerge-ts";
|
||||||
|
|
||||||
@ -11,14 +11,14 @@ import { createThemeConfig } from "./theme.js";
|
|||||||
//#region Types
|
//#region Types
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {Omit<Config, 'themeConfig'>} DocusaurusConfigBase
|
* @typedef {Omit<DocusaurusConfig, 'themeConfig'>} DocusaurusConfigBase
|
||||||
*
|
*
|
||||||
* Represents the base configuration for Docusaurus, excluding the theme configuration.
|
* Represents the base configuration for Docusaurus, excluding the theme configuration.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef DocusaurusConfigBaseTheme
|
* @typedef DocusaurusConfigBaseTheme
|
||||||
* @property {UserThemeConfig & UserThemeConfigExtra} themeConfig The theme configuration.
|
* @property {UserThemeConfig} themeConfig The theme configuration.
|
||||||
*
|
*
|
||||||
* Represents a configuration object, only including the theme configuration.
|
* Represents a configuration object, only including the theme configuration.
|
||||||
*/
|
*/
|
||||||
@ -39,66 +39,31 @@ import { createThemeConfig } from "./theme.js";
|
|||||||
//#region Functions
|
//#region Functions
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a default Docusaurus configuration.
|
* Create a Docusaurus configuration.
|
||||||
|
*
|
||||||
|
* @param {DocusaurusConfigInit} [overrides] The options to override.
|
||||||
|
* @returns {DocusaurusConfig}
|
||||||
*/
|
*/
|
||||||
export function createDefaultDocusaurusConfig() {
|
export function createDocusaurusConfig({ themeConfig, ...overrides } = {}) {
|
||||||
const NodeEnvironment = process.env.AK_DOCUSAURUS_ENV || process.env.NODE_ENV || "development";
|
|
||||||
const production = NodeEnvironment === "production";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @satisfies {Config}
|
* @type {DocusaurusConfig}
|
||||||
*/
|
*/
|
||||||
const DEFAULT_CONFIG = /** @type {const} */ ({
|
const config = {
|
||||||
trailingSlash: true,
|
|
||||||
future: {
|
|
||||||
v4: {
|
|
||||||
removeLegacyPostBuildHeadAttribute: true,
|
|
||||||
useCssCascadeLayers: false,
|
|
||||||
},
|
|
||||||
experimental_faster: {
|
|
||||||
swcJsLoader: true,
|
|
||||||
rspackBundler: true,
|
|
||||||
lightningCssMinimizer: production,
|
|
||||||
swcJsMinimizer: production,
|
|
||||||
swcHtmlMinimizer: production,
|
|
||||||
ssgWorkerThreads: production,
|
|
||||||
mdxCrossCompilerCache: production,
|
|
||||||
rspackPersistentCache: production,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
title: "authentik",
|
title: "authentik",
|
||||||
tagline: "Bring all of your authentication into a unified platform.",
|
tagline: "Bring all of your authentication into a unified platform.",
|
||||||
url: "https://docs.goauthentik.io",
|
url: "https://docs.goauthentik.io",
|
||||||
baseUrl: "/",
|
baseUrl: "/",
|
||||||
onBrokenLinks: "throw",
|
onBrokenLinks: "throw",
|
||||||
onBrokenAnchors: "throw",
|
onBrokenAnchors: "throw",
|
||||||
onBrokenMarkdownLinks: "throw",
|
|
||||||
onDuplicateRoutes: "throw",
|
|
||||||
favicon: "img/icon.png",
|
favicon: "img/icon.png",
|
||||||
organizationName: "Authentik Security Inc.",
|
organizationName: "Authentik Security Inc.",
|
||||||
projectName: "authentik",
|
projectName: "authentik",
|
||||||
markdown: {
|
markdown: {
|
||||||
mermaid: true,
|
mermaid: true,
|
||||||
},
|
},
|
||||||
});
|
|
||||||
|
|
||||||
return DEFAULT_CONFIG;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a Docusaurus configuration.
|
|
||||||
*
|
|
||||||
* @template {Partial<Config>} T
|
|
||||||
* @param {T} overrides The options to override.
|
|
||||||
* @returns {T & ReturnType<typeof createDefaultDocusaurusConfig>}
|
|
||||||
*/
|
|
||||||
export function createDocusaurusConfig({ themeConfig, ...overrides }) {
|
|
||||||
const config = {
|
|
||||||
...createDefaultDocusaurusConfig(),
|
|
||||||
themeConfig: createThemeConfig(themeConfig),
|
themeConfig: createThemeConfig(themeConfig),
|
||||||
};
|
};
|
||||||
|
|
||||||
// @ts-ignore
|
|
||||||
return deepmerge(config, overrides);
|
return deepmerge(config, overrides);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,110 +0,0 @@
|
|||||||
/**
|
|
||||||
* @file Docusaurus navbar configuration for the authentik website.
|
|
||||||
*
|
|
||||||
* @import { NavbarItem } from "@docusaurus/theme-common";
|
|
||||||
*/
|
|
||||||
import { DocusaurusURL, SocialURL } from "./routing.js";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The navbar items for the authentik website.
|
|
||||||
*
|
|
||||||
* @type {NavbarItem[]}
|
|
||||||
*/
|
|
||||||
export const SocialNavbarItems = /** @type {const} */ ([
|
|
||||||
{
|
|
||||||
"href": SocialURL.GitHub,
|
|
||||||
"data-icon": "github",
|
|
||||||
"aria-label": "GitHub",
|
|
||||||
"position": "right",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"href": SocialURL.Discord,
|
|
||||||
"data-icon": "discord",
|
|
||||||
"aria-label": "Discord",
|
|
||||||
"position": "right",
|
|
||||||
},
|
|
||||||
]);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The navbar items for the authentik website.
|
|
||||||
*
|
|
||||||
* @satisfies {NavbarItem[]}
|
|
||||||
*/
|
|
||||||
export const NavbarItemsTemplate = /** @type {const} */ ([
|
|
||||||
{
|
|
||||||
to: "{{WWW_URL}}/features",
|
|
||||||
label: "Features",
|
|
||||||
position: "left",
|
|
||||||
target: "_self",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
to: "{{INTEGRATIONS_URL}}",
|
|
||||||
label: "Integrations",
|
|
||||||
target: "_self",
|
|
||||||
position: "left",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
to: "{{DOCS_URL}}",
|
|
||||||
|
|
||||||
label: "Documentation",
|
|
||||||
position: "left",
|
|
||||||
target: "_self",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
to: "{{WWW_URL}}/pricing/",
|
|
||||||
label: "Pricing",
|
|
||||||
position: "left",
|
|
||||||
target: "_self",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
to: "{{WWW_URL}}/blog",
|
|
||||||
label: "Blog",
|
|
||||||
position: "left",
|
|
||||||
target: "_self",
|
|
||||||
},
|
|
||||||
...SocialNavbarItems,
|
|
||||||
]);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @typedef {Object} NavbarItemOverrides
|
|
||||||
*
|
|
||||||
* @prop {string} WWW_URL The URL for the WWW environment.
|
|
||||||
* @prop {string} DOCS_URL The URL for the documentation.
|
|
||||||
* @prop {string} INTEGRATIONS_URL The URL for the integrations.
|
|
||||||
*/
|
|
||||||
|
|
||||||
const DEFAULT_NAVBAR_REPLACEMENTS = /** @type {const} */ ({
|
|
||||||
DOCS_URL: DocusaurusURL.Docs,
|
|
||||||
INTEGRATIONS_URL: DocusaurusURL.Integrations,
|
|
||||||
WWW_URL: DocusaurusURL.WWW,
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates a navbar item array, replacing placeholders with the given replacements.
|
|
||||||
*
|
|
||||||
* @param {Partial<NavbarItemOverrides>} [overrides]
|
|
||||||
* @returns {NavbarItem[]}
|
|
||||||
*/
|
|
||||||
export function createNavbarItems(overrides) {
|
|
||||||
const replacements = {
|
|
||||||
...DEFAULT_NAVBAR_REPLACEMENTS,
|
|
||||||
...overrides,
|
|
||||||
};
|
|
||||||
|
|
||||||
return NavbarItemsTemplate.map((item) => {
|
|
||||||
if (typeof item.to !== "string") return item;
|
|
||||||
|
|
||||||
return {
|
|
||||||
...item,
|
|
||||||
to: item.to.replace(
|
|
||||||
/{{([^}]+)}}/g,
|
|
||||||
/**
|
|
||||||
* @param {keyof NavbarItemOverrides} key
|
|
||||||
*/
|
|
||||||
(_, key) => {
|
|
||||||
return replacements[key];
|
|
||||||
},
|
|
||||||
),
|
|
||||||
};
|
|
||||||
});
|
|
||||||
}
|
|
||||||
@ -1,35 +0,0 @@
|
|||||||
/**
|
|
||||||
* @file Docusaurus routing configuration.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @typedef {'production'|'development'} NodeEnvironment
|
|
||||||
*/
|
|
||||||
|
|
||||||
const NodeEnvironment = /** @type {NodeEnvironment} */ (process.env.NODE_ENV || "development");
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @satisfies {Record<NodeEnvironment, Record<string, string>>}
|
|
||||||
*/
|
|
||||||
export const DocusaurusURLByEnvironment = /** @type {const} */ ({
|
|
||||||
development: {
|
|
||||||
Docs: "http://localhost:3000",
|
|
||||||
Integrations: "http://localhost:3001",
|
|
||||||
WWW: "http://localhost:3002",
|
|
||||||
},
|
|
||||||
production: {
|
|
||||||
Docs: "https://docs.goauthentik.io",
|
|
||||||
Integrations: "https://integrations.goauthentik.io",
|
|
||||||
WWW: "https://goauthentik.io",
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
export const DocusaurusURL = DocusaurusURLByEnvironment[NodeEnvironment];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @satisfies {Record<string, string>}
|
|
||||||
*/
|
|
||||||
export const SocialURL = /** @type {const} */ ({
|
|
||||||
Discord: "https://goauthentik.io/discord",
|
|
||||||
GitHub: "https://github.com/goauthentik/authentik",
|
|
||||||
});
|
|
||||||
@ -3,26 +3,16 @@
|
|||||||
*
|
*
|
||||||
* @import { UserThemeConfig as UserThemeConfigCommon } from "@docusaurus/theme-common";
|
* @import { UserThemeConfig as UserThemeConfigCommon } from "@docusaurus/theme-common";
|
||||||
* @import { UserThemeConfig as UserThemeConfigAlgolia } from "@docusaurus/theme-search-algolia";
|
* @import { UserThemeConfig as UserThemeConfigAlgolia } from "@docusaurus/theme-search-algolia";
|
||||||
* @import { NavbarItemOverrides } from "./navbar.js"
|
|
||||||
*/
|
*/
|
||||||
import { deepmerge } from "deepmerge-ts";
|
import { deepmerge } from "deepmerge-ts";
|
||||||
import { themes as prismThemes } from "prism-react-renderer";
|
import { themes as prismThemes } from "prism-react-renderer";
|
||||||
|
|
||||||
import { createNavbarItems } from "./navbar.js";
|
|
||||||
|
|
||||||
//#region Types
|
//#region Types
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {Object} UserThemeConfigExtra
|
* Combined theme configuration for Docusaurus and Algolia.
|
||||||
* @property {Partial<NavbarItemOverrides>} [navbarReplacements] The replacements for the navbar.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Combined theme configuration for Docusaurus, Algolia, and our own configuration.
|
|
||||||
*
|
*
|
||||||
* @typedef {UserThemeConfigCommon & UserThemeConfigAlgolia} UserThemeConfig
|
* @typedef {UserThemeConfigCommon & UserThemeConfigAlgolia} UserThemeConfig
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//#endregion
|
//#endregion
|
||||||
@ -67,10 +57,10 @@ export function createPrismConfig(overrides = {}) {
|
|||||||
/**
|
/**
|
||||||
* Creates a theme configuration for Docusaurus.
|
* Creates a theme configuration for Docusaurus.
|
||||||
*
|
*
|
||||||
* @param {Partial<UserThemeConfig & UserThemeConfigExtra>} overrides - Overrides for the default theme configuration.
|
* @param {Partial<UserThemeConfig>} overrides - Overrides for the default theme configuration.
|
||||||
* @returns {UserThemeConfig}
|
* @returns {UserThemeConfig}
|
||||||
*/
|
*/
|
||||||
export function createThemeConfig({ prism, navbarReplacements, ...overrides } = {}) {
|
export function createThemeConfig({ prism, ...overrides } = {}) {
|
||||||
/**
|
/**
|
||||||
* @type {UserThemeConfig}
|
* @type {UserThemeConfig}
|
||||||
*/
|
*/
|
||||||
@ -87,17 +77,6 @@ export function createThemeConfig({ prism, navbarReplacements, ...overrides } =
|
|||||||
appId: "36ROD0O0FV",
|
appId: "36ROD0O0FV",
|
||||||
apiKey: "727db511300ca9aec5425645bbbddfb5",
|
apiKey: "727db511300ca9aec5425645bbbddfb5",
|
||||||
},
|
},
|
||||||
footer: {
|
|
||||||
copyright: `Copyright © ${new Date().getFullYear()} Authentik Security Inc. Built with Docusaurus.`,
|
|
||||||
},
|
|
||||||
navbar: {
|
|
||||||
logo: {
|
|
||||||
alt: "authentik logo",
|
|
||||||
src: "img/icon_left_brand.svg",
|
|
||||||
},
|
|
||||||
|
|
||||||
items: createNavbarItems(navbarReplacements),
|
|
||||||
},
|
|
||||||
prism: createPrismConfig(prism),
|
prism: createPrismConfig(prism),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
342
packages/docusaurus-config/package-lock.json
generated
342
packages/docusaurus-config/package-lock.json
generated
@ -1,51 +1,43 @@
|
|||||||
{
|
{
|
||||||
"name": "@goauthentik/docusaurus-config",
|
"name": "@goauthentik/docusaurus-config",
|
||||||
"version": "2.1.1",
|
"version": "2.0.0",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@goauthentik/docusaurus-config",
|
"name": "@goauthentik/docusaurus-config",
|
||||||
"version": "2.1.1",
|
"version": "2.0.0",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"deepmerge-ts": "^7.1.5",
|
"deepmerge-ts": "^7.1.5",
|
||||||
"prism-react-renderer": "^2.4.1"
|
"prism-react-renderer": "^2.4.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@docusaurus/theme-common": "^3.8.1",
|
"@docusaurus/theme-common": "^3.8.0",
|
||||||
"@docusaurus/theme-search-algolia": "^3.8.1",
|
"@docusaurus/theme-search-algolia": "^3.8.0",
|
||||||
"@docusaurus/types": "^3.8.1",
|
"@docusaurus/types": "^3.8.0",
|
||||||
"@goauthentik/prettier-config": "^2.0.0",
|
"@goauthentik/prettier-config": "^2.0.0",
|
||||||
"@goauthentik/tsconfig": "^1.0.4",
|
"@goauthentik/tsconfig": "^1.0.4",
|
||||||
"@types/react": "^19.1.6",
|
"@types/react": "^19.1.6",
|
||||||
"@types/react-dom": "^19.1.5",
|
"@types/react-dom": "^19.1.5",
|
||||||
"prettier": "^3.5.3",
|
"prettier": "^3.5.3",
|
||||||
|
"react": "^19.1.0",
|
||||||
|
"react-dom": "^19.1.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=22"
|
"node": ">=22"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
|
||||||
"react": ">=18",
|
|
||||||
"react-dom": ">=18"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@docusaurus/theme-common": "^3.8.1",
|
"@docusaurus/theme-common": "^3.8.0",
|
||||||
"@docusaurus/theme-search-algolia": "^3.8.1",
|
"@docusaurus/theme-search-algolia": "^3.8.0",
|
||||||
"@docusaurus/types": "^3.8.0",
|
"@docusaurus/types": "^3.8.0",
|
||||||
"react": ">=18",
|
"react": "^18.0.0 || ^19.0.0",
|
||||||
"react-dom": ">=18"
|
"react-dom": "^18.0.0 || ^19.0.0"
|
||||||
},
|
},
|
||||||
"peerDependenciesMeta": {
|
"peerDependenciesMeta": {
|
||||||
"@docusaurus/theme-search-algolia": {
|
"@docusaurus/theme-search-algolia": {
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
|
||||||
"react": {
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"react-dom": {
|
|
||||||
"optional": true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -328,9 +320,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/compat-data": {
|
"node_modules/@babel/compat-data": {
|
||||||
"version": "7.27.5",
|
"version": "7.27.3",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.3.tgz",
|
||||||
"integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==",
|
"integrity": "sha512-V42wFfx1ymFte+ecf6iXghnnP8kWTO+ZLXIyZq+1LAXHHvTZdVxicn4yiVYdYMGaCO3tmqub11AorKkv+iodqw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
@ -677,14 +669,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/helpers": {
|
"node_modules/@babel/helpers": {
|
||||||
"version": "7.27.6",
|
"version": "7.27.4",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.4.tgz",
|
||||||
"integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==",
|
"integrity": "sha512-Y+bO6U+I7ZKaM5G5rDUZiYfUvQPUibYmAFe7EnKdnKBbVXDZxvp+MWOH5gYciY0EPk4EScsuFMQBbEfpdRKSCQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/template": "^7.27.2",
|
"@babel/template": "^7.27.2",
|
||||||
"@babel/types": "^7.27.6"
|
"@babel/types": "^7.27.3"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6.9.0"
|
"node": ">=6.9.0"
|
||||||
@ -966,9 +958,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/plugin-transform-block-scoping": {
|
"node_modules/@babel/plugin-transform-block-scoping": {
|
||||||
"version": "7.27.5",
|
"version": "7.27.3",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.5.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.3.tgz",
|
||||||
"integrity": "sha512-JF6uE2s67f0y2RZcm2kpAUEbD50vH62TyWVebxwHAlbSdM49VqPz8t4a1uIjp4NIOIZ4xzLfjY5emt/RCyC7TQ==",
|
"integrity": "sha512-+F8CnfhuLhwUACIJMLWnjz6zvzYM2r0yeIHKlbgfw7ml8rOMJsXNXV/hyRcb3nb493gRs4WvYpQAndWj/qQmkQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -1607,9 +1599,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/plugin-transform-regenerator": {
|
"node_modules/@babel/plugin-transform-regenerator": {
|
||||||
"version": "7.27.5",
|
"version": "7.27.4",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.5.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.4.tgz",
|
||||||
"integrity": "sha512-uhB8yHerfe3MWnuLAhEbeQ4afVoqv8BQsPqrTv7e/jZ9y00kJL6l9a/f4OWaKxotmjzewfEyXE1vgDJenkQ2/Q==",
|
"integrity": "sha512-Glp/0n8xuj+E1588otw5rjJkTXfzW7FjH3IIUrfqiZOPQCd2vbg8e+DQE8jK9g4V5/zrxFW+D9WM9gboRPELpQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -2015,9 +2007,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/runtime-corejs3": {
|
"node_modules/@babel/runtime-corejs3": {
|
||||||
"version": "7.27.6",
|
"version": "7.27.4",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.27.6.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.27.4.tgz",
|
||||||
"integrity": "sha512-vDVrlmRAY8z9Ul/HxT+8ceAru95LQgkSKiXkSYZvqtbkPSfhZJgpRp45Cldbh1GJ1kxzQkI70AqyrTI58KpaWQ==",
|
"integrity": "sha512-H7QhL0ucCGOObsUETNbB2PuzF4gAvN8p32P6r91bX7M/hk4bx+3yz2hTwHL9d/Efzwu1upeb4/cd7oSxCzup3w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -2062,9 +2054,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/types": {
|
"node_modules/@babel/types": {
|
||||||
"version": "7.27.6",
|
"version": "7.27.3",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.3.tgz",
|
||||||
"integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==",
|
"integrity": "sha512-Y1GkI4ktrtvmawoSq+4FCVHNryea6uR+qUQy0AGxLSsjCX0nVmkYQMBLHDkXZuo5hGx7eYdnIaslsdBFm7zbUw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -2627,9 +2619,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@csstools/postcss-is-pseudo-class": {
|
"node_modules/@csstools/postcss-is-pseudo-class": {
|
||||||
"version": "5.0.3",
|
"version": "5.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.1.tgz",
|
||||||
"integrity": "sha512-jS/TY4SpG4gszAtIg7Qnf3AS2pjcUM5SzxpApOrlndMeGhIbaTzWBzzP/IApXoNWEW7OhcjkRT48jnAUIFXhAQ==",
|
"integrity": "sha512-JLp3POui4S1auhDR0n8wHd/zTOWmMsmK3nQd3hhL6FhWPaox5W7j1se6zXOG/aP07wV2ww0lxbKYGwbBszOtfQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -3313,9 +3305,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@docusaurus/babel": {
|
"node_modules/@docusaurus/babel": {
|
||||||
"version": "3.8.1",
|
"version": "3.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.8.0.tgz",
|
||||||
"integrity": "sha512-3brkJrml8vUbn9aeoZUlJfsI/GqyFcDgQJwQkmBtclJgWDEQBKKeagZfOgx0WfUQhagL1sQLNW0iBdxnI863Uw==",
|
"integrity": "sha512-9EJwSgS6TgB8IzGk1L8XddJLhZod8fXT4ULYMx6SKqyCBqCFpVCEjR/hNXXhnmtVM2irDuzYoVLGWv7srG/VOA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -3329,8 +3321,8 @@
|
|||||||
"@babel/runtime": "^7.25.9",
|
"@babel/runtime": "^7.25.9",
|
||||||
"@babel/runtime-corejs3": "^7.25.9",
|
"@babel/runtime-corejs3": "^7.25.9",
|
||||||
"@babel/traverse": "^7.25.9",
|
"@babel/traverse": "^7.25.9",
|
||||||
"@docusaurus/logger": "3.8.1",
|
"@docusaurus/logger": "3.8.0",
|
||||||
"@docusaurus/utils": "3.8.1",
|
"@docusaurus/utils": "3.8.0",
|
||||||
"babel-plugin-dynamic-import-node": "^2.3.3",
|
"babel-plugin-dynamic-import-node": "^2.3.3",
|
||||||
"fs-extra": "^11.1.1",
|
"fs-extra": "^11.1.1",
|
||||||
"tslib": "^2.6.0"
|
"tslib": "^2.6.0"
|
||||||
@ -3340,31 +3332,31 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@docusaurus/bundler": {
|
"node_modules/@docusaurus/bundler": {
|
||||||
"version": "3.8.1",
|
"version": "3.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.8.0.tgz",
|
||||||
"integrity": "sha512-/z4V0FRoQ0GuSLToNjOSGsk6m2lQUG4FRn8goOVoZSRsTrU8YR2aJacX5K3RG18EaX9b+52pN4m1sL3MQZVsQA==",
|
"integrity": "sha512-Rq4Z/MSeAHjVzBLirLeMcjLIAQy92pF1OI+2rmt18fSlMARfTGLWRE8Vb+ljQPTOSfJxwDYSzsK6i7XloD2rNA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/core": "^7.25.9",
|
"@babel/core": "^7.25.9",
|
||||||
"@docusaurus/babel": "3.8.1",
|
"@docusaurus/babel": "3.8.0",
|
||||||
"@docusaurus/cssnano-preset": "3.8.1",
|
"@docusaurus/cssnano-preset": "3.8.0",
|
||||||
"@docusaurus/logger": "3.8.1",
|
"@docusaurus/logger": "3.8.0",
|
||||||
"@docusaurus/types": "3.8.1",
|
"@docusaurus/types": "3.8.0",
|
||||||
"@docusaurus/utils": "3.8.1",
|
"@docusaurus/utils": "3.8.0",
|
||||||
"babel-loader": "^9.2.1",
|
"babel-loader": "^9.2.1",
|
||||||
"clean-css": "^5.3.3",
|
"clean-css": "^5.3.2",
|
||||||
"copy-webpack-plugin": "^11.0.0",
|
"copy-webpack-plugin": "^11.0.0",
|
||||||
"css-loader": "^6.11.0",
|
"css-loader": "^6.8.1",
|
||||||
"css-minimizer-webpack-plugin": "^5.0.1",
|
"css-minimizer-webpack-plugin": "^5.0.1",
|
||||||
"cssnano": "^6.1.2",
|
"cssnano": "^6.1.2",
|
||||||
"file-loader": "^6.2.0",
|
"file-loader": "^6.2.0",
|
||||||
"html-minifier-terser": "^7.2.0",
|
"html-minifier-terser": "^7.2.0",
|
||||||
"mini-css-extract-plugin": "^2.9.2",
|
"mini-css-extract-plugin": "^2.9.1",
|
||||||
"null-loader": "^4.0.1",
|
"null-loader": "^4.0.1",
|
||||||
"postcss": "^8.5.4",
|
"postcss": "^8.4.26",
|
||||||
"postcss-loader": "^7.3.4",
|
"postcss-loader": "^7.3.3",
|
||||||
"postcss-preset-env": "^10.2.1",
|
"postcss-preset-env": "^10.1.0",
|
||||||
"terser-webpack-plugin": "^5.3.9",
|
"terser-webpack-plugin": "^5.3.9",
|
||||||
"tslib": "^2.6.0",
|
"tslib": "^2.6.0",
|
||||||
"url-loader": "^4.1.1",
|
"url-loader": "^4.1.1",
|
||||||
@ -3384,19 +3376,19 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@docusaurus/core": {
|
"node_modules/@docusaurus/core": {
|
||||||
"version": "3.8.1",
|
"version": "3.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.8.0.tgz",
|
||||||
"integrity": "sha512-ENB01IyQSqI2FLtOzqSI3qxG2B/jP4gQPahl2C3XReiLebcVh5B5cB9KYFvdoOqOWPyr5gXK4sjgTKv7peXCrA==",
|
"integrity": "sha512-c7u6zFELmSGPEP9WSubhVDjgnpiHgDqMh1qVdCB7rTflh4Jx0msTYmMiO91Ez0KtHj4sIsDsASnjwfJ2IZp3Vw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@docusaurus/babel": "3.8.1",
|
"@docusaurus/babel": "3.8.0",
|
||||||
"@docusaurus/bundler": "3.8.1",
|
"@docusaurus/bundler": "3.8.0",
|
||||||
"@docusaurus/logger": "3.8.1",
|
"@docusaurus/logger": "3.8.0",
|
||||||
"@docusaurus/mdx-loader": "3.8.1",
|
"@docusaurus/mdx-loader": "3.8.0",
|
||||||
"@docusaurus/utils": "3.8.1",
|
"@docusaurus/utils": "3.8.0",
|
||||||
"@docusaurus/utils-common": "3.8.1",
|
"@docusaurus/utils-common": "3.8.0",
|
||||||
"@docusaurus/utils-validation": "3.8.1",
|
"@docusaurus/utils-validation": "3.8.0",
|
||||||
"boxen": "^6.2.1",
|
"boxen": "^6.2.1",
|
||||||
"chalk": "^4.1.2",
|
"chalk": "^4.1.2",
|
||||||
"chokidar": "^3.5.3",
|
"chokidar": "^3.5.3",
|
||||||
@ -3446,14 +3438,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@docusaurus/cssnano-preset": {
|
"node_modules/@docusaurus/cssnano-preset": {
|
||||||
"version": "3.8.1",
|
"version": "3.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.8.0.tgz",
|
||||||
"integrity": "sha512-G7WyR2N6SpyUotqhGznERBK+x84uyhfMQM2MmDLs88bw4Flom6TY46HzkRkSEzaP9j80MbTN8naiL1fR17WQug==",
|
"integrity": "sha512-UJ4hAS2T0R4WNy+phwVff2Q0L5+RXW9cwlH6AEphHR5qw3m/yacfWcSK7ort2pMMbDn8uGrD38BTm4oLkuuNoQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"cssnano-preset-advanced": "^6.1.2",
|
"cssnano-preset-advanced": "^6.1.2",
|
||||||
"postcss": "^8.5.4",
|
"postcss": "^8.4.38",
|
||||||
"postcss-sort-media-queries": "^5.2.0",
|
"postcss-sort-media-queries": "^5.2.0",
|
||||||
"tslib": "^2.6.0"
|
"tslib": "^2.6.0"
|
||||||
},
|
},
|
||||||
@ -3462,9 +3454,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@docusaurus/logger": {
|
"node_modules/@docusaurus/logger": {
|
||||||
"version": "3.8.1",
|
"version": "3.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.8.0.tgz",
|
||||||
"integrity": "sha512-2wjeGDhKcExEmjX8k1N/MRDiPKXGF2Pg+df/bDDPnnJWHXnVEZxXj80d6jcxp1Gpnksl0hF8t/ZQw9elqj2+ww==",
|
"integrity": "sha512-7eEMaFIam5Q+v8XwGqF/n0ZoCld4hV4eCCgQkfcN9Mq5inoZa6PHHW9Wu6lmgzoK5Kx3keEeABcO2SxwraoPDQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -3476,15 +3468,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@docusaurus/mdx-loader": {
|
"node_modules/@docusaurus/mdx-loader": {
|
||||||
"version": "3.8.1",
|
"version": "3.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.8.0.tgz",
|
||||||
"integrity": "sha512-DZRhagSFRcEq1cUtBMo4TKxSNo/W6/s44yhr8X+eoXqCLycFQUylebOMPseHi5tc4fkGJqwqpWJLz6JStU9L4w==",
|
"integrity": "sha512-mDPSzssRnpjSdCGuv7z2EIAnPS1MHuZGTaRLwPn4oQwszu4afjWZ/60sfKjTnjBjI8Vl4OgJl2vMmfmiNDX4Ng==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@docusaurus/logger": "3.8.1",
|
"@docusaurus/logger": "3.8.0",
|
||||||
"@docusaurus/utils": "3.8.1",
|
"@docusaurus/utils": "3.8.0",
|
||||||
"@docusaurus/utils-validation": "3.8.1",
|
"@docusaurus/utils-validation": "3.8.0",
|
||||||
"@mdx-js/mdx": "^3.0.0",
|
"@mdx-js/mdx": "^3.0.0",
|
||||||
"@slorber/remark-comment": "^1.0.0",
|
"@slorber/remark-comment": "^1.0.0",
|
||||||
"escape-html": "^1.0.3",
|
"escape-html": "^1.0.3",
|
||||||
@ -3516,13 +3508,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@docusaurus/module-type-aliases": {
|
"node_modules/@docusaurus/module-type-aliases": {
|
||||||
"version": "3.8.1",
|
"version": "3.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.8.0.tgz",
|
||||||
"integrity": "sha512-6xhvAJiXzsaq3JdosS7wbRt/PwEPWHr9eM4YNYqVlbgG1hSK3uQDXTVvQktasp3VO6BmfYWPozueLWuj4gB+vg==",
|
"integrity": "sha512-/uMb4Ipt5J/QnD13MpnoC/A4EYAe6DKNWqTWLlGrqsPJwJv73vSwkA25xnYunwfqWk0FlUQfGv/Swdh5eCCg7g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@docusaurus/types": "3.8.1",
|
"@docusaurus/types": "3.8.0",
|
||||||
"@types/history": "^4.7.11",
|
"@types/history": "^4.7.11",
|
||||||
"@types/react": "*",
|
"@types/react": "*",
|
||||||
"@types/react-router-config": "*",
|
"@types/react-router-config": "*",
|
||||||
@ -3536,21 +3528,21 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@docusaurus/plugin-content-docs": {
|
"node_modules/@docusaurus/plugin-content-docs": {
|
||||||
"version": "3.8.1",
|
"version": "3.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.8.0.tgz",
|
||||||
"integrity": "sha512-oByRkSZzeGNQByCMaX+kif5Nl2vmtj2IHQI2fWjCfCootsdKZDPFLonhIp5s3IGJO7PLUfe0POyw0Xh/RrGXJA==",
|
"integrity": "sha512-fRDMFLbUN6eVRXcjP8s3Y7HpAt9pzPYh1F/7KKXOCxvJhjjCtbon4VJW0WndEPInVz4t8QUXn5QZkU2tGVCE2g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@docusaurus/core": "3.8.1",
|
"@docusaurus/core": "3.8.0",
|
||||||
"@docusaurus/logger": "3.8.1",
|
"@docusaurus/logger": "3.8.0",
|
||||||
"@docusaurus/mdx-loader": "3.8.1",
|
"@docusaurus/mdx-loader": "3.8.0",
|
||||||
"@docusaurus/module-type-aliases": "3.8.1",
|
"@docusaurus/module-type-aliases": "3.8.0",
|
||||||
"@docusaurus/theme-common": "3.8.1",
|
"@docusaurus/theme-common": "3.8.0",
|
||||||
"@docusaurus/types": "3.8.1",
|
"@docusaurus/types": "3.8.0",
|
||||||
"@docusaurus/utils": "3.8.1",
|
"@docusaurus/utils": "3.8.0",
|
||||||
"@docusaurus/utils-common": "3.8.1",
|
"@docusaurus/utils-common": "3.8.0",
|
||||||
"@docusaurus/utils-validation": "3.8.1",
|
"@docusaurus/utils-validation": "3.8.0",
|
||||||
"@types/react-router-config": "^5.0.7",
|
"@types/react-router-config": "^5.0.7",
|
||||||
"combine-promises": "^1.1.0",
|
"combine-promises": "^1.1.0",
|
||||||
"fs-extra": "^11.1.1",
|
"fs-extra": "^11.1.1",
|
||||||
@ -3570,16 +3562,16 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@docusaurus/theme-common": {
|
"node_modules/@docusaurus/theme-common": {
|
||||||
"version": "3.8.1",
|
"version": "3.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.8.0.tgz",
|
||||||
"integrity": "sha512-UswMOyTnPEVRvN5Qzbo+l8k4xrd5fTFu2VPPfD6FcW/6qUtVLmJTQCktbAL3KJ0BVXGm5aJXz/ZrzqFuZERGPw==",
|
"integrity": "sha512-YqV2vAWpXGLA+A3PMLrOMtqgTHJLDcT+1Caa6RF7N4/IWgrevy5diY8oIHFkXR/eybjcrFFjUPrHif8gSGs3Tw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@docusaurus/mdx-loader": "3.8.1",
|
"@docusaurus/mdx-loader": "3.8.0",
|
||||||
"@docusaurus/module-type-aliases": "3.8.1",
|
"@docusaurus/module-type-aliases": "3.8.0",
|
||||||
"@docusaurus/utils": "3.8.1",
|
"@docusaurus/utils": "3.8.0",
|
||||||
"@docusaurus/utils-common": "3.8.1",
|
"@docusaurus/utils-common": "3.8.0",
|
||||||
"@types/history": "^4.7.11",
|
"@types/history": "^4.7.11",
|
||||||
"@types/react": "*",
|
"@types/react": "*",
|
||||||
"@types/react-router-config": "*",
|
"@types/react-router-config": "*",
|
||||||
@ -3599,20 +3591,20 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@docusaurus/theme-search-algolia": {
|
"node_modules/@docusaurus/theme-search-algolia": {
|
||||||
"version": "3.8.1",
|
"version": "3.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.8.0.tgz",
|
||||||
"integrity": "sha512-NBFH5rZVQRAQM087aYSRKQ9yGEK9eHd+xOxQjqNpxMiV85OhJDD4ZGz6YJIod26Fbooy54UWVdzNU0TFeUUUzQ==",
|
"integrity": "sha512-GBZ5UOcPgiu6nUw153+0+PNWvFKweSnvKIL6Rp04H9olKb475jfKjAwCCtju5D2xs5qXHvCMvzWOg5o9f6DtuQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@docsearch/react": "^3.9.0",
|
"@docsearch/react": "^3.9.0",
|
||||||
"@docusaurus/core": "3.8.1",
|
"@docusaurus/core": "3.8.0",
|
||||||
"@docusaurus/logger": "3.8.1",
|
"@docusaurus/logger": "3.8.0",
|
||||||
"@docusaurus/plugin-content-docs": "3.8.1",
|
"@docusaurus/plugin-content-docs": "3.8.0",
|
||||||
"@docusaurus/theme-common": "3.8.1",
|
"@docusaurus/theme-common": "3.8.0",
|
||||||
"@docusaurus/theme-translations": "3.8.1",
|
"@docusaurus/theme-translations": "3.8.0",
|
||||||
"@docusaurus/utils": "3.8.1",
|
"@docusaurus/utils": "3.8.0",
|
||||||
"@docusaurus/utils-validation": "3.8.1",
|
"@docusaurus/utils-validation": "3.8.0",
|
||||||
"algoliasearch": "^5.17.1",
|
"algoliasearch": "^5.17.1",
|
||||||
"algoliasearch-helper": "^3.22.6",
|
"algoliasearch-helper": "^3.22.6",
|
||||||
"clsx": "^2.0.0",
|
"clsx": "^2.0.0",
|
||||||
@ -3631,9 +3623,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@docusaurus/theme-translations": {
|
"node_modules/@docusaurus/theme-translations": {
|
||||||
"version": "3.8.1",
|
"version": "3.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.8.0.tgz",
|
||||||
"integrity": "sha512-OTp6eebuMcf2rJt4bqnvuwmm3NVXfzfYejL+u/Y1qwKhZPrjPoKWfk1CbOP5xH5ZOPkiAsx4dHdQBRJszK3z2g==",
|
"integrity": "sha512-1DTy/snHicgkCkryWq54fZvsAglTdjTx4qjOXgqnXJ+DIty1B+aPQrAVUu8LiM+6BiILfmNxYsxhKTj+BS3PZg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -3645,9 +3637,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@docusaurus/types": {
|
"node_modules/@docusaurus/types": {
|
||||||
"version": "3.8.1",
|
"version": "3.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.8.0.tgz",
|
||||||
"integrity": "sha512-ZPdW5AB+pBjiVrcLuw3dOS6BFlrG0XkS2lDGsj8TizcnREQg3J8cjsgfDviszOk4CweNfwo1AEELJkYaMUuOPg==",
|
"integrity": "sha512-RDEClpwNxZq02c+JlaKLWoS13qwWhjcNsi2wG1UpzmEnuti/z1Wx4SGpqbUqRPNSd8QWWePR8Cb7DvG0VN/TtA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -3682,15 +3674,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@docusaurus/utils": {
|
"node_modules/@docusaurus/utils": {
|
||||||
"version": "3.8.1",
|
"version": "3.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.8.0.tgz",
|
||||||
"integrity": "sha512-P1ml0nvOmEFdmu0smSXOqTS1sxU5tqvnc0dA4MTKV39kye+bhQnjkIKEE18fNOvxjyB86k8esoCIFM3x4RykOQ==",
|
"integrity": "sha512-2wvtG28ALCN/A1WCSLxPASFBFzXCnP0YKCAFIPcvEb6imNu1wg7ni/Svcp71b3Z2FaOFFIv4Hq+j4gD7gA0yfQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@docusaurus/logger": "3.8.1",
|
"@docusaurus/logger": "3.8.0",
|
||||||
"@docusaurus/types": "3.8.1",
|
"@docusaurus/types": "3.8.0",
|
||||||
"@docusaurus/utils-common": "3.8.1",
|
"@docusaurus/utils-common": "3.8.0",
|
||||||
"escape-string-regexp": "^4.0.0",
|
"escape-string-regexp": "^4.0.0",
|
||||||
"execa": "5.1.1",
|
"execa": "5.1.1",
|
||||||
"file-loader": "^6.2.0",
|
"file-loader": "^6.2.0",
|
||||||
@ -3715,13 +3707,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@docusaurus/utils-common": {
|
"node_modules/@docusaurus/utils-common": {
|
||||||
"version": "3.8.1",
|
"version": "3.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.8.0.tgz",
|
||||||
"integrity": "sha512-zTZiDlvpvoJIrQEEd71c154DkcriBecm4z94OzEE9kz7ikS3J+iSlABhFXM45mZ0eN5pVqqr7cs60+ZlYLewtg==",
|
"integrity": "sha512-3TGF+wVTGgQ3pAc9+5jVchES4uXUAhAt9pwv7uws4mVOxL4alvU3ue/EZ+R4XuGk94pDy7CNXjRXpPjlfZXQfw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@docusaurus/types": "3.8.1",
|
"@docusaurus/types": "3.8.0",
|
||||||
"tslib": "^2.6.0"
|
"tslib": "^2.6.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@ -3729,15 +3721,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@docusaurus/utils-validation": {
|
"node_modules/@docusaurus/utils-validation": {
|
||||||
"version": "3.8.1",
|
"version": "3.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.8.0.tgz",
|
||||||
"integrity": "sha512-gs5bXIccxzEbyVecvxg6upTwaUbfa0KMmTj7HhHzc016AGyxH2o73k1/aOD0IFrdCsfJNt37MqNI47s2MgRZMA==",
|
"integrity": "sha512-MrnEbkigr54HkdFeg8e4FKc4EF+E9dlVwsY3XQZsNkbv3MKZnbHQ5LsNJDIKDROFe8PBf5C4qCAg5TPBpsjrjg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@docusaurus/logger": "3.8.1",
|
"@docusaurus/logger": "3.8.0",
|
||||||
"@docusaurus/utils": "3.8.1",
|
"@docusaurus/utils": "3.8.0",
|
||||||
"@docusaurus/utils-common": "3.8.1",
|
"@docusaurus/utils-common": "3.8.0",
|
||||||
"fs-extra": "^11.2.0",
|
"fs-extra": "^11.2.0",
|
||||||
"joi": "^17.9.2",
|
"joi": "^17.9.2",
|
||||||
"js-yaml": "^4.1.0",
|
"js-yaml": "^4.1.0",
|
||||||
@ -5410,9 +5402,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/browserslist": {
|
"node_modules/browserslist": {
|
||||||
"version": "4.25.0",
|
"version": "4.24.5",
|
||||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz",
|
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.5.tgz",
|
||||||
"integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==",
|
"integrity": "sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -5430,8 +5422,8 @@
|
|||||||
],
|
],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"caniuse-lite": "^1.0.30001718",
|
"caniuse-lite": "^1.0.30001716",
|
||||||
"electron-to-chromium": "^1.5.160",
|
"electron-to-chromium": "^1.5.149",
|
||||||
"node-releases": "^2.0.19",
|
"node-releases": "^2.0.19",
|
||||||
"update-browserslist-db": "^1.1.3"
|
"update-browserslist-db": "^1.1.3"
|
||||||
},
|
},
|
||||||
@ -6185,13 +6177,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/core-js-compat": {
|
"node_modules/core-js-compat": {
|
||||||
"version": "3.43.0",
|
"version": "3.42.0",
|
||||||
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.43.0.tgz",
|
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.42.0.tgz",
|
||||||
"integrity": "sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA==",
|
"integrity": "sha512-bQasjMfyDGyaeWKBIu33lHh9qlSR0MFE/Nmc6nMjf/iU9b3rSMdAYz1Baxrv4lPdGUsTqZudHA4jIGSJy0SWZQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"browserslist": "^4.25.0"
|
"browserslist": "^4.24.4"
|
||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
@ -6199,9 +6191,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/core-js-pure": {
|
"node_modules/core-js-pure": {
|
||||||
"version": "3.43.0",
|
"version": "3.42.0",
|
||||||
"resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.43.0.tgz",
|
"resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.42.0.tgz",
|
||||||
"integrity": "sha512-i/AgxU2+A+BbJdMxh3v7/vxi2SbFqxiFmg6VsDwYB4jkucrd1BZNA9a9gphC0fYMG5IBSgQcbQnk865VCLe7xA==",
|
"integrity": "sha512-007bM04u91fF4kMgwom2I5cQxAFIy8jVulgr9eozILl/SZE53QOqnW/+vviC+wQWLv+AunBG+8Q0TLoeSsSxRQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
@ -7148,9 +7140,9 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/electron-to-chromium": {
|
"node_modules/electron-to-chromium": {
|
||||||
"version": "1.5.170",
|
"version": "1.5.155",
|
||||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.170.tgz",
|
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.155.tgz",
|
||||||
"integrity": "sha512-GP+M7aeluQo9uAyiTCxgIj/j+PrWhMlY7LFVj8prlsPljd0Fdg9AprlfUi+OCSFWy9Y5/2D/Jrj9HS8Z4rpKWA==",
|
"integrity": "sha512-ps5KcGGmwL8VaeJlvlDlu4fORQpv3+GIcF5I3f9tUKUlJ/wsysh6HU8P5L1XWRYeXfA0oJd4PyM8ds8zTFf6Ng==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "ISC"
|
"license": "ISC"
|
||||||
},
|
},
|
||||||
@ -13127,9 +13119,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/postcss": {
|
"node_modules/postcss": {
|
||||||
"version": "8.5.6",
|
"version": "8.5.4",
|
||||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
|
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.4.tgz",
|
||||||
"integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
|
"integrity": "sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -13378,9 +13370,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/postcss-custom-properties": {
|
"node_modules/postcss-custom-properties": {
|
||||||
"version": "14.0.6",
|
"version": "14.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-14.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-14.0.5.tgz",
|
||||||
"integrity": "sha512-fTYSp3xuk4BUeVhxCSJdIPhDLpJfNakZKoiTDx7yRGCdlZrSJR7mWKVOBS4sBF+5poPQFMj2YdXx1VHItBGihQ==",
|
"integrity": "sha512-UWf/vhMapZatv+zOuqlfLmYXeOhhHLh8U8HAKGI2VJ00xLRYoAJh4xv8iX6FB6+TLXeDnm0DBLMi00E0hodbQw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -14018,9 +14010,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/postcss-nesting": {
|
"node_modules/postcss-nesting": {
|
||||||
"version": "13.0.2",
|
"version": "13.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.1.tgz",
|
||||||
"integrity": "sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ==",
|
"integrity": "sha512-VbqqHkOBOt4Uu3G8Dm8n6lU5+9cJFxiuty9+4rcoyRPO9zZS1JIs6td49VIoix3qYqELHlJIn46Oih9SAKo+yQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -14034,7 +14026,7 @@
|
|||||||
],
|
],
|
||||||
"license": "MIT-0",
|
"license": "MIT-0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@csstools/selector-resolve-nested": "^3.1.0",
|
"@csstools/selector-resolve-nested": "^3.0.0",
|
||||||
"@csstools/selector-specificity": "^5.0.0",
|
"@csstools/selector-specificity": "^5.0.0",
|
||||||
"postcss-selector-parser": "^7.0.0"
|
"postcss-selector-parser": "^7.0.0"
|
||||||
},
|
},
|
||||||
@ -14046,9 +14038,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/postcss-nesting/node_modules/@csstools/selector-resolve-nested": {
|
"node_modules/postcss-nesting/node_modules/@csstools/selector-resolve-nested": {
|
||||||
"version": "3.1.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.0.0.tgz",
|
||||||
"integrity": "sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g==",
|
"integrity": "sha512-ZoK24Yku6VJU1gS79a5PFmC8yn3wIapiKmPgun0hZgEI5AOqgH2kiPRsPz1qkGv4HL+wuDLH83yQyk6inMYrJQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -14350,9 +14342,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/postcss-preset-env": {
|
"node_modules/postcss-preset-env": {
|
||||||
"version": "10.2.3",
|
"version": "10.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.2.0.tgz",
|
||||||
"integrity": "sha512-zlQN1yYmA7lFeM1wzQI14z97mKoM8qGng+198w1+h6sCud/XxOjcKtApY9jWr7pXNS3yHDEafPlClSsWnkY8ow==",
|
"integrity": "sha512-cl13sPBbSqo1Q7Ryb19oT5NZO5IHFolRbIMdgDq4f9w1MHYiL6uZS7uSsjXJ1KzRIcX5BMjEeyxmAevVXENa3Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -14378,7 +14370,7 @@
|
|||||||
"@csstools/postcss-hwb-function": "^4.0.10",
|
"@csstools/postcss-hwb-function": "^4.0.10",
|
||||||
"@csstools/postcss-ic-unit": "^4.0.2",
|
"@csstools/postcss-ic-unit": "^4.0.2",
|
||||||
"@csstools/postcss-initial": "^2.0.1",
|
"@csstools/postcss-initial": "^2.0.1",
|
||||||
"@csstools/postcss-is-pseudo-class": "^5.0.3",
|
"@csstools/postcss-is-pseudo-class": "^5.0.1",
|
||||||
"@csstools/postcss-light-dark-function": "^2.0.9",
|
"@csstools/postcss-light-dark-function": "^2.0.9",
|
||||||
"@csstools/postcss-logical-float-and-clear": "^3.0.0",
|
"@csstools/postcss-logical-float-and-clear": "^3.0.0",
|
||||||
"@csstools/postcss-logical-overflow": "^2.0.0",
|
"@csstools/postcss-logical-overflow": "^2.0.0",
|
||||||
@ -14400,7 +14392,7 @@
|
|||||||
"@csstools/postcss-trigonometric-functions": "^4.0.9",
|
"@csstools/postcss-trigonometric-functions": "^4.0.9",
|
||||||
"@csstools/postcss-unset-value": "^4.0.0",
|
"@csstools/postcss-unset-value": "^4.0.0",
|
||||||
"autoprefixer": "^10.4.21",
|
"autoprefixer": "^10.4.21",
|
||||||
"browserslist": "^4.25.0",
|
"browserslist": "^4.24.5",
|
||||||
"css-blank-pseudo": "^7.0.1",
|
"css-blank-pseudo": "^7.0.1",
|
||||||
"css-has-pseudo": "^7.0.2",
|
"css-has-pseudo": "^7.0.2",
|
||||||
"css-prefers-color-scheme": "^10.0.0",
|
"css-prefers-color-scheme": "^10.0.0",
|
||||||
@ -14411,7 +14403,7 @@
|
|||||||
"postcss-color-hex-alpha": "^10.0.0",
|
"postcss-color-hex-alpha": "^10.0.0",
|
||||||
"postcss-color-rebeccapurple": "^10.0.0",
|
"postcss-color-rebeccapurple": "^10.0.0",
|
||||||
"postcss-custom-media": "^11.0.6",
|
"postcss-custom-media": "^11.0.6",
|
||||||
"postcss-custom-properties": "^14.0.6",
|
"postcss-custom-properties": "^14.0.5",
|
||||||
"postcss-custom-selectors": "^8.0.5",
|
"postcss-custom-selectors": "^8.0.5",
|
||||||
"postcss-dir-pseudo-class": "^9.0.1",
|
"postcss-dir-pseudo-class": "^9.0.1",
|
||||||
"postcss-double-position-gradients": "^6.0.2",
|
"postcss-double-position-gradients": "^6.0.2",
|
||||||
@ -14422,7 +14414,7 @@
|
|||||||
"postcss-image-set-function": "^7.0.0",
|
"postcss-image-set-function": "^7.0.0",
|
||||||
"postcss-lab-function": "^7.0.10",
|
"postcss-lab-function": "^7.0.10",
|
||||||
"postcss-logical": "^8.1.0",
|
"postcss-logical": "^8.1.0",
|
||||||
"postcss-nesting": "^13.0.2",
|
"postcss-nesting": "^13.0.1",
|
||||||
"postcss-opacity-percentage": "^3.0.0",
|
"postcss-opacity-percentage": "^3.0.0",
|
||||||
"postcss-overflow-shorthand": "^6.0.0",
|
"postcss-overflow-shorthand": "^6.0.0",
|
||||||
"postcss-page-break": "^3.0.4",
|
"postcss-page-break": "^3.0.4",
|
||||||
@ -14997,7 +14989,7 @@
|
|||||||
"version": "19.1.0",
|
"version": "19.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz",
|
||||||
"integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==",
|
"integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==",
|
||||||
"devOptional": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"scheduler": "^0.26.0"
|
"scheduler": "^0.26.0"
|
||||||
@ -15796,7 +15788,7 @@
|
|||||||
"version": "0.26.0",
|
"version": "0.26.0",
|
||||||
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz",
|
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz",
|
||||||
"integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==",
|
"integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==",
|
||||||
"devOptional": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/schema-dts": {
|
"node_modules/schema-dts": {
|
||||||
|
|||||||
@ -1,12 +1,10 @@
|
|||||||
{
|
{
|
||||||
"name": "@goauthentik/docusaurus-config",
|
"name": "@goauthentik/docusaurus-config",
|
||||||
"version": "2.1.1",
|
"version": "2.0.0",
|
||||||
"description": "authentik's Docusaurus config",
|
"description": "authentik's Docusaurus config",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "tsc -p .",
|
"build": "tsc -p ."
|
||||||
"prettier": "prettier --write .",
|
|
||||||
"prettier-check": "prettier --check ."
|
|
||||||
},
|
},
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"exports": {
|
"exports": {
|
||||||
@ -22,26 +20,24 @@
|
|||||||
"prism-react-renderer": "^2.4.1"
|
"prism-react-renderer": "^2.4.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@docusaurus/theme-common": "^3.8.1",
|
"@docusaurus/theme-common": "^3.8.0",
|
||||||
"@docusaurus/theme-search-algolia": "^3.8.1",
|
"@docusaurus/theme-search-algolia": "^3.8.0",
|
||||||
"@docusaurus/types": "^3.8.1",
|
"@docusaurus/types": "^3.8.0",
|
||||||
"@goauthentik/prettier-config": "^2.0.0",
|
"@goauthentik/prettier-config": "^2.0.0",
|
||||||
"@goauthentik/tsconfig": "^1.0.4",
|
"@goauthentik/tsconfig": "^1.0.4",
|
||||||
"@types/react": "^19.1.6",
|
"@types/react": "^19.1.6",
|
||||||
"@types/react-dom": "^19.1.5",
|
"@types/react-dom": "^19.1.5",
|
||||||
"prettier": "^3.5.3",
|
"prettier": "^3.5.3",
|
||||||
|
"react": "^19.1.0",
|
||||||
|
"react-dom": "^19.1.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@docusaurus/theme-common": "^3.8.1",
|
"@docusaurus/theme-common": "^3.8.0",
|
||||||
"@docusaurus/theme-search-algolia": "^3.8.1",
|
"@docusaurus/theme-search-algolia": "^3.8.0",
|
||||||
"@docusaurus/types": "^3.8.0",
|
"@docusaurus/types": "^3.8.0",
|
||||||
"react": ">=18",
|
"react": "^18.0.0 || ^19.0.0",
|
||||||
"react-dom": ">=18"
|
"react-dom": "^18.0.0 || ^19.0.0"
|
||||||
},
|
|
||||||
"optionalDependencies": {
|
|
||||||
"react": ">=18",
|
|
||||||
"react-dom": ">=18"
|
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=22"
|
"node": ">=22"
|
||||||
@ -57,12 +53,6 @@
|
|||||||
"peerDependenciesMeta": {
|
"peerDependenciesMeta": {
|
||||||
"@docusaurus/theme-search-algolia": {
|
"@docusaurus/theme-search-algolia": {
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
|
||||||
"react": {
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"react-dom": {
|
|
||||||
"optional": true
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"publishConfig": {
|
"publishConfig": {
|
||||||
|
|||||||
@ -1,9 +0,0 @@
|
|||||||
# Prettier Ignorefile
|
|
||||||
|
|
||||||
## Static Files
|
|
||||||
**/LICENSE
|
|
||||||
|
|
||||||
## Build asset directories
|
|
||||||
coverage
|
|
||||||
dist
|
|
||||||
out
|
|
||||||
@ -45,6 +45,7 @@ export const AuthentikPrettierConfig = {
|
|||||||
"^(@goauthentik/|#)user.+",
|
"^(@goauthentik/|#)user.+",
|
||||||
"^(@goauthentik/|#)admin.+",
|
"^(@goauthentik/|#)admin.+",
|
||||||
"^(@goauthentik/|#)flow.+",
|
"^(@goauthentik/|#)flow.+",
|
||||||
|
"^(@goauthentik/|#)flow.+",
|
||||||
|
|
||||||
"^#.+",
|
"^#.+",
|
||||||
"^@goauthentik.+",
|
"^@goauthentik.+",
|
||||||
|
|||||||
32
packages/prettier-config/package-lock.json
generated
32
packages/prettier-config/package-lock.json
generated
@ -1,29 +1,29 @@
|
|||||||
{
|
{
|
||||||
"name": "@goauthentik/prettier-config",
|
"name": "@goauthentik/prettier-config",
|
||||||
"version": "2.0.1",
|
"version": "2.0.0",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@goauthentik/prettier-config",
|
"name": "@goauthentik/prettier-config",
|
||||||
"version": "2.0.1",
|
"version": "2.0.0",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@goauthentik/tsconfig": "^1.0.1",
|
"@goauthentik/tsconfig": "^1.0.1",
|
||||||
"@trivago/prettier-plugin-sort-imports": "^5.2.2",
|
"@trivago/prettier-plugin-sort-imports": "^5.2.2",
|
||||||
"prettier": "^3.5.3",
|
"prettier": "^3.5.3",
|
||||||
"prettier-plugin-organize-imports": "^4.1.0",
|
"prettier-plugin-organize-imports": "^4.1.0",
|
||||||
"prettier-plugin-packagejson": "^2.5.15",
|
"prettier-plugin-packagejson": "^2.5.14",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.2"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=22"
|
"node": ">=20.11"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@trivago/prettier-plugin-sort-imports": "^5.2.2",
|
"@trivago/prettier-plugin-sort-imports": "^5.2.2",
|
||||||
"prettier": "^3.5.3",
|
"prettier": "^3.5.3",
|
||||||
"prettier-plugin-organize-imports": "^4.1.0",
|
"prettier-plugin-organize-imports": "^4.1.0",
|
||||||
"prettier-plugin-packagejson": "^2.5.15"
|
"prettier-plugin-packagejson": "^2.5.14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/code-frame": {
|
"node_modules/@babel/code-frame": {
|
||||||
@ -206,9 +206,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@pkgr/core": {
|
"node_modules/@pkgr/core": {
|
||||||
"version": "0.2.7",
|
"version": "0.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.7.tgz",
|
"resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.4.tgz",
|
||||||
"integrity": "sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg==",
|
"integrity": "sha512-ROFF39F6ZrnzSUEmQQZUar0Jt4xVoP9WnDRdWwF4NNcXs3xBTLgBUDoOwW141y1jP+S8nahIbdxbFC7IShw9Iw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
@ -437,14 +437,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/prettier-plugin-packagejson": {
|
"node_modules/prettier-plugin-packagejson": {
|
||||||
"version": "2.5.15",
|
"version": "2.5.14",
|
||||||
"resolved": "https://registry.npmjs.org/prettier-plugin-packagejson/-/prettier-plugin-packagejson-2.5.15.tgz",
|
"resolved": "https://registry.npmjs.org/prettier-plugin-packagejson/-/prettier-plugin-packagejson-2.5.14.tgz",
|
||||||
"integrity": "sha512-2QSx6y4IT6LTwXtCvXAopENW5IP/aujC8fobEM2pDbs0IGkiVjW/ipPuYAHuXigbNe64aGWF7vIetukuzM3CBw==",
|
"integrity": "sha512-h+3tSpr2nVpp+YOK1MDIYtYhHVXr8/0V59UUbJpIJFaqi3w4fvUokJo6eV8W+vELrUXIZzJ+DKm5G7lYzrMcKQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"sort-package-json": "3.2.1",
|
"sort-package-json": "3.2.1",
|
||||||
"synckit": "0.11.8"
|
"synckit": "0.11.6"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"prettier": ">= 1.16.0"
|
"prettier": ">= 1.16.0"
|
||||||
@ -495,9 +495,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/synckit": {
|
"node_modules/synckit": {
|
||||||
"version": "0.11.8",
|
"version": "0.11.6",
|
||||||
"resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.8.tgz",
|
"resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.6.tgz",
|
||||||
"integrity": "sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==",
|
"integrity": "sha512-2pR2ubZSV64f/vqm9eLPz/KOvR9Dm+Co/5ChLgeHl0yEDRc6h5hXHoxEQH8Y5Ljycozd3p1k5TTSVdzYGkPvLw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|||||||
@ -1,12 +1,10 @@
|
|||||||
{
|
{
|
||||||
"name": "@goauthentik/prettier-config",
|
"name": "@goauthentik/prettier-config",
|
||||||
"version": "2.0.1",
|
"version": "2.0.0",
|
||||||
"description": "authentik's Prettier config",
|
"description": "authentik's Prettier config",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "tsc -p .",
|
"build": "tsc -p ."
|
||||||
"prettier": "prettier --write .",
|
|
||||||
"prettier-check": "prettier --check ."
|
|
||||||
},
|
},
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"exports": "./index.js",
|
"exports": "./index.js",
|
||||||
@ -15,17 +13,17 @@
|
|||||||
"@trivago/prettier-plugin-sort-imports": "^5.2.2",
|
"@trivago/prettier-plugin-sort-imports": "^5.2.2",
|
||||||
"prettier": "^3.5.3",
|
"prettier": "^3.5.3",
|
||||||
"prettier-plugin-organize-imports": "^4.1.0",
|
"prettier-plugin-organize-imports": "^4.1.0",
|
||||||
"prettier-plugin-packagejson": "^2.5.15",
|
"prettier-plugin-packagejson": "^2.5.14",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.2"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@trivago/prettier-plugin-sort-imports": "^5.2.2",
|
"@trivago/prettier-plugin-sort-imports": "^5.2.2",
|
||||||
"prettier": "^3.5.3",
|
"prettier": "^3.5.3",
|
||||||
"prettier-plugin-organize-imports": "^4.1.0",
|
"prettier-plugin-organize-imports": "^4.1.0",
|
||||||
"prettier-plugin-packagejson": "^2.5.15"
|
"prettier-plugin-packagejson": "^2.5.14"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=22"
|
"node": ">=20.11"
|
||||||
},
|
},
|
||||||
"types": "./out/index.d.ts",
|
"types": "./out/index.d.ts",
|
||||||
"files": [
|
"files": [
|
||||||
|
|||||||
@ -15,18 +15,17 @@ dependencies = [
|
|||||||
"defusedxml==0.7.1",
|
"defusedxml==0.7.1",
|
||||||
"django==5.1.11",
|
"django==5.1.11",
|
||||||
"django-countries==7.6.1",
|
"django-countries==7.6.1",
|
||||||
"django-cte==2.0.0",
|
"django-cte==1.3.3",
|
||||||
"django-filter==25.1",
|
"django-filter==25.1",
|
||||||
"django-guardian==3.0.0",
|
"django-guardian==3.0.0",
|
||||||
"django-model-utils==5.0.0",
|
"django-model-utils==5.0.0",
|
||||||
"django-pglock==1.7.2",
|
"django-pglock==1.7.2",
|
||||||
"django-prometheus==2.4.0",
|
"django-prometheus==2.3.1",
|
||||||
"django-redis==6.0.0",
|
"django-redis==5.4.0",
|
||||||
"django-storages[s3]==1.14.6",
|
"django-storages[s3]==1.14.6",
|
||||||
"django-tenants==3.8.0",
|
"django-tenants==3.8.0",
|
||||||
"djangoql==0.18.1",
|
|
||||||
"djangorestframework-guardian==0.3.0",
|
|
||||||
"djangorestframework==3.16.0",
|
"djangorestframework==3.16.0",
|
||||||
|
"djangorestframework-guardian==0.3.0",
|
||||||
"docker==7.1.0",
|
"docker==7.1.0",
|
||||||
"drf-orjson-renderer==1.7.3",
|
"drf-orjson-renderer==1.7.3",
|
||||||
"drf-spectacular==0.28.0",
|
"drf-spectacular==0.28.0",
|
||||||
@ -44,7 +43,7 @@ dependencies = [
|
|||||||
"kubernetes==33.1.0",
|
"kubernetes==33.1.0",
|
||||||
"ldap3==2.9.1",
|
"ldap3==2.9.1",
|
||||||
"lxml==5.4.0",
|
"lxml==5.4.0",
|
||||||
"msgraph-sdk==1.34.0",
|
"msgraph-sdk==1.33.0",
|
||||||
"opencontainers==0.0.14",
|
"opencontainers==0.0.14",
|
||||||
"packaging==25.0",
|
"packaging==25.0",
|
||||||
"paramiko==3.5.1",
|
"paramiko==3.5.1",
|
||||||
@ -53,7 +52,7 @@ dependencies = [
|
|||||||
"pydantic-scim==0.0.8",
|
"pydantic-scim==0.0.8",
|
||||||
"pyjwt==2.10.1",
|
"pyjwt==2.10.1",
|
||||||
"pyrad==2.4",
|
"pyrad==2.4",
|
||||||
"python-kadmin-rs==0.6.1",
|
"python-kadmin-rs==0.6.0",
|
||||||
"pyyaml==6.0.2",
|
"pyyaml==6.0.2",
|
||||||
"requests-oauthlib==2.0.0",
|
"requests-oauthlib==2.0.0",
|
||||||
"scim2-filter-parser==0.7.0",
|
"scim2-filter-parser==0.7.0",
|
||||||
|
|||||||
480
schema.yml
480
schema.yml
File diff suppressed because it is too large
Load Diff
587
uv.lock
generated
587
uv.lock
generated
@ -13,7 +13,7 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "aiohttp"
|
name = "aiohttp"
|
||||||
version = "3.12.13"
|
version = "3.12.8"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "aiohappyeyeballs" },
|
{ name = "aiohappyeyeballs" },
|
||||||
@ -24,25 +24,25 @@ dependencies = [
|
|||||||
{ name = "propcache" },
|
{ name = "propcache" },
|
||||||
{ name = "yarl" },
|
{ name = "yarl" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/42/6e/ab88e7cb2a4058bed2f7870276454f85a7c56cd6da79349eb314fc7bbcaa/aiohttp-3.12.13.tar.gz", hash = "sha256:47e2da578528264a12e4e3dd8dd72a7289e5f812758fe086473fab037a10fcce", size = 7819160, upload-time = "2025-06-14T15:15:41.354Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/52/14/591553163be65a45d5b9329ae2d95d491d77cded4e1c8213d9537b78c478/aiohttp-3.12.8.tar.gz", hash = "sha256:3c0d2ca376b7cea6c1dfa1fc2479b02b3f482a249fc7020c69063b321080140a", size = 7809245, upload-time = "2025-06-04T10:06:18.411Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/11/0f/db19abdf2d86aa1deec3c1e0e5ea46a587b97c07a16516b6438428b3a3f8/aiohttp-3.12.13-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d4a18e61f271127465bdb0e8ff36e8f02ac4a32a80d8927aa52371e93cd87938", size = 694910, upload-time = "2025-06-14T15:14:30.604Z" },
|
{ url = "https://files.pythonhosted.org/packages/83/2d/f1661c5069c94e5236ebc94aedf3071dcdbdf3e826d768f563a79dd677bf/aiohttp-3.12.8-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0cfe91b12a86f1a1f292f46201f8801263f1df3b843c1f9020b98e6007838918", size = 693300, upload-time = "2025-06-04T10:04:57.001Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/d5/81/0ab551e1b5d7f1339e2d6eb482456ccbe9025605b28eed2b1c0203aaaade/aiohttp-3.12.13-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:532542cb48691179455fab429cdb0d558b5e5290b033b87478f2aa6af5d20ace", size = 472566, upload-time = "2025-06-14T15:14:32.275Z" },
|
{ url = "https://files.pythonhosted.org/packages/4f/53/c63430c4aaaf00407a2a3889182b66c9888386ae7737b11d76336f0a21d7/aiohttp-3.12.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:326396e1c174e775ac1bd49d41689128a28434d86af2d5dd9adfb211686f16c8", size = 470964, upload-time = "2025-06-04T10:04:59.007Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/34/3f/6b7d336663337672d29b1f82d1f252ec1a040fe2d548f709d3f90fa2218a/aiohttp-3.12.13-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d7eea18b52f23c050ae9db5d01f3d264ab08f09e7356d6f68e3f3ac2de9dfabb", size = 464856, upload-time = "2025-06-14T15:14:34.132Z" },
|
{ url = "https://files.pythonhosted.org/packages/8c/87/ae2ec08f33742c3cc71bcf2bdd50e2d08e0e886a13a16579243c4105abf6/aiohttp-3.12.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e0e7de9631c3163997a34d8ed55a2165e2df2ec6082dc4bd16eea92d00145c4c", size = 463265, upload-time = "2025-06-04T10:05:00.937Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/26/7f/32ca0f170496aa2ab9b812630fac0c2372c531b797e1deb3deb4cea904bd/aiohttp-3.12.13-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad7c8e5c25f2a26842a7c239de3f7b6bfb92304593ef997c04ac49fb703ff4d7", size = 1703683, upload-time = "2025-06-14T15:14:36.034Z" },
|
{ url = "https://files.pythonhosted.org/packages/c7/35/b17b894e129176639fcfdef2d859c6602e206e032ad8b41d050899296190/aiohttp-3.12.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0759cbdca820a6a5a8562606052792ef9acb79633c3e79e6733a3c1c133d4c7d", size = 1702083, upload-time = "2025-06-04T10:05:02.988Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/ec/53/d5513624b33a811c0abea8461e30a732294112318276ce3dbf047dbd9d8b/aiohttp-3.12.13-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6af355b483e3fe9d7336d84539fef460120c2f6e50e06c658fe2907c69262d6b", size = 1684946, upload-time = "2025-06-14T15:14:38Z" },
|
{ url = "https://files.pythonhosted.org/packages/58/57/c0ec6bf62c390956e6c66369abb23e3369cf5f9472744ecdbedf2c884886/aiohttp-3.12.8-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:311060ebd0832074968dd7d1b204a3b155203f7f9159c5b0908b76c5430be50f", size = 1683349, upload-time = "2025-06-04T10:05:04.978Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/37/72/4c237dd127827b0247dc138d3ebd49c2ded6114c6991bbe969058575f25f/aiohttp-3.12.13-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a95cf9f097498f35c88e3609f55bb47b28a5ef67f6888f4390b3d73e2bac6177", size = 1737017, upload-time = "2025-06-14T15:14:39.951Z" },
|
{ url = "https://files.pythonhosted.org/packages/45/07/288839d84b64a525e332e8e71b38de67549887aaaf7352896ab4ef7ab42e/aiohttp-3.12.8-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:268a7c20eb404e9154b77fa521f832bbfd876cf5ff7b3e0dcb744d5b46738149", size = 1735419, upload-time = "2025-06-04T10:05:06.986Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/0d/67/8a7eb3afa01e9d0acc26e1ef847c1a9111f8b42b82955fcd9faeb84edeb4/aiohttp-3.12.13-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b8ed8c38a1c584fe99a475a8f60eefc0b682ea413a84c6ce769bb19a7ff1c5ef", size = 1786390, upload-time = "2025-06-14T15:14:42.151Z" },
|
{ url = "https://files.pythonhosted.org/packages/81/1f/2db47efa2325b05869ed4eb0935ac3adee9c82689e8c43824f84979343b2/aiohttp-3.12.8-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0725406d0c512d589be41141391d11d56b447f4b56eee9bd9a17424b0e3e1d78", size = 1784790, upload-time = "2025-06-04T10:05:09.617Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/48/19/0377df97dd0176ad23cd8cad4fd4232cfeadcec6c1b7f036315305c98e3f/aiohttp-3.12.13-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a0b9170d5d800126b5bc89d3053a2363406d6e327afb6afaeda2d19ee8bb103", size = 1708719, upload-time = "2025-06-14T15:14:44.039Z" },
|
{ url = "https://files.pythonhosted.org/packages/23/26/e667da558e29b30a1d758b7f0719a3be0c44bd14fb326bf3d988596075af/aiohttp-3.12.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a8edf6c68eb4397136591d66ce4bda8cdb47ca585948223bc98e8492d37c71f", size = 1707122, upload-time = "2025-06-04T10:05:12.113Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/61/97/ade1982a5c642b45f3622255173e40c3eed289c169f89d00eeac29a89906/aiohttp-3.12.13-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:372feeace612ef8eb41f05ae014a92121a512bd5067db8f25101dd88a8db11da", size = 1622424, upload-time = "2025-06-14T15:14:45.945Z" },
|
{ url = "https://files.pythonhosted.org/packages/b0/4a/621345bcc17c7045b97b5e4374cc30e343e03f1434f710aa4c573d25d676/aiohttp-3.12.8-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:25aa7f26286769210938a159db2f2f65d05bcc06190e34fca03eeb643f20dfc7", size = 1620825, upload-time = "2025-06-04T10:05:14.32Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/99/ab/00ad3eea004e1d07ccc406e44cfe2b8da5acb72f8c66aeeb11a096798868/aiohttp-3.12.13-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a946d3702f7965d81f7af7ea8fb03bb33fe53d311df48a46eeca17e9e0beed2d", size = 1675447, upload-time = "2025-06-14T15:14:47.911Z" },
|
{ url = "https://files.pythonhosted.org/packages/6f/08/dd7d243b2f44914d647614503c5616d1393930fef5acf74ea6da1fe0e181/aiohttp-3.12.8-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:952d2fa762ba6a946f3498a3a62c19dadb066539f5ac0dfa20dfe58bb8f733b5", size = 1673847, upload-time = "2025-06-04T10:05:16.357Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/3f/fe/74e5ce8b2ccaba445fe0087abc201bfd7259431d92ae608f684fcac5d143/aiohttp-3.12.13-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:a0c4725fae86555bbb1d4082129e21de7264f4ab14baf735278c974785cd2041", size = 1707110, upload-time = "2025-06-14T15:14:50.334Z" },
|
{ url = "https://files.pythonhosted.org/packages/2a/04/c58e5347960a385bc360678e1fee3ea021db99b0c7b83adaedf98b54e6b1/aiohttp-3.12.8-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:c2b7f82193482c7778d2de25d67dcc29a65895f5281ef177609ed4ebfb015d68", size = 1705511, upload-time = "2025-06-04T10:05:22.63Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/ef/c4/39af17807f694f7a267bd8ab1fbacf16ad66740862192a6c8abac2bff813/aiohttp-3.12.13-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:9b28ea2f708234f0a5c44eb6c7d9eb63a148ce3252ba0140d050b091b6e842d1", size = 1649706, upload-time = "2025-06-14T15:14:52.378Z" },
|
{ url = "https://files.pythonhosted.org/packages/48/88/dd5866d495dd07ca76d97b8a90373310b3ae9d9da845a8621038a36d289b/aiohttp-3.12.8-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:0a99972b368e370882994a72bd2e7b2d89a886288f0ff0ea09793452865b97a3", size = 1648108, upload-time = "2025-06-04T10:05:24.775Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/38/e8/f5a0a5f44f19f171d8477059aa5f28a158d7d57fe1a46c553e231f698435/aiohttp-3.12.13-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:d4f5becd2a5791829f79608c6f3dc745388162376f310eb9c142c985f9441cc1", size = 1725839, upload-time = "2025-06-14T15:14:54.617Z" },
|
{ url = "https://files.pythonhosted.org/packages/ed/81/151c62ec0fdeca4952ea716a197c54b36272b0dd23d202321a01e4b76997/aiohttp-3.12.8-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:ae8c65d708a473fcfa5b972a1dc6bf31257d58a07f4e4c93d0327384deab5cae", size = 1724241, upload-time = "2025-06-04T10:05:26.825Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/fd/ac/81acc594c7f529ef4419d3866913f628cd4fa9cab17f7bf410a5c3c04c53/aiohttp-3.12.13-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:60f2ce6b944e97649051d5f5cc0f439360690b73909230e107fd45a359d3e911", size = 1759311, upload-time = "2025-06-14T15:14:56.597Z" },
|
{ url = "https://files.pythonhosted.org/packages/f5/4e/578938d73e73187d835623a2902979d775b25600320244724f7fb47677ad/aiohttp-3.12.8-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:a9e0be4d239794c065e1ba439d19de7e4773b4b4b3b9849af2c3c233f3e5b3eb", size = 1757713, upload-time = "2025-06-04T10:05:29.368Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/38/0d/aabe636bd25c6ab7b18825e5a97d40024da75152bec39aa6ac8b7a677630/aiohttp-3.12.13-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:69fc1909857401b67bf599c793f2183fbc4804717388b0b888f27f9929aa41f3", size = 1708202, upload-time = "2025-06-14T15:14:58.598Z" },
|
{ url = "https://files.pythonhosted.org/packages/47/c0/02c94b8d4dcc790976ef047737faa995aff1b3eaebd506d781ca43371d9c/aiohttp-3.12.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ad754910e7acce5bd52326b308ca58d404e8ba1a5bcd5a0c8607ce3dee4a1d65", size = 1706603, upload-time = "2025-06-04T10:05:31.682Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/1f/ab/561ef2d8a223261683fb95a6283ad0d36cb66c87503f3a7dde7afe208bb2/aiohttp-3.12.13-cp313-cp313-win32.whl", hash = "sha256:7d7e68787a2046b0e44ba5587aa723ce05d711e3a3665b6b7545328ac8e3c0dd", size = 420794, upload-time = "2025-06-14T15:15:00.939Z" },
|
{ url = "https://files.pythonhosted.org/packages/fe/2d/6303861ebd2ac90753f0f789892c3ff841df0fcee7527cbd8e5be82c354f/aiohttp-3.12.8-cp313-cp313-win32.whl", hash = "sha256:3ca646524940dd62a96658ccc1e64dc548c633dd0468a0bf8525dd3163e2c60c", size = 419100, upload-time = "2025-06-04T10:05:34.303Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/9d/47/b11d0089875a23bff0abd3edb5516bcd454db3fefab8604f5e4b07bd6210/aiohttp-3.12.13-cp313-cp313-win_amd64.whl", hash = "sha256:5a178390ca90419bfd41419a809688c368e63c86bd725e1186dd97f6b89c2706", size = 446735, upload-time = "2025-06-14T15:15:02.858Z" },
|
{ url = "https://files.pythonhosted.org/packages/2e/44/3ba175afa2d6d6db7cfe27136dfcd0f3c0e4c9d48dd2f3c58f955b61597f/aiohttp-3.12.8-cp313-cp313-win_amd64.whl", hash = "sha256:2f7e553bd4ff72d7e3b06ff60fc2d29457865ddb8cb7d7dc9287991c660151c5", size = 445038, upload-time = "2025-06-04T10:05:36.371Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -187,7 +187,6 @@ dependencies = [
|
|||||||
{ name = "django-redis" },
|
{ name = "django-redis" },
|
||||||
{ name = "django-storages", extra = ["s3"] },
|
{ name = "django-storages", extra = ["s3"] },
|
||||||
{ name = "django-tenants" },
|
{ name = "django-tenants" },
|
||||||
{ name = "djangoql" },
|
|
||||||
{ name = "djangorestframework" },
|
{ name = "djangorestframework" },
|
||||||
{ name = "djangorestframework-guardian" },
|
{ name = "djangorestframework-guardian" },
|
||||||
{ name = "docker" },
|
{ name = "docker" },
|
||||||
@ -277,16 +276,15 @@ requires-dist = [
|
|||||||
{ name = "defusedxml", specifier = "==0.7.1" },
|
{ name = "defusedxml", specifier = "==0.7.1" },
|
||||||
{ name = "django", specifier = "==5.1.11" },
|
{ name = "django", specifier = "==5.1.11" },
|
||||||
{ name = "django-countries", specifier = "==7.6.1" },
|
{ name = "django-countries", specifier = "==7.6.1" },
|
||||||
{ name = "django-cte", specifier = "==2.0.0" },
|
{ name = "django-cte", specifier = "==1.3.3" },
|
||||||
{ name = "django-filter", specifier = "==25.1" },
|
{ name = "django-filter", specifier = "==25.1" },
|
||||||
{ name = "django-guardian", specifier = "==3.0.0" },
|
{ name = "django-guardian", specifier = "==3.0.0" },
|
||||||
{ name = "django-model-utils", specifier = "==5.0.0" },
|
{ name = "django-model-utils", specifier = "==5.0.0" },
|
||||||
{ name = "django-pglock", specifier = "==1.7.2" },
|
{ name = "django-pglock", specifier = "==1.7.2" },
|
||||||
{ name = "django-prometheus", specifier = "==2.4.0" },
|
{ name = "django-prometheus", specifier = "==2.3.1" },
|
||||||
{ name = "django-redis", specifier = "==6.0.0" },
|
{ name = "django-redis", specifier = "==5.4.0" },
|
||||||
{ name = "django-storages", extras = ["s3"], specifier = "==1.14.6" },
|
{ name = "django-storages", extras = ["s3"], specifier = "==1.14.6" },
|
||||||
{ name = "django-tenants", specifier = "==3.8.0" },
|
{ name = "django-tenants", specifier = "==3.8.0" },
|
||||||
{ name = "djangoql", specifier = "==0.18.1" },
|
|
||||||
{ name = "djangorestframework", git = "https://github.com/goauthentik/django-rest-framework?rev=896722bab969fabc74a08b827da59409cf9f1a4e" },
|
{ name = "djangorestframework", git = "https://github.com/goauthentik/django-rest-framework?rev=896722bab969fabc74a08b827da59409cf9f1a4e" },
|
||||||
{ name = "djangorestframework-guardian", specifier = "==0.3.0" },
|
{ name = "djangorestframework-guardian", specifier = "==0.3.0" },
|
||||||
{ name = "docker", specifier = "==7.1.0" },
|
{ name = "docker", specifier = "==7.1.0" },
|
||||||
@ -306,7 +304,7 @@ requires-dist = [
|
|||||||
{ name = "kubernetes", specifier = "==33.1.0" },
|
{ name = "kubernetes", specifier = "==33.1.0" },
|
||||||
{ name = "ldap3", specifier = "==2.9.1" },
|
{ name = "ldap3", specifier = "==2.9.1" },
|
||||||
{ name = "lxml", specifier = "==5.4.0" },
|
{ name = "lxml", specifier = "==5.4.0" },
|
||||||
{ name = "msgraph-sdk", specifier = "==1.34.0" },
|
{ name = "msgraph-sdk", specifier = "==1.33.0" },
|
||||||
{ name = "opencontainers", git = "https://github.com/vsoch/oci-python?rev=ceb4fcc090851717a3069d78e85ceb1e86c2740c" },
|
{ name = "opencontainers", git = "https://github.com/vsoch/oci-python?rev=ceb4fcc090851717a3069d78e85ceb1e86c2740c" },
|
||||||
{ name = "packaging", specifier = "==25.0" },
|
{ name = "packaging", specifier = "==25.0" },
|
||||||
{ name = "paramiko", specifier = "==3.5.1" },
|
{ name = "paramiko", specifier = "==3.5.1" },
|
||||||
@ -315,7 +313,7 @@ requires-dist = [
|
|||||||
{ name = "pydantic-scim", specifier = "==0.0.8" },
|
{ name = "pydantic-scim", specifier = "==0.0.8" },
|
||||||
{ name = "pyjwt", specifier = "==2.10.1" },
|
{ name = "pyjwt", specifier = "==2.10.1" },
|
||||||
{ name = "pyrad", specifier = "==2.4" },
|
{ name = "pyrad", specifier = "==2.4" },
|
||||||
{ name = "python-kadmin-rs", specifier = "==0.6.1" },
|
{ name = "python-kadmin-rs", specifier = "==0.6.0" },
|
||||||
{ name = "pyyaml", specifier = "==6.0.2" },
|
{ name = "pyyaml", specifier = "==6.0.2" },
|
||||||
{ name = "requests-oauthlib", specifier = "==2.0.0" },
|
{ name = "requests-oauthlib", specifier = "==2.0.0" },
|
||||||
{ name = "scim2-filter-parser", specifier = "==0.7.0" },
|
{ name = "scim2-filter-parser", specifier = "==0.7.0" },
|
||||||
@ -574,30 +572,30 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "boto3"
|
name = "boto3"
|
||||||
version = "1.38.38"
|
version = "1.38.29"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "botocore" },
|
{ name = "botocore" },
|
||||||
{ name = "jmespath" },
|
{ name = "jmespath" },
|
||||||
{ name = "s3transfer" },
|
{ name = "s3transfer" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/98/a1/f2b68cba5d1907e004f4d88a028eda35a4f619c1e81d764e5cf58491eb46/boto3-1.38.38.tar.gz", hash = "sha256:0fe6b7d1974851588ec1edd39c66d9525d539133e02c7f985f9ebec5e222c0db", size = 111847, upload-time = "2025-06-17T19:33:03.097Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/15/d2/e7286b4ffd3138eb13caaa0f611c2e291f7c6b14ae56bf087ce213c54dc4/boto3-1.38.29.tar.gz", hash = "sha256:0777a87e8d28ebae09a086017a53bcaf25ec7c094d8f7e4122b265aa48e273f5", size = 111867, upload-time = "2025-06-03T19:23:00.714Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/e4/dc/43d4ab839b84876bdf7baeba0a3ffcef4c3d52d81f3ce1979b4195c0e213/boto3-1.38.38-py3-none-any.whl", hash = "sha256:6f4163cd9e030afd1059e8a6daa178835165b79eb0b5325a8cd447020b895921", size = 139934, upload-time = "2025-06-17T19:33:00.621Z" },
|
{ url = "https://files.pythonhosted.org/packages/1b/2e/b96b9fbed3007e67bc624c42103b47e7bd10380ed46bbbd25a1755227f7c/boto3-1.38.29-py3-none-any.whl", hash = "sha256:90a9b1a08122b840216b0e33b7b0dbe4ef50f12d00a573bf7b030cddeda9c507", size = 139939, upload-time = "2025-06-03T19:22:57.33Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "botocore"
|
name = "botocore"
|
||||||
version = "1.38.38"
|
version = "1.38.29"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "jmespath" },
|
{ name = "jmespath" },
|
||||||
{ name = "python-dateutil" },
|
{ name = "python-dateutil" },
|
||||||
{ name = "urllib3" },
|
{ name = "urllib3" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/22/f5/d05258ac4ae68769a956779192bfbd322e571ef9fc17a27f02d35c026b4b/botocore-1.38.38.tar.gz", hash = "sha256:acf9ae5b2d99c1f416f94fa5b4f8c044ecb76ffcb7fb1b1daec583f36892a8e2", size = 14009715, upload-time = "2025-06-17T19:32:52.705Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/32/9a/8c3ec27698910c1b94152f9e7a345d4c6c2f49dfc41d8336f82e32c32ed1/botocore-1.38.29.tar.gz", hash = "sha256:98c42b1bbb52f4086282e7db8aa724c9cb0f7278b7827d6736d872511c856e4f", size = 13929364, upload-time = "2025-06-03T19:22:48.425Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/7b/c6/74f27ffe941dc1438b7fef620b402b982a9f9ab90a04ee47bd0314a02384/botocore-1.38.38-py3-none-any.whl", hash = "sha256:aa5cc63bf885819d862852edb647d6276fe423c60113e8db375bb7ad8d88a5d9", size = 13669107, upload-time = "2025-06-17T19:32:47.503Z" },
|
{ url = "https://files.pythonhosted.org/packages/14/7a/03482cd3c00008d9be646c8e1520611d6202ce447db725ac40b07f9b088a/botocore-1.38.29-py3-none-any.whl", hash = "sha256:4d623f54326eb66d1a633f0c1780992c80f3db317a91c9afe31d5c700290621e", size = 13588258, upload-time = "2025-06-03T19:22:45.14Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -667,11 +665,11 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "certifi"
|
name = "certifi"
|
||||||
version = "2025.6.15"
|
version = "2025.4.26"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/73/f7/f14b46d4bcd21092d7d3ccef689615220d8a08fb25e564b65d20738e672e/certifi-2025.6.15.tar.gz", hash = "sha256:d747aa5a8b9bbbb1bb8c22bb13e22bd1f18e9796defa16bab421f7f7a317323b", size = 158753, upload-time = "2025-06-15T02:45:51.329Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/e8/9e/c05b3920a3b7d20d3d3310465f50348e5b3694f4f88c6daf736eef3024c4/certifi-2025.4.26.tar.gz", hash = "sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6", size = 160705, upload-time = "2025-04-26T02:12:29.51Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/84/ae/320161bd181fc06471eed047ecce67b693fd7515b16d495d8932db763426/certifi-2025.6.15-py3-none-any.whl", hash = "sha256:2e0c7ce7cb5d8f8634ca55d2ba7e6ec2689a2fd6537d8dec1296a477a4910057", size = 157650, upload-time = "2025-06-15T02:45:49.977Z" },
|
{ url = "https://files.pythonhosted.org/packages/4a/7e/3db2bd1b1f9e95f7cddca6d6e75e2f2bd9f51b1246e546d88addca0106bd/certifi-2025.4.26-py3-none-any.whl", hash = "sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3", size = 159618, upload-time = "2025-04-26T02:12:27.662Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -997,14 +995,11 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "django-cte"
|
name = "django-cte"
|
||||||
version = "2.0.0"
|
version = "1.3.3"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
sdist = { url = "https://files.pythonhosted.org/packages/a0/56/951f6e176c83bf5e500ef7108c9e8de38785e249b62fa29be12b4c71c4eb/django-cte-1.3.3.tar.gz", hash = "sha256:0c1aeef067278a22886151c1d27f6f665a303952d058900e5ca82a24cde40697", size = 10931, upload-time = "2024-06-07T12:51:06.089Z" }
|
||||||
{ name = "django" },
|
|
||||||
]
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/f5/0c/c305d220c683fb69ccea94f3270a34b8eb8c4d8bdddd425f1d49608fc516/django_cte-2.0.0.tar.gz", hash = "sha256:24674655be4eaa1b091c19f256da7c2b134aa37a59914c6f902448139fe5d76a", size = 11216, upload-time = "2025-06-16T15:29:28.477Z" }
|
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/0c/88/2f3510961fbfabe1441e69783ccca197a129a9705c539aaf019bf6d9fba5/django_cte-2.0.0-py3-none-any.whl", hash = "sha256:6de54525be8d9c8bd3d0a2d0422a733295f501bca0ae1c9351cf314d376e0111", size = 12975, upload-time = "2025-06-16T15:29:27.465Z" },
|
{ url = "https://files.pythonhosted.org/packages/b3/02/a9d12e8c1cb767b2541bf7d759fbe713f84238f1c2bd22ed2ef3bed14606/django_cte-1.3.3-py2.py3-none-any.whl", hash = "sha256:85bbc3efb30c2f8c9ae3080ca6f0b9570e43d2cb4b6be10846c8ef9f046873fa", size = 11989, upload-time = "2024-06-07T12:51:04.827Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -1070,27 +1065,27 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "django-prometheus"
|
name = "django-prometheus"
|
||||||
version = "2.4.0"
|
version = "2.3.1"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "prometheus-client" },
|
{ name = "prometheus-client" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/e8/b9/c758675671d71a1800feaad5c5fbcdecbd8d34296b63f9dc5662db39abda/django_prometheus-2.4.0.tar.gz", hash = "sha256:67da5c73d8e859aa73f6e11f52341c482691b17f8bd9844157cff6cdf51ce9bc", size = 24393, upload-time = "2025-06-18T18:06:28.673Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/e1/51/485b4122e00f2b8efec8a6d718ef4ce6b150231e49398e554ce1151f65c3/django-prometheus-2.3.1.tar.gz", hash = "sha256:f9c8b6c780c9419ea01043c63a437d79db2c33353451347894408184ad9c3e1e", size = 24718, upload-time = "2023-05-02T19:53:58.42Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/38/05/d980950fb8c3f6f96c644599b1a025fb50e827477b1acf36daef72aa7e76/django_prometheus-2.4.0-py2.py3-none-any.whl", hash = "sha256:5b46b5f07b02ba8dd7abdb03a3c39073e8fd9120e2293a1ecb949bbb865378ac", size = 29528, upload-time = "2025-06-18T18:06:27.079Z" },
|
{ url = "https://files.pythonhosted.org/packages/3a/75/fb3d4f056f9ed4f8848817d5afd7a1d949632ab117452ccd179e3839cfc4/django_prometheus-2.3.1-py2.py3-none-any.whl", hash = "sha256:cf9b26f7ba2e4568f08f8f91480a2882023f5908579681bcf06a4d2465f12168", size = 29081, upload-time = "2023-05-02T19:53:20.421Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "django-redis"
|
name = "django-redis"
|
||||||
version = "6.0.0"
|
version = "5.4.0"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "django" },
|
{ name = "django" },
|
||||||
{ name = "redis" },
|
{ name = "redis" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/08/53/dbcfa1e528e0d6c39947092625b2c89274b5d88f14d357cee53c4d6dbbd4/django_redis-6.0.0.tar.gz", hash = "sha256:2d9cb12a20424a4c4dde082c6122f486628bae2d9c2bee4c0126a4de7fda00dd", size = 56904, upload-time = "2025-06-17T18:15:46.376Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/83/9d/2272742fdd9d0a9f0b28cd995b0539430c9467a2192e4de2cea9ea6ad38c/django-redis-5.4.0.tar.gz", hash = "sha256:6a02abaa34b0fea8bf9b707d2c363ab6adc7409950b2db93602e6cb292818c42", size = 52567, upload-time = "2023-10-01T20:22:01.221Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/7e/79/055dfcc508cfe9f439d9f453741188d633efa9eab90fc78a67b0ab50b137/django_redis-6.0.0-py3-none-any.whl", hash = "sha256:20bf0063a8abee567eb5f77f375143c32810c8700c0674ced34737f8de4e36c0", size = 33687, upload-time = "2025-06-17T18:15:34.165Z" },
|
{ url = "https://files.pythonhosted.org/packages/b7/f1/63caad7c9222c26a62082f4f777de26389233b7574629996098bf6d25a4d/django_redis-5.4.0-py3-none-any.whl", hash = "sha256:ebc88df7da810732e2af9987f7f426c96204bf89319df4c6da6ca9a2942edd5b", size = 31119, upload-time = "2023-10-01T20:21:33.009Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -1119,17 +1114,6 @@ dependencies = [
|
|||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/a8/7b/22e3bb79d48e5a4fdcacdcdc27bbc5c2523a2b7892b440bfe229f313d823/django_tenants-3.8.0.tar.gz", hash = "sha256:07d009d5d01be2d65c3f5ddbf323d58d1228838fc1a64fded15c8e5c6f41cf8f", size = 154307, upload-time = "2025-05-23T16:07:24.307Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/a8/7b/22e3bb79d48e5a4fdcacdcdc27bbc5c2523a2b7892b440bfe229f313d823/django_tenants-3.8.0.tar.gz", hash = "sha256:07d009d5d01be2d65c3f5ddbf323d58d1228838fc1a64fded15c8e5c6f41cf8f", size = 154307, upload-time = "2025-05-23T16:07:24.307Z" }
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "djangoql"
|
|
||||||
version = "0.18.1"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
dependencies = [
|
|
||||||
{ name = "ply" },
|
|
||||||
]
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/9e/0a/83cdb7b9d3b854b98941363153945f6c051b3bc50cd61108a85677c98c3a/djangoql-0.18.1-py2.py3-none-any.whl", hash = "sha256:51b3085a805627ebb43cfd0aa861137cdf8f69cc3c9244699718fe04a6c8e26d", size = 218209, upload-time = "2024-01-08T14:10:47.915Z" },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "djangorestframework"
|
name = "djangorestframework"
|
||||||
version = "3.16.0"
|
version = "3.16.0"
|
||||||
@ -1308,45 +1292,45 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "frozenlist"
|
name = "frozenlist"
|
||||||
version = "1.7.0"
|
version = "1.6.2"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/79/b1/b64018016eeb087db503b038296fd782586432b9c077fc5c7839e9cb6ef6/frozenlist-1.7.0.tar.gz", hash = "sha256:2e310d81923c2437ea8670467121cc3e9b0f76d3043cc1d2331d56c7fb7a3a8f", size = 45078, upload-time = "2025-06-09T23:02:35.538Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/5b/bf/a812e2fe6cb3f6c6cfc8d0303bf1742f2286004e5ec41ac8c89cf68cdb54/frozenlist-1.6.2.tar.gz", hash = "sha256:effc641518696471cf4962e8e32050133bc1f7b2851ae8fd0cb8797dd70dc202", size = 43108, upload-time = "2025-06-03T21:48:04.467Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/24/90/6b2cebdabdbd50367273c20ff6b57a3dfa89bd0762de02c3a1eb42cb6462/frozenlist-1.7.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ee80eeda5e2a4e660651370ebffd1286542b67e268aa1ac8d6dbe973120ef7ee", size = 79791, upload-time = "2025-06-09T23:01:09.368Z" },
|
{ url = "https://files.pythonhosted.org/packages/b8/f6/973abfcb8b68f2e8b58071a04ec72f5e1f0acd19dae0d3b7a8abc3d9ab07/frozenlist-1.6.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2ad8851ae1f6695d735f8646bf1e68675871789756f7f7e8dc8224a74eabb9d0", size = 85517, upload-time = "2025-06-03T21:46:42.124Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/83/2e/5b70b6a3325363293fe5fc3ae74cdcbc3e996c2a11dde2fd9f1fb0776d19/frozenlist-1.7.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d1a81c85417b914139e3a9b995d4a1c84559afc839a93cf2cb7f15e6e5f6ed2d", size = 47165, upload-time = "2025-06-09T23:01:10.653Z" },
|
{ url = "https://files.pythonhosted.org/packages/c8/d0/ac45f2dcf0afd5f7d57204af8b7516ecbc3599ea681e06f4b25d3845bea8/frozenlist-1.6.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:cd2d5abc0ccd99a2a5b437987f3b1e9c265c1044d2855a09ac68f09bbb8082ca", size = 49916, upload-time = "2025-06-03T21:46:43.93Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/f4/25/a0895c99270ca6966110f4ad98e87e5662eab416a17e7fd53c364bf8b954/frozenlist-1.7.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cbb65198a9132ebc334f237d7b0df163e4de83fb4f2bdfe46c1e654bdb0c5d43", size = 45881, upload-time = "2025-06-09T23:01:12.296Z" },
|
{ url = "https://files.pythonhosted.org/packages/50/cc/99c3f31823630b7411f7c1e83399e91d6b56a5661a5b724935ef5b51f5f5/frozenlist-1.6.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:15c33f665faa9b8f8e525b987eeaae6641816e0f6873e8a9c4d224338cebbb55", size = 48107, upload-time = "2025-06-03T21:46:45.188Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/19/7c/71bb0bbe0832793c601fff68cd0cf6143753d0c667f9aec93d3c323f4b55/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dab46c723eeb2c255a64f9dc05b8dd601fde66d6b19cdb82b2e09cc6ff8d8b5d", size = 232409, upload-time = "2025-06-09T23:01:13.641Z" },
|
{ url = "https://files.pythonhosted.org/packages/85/4e/38643ce3ee80d222892b694d02c15ea476c4d564493a6fe530347163744e/frozenlist-1.6.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3e6c0681783723bb472b6b8304e61ecfcb4c2b11cf7f243d923813c21ae5d2a", size = 255771, upload-time = "2025-06-03T21:46:46.53Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/c0/45/ed2798718910fe6eb3ba574082aaceff4528e6323f9a8570be0f7028d8e9/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6aeac207a759d0dedd2e40745575ae32ab30926ff4fa49b1635def65806fddee", size = 225132, upload-time = "2025-06-09T23:01:15.264Z" },
|
{ url = "https://files.pythonhosted.org/packages/ca/e6/ceed85a7d5c0f666485384fc393e32353f8088e154a1109e5ef60165d366/frozenlist-1.6.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:61bae4d345a26550d0ed9f2c9910ea060f89dbfc642b7b96e9510a95c3a33b3c", size = 252519, upload-time = "2025-06-03T21:46:48.101Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/ba/e2/8417ae0f8eacb1d071d4950f32f229aa6bf68ab69aab797b72a07ea68d4f/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bd8c4e58ad14b4fa7802b8be49d47993182fdd4023393899632c88fd8cd994eb", size = 237638, upload-time = "2025-06-09T23:01:16.752Z" },
|
{ url = "https://files.pythonhosted.org/packages/29/99/9f2e2b90cf918465e3b6ca4eea79e6be53d24fba33937e37d86c3764bbf9/frozenlist-1.6.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:90e5a84016d0d2fb828f770ede085b5d89155fcb9629b8a3237c960c41c120c3", size = 263348, upload-time = "2025-06-03T21:46:49.64Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/f8/b7/2ace5450ce85f2af05a871b8c8719b341294775a0a6c5585d5e6170f2ce7/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04fb24d104f425da3540ed83cbfc31388a586a7696142004c577fa61c6298c3f", size = 233539, upload-time = "2025-06-09T23:01:18.202Z" },
|
{ url = "https://files.pythonhosted.org/packages/4e/ac/59f3ec4c1b4897186efb4757379915734a48bb16bbc15a9fe0bf0857b679/frozenlist-1.6.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55dc289a064c04819d669e6e8a85a1c0416e6c601782093bdc749ae14a2f39da", size = 257858, upload-time = "2025-06-03T21:46:51.189Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/46/b9/6989292c5539553dba63f3c83dc4598186ab2888f67c0dc1d917e6887db6/frozenlist-1.7.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6a5c505156368e4ea6b53b5ac23c92d7edc864537ff911d2fb24c140bb175e60", size = 215646, upload-time = "2025-06-09T23:01:19.649Z" },
|
{ url = "https://files.pythonhosted.org/packages/48/4a/19c97510d0c2be1ebaae68383d1b5a256a12a660ca17b0c427b1024d9b92/frozenlist-1.6.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b79bcf97ca03c95b044532a4fef6e5ae106a2dd863875b75fde64c553e3f4820", size = 238248, upload-time = "2025-06-03T21:46:52.649Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/72/31/bc8c5c99c7818293458fe745dab4fd5730ff49697ccc82b554eb69f16a24/frozenlist-1.7.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8bd7eb96a675f18aa5c553eb7ddc24a43c8c18f22e1f9925528128c052cdbe00", size = 232233, upload-time = "2025-06-09T23:01:21.175Z" },
|
{ url = "https://files.pythonhosted.org/packages/ef/64/641aa2b0944fa3d881323948e0d8d6fee746dae03d9023eb510bb80bc46a/frozenlist-1.6.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e5e7564d232a782baa3089b25a0d979e2e4d6572d3c7231fcceacc5c22bf0f7", size = 255932, upload-time = "2025-06-03T21:46:54.175Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/59/52/460db4d7ba0811b9ccb85af996019f5d70831f2f5f255f7cc61f86199795/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:05579bf020096fe05a764f1f84cd104a12f78eaab68842d036772dc6d4870b4b", size = 227996, upload-time = "2025-06-09T23:01:23.098Z" },
|
{ url = "https://files.pythonhosted.org/packages/6c/f8/5b68d5658fac7332e5d26542a4af0ffc2edca8da8f854f6274882889ee1e/frozenlist-1.6.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6fcd8d56880dccdd376afb18f483ab55a0e24036adc9a83c914d4b7bb5729d4e", size = 253329, upload-time = "2025-06-03T21:46:55.69Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/ba/c9/f4b39e904c03927b7ecf891804fd3b4df3db29b9e487c6418e37988d6e9d/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:376b6222d114e97eeec13d46c486facd41d4f43bab626b7c3f6a8b4e81a5192c", size = 242280, upload-time = "2025-06-09T23:01:24.808Z" },
|
{ url = "https://files.pythonhosted.org/packages/e9/20/379d7a27eb82748b41319bf376bf2c034e7ee11dda94f12b331edcc261ff/frozenlist-1.6.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:4fbce985c7fe7bafb4d9bf647c835dbe415b465a897b0c79d1bdf0f3fae5fe50", size = 266164, upload-time = "2025-06-03T21:46:57.19Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/b8/33/3f8d6ced42f162d743e3517781566b8481322be321b486d9d262adf70bfb/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:0aa7e176ebe115379b5b1c95b4096fb1c17cce0847402e227e712c27bdb5a949", size = 217717, upload-time = "2025-06-09T23:01:26.28Z" },
|
{ url = "https://files.pythonhosted.org/packages/13/bd/d7dbf94220020850392cb661bedfdf786398bafae85d1045dd108971d261/frozenlist-1.6.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:3bd12d727cd616387d50fe283abebb2db93300c98f8ff1084b68460acd551926", size = 241641, upload-time = "2025-06-03T21:46:59.769Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/3e/e8/ad683e75da6ccef50d0ab0c2b2324b32f84fc88ceee778ed79b8e2d2fe2e/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3fbba20e662b9c2130dc771e332a99eff5da078b2b2648153a40669a6d0e36ca", size = 236644, upload-time = "2025-06-09T23:01:27.887Z" },
|
{ url = "https://files.pythonhosted.org/packages/a4/70/916fef6284d294077265cd69ad05f228e44f7ed88d9acb690df5a1174049/frozenlist-1.6.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:38544cae535ed697960891131731b33bb865b7d197ad62dc380d2dbb1bceff48", size = 261215, upload-time = "2025-06-03T21:47:01.752Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/b2/14/8d19ccdd3799310722195a72ac94ddc677541fb4bef4091d8e7775752360/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:f3f4410a0a601d349dd406b5713fec59b4cee7e71678d5b17edda7f4655a940b", size = 238879, upload-time = "2025-06-09T23:01:29.524Z" },
|
{ url = "https://files.pythonhosted.org/packages/8f/98/1326a7189fa519692698cddf598f56766b0fea6ac71cddaf64760a055397/frozenlist-1.6.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:47396898f98fae5c9b9bb409c3d2cf6106e409730f35a0926aad09dd7acf1ef5", size = 262597, upload-time = "2025-06-03T21:47:03.495Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/ce/13/c12bf657494c2fd1079a48b2db49fa4196325909249a52d8f09bc9123fd7/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e2cdfaaec6a2f9327bf43c933c0319a7c429058e8537c508964a133dffee412e", size = 232502, upload-time = "2025-06-09T23:01:31.287Z" },
|
{ url = "https://files.pythonhosted.org/packages/f4/d6/0a95ab9289c72e86c37c9b8afe82576556456b6f66a35d242526634130f2/frozenlist-1.6.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d10d835f8ce8571fd555db42d3aef325af903535dad7e6faa7b9c8abe191bffc", size = 258766, upload-time = "2025-06-03T21:47:05.411Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/d7/8b/e7f9dfde869825489382bc0d512c15e96d3964180c9499efcec72e85db7e/frozenlist-1.7.0-cp313-cp313-win32.whl", hash = "sha256:5fc4df05a6591c7768459caba1b342d9ec23fa16195e744939ba5914596ae3e1", size = 39169, upload-time = "2025-06-09T23:01:35.503Z" },
|
{ url = "https://files.pythonhosted.org/packages/1b/d0/9e946aabd89ebfcb71ec1371327f0e25d4868cd4439471a6fcb6eaf7b366/frozenlist-1.6.2-cp313-cp313-win32.whl", hash = "sha256:a400fe775a41b6d7a3fef00d88f10cbae4f0074c9804e282013d7797671ba58d", size = 40961, upload-time = "2025-06-03T21:47:06.89Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/35/89/a487a98d94205d85745080a37860ff5744b9820a2c9acbcdd9440bfddf98/frozenlist-1.7.0-cp313-cp313-win_amd64.whl", hash = "sha256:52109052b9791a3e6b5d1b65f4b909703984b770694d3eb64fad124c835d7cba", size = 43219, upload-time = "2025-06-09T23:01:36.784Z" },
|
{ url = "https://files.pythonhosted.org/packages/43/e9/d714f5eb0fde1413344ded982ae9638307b59651d5c04263af42eb81a315/frozenlist-1.6.2-cp313-cp313-win_amd64.whl", hash = "sha256:cc8b25b321863ed46992558a29bb09b766c41e25f31461666d501be0f893bada", size = 46204, upload-time = "2025-06-03T21:47:08.2Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/56/d5/5c4cf2319a49eddd9dd7145e66c4866bdc6f3dbc67ca3d59685149c11e0d/frozenlist-1.7.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a6f86e4193bb0e235ef6ce3dde5cbabed887e0b11f516ce8a0f4d3b33078ec2d", size = 84345, upload-time = "2025-06-09T23:01:38.295Z" },
|
{ url = "https://files.pythonhosted.org/packages/f5/7a/8f6dde73862499e60eb390778a1e46b87c1fe3c5722622d731ccda7a173c/frozenlist-1.6.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:56de277a0e0ad26a1dcdc99802b4f5becd7fd890807b68e3ecff8ced01d58132", size = 91326, upload-time = "2025-06-03T21:47:09.566Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/a4/7d/ec2c1e1dc16b85bc9d526009961953df9cec8481b6886debb36ec9107799/frozenlist-1.7.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:82d664628865abeb32d90ae497fb93df398a69bb3434463d172b80fc25b0dd7d", size = 48880, upload-time = "2025-06-09T23:01:39.887Z" },
|
{ url = "https://files.pythonhosted.org/packages/79/60/dcdc75edbcf8241e7cb15fced68b3be63f67ff3faaf559c540a7eb63233b/frozenlist-1.6.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9cb386dd69ae91be586aa15cb6f39a19b5f79ffc1511371eca8ff162721c4867", size = 52426, upload-time = "2025-06-03T21:47:10.828Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/69/86/f9596807b03de126e11e7d42ac91e3d0b19a6599c714a1989a4e85eeefc4/frozenlist-1.7.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:912a7e8375a1c9a68325a902f3953191b7b292aa3c3fb0d71a216221deca460b", size = 48498, upload-time = "2025-06-09T23:01:41.318Z" },
|
{ url = "https://files.pythonhosted.org/packages/64/e6/df2a43ccb2c4f1ea3692aae9a89cfc5dd932a90b7898f98f13ed9e2680a9/frozenlist-1.6.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:53835d8a6929c2f16e02616f8b727bd140ce8bf0aeddeafdb290a67c136ca8ad", size = 51460, upload-time = "2025-06-03T21:47:12.089Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/5e/cb/df6de220f5036001005f2d726b789b2c0b65f2363b104bbc16f5be8084f8/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9537c2777167488d539bc5de2ad262efc44388230e5118868e172dd4a552b146", size = 292296, upload-time = "2025-06-09T23:01:42.685Z" },
|
{ url = "https://files.pythonhosted.org/packages/fd/b3/c4f2f7fca9487b25c39bf64535f029316e184072a82f3660ce72defc5421/frozenlist-1.6.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc49f2277e8173abf028d744f8b7d69fe8cc26bffc2de97d47a3b529599fbf50", size = 310270, upload-time = "2025-06-03T21:47:13.495Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/83/1f/de84c642f17c8f851a2905cee2dae401e5e0daca9b5ef121e120e19aa825/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:f34560fb1b4c3e30ba35fa9a13894ba39e5acfc5f60f57d8accde65f46cc5e74", size = 273103, upload-time = "2025-06-09T23:01:44.166Z" },
|
{ url = "https://files.pythonhosted.org/packages/2b/5b/046eb34d8d0fee1a8c9dc91a9ba581283c67a1ace20bcc01c86a53595105/frozenlist-1.6.2-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:65eb9e8a973161bdac5fa06ea6bd261057947adc4f47a7a6ef3d6db30c78c5b4", size = 289062, upload-time = "2025-06-03T21:47:14.92Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/88/3c/c840bfa474ba3fa13c772b93070893c6e9d5c0350885760376cbe3b6c1b3/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:acd03d224b0175f5a850edc104ac19040d35419eddad04e7cf2d5986d98427f1", size = 292869, upload-time = "2025-06-09T23:01:45.681Z" },
|
{ url = "https://files.pythonhosted.org/packages/48/7b/80991efaa0aa25e867cf93033c28e9d1310f34f90421eb59eb1f2073d937/frozenlist-1.6.2-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:301eb2f898d863031f8c5a56c88a6c5d976ba11a4a08a1438b96ee3acb5aea80", size = 312202, upload-time = "2025-06-03T21:47:16.436Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/a6/1c/3efa6e7d5a39a1d5ef0abeb51c48fb657765794a46cf124e5aca2c7a592c/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2038310bc582f3d6a09b3816ab01737d60bf7b1ec70f5356b09e84fb7408ab1", size = 291467, upload-time = "2025-06-09T23:01:47.234Z" },
|
{ url = "https://files.pythonhosted.org/packages/78/6b/6fe30bdababdf82c5b34f0093770c4be6211071e23570721b80b11c9d52a/frozenlist-1.6.2-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:207f717fd5e65fddb77d33361ab8fa939f6d89195f11307e073066886b33f2b8", size = 309557, upload-time = "2025-06-03T21:47:17.939Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/4f/00/d5c5e09d4922c395e2f2f6b79b9a20dab4b67daaf78ab92e7729341f61f6/frozenlist-1.7.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b8c05e4c8e5f36e5e088caa1bf78a687528f83c043706640a92cb76cd6999384", size = 266028, upload-time = "2025-06-09T23:01:48.819Z" },
|
{ url = "https://files.pythonhosted.org/packages/9d/ef/b7bf48802fc7d084703ba2173e6a8d0590bea378dcd6a480051c41bddf47/frozenlist-1.6.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f83992722642ee0db0333b1dbf205b1a38f97d51a7382eb304ba414d8c3d1e05", size = 282135, upload-time = "2025-06-03T21:47:19.521Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/4e/27/72765be905619dfde25a7f33813ac0341eb6b076abede17a2e3fbfade0cb/frozenlist-1.7.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:765bb588c86e47d0b68f23c1bee323d4b703218037765dcf3f25c838c6fecceb", size = 284294, upload-time = "2025-06-09T23:01:50.394Z" },
|
{ url = "https://files.pythonhosted.org/packages/af/f8/6911a085bce8d0d0df3dfc2560e3e0fb4d6c19ff101014bcf61aa32ba39a/frozenlist-1.6.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:12af99e6023851b36578e5bcc60618b5b30f4650340e29e565cd1936326dbea7", size = 303392, upload-time = "2025-06-03T21:47:21.16Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/88/67/c94103a23001b17808eb7dd1200c156bb69fb68e63fcf0693dde4cd6228c/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:32dc2e08c67d86d0969714dd484fd60ff08ff81d1a1e40a77dd34a387e6ebc0c", size = 281898, upload-time = "2025-06-09T23:01:52.234Z" },
|
{ url = "https://files.pythonhosted.org/packages/9c/5d/b4e0cc6dbd6b9282926a470a919da7c6599ff324ab5268c7ecaff82cb858/frozenlist-1.6.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6f01620444a674eaad900a3263574418e99c49e2a5d6e5330753857363b5d59f", size = 309402, upload-time = "2025-06-03T21:47:22.705Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/42/34/a3e2c00c00f9e2a9db5653bca3fec306349e71aff14ae45ecc6d0951dd24/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:c0303e597eb5a5321b4de9c68e9845ac8f290d2ab3f3e2c864437d3c5a30cd65", size = 290465, upload-time = "2025-06-09T23:01:53.788Z" },
|
{ url = "https://files.pythonhosted.org/packages/0f/1b/bf777de3c810e68e8758337fcc97ee8c956376c87aecee9a61ba19a94123/frozenlist-1.6.2-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:82b94c8948341512306ca8ccc702771600b442c6abe5f8ee017e00e452a209e8", size = 312924, upload-time = "2025-06-03T21:47:24.251Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/bb/73/f89b7fbce8b0b0c095d82b008afd0590f71ccb3dee6eee41791cf8cd25fd/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:a47f2abb4e29b3a8d0b530f7c3598badc6b134562b1a5caee867f7c62fee51e3", size = 266385, upload-time = "2025-06-09T23:01:55.769Z" },
|
{ url = "https://files.pythonhosted.org/packages/0e/03/a69b890bc310790fcae61fd3b5be64876811b12db5d50b32e62f65e766bd/frozenlist-1.6.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:324a4cf4c220ddb3db1f46ade01e48432c63fa8c26812c710006e7f6cfba4a08", size = 291768, upload-time = "2025-06-03T21:47:25.874Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/cd/45/e365fdb554159462ca12df54bc59bfa7a9a273ecc21e99e72e597564d1ae/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:3d688126c242a6fabbd92e02633414d40f50bb6002fa4cf995a1d18051525657", size = 288771, upload-time = "2025-06-09T23:01:57.4Z" },
|
{ url = "https://files.pythonhosted.org/packages/70/cc/559386adf987b47c8977c929271d11a72efd92778a0a2f4cc97827a9a25b/frozenlist-1.6.2-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:695284e51458dabb89af7f7dc95c470aa51fd259207aba5378b187909297feef", size = 313305, upload-time = "2025-06-03T21:47:29.305Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/00/11/47b6117002a0e904f004d70ec5194fe9144f117c33c851e3d51c765962d0/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:4e7e9652b3d367c7bd449a727dc79d5043f48b88d0cbfd4f9f1060cf2b414104", size = 288206, upload-time = "2025-06-09T23:01:58.936Z" },
|
{ url = "https://files.pythonhosted.org/packages/e7/fa/eb0e21730ffccfb2d0d367d863cbaacf8367bdc277b44eabf72f7329ab91/frozenlist-1.6.2-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:9ccbeb1c8dda4f42d0678076aa5cbde941a232be71c67b9d8ca89fbaf395807c", size = 312228, upload-time = "2025-06-03T21:47:30.967Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/40/37/5f9f3c3fd7f7746082ec67bcdc204db72dad081f4f83a503d33220a92973/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:1a85e345b4c43db8b842cab1feb41be5cc0b10a1830e6295b69d7310f99becaf", size = 282620, upload-time = "2025-06-09T23:02:00.493Z" },
|
{ url = "https://files.pythonhosted.org/packages/d1/c1/8471b67172abc9478ad78c70a3f3a5c4fed6d4bcadc748e1b6dfa06ab2ae/frozenlist-1.6.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:cbbdf62fcc1864912c592a1ec748fee94f294c6b23215d5e8e9569becb7723ee", size = 309905, upload-time = "2025-06-03T21:47:32.526Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/0b/31/8fbc5af2d183bff20f21aa743b4088eac4445d2bb1cdece449ae80e4e2d1/frozenlist-1.7.0-cp313-cp313t-win32.whl", hash = "sha256:3a14027124ddb70dfcee5148979998066897e79f89f64b13328595c4bdf77c81", size = 43059, upload-time = "2025-06-09T23:02:02.072Z" },
|
{ url = "https://files.pythonhosted.org/packages/bb/2c/ee21987c3a175b49d0b827b1e45394a7a5d08c7de5b766ed6d0889d30568/frozenlist-1.6.2-cp313-cp313t-win32.whl", hash = "sha256:76857098ee17258df1a61f934f2bae052b8542c9ea6b187684a737b2e3383a65", size = 44644, upload-time = "2025-06-03T21:47:34.514Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/bb/ed/41956f52105b8dbc26e457c5705340c67c8cc2b79f394b79bffc09d0e938/frozenlist-1.7.0-cp313-cp313t-win_amd64.whl", hash = "sha256:3bf8010d71d4507775f658e9823210b7427be36625b387221642725b515dcf3e", size = 47516, upload-time = "2025-06-09T23:02:03.779Z" },
|
{ url = "https://files.pythonhosted.org/packages/65/46/fce60f65b1fb17a90c4bf410a5c90cb3b40616cc229e75866f8be97c112c/frozenlist-1.6.2-cp313-cp313t-win_amd64.whl", hash = "sha256:c06a88daba7e891add42f9278cdf7506a49bc04df9b1648be54da1bf1c79b4c6", size = 50607, upload-time = "2025-06-03T21:47:36.227Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/ee/45/b82e3c16be2182bff01179db177fe144d58b5dc787a7d4492c6ed8b9317f/frozenlist-1.7.0-py3-none-any.whl", hash = "sha256:9a5af342e34f7e97caf8c995864c7a396418ae2859cc6fdf1b1073020d516a7e", size = 13106, upload-time = "2025-06-09T23:02:34.204Z" },
|
{ url = "https://files.pythonhosted.org/packages/13/be/0ebbb283f2d91b72beaee2d07760b2c47dab875c49c286f5591d3d157198/frozenlist-1.6.2-py3-none-any.whl", hash = "sha256:947abfcc8c42a329bbda6df97a4b9c9cdb4e12c85153b3b57b9d2f02aa5877dc", size = 12582, upload-time = "2025-06-03T21:48:03.201Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -1386,7 +1370,7 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "google-api-core"
|
name = "google-api-core"
|
||||||
version = "2.25.1"
|
version = "2.25.0"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "google-auth" },
|
{ name = "google-auth" },
|
||||||
@ -1395,9 +1379,9 @@ dependencies = [
|
|||||||
{ name = "protobuf" },
|
{ name = "protobuf" },
|
||||||
{ name = "requests" },
|
{ name = "requests" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/dc/21/e9d043e88222317afdbdb567165fdbc3b0aad90064c7e0c9eb0ad9955ad8/google_api_core-2.25.1.tar.gz", hash = "sha256:d2aaa0b13c78c61cb3f4282c464c046e45fbd75755683c9c525e6e8f7ed0a5e8", size = 165443, upload-time = "2025-06-12T20:52:20.439Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/98/a2/8176b416ca08106b2ae30cd4a006c8176945f682c3a5b42f141c9173f505/google_api_core-2.25.0.tar.gz", hash = "sha256:9b548e688702f82a34ed8409fb8a6961166f0b7795032f0be8f48308dff4333a", size = 164914, upload-time = "2025-06-02T14:45:34.789Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/14/4b/ead00905132820b623732b175d66354e9d3e69fcf2a5dcdab780664e7896/google_api_core-2.25.1-py3-none-any.whl", hash = "sha256:8a2a56c1fef82987a524371f99f3bd0143702fecc670c72e600c1cda6bf8dbb7", size = 160807, upload-time = "2025-06-12T20:52:19.334Z" },
|
{ url = "https://files.pythonhosted.org/packages/ac/ca/149e41a277bb0855e8ded85fd7579d7747c1223e253d82c5c0f1be236875/google_api_core-2.25.0-py3-none-any.whl", hash = "sha256:1db79d1281dcf9f3d10023283299ba38f3dc9f639ec41085968fd23e5bcf512e", size = 160668, upload-time = "2025-06-02T14:45:33.272Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -1418,16 +1402,16 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "google-auth"
|
name = "google-auth"
|
||||||
version = "2.40.3"
|
version = "2.40.2"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "cachetools" },
|
{ name = "cachetools" },
|
||||||
{ name = "pyasn1-modules" },
|
{ name = "pyasn1-modules" },
|
||||||
{ name = "rsa" },
|
{ name = "rsa" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/9e/9b/e92ef23b84fa10a64ce4831390b7a4c2e53c0132568d99d4ae61d04c8855/google_auth-2.40.3.tar.gz", hash = "sha256:500c3a29adedeb36ea9cf24b8d10858e152f2412e3ca37829b3fa18e33d63b77", size = 281029, upload-time = "2025-06-04T18:04:57.577Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/66/84/f67f53c505a6b2c5da05c988e2a5483f5ba9eee4b1841d2e3ff22f547cd5/google_auth-2.40.2.tar.gz", hash = "sha256:a33cde547a2134273226fa4b853883559947ebe9207521f7afc707efbf690f58", size = 280990, upload-time = "2025-05-21T18:04:59.816Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/17/63/b19553b658a1692443c62bd07e5868adaa0ad746a0751ba62c59568cd45b/google_auth-2.40.3-py2.py3-none-any.whl", hash = "sha256:1370d4593e86213563547f97a92752fc658456fe4514c809544f330fed45a7ca", size = 216137, upload-time = "2025-06-04T18:04:55.573Z" },
|
{ url = "https://files.pythonhosted.org/packages/6a/c7/e2d82e6702e2a9e2311c138f8e1100f21d08aed0231290872b229ae57a86/google_auth-2.40.2-py2.py3-none-any.whl", hash = "sha256:f7e568d42eedfded58734f6a60c58321896a621f7c116c411550a4b4a13da90b", size = 216102, upload-time = "2025-05-21T18:04:57.547Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -1774,17 +1758,16 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kombu"
|
name = "kombu"
|
||||||
version = "5.5.4"
|
version = "5.5.3"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "amqp" },
|
{ name = "amqp" },
|
||||||
{ name = "packaging" },
|
|
||||||
{ name = "tzdata" },
|
{ name = "tzdata" },
|
||||||
{ name = "vine" },
|
{ name = "vine" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/0f/d3/5ff936d8319ac86b9c409f1501b07c426e6ad41966fedace9ef1b966e23f/kombu-5.5.4.tar.gz", hash = "sha256:886600168275ebeada93b888e831352fe578168342f0d1d5833d88ba0d847363", size = 461992, upload-time = "2025-06-01T10:19:22.281Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/60/0a/128b65651ed8120460fc5af754241ad595eac74993115ec0de4f2d7bc459/kombu-5.5.3.tar.gz", hash = "sha256:021a0e11fcfcd9b0260ef1fb64088c0e92beb976eb59c1dfca7ddd4ad4562ea2", size = 461784, upload-time = "2025-04-16T12:46:17.014Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/ef/70/a07dcf4f62598c8ad579df241af55ced65bed76e42e45d3c368a6d82dbc1/kombu-5.5.4-py3-none-any.whl", hash = "sha256:a12ed0557c238897d8e518f1d1fdf84bd1516c5e305af2dacd85c2015115feb8", size = 210034, upload-time = "2025-06-01T10:19:20.436Z" },
|
{ url = "https://files.pythonhosted.org/packages/5d/35/1407fb0b2f5b07b50cbaf97fce09ad87d3bfefbf64f7171a8651cd8d2f68/kombu-5.5.3-py3-none-any.whl", hash = "sha256:5b0dbceb4edee50aa464f59469d34b97864be09111338cfb224a10b6a163909b", size = 209921, upload-time = "2025-04-16T12:46:15.139Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2038,20 +2021,21 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "msgpack"
|
name = "msgpack"
|
||||||
version = "1.1.1"
|
version = "1.1.0"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/45/b1/ea4f68038a18c77c9467400d166d74c4ffa536f34761f7983a104357e614/msgpack-1.1.1.tar.gz", hash = "sha256:77b79ce34a2bdab2594f490c8e80dd62a02d650b91a75159a63ec413b8d104cd", size = 173555, upload-time = "2025-06-13T06:52:51.324Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/cb/d0/7555686ae7ff5731205df1012ede15dd9d927f6227ea151e901c7406af4f/msgpack-1.1.0.tar.gz", hash = "sha256:dd432ccc2c72b914e4cb77afce64aab761c1137cc698be3984eee260bcb2896e", size = 167260, upload-time = "2024-09-10T04:25:52.197Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/a1/38/561f01cf3577430b59b340b51329803d3a5bf6a45864a55f4ef308ac11e3/msgpack-1.1.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3765afa6bd4832fc11c3749be4ba4b69a0e8d7b728f78e68120a157a4c5d41f0", size = 81677, upload-time = "2025-06-13T06:52:16.64Z" },
|
{ url = "https://files.pythonhosted.org/packages/c8/b0/380f5f639543a4ac413e969109978feb1f3c66e931068f91ab6ab0f8be00/msgpack-1.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:071603e2f0771c45ad9bc65719291c568d4edf120b44eb36324dcb02a13bfddf", size = 151142, upload-time = "2024-09-10T04:24:59.656Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/09/48/54a89579ea36b6ae0ee001cba8c61f776451fad3c9306cd80f5b5c55be87/msgpack-1.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8ddb2bcfd1a8b9e431c8d6f4f7db0773084e107730ecf3472f1dfe9ad583f3d9", size = 78603, upload-time = "2025-06-13T06:52:17.843Z" },
|
{ url = "https://files.pythonhosted.org/packages/c8/ee/be57e9702400a6cb2606883d55b05784fada898dfc7fd12608ab1fdb054e/msgpack-1.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0f92a83b84e7c0749e3f12821949d79485971f087604178026085f60ce109330", size = 84523, upload-time = "2024-09-10T04:25:37.924Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/a0/60/daba2699b308e95ae792cdc2ef092a38eb5ee422f9d2fbd4101526d8a210/msgpack-1.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:196a736f0526a03653d829d7d4c5500a97eea3648aebfd4b6743875f28aa2af8", size = 420504, upload-time = "2025-06-13T06:52:18.982Z" },
|
{ url = "https://files.pythonhosted.org/packages/7e/3a/2919f63acca3c119565449681ad08a2f84b2171ddfcff1dba6959db2cceb/msgpack-1.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4a1964df7b81285d00a84da4e70cb1383f2e665e0f1f2a7027e683956d04b734", size = 81556, upload-time = "2024-09-10T04:24:28.296Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/20/22/2ebae7ae43cd8f2debc35c631172ddf14e2a87ffcc04cf43ff9df9fff0d3/msgpack-1.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d592d06e3cc2f537ceeeb23d38799c6ad83255289bb84c2e5792e5a8dea268a", size = 423749, upload-time = "2025-06-13T06:52:20.211Z" },
|
{ url = "https://files.pythonhosted.org/packages/7c/43/a11113d9e5c1498c145a8925768ea2d5fce7cbab15c99cda655aa09947ed/msgpack-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59caf6a4ed0d164055ccff8fe31eddc0ebc07cf7326a2aaa0dbf7a4001cd823e", size = 392105, upload-time = "2024-09-10T04:25:20.153Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/40/1b/54c08dd5452427e1179a40b4b607e37e2664bca1c790c60c442c8e972e47/msgpack-1.1.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4df2311b0ce24f06ba253fda361f938dfecd7b961576f9be3f3fbd60e87130ac", size = 404458, upload-time = "2025-06-13T06:52:21.429Z" },
|
{ url = "https://files.pythonhosted.org/packages/2d/7b/2c1d74ca6c94f70a1add74a8393a0138172207dc5de6fc6269483519d048/msgpack-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0907e1a7119b337971a689153665764adc34e89175f9a34793307d9def08e6ca", size = 399979, upload-time = "2024-09-10T04:25:41.75Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/2e/60/6bb17e9ffb080616a51f09928fdd5cac1353c9becc6c4a8abd4e57269a16/msgpack-1.1.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e4141c5a32b5e37905b5940aacbc59739f036930367d7acce7a64e4dec1f5e0b", size = 405976, upload-time = "2025-06-13T06:52:22.995Z" },
|
{ url = "https://files.pythonhosted.org/packages/82/8c/cf64ae518c7b8efc763ca1f1348a96f0e37150061e777a8ea5430b413a74/msgpack-1.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:65553c9b6da8166e819a6aa90ad15288599b340f91d18f60b2061f402b9a4915", size = 383816, upload-time = "2024-09-10T04:24:45.826Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/ee/97/88983e266572e8707c1f4b99c8fd04f9eb97b43f2db40e3172d87d8642db/msgpack-1.1.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b1ce7f41670c5a69e1389420436f41385b1aa2504c3b0c30620764b15dded2e7", size = 408607, upload-time = "2025-06-13T06:52:24.152Z" },
|
{ url = "https://files.pythonhosted.org/packages/69/86/a847ef7a0f5ef3fa94ae20f52a4cacf596a4e4a010197fbcc27744eb9a83/msgpack-1.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7a946a8992941fea80ed4beae6bff74ffd7ee129a90b4dd5cf9c476a30e9708d", size = 380973, upload-time = "2024-09-10T04:25:04.689Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/bc/66/36c78af2efaffcc15a5a61ae0df53a1d025f2680122e2a9eb8442fed3ae4/msgpack-1.1.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4147151acabb9caed4e474c3344181e91ff7a388b888f1e19ea04f7e73dc7ad5", size = 424172, upload-time = "2025-06-13T06:52:25.704Z" },
|
{ url = "https://files.pythonhosted.org/packages/aa/90/c74cf6e1126faa93185d3b830ee97246ecc4fe12cf9d2d31318ee4246994/msgpack-1.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4b51405e36e075193bc051315dbf29168d6141ae2500ba8cd80a522964e31434", size = 387435, upload-time = "2024-09-10T04:24:17.879Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/8c/87/a75eb622b555708fe0427fab96056d39d4c9892b0c784b3a721088c7ee37/msgpack-1.1.1-cp313-cp313-win32.whl", hash = "sha256:500e85823a27d6d9bba1d057c871b4210c1dd6fb01fbb764e37e4e8847376323", size = 65347, upload-time = "2025-06-13T06:52:26.846Z" },
|
{ url = "https://files.pythonhosted.org/packages/7a/40/631c238f1f338eb09f4acb0f34ab5862c4e9d7eda11c1b685471a4c5ea37/msgpack-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4c01941fd2ff87c2a934ee6055bda4ed353a7846b8d4f341c428109e9fcde8c", size = 399082, upload-time = "2024-09-10T04:25:18.398Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/ca/91/7dc28d5e2a11a5ad804cf2b7f7a5fcb1eb5a4966d66a5d2b41aee6376543/msgpack-1.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:6d489fba546295983abd142812bda76b57e33d0b9f5d5b71c09a583285506f69", size = 72341, upload-time = "2025-06-13T06:52:27.835Z" },
|
{ url = "https://files.pythonhosted.org/packages/e9/1b/fa8a952be252a1555ed39f97c06778e3aeb9123aa4cccc0fd2acd0b4e315/msgpack-1.1.0-cp313-cp313-win32.whl", hash = "sha256:7c9a35ce2c2573bada929e0b7b3576de647b0defbd25f5139dcdaba0ae35a4cc", size = 69037, upload-time = "2024-09-10T04:24:52.798Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/b6/bc/8bd826dd03e022153bfa1766dcdec4976d6c818865ed54223d71f07862b3/msgpack-1.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:bce7d9e614a04d0883af0b3d4d501171fbfca038f12c77fa838d9f198147a23f", size = 75140, upload-time = "2024-09-10T04:24:31.288Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2071,7 +2055,7 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "msgraph-sdk"
|
name = "msgraph-sdk"
|
||||||
version = "1.34.0"
|
version = "1.33.0"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "azure-identity" },
|
{ name = "azure-identity" },
|
||||||
@ -2081,54 +2065,52 @@ dependencies = [
|
|||||||
{ name = "microsoft-kiota-serialization-text" },
|
{ name = "microsoft-kiota-serialization-text" },
|
||||||
{ name = "msgraph-core" },
|
{ name = "msgraph-core" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/92/7a/c69b4fc4b9c02a6d14eddc96b91319dd7e91f0987245d4243a74b9c17fcf/msgraph_sdk-1.34.0.tar.gz", hash = "sha256:f71a81d3291f49d3610220de47bbbb6321aa62f7129d17a958f301b9acadfe99", size = 5968516, upload-time = "2025-06-18T11:43:33.287Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/61/2b/41ae74a4277210a0f7b102f8c34c6304f8a2aeb3ccc94c7c4cb14542ebba/msgraph_sdk-1.33.0.tar.gz", hash = "sha256:3f92d55eee4816e554831d1f6d8db6842ce1717f6f6d92bbb8ba98c4802821df", size = 6628201, upload-time = "2025-06-10T18:43:18.811Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/f2/0c/75f8066eca60fe9b2d5e1dd868b592533671b7b5cc711e655afd5c44d259/msgraph_sdk-1.34.0-py3-none-any.whl", hash = "sha256:d6daea012b78a7a4dd07fabb782ae00e4a9fe4f8d6016e8037769962533aa8ae", size = 24491410, upload-time = "2025-06-18T11:43:30.824Z" },
|
{ url = "https://files.pythonhosted.org/packages/fd/b3/6eca02d93c4b47b7a3b4388b65c4390eba5962379b2a9e27685b052dc428/msgraph_sdk-1.33.0-py3-none-any.whl", hash = "sha256:d42b8c39e2cdc386243d1d80df9481e9bc660db0803307a17fb3783085b19a42", size = 27215918, upload-time = "2025-06-10T18:43:15.155Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "multidict"
|
name = "multidict"
|
||||||
version = "6.5.0"
|
version = "6.4.4"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/46/b5/59f27b4ce9951a4bce56b88ba5ff5159486797ab18863f2b4c1c5e8465bd/multidict-6.5.0.tar.gz", hash = "sha256:942bd8002492ba819426a8d7aefde3189c1b87099cdf18aaaefefcf7f3f7b6d2", size = 98512, upload-time = "2025-06-17T14:15:56.556Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/91/2f/a3470242707058fe856fe59241eee5635d79087100b7042a867368863a27/multidict-6.4.4.tar.gz", hash = "sha256:69ee9e6ba214b5245031b76233dd95408a0fd57fdb019ddcc1ead4790932a8e8", size = 90183, upload-time = "2025-05-19T14:16:37.381Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/1a/c9/092c4e9402b6d16de761cff88cb842a5c8cc50ccecaf9c4481ba53264b9e/multidict-6.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:53d92df1752df67a928fa7f884aa51edae6f1cf00eeb38cbcf318cf841c17456", size = 73486, upload-time = "2025-06-17T14:14:37.238Z" },
|
{ url = "https://files.pythonhosted.org/packages/df/2a/e166d2ffbf4b10131b2d5b0e458f7cee7d986661caceae0de8753042d4b2/multidict-6.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:82ffabefc8d84c2742ad19c37f02cde5ec2a1ee172d19944d380f920a340e4b9", size = 64123, upload-time = "2025-05-19T14:15:11.044Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/08/f9/6f7ddb8213f5fdf4db48d1d640b78e8aef89b63a5de8a2313286db709250/multidict-6.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:680210de2c38eef17ce46b8df8bf2c1ece489261a14a6e43c997d49843a27c99", size = 43745, upload-time = "2025-06-17T14:14:38.32Z" },
|
{ url = "https://files.pythonhosted.org/packages/8c/96/e200e379ae5b6f95cbae472e0199ea98913f03d8c9a709f42612a432932c/multidict-6.4.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6a2f58a66fe2c22615ad26156354005391e26a2f3721c3621504cd87c1ea87bf", size = 38049, upload-time = "2025-05-19T14:15:12.902Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/f3/a7/b9be0163bfeee3bb08a77a1705e24eb7e651d594ea554107fac8a1ca6a4d/multidict-6.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e279259bcb936732bfa1a8eec82b5d2352b3df69d2fa90d25808cfc403cee90a", size = 42135, upload-time = "2025-06-17T14:14:39.897Z" },
|
{ url = "https://files.pythonhosted.org/packages/75/fb/47afd17b83f6a8c7fa863c6d23ac5ba6a0e6145ed8a6bcc8da20b2b2c1d2/multidict-6.4.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5883d6ee0fd9d8a48e9174df47540b7545909841ac82354c7ae4cbe9952603bd", size = 37078, upload-time = "2025-05-19T14:15:14.282Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/8e/30/93c8203f943a417bda3c573a34d5db0cf733afdfffb0ca78545c7716dbd8/multidict-6.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1c185fc1069781e3fc8b622c4331fb3b433979850392daa5efbb97f7f9959bb", size = 238585, upload-time = "2025-06-17T14:14:41.332Z" },
|
{ url = "https://files.pythonhosted.org/packages/fa/70/1af3143000eddfb19fd5ca5e78393985ed988ac493bb859800fe0914041f/multidict-6.4.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9abcf56a9511653fa1d052bfc55fbe53dbee8f34e68bd6a5a038731b0ca42d15", size = 224097, upload-time = "2025-05-19T14:15:15.566Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/9d/fe/2582b56a1807604774f566eeef183b0d6b148f4b89d1612cd077567b2e1e/multidict-6.5.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6bb5f65ff91daf19ce97f48f63585e51595539a8a523258b34f7cef2ec7e0617", size = 236174, upload-time = "2025-06-17T14:14:42.602Z" },
|
{ url = "https://files.pythonhosted.org/packages/b1/39/d570c62b53d4fba844e0378ffbcd02ac25ca423d3235047013ba2f6f60f8/multidict-6.4.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6ed5ae5605d4ad5a049fad2a28bb7193400700ce2f4ae484ab702d1e3749c3f9", size = 230768, upload-time = "2025-05-19T14:15:17.308Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/9b/c4/d8b66d42d385bd4f974cbd1eaa8b265e6b8d297249009f312081d5ded5c7/multidict-6.5.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d8646b4259450c59b9286db280dd57745897897284f6308edbdf437166d93855", size = 250145, upload-time = "2025-06-17T14:14:43.944Z" },
|
{ url = "https://files.pythonhosted.org/packages/fd/f8/ed88f2c4d06f752b015933055eb291d9bc184936903752c66f68fb3c95a7/multidict-6.4.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbfcb60396f9bcfa63e017a180c3105b8c123a63e9d1428a36544e7d37ca9e20", size = 231331, upload-time = "2025-05-19T14:15:18.73Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/bc/64/62feda5093ee852426aae3df86fab079f8bf1cdbe403e1078c94672ad3ec/multidict-6.5.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d245973d4ecc04eea0a8e5ebec7882cf515480036e1b48e65dffcfbdf86d00be", size = 243470, upload-time = "2025-06-17T14:14:45.343Z" },
|
{ url = "https://files.pythonhosted.org/packages/9c/6f/8e07cffa32f483ab887b0d56bbd8747ac2c1acd00dc0af6fcf265f4a121e/multidict-6.4.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b0f1987787f5f1e2076b59692352ab29a955b09ccc433c1f6b8e8e18666f608b", size = 230169, upload-time = "2025-05-19T14:15:20.179Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/67/dc/9f6fa6e854625cf289c0e9f4464b40212a01f76b2f3edfe89b6779b4fb93/multidict-6.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a133e7ddc9bc7fb053733d0ff697ce78c7bf39b5aec4ac12857b6116324c8d75", size = 236968, upload-time = "2025-06-17T14:14:46.609Z" },
|
{ url = "https://files.pythonhosted.org/packages/e6/2b/5dcf173be15e42f330110875a2668ddfc208afc4229097312212dc9c1236/multidict-6.4.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d0121ccce8c812047d8d43d691a1ad7641f72c4f730474878a5aeae1b8ead8c", size = 222947, upload-time = "2025-05-19T14:15:21.714Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/46/ae/4b81c6e3745faee81a156f3f87402315bdccf04236f75c03e37be19c94ff/multidict-6.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:80d696fa38d738fcebfd53eec4d2e3aeb86a67679fd5e53c325756682f152826", size = 236575, upload-time = "2025-06-17T14:14:47.929Z" },
|
{ url = "https://files.pythonhosted.org/packages/39/75/4ddcbcebe5ebcd6faa770b629260d15840a5fc07ce8ad295a32e14993726/multidict-6.4.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:83ec4967114295b8afd120a8eec579920c882831a3e4c3331d591a8e5bfbbc0f", size = 215761, upload-time = "2025-05-19T14:15:23.242Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/8a/fa/4089d7642ea344226e1bfab60dd588761d4791754f8072e911836a39bedf/multidict-6.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:20d30c9410ac3908abbaa52ee5967a754c62142043cf2ba091e39681bd51d21a", size = 247632, upload-time = "2025-06-17T14:14:49.525Z" },
|
{ url = "https://files.pythonhosted.org/packages/6a/c9/55e998ae45ff15c5608e384206aa71a11e1b7f48b64d166db400b14a3433/multidict-6.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:995f985e2e268deaf17867801b859a282e0448633f1310e3704b30616d269d69", size = 227605, upload-time = "2025-05-19T14:15:24.763Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/16/ee/a353dac797de0f28fb7f078cc181c5f2eefe8dd16aa11a7100cbdc234037/multidict-6.5.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:6c65068cc026f217e815fa519d8e959a7188e94ec163ffa029c94ca3ef9d4a73", size = 243520, upload-time = "2025-06-17T14:14:50.83Z" },
|
{ url = "https://files.pythonhosted.org/packages/04/49/c2404eac74497503c77071bd2e6f88c7e94092b8a07601536b8dbe99be50/multidict-6.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:d832c608f94b9f92a0ec8b7e949be7792a642b6e535fcf32f3e28fab69eeb046", size = 226144, upload-time = "2025-05-19T14:15:26.249Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/50/ec/560deb3d2d95822d6eb1bcb1f1cb728f8f0197ec25be7c936d5d6a5d133c/multidict-6.5.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:e355ac668a8c3e49c2ca8daa4c92f0ad5b705d26da3d5af6f7d971e46c096da7", size = 248551, upload-time = "2025-06-17T14:14:52.229Z" },
|
{ url = "https://files.pythonhosted.org/packages/62/c5/0cd0c3c6f18864c40846aa2252cd69d308699cb163e1c0d989ca301684da/multidict-6.4.4-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d21c1212171cf7da703c5b0b7a0e85be23b720818aef502ad187d627316d5645", size = 221100, upload-time = "2025-05-19T14:15:28.303Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/10/85/ddf277e67c78205f6695f2a7639be459bca9cc353b962fd8085a492a262f/multidict-6.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:08db204213d0375a91a381cae0677ab95dd8c67a465eb370549daf6dbbf8ba10", size = 258362, upload-time = "2025-06-17T14:14:53.934Z" },
|
{ url = "https://files.pythonhosted.org/packages/71/7b/f2f3887bea71739a046d601ef10e689528d4f911d84da873b6be9194ffea/multidict-6.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:cbebaa076aaecad3d4bb4c008ecc73b09274c952cf6a1b78ccfd689e51f5a5b0", size = 232731, upload-time = "2025-05-19T14:15:30.263Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/02/fc/d64ee1df9b87c5210f2d4c419cab07f28589c81b4e5711eda05a122d0614/multidict-6.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:ffa58e3e215af8f6536dc837a990e456129857bb6fd546b3991be470abd9597a", size = 253862, upload-time = "2025-06-17T14:14:55.323Z" },
|
{ url = "https://files.pythonhosted.org/packages/e5/b3/d9de808349df97fa75ec1372758701b5800ebad3c46ae377ad63058fbcc6/multidict-6.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:c93a6fb06cc8e5d3628b2b5fda215a5db01e8f08fc15fadd65662d9b857acbe4", size = 229637, upload-time = "2025-05-19T14:15:33.337Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/c9/7c/a2743c00d9e25f4826d3a77cc13d4746398872cf21c843eef96bb9945665/multidict-6.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3e86eb90015c6f21658dbd257bb8e6aa18bdb365b92dd1fba27ec04e58cdc31b", size = 247391, upload-time = "2025-06-17T14:14:57.293Z" },
|
{ url = "https://files.pythonhosted.org/packages/5e/57/13207c16b615eb4f1745b44806a96026ef8e1b694008a58226c2d8f5f0a5/multidict-6.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8cd8f81f1310182362fb0c7898145ea9c9b08a71081c5963b40ee3e3cac589b1", size = 225594, upload-time = "2025-05-19T14:15:34.832Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/9b/03/7773518db74c442904dbd349074f1e7f2a854cee4d9529fc59e623d3949e/multidict-6.5.0-cp313-cp313-win32.whl", hash = "sha256:f34a90fbd9959d0f857323bd3c52b3e6011ed48f78d7d7b9e04980b8a41da3af", size = 41115, upload-time = "2025-06-17T14:14:59.33Z" },
|
{ url = "https://files.pythonhosted.org/packages/3a/e4/d23bec2f70221604f5565000632c305fc8f25ba953e8ce2d8a18842b9841/multidict-6.4.4-cp313-cp313-win32.whl", hash = "sha256:3e9f1cd61a0ab857154205fb0b1f3d3ace88d27ebd1409ab7af5096e409614cd", size = 35359, upload-time = "2025-05-19T14:15:36.246Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/eb/9a/6fc51b1dc11a7baa944bc101a92167d8b0f5929d376a8c65168fc0d35917/multidict-6.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:fcb2aa79ac6aef8d5b709bbfc2fdb1d75210ba43038d70fbb595b35af470ce06", size = 44768, upload-time = "2025-06-17T14:15:00.427Z" },
|
{ url = "https://files.pythonhosted.org/packages/a7/7a/cfe1a47632be861b627f46f642c1d031704cc1c0f5c0efbde2ad44aa34bd/multidict-6.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:8ffb40b74400e4455785c2fa37eba434269149ec525fc8329858c862e4b35373", size = 38903, upload-time = "2025-05-19T14:15:37.507Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/82/2d/0d010be24b663b3c16e3d3307bbba2de5ae8eec496f6027d5c0515b371a8/multidict-6.5.0-cp313-cp313-win_arm64.whl", hash = "sha256:6dcee5e7e92060b4bb9bb6f01efcbb78c13d0e17d9bc6eec71660dd71dc7b0c2", size = 41770, upload-time = "2025-06-17T14:15:01.854Z" },
|
{ url = "https://files.pythonhosted.org/packages/68/7b/15c259b0ab49938a0a1c8f3188572802704a779ddb294edc1b2a72252e7c/multidict-6.4.4-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:6a602151dbf177be2450ef38966f4be3467d41a86c6a845070d12e17c858a156", size = 68895, upload-time = "2025-05-19T14:15:38.856Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/aa/d1/a71711a5f32f84b7b036e82182e3250b949a0ce70d51a2c6a4079e665449/multidict-6.5.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:cbbc88abea2388fde41dd574159dec2cda005cb61aa84950828610cb5010f21a", size = 80450, upload-time = "2025-06-17T14:15:02.968Z" },
|
{ url = "https://files.pythonhosted.org/packages/f1/7d/168b5b822bccd88142e0a3ce985858fea612404edd228698f5af691020c9/multidict-6.4.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0d2b9712211b860d123815a80b859075d86a4d54787e247d7fbee9db6832cf1c", size = 40183, upload-time = "2025-05-19T14:15:40.197Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/0f/a2/953a9eede63a98fcec2c1a2c1a0d88de120056219931013b871884f51b43/multidict-6.5.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:70b599f70ae6536e5976364d3c3cf36f40334708bd6cebdd1e2438395d5e7676", size = 46971, upload-time = "2025-06-17T14:15:04.149Z" },
|
{ url = "https://files.pythonhosted.org/packages/e0/b7/d4b8d98eb850ef28a4922ba508c31d90715fd9b9da3801a30cea2967130b/multidict-6.4.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:d2fa86af59f8fc1972e121ade052145f6da22758f6996a197d69bb52f8204e7e", size = 39592, upload-time = "2025-05-19T14:15:41.508Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/44/61/60250212953459edda2c729e1d85130912f23c67bd4f585546fe4bdb1578/multidict-6.5.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:828bab777aa8d29d59700018178061854e3a47727e0611cb9bec579d3882de3b", size = 45548, upload-time = "2025-06-17T14:15:05.666Z" },
|
{ url = "https://files.pythonhosted.org/packages/18/28/a554678898a19583548e742080cf55d169733baf57efc48c2f0273a08583/multidict-6.4.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50855d03e9e4d66eab6947ba688ffb714616f985838077bc4b490e769e48da51", size = 226071, upload-time = "2025-05-19T14:15:42.877Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/11/b6/e78ee82e96c495bc2582b303f68bed176b481c8d81a441fec07404fce2ca/multidict-6.5.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9695fc1462f17b131c111cf0856a22ff154b0480f86f539d24b2778571ff94d", size = 238545, upload-time = "2025-06-17T14:15:06.88Z" },
|
{ url = "https://files.pythonhosted.org/packages/ee/dc/7ba6c789d05c310e294f85329efac1bf5b450338d2542498db1491a264df/multidict-6.4.4-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5bce06b83be23225be1905dcdb6b789064fae92499fbc458f59a8c0e68718601", size = 222597, upload-time = "2025-05-19T14:15:44.412Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/5a/0f/6132ca06670c8d7b374c3a4fd1ba896fc37fbb66b0de903f61db7d1020ec/multidict-6.5.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0b5ac6ebaf5d9814b15f399337ebc6d3a7f4ce9331edd404e76c49a01620b68d", size = 229931, upload-time = "2025-06-17T14:15:08.24Z" },
|
{ url = "https://files.pythonhosted.org/packages/24/4f/34eadbbf401b03768dba439be0fb94b0d187facae9142821a3d5599ccb3b/multidict-6.4.4-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:66ed0731f8e5dfd8369a883b6e564aca085fb9289aacabd9decd70568b9a30de", size = 228253, upload-time = "2025-05-19T14:15:46.474Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/c0/63/d9957c506e6df6b3e7a194f0eea62955c12875e454b978f18262a65d017b/multidict-6.5.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:84a51e3baa77ded07be4766a9e41d977987b97e49884d4c94f6d30ab6acaee14", size = 248181, upload-time = "2025-06-17T14:15:09.907Z" },
|
{ url = "https://files.pythonhosted.org/packages/c0/e6/493225a3cdb0d8d80d43a94503fc313536a07dae54a3f030d279e629a2bc/multidict-6.4.4-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:329ae97fc2f56f44d91bc47fe0972b1f52d21c4b7a2ac97040da02577e2daca2", size = 226146, upload-time = "2025-05-19T14:15:48.003Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/43/3f/7d5490579640db5999a948e2c41d4a0efd91a75989bda3e0a03a79c92be2/multidict-6.5.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8de67f79314d24179e9b1869ed15e88d6ba5452a73fc9891ac142e0ee018b5d6", size = 241846, upload-time = "2025-06-17T14:15:11.596Z" },
|
{ url = "https://files.pythonhosted.org/packages/2f/70/e411a7254dc3bff6f7e6e004303b1b0591358e9f0b7c08639941e0de8bd6/multidict-6.4.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c27e5dcf520923d6474d98b96749e6805f7677e93aaaf62656005b8643f907ab", size = 220585, upload-time = "2025-05-19T14:15:49.546Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/e1/f7/252b1ce949ece52bba4c0de7aa2e3a3d5964e800bce71fb778c2e6c66f7c/multidict-6.5.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17f78a52c214481d30550ec18208e287dfc4736f0c0148208334b105fd9e0887", size = 232893, upload-time = "2025-06-17T14:15:12.946Z" },
|
{ url = "https://files.pythonhosted.org/packages/08/8f/beb3ae7406a619100d2b1fb0022c3bb55a8225ab53c5663648ba50dfcd56/multidict-6.4.4-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:058cc59b9e9b143cc56715e59e22941a5d868c322242278d28123a5d09cdf6b0", size = 212080, upload-time = "2025-05-19T14:15:51.151Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/45/7e/0070bfd48c16afc26e056f2acce49e853c0d604a69c7124bc0bbdb1bcc0a/multidict-6.5.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2966d0099cb2e2039f9b0e73e7fd5eb9c85805681aa2a7f867f9d95b35356921", size = 228567, upload-time = "2025-06-17T14:15:14.267Z" },
|
{ url = "https://files.pythonhosted.org/packages/9c/ec/355124e9d3d01cf8edb072fd14947220f357e1c5bc79c88dff89297e9342/multidict-6.4.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:69133376bc9a03f8c47343d33f91f74a99c339e8b58cea90433d8e24bb298031", size = 226558, upload-time = "2025-05-19T14:15:52.665Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/2a/31/90551c75322113ebf5fd9c5422e8641d6952f6edaf6b6c07fdc49b1bebdd/multidict-6.5.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:86fb42ed5ed1971c642cc52acc82491af97567534a8e381a8d50c02169c4e684", size = 246188, upload-time = "2025-06-17T14:15:15.985Z" },
|
{ url = "https://files.pythonhosted.org/packages/fd/22/d2b95cbebbc2ada3be3812ea9287dcc9712d7f1a012fad041770afddb2ad/multidict-6.4.4-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:d6b15c55721b1b115c5ba178c77104123745b1417527ad9641a4c5e2047450f0", size = 212168, upload-time = "2025-05-19T14:15:55.279Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/cc/e2/aa4b02a55e7767ff292871023817fe4db83668d514dab7ccbce25eaf7659/multidict-6.5.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:4e990cbcb6382f9eae4ec720bcac6a1351509e6fc4a5bb70e4984b27973934e6", size = 235178, upload-time = "2025-06-17T14:15:17.395Z" },
|
{ url = "https://files.pythonhosted.org/packages/4d/c5/62bfc0b2f9ce88326dbe7179f9824a939c6c7775b23b95de777267b9725c/multidict-6.4.4-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:a887b77f51d3d41e6e1a63cf3bc7ddf24de5939d9ff69441387dfefa58ac2e26", size = 217970, upload-time = "2025-05-19T14:15:56.806Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/7d/5c/f67e726717c4b138b166be1700e2b56e06fbbcb84643d15f9a9d7335ff41/multidict-6.5.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:d99a59d64bb1f7f2117bec837d9e534c5aeb5dcedf4c2b16b9753ed28fdc20a3", size = 243422, upload-time = "2025-06-17T14:15:18.939Z" },
|
{ url = "https://files.pythonhosted.org/packages/79/74/977cea1aadc43ff1c75d23bd5bc4768a8fac98c14e5878d6ee8d6bab743c/multidict-6.4.4-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:632a3bf8f1787f7ef7d3c2f68a7bde5be2f702906f8b5842ad6da9d974d0aab3", size = 226980, upload-time = "2025-05-19T14:15:58.313Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/e5/1c/15fa318285e26a50aa3fa979bbcffb90f9b4d5ec58882d0590eda067d0da/multidict-6.5.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:e8ef15cc97c9890212e1caf90f0d63f6560e1e101cf83aeaf63a57556689fb34", size = 254898, upload-time = "2025-06-17T14:15:20.31Z" },
|
{ url = "https://files.pythonhosted.org/packages/48/fc/cc4a1a2049df2eb84006607dc428ff237af38e0fcecfdb8a29ca47b1566c/multidict-6.4.4-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:a145c550900deb7540973c5cdb183b0d24bed6b80bf7bddf33ed8f569082535e", size = 220641, upload-time = "2025-05-19T14:15:59.866Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/ad/3d/d6c6d1c2e9b61ca80313912d30bb90d4179335405e421ef0a164eac2c0f9/multidict-6.5.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:b8a09aec921b34bd8b9f842f0bcfd76c6a8c033dc5773511e15f2d517e7e1068", size = 247129, upload-time = "2025-06-17T14:15:21.665Z" },
|
{ url = "https://files.pythonhosted.org/packages/3b/6a/a7444d113ab918701988d4abdde373dbdfd2def7bd647207e2bf645c7eac/multidict-6.4.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:cc5d83c6619ca5c9672cb78b39ed8542f1975a803dee2cda114ff73cbb076edd", size = 221728, upload-time = "2025-05-19T14:16:01.535Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/29/15/1568258cf0090bfa78d44be66247cfdb16e27dfd935c8136a1e8632d3057/multidict-6.5.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ff07b504c23b67f2044533244c230808a1258b3493aaf3ea2a0785f70b7be461", size = 243841, upload-time = "2025-06-17T14:15:23.38Z" },
|
{ url = "https://files.pythonhosted.org/packages/2b/b0/fdf4c73ad1c55e0f4dbbf2aa59dd37037334091f9a4961646d2b7ac91a86/multidict-6.4.4-cp313-cp313t-win32.whl", hash = "sha256:3312f63261b9df49be9d57aaa6abf53a6ad96d93b24f9cc16cf979956355ce6e", size = 41913, upload-time = "2025-05-19T14:16:03.199Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/65/57/64af5dbcfd61427056e840c8e520b502879d480f9632fbe210929fd87393/multidict-6.5.0-cp313-cp313t-win32.whl", hash = "sha256:9232a117341e7e979d210e41c04e18f1dc3a1d251268df6c818f5334301274e1", size = 46761, upload-time = "2025-06-17T14:15:24.733Z" },
|
{ url = "https://files.pythonhosted.org/packages/8e/92/27989ecca97e542c0d01d05a98a5ae12198a243a9ee12563a0313291511f/multidict-6.4.4-cp313-cp313t-win_amd64.whl", hash = "sha256:ba852168d814b2c73333073e1c7116d9395bea69575a01b0b3c89d2d5a87c8fb", size = 46112, upload-time = "2025-05-19T14:16:04.909Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/26/a8/cac7f7d61e188ff44f28e46cb98f9cc21762e671c96e031f06c84a60556e/multidict-6.5.0-cp313-cp313t-win_amd64.whl", hash = "sha256:44cb5c53fb2d4cbcee70a768d796052b75d89b827643788a75ea68189f0980a1", size = 52112, upload-time = "2025-06-17T14:15:25.906Z" },
|
{ url = "https://files.pythonhosted.org/packages/84/5d/e17845bb0fa76334477d5de38654d27946d5b5d3695443987a094a71b440/multidict-6.4.4-py3-none-any.whl", hash = "sha256:bd4557071b561a8b3b6075c3ce93cf9bfb6182cb241805c3d66ced3b75eff4ac", size = 10481, upload-time = "2025-05-19T14:16:36.024Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/51/9f/076533feb1b5488d22936da98b9c217205cfbf9f56f7174e8c5c86d86fe6/multidict-6.5.0-cp313-cp313t-win_arm64.whl", hash = "sha256:51d33fafa82640c0217391d4ce895d32b7e84a832b8aee0dcc1b04d8981ec7f4", size = 44358, upload-time = "2025-06-17T14:15:27.117Z" },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/44/d8/45e8fc9892a7386d074941429e033adb4640e59ff0780d96a8cf46fe788e/multidict-6.5.0-py3-none-any.whl", hash = "sha256:5634b35f225977605385f56153bd95a7133faffc0ffe12ad26e10517537e8dfc", size = 12181, upload-time = "2025-06-17T14:15:55.156Z" },
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2151,11 +2133,11 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "oauthlib"
|
name = "oauthlib"
|
||||||
version = "3.3.0"
|
version = "3.2.2"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/98/8a/6ea75ff7acf89f43afb157604429af4661a9840b1f2cece602b6a13c1893/oauthlib-3.3.0.tar.gz", hash = "sha256:4e707cf88d7dfc22a8cce22ca736a2eef9967c1dd3845efc0703fc922353eeb2", size = 190292, upload-time = "2025-06-17T23:19:18.309Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/6d/fa/fbf4001037904031639e6bfbfc02badfc7e12f137a8afa254df6c4c8a670/oauthlib-3.2.2.tar.gz", hash = "sha256:9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918", size = 177352, upload-time = "2022-10-17T20:04:27.471Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/e1/3d/760b1456010ed11ce87c0109007f0166078dfdada7597f0091ae76eb7305/oauthlib-3.3.0-py3-none-any.whl", hash = "sha256:a2b3a0a2a4ec2feb4b9110f56674a39b2cc2f23e14713f4ed20441dfba14e934", size = 165155, upload-time = "2025-06-17T23:19:16.771Z" },
|
{ url = "https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl", hash = "sha256:8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca", size = 151688, upload-time = "2022-10-17T20:04:24.037Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2165,42 +2147,42 @@ source = { git = "https://github.com/vsoch/oci-python?rev=ceb4fcc090851717a3069d
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry-api"
|
name = "opentelemetry-api"
|
||||||
version = "1.34.1"
|
version = "1.34.0"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "importlib-metadata" },
|
{ name = "importlib-metadata" },
|
||||||
{ name = "typing-extensions" },
|
{ name = "typing-extensions" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/4d/5e/94a8cb759e4e409022229418294e098ca7feca00eb3c467bb20cbd329bda/opentelemetry_api-1.34.1.tar.gz", hash = "sha256:64f0bd06d42824843731d05beea88d4d4b6ae59f9fe347ff7dfa2cc14233bbb3", size = 64987, upload-time = "2025-06-10T08:55:19.818Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/4c/0b/4433d3f18301b541d98ea775fcbeab817fc7f962e980a75d17c967471b64/opentelemetry_api-1.34.0.tar.gz", hash = "sha256:48d167589134799093005b7f7f347c69cc67859c693b17787f334fbe8871279f", size = 64983, upload-time = "2025-06-04T13:31:26.107Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/a5/3a/2ba85557e8dc024c0842ad22c570418dc02c36cbd1ab4b832a93edf071b8/opentelemetry_api-1.34.1-py3-none-any.whl", hash = "sha256:b7df4cb0830d5a6c29ad0c0691dbae874d8daefa934b8b1d642de48323d32a8c", size = 65767, upload-time = "2025-06-10T08:54:56.717Z" },
|
{ url = "https://files.pythonhosted.org/packages/98/f9/d50ba0c92a97a6d0861357d0ecd67e850d319ac7e7be1895cc236b6ed2b5/opentelemetry_api-1.34.0-py3-none-any.whl", hash = "sha256:390b81984affe4453180820ca518de55e3be051111e70cc241bb3b0071ca3a2c", size = 65768, upload-time = "2025-06-04T13:31:02.706Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry-sdk"
|
name = "opentelemetry-sdk"
|
||||||
version = "1.34.1"
|
version = "1.34.0"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "opentelemetry-api" },
|
{ name = "opentelemetry-api" },
|
||||||
{ name = "opentelemetry-semantic-conventions" },
|
{ name = "opentelemetry-semantic-conventions" },
|
||||||
{ name = "typing-extensions" },
|
{ name = "typing-extensions" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/6f/41/fe20f9036433da8e0fcef568984da4c1d1c771fa072ecd1a4d98779dccdd/opentelemetry_sdk-1.34.1.tar.gz", hash = "sha256:8091db0d763fcd6098d4781bbc80ff0971f94e260739aa6afe6fd379cdf3aa4d", size = 159441, upload-time = "2025-06-10T08:55:33.028Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/52/07/8ca4b295322b5978e2cc4fab3f743ddabf72b82b5d2c50141471f573149d/opentelemetry_sdk-1.34.0.tar.gz", hash = "sha256:719559622afcd515c2aec462ccb749ba2e70075a01df45837623643814d33716", size = 159322, upload-time = "2025-06-04T13:31:36.333Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/07/1b/def4fe6aa73f483cabf4c748f4c25070d5f7604dcc8b52e962983491b29e/opentelemetry_sdk-1.34.1-py3-none-any.whl", hash = "sha256:308effad4059562f1d92163c61c8141df649da24ce361827812c40abb2a1e96e", size = 118477, upload-time = "2025-06-10T08:55:16.02Z" },
|
{ url = "https://files.pythonhosted.org/packages/55/96/5b788eef90a65543a67988729f0e44fc46eac1da455505ae5091f418a9d9/opentelemetry_sdk-1.34.0-py3-none-any.whl", hash = "sha256:7850bcd5b5c95f9aae48603d6592bdad5c7bdef50c03e06393f8f457d891fe32", size = 118385, upload-time = "2025-06-04T13:31:21.372Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry-semantic-conventions"
|
name = "opentelemetry-semantic-conventions"
|
||||||
version = "0.55b1"
|
version = "0.55b0"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "opentelemetry-api" },
|
{ name = "opentelemetry-api" },
|
||||||
{ name = "typing-extensions" },
|
{ name = "typing-extensions" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/5d/f0/f33458486da911f47c4aa6db9bda308bb80f3236c111bf848bd870c16b16/opentelemetry_semantic_conventions-0.55b1.tar.gz", hash = "sha256:ef95b1f009159c28d7a7849f5cbc71c4c34c845bb514d66adfdf1b3fff3598b3", size = 119829, upload-time = "2025-06-10T08:55:33.881Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/f1/64/b99165f7e205e103a83406fb5c3dde668c3a990b3fa0cbe358011095f4fa/opentelemetry_semantic_conventions-0.55b0.tar.gz", hash = "sha256:933d2e20c2dbc0f9b2f4f52138282875b4b14c66c491f5273bcdef1781368e9c", size = 119828, upload-time = "2025-06-04T13:31:37.118Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/1a/89/267b0af1b1d0ba828f0e60642b6a5116ac1fd917cde7fc02821627029bd1/opentelemetry_semantic_conventions-0.55b1-py3-none-any.whl", hash = "sha256:5da81dfdf7d52e3d37f8fe88d5e771e191de924cfff5f550ab0b8f7b2409baed", size = 196223, upload-time = "2025-06-10T08:55:17.638Z" },
|
{ url = "https://files.pythonhosted.org/packages/ca/b1/d7a2472f7da7e39f1a85f63951ad653c1126a632d6491c056ec6284a10a7/opentelemetry_semantic_conventions-0.55b0-py3-none-any.whl", hash = "sha256:63bb15b67377700e51c422d0d24092ca6ce9f3a4cb6f032375aa8af1fc2aab65", size = 196224, upload-time = "2025-06-04T13:31:22.451Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2314,15 +2296,6 @@ wheels = [
|
|||||||
{ url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" },
|
{ url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "ply"
|
|
||||||
version = "3.11"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/e5/69/882ee5c9d017149285cab114ebeab373308ef0f874fcdac9beb90e0ac4da/ply-3.11.tar.gz", hash = "sha256:00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3", size = 159130, upload-time = "2018-02-15T19:01:31.097Z" }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/a3/58/35da89ee790598a0700ea49b2a66594140f44dec458c07e8e3d4979137fc/ply-3.11-py2.py3-none-any.whl", hash = "sha256:096f9b8350b65ebd2fd1346b12452efe5b9607f7482813ffca50c22722a807ce", size = 49567, upload-time = "2018-02-15T19:01:27.172Z" },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "prometheus-client"
|
name = "prometheus-client"
|
||||||
version = "0.22.1"
|
version = "0.22.1"
|
||||||
@ -2346,43 +2319,43 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "propcache"
|
name = "propcache"
|
||||||
version = "0.3.2"
|
version = "0.3.1"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/a6/16/43264e4a779dd8588c21a70f0709665ee8f611211bdd2c87d952cfa7c776/propcache-0.3.2.tar.gz", hash = "sha256:20d7d62e4e7ef05f221e0db2856b979540686342e7dd9973b815599c7057e168", size = 44139, upload-time = "2025-06-09T22:56:06.081Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/07/c8/fdc6686a986feae3541ea23dcaa661bd93972d3940460646c6bb96e21c40/propcache-0.3.1.tar.gz", hash = "sha256:40d980c33765359098837527e18eddefc9a24cea5b45e078a7f3bb5b032c6ecf", size = 43651, upload-time = "2025-03-26T03:06:12.05Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/dc/d1/8c747fafa558c603c4ca19d8e20b288aa0c7cda74e9402f50f31eb65267e/propcache-0.3.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ca592ed634a73ca002967458187109265e980422116c0a107cf93d81f95af945", size = 71286, upload-time = "2025-06-09T22:54:54.369Z" },
|
{ url = "https://files.pythonhosted.org/packages/58/60/f645cc8b570f99be3cf46714170c2de4b4c9d6b827b912811eff1eb8a412/propcache-0.3.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f1528ec4374617a7a753f90f20e2f551121bb558fcb35926f99e3c42367164b8", size = 77865, upload-time = "2025-03-26T03:04:53.406Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/61/99/d606cb7986b60d89c36de8a85d58764323b3a5ff07770a99d8e993b3fa73/propcache-0.3.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9ecb0aad4020e275652ba3975740f241bd12a61f1a784df044cf7477a02bc252", size = 42425, upload-time = "2025-06-09T22:54:55.642Z" },
|
{ url = "https://files.pythonhosted.org/packages/6f/d4/c1adbf3901537582e65cf90fd9c26fde1298fde5a2c593f987112c0d0798/propcache-0.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dc1915ec523b3b494933b5424980831b636fe483d7d543f7afb7b3bf00f0c10f", size = 45452, upload-time = "2025-03-26T03:04:54.624Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/8c/96/ef98f91bbb42b79e9bb82bdd348b255eb9d65f14dbbe3b1594644c4073f7/propcache-0.3.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7f08f1cc28bd2eade7a8a3d2954ccc673bb02062e3e7da09bc75d843386b342f", size = 41846, upload-time = "2025-06-09T22:54:57.246Z" },
|
{ url = "https://files.pythonhosted.org/packages/d1/b5/fe752b2e63f49f727c6c1c224175d21b7d1727ce1d4873ef1c24c9216830/propcache-0.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a110205022d077da24e60b3df8bcee73971be9575dec5573dd17ae5d81751111", size = 44800, upload-time = "2025-03-26T03:04:55.844Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/5b/ad/3f0f9a705fb630d175146cd7b1d2bf5555c9beaed54e94132b21aac098a6/propcache-0.3.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1a342c834734edb4be5ecb1e9fb48cb64b1e2320fccbd8c54bf8da8f2a84c33", size = 208871, upload-time = "2025-06-09T22:54:58.975Z" },
|
{ url = "https://files.pythonhosted.org/packages/62/37/fc357e345bc1971e21f76597028b059c3d795c5ca7690d7a8d9a03c9708a/propcache-0.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d249609e547c04d190e820d0d4c8ca03ed4582bcf8e4e160a6969ddfb57b62e5", size = 225804, upload-time = "2025-03-26T03:04:57.158Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/3a/38/2085cda93d2c8b6ec3e92af2c89489a36a5886b712a34ab25de9fbca7992/propcache-0.3.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a544caaae1ac73f1fecfae70ded3e93728831affebd017d53449e3ac052ac1e", size = 215720, upload-time = "2025-06-09T22:55:00.471Z" },
|
{ url = "https://files.pythonhosted.org/packages/0d/f1/16e12c33e3dbe7f8b737809bad05719cff1dccb8df4dafbcff5575002c0e/propcache-0.3.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ced33d827625d0a589e831126ccb4f5c29dfdf6766cac441d23995a65825dcb", size = 230650, upload-time = "2025-03-26T03:04:58.61Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/61/c1/d72ea2dc83ac7f2c8e182786ab0fc2c7bd123a1ff9b7975bee671866fe5f/propcache-0.3.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:310d11aa44635298397db47a3ebce7db99a4cc4b9bbdfcf6c98a60c8d5261cf1", size = 215203, upload-time = "2025-06-09T22:55:01.834Z" },
|
{ url = "https://files.pythonhosted.org/packages/3e/a2/018b9f2ed876bf5091e60153f727e8f9073d97573f790ff7cdf6bc1d1fb8/propcache-0.3.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4114c4ada8f3181af20808bedb250da6bae56660e4b8dfd9cd95d4549c0962f7", size = 234235, upload-time = "2025-03-26T03:05:00.599Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/af/81/b324c44ae60c56ef12007105f1460d5c304b0626ab0cc6b07c8f2a9aa0b8/propcache-0.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c1396592321ac83157ac03a2023aa6cc4a3cc3cfdecb71090054c09e5a7cce3", size = 206365, upload-time = "2025-06-09T22:55:03.199Z" },
|
{ url = "https://files.pythonhosted.org/packages/45/5f/3faee66fc930dfb5da509e34c6ac7128870631c0e3582987fad161fcb4b1/propcache-0.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:975af16f406ce48f1333ec5e912fe11064605d5c5b3f6746969077cc3adeb120", size = 228249, upload-time = "2025-03-26T03:05:02.11Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/09/73/88549128bb89e66d2aff242488f62869014ae092db63ccea53c1cc75a81d/propcache-0.3.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cabf5b5902272565e78197edb682017d21cf3b550ba0460ee473753f28d23c1", size = 196016, upload-time = "2025-06-09T22:55:04.518Z" },
|
{ url = "https://files.pythonhosted.org/packages/62/1e/a0d5ebda5da7ff34d2f5259a3e171a94be83c41eb1e7cd21a2105a84a02e/propcache-0.3.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a34aa3a1abc50740be6ac0ab9d594e274f59960d3ad253cd318af76b996dd654", size = 214964, upload-time = "2025-03-26T03:05:03.599Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/b9/3f/3bdd14e737d145114a5eb83cb172903afba7242f67c5877f9909a20d948d/propcache-0.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0a2f2235ac46a7aa25bdeb03a9e7060f6ecbd213b1f9101c43b3090ffb971ef6", size = 205596, upload-time = "2025-06-09T22:55:05.942Z" },
|
{ url = "https://files.pythonhosted.org/packages/db/a0/d72da3f61ceab126e9be1f3bc7844b4e98c6e61c985097474668e7e52152/propcache-0.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9cec3239c85ed15bfaded997773fdad9fb5662b0a7cbc854a43f291eb183179e", size = 222501, upload-time = "2025-03-26T03:05:05.107Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/0f/ca/2f4aa819c357d3107c3763d7ef42c03980f9ed5c48c82e01e25945d437c1/propcache-0.3.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:92b69e12e34869a6970fd2f3da91669899994b47c98f5d430b781c26f1d9f387", size = 200977, upload-time = "2025-06-09T22:55:07.792Z" },
|
{ url = "https://files.pythonhosted.org/packages/18/6d/a008e07ad7b905011253adbbd97e5b5375c33f0b961355ca0a30377504ac/propcache-0.3.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:05543250deac8e61084234d5fc54f8ebd254e8f2b39a16b1dce48904f45b744b", size = 217917, upload-time = "2025-03-26T03:05:06.59Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/cd/4a/e65276c7477533c59085251ae88505caf6831c0e85ff8b2e31ebcbb949b1/propcache-0.3.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:54e02207c79968ebbdffc169591009f4474dde3b4679e16634d34c9363ff56b4", size = 197220, upload-time = "2025-06-09T22:55:09.173Z" },
|
{ url = "https://files.pythonhosted.org/packages/98/37/02c9343ffe59e590e0e56dc5c97d0da2b8b19fa747ebacf158310f97a79a/propcache-0.3.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:5cb5918253912e088edbf023788de539219718d3b10aef334476b62d2b53de53", size = 217089, upload-time = "2025-03-26T03:05:08.1Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/7c/54/fc7152e517cf5578278b242396ce4d4b36795423988ef39bb8cd5bf274c8/propcache-0.3.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4adfb44cb588001f68c5466579d3f1157ca07f7504fc91ec87862e2b8e556b88", size = 210642, upload-time = "2025-06-09T22:55:10.62Z" },
|
{ url = "https://files.pythonhosted.org/packages/53/1b/d3406629a2c8a5666d4674c50f757a77be119b113eedd47b0375afdf1b42/propcache-0.3.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f3bbecd2f34d0e6d3c543fdb3b15d6b60dd69970c2b4c822379e5ec8f6f621d5", size = 228102, upload-time = "2025-03-26T03:05:09.982Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/b9/80/abeb4a896d2767bf5f1ea7b92eb7be6a5330645bd7fb844049c0e4045d9d/propcache-0.3.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fd3e6019dc1261cd0291ee8919dd91fbab7b169bb76aeef6c716833a3f65d206", size = 212789, upload-time = "2025-06-09T22:55:12.029Z" },
|
{ url = "https://files.pythonhosted.org/packages/cd/a7/3664756cf50ce739e5f3abd48febc0be1a713b1f389a502ca819791a6b69/propcache-0.3.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aca63103895c7d960a5b9b044a83f544b233c95e0dcff114389d64d762017af7", size = 230122, upload-time = "2025-03-26T03:05:11.408Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/b3/db/ea12a49aa7b2b6d68a5da8293dcf50068d48d088100ac016ad92a6a780e6/propcache-0.3.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4c181cad81158d71c41a2bce88edce078458e2dd5ffee7eddd6b05da85079f43", size = 205880, upload-time = "2025-06-09T22:55:13.45Z" },
|
{ url = "https://files.pythonhosted.org/packages/35/36/0bbabaacdcc26dac4f8139625e930f4311864251276033a52fd52ff2a274/propcache-0.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5a0a9898fdb99bf11786265468571e628ba60af80dc3f6eb89a3545540c6b0ef", size = 226818, upload-time = "2025-03-26T03:05:12.909Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/d1/e5/9076a0bbbfb65d1198007059c65639dfd56266cf8e477a9707e4b1999ff4/propcache-0.3.2-cp313-cp313-win32.whl", hash = "sha256:8a08154613f2249519e549de2330cf8e2071c2887309a7b07fb56098f5170a02", size = 37220, upload-time = "2025-06-09T22:55:15.284Z" },
|
{ url = "https://files.pythonhosted.org/packages/cc/27/4e0ef21084b53bd35d4dae1634b6d0bad35e9c58ed4f032511acca9d4d26/propcache-0.3.1-cp313-cp313-win32.whl", hash = "sha256:3a02a28095b5e63128bcae98eb59025924f121f048a62393db682f049bf4ac24", size = 40112, upload-time = "2025-03-26T03:05:14.289Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/d3/f5/b369e026b09a26cd77aa88d8fffd69141d2ae00a2abaaf5380d2603f4b7f/propcache-0.3.2-cp313-cp313-win_amd64.whl", hash = "sha256:e41671f1594fc4ab0a6dec1351864713cb3a279910ae8b58f884a88a0a632c05", size = 40678, upload-time = "2025-06-09T22:55:16.445Z" },
|
{ url = "https://files.pythonhosted.org/packages/a6/2c/a54614d61895ba6dd7ac8f107e2b2a0347259ab29cbf2ecc7b94fa38c4dc/propcache-0.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:813fbb8b6aea2fc9659815e585e548fe706d6f663fa73dff59a1677d4595a037", size = 44034, upload-time = "2025-03-26T03:05:15.616Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/a4/3a/6ece377b55544941a08d03581c7bc400a3c8cd3c2865900a68d5de79e21f/propcache-0.3.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:9a3cf035bbaf035f109987d9d55dc90e4b0e36e04bbbb95af3055ef17194057b", size = 76560, upload-time = "2025-06-09T22:55:17.598Z" },
|
{ url = "https://files.pythonhosted.org/packages/5a/a8/0a4fd2f664fc6acc66438370905124ce62e84e2e860f2557015ee4a61c7e/propcache-0.3.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a444192f20f5ce8a5e52761a031b90f5ea6288b1eef42ad4c7e64fef33540b8f", size = 82613, upload-time = "2025-03-26T03:05:16.913Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/0c/da/64a2bb16418740fa634b0e9c3d29edff1db07f56d3546ca2d86ddf0305e1/propcache-0.3.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:156c03d07dc1323d8dacaa221fbe028c5c70d16709cdd63502778e6c3ccca1b0", size = 44676, upload-time = "2025-06-09T22:55:18.922Z" },
|
{ url = "https://files.pythonhosted.org/packages/4d/e5/5ef30eb2cd81576256d7b6caaa0ce33cd1d2c2c92c8903cccb1af1a4ff2f/propcache-0.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0fbe94666e62ebe36cd652f5fc012abfbc2342de99b523f8267a678e4dfdee3c", size = 47763, upload-time = "2025-03-26T03:05:18.607Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/36/7b/f025e06ea51cb72c52fb87e9b395cced02786610b60a3ed51da8af017170/propcache-0.3.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:74413c0ba02ba86f55cf60d18daab219f7e531620c15f1e23d95563f505efe7e", size = 44701, upload-time = "2025-06-09T22:55:20.106Z" },
|
{ url = "https://files.pythonhosted.org/packages/87/9a/87091ceb048efeba4d28e903c0b15bcc84b7c0bf27dc0261e62335d9b7b8/propcache-0.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f011f104db880f4e2166bcdcf7f58250f7a465bc6b068dc84c824a3d4a5c94dc", size = 47175, upload-time = "2025-03-26T03:05:19.85Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/a4/00/faa1b1b7c3b74fc277f8642f32a4c72ba1d7b2de36d7cdfb676db7f4303e/propcache-0.3.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f066b437bb3fa39c58ff97ab2ca351db465157d68ed0440abecb21715eb24b28", size = 276934, upload-time = "2025-06-09T22:55:21.5Z" },
|
{ url = "https://files.pythonhosted.org/packages/3e/2f/854e653c96ad1161f96194c6678a41bbb38c7947d17768e8811a77635a08/propcache-0.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e584b6d388aeb0001d6d5c2bd86b26304adde6d9bb9bfa9c4889805021b96de", size = 292265, upload-time = "2025-03-26T03:05:21.654Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/74/ab/935beb6f1756e0476a4d5938ff44bf0d13a055fed880caf93859b4f1baf4/propcache-0.3.2-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1304b085c83067914721e7e9d9917d41ad87696bf70f0bc7dee450e9c71ad0a", size = 278316, upload-time = "2025-06-09T22:55:22.918Z" },
|
{ url = "https://files.pythonhosted.org/packages/40/8d/090955e13ed06bc3496ba4a9fb26c62e209ac41973cb0d6222de20c6868f/propcache-0.3.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a17583515a04358b034e241f952f1715243482fc2c2945fd99a1b03a0bd77d6", size = 294412, upload-time = "2025-03-26T03:05:23.147Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/f8/9d/994a5c1ce4389610838d1caec74bdf0e98b306c70314d46dbe4fcf21a3e2/propcache-0.3.2-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ab50cef01b372763a13333b4e54021bdcb291fc9a8e2ccb9c2df98be51bcde6c", size = 282619, upload-time = "2025-06-09T22:55:24.651Z" },
|
{ url = "https://files.pythonhosted.org/packages/39/e6/d51601342e53cc7582449e6a3c14a0479fab2f0750c1f4d22302e34219c6/propcache-0.3.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5aed8d8308215089c0734a2af4f2e95eeb360660184ad3912686c181e500b2e7", size = 294290, upload-time = "2025-03-26T03:05:24.577Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/2b/00/a10afce3d1ed0287cef2e09506d3be9822513f2c1e96457ee369adb9a6cd/propcache-0.3.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fad3b2a085ec259ad2c2842666b2a0a49dea8463579c606426128925af1ed725", size = 265896, upload-time = "2025-06-09T22:55:26.049Z" },
|
{ url = "https://files.pythonhosted.org/packages/3b/4d/be5f1a90abc1881884aa5878989a1acdafd379a91d9c7e5e12cef37ec0d7/propcache-0.3.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d8e309ff9a0503ef70dc9a0ebd3e69cf7b3894c9ae2ae81fc10943c37762458", size = 282926, upload-time = "2025-03-26T03:05:26.459Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/2e/a8/2aa6716ffa566ca57c749edb909ad27884680887d68517e4be41b02299f3/propcache-0.3.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:261fa020c1c14deafd54c76b014956e2f86991af198c51139faf41c4d5e83892", size = 252111, upload-time = "2025-06-09T22:55:27.381Z" },
|
{ url = "https://files.pythonhosted.org/packages/57/2b/8f61b998c7ea93a2b7eca79e53f3e903db1787fca9373af9e2cf8dc22f9d/propcache-0.3.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b655032b202028a582d27aeedc2e813299f82cb232f969f87a4fde491a233f11", size = 267808, upload-time = "2025-03-26T03:05:28.188Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/36/4f/345ca9183b85ac29c8694b0941f7484bf419c7f0fea2d1e386b4f7893eed/propcache-0.3.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:46d7f8aa79c927e5f987ee3a80205c987717d3659f035c85cf0c3680526bdb44", size = 268334, upload-time = "2025-06-09T22:55:28.747Z" },
|
{ url = "https://files.pythonhosted.org/packages/11/1c/311326c3dfce59c58a6098388ba984b0e5fb0381ef2279ec458ef99bd547/propcache-0.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9f64d91b751df77931336b5ff7bafbe8845c5770b06630e27acd5dbb71e1931c", size = 290916, upload-time = "2025-03-26T03:05:29.757Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/3e/ca/fcd54f78b59e3f97b3b9715501e3147f5340167733d27db423aa321e7148/propcache-0.3.2-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:6d8f3f0eebf73e3c0ff0e7853f68be638b4043c65a70517bb575eff54edd8dbe", size = 255026, upload-time = "2025-06-09T22:55:30.184Z" },
|
{ url = "https://files.pythonhosted.org/packages/4b/74/91939924b0385e54dc48eb2e4edd1e4903ffd053cf1916ebc5347ac227f7/propcache-0.3.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:19a06db789a4bd896ee91ebc50d059e23b3639c25d58eb35be3ca1cbe967c3bf", size = 262661, upload-time = "2025-03-26T03:05:31.472Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/8b/95/8e6a6bbbd78ac89c30c225210a5c687790e532ba4088afb8c0445b77ef37/propcache-0.3.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:03c89c1b14a5452cf15403e291c0ccd7751d5b9736ecb2c5bab977ad6c5bcd81", size = 250724, upload-time = "2025-06-09T22:55:31.646Z" },
|
{ url = "https://files.pythonhosted.org/packages/c2/d7/e6079af45136ad325c5337f5dd9ef97ab5dc349e0ff362fe5c5db95e2454/propcache-0.3.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:bef100c88d8692864651b5f98e871fb090bd65c8a41a1cb0ff2322db39c96c27", size = 264384, upload-time = "2025-03-26T03:05:32.984Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/ee/b0/0dd03616142baba28e8b2d14ce5df6631b4673850a3d4f9c0f9dd714a404/propcache-0.3.2-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:0cc17efde71e12bbaad086d679ce575268d70bc123a5a71ea7ad76f70ba30bba", size = 268868, upload-time = "2025-06-09T22:55:33.209Z" },
|
{ url = "https://files.pythonhosted.org/packages/b7/d5/ba91702207ac61ae6f1c2da81c5d0d6bf6ce89e08a2b4d44e411c0bbe867/propcache-0.3.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:87380fb1f3089d2a0b8b00f006ed12bd41bd858fabfa7330c954c70f50ed8757", size = 291420, upload-time = "2025-03-26T03:05:34.496Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/c5/98/2c12407a7e4fbacd94ddd32f3b1e3d5231e77c30ef7162b12a60e2dd5ce3/propcache-0.3.2-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:acdf05d00696bc0447e278bb53cb04ca72354e562cf88ea6f9107df8e7fd9770", size = 271322, upload-time = "2025-06-09T22:55:35.065Z" },
|
{ url = "https://files.pythonhosted.org/packages/58/70/2117780ed7edcd7ba6b8134cb7802aada90b894a9810ec56b7bb6018bee7/propcache-0.3.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e474fc718e73ba5ec5180358aa07f6aded0ff5f2abe700e3115c37d75c947e18", size = 290880, upload-time = "2025-03-26T03:05:36.256Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/35/91/9cb56efbb428b006bb85db28591e40b7736847b8331d43fe335acf95f6c8/propcache-0.3.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4445542398bd0b5d32df908031cb1b30d43ac848e20470a878b770ec2dcc6330", size = 265778, upload-time = "2025-06-09T22:55:36.45Z" },
|
{ url = "https://files.pythonhosted.org/packages/4a/1f/ecd9ce27710021ae623631c0146719280a929d895a095f6d85efb6a0be2e/propcache-0.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:17d1c688a443355234f3c031349da69444be052613483f3e4158eef751abcd8a", size = 287407, upload-time = "2025-03-26T03:05:37.799Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/9a/4c/b0fe775a2bdd01e176b14b574be679d84fc83958335790f7c9a686c1f468/propcache-0.3.2-cp313-cp313t-win32.whl", hash = "sha256:f86e5d7cd03afb3a1db8e9f9f6eff15794e79e791350ac48a8c924e6f439f394", size = 41175, upload-time = "2025-06-09T22:55:38.436Z" },
|
{ url = "https://files.pythonhosted.org/packages/3e/66/2e90547d6b60180fb29e23dc87bd8c116517d4255240ec6d3f7dc23d1926/propcache-0.3.1-cp313-cp313t-win32.whl", hash = "sha256:359e81a949a7619802eb601d66d37072b79b79c2505e6d3fd8b945538411400d", size = 42573, upload-time = "2025-03-26T03:05:39.193Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/a4/ff/47f08595e3d9b5e149c150f88d9714574f1a7cbd89fe2817158a952674bf/propcache-0.3.2-cp313-cp313t-win_amd64.whl", hash = "sha256:9704bedf6e7cbe3c65eca4379a9b53ee6a83749f047808cbb5044d40d7d72198", size = 44857, upload-time = "2025-06-09T22:55:39.687Z" },
|
{ url = "https://files.pythonhosted.org/packages/cb/8f/50ad8599399d1861b4d2b6b45271f0ef6af1b09b0a2386a46dbaf19c9535/propcache-0.3.1-cp313-cp313t-win_amd64.whl", hash = "sha256:e7fb9a84c9abbf2b2683fa3e7b0d7da4d8ecf139a1c635732a8bda29c5214b0e", size = 46757, upload-time = "2025-03-26T03:05:40.811Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/cc/35/cc0aaecf278bb4575b8555f2b137de5ab821595ddae9da9d3cd1da4072c7/propcache-0.3.2-py3-none-any.whl", hash = "sha256:98f1ec44fb675f5052cccc8e609c46ed23a35a1cfd18545ad4e29002d858a43f", size = 12663, upload-time = "2025-06-09T22:56:04.484Z" },
|
{ url = "https://files.pythonhosted.org/packages/b8/d3/c3cb8f1d6ae3b37f83e1de806713a9b3642c5895f0215a62e1a4bd6e5e34/propcache-0.3.1-py3-none-any.whl", hash = "sha256:9a8ecf38de50a7f518c21568c80f985e776397b902f1ce0b01f799aba1608b40", size = 12376, upload-time = "2025-03-26T03:06:10.5Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2720,22 +2693,16 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "python-kadmin-rs"
|
name = "python-kadmin-rs"
|
||||||
version = "0.6.1"
|
version = "0.6.0"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/14/64/05942061f851c0973ce351dfa7a6358fe14e7622527ecc883ce2eccd3177/python_kadmin_rs-0.6.1.tar.gz", hash = "sha256:0fdcf5310504eeb51a8a82d89313a88ef7f7141a596a6cf609d82eed425f21f4", size = 89030, upload-time = "2025-06-18T13:24:55.839Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/b9/ac/df3a093b1e186cd68a6f38778fac025450e5c5e9859c4790e00c2ed0ff62/python_kadmin_rs-0.6.0.tar.gz", hash = "sha256:dadd3d4ef542b829c1dcde97360a6b6a10700a4b5686f12f24b10f6cf5ca6e6c", size = 89318, upload-time = "2025-04-02T11:34:29.135Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/e4/e3/109e5aa8176c70946836d6ec68b9397f97222adc8d2537f4ff8570a951db/python_kadmin_rs-0.6.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:96156b83e6843c773f289d3de1316d42581bb473ff21c22e06c44cb927075ef2", size = 1415305, upload-time = "2025-06-18T13:24:05.359Z" },
|
{ url = "https://files.pythonhosted.org/packages/de/4e/7927335e4d2d68c28737699e18b26cedeb4e039820eeb00b64b4666e4162/python_kadmin_rs-0.6.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:f2ac9f8f1f949518e1977a62bc36f330824233bdf7dd77412b36a38b2c3f7d47", size = 1416520, upload-time = "2025-04-02T11:33:59.653Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/9c/43/fca43da7ddf6a3d7332edacfe18e1a27dc86d26f5fd915ab1b96eb6d460b/python_kadmin_rs-0.6.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:2d157a8457c7d29753da1e7028c614f0eeef3593cd4a21d2c48730d8820e1096", size = 1498856, upload-time = "2025-06-18T13:24:07.783Z" },
|
{ url = "https://files.pythonhosted.org/packages/7a/9f/6baaccfdf5aca9349c54d5703f7c174facde02b7803bc89689584059c751/python_kadmin_rs-0.6.0-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:76c070607d6d4b08a289239bfb61ebe1bc44c1937c7622fc3c774d413e8c342f", size = 1500277, upload-time = "2025-04-02T11:34:00.981Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/24/a8/c85618d37d09daf36ce54c8a4f576f9d3308e7a584f8bbc6d80733add4bb/python_kadmin_rs-0.6.1-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:c6d066a932ad15236cc3c41cf07ab3a5055298431b98ea4f63070ffe93715bfd", size = 3264793, upload-time = "2025-06-18T13:24:09.373Z" },
|
{ url = "https://files.pythonhosted.org/packages/fd/2a/4e5e6db8a650292cef2693914c4eea68c68b7daebef6be2db74d50efe844/python_kadmin_rs-0.6.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:b25cff1950d480e60355b5faf563c1e27bd1a17b637c98c3e3c69c972c3dc0c3", size = 3261872, upload-time = "2025-04-02T11:34:02.922Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/90/53/d8734d7c2adec3f17ac6dd5837e2bc23dfd627d693141ee9a6f85151c1c8/python_kadmin_rs-0.6.1-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:3737c556c1295959e54d24ab5e7b6140c1136dda0505937ecbb10ddb93e07cdd", size = 3379183, upload-time = "2025-06-18T13:24:10.877Z" },
|
{ url = "https://files.pythonhosted.org/packages/b3/36/4fcc65a95a7de4d26f137ce0595aa1d56ed1f14c8d915f80ba09f37114d2/python_kadmin_rs-0.6.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:dd9a2c84244ea7eb98f12cd265ee71cbd61c5005b7ebcb05db4fef558cd0a995", size = 3381153, upload-time = "2025-04-02T11:34:04.736Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/0c/0a/45fb5dc7eb6e3550181ac94a1ed9a75936b7059641e5ace67cf2db2033f1/python_kadmin_rs-0.6.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:aa3e0e576354b1e56633488f919faa3196281eca404651fc7944538ae5cf8f0b", size = 1574931, upload-time = "2025-06-18T13:24:12.76Z" },
|
{ url = "https://files.pythonhosted.org/packages/da/77/20fb535c62e5fd04a6131e61aaf9dedf386e090818f27ebdadd5b30ac5fe/python_kadmin_rs-0.6.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:69afa56e9982a314630dbffed19fb16ae8114a0618cd931f4fbd9079e10c2e0d", size = 1571223, upload-time = "2025-04-02T11:34:06.244Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/eb/7a/e4eb9e90ba3ffed8e1e897bde5da03a335a66c470ffc916242bbd7adb6a5/python_kadmin_rs-0.6.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2b17cd39f612c390aa054a3c97a9de6d574f7a418720605c904a6b56280e4410", size = 1615466, upload-time = "2025-06-18T13:24:15.924Z" },
|
{ url = "https://files.pythonhosted.org/packages/20/44/70f24d3cac3f5d13b2fbe24542a732e3f529e564615bb3656665eb7b78e4/python_kadmin_rs-0.6.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:80e3e0093dffe98f759b74ef25f6cdd8ab7b109f2af0f158572705ad31bb8699", size = 1617374, upload-time = "2025-04-02T11:34:07.595Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/8a/0d/01ab59a52819514134a051861ab9639efa63ac1435aae07a7b29cebd7000/python_kadmin_rs-0.6.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:c4d4b54c23dd0e5a0bd2e7c84a2656556a89d5afda7e9573f36cfd805c22b2c2", size = 1409256, upload-time = "2025-06-18T13:24:17.34Z" },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/b9/29/d83fde4e4920b2f78325d52622b2ca7e5efcfb393a0bfa3bb2ca48288769/python_kadmin_rs-0.6.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:c9c6ec440f3cba8be671b1db27e328b39ca7e0ed4e9b254596728702b291b086", size = 1496843, upload-time = "2025-06-18T13:24:19.041Z" },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/85/13/e75f869aba9571b75a8c132a3be3cf035097f7fbafbc6407ed993a3c21d3/python_kadmin_rs-0.6.1-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:6431f702218c438818e288c84cf00b972453c9ca2d745e8dbd5bf2a27fa5440d", size = 3257239, upload-time = "2025-06-18T13:24:21.069Z" },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/31/db/6c182e645e8d138340933901ad30fc8fac5191956822bbfafb00e93fd27f/python_kadmin_rs-0.6.1-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:75544db4642771af04ff4888fe89448b9004ae11eaa7274394c46862a599be13", size = 3376292, upload-time = "2025-06-18T13:24:23.024Z" },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/b7/b0/96a27cd7c6fc3ff0c2723d6659c49198815eeab2da3885ef923ea346e571/python_kadmin_rs-0.6.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:f4c2876bf8e598466752fda9d79ef3719ce6b3936ba322004280601fea64d99c", size = 1567502, upload-time = "2025-06-18T13:24:24.539Z" },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/d7/96/e396b927ce6ccaa4b385b9b54440c133406a3ac070ce6a8a0786d8ba0308/python_kadmin_rs-0.6.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:b271f5849548a7c248309fa30e4ee90465d6838aad11557fd208ba54da10a072", size = 1612724, upload-time = "2025-06-18T13:24:26.359Z" },
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2798,7 +2765,7 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "requests"
|
name = "requests"
|
||||||
version = "2.32.4"
|
version = "2.32.3"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "certifi" },
|
{ name = "certifi" },
|
||||||
@ -2806,9 +2773,9 @@ dependencies = [
|
|||||||
{ name = "idna" },
|
{ name = "idna" },
|
||||||
{ name = "urllib3" },
|
{ name = "urllib3" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/e1/0a/929373653770d8a0d7ea76c37de6e41f11eb07559b103b1c02cafb3f7cf8/requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422", size = 135258, upload-time = "2025-06-09T16:43:07.34Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", size = 131218, upload-time = "2024-05-29T15:37:49.536Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/7c/e4/56027c4a6b4ae70ca9de302488c5ca95ad4a39e190093d6c1a8ace08341b/requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c", size = 64847, upload-time = "2025-06-09T16:43:05.728Z" },
|
{ url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928, upload-time = "2024-05-29T15:37:47.027Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -3135,21 +3102,20 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tornado"
|
name = "tornado"
|
||||||
version = "6.5.1"
|
version = "6.4.2"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/51/89/c72771c81d25d53fe33e3dca61c233b665b2780f21820ba6fd2c6793c12b/tornado-6.5.1.tar.gz", hash = "sha256:84ceece391e8eb9b2b95578db65e920d2a61070260594819589609ba9bc6308c", size = 509934, upload-time = "2025-05-22T18:15:38.788Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/59/45/a0daf161f7d6f36c3ea5fc0c2de619746cc3dd4c76402e9db545bd920f63/tornado-6.4.2.tar.gz", hash = "sha256:92bad5b4746e9879fd7bf1eb21dce4e3fc5128d71601f80005afa39237ad620b", size = 501135, upload-time = "2024-11-22T03:06:38.036Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/77/89/f4532dee6843c9e0ebc4e28d4be04c67f54f60813e4bf73d595fe7567452/tornado-6.5.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:d50065ba7fd11d3bd41bcad0825227cc9a95154bad83239357094c36708001f7", size = 441948, upload-time = "2025-05-22T18:15:20.862Z" },
|
{ url = "https://files.pythonhosted.org/packages/26/7e/71f604d8cea1b58f82ba3590290b66da1e72d840aeb37e0d5f7291bd30db/tornado-6.4.2-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e828cce1123e9e44ae2a50a9de3055497ab1d0aeb440c5ac23064d9e44880da1", size = 436299, upload-time = "2024-11-22T03:06:20.162Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/15/9a/557406b62cffa395d18772e0cdcf03bed2fff03b374677348eef9f6a3792/tornado-6.5.1-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:9e9ca370f717997cb85606d074b0e5b247282cf5e2e1611568b8821afe0342d6", size = 440112, upload-time = "2025-05-22T18:15:22.591Z" },
|
{ url = "https://files.pythonhosted.org/packages/96/44/87543a3b99016d0bf54fdaab30d24bf0af2e848f1d13d34a3a5380aabe16/tornado-6.4.2-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:072ce12ada169c5b00b7d92a99ba089447ccc993ea2143c9ede887e0937aa803", size = 434253, upload-time = "2024-11-22T03:06:22.39Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/55/82/7721b7319013a3cf881f4dffa4f60ceff07b31b394e459984e7a36dc99ec/tornado-6.5.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b77e9dfa7ed69754a54c89d82ef746398be82f749df69c4d3abe75c4d1ff4888", size = 443672, upload-time = "2025-05-22T18:15:24.027Z" },
|
{ url = "https://files.pythonhosted.org/packages/cb/fb/fdf679b4ce51bcb7210801ef4f11fdac96e9885daa402861751353beea6e/tornado-6.4.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a017d239bd1bb0919f72af256a970624241f070496635784d9bf0db640d3fec", size = 437602, upload-time = "2024-11-22T03:06:24.214Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/7d/42/d11c4376e7d101171b94e03cef0cbce43e823ed6567ceda571f54cf6e3ce/tornado-6.5.1-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:253b76040ee3bab8bcf7ba9feb136436a3787208717a1fb9f2c16b744fba7331", size = 443019, upload-time = "2025-05-22T18:15:25.735Z" },
|
{ url = "https://files.pythonhosted.org/packages/4f/3b/e31aeffffc22b475a64dbeb273026a21b5b566f74dee48742817626c47dc/tornado-6.4.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c36e62ce8f63409301537222faffcef7dfc5284f27eec227389f2ad11b09d946", size = 436972, upload-time = "2024-11-22T03:06:25.559Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/7d/f7/0c48ba992d875521ac761e6e04b0a1750f8150ae42ea26df1852d6a98942/tornado-6.5.1-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:308473f4cc5a76227157cdf904de33ac268af770b2c5f05ca6c1161d82fdd95e", size = 443252, upload-time = "2025-05-22T18:15:27.499Z" },
|
{ url = "https://files.pythonhosted.org/packages/22/55/b78a464de78051a30599ceb6983b01d8f732e6f69bf37b4ed07f642ac0fc/tornado-6.4.2-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bca9eb02196e789c9cb5c3c7c0f04fb447dc2adffd95265b2c7223a8a615ccbf", size = 437173, upload-time = "2024-11-22T03:06:27.584Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/89/46/d8d7413d11987e316df4ad42e16023cd62666a3c0dfa1518ffa30b8df06c/tornado-6.5.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:caec6314ce8a81cf69bd89909f4b633b9f523834dc1a352021775d45e51d9401", size = 443930, upload-time = "2025-05-22T18:15:29.299Z" },
|
{ url = "https://files.pythonhosted.org/packages/79/5e/be4fb0d1684eb822c9a62fb18a3e44a06188f78aa466b2ad991d2ee31104/tornado-6.4.2-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:304463bd0772442ff4d0f5149c6f1c2135a1fae045adf070821c6cdc76980634", size = 437892, upload-time = "2024-11-22T03:06:28.933Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/78/b2/f8049221c96a06df89bed68260e8ca94beca5ea532ffc63b1175ad31f9cc/tornado-6.5.1-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:13ce6e3396c24e2808774741331638ee6c2f50b114b97a55c5b442df65fd9692", size = 443351, upload-time = "2025-05-22T18:15:31.038Z" },
|
{ url = "https://files.pythonhosted.org/packages/f5/33/4f91fdd94ea36e1d796147003b490fe60a0215ac5737b6f9c65e160d4fe0/tornado-6.4.2-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:c82c46813ba483a385ab2a99caeaedf92585a1f90defb5693351fa7e4ea0bf73", size = 437334, upload-time = "2024-11-22T03:06:30.428Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/76/ff/6a0079e65b326cc222a54720a748e04a4db246870c4da54ece4577bfa702/tornado-6.5.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:5cae6145f4cdf5ab24744526cc0f55a17d76f02c98f4cff9daa08ae9a217448a", size = 443328, upload-time = "2025-05-22T18:15:32.426Z" },
|
{ url = "https://files.pythonhosted.org/packages/2b/ae/c1b22d4524b0e10da2f29a176fb2890386f7bd1f63aacf186444873a88a0/tornado-6.4.2-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:932d195ca9015956fa502c6b56af9eb06106140d844a335590c1ec7f5277d10c", size = 437261, upload-time = "2024-11-22T03:06:32.458Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/49/18/e3f902a1d21f14035b5bc6246a8c0f51e0eef562ace3a2cea403c1fb7021/tornado-6.5.1-cp39-abi3-win32.whl", hash = "sha256:e0a36e1bc684dca10b1aa75a31df8bdfed656831489bc1e6a6ebed05dc1ec365", size = 444396, upload-time = "2025-05-22T18:15:34.205Z" },
|
{ url = "https://files.pythonhosted.org/packages/b5/25/36dbd49ab6d179bcfc4c6c093a51795a4f3bed380543a8242ac3517a1751/tornado-6.4.2-cp38-abi3-win32.whl", hash = "sha256:2876cef82e6c5978fde1e0d5b1f919d756968d5b4282418f3146b79b58556482", size = 438463, upload-time = "2024-11-22T03:06:34.71Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/7b/09/6526e32bf1049ee7de3bebba81572673b19a2a8541f795d887e92af1a8bc/tornado-6.5.1-cp39-abi3-win_amd64.whl", hash = "sha256:908e7d64567cecd4c2b458075589a775063453aeb1d2a1853eedb806922f568b", size = 444840, upload-time = "2025-05-22T18:15:36.1Z" },
|
{ url = "https://files.pythonhosted.org/packages/61/cc/58b1adeb1bb46228442081e746fcdbc4540905c87e8add7c277540934edb/tornado-6.4.2-cp38-abi3-win_amd64.whl", hash = "sha256:908b71bf3ff37d81073356a5fadcc660eb10c1476ee6e2725588626ce7e5ca38", size = 438907, upload-time = "2024-11-22T03:06:36.71Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/55/a7/535c44c7bea4578e48281d83c615219f3ab19e6abc67625ef637c73987be/tornado-6.5.1-cp39-abi3-win_arm64.whl", hash = "sha256:02420a0eb7bf617257b9935e2b754d1b63897525d8a289c9d65690d580b4dcf7", size = 443596, upload-time = "2025-05-22T18:15:37.433Z" },
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -3200,7 +3166,7 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "twisted"
|
name = "twisted"
|
||||||
version = "25.5.0"
|
version = "24.11.0"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "attrs" },
|
{ name = "attrs" },
|
||||||
@ -3211,9 +3177,9 @@ dependencies = [
|
|||||||
{ name = "typing-extensions" },
|
{ name = "typing-extensions" },
|
||||||
{ name = "zope-interface" },
|
{ name = "zope-interface" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/13/0f/82716ed849bf7ea4984c21385597c949944f0f9b428b5710f79d0afc084d/twisted-25.5.0.tar.gz", hash = "sha256:1deb272358cb6be1e3e8fc6f9c8b36f78eb0fa7c2233d2dbe11ec6fee04ea316", size = 3545725, upload-time = "2025-06-07T09:52:24.858Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/77/1c/e07af0df31229250ab58a943077e4adbd5e227d9f2ac826920416b3e5fa2/twisted-24.11.0.tar.gz", hash = "sha256:695d0556d5ec579dcc464d2856b634880ed1319f45b10d19043f2b57eb0115b5", size = 3526722, upload-time = "2024-12-02T09:53:23.767Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/eb/66/ab7efd8941f0bc7b2bd555b0f0471bff77df4c88e0cc31120c82737fec77/twisted-25.5.0-py3-none-any.whl", hash = "sha256:8559f654d01a54a8c3efe66d533d43f383531ebf8d81d9f9ab4769d91ca15df7", size = 3204767, upload-time = "2025-06-07T09:52:21.428Z" },
|
{ url = "https://files.pythonhosted.org/packages/70/53/a50654eb9c63da0df2b5dca8ec27656a88b7edd798de5ffad55353203874/twisted-24.11.0-py3-none-any.whl", hash = "sha256:fe403076c71f04d5d2d789a755b687c5637ec3bcd3b2b8252d76f2ba65f54261", size = 3188667, upload-time = "2024-12-02T09:53:21.131Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.optional-dependencies]
|
[package.optional-dependencies]
|
||||||
@ -3311,11 +3277,11 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "urllib3"
|
name = "urllib3"
|
||||||
version = "2.5.0"
|
version = "2.4.0"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760", size = 393185, upload-time = "2025-06-18T14:07:41.644Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/8a/78/16493d9c386d8e60e442a35feac5e00f0913c0f4b7c217c11e8ec2ff53e0/urllib3-2.4.0.tar.gz", hash = "sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466", size = 390672, upload-time = "2025-04-10T15:23:39.232Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc", size = 129795, upload-time = "2025-06-18T14:07:40.39Z" },
|
{ url = "https://files.pythonhosted.org/packages/6b/11/cc635220681e93a0183390e26485430ca2c7b5f9d33b15c74c2861cb8091/urllib3-2.4.0-py3-none-any.whl", hash = "sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813", size = 128680, upload-time = "2025-04-10T15:23:37.377Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.optional-dependencies]
|
[package.optional-dependencies]
|
||||||
@ -3393,36 +3359,25 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "watchfiles"
|
name = "watchfiles"
|
||||||
version = "1.1.0"
|
version = "1.0.5"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "anyio" },
|
{ name = "anyio" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/2a/9a/d451fcc97d029f5812e898fd30a53fd8c15c7bbd058fd75cfc6beb9bd761/watchfiles-1.1.0.tar.gz", hash = "sha256:693ed7ec72cbfcee399e92c895362b6e66d63dac6b91e2c11ae03d10d503e575", size = 94406, upload-time = "2025-06-15T19:06:59.42Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/03/e2/8ed598c42057de7aa5d97c472254af4906ff0a59a66699d426fc9ef795d7/watchfiles-1.0.5.tar.gz", hash = "sha256:b7529b5dcc114679d43827d8c35a07c493ad6f083633d573d81c660abc5979e9", size = 94537, upload-time = "2025-04-08T10:36:26.722Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/d3/42/fae874df96595556a9089ade83be34a2e04f0f11eb53a8dbf8a8a5e562b4/watchfiles-1.1.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:5007f860c7f1f8df471e4e04aaa8c43673429047d63205d1630880f7637bca30", size = 402004, upload-time = "2025-06-15T19:05:38.499Z" },
|
{ url = "https://files.pythonhosted.org/packages/c7/62/435766874b704f39b2fecd8395a29042db2b5ec4005bd34523415e9bd2e0/watchfiles-1.0.5-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:0b289572c33a0deae62daa57e44a25b99b783e5f7aed81b314232b3d3c81a11d", size = 401531, upload-time = "2025-04-08T10:35:35.792Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/fa/55/a77e533e59c3003d9803c09c44c3651224067cbe7fb5d574ddbaa31e11ca/watchfiles-1.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:20ecc8abbd957046f1fe9562757903f5eaf57c3bce70929fda6c7711bb58074a", size = 393671, upload-time = "2025-06-15T19:05:39.52Z" },
|
{ url = "https://files.pythonhosted.org/packages/6e/a6/e52a02c05411b9cb02823e6797ef9bbba0bfaf1bb627da1634d44d8af833/watchfiles-1.0.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a056c2f692d65bf1e99c41045e3bdcaea3cb9e6b5a53dcaf60a5f3bd95fc9763", size = 392417, upload-time = "2025-04-08T10:35:37.048Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/05/68/b0afb3f79c8e832e6571022611adbdc36e35a44e14f129ba09709aa4bb7a/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2f0498b7d2a3c072766dba3274fe22a183dbea1f99d188f1c6c72209a1063dc", size = 449772, upload-time = "2025-06-15T19:05:40.897Z" },
|
{ url = "https://files.pythonhosted.org/packages/3f/53/c4af6819770455932144e0109d4854437769672d7ad897e76e8e1673435d/watchfiles-1.0.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9dca99744991fc9850d18015c4f0438865414e50069670f5f7eee08340d8b40", size = 453423, upload-time = "2025-04-08T10:35:38.357Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/ff/05/46dd1f6879bc40e1e74c6c39a1b9ab9e790bf1f5a2fe6c08b463d9a807f4/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:239736577e848678e13b201bba14e89718f5c2133dfd6b1f7846fa1b58a8532b", size = 456789, upload-time = "2025-06-15T19:05:42.045Z" },
|
{ url = "https://files.pythonhosted.org/packages/cb/d1/8e88df58bbbf819b8bc5cfbacd3c79e01b40261cad0fc84d1e1ebd778a07/watchfiles-1.0.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:894342d61d355446d02cd3988a7326af344143eb33a2fd5d38482a92072d9563", size = 458185, upload-time = "2025-04-08T10:35:39.708Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/8b/ca/0eeb2c06227ca7f12e50a47a3679df0cd1ba487ea19cf844a905920f8e95/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eff4b8d89f444f7e49136dc695599a591ff769300734446c0a86cba2eb2f9895", size = 482551, upload-time = "2025-06-15T19:05:43.781Z" },
|
{ url = "https://files.pythonhosted.org/packages/ff/70/fffaa11962dd5429e47e478a18736d4e42bec42404f5ee3b92ef1b87ad60/watchfiles-1.0.5-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ab44e1580924d1ffd7b3938e02716d5ad190441965138b4aa1d1f31ea0877f04", size = 486696, upload-time = "2025-04-08T10:35:41.469Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/31/47/2cecbd8694095647406645f822781008cc524320466ea393f55fe70eed3b/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12b0a02a91762c08f7264e2e79542f76870c3040bbc847fb67410ab81474932a", size = 597420, upload-time = "2025-06-15T19:05:45.244Z" },
|
{ url = "https://files.pythonhosted.org/packages/39/db/723c0328e8b3692d53eb273797d9a08be6ffb1d16f1c0ba2bdbdc2a3852c/watchfiles-1.0.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d6f9367b132078b2ceb8d066ff6c93a970a18c3029cea37bfd7b2d3dd2e5db8f", size = 522327, upload-time = "2025-04-08T10:35:43.289Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/d9/7e/82abc4240e0806846548559d70f0b1a6dfdca75c1b4f9fa62b504ae9b083/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:29e7bc2eee15cbb339c68445959108803dc14ee0c7b4eea556400131a8de462b", size = 477950, upload-time = "2025-06-15T19:05:46.332Z" },
|
{ url = "https://files.pythonhosted.org/packages/cd/05/9fccc43c50c39a76b68343484b9da7b12d42d0859c37c61aec018c967a32/watchfiles-1.0.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2e55a9b162e06e3f862fb61e399fe9f05d908d019d87bf5b496a04ef18a970a", size = 499741, upload-time = "2025-04-08T10:35:44.574Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/25/0d/4d564798a49bf5482a4fa9416dea6b6c0733a3b5700cb8a5a503c4b15853/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9481174d3ed982e269c090f780122fb59cee6c3796f74efe74e70f7780ed94c", size = 451706, upload-time = "2025-06-15T19:05:47.459Z" },
|
{ url = "https://files.pythonhosted.org/packages/23/14/499e90c37fa518976782b10a18b18db9f55ea73ca14641615056f8194bb3/watchfiles-1.0.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0125f91f70e0732a9f8ee01e49515c35d38ba48db507a50c5bdcad9503af5827", size = 453995, upload-time = "2025-04-08T10:35:46.336Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/81/b5/5516cf46b033192d544102ea07c65b6f770f10ed1d0a6d388f5d3874f6e4/watchfiles-1.1.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:80f811146831c8c86ab17b640801c25dc0a88c630e855e2bef3568f30434d52b", size = 625814, upload-time = "2025-06-15T19:05:48.654Z" },
|
{ url = "https://files.pythonhosted.org/packages/61/d9/f75d6840059320df5adecd2c687fbc18960a7f97b55c300d20f207d48aef/watchfiles-1.0.5-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:13bb21f8ba3248386337c9fa51c528868e6c34a707f729ab041c846d52a0c69a", size = 629693, upload-time = "2025-04-08T10:35:48.161Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/0c/dd/7c1331f902f30669ac3e754680b6edb9a0dd06dea5438e61128111fadd2c/watchfiles-1.1.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:60022527e71d1d1fda67a33150ee42869042bce3d0fcc9cc49be009a9cded3fb", size = 622820, upload-time = "2025-06-15T19:05:50.088Z" },
|
{ url = "https://files.pythonhosted.org/packages/fc/17/180ca383f5061b61406477218c55d66ec118e6c0c51f02d8142895fcf0a9/watchfiles-1.0.5-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:839ebd0df4a18c5b3c1b890145b5a3f5f64063c2a0d02b13c76d78fe5de34936", size = 624677, upload-time = "2025-04-08T10:35:49.65Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/1b/14/36d7a8e27cd128d7b1009e7715a7c02f6c131be9d4ce1e5c3b73d0e342d8/watchfiles-1.1.0-cp313-cp313-win32.whl", hash = "sha256:32d6d4e583593cb8576e129879ea0991660b935177c0f93c6681359b3654bfa9", size = 279194, upload-time = "2025-06-15T19:05:51.186Z" },
|
{ url = "https://files.pythonhosted.org/packages/bf/15/714d6ef307f803f236d69ee9d421763707899d6298d9f3183e55e366d9af/watchfiles-1.0.5-cp313-cp313-win32.whl", hash = "sha256:4a8ec1e4e16e2d5bafc9ba82f7aaecfeec990ca7cd27e84fb6f191804ed2fcfc", size = 277804, upload-time = "2025-04-08T10:35:51.093Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/25/41/2dd88054b849aa546dbeef5696019c58f8e0774f4d1c42123273304cdb2e/watchfiles-1.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:f21af781a4a6fbad54f03c598ab620e3a77032c5878f3d780448421a6e1818c7", size = 292349, upload-time = "2025-06-15T19:05:52.201Z" },
|
{ url = "https://files.pythonhosted.org/packages/a8/b4/c57b99518fadf431f3ef47a610839e46e5f8abf9814f969859d1c65c02c7/watchfiles-1.0.5-cp313-cp313-win_amd64.whl", hash = "sha256:f436601594f15bf406518af922a89dcaab416568edb6f65c4e5bbbad1ea45c11", size = 291087, upload-time = "2025-04-08T10:35:52.458Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/c8/cf/421d659de88285eb13941cf11a81f875c176f76a6d99342599be88e08d03/watchfiles-1.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:5366164391873ed76bfdf618818c82084c9db7fac82b64a20c44d335eec9ced5", size = 283836, upload-time = "2025-06-15T19:05:53.265Z" },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/45/10/6faf6858d527e3599cc50ec9fcae73590fbddc1420bd4fdccfebffeedbc6/watchfiles-1.1.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:17ab167cca6339c2b830b744eaf10803d2a5b6683be4d79d8475d88b4a8a4be1", size = 400343, upload-time = "2025-06-15T19:05:54.252Z" },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/03/20/5cb7d3966f5e8c718006d0e97dfe379a82f16fecd3caa7810f634412047a/watchfiles-1.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:328dbc9bff7205c215a7807da7c18dce37da7da718e798356212d22696404339", size = 392916, upload-time = "2025-06-15T19:05:55.264Z" },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/8c/07/d8f1176328fa9e9581b6f120b017e286d2a2d22ae3f554efd9515c8e1b49/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7208ab6e009c627b7557ce55c465c98967e8caa8b11833531fdf95799372633", size = 449582, upload-time = "2025-06-15T19:05:56.317Z" },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/66/e8/80a14a453cf6038e81d072a86c05276692a1826471fef91df7537dba8b46/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a8f6f72974a19efead54195bc9bed4d850fc047bb7aa971268fd9a8387c89011", size = 456752, upload-time = "2025-06-15T19:05:57.359Z" },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/5a/25/0853b3fe0e3c2f5af9ea60eb2e781eade939760239a72c2d38fc4cc335f6/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d181ef50923c29cf0450c3cd47e2f0557b62218c50b2ab8ce2ecaa02bd97e670", size = 481436, upload-time = "2025-06-15T19:05:58.447Z" },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/fe/9e/4af0056c258b861fbb29dcb36258de1e2b857be4a9509e6298abcf31e5c9/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:adb4167043d3a78280d5d05ce0ba22055c266cf8655ce942f2fb881262ff3cdf", size = 596016, upload-time = "2025-06-15T19:05:59.59Z" },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/c5/fa/95d604b58aa375e781daf350897aaaa089cff59d84147e9ccff2447c8294/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8c5701dc474b041e2934a26d31d39f90fac8a3dee2322b39f7729867f932b1d4", size = 476727, upload-time = "2025-06-15T19:06:01.086Z" },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/65/95/fe479b2664f19be4cf5ceeb21be05afd491d95f142e72d26a42f41b7c4f8/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b067915e3c3936966a8607f6fe5487df0c9c4afb85226613b520890049deea20", size = 451864, upload-time = "2025-06-15T19:06:02.144Z" },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/d3/8a/3c4af14b93a15ce55901cd7a92e1a4701910f1768c78fb30f61d2b79785b/watchfiles-1.1.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:9c733cda03b6d636b4219625a4acb5c6ffb10803338e437fb614fef9516825ef", size = 625626, upload-time = "2025-06-15T19:06:03.578Z" },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/da/f5/cf6aa047d4d9e128f4b7cde615236a915673775ef171ff85971d698f3c2c/watchfiles-1.1.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:cc08ef8b90d78bfac66f0def80240b0197008e4852c9f285907377b2947ffdcb", size = 622744, upload-time = "2025-06-15T19:06:05.066Z" },
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -3506,59 +3461,59 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "yarl"
|
name = "yarl"
|
||||||
version = "1.20.1"
|
version = "1.20.0"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "idna" },
|
{ name = "idna" },
|
||||||
{ name = "multidict" },
|
{ name = "multidict" },
|
||||||
{ name = "propcache" },
|
{ name = "propcache" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/3c/fb/efaa23fa4e45537b827620f04cf8f3cd658b76642205162e072703a5b963/yarl-1.20.1.tar.gz", hash = "sha256:d017a4997ee50c91fd5466cef416231bb82177b93b029906cefc542ce14c35ac", size = 186428, upload-time = "2025-06-10T00:46:09.923Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/62/51/c0edba5219027f6eab262e139f73e2417b0f4efffa23bf562f6e18f76ca5/yarl-1.20.0.tar.gz", hash = "sha256:686d51e51ee5dfe62dec86e4866ee0e9ed66df700d55c828a615640adc885307", size = 185258, upload-time = "2025-04-17T00:45:14.661Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/8a/e1/2411b6d7f769a07687acee88a062af5833cf1966b7266f3d8dfb3d3dc7d3/yarl-1.20.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0b5ff0fbb7c9f1b1b5ab53330acbfc5247893069e7716840c8e7d5bb7355038a", size = 131811, upload-time = "2025-06-10T00:44:18.933Z" },
|
{ url = "https://files.pythonhosted.org/packages/0f/6f/514c9bff2900c22a4f10e06297714dbaf98707143b37ff0bcba65a956221/yarl-1.20.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2137810a20b933b1b1b7e5cf06a64c3ed3b4747b0e5d79c9447c00db0e2f752f", size = 145030, upload-time = "2025-04-17T00:43:15.083Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/b2/27/584394e1cb76fb771371770eccad35de400e7b434ce3142c2dd27392c968/yarl-1.20.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:14f326acd845c2b2e2eb38fb1346c94f7f3b01a4f5c788f8144f9b630bfff9a3", size = 90078, upload-time = "2025-06-10T00:44:20.635Z" },
|
{ url = "https://files.pythonhosted.org/packages/4e/9d/f88da3fa319b8c9c813389bfb3463e8d777c62654c7168e580a13fadff05/yarl-1.20.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:447c5eadd750db8389804030d15f43d30435ed47af1313303ed82a62388176d3", size = 96894, upload-time = "2025-04-17T00:43:17.372Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/bf/9a/3246ae92d4049099f52d9b0fe3486e3b500e29b7ea872d0f152966fc209d/yarl-1.20.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f60e4ad5db23f0b96e49c018596707c3ae89f5d0bd97f0ad3684bcbad899f1e7", size = 88748, upload-time = "2025-06-10T00:44:22.34Z" },
|
{ url = "https://files.pythonhosted.org/packages/cd/57/92e83538580a6968b2451d6c89c5579938a7309d4785748e8ad42ddafdce/yarl-1.20.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:42fbe577272c203528d402eec8bf4b2d14fd49ecfec92272334270b850e9cd7d", size = 94457, upload-time = "2025-04-17T00:43:19.431Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/a3/25/35afe384e31115a1a801fbcf84012d7a066d89035befae7c5d4284df1e03/yarl-1.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:49bdd1b8e00ce57e68ba51916e4bb04461746e794e7c4d4bbc42ba2f18297691", size = 349595, upload-time = "2025-06-10T00:44:24.314Z" },
|
{ url = "https://files.pythonhosted.org/packages/e9/ee/7ee43bd4cf82dddd5da97fcaddb6fa541ab81f3ed564c42f146c83ae17ce/yarl-1.20.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18e321617de4ab170226cd15006a565d0fa0d908f11f724a2c9142d6b2812ab0", size = 343070, upload-time = "2025-04-17T00:43:21.426Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/28/2d/8aca6cb2cabc8f12efcb82749b9cefecbccfc7b0384e56cd71058ccee433/yarl-1.20.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:66252d780b45189975abfed839616e8fd2dbacbdc262105ad7742c6ae58f3e31", size = 342616, upload-time = "2025-06-10T00:44:26.167Z" },
|
{ url = "https://files.pythonhosted.org/packages/4a/12/b5eccd1109e2097bcc494ba7dc5de156e41cf8309fab437ebb7c2b296ce3/yarl-1.20.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4345f58719825bba29895011e8e3b545e6e00257abb984f9f27fe923afca2501", size = 337739, upload-time = "2025-04-17T00:43:23.634Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/0b/e9/1312633d16b31acf0098d30440ca855e3492d66623dafb8e25b03d00c3da/yarl-1.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59174e7332f5d153d8f7452a102b103e2e74035ad085f404df2e40e663a22b28", size = 361324, upload-time = "2025-06-10T00:44:27.915Z" },
|
{ url = "https://files.pythonhosted.org/packages/7d/6b/0eade8e49af9fc2585552f63c76fa59ef469c724cc05b29519b19aa3a6d5/yarl-1.20.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d9b980d7234614bc4674468ab173ed77d678349c860c3af83b1fffb6a837ddc", size = 351338, upload-time = "2025-04-17T00:43:25.695Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/bc/a0/688cc99463f12f7669eec7c8acc71ef56a1521b99eab7cd3abb75af887b0/yarl-1.20.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e3968ec7d92a0c0f9ac34d5ecfd03869ec0cab0697c91a45db3fbbd95fe1b653", size = 359676, upload-time = "2025-06-10T00:44:30.041Z" },
|
{ url = "https://files.pythonhosted.org/packages/45/cb/aaaa75d30087b5183c7b8a07b4fb16ae0682dd149a1719b3a28f54061754/yarl-1.20.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af4baa8a445977831cbaa91a9a84cc09debb10bc8391f128da2f7bd070fc351d", size = 353636, upload-time = "2025-04-17T00:43:27.876Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/af/44/46407d7f7a56e9a85a4c207724c9f2c545c060380718eea9088f222ba697/yarl-1.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1a4fbb50e14396ba3d375f68bfe02215d8e7bc3ec49da8341fe3157f59d2ff5", size = 352614, upload-time = "2025-06-10T00:44:32.171Z" },
|
{ url = "https://files.pythonhosted.org/packages/98/9d/d9cb39ec68a91ba6e66fa86d97003f58570327d6713833edf7ad6ce9dde5/yarl-1.20.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:123393db7420e71d6ce40d24885a9e65eb1edefc7a5228db2d62bcab3386a5c0", size = 348061, upload-time = "2025-04-17T00:43:29.788Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/b1/91/31163295e82b8d5485d31d9cf7754d973d41915cadce070491778d9c9825/yarl-1.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:11a62c839c3a8eac2410e951301309426f368388ff2f33799052787035793b02", size = 336766, upload-time = "2025-06-10T00:44:34.494Z" },
|
{ url = "https://files.pythonhosted.org/packages/72/6b/103940aae893d0cc770b4c36ce80e2ed86fcb863d48ea80a752b8bda9303/yarl-1.20.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ab47acc9332f3de1b39e9b702d9c916af7f02656b2a86a474d9db4e53ef8fd7a", size = 334150, upload-time = "2025-04-17T00:43:31.742Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/b4/8e/c41a5bc482121f51c083c4c2bcd16b9e01e1cf8729e380273a952513a21f/yarl-1.20.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:041eaa14f73ff5a8986b4388ac6bb43a77f2ea09bf1913df7a35d4646db69e53", size = 364615, upload-time = "2025-06-10T00:44:36.856Z" },
|
{ url = "https://files.pythonhosted.org/packages/ef/b2/986bd82aa222c3e6b211a69c9081ba46484cffa9fab2a5235e8d18ca7a27/yarl-1.20.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4a34c52ed158f89876cba9c600b2c964dfc1ca52ba7b3ab6deb722d1d8be6df2", size = 362207, upload-time = "2025-04-17T00:43:34.099Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/e3/5b/61a3b054238d33d70ea06ebba7e58597891b71c699e247df35cc984ab393/yarl-1.20.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:377fae2fef158e8fd9d60b4c8751387b8d1fb121d3d0b8e9b0be07d1b41e83dc", size = 360982, upload-time = "2025-06-10T00:44:39.141Z" },
|
{ url = "https://files.pythonhosted.org/packages/14/7c/63f5922437b873795d9422cbe7eb2509d4b540c37ae5548a4bb68fd2c546/yarl-1.20.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:04d8cfb12714158abf2618f792c77bc5c3d8c5f37353e79509608be4f18705c9", size = 361277, upload-time = "2025-04-17T00:43:36.202Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/df/a3/6a72fb83f8d478cb201d14927bc8040af901811a88e0ff2da7842dd0ed19/yarl-1.20.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1c92f4390e407513f619d49319023664643d3339bd5e5a56a3bebe01bc67ec04", size = 369792, upload-time = "2025-06-10T00:44:40.934Z" },
|
{ url = "https://files.pythonhosted.org/packages/81/83/450938cccf732466953406570bdb42c62b5ffb0ac7ac75a1f267773ab5c8/yarl-1.20.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:7dc63ad0d541c38b6ae2255aaa794434293964677d5c1ec5d0116b0e308031f5", size = 364990, upload-time = "2025-04-17T00:43:38.551Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/7c/af/4cc3c36dfc7c077f8dedb561eb21f69e1e9f2456b91b593882b0b18c19dc/yarl-1.20.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:d25ddcf954df1754ab0f86bb696af765c5bfaba39b74095f27eececa049ef9a4", size = 382049, upload-time = "2025-06-10T00:44:42.854Z" },
|
{ url = "https://files.pythonhosted.org/packages/b4/de/af47d3a47e4a833693b9ec8e87debb20f09d9fdc9139b207b09a3e6cbd5a/yarl-1.20.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d02b591a64e4e6ca18c5e3d925f11b559c763b950184a64cf47d74d7e41877", size = 374684, upload-time = "2025-04-17T00:43:40.481Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/19/3a/e54e2c4752160115183a66dc9ee75a153f81f3ab2ba4bf79c3c53b33de34/yarl-1.20.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:909313577e9619dcff8c31a0ea2aa0a2a828341d92673015456b3ae492e7317b", size = 384774, upload-time = "2025-06-10T00:44:45.275Z" },
|
{ url = "https://files.pythonhosted.org/packages/62/0b/078bcc2d539f1faffdc7d32cb29a2d7caa65f1a6f7e40795d8485db21851/yarl-1.20.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:95fc9876f917cac7f757df80a5dda9de59d423568460fe75d128c813b9af558e", size = 382599, upload-time = "2025-04-17T00:43:42.463Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/9c/20/200ae86dabfca89060ec6447649f219b4cbd94531e425e50d57e5f5ac330/yarl-1.20.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:793fd0580cb9664548c6b83c63b43c477212c0260891ddf86809e1c06c8b08f1", size = 374252, upload-time = "2025-06-10T00:44:47.31Z" },
|
{ url = "https://files.pythonhosted.org/packages/74/a9/4fdb1a7899f1fb47fd1371e7ba9e94bff73439ce87099d5dd26d285fffe0/yarl-1.20.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bb769ae5760cd1c6a712135ee7915f9d43f11d9ef769cb3f75a23e398a92d384", size = 378573, upload-time = "2025-04-17T00:43:44.797Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/83/75/11ee332f2f516b3d094e89448da73d557687f7d137d5a0f48c40ff211487/yarl-1.20.1-cp313-cp313-win32.whl", hash = "sha256:468f6e40285de5a5b3c44981ca3a319a4b208ccc07d526b20b12aeedcfa654b7", size = 81198, upload-time = "2025-06-10T00:44:49.164Z" },
|
{ url = "https://files.pythonhosted.org/packages/fd/be/29f5156b7a319e4d2e5b51ce622b4dfb3aa8d8204cd2a8a339340fbfad40/yarl-1.20.0-cp313-cp313-win32.whl", hash = "sha256:70e0c580a0292c7414a1cead1e076c9786f685c1fc4757573d2967689b370e62", size = 86051, upload-time = "2025-04-17T00:43:47.076Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/ba/ba/39b1ecbf51620b40ab402b0fc817f0ff750f6d92712b44689c2c215be89d/yarl-1.20.1-cp313-cp313-win_amd64.whl", hash = "sha256:495b4ef2fea40596bfc0affe3837411d6aa3371abcf31aac0ccc4bdd64d4ef5c", size = 86346, upload-time = "2025-06-10T00:44:51.182Z" },
|
{ url = "https://files.pythonhosted.org/packages/52/56/05fa52c32c301da77ec0b5f63d2d9605946fe29defacb2a7ebd473c23b81/yarl-1.20.0-cp313-cp313-win_amd64.whl", hash = "sha256:4c43030e4b0af775a85be1fa0433119b1565673266a70bf87ef68a9d5ba3174c", size = 92742, upload-time = "2025-04-17T00:43:49.193Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/43/c7/669c52519dca4c95153c8ad96dd123c79f354a376346b198f438e56ffeb4/yarl-1.20.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:f60233b98423aab21d249a30eb27c389c14929f47be8430efa7dbd91493a729d", size = 138826, upload-time = "2025-06-10T00:44:52.883Z" },
|
{ url = "https://files.pythonhosted.org/packages/d4/2f/422546794196519152fc2e2f475f0e1d4d094a11995c81a465faf5673ffd/yarl-1.20.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b6c4c3d0d6a0ae9b281e492b1465c72de433b782e6b5001c8e7249e085b69051", size = 163575, upload-time = "2025-04-17T00:43:51.533Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/6a/42/fc0053719b44f6ad04a75d7f05e0e9674d45ef62f2d9ad2c1163e5c05827/yarl-1.20.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:6f3eff4cc3f03d650d8755c6eefc844edde99d641d0dcf4da3ab27141a5f8ddf", size = 93217, upload-time = "2025-06-10T00:44:54.658Z" },
|
{ url = "https://files.pythonhosted.org/packages/90/fc/67c64ddab6c0b4a169d03c637fb2d2a212b536e1989dec8e7e2c92211b7f/yarl-1.20.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8681700f4e4df891eafa4f69a439a6e7d480d64e52bf460918f58e443bd3da7d", size = 106121, upload-time = "2025-04-17T00:43:53.506Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/4f/7f/fa59c4c27e2a076bba0d959386e26eba77eb52ea4a0aac48e3515c186b4c/yarl-1.20.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:69ff8439d8ba832d6bed88af2c2b3445977eba9a4588b787b32945871c2444e3", size = 92700, upload-time = "2025-06-10T00:44:56.784Z" },
|
{ url = "https://files.pythonhosted.org/packages/6d/00/29366b9eba7b6f6baed7d749f12add209b987c4cfbfa418404dbadc0f97c/yarl-1.20.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:84aeb556cb06c00652dbf87c17838eb6d92cfd317799a8092cee0e570ee11229", size = 103815, upload-time = "2025-04-17T00:43:55.41Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/2f/d4/062b2f48e7c93481e88eff97a6312dca15ea200e959f23e96d8ab898c5b8/yarl-1.20.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cf34efa60eb81dd2645a2e13e00bb98b76c35ab5061a3989c7a70f78c85006d", size = 347644, upload-time = "2025-06-10T00:44:59.071Z" },
|
{ url = "https://files.pythonhosted.org/packages/28/f4/a2a4c967c8323c03689383dff73396281ced3b35d0ed140580825c826af7/yarl-1.20.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f166eafa78810ddb383e930d62e623d288fb04ec566d1b4790099ae0f31485f1", size = 408231, upload-time = "2025-04-17T00:43:57.825Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/89/47/78b7f40d13c8f62b499cc702fdf69e090455518ae544c00a3bf4afc9fc77/yarl-1.20.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:8e0fe9364ad0fddab2688ce72cb7a8e61ea42eff3c7caeeb83874a5d479c896c", size = 323452, upload-time = "2025-06-10T00:45:01.605Z" },
|
{ url = "https://files.pythonhosted.org/packages/0f/a1/66f7ffc0915877d726b70cc7a896ac30b6ac5d1d2760613603b022173635/yarl-1.20.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5d3d6d14754aefc7a458261027a562f024d4f6b8a798adb472277f675857b1eb", size = 390221, upload-time = "2025-04-17T00:44:00.526Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/eb/2b/490d3b2dc66f52987d4ee0d3090a147ea67732ce6b4d61e362c1846d0d32/yarl-1.20.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f64fbf81878ba914562c672024089e3401974a39767747691c65080a67b18c1", size = 346378, upload-time = "2025-06-10T00:45:03.946Z" },
|
{ url = "https://files.pythonhosted.org/packages/41/15/cc248f0504610283271615e85bf38bc014224122498c2016d13a3a1b8426/yarl-1.20.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2a8f64df8ed5d04c51260dbae3cc82e5649834eebea9eadfd829837b8093eb00", size = 411400, upload-time = "2025-04-17T00:44:02.853Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/66/ad/775da9c8a94ce925d1537f939a4f17d782efef1f973039d821cbe4bcc211/yarl-1.20.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f6342d643bf9a1de97e512e45e4b9560a043347e779a173250824f8b254bd5ce", size = 353261, upload-time = "2025-06-10T00:45:05.992Z" },
|
{ url = "https://files.pythonhosted.org/packages/5c/af/f0823d7e092bfb97d24fce6c7269d67fcd1aefade97d0a8189c4452e4d5e/yarl-1.20.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4d9949eaf05b4d30e93e4034a7790634bbb41b8be2d07edd26754f2e38e491de", size = 411714, upload-time = "2025-04-17T00:44:04.904Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/4b/23/0ed0922b47a4f5c6eb9065d5ff1e459747226ddce5c6a4c111e728c9f701/yarl-1.20.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56dac5f452ed25eef0f6e3c6a066c6ab68971d96a9fb441791cad0efba6140d3", size = 335987, upload-time = "2025-06-10T00:45:08.227Z" },
|
{ url = "https://files.pythonhosted.org/packages/83/70/be418329eae64b9f1b20ecdaac75d53aef098797d4c2299d82ae6f8e4663/yarl-1.20.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c366b254082d21cc4f08f522ac201d0d83a8b8447ab562732931d31d80eb2a5", size = 404279, upload-time = "2025-04-17T00:44:07.721Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/3e/49/bc728a7fe7d0e9336e2b78f0958a2d6b288ba89f25a1762407a222bf53c3/yarl-1.20.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7d7f497126d65e2cad8dc5f97d34c27b19199b6414a40cb36b52f41b79014be", size = 329361, upload-time = "2025-06-10T00:45:10.11Z" },
|
{ url = "https://files.pythonhosted.org/packages/19/f5/52e02f0075f65b4914eb890eea1ba97e6fd91dd821cc33a623aa707b2f67/yarl-1.20.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:91bc450c80a2e9685b10e34e41aef3d44ddf99b3a498717938926d05ca493f6a", size = 384044, upload-time = "2025-04-17T00:44:09.708Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/93/8f/b811b9d1f617c83c907e7082a76e2b92b655400e61730cd61a1f67178393/yarl-1.20.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:67e708dfb8e78d8a19169818eeb5c7a80717562de9051bf2413aca8e3696bf16", size = 346460, upload-time = "2025-06-10T00:45:12.055Z" },
|
{ url = "https://files.pythonhosted.org/packages/6a/36/b0fa25226b03d3f769c68d46170b3e92b00ab3853d73127273ba22474697/yarl-1.20.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9c2aa4387de4bc3a5fe158080757748d16567119bef215bec643716b4fbf53f9", size = 416236, upload-time = "2025-04-17T00:44:11.734Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/70/fd/af94f04f275f95da2c3b8b5e1d49e3e79f1ed8b6ceb0f1664cbd902773ff/yarl-1.20.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:595c07bc79af2494365cc96ddeb772f76272364ef7c80fb892ef9d0649586513", size = 334486, upload-time = "2025-06-10T00:45:13.995Z" },
|
{ url = "https://files.pythonhosted.org/packages/cb/3a/54c828dd35f6831dfdd5a79e6c6b4302ae2c5feca24232a83cb75132b205/yarl-1.20.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:d2cbca6760a541189cf87ee54ff891e1d9ea6406079c66341008f7ef6ab61145", size = 402034, upload-time = "2025-04-17T00:44:13.975Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/84/65/04c62e82704e7dd0a9b3f61dbaa8447f8507655fd16c51da0637b39b2910/yarl-1.20.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:7bdd2f80f4a7df852ab9ab49484a4dee8030023aa536df41f2d922fd57bf023f", size = 342219, upload-time = "2025-06-10T00:45:16.479Z" },
|
{ url = "https://files.pythonhosted.org/packages/10/97/c7bf5fba488f7e049f9ad69c1b8fdfe3daa2e8916b3d321aa049e361a55a/yarl-1.20.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:798a5074e656f06b9fad1a162be5a32da45237ce19d07884d0b67a0aa9d5fdda", size = 407943, upload-time = "2025-04-17T00:44:16.052Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/91/95/459ca62eb958381b342d94ab9a4b6aec1ddec1f7057c487e926f03c06d30/yarl-1.20.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:c03bfebc4ae8d862f853a9757199677ab74ec25424d0ebd68a0027e9c639a390", size = 350693, upload-time = "2025-06-10T00:45:18.399Z" },
|
{ url = "https://files.pythonhosted.org/packages/fd/a4/022d2555c1e8fcff08ad7f0f43e4df3aba34f135bff04dd35d5526ce54ab/yarl-1.20.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:f106e75c454288472dbe615accef8248c686958c2e7dd3b8d8ee2669770d020f", size = 423058, upload-time = "2025-04-17T00:44:18.547Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/a6/00/d393e82dd955ad20617abc546a8f1aee40534d599ff555ea053d0ec9bf03/yarl-1.20.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:344d1103e9c1523f32a5ed704d576172d2cabed3122ea90b1d4e11fe17c66458", size = 355803, upload-time = "2025-06-10T00:45:20.677Z" },
|
{ url = "https://files.pythonhosted.org/packages/4c/f6/0873a05563e5df29ccf35345a6ae0ac9e66588b41fdb7043a65848f03139/yarl-1.20.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:3b60a86551669c23dc5445010534d2c5d8a4e012163218fc9114e857c0586fdd", size = 423792, upload-time = "2025-04-17T00:44:20.639Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/9e/ed/c5fb04869b99b717985e244fd93029c7a8e8febdfcffa06093e32d7d44e7/yarl-1.20.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:88cab98aa4e13e1ade8c141daeedd300a4603b7132819c484841bb7af3edce9e", size = 341709, upload-time = "2025-06-10T00:45:23.221Z" },
|
{ url = "https://files.pythonhosted.org/packages/9e/35/43fbbd082708fa42e923f314c24f8277a28483d219e049552e5007a9aaca/yarl-1.20.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:3e429857e341d5e8e15806118e0294f8073ba9c4580637e59ab7b238afca836f", size = 422242, upload-time = "2025-04-17T00:44:22.851Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/24/fd/725b8e73ac2a50e78a4534ac43c6addf5c1c2d65380dd48a9169cc6739a9/yarl-1.20.1-cp313-cp313t-win32.whl", hash = "sha256:b121ff6a7cbd4abc28985b6028235491941b9fe8fe226e6fdc539c977ea1739d", size = 86591, upload-time = "2025-06-10T00:45:25.793Z" },
|
{ url = "https://files.pythonhosted.org/packages/ed/f7/f0f2500cf0c469beb2050b522c7815c575811627e6d3eb9ec7550ddd0bfe/yarl-1.20.0-cp313-cp313t-win32.whl", hash = "sha256:65a4053580fe88a63e8e4056b427224cd01edfb5f951498bfefca4052f0ce0ac", size = 93816, upload-time = "2025-04-17T00:44:25.491Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/94/c3/b2e9f38bc3e11191981d57ea08cab2166e74ea770024a646617c9cddd9f6/yarl-1.20.1-cp313-cp313t-win_amd64.whl", hash = "sha256:541d050a355bbbc27e55d906bc91cb6fe42f96c01413dd0f4ed5a5240513874f", size = 93003, upload-time = "2025-06-10T00:45:27.752Z" },
|
{ url = "https://files.pythonhosted.org/packages/3f/93/f73b61353b2a699d489e782c3f5998b59f974ec3156a2050a52dfd7e8946/yarl-1.20.0-cp313-cp313t-win_amd64.whl", hash = "sha256:53b2da3a6ca0a541c1ae799c349788d480e5144cac47dba0266c7cb6c76151fe", size = 101093, upload-time = "2025-04-17T00:44:27.418Z" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/b4/2d/2345fce04cfd4bee161bf1e7d9cdc702e3e16109021035dbb24db654a622/yarl-1.20.1-py3-none-any.whl", hash = "sha256:83b8eb083fe4683c6115795d9fc1cfaf2cbbefb19b3a1cb68f6527460f483a77", size = 46542, upload-time = "2025-06-10T00:46:07.521Z" },
|
{ url = "https://files.pythonhosted.org/packages/ea/1f/70c57b3d7278e94ed22d85e09685d3f0a38ebdd8c5c73b65ba4c0d0fe002/yarl-1.20.0-py3-none-any.whl", hash = "sha256:5d0fe6af927a47a230f31e6004621fd0959eaa915fc62acfafa67ff7229a3124", size = 46124, upload-time = "2025-04-17T00:45:12.199Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zipp"
|
name = "zipp"
|
||||||
version = "3.23.0"
|
version = "3.22.0"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166", size = 25547, upload-time = "2025-06-08T17:06:39.4Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/12/b6/7b3d16792fdf94f146bed92be90b4eb4563569eca91513c8609aebf0c167/zipp-3.22.0.tar.gz", hash = "sha256:dd2f28c3ce4bc67507bfd3781d21b7bb2be31103b51a4553ad7d90b84e57ace5", size = 25257, upload-time = "2025-05-26T14:46:32.217Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e", size = 10276, upload-time = "2025-06-08T17:06:38.034Z" },
|
{ url = "https://files.pythonhosted.org/packages/ad/da/f64669af4cae46f17b90798a827519ce3737d31dbafad65d391e49643dc4/zipp-3.22.0-py3-none-any.whl", hash = "sha256:fe208f65f2aca48b81f9e6fd8cf7b8b32c26375266b009b413d45306b6148343", size = 9796, upload-time = "2025-05-26T14:46:30.775Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|||||||
303
web/package-lock.json
generated
303
web/package-lock.json
generated
@ -22,20 +22,17 @@
|
|||||||
"@floating-ui/dom": "^1.6.11",
|
"@floating-ui/dom": "^1.6.11",
|
||||||
"@formatjs/intl-listformat": "^7.7.11",
|
"@formatjs/intl-listformat": "^7.7.11",
|
||||||
"@fortawesome/fontawesome-free": "^6.7.2",
|
"@fortawesome/fontawesome-free": "^6.7.2",
|
||||||
"@goauthentik/api": "^2025.6.2-1750246811",
|
"@goauthentik/api": "^2025.6.2-1750112513",
|
||||||
"@lit/context": "^1.1.2",
|
"@lit/context": "^1.1.2",
|
||||||
"@lit/localize": "^0.12.2",
|
"@lit/localize": "^0.12.2",
|
||||||
"@lit/reactive-element": "^2.0.4",
|
"@lit/reactive-element": "^2.0.4",
|
||||||
"@lit/task": "^1.0.2",
|
"@lit/task": "^1.0.2",
|
||||||
"@mdx-js/mdx": "^3.1.0",
|
"@mdx-js/mdx": "^3.1.0",
|
||||||
"@mrmarble/djangoql-completion": "^0.8.3",
|
|
||||||
"@open-wc/lit-helpers": "^0.7.0",
|
"@open-wc/lit-helpers": "^0.7.0",
|
||||||
"@openlayers-elements/core": "^0.4.0",
|
|
||||||
"@openlayers-elements/maps": "^0.4.0",
|
|
||||||
"@patternfly/elements": "^4.1.0",
|
"@patternfly/elements": "^4.1.0",
|
||||||
"@patternfly/patternfly": "^4.224.2",
|
"@patternfly/patternfly": "^4.224.2",
|
||||||
"@sentry/browser": "^9.30.0",
|
"@sentry/browser": "^9.30.0",
|
||||||
"@spotlightjs/spotlight": "^3.0.1",
|
"@spotlightjs/spotlight": "^3.0.0",
|
||||||
"@webcomponents/webcomponentsjs": "^2.8.0",
|
"@webcomponents/webcomponentsjs": "^2.8.0",
|
||||||
"change-case": "^5.4.4",
|
"change-case": "^5.4.4",
|
||||||
"chart.js": "^4.4.9",
|
"chart.js": "^4.4.9",
|
||||||
@ -1731,9 +1728,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@goauthentik/api": {
|
"node_modules/@goauthentik/api": {
|
||||||
"version": "2025.6.2-1750246811",
|
"version": "2025.6.2-1750112513",
|
||||||
"resolved": "https://registry.npmjs.org/@goauthentik/api/-/api-2025.6.2-1750246811.tgz",
|
"resolved": "https://registry.npmjs.org/@goauthentik/api/-/api-2025.6.2-1750112513.tgz",
|
||||||
"integrity": "sha512-ENHEi3kGAodf5tKQb5kziUrT1EcJw3z8tp2mU7LWqNlXr4eoAI15BjDfH5DW56l4jy3xKqTd+R2Ntnj4hiVhHw=="
|
"integrity": "sha512-QgvuHY/G4AetMYBgZ1lNP59bkzU3Nbq7whoSyOXWms4Wze2Fc4Btd35CxleBw9GJug1RVJBE+EG7ImC9bwe+2Q=="
|
||||||
},
|
},
|
||||||
"node_modules/@goauthentik/core": {
|
"node_modules/@goauthentik/core": {
|
||||||
"resolved": "packages/core",
|
"resolved": "packages/core",
|
||||||
@ -2591,48 +2588,6 @@
|
|||||||
"@lit/reactive-element": "^1.0.0 || ^2.0.0"
|
"@lit/reactive-element": "^1.0.0 || ^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@mapbox/jsonlint-lines-primitives": {
|
|
||||||
"version": "2.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz",
|
|
||||||
"integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==",
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 0.6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@mapbox/mapbox-gl-style-spec": {
|
|
||||||
"version": "13.28.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-style-spec/-/mapbox-gl-style-spec-13.28.0.tgz",
|
|
||||||
"integrity": "sha512-B8xM7Fp1nh5kejfIl4SWeY0gtIeewbuRencqO3cJDrCHZpaPg7uY+V8abuR+esMeuOjRl5cLhVTP40v+1ywxbg==",
|
|
||||||
"license": "ISC",
|
|
||||||
"dependencies": {
|
|
||||||
"@mapbox/jsonlint-lines-primitives": "~2.0.2",
|
|
||||||
"@mapbox/point-geometry": "^0.1.0",
|
|
||||||
"@mapbox/unitbezier": "^0.0.0",
|
|
||||||
"csscolorparser": "~1.0.2",
|
|
||||||
"json-stringify-pretty-compact": "^2.0.0",
|
|
||||||
"minimist": "^1.2.6",
|
|
||||||
"rw": "^1.3.3",
|
|
||||||
"sort-object": "^0.3.2"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"gl-style-composite": "bin/gl-style-composite.js",
|
|
||||||
"gl-style-format": "bin/gl-style-format.js",
|
|
||||||
"gl-style-migrate": "bin/gl-style-migrate.js",
|
|
||||||
"gl-style-validate": "bin/gl-style-validate.js"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@mapbox/point-geometry": {
|
|
||||||
"version": "0.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz",
|
|
||||||
"integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==",
|
|
||||||
"license": "ISC"
|
|
||||||
},
|
|
||||||
"node_modules/@mapbox/unitbezier": {
|
|
||||||
"version": "0.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz",
|
|
||||||
"integrity": "sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA==",
|
|
||||||
"license": "BSD-2-Clause"
|
|
||||||
},
|
|
||||||
"node_modules/@mdx-js/mdx": {
|
"node_modules/@mdx-js/mdx": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz",
|
||||||
@ -2705,16 +2660,6 @@
|
|||||||
"langium": "3.3.1"
|
"langium": "3.3.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@mrmarble/djangoql-completion": {
|
|
||||||
"version": "0.8.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/@mrmarble/djangoql-completion/-/djangoql-completion-0.8.3.tgz",
|
|
||||||
"integrity": "sha512-wYctvF0gQs48wL9jLQ+H2g2B0yJj7CrUSNi4ec5gcSuICIRqD/QSt6G+3zDdeW1LlI/4uj/FByJvg8k4TAAnVg==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"lex": "1.7.9",
|
|
||||||
"lodash": "4.17.21"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@napi-rs/nice": {
|
"node_modules/@napi-rs/nice": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/@napi-rs/nice/-/nice-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/@napi-rs/nice/-/nice-1.0.1.tgz",
|
||||||
@ -3115,27 +3060,6 @@
|
|||||||
"lit": "^2.0.0 || ^3.0.0"
|
"lit": "^2.0.0 || ^3.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@openlayers-elements/core": {
|
|
||||||
"version": "0.4.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@openlayers-elements/core/-/core-0.4.0.tgz",
|
|
||||||
"integrity": "sha512-msY2QGYCYf5Zph16j08KszgqtHmMORCK7B5afpe5iM8c3FFSfjijUffiw93MGeowoN4Yo5jfkxuI2plpyidR0A==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"lit": "^3.1.4",
|
|
||||||
"ol": "^7.5.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@openlayers-elements/maps": {
|
|
||||||
"version": "0.4.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@openlayers-elements/maps/-/maps-0.4.0.tgz",
|
|
||||||
"integrity": "sha512-uxGW3Lt1BVA8eC0HykXLZA4a3EfCU44FdGaudC4Xu0s+XYPOEPxCGLDCsWSuy67NvEUTFb+odu6mRDLofxdquA==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@openlayers-elements/core": "^0.4.0",
|
|
||||||
"lit": "^3.1.4",
|
|
||||||
"ol": "^7.5.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@opentelemetry/api": {
|
"node_modules/@opentelemetry/api": {
|
||||||
"version": "1.9.0",
|
"version": "1.9.0",
|
||||||
"resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz",
|
"resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz",
|
||||||
@ -4036,12 +3960,6 @@
|
|||||||
"lit": "^3.2.1"
|
"lit": "^3.2.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@petamoriken/float16": {
|
|
||||||
"version": "3.9.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.9.2.tgz",
|
|
||||||
"integrity": "sha512-VgffxawQde93xKxT3qap3OH+meZf7VaSB5Sqd4Rqc+FP5alWbpOyan/7tRbOAvynjpG3GpdtAuGU/NdhQpmrog==",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/@pkgjs/parseargs": {
|
"node_modules/@pkgjs/parseargs": {
|
||||||
"version": "0.11.0",
|
"version": "0.11.0",
|
||||||
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
|
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
|
||||||
@ -4806,9 +4724,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@spotlightjs/overlay": {
|
"node_modules/@spotlightjs/overlay": {
|
||||||
"version": "3.1.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@spotlightjs/overlay/-/overlay-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/@spotlightjs/overlay/-/overlay-3.0.0.tgz",
|
||||||
"integrity": "sha512-FOT5bE0G1k9DOTEMYYnVLXptlfVOlRq3ESC1UIsS88oL3enuUOIP70X86zE7vpUmUFrNnSGIsZBZOclwI5fa2Q==",
|
"integrity": "sha512-0b03WtsykqpcOKmjDRnRZf0GGfaEB6ZHGctLZZxFK4NHTDBNJ6BaQZjunr4XU35kKR5BT2OFp5E/DPKluih0Hg==",
|
||||||
"license": "Apache-2.0"
|
"license": "Apache-2.0"
|
||||||
},
|
},
|
||||||
"node_modules/@spotlightjs/sidecar": {
|
"node_modules/@spotlightjs/sidecar": {
|
||||||
@ -4830,13 +4748,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@spotlightjs/spotlight": {
|
"node_modules/@spotlightjs/spotlight": {
|
||||||
"version": "3.0.1",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@spotlightjs/spotlight/-/spotlight-3.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/@spotlightjs/spotlight/-/spotlight-3.0.0.tgz",
|
||||||
"integrity": "sha512-0ppLDAUD2dWY0VPA5R0s9U4NNr50OIU4A8P+/W3ZkSQaXDnKLx6RTAudJWPR0M0ClCJcmHiuUlvptQyTn7VU4A==",
|
"integrity": "sha512-dkMineYpONLUmkHh7gvBhjf34ES8a08KDQXNem9/0JzAMy/bXSDlC95sqkX9wDfKWjq2rJKYjJulNtCuGHDaeA==",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@sentry/node": "^8.49.0",
|
"@sentry/node": "^8.49.0",
|
||||||
"@spotlightjs/overlay": "3.1.0",
|
"@spotlightjs/overlay": "3.0.0",
|
||||||
"@spotlightjs/sidecar": "1.11.4",
|
"@spotlightjs/sidecar": "1.11.4",
|
||||||
"import-meta-resolve": "^4.1.0"
|
"import-meta-resolve": "^4.1.0"
|
||||||
},
|
},
|
||||||
@ -12249,12 +12167,6 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/csscolorparser": {
|
|
||||||
"version": "1.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz",
|
|
||||||
"integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/csstype": {
|
"node_modules/csstype": {
|
||||||
"version": "3.1.3",
|
"version": "3.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
|
||||||
@ -13458,12 +13370,6 @@
|
|||||||
"node": ">= 0.4"
|
"node": ">= 0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/earcut": {
|
|
||||||
"version": "2.2.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz",
|
|
||||||
"integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==",
|
|
||||||
"license": "ISC"
|
|
||||||
},
|
|
||||||
"node_modules/eastasianwidth": {
|
"node_modules/eastasianwidth": {
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
|
||||||
@ -16045,43 +15951,6 @@
|
|||||||
"node": ">=6.9.0"
|
"node": ">=6.9.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/geotiff": {
|
|
||||||
"version": "2.1.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/geotiff/-/geotiff-2.1.3.tgz",
|
|
||||||
"integrity": "sha512-PT6uoF5a1+kbC3tHmZSUsLHBp2QJlHasxxxxPW47QIY1VBKpFB+FcDvX+MxER6UzgLQZ0xDzJ9s48B9JbOCTqA==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@petamoriken/float16": "^3.4.7",
|
|
||||||
"lerc": "^3.0.0",
|
|
||||||
"pako": "^2.0.4",
|
|
||||||
"parse-headers": "^2.0.2",
|
|
||||||
"quick-lru": "^6.1.1",
|
|
||||||
"web-worker": "^1.2.0",
|
|
||||||
"xml-utils": "^1.0.2",
|
|
||||||
"zstddec": "^0.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10.19"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/geotiff/node_modules/pako": {
|
|
||||||
"version": "2.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz",
|
|
||||||
"integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==",
|
|
||||||
"license": "(MIT AND Zlib)"
|
|
||||||
},
|
|
||||||
"node_modules/geotiff/node_modules/quick-lru": {
|
|
||||||
"version": "6.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-6.1.2.tgz",
|
|
||||||
"integrity": "sha512-AAFUA5O1d83pIHEhJwWCq/RQcRukCkn/NSm2QsTEMle5f2hP0ChI2+3Xb051PZCkLryI/Ir1MVKviT2FIloaTQ==",
|
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=12"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/get-caller-file": {
|
"node_modules/get-caller-file": {
|
||||||
"version": "2.0.5",
|
"version": "2.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
|
||||||
@ -18648,12 +18517,6 @@
|
|||||||
"integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
|
"integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/json-stringify-pretty-compact": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-2.0.0.tgz",
|
|
||||||
"integrity": "sha512-WRitRfs6BGq4q8gTgOy4ek7iPFXjbra0H3PmDLKm2xnZ+Gh1HUhiKGgCZkSPNULlP7mvfu6FV/mOLhCarspADQ==",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/json5": {
|
"node_modules/json5": {
|
||||||
"version": "2.2.3",
|
"version": "2.2.3",
|
||||||
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
|
||||||
@ -19093,12 +18956,6 @@
|
|||||||
"safe-buffer": "~5.1.0"
|
"safe-buffer": "~5.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/lerc": {
|
|
||||||
"version": "3.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/lerc/-/lerc-3.0.0.tgz",
|
|
||||||
"integrity": "sha512-Rm4J/WaHhRa93nCN2mwWDZFoRVF18G1f47C+kvQWyHGEZxFpTUi73p7lMVSAndyxGt6lJ2/CFbOcf9ra5p8aww==",
|
|
||||||
"license": "Apache-2.0"
|
|
||||||
},
|
|
||||||
"node_modules/leven": {
|
"node_modules/leven": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
|
||||||
@ -19121,12 +18978,6 @@
|
|||||||
"node": ">= 0.8.0"
|
"node": ">= 0.8.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/lex": {
|
|
||||||
"version": "1.7.9",
|
|
||||||
"resolved": "https://registry.npmjs.org/lex/-/lex-1.7.9.tgz",
|
|
||||||
"integrity": "sha512-vzaalVBmFLnMaedq0QAsBAaXsWahzRpvnIBdBjj7y+7EKTS6lnziU2y/PsU2c6rV5qYj2B5IDw0uNJ9peXD0vw==",
|
|
||||||
"deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."
|
|
||||||
},
|
|
||||||
"node_modules/lie": {
|
"node_modules/lie": {
|
||||||
"version": "3.3.0",
|
"version": "3.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
|
||||||
@ -19628,12 +19479,6 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/mapbox-to-css-font": {
|
|
||||||
"version": "2.4.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/mapbox-to-css-font/-/mapbox-to-css-font-2.4.5.tgz",
|
|
||||||
"integrity": "sha512-VJ6nB8emkO9VODI0Fk+TQ/0zKBTqmf/Pkt8Xv0kHstoc0iXRajA00DAid4Kc3K5xeFIOoiZrVxijEzj0GLVO2w==",
|
|
||||||
"license": "BSD-2-Clause"
|
|
||||||
},
|
|
||||||
"node_modules/markdown-extensions": {
|
"node_modules/markdown-extensions": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz",
|
||||||
@ -21062,6 +20907,7 @@
|
|||||||
"version": "1.2.8",
|
"version": "1.2.8",
|
||||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
|
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
|
||||||
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
|
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
|
||||||
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"url": "https://github.com/sponsors/ljharb"
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
}
|
}
|
||||||
@ -22185,34 +22031,6 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"node_modules/ol": {
|
|
||||||
"version": "7.5.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/ol/-/ol-7.5.2.tgz",
|
|
||||||
"integrity": "sha512-HJbb3CxXrksM6ct367LsP3N+uh+iBBMdP3DeGGipdV9YAYTP0vTJzqGnoqQ6C2IW4qf8krw9yuyQbc9fjOIaOQ==",
|
|
||||||
"license": "BSD-2-Clause",
|
|
||||||
"dependencies": {
|
|
||||||
"earcut": "^2.2.3",
|
|
||||||
"geotiff": "^2.0.7",
|
|
||||||
"ol-mapbox-style": "^10.1.0",
|
|
||||||
"pbf": "3.2.1",
|
|
||||||
"rbush": "^3.0.1"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"type": "opencollective",
|
|
||||||
"url": "https://opencollective.com/openlayers"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/ol-mapbox-style": {
|
|
||||||
"version": "10.7.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/ol-mapbox-style/-/ol-mapbox-style-10.7.0.tgz",
|
|
||||||
"integrity": "sha512-S/UdYBuOjrotcR95Iq9AejGYbifKeZE85D9VtH11ryJLQPTZXZSW1J5bIXcr4AlAH6tyjPPHTK34AdkwB32Myw==",
|
|
||||||
"license": "BSD-2-Clause",
|
|
||||||
"dependencies": {
|
|
||||||
"@mapbox/mapbox-gl-style-spec": "^13.23.1",
|
|
||||||
"mapbox-to-css-font": "^2.4.1",
|
|
||||||
"ol": "^7.3.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/on-finished": {
|
"node_modules/on-finished": {
|
||||||
"version": "2.4.1",
|
"version": "2.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
|
||||||
@ -22543,12 +22361,6 @@
|
|||||||
"integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
|
"integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/parse-headers": {
|
|
||||||
"version": "2.0.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.6.tgz",
|
|
||||||
"integrity": "sha512-Tz11t3uKztEW5FEVZnj1ox8GKblWn+PvHY9TmJV5Mll2uHEwRdR/5Li1OlXoECjLYkApdhWy44ocONwXLiKO5A==",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/parse-ms": {
|
"node_modules/parse-ms": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz",
|
||||||
@ -22699,19 +22511,6 @@
|
|||||||
"node": ">= 14.16"
|
"node": ">= 14.16"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/pbf": {
|
|
||||||
"version": "3.2.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz",
|
|
||||||
"integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==",
|
|
||||||
"license": "BSD-3-Clause",
|
|
||||||
"dependencies": {
|
|
||||||
"ieee754": "^1.1.12",
|
|
||||||
"resolve-protobuf-schema": "^2.1.0"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"pbf": "bin/pbf"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/peek-readable": {
|
"node_modules/peek-readable": {
|
||||||
"version": "5.4.2",
|
"version": "5.4.2",
|
||||||
"resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.4.2.tgz",
|
"resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.4.2.tgz",
|
||||||
@ -23173,12 +22972,6 @@
|
|||||||
"url": "https://github.com/sponsors/wooorm"
|
"url": "https://github.com/sponsors/wooorm"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/protocol-buffers-schema": {
|
|
||||||
"version": "3.6.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz",
|
|
||||||
"integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/proxy-agent": {
|
"node_modules/proxy-agent": {
|
||||||
"version": "6.5.0",
|
"version": "6.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz",
|
||||||
@ -23394,12 +23187,6 @@
|
|||||||
"url": "https://github.com/sponsors/sindresorhus"
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/quickselect": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz",
|
|
||||||
"integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==",
|
|
||||||
"license": "ISC"
|
|
||||||
},
|
|
||||||
"node_modules/ramda": {
|
"node_modules/ramda": {
|
||||||
"version": "0.30.1",
|
"version": "0.30.1",
|
||||||
"resolved": "https://registry.npmjs.org/ramda/-/ramda-0.30.1.tgz",
|
"resolved": "https://registry.npmjs.org/ramda/-/ramda-0.30.1.tgz",
|
||||||
@ -23521,15 +23308,6 @@
|
|||||||
"node": ">= 0.8"
|
"node": ">= 0.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rbush": {
|
|
||||||
"version": "3.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz",
|
|
||||||
"integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"quickselect": "^2.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/rc9": {
|
"node_modules/rc9": {
|
||||||
"version": "2.1.2",
|
"version": "2.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/rc9/-/rc9-2.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/rc9/-/rc9-2.1.2.tgz",
|
||||||
@ -24447,15 +24225,6 @@
|
|||||||
"url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
|
"url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/resolve-protobuf-schema": {
|
|
||||||
"version": "2.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz",
|
|
||||||
"integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"protocol-buffers-schema": "^3.3.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/resolve.exports": {
|
"node_modules/resolve.exports": {
|
||||||
"version": "2.0.3",
|
"version": "2.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz",
|
||||||
@ -25297,22 +25066,6 @@
|
|||||||
"node": ">= 14"
|
"node": ">= 14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/sort-asc": {
|
|
||||||
"version": "0.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.1.0.tgz",
|
|
||||||
"integrity": "sha512-jBgdDd+rQ+HkZF2/OHCmace5dvpos/aWQpcxuyRs9QUbPRnkEJmYVo81PIGpjIdpOcsnJ4rGjStfDHsbn+UVyw==",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.10.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/sort-desc": {
|
|
||||||
"version": "0.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.1.1.tgz",
|
|
||||||
"integrity": "sha512-jfZacW5SKOP97BF5rX5kQfJmRVZP5/adDUTY8fCSPvNcXDVpUEe2pr/iKGlcyZzchRJZrswnp68fgk3qBXgkJw==",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.10.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/sort-keys": {
|
"node_modules/sort-keys": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
|
||||||
@ -25349,18 +25102,6 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/sort-object": {
|
|
||||||
"version": "0.3.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/sort-object/-/sort-object-0.3.2.tgz",
|
|
||||||
"integrity": "sha512-aAQiEdqFTTdsvUFxXm3umdo04J7MRljoVGbBlkH7BgNsMvVNAJyGj7C/wV1A8wHWAJj/YikeZbfuCKqhggNWGA==",
|
|
||||||
"dependencies": {
|
|
||||||
"sort-asc": "^0.1.0",
|
|
||||||
"sort-desc": "^0.1.1"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.10.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/sort-object-keys": {
|
"node_modules/sort-object-keys": {
|
||||||
"version": "1.1.3",
|
"version": "1.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/sort-object-keys/-/sort-object-keys-1.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/sort-object-keys/-/sort-object-keys-1.1.3.tgz",
|
||||||
@ -28593,12 +28334,6 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"node_modules/web-worker": {
|
|
||||||
"version": "1.5.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.5.0.tgz",
|
|
||||||
"integrity": "sha512-RiMReJrTAiA+mBjGONMnjVDP2u3p9R1vkcGz6gDIrOMT3oGuYwX2WRMYI9ipkphSuE5XKEhydbhNEJh4NY9mlw==",
|
|
||||||
"license": "Apache-2.0"
|
|
||||||
},
|
|
||||||
"node_modules/webauthn-polyfills": {
|
"node_modules/webauthn-polyfills": {
|
||||||
"version": "0.1.7",
|
"version": "0.1.7",
|
||||||
"resolved": "https://registry.npmjs.org/webauthn-polyfills/-/webauthn-polyfills-0.1.7.tgz",
|
"resolved": "https://registry.npmjs.org/webauthn-polyfills/-/webauthn-polyfills-0.1.7.tgz",
|
||||||
@ -29173,12 +28908,6 @@
|
|||||||
"repeat-string": "^1.5.2"
|
"repeat-string": "^1.5.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/xml-utils": {
|
|
||||||
"version": "1.10.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/xml-utils/-/xml-utils-1.10.2.tgz",
|
|
||||||
"integrity": "sha512-RqM+2o1RYs6T8+3DzDSoTRAUfrvaejbVHcp3+thnAtDKo8LskR+HomLajEy5UjTz24rpka7AxVBRR3g2wTUkJA==",
|
|
||||||
"license": "CC0-1.0"
|
|
||||||
},
|
|
||||||
"node_modules/xtend": {
|
"node_modules/xtend": {
|
||||||
"version": "4.0.2",
|
"version": "4.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
|
||||||
@ -29436,12 +29165,6 @@
|
|||||||
"zod": "^3.18.0"
|
"zod": "^3.18.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/zstddec": {
|
|
||||||
"version": "0.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/zstddec/-/zstddec-0.1.0.tgz",
|
|
||||||
"integrity": "sha512-w2NTI8+3l3eeltKAdK8QpiLo/flRAr2p8AGeakfMZOXBxOg9HIu4LVDxBi81sYgVhFhdJjv1OrB5ssI8uFPoLg==",
|
|
||||||
"license": "MIT AND BSD-3-Clause"
|
|
||||||
},
|
|
||||||
"node_modules/zwitch": {
|
"node_modules/zwitch": {
|
||||||
"version": "2.0.4",
|
"version": "2.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
|
||||||
|
|||||||
@ -93,20 +93,17 @@
|
|||||||
"@floating-ui/dom": "^1.6.11",
|
"@floating-ui/dom": "^1.6.11",
|
||||||
"@formatjs/intl-listformat": "^7.7.11",
|
"@formatjs/intl-listformat": "^7.7.11",
|
||||||
"@fortawesome/fontawesome-free": "^6.7.2",
|
"@fortawesome/fontawesome-free": "^6.7.2",
|
||||||
"@goauthentik/api": "^2025.6.2-1750246811",
|
"@goauthentik/api": "^2025.6.2-1750112513",
|
||||||
"@lit/context": "^1.1.2",
|
"@lit/context": "^1.1.2",
|
||||||
"@lit/localize": "^0.12.2",
|
"@lit/localize": "^0.12.2",
|
||||||
"@lit/reactive-element": "^2.0.4",
|
"@lit/reactive-element": "^2.0.4",
|
||||||
"@lit/task": "^1.0.2",
|
"@lit/task": "^1.0.2",
|
||||||
"@mdx-js/mdx": "^3.1.0",
|
"@mdx-js/mdx": "^3.1.0",
|
||||||
"@mrmarble/djangoql-completion": "^0.8.3",
|
|
||||||
"@open-wc/lit-helpers": "^0.7.0",
|
"@open-wc/lit-helpers": "^0.7.0",
|
||||||
"@openlayers-elements/core": "^0.4.0",
|
|
||||||
"@openlayers-elements/maps": "^0.4.0",
|
|
||||||
"@patternfly/elements": "^4.1.0",
|
"@patternfly/elements": "^4.1.0",
|
||||||
"@patternfly/patternfly": "^4.224.2",
|
"@patternfly/patternfly": "^4.224.2",
|
||||||
"@sentry/browser": "^9.30.0",
|
"@sentry/browser": "^9.30.0",
|
||||||
"@spotlightjs/spotlight": "^3.0.1",
|
"@spotlightjs/spotlight": "^3.0.0",
|
||||||
"@webcomponents/webcomponentsjs": "^2.8.0",
|
"@webcomponents/webcomponentsjs": "^2.8.0",
|
||||||
"change-case": "^5.4.4",
|
"change-case": "^5.4.4",
|
||||||
"chart.js": "^4.4.9",
|
"chart.js": "^4.4.9",
|
||||||
|
|||||||
@ -1,7 +1,3 @@
|
|||||||
import "#elements/Tabs";
|
|
||||||
import { WithLicenseSummary } from "#elements/mixins/license";
|
|
||||||
import { updateURLParams } from "#elements/router/RouteMatch";
|
|
||||||
import "@goauthentik/admin/events/EventMap";
|
|
||||||
import "@goauthentik/admin/events/EventVolumeChart";
|
import "@goauthentik/admin/events/EventVolumeChart";
|
||||||
import { EventGeo, EventUser } from "@goauthentik/admin/events/utils";
|
import { EventGeo, EventUser } from "@goauthentik/admin/events/utils";
|
||||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
|
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
|
||||||
@ -19,14 +15,11 @@ import { msg } from "@lit/localize";
|
|||||||
import { CSSResult, TemplateResult, css, html } from "lit";
|
import { CSSResult, TemplateResult, css, html } from "lit";
|
||||||
import { customElement, property } from "lit/decorators.js";
|
import { customElement, property } from "lit/decorators.js";
|
||||||
|
|
||||||
import PFGrid from "@patternfly/patternfly/layouts/Grid/grid.css";
|
import { Event, EventsApi } from "@goauthentik/api";
|
||||||
|
|
||||||
import { Event, EventsApi, LicenseSummaryStatusEnum } from "@goauthentik/api";
|
|
||||||
|
|
||||||
@customElement("ak-event-list")
|
@customElement("ak-event-list")
|
||||||
export class EventListPage extends WithLicenseSummary(TablePage<Event>) {
|
export class EventListPage extends TablePage<Event> {
|
||||||
expandable = true;
|
expandable = true;
|
||||||
supportsQL = true;
|
|
||||||
|
|
||||||
pageTitle(): string {
|
pageTitle(): string {
|
||||||
return msg("Event Log");
|
return msg("Event Log");
|
||||||
@ -45,15 +38,11 @@ export class EventListPage extends WithLicenseSummary(TablePage<Event>) {
|
|||||||
order = "-created";
|
order = "-created";
|
||||||
|
|
||||||
static get styles(): CSSResult[] {
|
static get styles(): CSSResult[] {
|
||||||
// @ts-expect-error
|
return super.styles.concat(css`
|
||||||
return super.styles.concat(
|
|
||||||
PFGrid,
|
|
||||||
css`
|
|
||||||
.pf-m-no-padding-bottom {
|
.pf-m-no-padding-bottom {
|
||||||
padding-bottom: 0;
|
padding-bottom: 0;
|
||||||
}
|
}
|
||||||
`,
|
`);
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async apiEndpoint(): Promise<PaginatedResponse<Event>> {
|
async apiEndpoint(): Promise<PaginatedResponse<Event>> {
|
||||||
@ -72,41 +61,16 @@ export class EventListPage extends WithLicenseSummary(TablePage<Event>) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
renderSectionBefore(): TemplateResult {
|
renderSectionBefore(): TemplateResult {
|
||||||
if (this.licenseSummary?.status !== LicenseSummaryStatusEnum.Unlicensed) {
|
return html`
|
||||||
return html`<div
|
<div class="pf-c-page__main-section pf-m-no-padding-bottom">
|
||||||
class="pf-l-grid pf-m-gutter pf-c-page__main-section pf-m-no-padding-bottom"
|
|
||||||
>
|
|
||||||
<ak-events-volume-chart
|
|
||||||
class="pf-l-grid__item pf-m-12-col pf-m-4-col-on-xl pf-m-4-col-on-2xl "
|
|
||||||
.query=${{
|
|
||||||
page: this.page,
|
|
||||||
search: this.search,
|
|
||||||
}}
|
|
||||||
with-map
|
|
||||||
></ak-events-volume-chart>
|
|
||||||
<ak-events-map
|
|
||||||
class="pf-l-grid__item pf-m-12-col pf-m-8-col-on-xl pf-m-8-col-on-2xl "
|
|
||||||
.events=${this.data}
|
|
||||||
@select-event=${(ev: CustomEvent<{ eventId: string }>) => {
|
|
||||||
this.search = `event_uuid = "${ev.detail.eventId}"`;
|
|
||||||
this.page = 1;
|
|
||||||
updateURLParams({
|
|
||||||
search: this.search,
|
|
||||||
tablePage: this.page,
|
|
||||||
});
|
|
||||||
this.fetch();
|
|
||||||
}}
|
|
||||||
></ak-events-map>
|
|
||||||
</div>`;
|
|
||||||
}
|
|
||||||
return html`<div class="pf-c-page__main-section pf-m-no-padding-bottom">
|
|
||||||
<ak-events-volume-chart
|
<ak-events-volume-chart
|
||||||
.query=${{
|
.query=${{
|
||||||
page: this.page,
|
page: this.page,
|
||||||
search: this.search,
|
search: this.search,
|
||||||
}}
|
}}
|
||||||
></ak-events-volume-chart>
|
></ak-events-volume-chart>
|
||||||
</div>`;
|
</div>
|
||||||
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
row(item: EventWithContext): SlottedTemplateResult[] {
|
row(item: EventWithContext): SlottedTemplateResult[] {
|
||||||
|
|||||||
@ -1,161 +0,0 @@
|
|||||||
import { EventWithContext } from "#common/events";
|
|
||||||
import { globalAK } from "#common/global";
|
|
||||||
import { PaginatedResponse } from "#elements/table/Table";
|
|
||||||
import { AKElement } from "@goauthentik/elements/Base";
|
|
||||||
import "@openlayers-elements/core/ol-layer-vector";
|
|
||||||
import type OlLayerVector from "@openlayers-elements/core/ol-layer-vector";
|
|
||||||
import OlMap from "@openlayers-elements/core/ol-map";
|
|
||||||
import "@openlayers-elements/maps/ol-layer-openstreetmap";
|
|
||||||
import "@openlayers-elements/maps/ol-select";
|
|
||||||
import Feature from "ol/Feature";
|
|
||||||
import { Point } from "ol/geom";
|
|
||||||
import { fromLonLat } from "ol/proj";
|
|
||||||
import Icon from "ol/style/Icon";
|
|
||||||
import Style from "ol/style/Style";
|
|
||||||
|
|
||||||
import { CSSResult, PropertyValues, TemplateResult, css, html } from "lit";
|
|
||||||
import { customElement, property, query } from "lit/decorators.js";
|
|
||||||
|
|
||||||
import PFCard from "@patternfly/patternfly/components/Card/card.css";
|
|
||||||
import PFBase from "@patternfly/patternfly/patternfly-base.css";
|
|
||||||
import OL from "ol/ol.css";
|
|
||||||
|
|
||||||
import { Event } from "@goauthentik/api";
|
|
||||||
|
|
||||||
@customElement("ak-map")
|
|
||||||
export class Map extends OlMap {
|
|
||||||
public render() {
|
|
||||||
return html`
|
|
||||||
<style>
|
|
||||||
${OL}
|
|
||||||
</style>
|
|
||||||
<style>
|
|
||||||
:host {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
#map {
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<div id="map"></div>
|
|
||||||
<slot></slot>
|
|
||||||
`;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @event {select-event} - Fired when an event is selected on the map. ID of the event is contained
|
|
||||||
* in the `Event.detail` field.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@customElement("ak-events-map")
|
|
||||||
export class EventMap extends AKElement {
|
|
||||||
@property({ attribute: false })
|
|
||||||
events?: PaginatedResponse<Event>;
|
|
||||||
|
|
||||||
@query("ol-layer-vector")
|
|
||||||
vectorLayer?: OlLayerVector;
|
|
||||||
|
|
||||||
@query("ak-map")
|
|
||||||
map?: Map;
|
|
||||||
|
|
||||||
@property({ type: Number })
|
|
||||||
zoomPaddingPx = 100;
|
|
||||||
|
|
||||||
static get styles(): CSSResult[] {
|
|
||||||
return [
|
|
||||||
PFBase,
|
|
||||||
PFCard,
|
|
||||||
css`
|
|
||||||
.pf-c-card,
|
|
||||||
ol-map {
|
|
||||||
height: 24rem;
|
|
||||||
}
|
|
||||||
:host([theme="dark"]) ol-map {
|
|
||||||
filter: invert(100%) hue-rotate(180deg);
|
|
||||||
}
|
|
||||||
`,
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
updated(_changedProperties: PropertyValues<this>): void {
|
|
||||||
if (!_changedProperties.has("events")) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!this.vectorLayer?.source || !this.map?.map) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// Remove all existing points
|
|
||||||
this.vectorLayer.source.clear();
|
|
||||||
// Re-add them
|
|
||||||
this.events?.results
|
|
||||||
.filter((event) => {
|
|
||||||
if (!Object.hasOwn(event.context, "geo")) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
const geo = (event as EventWithContext).context.geo;
|
|
||||||
if (!geo?.lat || !geo.long) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
})
|
|
||||||
.forEach((event) => {
|
|
||||||
const geo = (event as EventWithContext).context.geo!;
|
|
||||||
const point = new Point(fromLonLat([geo.long!, geo.lat!]));
|
|
||||||
const feature = new Feature({
|
|
||||||
geometry: point,
|
|
||||||
});
|
|
||||||
feature.setStyle(
|
|
||||||
new Style({
|
|
||||||
image: new Icon({
|
|
||||||
anchor: [0.5, 1],
|
|
||||||
offset: [0, 0],
|
|
||||||
opacity: 1,
|
|
||||||
scale: 1,
|
|
||||||
rotateWithView: false,
|
|
||||||
rotation: 0,
|
|
||||||
src: `${globalAK().api.base}static/dist/assets/images/map_pin.svg`,
|
|
||||||
}),
|
|
||||||
}),
|
|
||||||
);
|
|
||||||
feature.setId(event.pk);
|
|
||||||
this.vectorLayer?.source?.addFeature(feature);
|
|
||||||
});
|
|
||||||
// Zoom to show points better
|
|
||||||
this.map.map.getView().fit(this.vectorLayer.source.getExtent(), {
|
|
||||||
padding: [
|
|
||||||
this.zoomPaddingPx,
|
|
||||||
this.zoomPaddingPx,
|
|
||||||
this.zoomPaddingPx,
|
|
||||||
this.zoomPaddingPx,
|
|
||||||
],
|
|
||||||
duration: 500,
|
|
||||||
maxZoom: 4.5,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
render(): TemplateResult {
|
|
||||||
return html`<div class="pf-c-card">
|
|
||||||
<ak-map>
|
|
||||||
<ol-select
|
|
||||||
@feature-selected=${(ev: CustomEvent<{ feature: Feature }>) => {
|
|
||||||
const eventId = ev.detail.feature.getId();
|
|
||||||
this.dispatchEvent(
|
|
||||||
new CustomEvent("select-event", {
|
|
||||||
composed: true,
|
|
||||||
bubbles: true,
|
|
||||||
detail: {
|
|
||||||
eventId: eventId,
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
);
|
|
||||||
}}
|
|
||||||
></ol-select>
|
|
||||||
<ol-layer-openstreetmap></ol-layer-openstreetmap>
|
|
||||||
<ol-layer-vector></ol-layer-vector>
|
|
||||||
</ak-map>
|
|
||||||
</div>`;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -11,14 +11,11 @@ import { EventVolume, EventsApi, EventsEventsListRequest } from "@goauthentik/ap
|
|||||||
|
|
||||||
@customElement("ak-events-volume-chart")
|
@customElement("ak-events-volume-chart")
|
||||||
export class EventVolumeChart extends EventChart {
|
export class EventVolumeChart extends EventChart {
|
||||||
@property({ attribute: "with-map", type: Boolean })
|
|
||||||
withMap = false;
|
|
||||||
|
|
||||||
_query?: EventsEventsListRequest;
|
_query?: EventsEventsListRequest;
|
||||||
|
|
||||||
@property({ attribute: false })
|
@property({ attribute: false })
|
||||||
set query(value: EventsEventsListRequest | undefined) {
|
set query(value: EventsEventsListRequest | undefined) {
|
||||||
if (JSON.stringify(value) !== JSON.stringify(this._query)) return;
|
if (JSON.stringify(this._query) === JSON.stringify(value)) return;
|
||||||
this._query = value;
|
this._query = value;
|
||||||
this.refreshHandler();
|
this.refreshHandler();
|
||||||
}
|
}
|
||||||
@ -27,9 +24,6 @@ export class EventVolumeChart extends EventChart {
|
|||||||
return super.styles.concat(
|
return super.styles.concat(
|
||||||
PFCard,
|
PFCard,
|
||||||
css`
|
css`
|
||||||
:host([with-map]) .pf-c-card {
|
|
||||||
height: 24rem;
|
|
||||||
}
|
|
||||||
.pf-c-card {
|
.pf-c-card {
|
||||||
height: 20rem;
|
height: 20rem;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -66,7 +66,7 @@ export class RuleForm extends ModelForm<NotificationRule, string> {
|
|||||||
required
|
required
|
||||||
/>
|
/>
|
||||||
</ak-form-element-horizontal>
|
</ak-form-element-horizontal>
|
||||||
<ak-form-element-horizontal label=${msg("Group")} name="destinationGroup">
|
<ak-form-element-horizontal label=${msg("Group")} name="group">
|
||||||
<ak-search-select
|
<ak-search-select
|
||||||
.fetchObjects=${async (query?: string): Promise<Group[]> => {
|
.fetchObjects=${async (query?: string): Promise<Group[]> => {
|
||||||
const args: CoreGroupsListRequest = {
|
const args: CoreGroupsListRequest = {
|
||||||
@ -86,44 +86,14 @@ export class RuleForm extends ModelForm<NotificationRule, string> {
|
|||||||
return group?.pk;
|
return group?.pk;
|
||||||
}}
|
}}
|
||||||
.selected=${(group: Group): boolean => {
|
.selected=${(group: Group): boolean => {
|
||||||
return group.pk === this.instance?.destinationGroup;
|
return group.pk === this.instance?.group;
|
||||||
}}
|
}}
|
||||||
blankable
|
blankable
|
||||||
>
|
>
|
||||||
</ak-search-select>
|
</ak-search-select>
|
||||||
<p class="pf-c-form__helper-text">
|
|
||||||
${msg("Select the group of users which the alerts are sent to. ")}
|
|
||||||
</p>
|
|
||||||
<p class="pf-c-form__helper-text">
|
<p class="pf-c-form__helper-text">
|
||||||
${msg(
|
${msg(
|
||||||
"If no group is selected and 'Send notification to event user' is disabled the rule is disabled. ",
|
"Select the group of users which the alerts are sent to. If no group is selected the rule is disabled.",
|
||||||
)}
|
|
||||||
</p>
|
|
||||||
</ak-form-element-horizontal>
|
|
||||||
<ak-form-element-horizontal name="destinationEventUser">
|
|
||||||
<label class="pf-c-switch">
|
|
||||||
<input
|
|
||||||
class="pf-c-switch__input"
|
|
||||||
type="checkbox"
|
|
||||||
?checked=${this.instance?.destinationEventUser ?? false}
|
|
||||||
/>
|
|
||||||
<span class="pf-c-switch__toggle">
|
|
||||||
<span class="pf-c-switch__toggle-icon">
|
|
||||||
<i class="fas fa-check" aria-hidden="true"></i>
|
|
||||||
</span>
|
|
||||||
</span>
|
|
||||||
<span class="pf-c-switch__label"
|
|
||||||
>${msg("Send notification to event user")}</span
|
|
||||||
>
|
|
||||||
</label>
|
|
||||||
<p class="pf-c-form__helper-text">
|
|
||||||
${msg(
|
|
||||||
"When enabled, notification will be sent to the user that triggered the event in addition to any users in the group above. The event user will always be the first user, to send a notification only to the event user enabled 'Send once' in the notification transport.",
|
|
||||||
)}
|
|
||||||
</p>
|
|
||||||
<p class="pf-c-form__helper-text">
|
|
||||||
${msg(
|
|
||||||
"If no group is selected and 'Send notification to event user' is disabled the rule is disabled. ",
|
|
||||||
)}
|
)}
|
||||||
</p>
|
</p>
|
||||||
</ak-form-element-horizontal>
|
</ak-form-element-horizontal>
|
||||||
|
|||||||
@ -3,7 +3,6 @@ import "@goauthentik/admin/policies/BoundPoliciesList";
|
|||||||
import "@goauthentik/admin/rbac/ObjectPermissionModal";
|
import "@goauthentik/admin/rbac/ObjectPermissionModal";
|
||||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
|
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
|
||||||
import { severityToLabel } from "@goauthentik/common/labels";
|
import { severityToLabel } from "@goauthentik/common/labels";
|
||||||
import "@goauthentik/components/ak-status-label";
|
|
||||||
import "@goauthentik/elements/buttons/SpinnerButton";
|
import "@goauthentik/elements/buttons/SpinnerButton";
|
||||||
import "@goauthentik/elements/forms/DeleteBulkForm";
|
import "@goauthentik/elements/forms/DeleteBulkForm";
|
||||||
import "@goauthentik/elements/forms/ModalForm";
|
import "@goauthentik/elements/forms/ModalForm";
|
||||||
@ -52,7 +51,6 @@ export class RuleListPage extends TablePage<NotificationRule> {
|
|||||||
|
|
||||||
columns(): TableColumn[] {
|
columns(): TableColumn[] {
|
||||||
return [
|
return [
|
||||||
new TableColumn(msg("Enabled")),
|
|
||||||
new TableColumn(msg("Name"), "name"),
|
new TableColumn(msg("Name"), "name"),
|
||||||
new TableColumn(msg("Severity"), "severity"),
|
new TableColumn(msg("Severity"), "severity"),
|
||||||
new TableColumn(msg("Sent to group"), "group"),
|
new TableColumn(msg("Sent to group"), "group"),
|
||||||
@ -83,16 +81,12 @@ export class RuleListPage extends TablePage<NotificationRule> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
row(item: NotificationRule): TemplateResult[] {
|
row(item: NotificationRule): TemplateResult[] {
|
||||||
const enabled = !!item.destinationGroupObj || item.destinationEventUser;
|
|
||||||
return [
|
return [
|
||||||
html`<ak-status-label type="warning" ?good=${enabled}></ak-status-label>`,
|
|
||||||
html`${item.name}`,
|
html`${item.name}`,
|
||||||
html`${severityToLabel(item.severity)}`,
|
html`${severityToLabel(item.severity)}`,
|
||||||
html`${item.destinationGroupObj
|
html`${item.groupObj
|
||||||
? html`<a href="#/identity/groups/${item.destinationGroupObj.pk}"
|
? html`<a href="#/identity/groups/${item.groupObj.pk}">${item.groupObj.name}</a>`
|
||||||
>${item.destinationGroupObj.name}</a
|
: msg("None (rule disabled)")}`,
|
||||||
>`
|
|
||||||
: msg("-")}`,
|
|
||||||
html`<ak-forms-modal>
|
html`<ak-forms-modal>
|
||||||
<span slot="submit"> ${msg("Update")} </span>
|
<span slot="submit"> ${msg("Update")} </span>
|
||||||
<span slot="header"> ${msg("Update Notification Rule")} </span>
|
<span slot="header"> ${msg("Update Notification Rule")} </span>
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
|
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
|
||||||
import "@goauthentik/components/ak-hidden-text-input";
|
|
||||||
import "@goauthentik/elements/forms/HorizontalFormElement";
|
import "@goauthentik/elements/forms/HorizontalFormElement";
|
||||||
import { ModelForm } from "@goauthentik/elements/forms/ModelForm";
|
import { ModelForm } from "@goauthentik/elements/forms/ModelForm";
|
||||||
import "@goauthentik/elements/forms/Radio";
|
import "@goauthentik/elements/forms/Radio";
|
||||||
@ -101,15 +100,18 @@ export class TransportForm extends ModelForm<NotificationTransport, string> {
|
|||||||
>
|
>
|
||||||
</ak-radio>
|
</ak-radio>
|
||||||
</ak-form-element-horizontal>
|
</ak-form-element-horizontal>
|
||||||
<ak-hidden-text-input
|
<ak-form-element-horizontal
|
||||||
name="webhookUrl"
|
|
||||||
label=${msg("Webhook URL")}
|
|
||||||
value="${this.instance?.webhookUrl || ""}"
|
|
||||||
input-hint="code"
|
|
||||||
?hidden=${!this.showWebhook}
|
?hidden=${!this.showWebhook}
|
||||||
|
label=${msg("Webhook URL")}
|
||||||
|
name="webhookUrl"
|
||||||
required
|
required
|
||||||
>
|
>
|
||||||
</ak-hidden-text-input>
|
<input
|
||||||
|
type="text"
|
||||||
|
value="${ifDefined(this.instance?.webhookUrl)}"
|
||||||
|
class="pf-c-form-control"
|
||||||
|
/>
|
||||||
|
</ak-form-element-horizontal>
|
||||||
<ak-form-element-horizontal
|
<ak-form-element-horizontal
|
||||||
?hidden=${!this.showWebhook}
|
?hidden=${!this.showWebhook}
|
||||||
label=${msg("Webhook Body Mapping")}
|
label=${msg("Webhook Body Mapping")}
|
||||||
|
|||||||
@ -16,6 +16,7 @@ import {
|
|||||||
FlowsInstancesListDesignationEnum,
|
FlowsInstancesListDesignationEnum,
|
||||||
PropertymappingsApi,
|
PropertymappingsApi,
|
||||||
PropertymappingsProviderSamlListRequest,
|
PropertymappingsProviderSamlListRequest,
|
||||||
|
SAMLNameIDPolicyEnum,
|
||||||
SAMLPropertyMapping,
|
SAMLPropertyMapping,
|
||||||
SAMLProvider,
|
SAMLProvider,
|
||||||
SpBindingEnum,
|
SpBindingEnum,
|
||||||
@ -316,6 +317,54 @@ export function renderForm(
|
|||||||
"When using IDP-initiated logins, the relay state will be set to this value.",
|
"When using IDP-initiated logins, the relay state will be set to this value.",
|
||||||
)}
|
)}
|
||||||
></ak-text-input>
|
></ak-text-input>
|
||||||
|
<ak-form-element-horizontal
|
||||||
|
label=${msg("Default NameID Policy")}
|
||||||
|
required
|
||||||
|
name="defaultNameIdPolicy"
|
||||||
|
>
|
||||||
|
<select class="pf-c-form-control">
|
||||||
|
<option
|
||||||
|
value=${SAMLNameIDPolicyEnum.UrnOasisNamesTcSaml20NameidFormatPersistent}
|
||||||
|
?selected=${provider?.defaultNameIdPolicy ===
|
||||||
|
SAMLNameIDPolicyEnum.UrnOasisNamesTcSaml20NameidFormatPersistent}
|
||||||
|
>
|
||||||
|
${msg("Persistent")}
|
||||||
|
</option>
|
||||||
|
<option
|
||||||
|
value=${SAMLNameIDPolicyEnum.UrnOasisNamesTcSaml11NameidFormatEmailAddress}
|
||||||
|
?selected=${provider?.defaultNameIdPolicy ===
|
||||||
|
SAMLNameIDPolicyEnum.UrnOasisNamesTcSaml11NameidFormatEmailAddress}
|
||||||
|
>
|
||||||
|
${msg("Email address")}
|
||||||
|
</option>
|
||||||
|
<option
|
||||||
|
value=${SAMLNameIDPolicyEnum.UrnOasisNamesTcSaml20NameidFormatWindowsDomainQualifiedName}
|
||||||
|
?selected=${provider?.defaultNameIdPolicy ===
|
||||||
|
SAMLNameIDPolicyEnum.UrnOasisNamesTcSaml20NameidFormatWindowsDomainQualifiedName}
|
||||||
|
>
|
||||||
|
${msg("Windows")}
|
||||||
|
</option>
|
||||||
|
<option
|
||||||
|
value=${SAMLNameIDPolicyEnum.UrnOasisNamesTcSaml11NameidFormatX509SubjectName}
|
||||||
|
?selected=${provider?.defaultNameIdPolicy ===
|
||||||
|
SAMLNameIDPolicyEnum.UrnOasisNamesTcSaml11NameidFormatX509SubjectName}
|
||||||
|
>
|
||||||
|
${msg("X509 Subject")}
|
||||||
|
</option>
|
||||||
|
<option
|
||||||
|
value=${SAMLNameIDPolicyEnum.UrnOasisNamesTcSaml20NameidFormatTransient}
|
||||||
|
?selected=${provider?.defaultNameIdPolicy ===
|
||||||
|
SAMLNameIDPolicyEnum.UrnOasisNamesTcSaml20NameidFormatTransient}
|
||||||
|
>
|
||||||
|
${msg("Transient")}
|
||||||
|
</option>
|
||||||
|
</select>
|
||||||
|
<p class="pf-c-form__helper-text">
|
||||||
|
${msg(
|
||||||
|
"Configure the default NameID Policy used by IDP-initiated logins and when an incoming assertion doesn't specify a NameID Policy (also applies when using a custom NameID Mapping).",
|
||||||
|
)}
|
||||||
|
</p>
|
||||||
|
</ak-form-element-horizontal>
|
||||||
|
|
||||||
<ak-radio-input
|
<ak-radio-input
|
||||||
name="digestAlgorithm"
|
name="digestAlgorithm"
|
||||||
|
|||||||
@ -26,7 +26,7 @@ import {
|
|||||||
DigestAlgorithmEnum,
|
DigestAlgorithmEnum,
|
||||||
FlowsInstancesListDesignationEnum,
|
FlowsInstancesListDesignationEnum,
|
||||||
GroupMatchingModeEnum,
|
GroupMatchingModeEnum,
|
||||||
NameIdPolicyEnum,
|
SAMLNameIDPolicyEnum,
|
||||||
SAMLSource,
|
SAMLSource,
|
||||||
SignatureAlgorithmEnum,
|
SignatureAlgorithmEnum,
|
||||||
SourcesApi,
|
SourcesApi,
|
||||||
@ -353,37 +353,37 @@ export class SAMLSourceForm extends WithCapabilitiesConfig(BaseSourceForm<SAMLSo
|
|||||||
>
|
>
|
||||||
<select class="pf-c-form-control">
|
<select class="pf-c-form-control">
|
||||||
<option
|
<option
|
||||||
value=${NameIdPolicyEnum.UrnOasisNamesTcSaml20NameidFormatPersistent}
|
value=${SAMLNameIDPolicyEnum.UrnOasisNamesTcSaml20NameidFormatPersistent}
|
||||||
?selected=${this.instance?.nameIdPolicy ===
|
?selected=${this.instance?.nameIdPolicy ===
|
||||||
NameIdPolicyEnum.UrnOasisNamesTcSaml20NameidFormatPersistent}
|
SAMLNameIDPolicyEnum.UrnOasisNamesTcSaml20NameidFormatPersistent}
|
||||||
>
|
>
|
||||||
${msg("Persistent")}
|
${msg("Persistent")}
|
||||||
</option>
|
</option>
|
||||||
<option
|
<option
|
||||||
value=${NameIdPolicyEnum.UrnOasisNamesTcSaml11NameidFormatEmailAddress}
|
value=${SAMLNameIDPolicyEnum.UrnOasisNamesTcSaml11NameidFormatEmailAddress}
|
||||||
?selected=${this.instance?.nameIdPolicy ===
|
?selected=${this.instance?.nameIdPolicy ===
|
||||||
NameIdPolicyEnum.UrnOasisNamesTcSaml11NameidFormatEmailAddress}
|
SAMLNameIDPolicyEnum.UrnOasisNamesTcSaml11NameidFormatEmailAddress}
|
||||||
>
|
>
|
||||||
${msg("Email address")}
|
${msg("Email address")}
|
||||||
</option>
|
</option>
|
||||||
<option
|
<option
|
||||||
value=${NameIdPolicyEnum.UrnOasisNamesTcSaml20NameidFormatWindowsDomainQualifiedName}
|
value=${SAMLNameIDPolicyEnum.UrnOasisNamesTcSaml20NameidFormatWindowsDomainQualifiedName}
|
||||||
?selected=${this.instance?.nameIdPolicy ===
|
?selected=${this.instance?.nameIdPolicy ===
|
||||||
NameIdPolicyEnum.UrnOasisNamesTcSaml20NameidFormatWindowsDomainQualifiedName}
|
SAMLNameIDPolicyEnum.UrnOasisNamesTcSaml20NameidFormatWindowsDomainQualifiedName}
|
||||||
>
|
>
|
||||||
${msg("Windows")}
|
${msg("Windows")}
|
||||||
</option>
|
</option>
|
||||||
<option
|
<option
|
||||||
value=${NameIdPolicyEnum.UrnOasisNamesTcSaml11NameidFormatX509SubjectName}
|
value=${SAMLNameIDPolicyEnum.UrnOasisNamesTcSaml11NameidFormatX509SubjectName}
|
||||||
?selected=${this.instance?.nameIdPolicy ===
|
?selected=${this.instance?.nameIdPolicy ===
|
||||||
NameIdPolicyEnum.UrnOasisNamesTcSaml11NameidFormatX509SubjectName}
|
SAMLNameIDPolicyEnum.UrnOasisNamesTcSaml11NameidFormatX509SubjectName}
|
||||||
>
|
>
|
||||||
${msg("X509 Subject")}
|
${msg("X509 Subject")}
|
||||||
</option>
|
</option>
|
||||||
<option
|
<option
|
||||||
value=${NameIdPolicyEnum.UrnOasisNamesTcSaml20NameidFormatTransient}
|
value=${SAMLNameIDPolicyEnum.UrnOasisNamesTcSaml20NameidFormatTransient}
|
||||||
?selected=${this.instance?.nameIdPolicy ===
|
?selected=${this.instance?.nameIdPolicy ===
|
||||||
NameIdPolicyEnum.UrnOasisNamesTcSaml20NameidFormatTransient}
|
SAMLNameIDPolicyEnum.UrnOasisNamesTcSaml20NameidFormatTransient}
|
||||||
>
|
>
|
||||||
${msg("Transient")}
|
${msg("Transient")}
|
||||||
</option>
|
</option>
|
||||||
|
|||||||
@ -85,7 +85,6 @@ export class UserListPage extends WithBrandConfig(WithCapabilitiesConfig(TablePa
|
|||||||
expandable = true;
|
expandable = true;
|
||||||
checkbox = true;
|
checkbox = true;
|
||||||
clearOnRefresh = true;
|
clearOnRefresh = true;
|
||||||
supportsQL = true;
|
|
||||||
|
|
||||||
searchEnabled(): boolean {
|
searchEnabled(): boolean {
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@ -1,77 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
width="5.6444445mm"
|
|
||||||
height="9.847393mm"
|
|
||||||
viewBox="0 0 20 34.892337"
|
|
||||||
id="svg3455"
|
|
||||||
version="1.1"
|
|
||||||
inkscape:version="0.91 r13725"
|
|
||||||
sodipodi:docname="Map Pin.svg">
|
|
||||||
<defs
|
|
||||||
id="defs3457" />
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:zoom="12.181359"
|
|
||||||
inkscape:cx="8.4346812"
|
|
||||||
inkscape:cy="14.715224"
|
|
||||||
inkscape:document-units="px"
|
|
||||||
inkscape:current-layer="layer1"
|
|
||||||
showgrid="false"
|
|
||||||
inkscape:window-width="1024"
|
|
||||||
inkscape:window-height="705"
|
|
||||||
inkscape:window-x="-4"
|
|
||||||
inkscape:window-y="-4"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
fit-margin-top="0"
|
|
||||||
fit-margin-left="0"
|
|
||||||
fit-margin-right="0"
|
|
||||||
fit-margin-bottom="0" />
|
|
||||||
<metadata
|
|
||||||
id="metadata3460">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
<dc:title></dc:title>
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
inkscape:label="Layer 1"
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer1"
|
|
||||||
transform="translate(-814.59595,-274.38623)">
|
|
||||||
<g
|
|
||||||
id="g3477"
|
|
||||||
transform="matrix(1.1855854,0,0,1.1855854,-151.17715,-57.3976)">
|
|
||||||
<path
|
|
||||||
sodipodi:nodetypes="sscccccsscs"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="path4337-3"
|
|
||||||
d="m 817.11249,282.97118 c -1.25816,1.34277 -2.04623,3.29881 -2.01563,5.13867 0.0639,3.84476 1.79693,5.3002 4.56836,10.59179 0.99832,2.32851 2.04027,4.79237 3.03125,8.87305 0.13772,0.60193 0.27203,1.16104 0.33416,1.20948 0.0621,0.0485 0.19644,-0.51262 0.33416,-1.11455 0.99098,-4.08068 2.03293,-6.54258 3.03125,-8.87109 2.77143,-5.29159 4.50444,-6.74704 4.56836,-10.5918 0.0306,-1.83986 -0.75942,-3.79785 -2.01758,-5.14062 -1.43724,-1.53389 -3.60504,-2.66908 -5.91619,-2.71655 -2.31115,-0.0475 -4.4809,1.08773 -5.91814,2.62162 z"
|
|
||||||
style="display:inline;opacity:1;fill:#fd4b2d;fill-opacity:1;" />
|
|
||||||
<circle
|
|
||||||
r="3.0355"
|
|
||||||
cy="288.25278"
|
|
||||||
cx="823.03064"
|
|
||||||
id="path3049"
|
|
||||||
style="display:inline;opacity:1;fill:#590000;fill-opacity:1;stroke-width:0" />
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 2.7 KiB |
@ -12,8 +12,6 @@ export interface EventGeo {
|
|||||||
city?: string;
|
city?: string;
|
||||||
country?: string;
|
country?: string;
|
||||||
continent?: string;
|
continent?: string;
|
||||||
lat?: number;
|
|
||||||
long?: number;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface EventModel {
|
export interface EventModel {
|
||||||
|
|||||||
@ -1,306 +0,0 @@
|
|||||||
import { AKElement } from "@goauthentik/elements/Base";
|
|
||||||
import "@goauthentik/elements/buttons/Dropdown";
|
|
||||||
import { PaginatedResponse } from "@goauthentik/elements/table/Table";
|
|
||||||
import DjangoQL, { Introspections } from "@mrmarble/djangoql-completion";
|
|
||||||
|
|
||||||
import { msg } from "@lit/localize";
|
|
||||||
import { CSSResult, TemplateResult, css, html, nothing } from "lit";
|
|
||||||
import { customElement, property, query, state } from "lit/decorators.js";
|
|
||||||
import { ifDefined } from "lit/directives/if-defined.js";
|
|
||||||
|
|
||||||
import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css";
|
|
||||||
import PFSearchInput from "@patternfly/patternfly/components/SearchInput/search-input.css";
|
|
||||||
import PFBase from "@patternfly/patternfly/patternfly-base.css";
|
|
||||||
|
|
||||||
export class QL extends DjangoQL {
|
|
||||||
createCompletionElement() {
|
|
||||||
this.completionEnabled = !!this.options.completionEnabled;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
logError(message: string): void {
|
|
||||||
console.warn(`authentik/ql: ${message}`);
|
|
||||||
}
|
|
||||||
textareaResize() {}
|
|
||||||
}
|
|
||||||
|
|
||||||
@customElement("ak-search-ql")
|
|
||||||
export class QLSearch extends AKElement {
|
|
||||||
@property()
|
|
||||||
value?: string;
|
|
||||||
|
|
||||||
@query("[name=search]")
|
|
||||||
searchElement?: HTMLTextAreaElement;
|
|
||||||
|
|
||||||
@state()
|
|
||||||
menuOpen = false;
|
|
||||||
|
|
||||||
@property()
|
|
||||||
onSearch?: (value: string) => void;
|
|
||||||
|
|
||||||
@state()
|
|
||||||
selected?: number;
|
|
||||||
|
|
||||||
@state()
|
|
||||||
cursorX: number = 0;
|
|
||||||
|
|
||||||
@state()
|
|
||||||
cursorY: number = 0;
|
|
||||||
|
|
||||||
ql?: QL;
|
|
||||||
canvas?: CanvasRenderingContext2D;
|
|
||||||
|
|
||||||
set apiResponse(value: PaginatedResponse<unknown> | undefined) {
|
|
||||||
if (!value || !value.autocomplete || !this.ql) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
this.ql.loadIntrospections(value.autocomplete as unknown as Introspections);
|
|
||||||
}
|
|
||||||
|
|
||||||
static get styles(): CSSResult[] {
|
|
||||||
return [
|
|
||||||
PFBase,
|
|
||||||
PFFormControl,
|
|
||||||
PFSearchInput,
|
|
||||||
css`
|
|
||||||
::-webkit-search-cancel-button {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.ql.pf-c-form-control {
|
|
||||||
font-family: monospace;
|
|
||||||
resize: vertical;
|
|
||||||
height: 2.25em;
|
|
||||||
}
|
|
||||||
.selected {
|
|
||||||
background-color: var(--pf-c-search-input__menu-item--hover--BackgroundColor);
|
|
||||||
}
|
|
||||||
:host([theme="dark"]) .pf-c-search-input__menu {
|
|
||||||
--pf-c-search-input__menu--BackgroundColor: var(--ak-dark-background-light-ish);
|
|
||||||
color: var(--ak-dark-foreground);
|
|
||||||
}
|
|
||||||
:host([theme="dark"]) .pf-c-search-input__menu-item {
|
|
||||||
--pf-c-search-input__menu-item--Color: var(--ak-dark-foreground);
|
|
||||||
}
|
|
||||||
:host([theme="dark"]) .pf-c-search-input__menu-item:hover {
|
|
||||||
--pf-c-search-input__menu-item--BackgroundColor: var(
|
|
||||||
--ak-dark-background-lighter
|
|
||||||
);
|
|
||||||
}
|
|
||||||
:host([theme="dark"]) .pf-c-search-input__menu-list-item.selected {
|
|
||||||
--pf-c-search-input__menu-item--hover--BackgroundColor: var(
|
|
||||||
--ak-dark-background-light
|
|
||||||
);
|
|
||||||
}
|
|
||||||
:host([theme="dark"]) .pf-c-search-input__text::before {
|
|
||||||
border: 0;
|
|
||||||
}
|
|
||||||
.pf-c-search-input__menu {
|
|
||||||
position: fixed;
|
|
||||||
min-width: 0;
|
|
||||||
}
|
|
||||||
`,
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
firstUpdated() {
|
|
||||||
if (!this.searchElement) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
this.ql = new QL({
|
|
||||||
completionEnabled: true,
|
|
||||||
introspections: {
|
|
||||||
current_model: "",
|
|
||||||
models: {},
|
|
||||||
},
|
|
||||||
selector: this.searchElement,
|
|
||||||
autoResize: false,
|
|
||||||
});
|
|
||||||
const canvas = document.createElement("canvas");
|
|
||||||
const context = canvas.getContext("2d");
|
|
||||||
if (!context) {
|
|
||||||
console.error("authentik/ql: failed to get canvas context");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
context.font = window.getComputedStyle(this.searchElement).font;
|
|
||||||
this.canvas = context;
|
|
||||||
}
|
|
||||||
|
|
||||||
refreshCompletions() {
|
|
||||||
this.value = this.searchElement?.value;
|
|
||||||
if (!this.ql) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
this.ql.generateSuggestions();
|
|
||||||
if (this.ql.suggestions.length < 1 || this.ql.loading) {
|
|
||||||
this.menuOpen = false;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
this.menuOpen = true;
|
|
||||||
this.updateDropdownPosition();
|
|
||||||
this.requestUpdate();
|
|
||||||
}
|
|
||||||
|
|
||||||
updateDropdownPosition() {
|
|
||||||
if (!this.searchElement) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
const bcr = this.getBoundingClientRect();
|
|
||||||
// We need the width of a letter to measure x; we use a monospaced font but still
|
|
||||||
// check the length for `m` as its the widest ASCII char
|
|
||||||
const metrics = this.canvas?.measureText("m");
|
|
||||||
const letterWidth = Math.ceil(metrics?.width || 0) + 1;
|
|
||||||
|
|
||||||
// Mostly static variables for padding, font line-height and how many
|
|
||||||
const lineHeight = parseInt(window.getComputedStyle(this.searchElement).lineHeight, 10);
|
|
||||||
const paddingTop = parseInt(window.getComputedStyle(this.searchElement).paddingTop, 10);
|
|
||||||
const paddingLeft = parseInt(window.getComputedStyle(this.searchElement).paddingLeft, 10);
|
|
||||||
const paddingRight = parseInt(window.getComputedStyle(this.searchElement).paddingRight, 10);
|
|
||||||
const actualInnerWidth = bcr.width - paddingLeft - paddingRight;
|
|
||||||
|
|
||||||
let relX = 0;
|
|
||||||
let relY = 1;
|
|
||||||
let letterIndex = 0;
|
|
||||||
|
|
||||||
this.searchElement.value.split(" ").some((word, idx) => {
|
|
||||||
letterIndex += word.length;
|
|
||||||
const newRelX = relX + word.length * letterWidth;
|
|
||||||
if (newRelX > actualInnerWidth) {
|
|
||||||
relY += 1;
|
|
||||||
if (letterIndex > this.searchElement!.selectionStart) {
|
|
||||||
relX =
|
|
||||||
letterWidth * word.length -
|
|
||||||
(letterIndex - this.searchElement!.selectionStart) * letterWidth;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
relX = word.length * letterWidth;
|
|
||||||
} else {
|
|
||||||
relX = newRelX + 1;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
this.cursorX = bcr.x + paddingLeft + relX;
|
|
||||||
this.cursorY = bcr.y + paddingTop + relY * lineHeight;
|
|
||||||
}
|
|
||||||
|
|
||||||
onKeyDown(ev: KeyboardEvent) {
|
|
||||||
this.updateDropdownPosition();
|
|
||||||
if (ev.key === "Enter" && ev.metaKey && this.onSearch && this.searchElement) {
|
|
||||||
this.onSearch(this.searchElement?.value);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!this.menuOpen) return;
|
|
||||||
switch (ev.key) {
|
|
||||||
case "ArrowUp":
|
|
||||||
if (this.ql?.suggestions.length) {
|
|
||||||
if (this.selected === undefined) {
|
|
||||||
this.selected = this.ql?.suggestions.length - 1;
|
|
||||||
} else if (this.selected === 0) {
|
|
||||||
this.selected = undefined;
|
|
||||||
} else {
|
|
||||||
this.selected -= 1;
|
|
||||||
}
|
|
||||||
this.refreshCompletions();
|
|
||||||
ev.preventDefault();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case "ArrowDown":
|
|
||||||
if (this.ql?.suggestions.length) {
|
|
||||||
if (this.selected === undefined) {
|
|
||||||
this.selected = 0;
|
|
||||||
} else if (this.selected < this.ql?.suggestions.length - 1) {
|
|
||||||
this.selected += 1;
|
|
||||||
} else {
|
|
||||||
this.selected = undefined;
|
|
||||||
}
|
|
||||||
this.refreshCompletions();
|
|
||||||
ev.preventDefault();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case "Tab":
|
|
||||||
if (this.selected) {
|
|
||||||
this.ql?.selectCompletion(this.selected);
|
|
||||||
ev.preventDefault();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case "Enter":
|
|
||||||
// Technically this is a textarea, due to automatic multi-line feature,
|
|
||||||
// but other than that it should look and behave like a normal input.
|
|
||||||
// So expected behavior when pressing Enter is to submit the form,
|
|
||||||
// not to add a new line.
|
|
||||||
if (this.selected !== undefined) {
|
|
||||||
this.ql?.selectCompletion(this.selected);
|
|
||||||
}
|
|
||||||
ev.preventDefault();
|
|
||||||
break;
|
|
||||||
case "Escape":
|
|
||||||
this.menuOpen = false;
|
|
||||||
break;
|
|
||||||
case "Shift": // Shift
|
|
||||||
case "Control": // Ctrl
|
|
||||||
case "Alt": // Alt
|
|
||||||
case "Meta": // Windows Key or Cmd on Mac
|
|
||||||
// Control keys shouldn't trigger completion popup
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
renderMenu() {
|
|
||||||
if (!this.menuOpen || !this.ql) {
|
|
||||||
return nothing;
|
|
||||||
}
|
|
||||||
return html`
|
|
||||||
<div
|
|
||||||
class="pf-c-search-input__menu"
|
|
||||||
style="left: ${this.cursorX}px; top: ${this.cursorY}px;"
|
|
||||||
>
|
|
||||||
<ul class="pf-c-search-input__menu-list">
|
|
||||||
${this.ql.suggestions.map((suggestion, idx) => {
|
|
||||||
return html`<li
|
|
||||||
class="pf-c-search-input__menu-list-item ${this.selected === idx
|
|
||||||
? "selected"
|
|
||||||
: ""}"
|
|
||||||
>
|
|
||||||
<button
|
|
||||||
class="pf-c-search-input__menu-item"
|
|
||||||
type="button"
|
|
||||||
@click=${() => {
|
|
||||||
this.ql?.selectCompletion(idx);
|
|
||||||
this.refreshCompletions();
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<span class="pf-c-search-input__menu-item-text"
|
|
||||||
>${suggestion.text}</span
|
|
||||||
>
|
|
||||||
</button>
|
|
||||||
</li>`;
|
|
||||||
})}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
`;
|
|
||||||
}
|
|
||||||
|
|
||||||
render(): TemplateResult {
|
|
||||||
return html`<div class="pf-c-search-input">
|
|
||||||
<div class="pf-c-search-input__bar">
|
|
||||||
<span class="pf-c-search-input__text">
|
|
||||||
<textarea
|
|
||||||
class="pf-c-form-control ql"
|
|
||||||
name="search"
|
|
||||||
placeholder=${msg("Search...")}
|
|
||||||
spellcheck="false"
|
|
||||||
@input=${(ev: InputEvent) => this.refreshCompletions()}
|
|
||||||
@keydown=${this.onKeyDown}
|
|
||||||
>
|
|
||||||
${ifDefined(this.value)}</textarea
|
|
||||||
>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
${this.renderMenu()}
|
|
||||||
</div>`;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
declare global {
|
|
||||||
interface HTMLElementTagNameMap {
|
|
||||||
"ak-search-ql": QLSearch;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -76,6 +76,7 @@ export class ObjectChangelog extends Table<Event> {
|
|||||||
html`<div>${formatElapsedTime(item.created)}</div>
|
html`<div>${formatElapsedTime(item.created)}</div>
|
||||||
<small>${item.created.toLocaleString()}</small>`,
|
<small>${item.created.toLocaleString()}</small>`,
|
||||||
html`<div>${item.clientIp || msg("-")}</div>
|
html`<div>${item.clientIp || msg("-")}</div>
|
||||||
|
|
||||||
<small>${EventGeo(item)}</small>`,
|
<small>${EventGeo(item)}</small>`,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
import { WithLicenseSummary } from "#elements/mixins/license";
|
|
||||||
import { EVENT_REFRESH } from "@goauthentik/common/constants";
|
import { EVENT_REFRESH } from "@goauthentik/common/constants";
|
||||||
import {
|
import {
|
||||||
APIError,
|
APIError,
|
||||||
@ -32,20 +31,13 @@ import PFToolbar from "@patternfly/patternfly/components/Toolbar/toolbar.css";
|
|||||||
import PFBullseye from "@patternfly/patternfly/layouts/Bullseye/bullseye.css";
|
import PFBullseye from "@patternfly/patternfly/layouts/Bullseye/bullseye.css";
|
||||||
import PFBase from "@patternfly/patternfly/patternfly-base.css";
|
import PFBase from "@patternfly/patternfly/patternfly-base.css";
|
||||||
|
|
||||||
import { LicenseSummaryStatusEnum, Pagination } from "@goauthentik/api";
|
import { Pagination } from "@goauthentik/api";
|
||||||
|
|
||||||
export interface TableLike {
|
export interface TableLike {
|
||||||
order?: string;
|
order?: string;
|
||||||
fetch: () => void;
|
fetch: () => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface PaginatedResponse<T> {
|
|
||||||
pagination: Pagination;
|
|
||||||
autocomplete?: { [key: string]: string };
|
|
||||||
|
|
||||||
results: Array<T>;
|
|
||||||
}
|
|
||||||
|
|
||||||
export class TableColumn {
|
export class TableColumn {
|
||||||
title: string;
|
title: string;
|
||||||
orderBy?: string;
|
orderBy?: string;
|
||||||
@ -102,16 +94,19 @@ export class TableColumn {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export abstract class Table<T> extends WithLicenseSummary(AKElement) implements TableLike {
|
export interface PaginatedResponse<T> {
|
||||||
|
pagination: Pagination;
|
||||||
|
|
||||||
|
results: Array<T>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export abstract class Table<T> extends AKElement implements TableLike {
|
||||||
abstract apiEndpoint(): Promise<PaginatedResponse<T>>;
|
abstract apiEndpoint(): Promise<PaginatedResponse<T>>;
|
||||||
abstract columns(): TableColumn[];
|
abstract columns(): TableColumn[];
|
||||||
abstract row(item: T): SlottedTemplateResult[];
|
abstract row(item: T): SlottedTemplateResult[];
|
||||||
|
|
||||||
private isLoading = false;
|
private isLoading = false;
|
||||||
|
|
||||||
@property({ type: Boolean })
|
|
||||||
supportsQL: boolean = false;
|
|
||||||
|
|
||||||
searchEnabled(): boolean {
|
searchEnabled(): boolean {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -186,12 +181,6 @@ export abstract class Table<T> extends WithLicenseSummary(AKElement) implements
|
|||||||
PFDropdown,
|
PFDropdown,
|
||||||
PFPagination,
|
PFPagination,
|
||||||
css`
|
css`
|
||||||
.pf-c-toolbar__group.pf-m-search-filter.ql {
|
|
||||||
flex-grow: 1;
|
|
||||||
}
|
|
||||||
ak-table-search.ql {
|
|
||||||
width: 100% !important;
|
|
||||||
}
|
|
||||||
.pf-c-table thead .pf-c-table__check {
|
.pf-c-table thead .pf-c-table__check {
|
||||||
min-width: 3rem;
|
min-width: 3rem;
|
||||||
}
|
}
|
||||||
@ -485,17 +474,14 @@ export abstract class Table<T> extends WithLicenseSummary(AKElement) implements
|
|||||||
});
|
});
|
||||||
this.fetch();
|
this.fetch();
|
||||||
};
|
};
|
||||||
const isQL =
|
|
||||||
this.supportsQL && this.licenseSummary?.status !== LicenseSummaryStatusEnum.Unlicensed;
|
|
||||||
return !this.searchEnabled()
|
return !this.searchEnabled()
|
||||||
? html``
|
? html``
|
||||||
: html`<div class="pf-c-toolbar__group pf-m-search-filter ${isQL ? "ql" : ""}">
|
: html`<div class="pf-c-toolbar__group pf-m-search-filter">
|
||||||
<ak-table-search
|
<ak-table-search
|
||||||
?supportsQL=${this.supportsQL}
|
class="pf-c-toolbar__item pf-m-search-filter"
|
||||||
class="pf-c-toolbar__item pf-m-search-filter ${isQL ? "ql" : ""}"
|
|
||||||
value=${ifDefined(this.search)}
|
value=${ifDefined(this.search)}
|
||||||
.onSearch=${runSearch}
|
.onSearch=${runSearch}
|
||||||
.apiResponse=${this.data}
|
|
||||||
>
|
>
|
||||||
</ak-table-search>
|
</ak-table-search>
|
||||||
</div>`;
|
</div>`;
|
||||||
|
|||||||
@ -1,7 +1,4 @@
|
|||||||
import { WithLicenseSummary } from "#elements/mixins/license";
|
|
||||||
import "@goauthentik/components/ak-search-ql";
|
|
||||||
import { AKElement } from "@goauthentik/elements/Base";
|
import { AKElement } from "@goauthentik/elements/Base";
|
||||||
import { PaginatedResponse } from "@goauthentik/elements/table/Table";
|
|
||||||
|
|
||||||
import { msg } from "@lit/localize";
|
import { msg } from "@lit/localize";
|
||||||
import { CSSResult, TemplateResult, css, html } from "lit";
|
import { CSSResult, TemplateResult, css, html } from "lit";
|
||||||
@ -14,19 +11,11 @@ import PFInputGroup from "@patternfly/patternfly/components/InputGroup/input-gro
|
|||||||
import PFToolbar from "@patternfly/patternfly/components/Toolbar/toolbar.css";
|
import PFToolbar from "@patternfly/patternfly/components/Toolbar/toolbar.css";
|
||||||
import PFBase from "@patternfly/patternfly/patternfly-base.css";
|
import PFBase from "@patternfly/patternfly/patternfly-base.css";
|
||||||
|
|
||||||
import { LicenseSummaryStatusEnum } from "@goauthentik/api";
|
|
||||||
|
|
||||||
@customElement("ak-table-search")
|
@customElement("ak-table-search")
|
||||||
export class TableSearch extends WithLicenseSummary(AKElement) {
|
export class TableSearch extends AKElement {
|
||||||
@property()
|
@property()
|
||||||
value?: string;
|
value?: string;
|
||||||
|
|
||||||
@property({ type: Boolean })
|
|
||||||
supportsQL: boolean = false;
|
|
||||||
|
|
||||||
@property({ attribute: false })
|
|
||||||
apiResponse?: PaginatedResponse<unknown>;
|
|
||||||
|
|
||||||
@property()
|
@property()
|
||||||
onSearch?: (value: string) => void;
|
onSearch?: (value: string) => void;
|
||||||
|
|
||||||
@ -41,29 +30,24 @@ export class TableSearch extends WithLicenseSummary(AKElement) {
|
|||||||
::-webkit-search-cancel-button {
|
::-webkit-search-cancel-button {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
ak-search-ql {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
`,
|
`,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
renderInput(): TemplateResult {
|
render(): TemplateResult {
|
||||||
if (
|
return html`<form
|
||||||
this.supportsQL &&
|
class="pf-c-input-group"
|
||||||
this.licenseSummary?.status !== LicenseSummaryStatusEnum.Unlicensed
|
method="GET"
|
||||||
) {
|
@submit=${(e: Event) => {
|
||||||
return html`<ak-search-ql
|
e.preventDefault();
|
||||||
.apiResponse=${this.apiResponse}
|
|
||||||
.value=${this.value}
|
|
||||||
.onSearch=${(value: string) => {
|
|
||||||
if (!this.onSearch) return;
|
if (!this.onSearch) return;
|
||||||
this.onSearch(value);
|
const el = this.shadowRoot?.querySelector<HTMLInputElement>("input[type=search]");
|
||||||
|
if (!el) return;
|
||||||
|
if (el.value === "") return;
|
||||||
|
this.onSearch(el?.value);
|
||||||
}}
|
}}
|
||||||
name="search"
|
>
|
||||||
></ak-search-ql>`;
|
<input
|
||||||
}
|
|
||||||
return html`<input
|
|
||||||
class="pf-c-form-control"
|
class="pf-c-form-control"
|
||||||
name="search"
|
name="search"
|
||||||
type="search"
|
type="search"
|
||||||
@ -73,31 +57,12 @@ export class TableSearch extends WithLicenseSummary(AKElement) {
|
|||||||
if (!this.onSearch) return;
|
if (!this.onSearch) return;
|
||||||
this.onSearch((ev.target as HTMLInputElement).value);
|
this.onSearch((ev.target as HTMLInputElement).value);
|
||||||
}}
|
}}
|
||||||
/>`;
|
/>
|
||||||
}
|
|
||||||
|
|
||||||
render(): TemplateResult {
|
|
||||||
return html`<form
|
|
||||||
class="pf-c-input-group"
|
|
||||||
method="get"
|
|
||||||
@submit=${(e: Event) => {
|
|
||||||
e.preventDefault();
|
|
||||||
if (!this.onSearch) return;
|
|
||||||
const el = this.shadowRoot?.querySelector<HTMLInputElement | HTMLTextAreaElement>(
|
|
||||||
"[name=search]",
|
|
||||||
);
|
|
||||||
if (!el) return;
|
|
||||||
if (el.value === "") return;
|
|
||||||
this.onSearch(el?.value);
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
${this.renderInput()}
|
|
||||||
<button
|
<button
|
||||||
class="pf-c-button pf-m-control"
|
class="pf-c-button pf-m-control"
|
||||||
type="reset"
|
type="reset"
|
||||||
@click=${() => {
|
@click=${() => {
|
||||||
if (!this.onSearch) return;
|
if (!this.onSearch) return;
|
||||||
this.value = "";
|
|
||||||
this.onSearch("");
|
this.onSearch("");
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|||||||
@ -5597,6 +5597,11 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||||||
<source>Successfully created rule.</source>
|
<source>Successfully created rule.</source>
|
||||||
<target>Regel erfolgreich erstellt.</target>
|
<target>Regel erfolgreich erstellt.</target>
|
||||||
|
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="sa55ee64c5c51df0f">
|
||||||
|
<source>Select the group of users which the alerts are sent to. If no group is selected the rule is disabled.</source>
|
||||||
|
<target>Wählen Sie die Benutzergruppe aus, an die die Warnmeldungen gesendet werden sollen. Wenn keine Gruppe ausgewählt wird, ist die Regel deaktiviert.</target>
|
||||||
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="sffa171e11d4ae513">
|
<trans-unit id="sffa171e11d4ae513">
|
||||||
<source>Transports</source>
|
<source>Transports</source>
|
||||||
@ -5632,6 +5637,11 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||||||
<source>Notification rule(s)</source>
|
<source>Notification rule(s)</source>
|
||||||
<target>Benachrichtigungsregel(n)</target>
|
<target>Benachrichtigungsregel(n)</target>
|
||||||
|
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="s5140d157642d7362">
|
||||||
|
<source>None (rule disabled)</source>
|
||||||
|
<target>Keine (Regel deaktiviert)</target>
|
||||||
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="sd1146418b344f81f">
|
<trans-unit id="sd1146418b344f81f">
|
||||||
<source>Update Notification Rule</source>
|
<source>Update Notification Rule</source>
|
||||||
@ -9238,18 +9248,6 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="s0433d667ea6eec1a">
|
<trans-unit id="s0433d667ea6eec1a">
|
||||||
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="s2e9d5ea88f02ae68">
|
|
||||||
<source>Select the group of users which the alerts are sent to. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="se630f2ccd39bf9e6">
|
|
||||||
<source>If no group is selected and 'Send notification to event user' is disabled the rule is disabled. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="s47966b2a708694e2">
|
|
||||||
<source>Send notification to event user</source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="sd30f00ff2135589c">
|
|
||||||
<source>When enabled, notification will be sent to the user that triggered the event in addition to any users in the group above. The event user will always be the first user, to send a notification only to the event user enabled 'Send once' in the notification transport.</source>
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
</body>
|
</body>
|
||||||
</file>
|
</file>
|
||||||
|
|||||||
@ -4561,6 +4561,10 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||||||
<source>Successfully created rule.</source>
|
<source>Successfully created rule.</source>
|
||||||
<target>Successfully created rule.</target>
|
<target>Successfully created rule.</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="sa55ee64c5c51df0f">
|
||||||
|
<source>Select the group of users which the alerts are sent to. If no group is selected the rule is disabled.</source>
|
||||||
|
<target>Select the group of users which the alerts are sent to. If no group is selected the rule is disabled.</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="sffa171e11d4ae513">
|
<trans-unit id="sffa171e11d4ae513">
|
||||||
<source>Transports</source>
|
<source>Transports</source>
|
||||||
<target>Transports</target>
|
<target>Transports</target>
|
||||||
@ -4589,6 +4593,10 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||||||
<source>Notification rule(s)</source>
|
<source>Notification rule(s)</source>
|
||||||
<target>Notification rule(s)</target>
|
<target>Notification rule(s)</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="s5140d157642d7362">
|
||||||
|
<source>None (rule disabled)</source>
|
||||||
|
<target>None (rule disabled)</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="sd1146418b344f81f">
|
<trans-unit id="sd1146418b344f81f">
|
||||||
<source>Update Notification Rule</source>
|
<source>Update Notification Rule</source>
|
||||||
<target>Update Notification Rule</target>
|
<target>Update Notification Rule</target>
|
||||||
@ -7748,18 +7756,6 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="s0433d667ea6eec1a">
|
<trans-unit id="s0433d667ea6eec1a">
|
||||||
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="s2e9d5ea88f02ae68">
|
|
||||||
<source>Select the group of users which the alerts are sent to. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="se630f2ccd39bf9e6">
|
|
||||||
<source>If no group is selected and 'Send notification to event user' is disabled the rule is disabled. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="s47966b2a708694e2">
|
|
||||||
<source>Send notification to event user</source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="sd30f00ff2135589c">
|
|
||||||
<source>When enabled, notification will be sent to the user that triggered the event in addition to any users in the group above. The event user will always be the first user, to send a notification only to the event user enabled 'Send once' in the notification transport.</source>
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
</body>
|
</body>
|
||||||
</file>
|
</file>
|
||||||
|
|||||||
@ -5616,6 +5616,10 @@ no se aprueba cuando una o ambas de las opciones seleccionadas son iguales o sup
|
|||||||
<source>Successfully created rule.</source>
|
<source>Successfully created rule.</source>
|
||||||
<target>Regla creada correctamente.</target>
|
<target>Regla creada correctamente.</target>
|
||||||
|
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="sa55ee64c5c51df0f">
|
||||||
|
<source>Select the group of users which the alerts are sent to. If no group is selected the rule is disabled.</source>
|
||||||
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="sffa171e11d4ae513">
|
<trans-unit id="sffa171e11d4ae513">
|
||||||
<source>Transports</source>
|
<source>Transports</source>
|
||||||
@ -5651,6 +5655,11 @@ no se aprueba cuando una o ambas de las opciones seleccionadas son iguales o sup
|
|||||||
<source>Notification rule(s)</source>
|
<source>Notification rule(s)</source>
|
||||||
<target>Regla (s) de notificación</target>
|
<target>Regla (s) de notificación</target>
|
||||||
|
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="s5140d157642d7362">
|
||||||
|
<source>None (rule disabled)</source>
|
||||||
|
<target>Ninguno (regla deshabilitada)</target>
|
||||||
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="sd1146418b344f81f">
|
<trans-unit id="sd1146418b344f81f">
|
||||||
<source>Update Notification Rule</source>
|
<source>Update Notification Rule</source>
|
||||||
@ -9299,18 +9308,6 @@ Las vinculaciones a grupos o usuarios se comparan con el usuario del evento.</ta
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="s0433d667ea6eec1a">
|
<trans-unit id="s0433d667ea6eec1a">
|
||||||
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="s2e9d5ea88f02ae68">
|
|
||||||
<source>Select the group of users which the alerts are sent to. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="se630f2ccd39bf9e6">
|
|
||||||
<source>If no group is selected and 'Send notification to event user' is disabled the rule is disabled. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="s47966b2a708694e2">
|
|
||||||
<source>Send notification to event user</source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="sd30f00ff2135589c">
|
|
||||||
<source>When enabled, notification will be sent to the user that triggered the event in addition to any users in the group above. The event user will always be the first user, to send a notification only to the event user enabled 'Send once' in the notification transport.</source>
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
</body>
|
</body>
|
||||||
</file>
|
</file>
|
||||||
|
|||||||
@ -5701,6 +5701,11 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||||||
<source>Successfully created rule.</source>
|
<source>Successfully created rule.</source>
|
||||||
<target>Règle créée avec succès</target>
|
<target>Règle créée avec succès</target>
|
||||||
|
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="sa55ee64c5c51df0f">
|
||||||
|
<source>Select the group of users which the alerts are sent to. If no group is selected the rule is disabled.</source>
|
||||||
|
<target>Sélectionner le groupe d'utilisateurs à qui les alertes seront envoyées. Si aucun groupe n'est sélectionné, cette règle est désactivée.</target>
|
||||||
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="sffa171e11d4ae513">
|
<trans-unit id="sffa171e11d4ae513">
|
||||||
<source>Transports</source>
|
<source>Transports</source>
|
||||||
@ -5736,6 +5741,11 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||||||
<source>Notification rule(s)</source>
|
<source>Notification rule(s)</source>
|
||||||
<target>Règle(s) de notification</target>
|
<target>Règle(s) de notification</target>
|
||||||
|
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="s5140d157642d7362">
|
||||||
|
<source>None (rule disabled)</source>
|
||||||
|
<target>Aucun (règle désactivée)</target>
|
||||||
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="sd1146418b344f81f">
|
<trans-unit id="sd1146418b344f81f">
|
||||||
<source>Update Notification Rule</source>
|
<source>Update Notification Rule</source>
|
||||||
@ -9867,18 +9877,6 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="s0433d667ea6eec1a">
|
<trans-unit id="s0433d667ea6eec1a">
|
||||||
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="s2e9d5ea88f02ae68">
|
|
||||||
<source>Select the group of users which the alerts are sent to. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="se630f2ccd39bf9e6">
|
|
||||||
<source>If no group is selected and 'Send notification to event user' is disabled the rule is disabled. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="s47966b2a708694e2">
|
|
||||||
<source>Send notification to event user</source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="sd30f00ff2135589c">
|
|
||||||
<source>When enabled, notification will be sent to the user that triggered the event in addition to any users in the group above. The event user will always be the first user, to send a notification only to the event user enabled 'Send once' in the notification transport.</source>
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
</body>
|
</body>
|
||||||
</file>
|
</file>
|
||||||
|
|||||||
@ -5702,6 +5702,11 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||||||
<source>Successfully created rule.</source>
|
<source>Successfully created rule.</source>
|
||||||
<target>Creato con successo la regola.</target>
|
<target>Creato con successo la regola.</target>
|
||||||
|
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="sa55ee64c5c51df0f">
|
||||||
|
<source>Select the group of users which the alerts are sent to. If no group is selected the rule is disabled.</source>
|
||||||
|
<target>Seleziona il gruppo di utenti a cui vengono inviati gli avvisi. Se non viene selezionato alcun gruppo, la regola è disabilitata.</target>
|
||||||
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="sffa171e11d4ae513">
|
<trans-unit id="sffa171e11d4ae513">
|
||||||
<source>Transports</source>
|
<source>Transports</source>
|
||||||
@ -5737,6 +5742,11 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||||||
<source>Notification rule(s)</source>
|
<source>Notification rule(s)</source>
|
||||||
<target>Regola(e) di notifica</target>
|
<target>Regola(e) di notifica</target>
|
||||||
|
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="s5140d157642d7362">
|
||||||
|
<source>None (rule disabled)</source>
|
||||||
|
<target>Nessuno (regola disattivata)</target>
|
||||||
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="sd1146418b344f81f">
|
<trans-unit id="sd1146418b344f81f">
|
||||||
<source>Update Notification Rule</source>
|
<source>Update Notification Rule</source>
|
||||||
@ -9850,18 +9860,6 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="s0433d667ea6eec1a">
|
<trans-unit id="s0433d667ea6eec1a">
|
||||||
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="s2e9d5ea88f02ae68">
|
|
||||||
<source>Select the group of users which the alerts are sent to. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="se630f2ccd39bf9e6">
|
|
||||||
<source>If no group is selected and 'Send notification to event user' is disabled the rule is disabled. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="s47966b2a708694e2">
|
|
||||||
<source>Send notification to event user</source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="sd30f00ff2135589c">
|
|
||||||
<source>When enabled, notification will be sent to the user that triggered the event in addition to any users in the group above. The event user will always be the first user, to send a notification only to the event user enabled 'Send once' in the notification transport.</source>
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
</body>
|
</body>
|
||||||
</file>
|
</file>
|
||||||
|
|||||||
@ -5643,6 +5643,11 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||||||
<source>Successfully created rule.</source>
|
<source>Successfully created rule.</source>
|
||||||
<target>규칙을 성공적으로 생성했습니다.</target>
|
<target>규칙을 성공적으로 생성했습니다.</target>
|
||||||
|
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="sa55ee64c5c51df0f">
|
||||||
|
<source>Select the group of users which the alerts are sent to. If no group is selected the rule is disabled.</source>
|
||||||
|
<target>알림을 전송할 사용자 그룹을 선택합니다. 그룹을 선택하지 않으면 규칙이 비활성화됩니다.</target>
|
||||||
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="sffa171e11d4ae513">
|
<trans-unit id="sffa171e11d4ae513">
|
||||||
<source>Transports</source>
|
<source>Transports</source>
|
||||||
@ -5678,6 +5683,11 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||||||
<source>Notification rule(s)</source>
|
<source>Notification rule(s)</source>
|
||||||
<target>통지 규칙</target>
|
<target>통지 규칙</target>
|
||||||
|
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="s5140d157642d7362">
|
||||||
|
<source>None (rule disabled)</source>
|
||||||
|
<target>없음 (규칙 비활성화)</target>
|
||||||
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="sd1146418b344f81f">
|
<trans-unit id="sd1146418b344f81f">
|
||||||
<source>Update Notification Rule</source>
|
<source>Update Notification Rule</source>
|
||||||
@ -9206,18 +9216,6 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="s0433d667ea6eec1a">
|
<trans-unit id="s0433d667ea6eec1a">
|
||||||
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="s2e9d5ea88f02ae68">
|
|
||||||
<source>Select the group of users which the alerts are sent to. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="se630f2ccd39bf9e6">
|
|
||||||
<source>If no group is selected and 'Send notification to event user' is disabled the rule is disabled. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="s47966b2a708694e2">
|
|
||||||
<source>Send notification to event user</source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="sd30f00ff2135589c">
|
|
||||||
<source>When enabled, notification will be sent to the user that triggered the event in addition to any users in the group above. The event user will always be the first user, to send a notification only to the event user enabled 'Send once' in the notification transport.</source>
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
</body>
|
</body>
|
||||||
</file>
|
</file>
|
||||||
|
|||||||
@ -5653,6 +5653,11 @@ slaagt niet wanneer een of beide geselecteerde opties gelijk zijn aan of boven d
|
|||||||
<source>Successfully created rule.</source>
|
<source>Successfully created rule.</source>
|
||||||
<target>Regel succesvol aangemaakt.</target>
|
<target>Regel succesvol aangemaakt.</target>
|
||||||
|
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="sa55ee64c5c51df0f">
|
||||||
|
<source>Select the group of users which the alerts are sent to. If no group is selected the rule is disabled.</source>
|
||||||
|
<target>Selecteer de groep gebruikers waar de waarschuwingen naartoe worden gestuurd. Als er geen groep is geselecteerd, is de regel uitgeschakeld.</target>
|
||||||
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="sffa171e11d4ae513">
|
<trans-unit id="sffa171e11d4ae513">
|
||||||
<source>Transports</source>
|
<source>Transports</source>
|
||||||
@ -5688,6 +5693,11 @@ slaagt niet wanneer een of beide geselecteerde opties gelijk zijn aan of boven d
|
|||||||
<source>Notification rule(s)</source>
|
<source>Notification rule(s)</source>
|
||||||
<target>Meldingsregel(s)</target>
|
<target>Meldingsregel(s)</target>
|
||||||
|
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="s5140d157642d7362">
|
||||||
|
<source>None (rule disabled)</source>
|
||||||
|
<target>Geen (regel uitgeschakeld)</target>
|
||||||
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="sd1146418b344f81f">
|
<trans-unit id="sd1146418b344f81f">
|
||||||
<source>Update Notification Rule</source>
|
<source>Update Notification Rule</source>
|
||||||
@ -9110,18 +9120,6 @@ Bindingen naar groepen/gebruikers worden gecontroleerd tegen de gebruiker van de
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="s0433d667ea6eec1a">
|
<trans-unit id="s0433d667ea6eec1a">
|
||||||
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="s2e9d5ea88f02ae68">
|
|
||||||
<source>Select the group of users which the alerts are sent to. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="se630f2ccd39bf9e6">
|
|
||||||
<source>If no group is selected and 'Send notification to event user' is disabled the rule is disabled. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="s47966b2a708694e2">
|
|
||||||
<source>Send notification to event user</source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="sd30f00ff2135589c">
|
|
||||||
<source>When enabled, notification will be sent to the user that triggered the event in addition to any users in the group above. The event user will always be the first user, to send a notification only to the event user enabled 'Send once' in the notification transport.</source>
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
</body>
|
</body>
|
||||||
</file>
|
</file>
|
||||||
|
|||||||
@ -5703,6 +5703,11 @@ w toku, tworzony jest nowy użytkownik i zapisywane są do niego dane.</target>
|
|||||||
<source>Successfully created rule.</source>
|
<source>Successfully created rule.</source>
|
||||||
<target>Pomyślnie utworzono regułę.</target>
|
<target>Pomyślnie utworzono regułę.</target>
|
||||||
|
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="sa55ee64c5c51df0f">
|
||||||
|
<source>Select the group of users which the alerts are sent to. If no group is selected the rule is disabled.</source>
|
||||||
|
<target>Wybierz grupę użytkowników, do których mają być wysyłane alerty. Jeśli nie zostanie wybrana żadna grupa, reguła zostanie wyłączona.</target>
|
||||||
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="sffa171e11d4ae513">
|
<trans-unit id="sffa171e11d4ae513">
|
||||||
<source>Transports</source>
|
<source>Transports</source>
|
||||||
@ -5738,6 +5743,11 @@ w toku, tworzony jest nowy użytkownik i zapisywane są do niego dane.</target>
|
|||||||
<source>Notification rule(s)</source>
|
<source>Notification rule(s)</source>
|
||||||
<target>Reguła(y) powiadamiania</target>
|
<target>Reguła(y) powiadamiania</target>
|
||||||
|
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="s5140d157642d7362">
|
||||||
|
<source>None (rule disabled)</source>
|
||||||
|
<target>Brak (reguła wyłączona)</target>
|
||||||
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="sd1146418b344f81f">
|
<trans-unit id="sd1146418b344f81f">
|
||||||
<source>Update Notification Rule</source>
|
<source>Update Notification Rule</source>
|
||||||
@ -9533,18 +9543,6 @@ Powiązania z grupami/użytkownikami są sprawdzane względem użytkownika zdarz
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="s0433d667ea6eec1a">
|
<trans-unit id="s0433d667ea6eec1a">
|
||||||
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="s2e9d5ea88f02ae68">
|
|
||||||
<source>Select the group of users which the alerts are sent to. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="se630f2ccd39bf9e6">
|
|
||||||
<source>If no group is selected and 'Send notification to event user' is disabled the rule is disabled. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="s47966b2a708694e2">
|
|
||||||
<source>Send notification to event user</source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="sd30f00ff2135589c">
|
|
||||||
<source>When enabled, notification will be sent to the user that triggered the event in addition to any users in the group above. The event user will always be the first user, to send a notification only to the event user enabled 'Send once' in the notification transport.</source>
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
</body>
|
</body>
|
||||||
</file>
|
</file>
|
||||||
|
|||||||
@ -5669,6 +5669,11 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||||||
<source>Successfully created rule.</source>
|
<source>Successfully created rule.</source>
|
||||||
<target>Śũććēśśƒũĺĺŷ ćŕēàţēď ŕũĺē.</target>
|
<target>Śũććēśśƒũĺĺŷ ćŕēàţēď ŕũĺē.</target>
|
||||||
|
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="sa55ee64c5c51df0f">
|
||||||
|
<source>Select the group of users which the alerts are sent to. If no group is selected the rule is disabled.</source>
|
||||||
|
<target>Śēĺēćţ ţĥē ĝŕōũƥ ōƒ ũśēŕś ŵĥĩćĥ ţĥē àĺēŕţś àŕē śēńţ ţō. Ĩƒ ńō ĝŕōũƥ ĩś śēĺēćţēď ţĥē ŕũĺē ĩś ďĩśàƀĺēď.</target>
|
||||||
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="sffa171e11d4ae513">
|
<trans-unit id="sffa171e11d4ae513">
|
||||||
<source>Transports</source>
|
<source>Transports</source>
|
||||||
@ -5704,6 +5709,11 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||||||
<source>Notification rule(s)</source>
|
<source>Notification rule(s)</source>
|
||||||
<target>Ńōţĩƒĩćàţĩōń ŕũĺē(ś)</target>
|
<target>Ńōţĩƒĩćàţĩōń ŕũĺē(ś)</target>
|
||||||
|
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="s5140d157642d7362">
|
||||||
|
<source>None (rule disabled)</source>
|
||||||
|
<target>Ńōńē (ŕũĺē ďĩśàƀĺēď)</target>
|
||||||
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="sd1146418b344f81f">
|
<trans-unit id="sd1146418b344f81f">
|
||||||
<source>Update Notification Rule</source>
|
<source>Update Notification Rule</source>
|
||||||
@ -9542,16 +9552,4 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||||||
<trans-unit id="s0433d667ea6eec1a">
|
<trans-unit id="s0433d667ea6eec1a">
|
||||||
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="s2e9d5ea88f02ae68">
|
|
||||||
<source>Select the group of users which the alerts are sent to. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="se630f2ccd39bf9e6">
|
|
||||||
<source>If no group is selected and 'Send notification to event user' is disabled the rule is disabled. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="s47966b2a708694e2">
|
|
||||||
<source>Send notification to event user</source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="sd30f00ff2135589c">
|
|
||||||
<source>When enabled, notification will be sent to the user that triggered the event in addition to any users in the group above. The event user will always be the first user, to send a notification only to the event user enabled 'Send once' in the notification transport.</source>
|
|
||||||
</trans-unit>
|
|
||||||
</body></file></xliff>
|
</body></file></xliff>
|
||||||
|
|||||||
@ -5702,6 +5702,11 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||||||
<source>Successfully created rule.</source>
|
<source>Successfully created rule.</source>
|
||||||
<target>Правило успешно создано.</target>
|
<target>Правило успешно создано.</target>
|
||||||
|
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="sa55ee64c5c51df0f">
|
||||||
|
<source>Select the group of users which the alerts are sent to. If no group is selected the rule is disabled.</source>
|
||||||
|
<target>Выберите группу пользователей, которым будут отправляться оповещения. Если группа не выбрана, правило отключается.</target>
|
||||||
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="sffa171e11d4ae513">
|
<trans-unit id="sffa171e11d4ae513">
|
||||||
<source>Transports</source>
|
<source>Transports</source>
|
||||||
@ -5737,6 +5742,11 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||||||
<source>Notification rule(s)</source>
|
<source>Notification rule(s)</source>
|
||||||
<target>Правило (правила) уведомления</target>
|
<target>Правило (правила) уведомления</target>
|
||||||
|
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="s5140d157642d7362">
|
||||||
|
<source>None (rule disabled)</source>
|
||||||
|
<target>Отсутствует (правило отключено)</target>
|
||||||
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="sd1146418b344f81f">
|
<trans-unit id="sd1146418b344f81f">
|
||||||
<source>Update Notification Rule</source>
|
<source>Update Notification Rule</source>
|
||||||
@ -9625,18 +9635,6 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="s0433d667ea6eec1a">
|
<trans-unit id="s0433d667ea6eec1a">
|
||||||
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="s2e9d5ea88f02ae68">
|
|
||||||
<source>Select the group of users which the alerts are sent to. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="se630f2ccd39bf9e6">
|
|
||||||
<source>If no group is selected and 'Send notification to event user' is disabled the rule is disabled. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="s47966b2a708694e2">
|
|
||||||
<source>Send notification to event user</source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="sd30f00ff2135589c">
|
|
||||||
<source>When enabled, notification will be sent to the user that triggered the event in addition to any users in the group above. The event user will always be the first user, to send a notification only to the event user enabled 'Send once' in the notification transport.</source>
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
</body>
|
</body>
|
||||||
</file>
|
</file>
|
||||||
|
|||||||
@ -5669,6 +5669,11 @@ Belirlenen seçeneklerden biri veya her ikisi de eşiğe eşit veya eşiğin üz
|
|||||||
<source>Successfully created rule.</source>
|
<source>Successfully created rule.</source>
|
||||||
<target>Kural başarıyla oluşturuldu.</target>
|
<target>Kural başarıyla oluşturuldu.</target>
|
||||||
|
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="sa55ee64c5c51df0f">
|
||||||
|
<source>Select the group of users which the alerts are sent to. If no group is selected the rule is disabled.</source>
|
||||||
|
<target>Uyarıların gönderileceği kullanıcı grubunu seçin. Hiçbir grup seçilmezse kural devre dışı bırakılır.</target>
|
||||||
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="sffa171e11d4ae513">
|
<trans-unit id="sffa171e11d4ae513">
|
||||||
<source>Transports</source>
|
<source>Transports</source>
|
||||||
@ -5704,6 +5709,11 @@ Belirlenen seçeneklerden biri veya her ikisi de eşiğe eşit veya eşiğin üz
|
|||||||
<source>Notification rule(s)</source>
|
<source>Notification rule(s)</source>
|
||||||
<target>Bildirim kuralları</target>
|
<target>Bildirim kuralları</target>
|
||||||
|
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="s5140d157642d7362">
|
||||||
|
<source>None (rule disabled)</source>
|
||||||
|
<target>Hiçbiri (kural devre dışı)</target>
|
||||||
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="sd1146418b344f81f">
|
<trans-unit id="sd1146418b344f81f">
|
||||||
<source>Update Notification Rule</source>
|
<source>Update Notification Rule</source>
|
||||||
@ -9597,18 +9607,6 @@ Gruplara/kullanıcılara yapılan bağlamalar, etkinliğin kullanıcısına kar
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="s0433d667ea6eec1a">
|
<trans-unit id="s0433d667ea6eec1a">
|
||||||
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="s2e9d5ea88f02ae68">
|
|
||||||
<source>Select the group of users which the alerts are sent to. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="se630f2ccd39bf9e6">
|
|
||||||
<source>If no group is selected and 'Send notification to event user' is disabled the rule is disabled. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="s47966b2a708694e2">
|
|
||||||
<source>Send notification to event user</source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="sd30f00ff2135589c">
|
|
||||||
<source>When enabled, notification will be sent to the user that triggered the event in addition to any users in the group above. The event user will always be the first user, to send a notification only to the event user enabled 'Send once' in the notification transport.</source>
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
</body>
|
</body>
|
||||||
</file>
|
</file>
|
||||||
|
|||||||
@ -4034,6 +4034,9 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||||||
<trans-unit id="s72e102414fec81a4">
|
<trans-unit id="s72e102414fec81a4">
|
||||||
<source>Successfully created rule.</source>
|
<source>Successfully created rule.</source>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="sa55ee64c5c51df0f">
|
||||||
|
<source>Select the group of users which the alerts are sent to. If no group is selected the rule is disabled.</source>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="sffa171e11d4ae513">
|
<trans-unit id="sffa171e11d4ae513">
|
||||||
<source>Transports</source>
|
<source>Transports</source>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
@ -4052,6 +4055,9 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||||||
<trans-unit id="sc92ed9d5e01d3f24">
|
<trans-unit id="sc92ed9d5e01d3f24">
|
||||||
<source>Notification rule(s)</source>
|
<source>Notification rule(s)</source>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="s5140d157642d7362">
|
||||||
|
<source>None (rule disabled)</source>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="sd1146418b344f81f">
|
<trans-unit id="sd1146418b344f81f">
|
||||||
<source>Update Notification Rule</source>
|
<source>Update Notification Rule</source>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
@ -6365,18 +6371,6 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||||||
<trans-unit id="s0433d667ea6eec1a">
|
<trans-unit id="s0433d667ea6eec1a">
|
||||||
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="s2e9d5ea88f02ae68">
|
|
||||||
<source>Select the group of users which the alerts are sent to. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="se630f2ccd39bf9e6">
|
|
||||||
<source>If no group is selected and 'Send notification to event user' is disabled the rule is disabled. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="s47966b2a708694e2">
|
|
||||||
<source>Send notification to event user</source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="sd30f00ff2135589c">
|
|
||||||
<source>When enabled, notification will be sent to the user that triggered the event in addition to any users in the group above. The event user will always be the first user, to send a notification only to the event user enabled 'Send once' in the notification transport.</source>
|
|
||||||
</trans-unit>
|
|
||||||
</body>
|
</body>
|
||||||
</file>
|
</file>
|
||||||
</xliff>
|
</xliff>
|
||||||
|
|||||||
@ -5702,6 +5702,11 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||||||
<source>Successfully created rule.</source>
|
<source>Successfully created rule.</source>
|
||||||
<target>已成功创建规则。</target>
|
<target>已成功创建规则。</target>
|
||||||
|
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="sa55ee64c5c51df0f">
|
||||||
|
<source>Select the group of users which the alerts are sent to. If no group is selected the rule is disabled.</source>
|
||||||
|
<target>选择一组用于发送警告的用户。如果未选择组,则此规则被禁用。</target>
|
||||||
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="sffa171e11d4ae513">
|
<trans-unit id="sffa171e11d4ae513">
|
||||||
<source>Transports</source>
|
<source>Transports</source>
|
||||||
@ -5737,6 +5742,11 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||||||
<source>Notification rule(s)</source>
|
<source>Notification rule(s)</source>
|
||||||
<target>通知规则</target>
|
<target>通知规则</target>
|
||||||
|
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="s5140d157642d7362">
|
||||||
|
<source>None (rule disabled)</source>
|
||||||
|
<target>无(规则已禁用)</target>
|
||||||
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="sd1146418b344f81f">
|
<trans-unit id="sd1146418b344f81f">
|
||||||
<source>Update Notification Rule</source>
|
<source>Update Notification Rule</source>
|
||||||
@ -9880,18 +9890,6 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="s0433d667ea6eec1a">
|
<trans-unit id="s0433d667ea6eec1a">
|
||||||
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="s2e9d5ea88f02ae68">
|
|
||||||
<source>Select the group of users which the alerts are sent to. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="se630f2ccd39bf9e6">
|
|
||||||
<source>If no group is selected and 'Send notification to event user' is disabled the rule is disabled. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="s47966b2a708694e2">
|
|
||||||
<source>Send notification to event user</source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="sd30f00ff2135589c">
|
|
||||||
<source>When enabled, notification will be sent to the user that triggered the event in addition to any users in the group above. The event user will always be the first user, to send a notification only to the event user enabled 'Send once' in the notification transport.</source>
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
</body>
|
</body>
|
||||||
</file>
|
</file>
|
||||||
|
|||||||
@ -4309,6 +4309,9 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||||||
<source>Successfully created rule.</source>
|
<source>Successfully created rule.</source>
|
||||||
<target>已成功创建规则。</target>
|
<target>已成功创建规则。</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="sa55ee64c5c51df0f">
|
||||||
|
<source>Select the group of users which the alerts are sent to. If no group is selected the rule is disabled.</source>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="sffa171e11d4ae513">
|
<trans-unit id="sffa171e11d4ae513">
|
||||||
<source>Transports</source>
|
<source>Transports</source>
|
||||||
<target>传输</target>
|
<target>传输</target>
|
||||||
@ -4337,6 +4340,10 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||||||
<source>Notification rule(s)</source>
|
<source>Notification rule(s)</source>
|
||||||
<target>通知规则</target>
|
<target>通知规则</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="s5140d157642d7362">
|
||||||
|
<source>None (rule disabled)</source>
|
||||||
|
<target>无(规则已禁用)</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="sd1146418b344f81f">
|
<trans-unit id="sd1146418b344f81f">
|
||||||
<source>Update Notification Rule</source>
|
<source>Update Notification Rule</source>
|
||||||
<target>更新通知规则</target>
|
<target>更新通知规则</target>
|
||||||
@ -7449,18 +7456,6 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="s0433d667ea6eec1a">
|
<trans-unit id="s0433d667ea6eec1a">
|
||||||
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="s2e9d5ea88f02ae68">
|
|
||||||
<source>Select the group of users which the alerts are sent to. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="se630f2ccd39bf9e6">
|
|
||||||
<source>If no group is selected and 'Send notification to event user' is disabled the rule is disabled. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="s47966b2a708694e2">
|
|
||||||
<source>Send notification to event user</source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="sd30f00ff2135589c">
|
|
||||||
<source>When enabled, notification will be sent to the user that triggered the event in addition to any users in the group above. The event user will always be the first user, to send a notification only to the event user enabled 'Send once' in the notification transport.</source>
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
</body>
|
</body>
|
||||||
</file>
|
</file>
|
||||||
|
|||||||
@ -5633,6 +5633,11 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||||||
<source>Successfully created rule.</source>
|
<source>Successfully created rule.</source>
|
||||||
<target>成功建立規則。</target>
|
<target>成功建立規則。</target>
|
||||||
|
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="sa55ee64c5c51df0f">
|
||||||
|
<source>Select the group of users which the alerts are sent to. If no group is selected the rule is disabled.</source>
|
||||||
|
<target>選擇接收警報的使用者群組。如果沒有選擇群組,則規則將被停用。</target>
|
||||||
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="sffa171e11d4ae513">
|
<trans-unit id="sffa171e11d4ae513">
|
||||||
<source>Transports</source>
|
<source>Transports</source>
|
||||||
@ -5668,6 +5673,11 @@ doesn't pass when either or both of the selected options are equal or above the
|
|||||||
<source>Notification rule(s)</source>
|
<source>Notification rule(s)</source>
|
||||||
<target>通知規則</target>
|
<target>通知規則</target>
|
||||||
|
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="s5140d157642d7362">
|
||||||
|
<source>None (rule disabled)</source>
|
||||||
|
<target>無(停用規則)</target>
|
||||||
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="sd1146418b344f81f">
|
<trans-unit id="sd1146418b344f81f">
|
||||||
<source>Update Notification Rule</source>
|
<source>Update Notification Rule</source>
|
||||||
@ -9185,18 +9195,6 @@ Bindings to groups/users are checked against the user of the event.</source>
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="s0433d667ea6eec1a">
|
<trans-unit id="s0433d667ea6eec1a">
|
||||||
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
<source>The name of an invitation must be a slug: only lower case letters, numbers, and the hyphen are permitted here.</source>
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="s2e9d5ea88f02ae68">
|
|
||||||
<source>Select the group of users which the alerts are sent to. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="se630f2ccd39bf9e6">
|
|
||||||
<source>If no group is selected and 'Send notification to event user' is disabled the rule is disabled. </source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="s47966b2a708694e2">
|
|
||||||
<source>Send notification to event user</source>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="sd30f00ff2135589c">
|
|
||||||
<source>When enabled, notification will be sent to the user that triggered the event in addition to any users in the group above. The event user will always be the first user, to send a notification only to the event user enabled 'Send once' in the notification transport.</source>
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
</body>
|
</body>
|
||||||
</file>
|
</file>
|
||||||
|
|||||||
@ -10,7 +10,7 @@ For more information about using a Google Workspace provider, see the [Overview]
|
|||||||
To create a Google Workspace provider in authentik, you must have already [configured Google Workspace](./setup-gws.md) to integrate with authentik.
|
To create a Google Workspace provider in authentik, you must have already [configured Google Workspace](./setup-gws.md) to integrate with authentik.
|
||||||
|
|
||||||
:::info
|
:::info
|
||||||
When adding the Google Workspace provider in authentik, you must define the **Backchannel provider** using the name of the Google Workspace provider that you created in authentik. If you have also configured Google Workspace to log in using authentik following [these](/integrations/services/google/), then this configuration can be done on the same app.
|
When adding the Google Workspace provider in authentik, you must define the **Backchannel provider** using the name of the Google Workspace provider that you created in authentik. If you have also configured Google Workspace to log in using authentik following [these](../../../../integrations/services/google/), then this configuration can be done on the same app.
|
||||||
:::
|
:::
|
||||||
|
|
||||||
### Create the Google Workspace provider in authentik
|
### Create the Google Workspace provider in authentik
|
||||||
|
|||||||
@ -81,20 +81,20 @@ Previously, sessions were stored by default in the cache. Now, they are stored i
|
|||||||
|
|
||||||
An integration is a how authentik connects to third-party applications, directories, and other identity providers. The following integration guides were recently added.
|
An integration is a how authentik connects to third-party applications, directories, and other identity providers. The following integration guides were recently added.
|
||||||
|
|
||||||
- [Apple Business Manager](/integrations/services/apple/)
|
- [Apple Business Manager](../../../integrations/services/apple/)
|
||||||
- [FleetDM](/integrations/services/fleet/)
|
- [FleetDM](../../../integrations/services/fleet/)
|
||||||
- [Gravity](/integrations/services/gravity/)
|
- [Gravity](../../../integrations/services/gravity/)
|
||||||
- [Homarr](/integrations/services/homarr/)
|
- [Homarr](../../../integrations/services/homarr/)
|
||||||
- [KnocKnoc](/integrations/services/knocknoc)
|
- [KnocKnoc](../../../integrations/services/knocknoc)
|
||||||
- [Mautic](/integrations/services/mautic/)
|
- [Mautic](../../../integrations/services/mautic/)
|
||||||
- [Mailcow](/integrations/services/mailcow/)
|
- [Mailcow](../../../integrations/services/mailcow/)
|
||||||
- [Mealie](/integrations/services/mealie/)
|
- [Mealie](../../../integrations/services/mealie/)
|
||||||
- [OpenProject](/integrations/services/openproject)
|
- [OpenProject](../../../integrations/services/openproject)
|
||||||
- [Sidero Omni](/integrations/services/omni)
|
- [Sidero Omni](../../../integrations/services/omni)
|
||||||
- [Tandoor](/integrations/services/tandoor/)
|
- [Tandoor](../../../integrations/services/tandoor/)
|
||||||
- [Wazuh](/integrations/services/wazuh)
|
- [Wazuh](../../../integrations/services/wazuh)
|
||||||
- [XCreds](/integrations/services/xcreds)
|
- [XCreds](../../../integrations/services/xcreds)
|
||||||
- [Zipline](/integrations/services/zipline/)
|
- [Zipline](../../../integrations/services/zipline/)
|
||||||
|
|
||||||
## Upgrading
|
## Upgrading
|
||||||
|
|
||||||
|
|||||||
@ -37,15 +37,15 @@ slug: "/releases/2025.6"
|
|||||||
|
|
||||||
An integration is how authentik connects to third-party applications, directories, and other identity providers. The following integration guides were recently added to our documentation:
|
An integration is how authentik connects to third-party applications, directories, and other identity providers. The following integration guides were recently added to our documentation:
|
||||||
|
|
||||||
- [Atlassian Cloud (Jira, Confluence, etc)](/integrations/services/atlassian/)
|
- [Atlassian Cloud (Jira, Confluence, etc)](../../../integrations/services/atlassian/)
|
||||||
- [Coder](/integrations/services/coder/)
|
- [Coder](../../../integrations/services/coder/)
|
||||||
- [FileRise](/integrations/services/filerise/)
|
- [FileRise](../../../integrations/services/filerise/)
|
||||||
- [Komodo](/integrations/services/komodo/)
|
- [Komodo](../../../integrations/services/komodo/)
|
||||||
- [Pangolin](/integrations/services/pangolin/)
|
- [Pangolin](../../../integrations/services/pangolin/)
|
||||||
- [Push Security](/integrations/services/push-security/)
|
- [Push Security](../../../integrations/services/push-security/)
|
||||||
- [Stripe](/integrations/services/stripe/)
|
- [Stripe](../../../integrations/services/stripe/)
|
||||||
- [Tailscale](/integrations/services/tailscale/)
|
- [Tailscale](../../../integrations/services/tailscale/)
|
||||||
- [YouTrack](/integrations/services/youtrack/)
|
- [YouTrack](../../../integrations/services/youtrack/)
|
||||||
|
|
||||||
## Upgrading
|
## Upgrading
|
||||||
|
|
||||||
|
|||||||
@ -10,7 +10,7 @@ This page provides an overview of how to configure each protocol as a federated
|
|||||||
:::info{title="authentik as a third-party IdP"}
|
:::info{title="authentik as a third-party IdP"}
|
||||||
authentik can also be configuration to authenticate users into Google services.
|
authentik can also be configuration to authenticate users into Google services.
|
||||||
|
|
||||||
For more information, see the [Google Workspace Integration](/integrations/services/google/) guide.
|
For more information, see the [Google Workspace Integration](../../../../../integrations/services/google/) guide.
|
||||||
|
|
||||||
## Google Cloud (OAuth)
|
## Google Cloud (OAuth)
|
||||||
|
|
||||||
|
|||||||
@ -11,7 +11,6 @@ import remarkDirective from "remark-directive";
|
|||||||
import remarkGithub, { defaultBuildUrl } from "remark-github";
|
import remarkGithub, { defaultBuildUrl } from "remark-github";
|
||||||
|
|
||||||
import remarkEnterpriseDirective from "./remark/enterprise-directive.mjs";
|
import remarkEnterpriseDirective from "./remark/enterprise-directive.mjs";
|
||||||
import remarkLinkRewrite from "./remark/link-rewrite-directive.mjs";
|
|
||||||
import remarkPreviewDirective from "./remark/preview-directive.mjs";
|
import remarkPreviewDirective from "./remark/preview-directive.mjs";
|
||||||
import remarkSupportDirective from "./remark/support-directive.mjs";
|
import remarkSupportDirective from "./remark/support-directive.mjs";
|
||||||
import remarkVersionDirective from "./remark/version-directive.mjs";
|
import remarkVersionDirective from "./remark/version-directive.mjs";
|
||||||
@ -44,10 +43,9 @@ const config = createDocusaurusConfig({
|
|||||||
target: "_self",
|
target: "_self",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
to: "https://integrations.goauthentik.io",
|
to: "integrations/",
|
||||||
label: "Integrations",
|
label: "Integrations",
|
||||||
position: "left",
|
position: "left",
|
||||||
target: "_self",
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
to: "docs/",
|
to: "docs/",
|
||||||
@ -88,7 +86,7 @@ const config = createDocusaurusConfig({
|
|||||||
appId: "36ROD0O0FV",
|
appId: "36ROD0O0FV",
|
||||||
apiKey: "727db511300ca9aec5425645bbbddfb5",
|
apiKey: "727db511300ca9aec5425645bbbddfb5",
|
||||||
indexName: "goauthentik",
|
indexName: "goauthentik",
|
||||||
externalUrlRegex: /(:\/\/goauthentik\.io|integrations\.goauthentik\.io)/.toString(),
|
externalUrlRegex: ":\\/\\/goauthentik\\.io",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
presets: [
|
presets: [
|
||||||
@ -97,7 +95,6 @@ const config = createDocusaurusConfig({
|
|||||||
/** @type {Preset.Options} */ ({
|
/** @type {Preset.Options} */ ({
|
||||||
docs: {
|
docs: {
|
||||||
id: "docs",
|
id: "docs",
|
||||||
routeBasePath: "docs",
|
|
||||||
sidebarPath: "./sidebars/docs.mjs",
|
sidebarPath: "./sidebars/docs.mjs",
|
||||||
showLastUpdateTime: false,
|
showLastUpdateTime: false,
|
||||||
editUrl: "https://github.com/goauthentik/authentik/edit/main/website/",
|
editUrl: "https://github.com/goauthentik/authentik/edit/main/website/",
|
||||||
@ -105,9 +102,6 @@ const config = createDocusaurusConfig({
|
|||||||
|
|
||||||
beforeDefaultRemarkPlugins: [
|
beforeDefaultRemarkPlugins: [
|
||||||
remarkDirective,
|
remarkDirective,
|
||||||
remarkLinkRewrite(
|
|
||||||
new Map([["/integrations", "https://integrations.goauthentik.io"]]),
|
|
||||||
),
|
|
||||||
remarkVersionDirective,
|
remarkVersionDirective,
|
||||||
remarkEnterpriseDirective,
|
remarkEnterpriseDirective,
|
||||||
remarkPreviewDirective,
|
remarkPreviewDirective,
|
||||||
@ -138,6 +132,16 @@ const config = createDocusaurusConfig({
|
|||||||
],
|
],
|
||||||
],
|
],
|
||||||
plugins: [
|
plugins: [
|
||||||
|
[
|
||||||
|
"@docusaurus/plugin-content-docs",
|
||||||
|
{
|
||||||
|
id: "docsIntegrations",
|
||||||
|
path: "integrations",
|
||||||
|
routeBasePath: "integrations",
|
||||||
|
sidebarPath: "./sidebars/integrations.mjs",
|
||||||
|
editUrl: "https://github.com/goauthentik/authentik/edit/main/website/",
|
||||||
|
},
|
||||||
|
],
|
||||||
[
|
[
|
||||||
"docusaurus-plugin-openapi-docs",
|
"docusaurus-plugin-openapi-docs",
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,12 +0,0 @@
|
|||||||
/**
|
|
||||||
* @file CommonJS Docusaurus config adapter.
|
|
||||||
*
|
|
||||||
* This exists to allow an ESM Docusaurus configuration to be imported in a CommonJS.
|
|
||||||
*
|
|
||||||
* @import Config from "./docusaurus.config.esm.mjs"
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @see {@linkcode Config} for the Docusaurus configuration type.
|
|
||||||
*/
|
|
||||||
module.exports = import("./docusaurus.config.esm.mjs").then(($) => $.default);
|
|
||||||
@ -1,139 +0,0 @@
|
|||||||
/**
|
|
||||||
* @file Docusaurus config.
|
|
||||||
*
|
|
||||||
* @import * as Preset from "@docusaurus/preset-classic";
|
|
||||||
* @import { BuildUrlValues } from "remark-github";
|
|
||||||
*/
|
|
||||||
import { createDocusaurusConfig } from "@goauthentik/docusaurus-config";
|
|
||||||
import { createRequire } from "node:module";
|
|
||||||
import remarkDirective from "remark-directive";
|
|
||||||
import remarkGithub, { defaultBuildUrl } from "remark-github";
|
|
||||||
|
|
||||||
import remarkEnterpriseDirective from "../remark/enterprise-directive.mjs";
|
|
||||||
import remarkLinkRewrite from "../remark/link-rewrite-directive.mjs";
|
|
||||||
import remarkPreviewDirective from "../remark/preview-directive.mjs";
|
|
||||||
import remarkSupportDirective from "../remark/support-directive.mjs";
|
|
||||||
import remarkVersionDirective from "../remark/version-directive.mjs";
|
|
||||||
|
|
||||||
const require = createRequire(import.meta.url);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Documentation site configuration for Docusaurus.
|
|
||||||
*/
|
|
||||||
const config = createDocusaurusConfig({
|
|
||||||
url: "https://integrations.goauthentik.io",
|
|
||||||
future: {
|
|
||||||
experimental_faster: true,
|
|
||||||
},
|
|
||||||
themes: ["@docusaurus/theme-mermaid"],
|
|
||||||
themeConfig: {
|
|
||||||
image: "img/social.png",
|
|
||||||
navbar: {
|
|
||||||
logo: {
|
|
||||||
alt: "authentik logo",
|
|
||||||
src: "img/icon_left_brand.svg",
|
|
||||||
href: "https://goauthentik.io/",
|
|
||||||
target: "_self",
|
|
||||||
},
|
|
||||||
items: [
|
|
||||||
{
|
|
||||||
to: "https://goauthentik.io/features",
|
|
||||||
label: "Features",
|
|
||||||
position: "left",
|
|
||||||
target: "_self",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
to: "integrations/",
|
|
||||||
label: "Integrations",
|
|
||||||
position: "left",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
to: "https://docs.goauthentik.io",
|
|
||||||
label: "Documentation",
|
|
||||||
position: "left",
|
|
||||||
target: "_self",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
to: "https://goauthentik.io/pricing/",
|
|
||||||
label: "Pricing",
|
|
||||||
position: "left",
|
|
||||||
target: "_self",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
to: "https://goauthentik.io/blog",
|
|
||||||
label: "Blog",
|
|
||||||
position: "left",
|
|
||||||
target: "_self",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"href": "https://github.com/goauthentik/authentik",
|
|
||||||
"data-icon": "github",
|
|
||||||
"aria-label": "GitHub",
|
|
||||||
"position": "right",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"href": "https://goauthentik.io/discord",
|
|
||||||
"data-icon": "discord",
|
|
||||||
"aria-label": "Discord",
|
|
||||||
"position": "right",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
footer: {
|
|
||||||
links: [],
|
|
||||||
copyright: `Copyright © ${new Date().getFullYear()} Authentik Security Inc. Built with Docusaurus.`,
|
|
||||||
},
|
|
||||||
algolia: {
|
|
||||||
appId: "36ROD0O0FV",
|
|
||||||
apiKey: "727db511300ca9aec5425645bbbddfb5",
|
|
||||||
indexName: "goauthentik",
|
|
||||||
externalUrlRegex: /(:\/\/goauthentik\.io|docs\.goauthentik\.io)/.toString(),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
presets: [
|
|
||||||
[
|
|
||||||
"@docusaurus/preset-classic",
|
|
||||||
/** @type {Preset.Options} */ ({
|
|
||||||
docs: {
|
|
||||||
id: "docsIntegrations",
|
|
||||||
path: "integrations",
|
|
||||||
routeBasePath: "integrations",
|
|
||||||
sidebarPath: "./sidebars/integrations.mjs",
|
|
||||||
editUrl: "https://github.com/goauthentik/authentik/edit/main/website/",
|
|
||||||
showLastUpdateTime: false,
|
|
||||||
|
|
||||||
beforeDefaultRemarkPlugins: [
|
|
||||||
remarkDirective,
|
|
||||||
remarkLinkRewrite(new Map([["/docs", "https://docs.goauthentik.io"]])),
|
|
||||||
remarkVersionDirective,
|
|
||||||
remarkEnterpriseDirective,
|
|
||||||
remarkPreviewDirective,
|
|
||||||
remarkSupportDirective,
|
|
||||||
],
|
|
||||||
remarkPlugins: [
|
|
||||||
[
|
|
||||||
remarkGithub,
|
|
||||||
{
|
|
||||||
repository: "goauthentik/authentik",
|
|
||||||
/**
|
|
||||||
* @param {BuildUrlValues} values
|
|
||||||
*/
|
|
||||||
buildUrl: (values) => {
|
|
||||||
// Only replace issues and PR links
|
|
||||||
return values.type === "issue" || values.type === "mention"
|
|
||||||
? defaultBuildUrl(values)
|
|
||||||
: false;
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
],
|
|
||||||
},
|
|
||||||
theme: {
|
|
||||||
customCss: require.resolve("@goauthentik/docusaurus-config/css/index.css"),
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
],
|
|
||||||
],
|
|
||||||
});
|
|
||||||
|
|
||||||
export default config;
|
|
||||||
@ -12,12 +12,12 @@ Integrations are categorized into two categories: **Applications** and **Sources
|
|||||||
|
|
||||||
Applications include vendor tools such as Google Workspace, GitHub, Slack, or AWS. These applications can be integrated with authentik to provide single sign-on capabilities to securely authenticate users.
|
Applications include vendor tools such as Google Workspace, GitHub, Slack, or AWS. These applications can be integrated with authentik to provide single sign-on capabilities to securely authenticate users.
|
||||||
|
|
||||||
If you want to integrate an application that isn't listed, authentik can be configured to work with most applications that support authentication protocols such as [SAML](/docs/add-secure-apps/providers/saml), [OAuth and OpenID Connect](/docs/add-secure-apps/providers/oauth2).
|
If you want to integrate an application that isn't listed, authentik can be configured to work with most applications that support authentication protocols such as [SAML](../docs/add-secure-apps/providers/saml), [OAuth and OpenID Connect](../docs/add-secure-apps/providers/oauth2).
|
||||||
|
|
||||||
To learn more, refer to the [Applications](../integrations/services) page.
|
To learn more, refer to the [Applications](../integrations/services) page.
|
||||||
|
|
||||||
### Federated and social sources
|
### Federated and social sources
|
||||||
|
|
||||||
Sources are a way for authentik to use external user credentials for authentication. Supported integrations with external sources via authentik include federated directories like Active Directory and social logins such as Facebook, Twitter, etc. These integrations support all major protocols, including [LDAP](/docs/users-sources/sources/protocols/ldap), [SCIM](/docs/users-sources/sources/protocols/scim), [SAML](/docs/users-sources/sources/protocols/saml), and [OAuth and OpenID Connect](/docs/users-sources/sources/protocols/oauth)
|
Sources are a way for authentik to use external user credentials for authentication. Supported integrations with external sources via authentik include federated directories like Active Directory and social logins such as Facebook, Twitter, etc. These integrations support all major protocols, including [LDAP](../docs/users-sources/sources/protocols/ldap), [SCIM](../docs/users-sources/sources/protocols/scim), [SAML](../docs/users-sources/sources/protocols/saml), and [OAuth and OpenID Connect](../docs/users-sources/sources/protocols/oauth)
|
||||||
|
|
||||||
To learn more, refer to the [Sources](/docs/users-sources/sources) page.
|
To learn more, refer to the [Sources](../docs/users-sources/sources) page.
|
||||||
|
|||||||
@ -108,4 +108,4 @@ To confirm that authentik is properly configured with Actual Budget, visit your
|
|||||||
|
|
||||||
## Resources
|
## Resources
|
||||||
|
|
||||||
- [Actual Budget docs - Authenticating With an OpenID Provider](https://actualbudget.org/docs/config/oauth-auth/)
|
- [Official Actual Budget documentation on OpenID Connect integration](https://actualbudget.org/docs/experimental/oauth-auth/)
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user