diff --git a/.github/.trivyignore b/.github/.trivyignore index 7cf4626d2d..5aae7ec81a 100644 --- a/.github/.trivyignore +++ b/.github/.trivyignore @@ -1,3 +1,16 @@ -CVE-2026-26996 -CVE-2026-27903 -CVE-2026-27904 +# Debian packages of the yhub image (node:22-trixie-slim) for which Debian has +# not published a fix yet. Remove an entry as soon as the scan passes without it. + +# util-linux +CVE-2026-76642 +CVE-2026-78408 +CVE-2026-78409 +CVE-2026-78410 +# acl +CVE-2026-54369 +# systemd +CVE-2026-16742 +# ncurses +CVE-2025-69720 +# perl +CVE-2026-9538 diff --git a/.github/workflows/docker-hub.yml b/.github/workflows/docker-hub.yml index 5c7039f569..a7de9412bc 100644 --- a/.github/workflows/docker-hub.yml +++ b/.github/workflows/docker-hub.yml @@ -79,8 +79,7 @@ jobs: file: src/yhub-server/Dockerfile target: yhub should_push: ${{ github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'preview') }} - # no docker_user: the image defaults to uid 1000, the `node` user the - # base image already declares in /etc/passwd + docker_user: 1000 notify-argocd: needs: diff --git a/CHANGELOG.md b/CHANGELOG.md index e6b5005e99..aeae727477 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,95 +6,99 @@ and this project adheres to ## [Unreleased] +## [v6.0.0] - 2026-10-05 + ### Added -- 👷(ci) lint, typecheck, build and test the collaboration server (yhub) -- 👷(ci) check the load-test tooling: swarm, canary, k6 and dashboards -- 👷(ci) cancel the superseded runs of a pull request +- 👷(ci) lint, typecheck, build and test the collaboration server (yhub) #2757 +- 👷(ci) check the load-test tooling: swarm, canary, k6 and dashboards #2757 +- 👷(ci) cancel the superseded runs of a pull request #2757 - ✨(backend) add mention endpoint with cooldown-limited email notification #2447 - 🚩(setting) add feature flag on Duplicate with Children #2721 - 💄(frontend) redesign 404 error standalone page #2696 - 💄(frontend) redesign 403 access denied page #2720 - ✨(frontend) duplicate with subdocuments #2584 +- ✨(frontend) add markdown download option #2608 +- ✨(frontend) turn pasted doc links into interlinks #2713 - ✨(helm) allow disallowing search engine indexing per instance #2694 -- 🐛(frontend) reduce PostHog volume from web vitals and opt_in spam #2701 - ✨(backend) expose the attachment max size in the config endpoint #2577 - ✨(frontend) warn before uploading an attachment over the size limit #2577 -- ✨(loadtest) add a websocket load generator for the collaboration server +- ✨(loadtest) add a websocket load generator for the collaboration + server #2556 - ✨(loadtest) add k6 scenarios for the page-open sequence and the heavy - endpoints -- ✨(loadtest) add browser canaries measuring what a user feels under load + endpoints #2556 +- ✨(loadtest) add browser canaries measuring what a user feels under + load #2556 - ✨(loadtest) add the grafana dashboards of the load-test campaign, valkey - included -- 📝(documentation) add the load-testing guide + included #2556 +- 📝(documentation) add the load-testing guide #2556 - 🔧(helm) run grafana with those dashboards in the dev cluster, in place of - the prometheus console + the prometheus console #2556 - ✨(backend) measure the calls to yhub and to the converters, the database - pool and the celery queue + pool and the celery queue #2556 - ✨(backend) add a `LoadTest` configuration and its `loadtest` application, - minting sessions for load tests + minting sessions for load tests #2556 - ✨(collaboration) add opt-in prometheus metrics to yhub, server and worker, - protected by a bearer token + protected by a bearer token #2556 - ✨(collaboration) report yhub errors to sentry, configured through - `SENTRY_*` + `SENTRY_*` #2556 - ✨(backend) add opt-in prometheus metrics on `/metrics`, protected by a - bearer token + bearer token #2556 - ✨(helm) add a dedicated ingress for the prometheus metrics of the backend - and of yhub + and of yhub #2556 - ✨(helm) add a ServiceMonitor and a PodMonitor per component whose metrics - are enabled, and `backend.metrics.enabled` + are enabled, and `backend.metrics.enabled` #2556 - 🔧(helm) scrape the metrics of the dev cluster with a trimmed - kube-prometheus-stack and the ServiceMonitors of the chart + kube-prometheus-stack and the ServiceMonitors of the chart #2556 - 🔧(helm) serve the example console of django-prometheus on the dev - Prometheus -- ✨(backend) add a service generating cached RS256 JWT tokens -- ✨(backend) publish the JWT public key on a JWKS endpoint -- 🔧(dev) generate the JWT signing key when bootstrapping the dev stack -- ✨(collaboration) add an admin reset-connections endpoint on yhub -- ✨(collaboration) add a create-ydoc endpoint on yhub -- 🔧(backend) fine tune redis cache options -- ✨(frontend) make the full last-update date available #1215 -- ✨(collaboration) soft-migrate legacy S3 documents into yhub -- ✨(collaboration) replay legacy s3 version history into yhub -- ✨(backend) add a service to call the yhub REST API -- ✨(backend) call YHubService to seed initial document content -- ✨(collaboration) add a get-ydoc endpoint on yhub -- ✨(backend) duplicate a document through the collaboration server -- ✨(backend) serve `documents/{id}/formatted-content/` from yhub -- ✨(collaboration) notify the backend when the worker persists new content -- 🐛(frontend) stop reconnecting to the websocket based on the status code -- ✨(collaboration) let a user read the document's editing history -- ✨(frontend) fall back to http polling when the websocket cannot be opened. + Prometheus #2556 +- ✨(backend) add a service generating cached RS256 JWT tokens #2556 +- ✨(backend) publish the JWT public key on a JWKS endpoint #2556 +- 🔧(dev) generate the JWT signing key when bootstrapping the dev stack #2556 +- ✨(collaboration) add an admin reset-connections endpoint on yhub #2556 +- ✨(collaboration) add a create-ydoc endpoint on yhub #2556 +- ✨(collaboration) soft-migrate legacy S3 documents into yhub #2556 +- ✨(collaboration) replay legacy s3 version history into yhub #2556 +- ✨(backend) add a service to call the yhub REST API #2556 +- ✨(backend) call YHubService to seed initial document content #2556 +- ✨(collaboration) add a get-ydoc endpoint on yhub #2556 +- ✨(backend) duplicate a document through the collaboration server #2556 +- ✨(backend) serve `documents/{id}/formatted-content/` from yhub #2556 +- ✨(collaboration) notify the backend when the worker persists new + content #2556 +- ✨(collaboration) let a user read the document's editing history #2556 +- ✨(frontend) fall back to http polling when the websocket cannot be + opened. #2556 - 🔧(collaboration) make the version-history granularity configurable through - `COLLABORATION_VERSION_GRANULARITY_MS` + `COLLABORATION_VERSION_GRANULARITY_MS` #2556 - ✨(frontend) keep a local copy of documents, so they open and stay editable - offline -- 🐛(frontend) stop the service worker from caching the collaboration server's - rest api + offline #2556 ### Changed - 🛂(backend) let users allowed to comment list each other's accesses #2447 -- ♻️(collaboration) migrate the collaboration server from hocuspocus to yhub -- 💥(y-provider) y-provider becomes converter-only +- ♻️(collaboration) migrate the collaboration server from hocuspocus to + yhub #2556 +- 💥(y-provider) y-provider becomes converter-only #2556 - 💥(backend) move the resource server JWKS from `/api/{version}/jwks` to - `/external_api/{version}/jwks` -- 🔧(collaboration) adapt docker stack for development purpose -- 🔧(helm) run a valkey for the backend and one for yhub in dev and feature -- ✨(frontend) turn pasted doc links into interlinks #2713 + `/external_api/{version}/jwks` #2556 +- 🔧(collaboration) adapt docker stack for development purpose #2556 +- 🔧(helm) run a valkey for the backend and one for yhub in dev and + feature #2556 - 💄(frontend) redesign 401 error standalone page #2716 ### Fixed +- 🐛(frontend) never list two versions ending at the same moment - 🐛(documentation) fix minio port and keycloak realm in the k8s guide #2751 - 🐛(collaboration) bound the calls yhub makes to the backend with a timeout, `YHUB_BACKEND_REQUEST_TIMEOUT_MS`, 5s by default #2753 - 🐛(frontend) cache hashed `/_next/static/` assets and revalidate HTML #2770 - 🐛(backend) compensate document duplication failures #2755 - 🐛(frontend) open search results in a new tab with ctrl/cmd+click #2719 -- 🐛(docker) pull minio images from pgsty -- 🐛(backend) retry the duplicate of a document on a tree path collision +- 🐛(docker) pull minio images from pgsty #2739 +- 🐛(backend) retry the duplicate of a document on a tree path collision #2726 - 🐛(frontend) keep caption and alignment when replacing an image #2730 - 🐛(backend) reset the collaboration connections on every access change #2725 - ⚡️(backend) coalesce and pace the resets of collaboration connections #2725 @@ -105,18 +109,24 @@ and this project adheres to - 📝(docs) fix markdown typo in installation README #2766 - 🐛(i18n) export locale correctly #2750 - 🐛(frontend) keep login and logout out of the service worker cache #2771 +- 🐛(frontend) reduce PostHog volume from web vitals and opt_in spam #2701 +- 🐛(frontend) stop reconnecting to the websocket based on the status + code #2556 +- 🐛(frontend) stop the service worker from caching the collaboration server's + rest api #2556 ### Removed -- 🔥(backend) remove the unused `CollaborationService` -- 💥(backend) remove the `documents/{id}/can-edit/` endpoint -- 💥(backend) remove the `documents/{id}/content/` endpoint -- 🔥(backend) remove the document version endpoints. -- 🔥(backend) remove `Document.content` +- 🔥(backend) remove the unused `CollaborationService` #2556 +- 💥(backend) remove the `documents/{id}/can-edit/` endpoint #2556 +- 💥(backend) remove the `documents/{id}/content/` endpoint #2556 +- 🔥(backend) remove the document version endpoints. #2556 +- 🔥(backend) remove `Document.content` #2556 ### Security -- 🔒️(collaboration) stop read-only users from sharing their cursor +- 🔒️(collaboration) stop read-only users from sharing their cursor #2556 +- 🔒️(backend) fix race conditions between actions updating a docs #2781 ## [v5.7.0] - 2026-09-15 @@ -125,7 +135,6 @@ and this project adheres to - 🔧(backend) fine tune redis cache options #2658 - ✨(frontend) make the full last-update date available #1215 - 💄(frontend) redesign email confirmation standalone page #2601 -- ✨(frontend) add markdown download option #2608 ### Changed @@ -1635,7 +1644,8 @@ and this project adheres to - ✨(frontend) Coming Soon page (#67) - 🚀 Impress, project to manage your documents easily and collaboratively. -[unreleased]: https://github.com/suitenumerique/docs/compare/v5.7.0...main +[unreleased]: https://github.com/suitenumerique/docs/compare/v6.0.0...main +[v6.0.0]: https://github.com/suitenumerique/docs/releases/v6.0.0 [v5.7.0]: https://github.com/suitenumerique/docs/releases/v5.7.0 [v5.6.1]: https://github.com/suitenumerique/docs/releases/v5.6.1 [v5.6.0]: https://github.com/suitenumerique/docs/releases/v5.6.0 diff --git a/Dockerfile b/Dockerfile index 3f5bde7f1e..ad02b3942c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # Django impress # ---- base image to inherit from ---- -FROM python:3.14.6-alpine AS base +FROM python:3.14.8-alpine AS base # Upgrade system packages to install security updates RUN apk update && apk upgrade --no-cache @@ -21,7 +21,7 @@ ENV UV_LINK_MODE=copy ENV UV_PYTHON_DOWNLOADS=0 # install uv -COPY --from=ghcr.io/astral-sh/uv:0.11.10 /uv /uvx /bin/ +COPY --from=ghcr.io/astral-sh/uv:0.12.23 /uv /uvx /bin/ WORKDIR /app @@ -131,7 +131,7 @@ USER root:root RUN apk add --no-cache postgresql-client # Install development dependencies -RUN --mount=from=ghcr.io/astral-sh/uv:0.11.10,source=/uv,target=/bin/uv \ +RUN --mount=from=ghcr.io/astral-sh/uv:0.12.23,source=/uv,target=/bin/uv \ uv sync --all-extras --locked # Restore the un-privileged user running the application @@ -160,6 +160,9 @@ FROM core AS backend-production # Remove apk cache, we don't need it anymore RUN rm -rf /var/cache/apk/* +# pip is not needed at runtime (the dependencies are installed with uv) +RUN /usr/local/bin/python -m pip uninstall --yes pip + ARG IMPRESS_STATIC_ROOT=/data/static # Gunicorn - not used by default but configuration file is provided diff --git a/UPGRADE.md b/UPGRADE.md index 976a066708..bf20282c1a 100644 --- a/UPGRADE.md +++ b/UPGRADE.md @@ -16,6 +16,8 @@ the following command inside your docker container: ## [Unreleased] +## [6.0.0] - 2026-10-05 + ⚠️ This release replaces the collaboration server. The content of a document does not live in the object storage anymore, it lives in that server, and the `y-provider` that used to serve the websocket does not serve it. There is a new diff --git a/src/backend/core/api/serializers.py b/src/backend/core/api/serializers.py index 9265a812d1..2d1d5d9019 100644 --- a/src/backend/core/api/serializers.py +++ b/src/backend/core/api/serializers.py @@ -289,10 +289,26 @@ def update(self, instance, validated_data): """ When no data is sent on the update, skip making the update in the database and return directly the instance unchanged. + + We don't rely on the update methof from the ModelSerializer to only save + validated_data fields to not override updated value from other + serializer like the LinkDocumentSerializer. A race condition triggering both + serializer in the same time can lead to an overlap and data can be lost. """ if not validated_data: return instance # No data provided, skip the update - return super().update(instance, validated_data) + for attr, value in validated_data.items(): + setattr(instance, attr, value) + try: + # `updated_at` is explicit because it is an `auto_now` field: it has + # no validated_data entry and would not be written otherwise. + instance.save(update_fields=[*validated_data, "updated_at"]) + except Exception: + # The in-memory instance may hold values the database has not + # accepted: reload them so the response reports the row as it is. + instance.refresh_from_db(fields=validated_data.keys()) + raise + return instance class SearchDocumentSerializer(ListDocumentSerializer): diff --git a/src/backend/core/api/viewsets.py b/src/backend/core/api/viewsets.py index 2a7d929f35..1d91a5d661 100644 --- a/src/backend/core/api/viewsets.py +++ b/src/backend/core/api/viewsets.py @@ -70,7 +70,7 @@ ) from core.services.yhub_services import YHubError, YHubService from core.tasks.access import reset_service_connections_on_commit -from core.tasks.documents import sync_service_deletions_in_cascade +from core.tasks.documents import sync_service_restorations_in_cascade from core.tasks.mail import send_ask_for_access_mail, send_mention_notification_mail from core.tasks.search import trigger_batch_document_indexer from core.utils.analytics import PosthogEventName, posthog_capture @@ -795,13 +795,7 @@ def perform_destroy(self, instance): """Override to implement a soft delete instead of dumping the record in database.""" instance.soft_delete() - # the collaboration server holds the content: until it is told, it goes - # on serving the document to the clients editing it. On commit, because - # the task reads back what was just written to know what to report — it - # would find the document alive and restore it instead - transaction.on_commit( - partial(sync_service_deletions_in_cascade.delay, str(instance.id)) - ) + reset_service_connections_on_commit(instance.pk) posthog_capture( PosthogEventName.DOC_DELETED, self.request.user, {}, document=instance @@ -1095,11 +1089,12 @@ def restore(self, request, *args, **kwargs): except RuntimeError as err: raise drf.exceptions.ValidationError({"detail": str(err)}) from err - # the counterpart of the deletion: the same walk puts back the content - # of the documents that came back with this one, and it reads the - # restored state back, hence on commit as well + # A soft deletion is no longer reported: the room should never be + # tombstoned, and this safety net is what lifts one should any be laid + # out of band. Documents of the subtree deleted on their own stay + # deleted, and the restored state is read back: on commit. transaction.on_commit( - partial(sync_service_deletions_in_cascade.delay, str(document.id)) + partial(sync_service_restorations_in_cascade.delay, str(document.id)) ) return drf_response.Response( @@ -1897,7 +1892,7 @@ def link_configuration(self, request, *args, **kwargs): # saving a changed link definition is what tells the collaboration # server to re-check the connections of the document and its descendants - serializer.save() + serializer.save(update_fields=["link_reach", "link_role", "updated_at"]) return drf.response.Response(serializer.data, status=drf.status.HTTP_200_OK) @@ -2024,7 +2019,10 @@ def attachment_upload(self, request, *args, **kwargs): # Make the attachment readable by document readers document.attachments.append(key) - document.save() + # Only the attachments column is written: the instance was loaded at the + # start of the request and an overlapping change must not be undone + # (e.g. a withdrawal of the link configuration committed in between). + document.save(update_fields=["attachments", "updated_at"]) malware_detection.analyse_file(key, document_id=document.id) diff --git a/src/backend/core/tasks/documents.py b/src/backend/core/tasks/documents.py index 451bcc6e8b..1602b71f20 100644 --- a/src/backend/core/tasks/documents.py +++ b/src/backend/core/tasks/documents.py @@ -14,25 +14,29 @@ @app.task -def sync_service_deletions_in_cascade(document_id): +def sync_service_restorations_in_cascade(document_id): """ - Report the deletion of a document and of its descendants to the + Report the restoration of a document and of its descendants to the collaboration server. - The content of a document lives there, not here: until it is told, it keeps - serving a deleted document to the clients already editing it, and its - content outlives the document. The endpoint is document scoped, hence the - walk down the tree — deleting a document deletes the subtree under it. - - Restoring goes through the very same walk. A restored document brings back - only the part of its subtree that was deleted with it, the documents deleted - on their own stay deleted, so what each document of the subtree needs is - read from what it is now rather than from what was just done to it. Running - this twice therefore changes nothing, and running it late still lands on the + A soft deletion is no longer reported: the document stays readable there + and the access rights it re-checks make it read-only, while a reset of the + connections on the deletion closes the clients still editing it (see + `reset_service_connections_on_commit`). A deletion report would tombstone + the document in the collaboration server and make it unreachable from the + editor, which is what restoring a document must undo. + + The restoration is still reported, as a safety net: nothing on this code + tombstones the room of a soft-deleted document, but something acting on + yhub with the admin token could, and only this call lifts a tombstone. + Running it twice changes nothing, and running it late still lands on the right answer. - A document failing is logged and does not stop the ones after it; the - collaboration server keeps serving it until something says so again. + A restored document brings back only the part of its subtree that was + deleted with it, the documents deleted on their own stay deleted: what + each document of the subtree needs is read from what it is now rather than + from what was just done to it, so the walk reports the restoration of the + documents that are back and leaves the others alone. """ # resolved at run time: the models queue these tasks, importing them here # would import the models back @@ -51,16 +55,15 @@ def sync_service_deletions_in_cascade(document_id): for doc in documents: # a descendant carries the deletion of its ancestors, never its own # `deleted_at`, unless it was deleted on its own beforehand - deleted = doc.deleted_at is not None or doc.ancestors_deleted_at is not None + if doc.deleted_at is not None or doc.ancestors_deleted_at is not None: + # still deleted: its room was never deleted in the collaboration + # server, whose access re-checks already make it read-only + continue try: - if deleted: - service.delete_ydoc(doc) - else: - service.restore_ydoc(doc) + service.restore_ydoc(doc) except YHubError: logger.exception( - "impossible to %s document %s on the collaboration server", - "delete" if deleted else "restore", + "impossible to restore document %s on the collaboration server", doc.id, ) @@ -76,11 +79,6 @@ def delete_service_documents(self, document_ids): Report to the collaboration server the deletion of documents that are gone for good from the database. - `sync_service_deletions_in_cascade` reads the documents back to know what - to report, which a hard deletion leaves nothing of: the ids are all that - is left, and the walk down the tree is up to the caller. Each document is - deleted on its own, one failing does not stop the others. - Nothing else knows of these deletions anymore, so a failure is retried, for the documents that failed only, with a countdown doubling at each attempt. Once the retries are spent, the ids are logged as an error: it diff --git a/src/backend/core/tests/documents/test_api_document_invitations.py b/src/backend/core/tests/documents/test_api_document_invitations.py index 94eda072d0..84df822722 100644 --- a/src/backend/core/tests/documents/test_api_document_invitations.py +++ b/src/backend/core/tests/documents/test_api_document_invitations.py @@ -457,7 +457,7 @@ def test_api_document_invitations_create_email_from_senders_language(): assert email.to == ["guest@example.com"] email_content = " ".join(email.body.split()) - assert f"{user.full_name} a partagé un document avec vous!" in email_content + assert f"{user.full_name} a partagé un document avec vous !" in email_content assert ( "Docs, votre nouvel outil incontournable pour organiser, partager et collaborer " "sur vos documents en équipe." in email_content diff --git a/src/backend/core/tests/documents/test_api_documents_attachment_upload.py b/src/backend/core/tests/documents/test_api_documents_attachment_upload.py index 9634a163e5..a65eb47b32 100644 --- a/src/backend/core/tests/documents/test_api_documents_attachment_upload.py +++ b/src/backend/core/tests/documents/test_api_documents_attachment_upload.py @@ -13,7 +13,7 @@ import pytest from rest_framework.test import APIClient -from core import factories +from core import factories, models from core.api.viewsets import malware_detection from core.tests.conftest import TEAM, USER, VIA @@ -492,3 +492,45 @@ def test_api_documents_attachment_upload_unsafe_mime_types_disabled(settings): "application/octet-stream", ] assert file_head["ContentDisposition"] == 'attachment; filename="script.exe"' + + +def test_api_documents_attachment_upload_stale_instance_does_not_revert_link_configuration(): + """ + An attachment upload must only write the attachments column. + + A request that loaded the document before an owner withdrew the link + configuration must not put the old configuration back when it saves the + attachment. + """ + user = factories.UserFactory() + client = APIClient() + client.force_login(user) + + document = factories.DocumentFactory( + link_reach="public", link_role="editor", users=[(user, "editor")] + ) + + # The upload request loads the document while it is still public. + stale_document = models.Document.objects.get(pk=document.pk) + + # The owner withdraws the link in between. + withdrawal = models.Document.objects.get(pk=document.pk) + withdrawal.link_reach = models.LinkReachChoices.RESTRICTED + withdrawal.link_role = models.LinkRoleChoices.READER + withdrawal.save(update_fields=["link_reach", "link_role"]) + + # The upload commits after the withdrawal. + file = SimpleUploadedFile(name="test.png", content=PIXEL, content_type="image/png") + url = f"/api/v1.0/documents/{document.id!s}/attachment-upload/" + with mock.patch.object(malware_detection, "analyse_file"): + response = client.post(url, {"file": file}, format="multipart") + + assert response.status_code == 201 + + document.refresh_from_db() + assert len(document.attachments) == 1 + assert document.link_reach == models.LinkReachChoices.RESTRICTED + assert document.link_role == models.LinkRoleChoices.READER + + # The stale in-memory instance is left untouched for reference. + assert stale_document.link_reach == "public" diff --git a/src/backend/core/tests/documents/test_api_documents_delete.py b/src/backend/core/tests/documents/test_api_documents_delete.py index 6672b13760..5b60c0cf3e 100644 --- a/src/backend/core/tests/documents/test_api_documents_delete.py +++ b/src/backend/core/tests/documents/test_api_documents_delete.py @@ -150,30 +150,23 @@ def test_api_documents_delete_authenticated_owner(via, mock_user_teams): ) -def test_api_documents_delete_reports_the_deletion_to_the_collaboration_server( - django_capture_on_commit_callbacks, +def test_api_documents_delete_reset_yhub_service( + mock_reset_service_connections, capture_service_resets ): - """ - Deleting a document should tell the collaboration server, which holds its - content and would otherwise go on serving it to the clients editing it. - """ - user = factories.UserFactory() - document = factories.DocumentFactory(users=[(user, "owner")]) - child = factories.DocumentFactory(parent=document) + """Deleting a document must reset the connection on the collaboration server.""" + user = factories.UserFactory() client = APIClient() client.force_login(user) - # the report is made once the deletion is committed: the task reads it back - with ( - mock.patch("core.tasks.documents.YHubService") as mock_service, - django_capture_on_commit_callbacks(execute=True), - ): - response = client.delete(f"/api/v1.0/documents/{document.id!s}/") + document = factories.DocumentFactory(users=[(user, "owner")]) + + with capture_service_resets(): + response = client.delete( + f"/api/v1.0/documents/{document.id}/", + ) assert response.status_code == 204 - # the subtree goes with it - assert mock_service.return_value.delete_ydoc.call_args_list == [ - mock.call(document), - mock.call(child), - ] + + # Make sure the reset service connection is called + mock_reset_service_connections.assert_called_once_with(str(document.id), None) diff --git a/src/backend/core/tests/documents/test_api_documents_link_configuration.py b/src/backend/core/tests/documents/test_api_documents_link_configuration.py index 7a516afea4..384c329b5b 100644 --- a/src/backend/core/tests/documents/test_api_documents_link_configuration.py +++ b/src/backend/core/tests/documents/test_api_documents_link_configuration.py @@ -419,3 +419,91 @@ def test_api_documents_link_configuration_update_invalid_role_for_reach_validati in error_message ) assert "Allowed roles: editor" in error_message + + +def test_api_documents_link_configuration_survives_concurrent_title_patch( + mock_reset_connections, +): + """ + A title patch loaded before a withdrawal of the link configuration and + saved after it must not put the withdrawn link configuration back. + """ + owner = factories.UserFactory() + client = APIClient() + client.force_login(owner) + + document = factories.DocumentFactory( + link_reach=models.LinkReachChoices.PUBLIC, + link_role=models.LinkRoleChoices.EDITOR, + title="before", + ) + factories.UserDocumentAccessFactory( + document=document, user=owner, role=models.RoleChoices.OWNER + ) + + # The concurrent writer (e.g. an anonymous editor) loads the document + # before the withdrawal: the request holds an instance in memory. + stale_document = models.Document.objects.get(pk=document.pk) + + # The owner withdraws the link in between. + with mock_reset_connections(document.id): + response = client.put( + f"/api/v1.0/documents/{document.id!s}/link-configuration/", + {"link_reach": models.LinkReachChoices.RESTRICTED}, + format="json", + ) + assert response.status_code == 200 + + # The concurrent write commits after the withdrawal. + stale_document.title = "written by an anonymous visitor" + stale_document.save(update_fields=["title"]) + + # The withdrawal holds: the write did not write the sharing columns back. + # The withdrawal only changed the reach, so the editor role of the link is + # kept in the database while the reach is now restricted. + document.refresh_from_db() + assert document.link_reach == models.LinkReachChoices.RESTRICTED + assert document.title == "written by an anonymous visitor" + + +def test_api_documents_link_configuration_save_writes_link_fields_only( + mock_reset_connections, +): + """ + The link-configuration endpoint must only write the link fields: a stale + instance must not be able to rewrite the rest of the row. + """ + user = factories.UserFactory() + client = APIClient() + client.force_login(user) + + document = factories.DocumentFactory( + link_reach=models.LinkReachChoices.PUBLIC, + link_role=models.LinkRoleChoices.READER, + title="untouched", + ) + factories.UserDocumentAccessFactory( + document=document, user=user, role=models.RoleChoices.OWNER + ) + + # Corrupt the in-memory instance the request will come from to prove that + # none of the other columns are written by the endpoint. + stale_document = models.Document.objects.get(pk=document.pk) + stale_document.title = "title the endpoint must not save" + stale_document.path = "000000" # a stale tree path + + with mock_reset_connections(document.id): + response = client.put( + f"/api/v1.0/documents/{document.id!s}/link-configuration/", + { + "link_reach": models.LinkReachChoices.AUTHENTICATED, + "link_role": models.LinkRoleChoices.READER, + }, + format="json", + ) + assert response.status_code == 200 + + document.refresh_from_db() + assert document.link_reach == models.LinkReachChoices.AUTHENTICATED + assert document.title == "untouched" + assert document.path != "000000" diff --git a/src/backend/core/tests/documents/test_api_documents_mention.py b/src/backend/core/tests/documents/test_api_documents_mention.py index 81e42820be..3cc0e0c49d 100644 --- a/src/backend/core/tests/documents/test_api_documents_mention.py +++ b/src/backend/core/tests/documents/test_api_documents_mention.py @@ -366,10 +366,10 @@ def test_api_documents_mention_thread(): Mentions can be attached to a comment thread of the document, in which case the email notification mentions the comment. """ - user = factories.UserFactory(full_name="Mentioning User") + user = factories.UserFactory(full_name="Mentioning User", language="en-us") document = factories.DocumentFactory(title="My doc") factories.UserDocumentAccessFactory(document=document, user=user, role="commenter") - mentioned_user = factories.UserFactory() + mentioned_user = factories.UserFactory(language="en-us") factories.UserDocumentAccessFactory( document=document, user=mentioned_user, role="commenter" ) diff --git a/src/backend/core/tests/documents/test_api_documents_update.py b/src/backend/core/tests/documents/test_api_documents_update.py index 1b89996b68..4977e4ab6c 100644 --- a/src/backend/core/tests/documents/test_api_documents_update.py +++ b/src/backend/core/tests/documents/test_api_documents_update.py @@ -660,3 +660,170 @@ def test_api_documents_patch_empty_body(): new_document_values = serializers.DocumentSerializer(instance=document).data assert new_document_values == old_document_values assert document_updated_at == document.updated_at + + +@pytest.mark.parametrize("via", VIA) +def test_api_documents_patch_stale_instance_does_not_revert_link_configuration( + via, mock_user_teams +): + """ + A write must only save the fields the request carries. + + An editor patching a document from an instance loaded before an owner + withdrew the link configuration must not put the old link configuration + back: the patch saves the title only. This is the interleaving of the + reported race condition, reproduced deterministically by loading the + stale instance before the withdrawal and saving after it. + """ + owner = factories.UserFactory() + editor = factories.UserFactory(with_owned_document=True) + + client = APIClient() + client.force_login(editor) + + document = factories.DocumentFactory( + link_reach="public", link_role="editor", title="before" + ) + factories.UserDocumentAccessFactory(document=document, user=owner, role="owner") + + if via == USER: + factories.UserDocumentAccessFactory( + document=document, user=editor, role="editor" + ) + elif via == TEAM: + mock_user_teams.return_value = ["lasuite", "unknown"] + factories.TeamDocumentAccessFactory( + document=document, team="lasuite", role="editor" + ) + + # The editor's request loads the document while it is still public. + stale_document = models.Document.objects.get(pk=document.pk) + + # The owner withdraws the link in between. + withdrawal = models.Document.objects.get(pk=document.pk) + withdrawal.link_reach = models.LinkReachChoices.RESTRICTED + withdrawal.link_role = models.LinkRoleChoices.READER + withdrawal.save(update_fields=["link_reach", "link_role"]) + + # The editor's write commits after the withdrawal. + response = client.patch( + f"/api/v1.0/documents/{document.id!s}/", + {"title": "written while revoked"}, + format="json", + ) + assert response.status_code == 200 + + # The withdrawal holds: the patch did not write the sharing columns back. + document.refresh_from_db() + assert document.title == "written while revoked" + assert document.link_reach == models.LinkReachChoices.RESTRICTED + assert document.link_role == models.LinkRoleChoices.READER + + # The stale instance the patch came from is left untouched for reference. + assert stale_document.link_reach == models.LinkReachChoices.PUBLIC + + +def test_api_documents_patch_stale_instance_does_not_resurrect_soft_deletion(): + """ + A write loaded before a soft deletion must not undo the deletion by + writing the deleted_at and ancestors_deleted_at columns back. + """ + user = factories.UserFactory() + + client = APIClient() + client.force_login(user) + + document = factories.DocumentFactory(title="to delete", users=[(user, "owner")]) + + # The request loads the document while it is alive. + stale_document = models.Document.objects.get(pk=document.pk) + + # The owner soft deletes it in between. + document.soft_delete() + + # A write admitted before the deletion commits after it. + response = client.patch( + f"/api/v1.0/documents/{document.id!s}/", + {"title": "written while deleted"}, + format="json", + ) + assert response.status_code in [200, 403, 404] + + document.refresh_from_db() + assert document.deleted_at is not None + assert document.ancestors_deleted_at is not None + # The title may have been saved on the deleted document: what must hold is + # that the deletion itself was not reverted. + assert stale_document.deleted_at is None + + +def test_api_documents_patch_stale_instance_does_not_revert_path(): + """ + A write loaded before a move must not write the stale tree path back, + which would leave the document under one parent and counted by another. + """ + user = factories.UserFactory() + + client = APIClient() + client.force_login(user) + + document = factories.DocumentFactory(title="to move", users=[(user, "owner")]) + old_path = document.path + + # The request loads the document before the move. + models.Document.objects.get(pk=document.pk) + + # The owner moves it under another parent in between. + new_parent = factories.DocumentFactory() + document.move(new_parent, pos="last-child") + + # The write commits after the move. + response = client.patch( + f"/api/v1.0/documents/{document.id!s}/", + {"title": "written after the move"}, + format="json", + ) + assert response.status_code == 200 + + document.refresh_from_db() + assert document.title == "written after the move" + assert document.path != old_path + assert document.get_parent().id == new_parent.id + + +def test_api_documents_update_stale_instance_does_not_revert_link_configuration(): + """ + Same lost update through a full PUT: an update carrying only writable + fields must not rewrite the read-only link columns of the row. + """ + user = factories.UserFactory() + + client = APIClient() + client.force_login(user) + + document = factories.DocumentFactory( + link_reach="public", link_role="editor", title="old title" + ) + factories.UserDocumentAccessFactory(document=document, user=user, role="owner") + + # The request loads the document while it is still public. + models.Document.objects.get(pk=document.pk) + + # The owner withdraws the link in between. + withdrawal = models.Document.objects.get(pk=document.pk) + withdrawal.link_reach = models.LinkReachChoices.RESTRICTED + withdrawal.link_role = models.LinkRoleChoices.READER + withdrawal.save(update_fields=["link_reach", "link_role"]) + + # The write commits after the withdrawal: PUT with the writable fields only. + response = client.put( + f"/api/v1.0/documents/{document.id!s}/", + {"title": "written while revoked", "excerpt": "excerpt"}, + format="json", + ) + assert response.status_code == 200 + + document.refresh_from_db() + assert document.title == "written while revoked" + assert document.link_reach == models.LinkReachChoices.RESTRICTED + assert document.link_role == models.LinkRoleChoices.READER diff --git a/src/backend/core/tests/test_tasks_documents.py b/src/backend/core/tests/test_tasks_documents.py index 38f53b29dc..f97969e882 100644 --- a/src/backend/core/tests/test_tasks_documents.py +++ b/src/backend/core/tests/test_tasks_documents.py @@ -1,6 +1,6 @@ """ -Tests for the `sync_service_deletions_in_cascade` Celery task in the -core.tasks.documents module. +Tests for the `sync_service_restorations_in_cascade` and `delete_service_documents` +Celery tasks in the core.tasks.documents module. """ from unittest import mock @@ -12,29 +12,30 @@ from core.services.yhub_services import ServiceUnavailableError from core.tasks.documents import ( delete_service_documents, - sync_service_deletions_in_cascade, + sync_service_restorations_in_cascade, ) pytestmark = pytest.mark.django_db @mock.patch("core.tasks.documents.YHubService") -def test_sync_service_deletions_deletes_the_document(mock_service): - """A deleted document should be deleted on the collaboration server.""" +def test_sync_service_restorations_restores_the_document(mock_service): + """A document that is back should be restored on the collaboration server.""" document = factories.DocumentFactory() document.soft_delete() + document.restore() - sync_service_deletions_in_cascade(str(document.id)) + sync_service_restorations_in_cascade(str(document.id)) - mock_service.return_value.delete_ydoc.assert_called_once_with(document) - mock_service.return_value.restore_ydoc.assert_not_called() + mock_service.return_value.restore_ydoc.assert_called_once_with(document) + mock_service.return_value.delete_ydoc.assert_not_called() @mock.patch("core.tasks.documents.YHubService") -def test_sync_service_deletions_in_cascade(mock_service): +def test_sync_service_restorations_in_cascade(mock_service): """ - Deleting a document deletes the subtree under it, so the whole subtree - should be deleted, the document itself included and its ancestors left out. + Restoring a document restores the subtree that was deleted with it, the + document itself included and its ancestors left out. """ parent = factories.DocumentFactory() document = factories.DocumentFactory(parent=parent) @@ -42,81 +43,81 @@ def test_sync_service_deletions_in_cascade(mock_service): grand_child = factories.DocumentFactory(parent=child) factories.DocumentFactory() # a document of another tree document.soft_delete() + document.restore() - sync_service_deletions_in_cascade(str(document.id)) + sync_service_restorations_in_cascade(str(document.id)) - assert mock_service.return_value.delete_ydoc.call_args_list == [ + assert mock_service.return_value.restore_ydoc.call_args_list == [ mock.call(document), mock.call(child), mock.call(grand_child), ] + mock_service.return_value.delete_ydoc.assert_not_called() @mock.patch("core.tasks.documents.YHubService") -def test_sync_service_deletions_restores_the_document(mock_service): - """A document that is back should be restored on the collaboration server.""" +def test_sync_service_restorations_leaves_out_what_stays_deleted(mock_service): + """ + A document deleted on its own before its ancestor was stays deleted when + the ancestor comes back: it is never reported to the collaboration server, + whose room for it was never deleted in the first place — its access + re-checks already make it read-only. + """ document = factories.DocumentFactory() child = factories.DocumentFactory(parent=document) + factories.DocumentFactory(parent=child) # a grand child that stays deleted + child.soft_delete() document.soft_delete() document.restore() - sync_service_deletions_in_cascade(str(document.id)) + sync_service_restorations_in_cascade(str(document.id)) + # the subtree of the child was deleted on its own and is still deleted assert mock_service.return_value.restore_ydoc.call_args_list == [ - mock.call(document), - mock.call(child), + mock.call(document) ] mock_service.return_value.delete_ydoc.assert_not_called() @mock.patch("core.tasks.documents.YHubService") -def test_sync_service_deletions_restore_leaves_out_what_stays_deleted(mock_service): +def test_sync_service_restorations_ignores_a_still_deleted_document(mock_service): """ - A document deleted on its own before its ancestor was stays deleted when - the ancestor comes back, and so should its content. + A deletion is no longer reported to the collaboration server: a document + whose room stays alive there must not be tombstoned by a stale report. """ document = factories.DocumentFactory() - child = factories.DocumentFactory(parent=document) - grand_child = factories.DocumentFactory(parent=child) - child.soft_delete() document.soft_delete() - document.restore() - sync_service_deletions_in_cascade(str(document.id)) + sync_service_restorations_in_cascade(str(document.id)) - # the subtree of the child was deleted on its own and is still deleted - assert mock_service.return_value.restore_ydoc.call_args_list == [ - mock.call(document) - ] - assert mock_service.return_value.delete_ydoc.call_args_list == [ - mock.call(child), - mock.call(grand_child), - ] + mock_service.return_value.delete_ydoc.assert_not_called() + mock_service.return_value.restore_ydoc.assert_not_called() @mock.patch("core.tasks.documents.YHubService") -def test_sync_service_deletions_unknown_document(mock_service): +def test_sync_service_restorations_unknown_document(mock_service): """A document deleted for good in the meantime should not reach the service.""" - sync_service_deletions_in_cascade("d43ea3c5-b8ee-4a4a-9c60-2ad7a1d9e6cf") + sync_service_restorations_in_cascade("d43ea3c5-b8ee-4a4a-9c60-2ad7a1d9e6cf") mock_service.return_value.delete_ydoc.assert_not_called() mock_service.return_value.restore_ydoc.assert_not_called() @mock.patch("core.tasks.documents.YHubService") -def test_sync_service_deletions_keeps_going_on_failure(mock_service): - """A document failing should not deprive the ones after it of their deletion.""" +def test_sync_service_restorations_keeps_going_on_failure(mock_service): + """A document failing should not deprive the ones after it of their restoration.""" document = factories.DocumentFactory() child = factories.DocumentFactory(parent=document) document.soft_delete() - mock_service.return_value.delete_ydoc.side_effect = [ + document.restore() + mock_service.return_value.restore_ydoc.side_effect = [ ServiceUnavailableError("yhub is down"), None, ] - sync_service_deletions_in_cascade(str(document.id)) + sync_service_restorations_in_cascade(str(document.id)) - assert mock_service.return_value.delete_ydoc.call_args_list == [ + assert mock_service.return_value.restore_ydoc.call_args_list == [ mock.call(document), mock.call(child), ] diff --git a/src/backend/locale/br_FR/LC_MESSAGES/django.po b/src/backend/locale/br_FR/LC_MESSAGES/django.po index 1ad5132247..d86d4c2d3a 100644 --- a/src/backend/locale/br_FR/LC_MESSAGES/django.po +++ b/src/backend/locale/br_FR/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: lasuite-docs\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-30 13:00+0000\n" -"PO-Revision-Date: 2026-10-02 09:08\n" +"POT-Creation-Date: 2026-10-05 12:41+0000\n" +"PO-Revision-Date: 2026-10-05 14:54\n" "Last-Translator: \n" "Language-Team: Breton\n" "Language: br_FR\n" @@ -78,12 +78,12 @@ msgstr "Ar vaezienn-mañ a zo rekis." msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration." msgstr "" -#: core/api/viewsets.py:1434 +#: core/api/viewsets.py:1439 #, python-brace-format msgid "copy of {title}" msgstr "eilenn {title}" -#: core/api/viewsets.py:3334 +#: core/api/viewsets.py:3324 #, python-format msgid "A comment can have a maximum of %(max)d distinct reactions." msgstr "" @@ -148,198 +148,198 @@ msgstr "Kleiz" msgid "Right" msgstr "Dehoù" -#: core/models.py:80 +#: core/models.py:82 msgid "id" msgstr "id" -#: core/models.py:81 +#: core/models.py:83 msgid "primary key for the record as UUID" msgstr "alc'hwez kentañ evit an enrollañ evel UIID" -#: core/models.py:87 +#: core/models.py:89 msgid "created on" msgstr "krouet d'ar/al" -#: core/models.py:88 +#: core/models.py:90 msgid "date and time at which a record was created" msgstr "deiziad hag eurvezh krouidigezh an enrolladenn" -#: core/models.py:93 core/models.py:2256 +#: core/models.py:95 core/models.py:2347 msgid "updated on" msgstr "hizivaet d'ar/al" -#: core/models.py:94 +#: core/models.py:96 msgid "date and time at which a record was last updated" msgstr "deiziad hag eurvezh m'eo bet hizivaet an enrolladenn" -#: core/models.py:130 +#: core/models.py:132 msgid "We couldn't find a user with this sub but the email is already associated with a registered user." msgstr "N'hon eus kavet implijer ebet gant an isstrollad-mañ met ar postel a zo liammet ouzh un implijer enrollet." -#: core/models.py:141 +#: core/models.py:143 msgid "sub" msgstr "isstrollad" -#: core/models.py:142 +#: core/models.py:144 msgid "Required. 255 characters or fewer. ASCII characters only." msgstr "" -#: core/models.py:150 +#: core/models.py:152 msgid "full name" msgstr "anv klok" -#: core/models.py:152 +#: core/models.py:154 msgid "short name" msgstr "anv berr" -#: core/models.py:155 +#: core/models.py:157 msgid "identity email address" msgstr "postel identelezh" -#: core/models.py:160 +#: core/models.py:162 msgid "admin email address" msgstr "postel ar merour" -#: core/models.py:167 +#: core/models.py:169 msgid "language" msgstr "yezh" -#: core/models.py:168 +#: core/models.py:170 msgid "The language in which the user wants to see the interface." msgstr "Ar yezh a vo implijet evit etrefas an implijer." -#: core/models.py:176 +#: core/models.py:178 msgid "The timezone in which the user wants to see times." msgstr "Ar gwerzhid-eur a vo implijet evit etrefas an implijer." -#: core/models.py:179 +#: core/models.py:181 msgid "device" msgstr "trevnad" -#: core/models.py:181 +#: core/models.py:183 msgid "Whether the user is a device or a real user." msgstr "Pe vefe an implijer un aparailh pe un implijer gwirion." -#: core/models.py:184 +#: core/models.py:186 msgid "staff status" msgstr "statud ar skipailh" -#: core/models.py:186 +#: core/models.py:188 msgid "Whether the user can log into this admin site." msgstr "Ma c'hall an implijer kevreañ ouzh al lec'hienn verañ-mañ." -#: core/models.py:189 +#: core/models.py:191 msgid "active" msgstr "oberiant" -#: core/models.py:192 +#: core/models.py:194 msgid "Whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "Ma rank bezañ tretet an implijer-mañ evel oberiant. Diziuzit an dra-mañ e-plas dilemel kontoù." -#: core/models.py:197 +#: core/models.py:199 msgid "first connection status" msgstr "" -#: core/models.py:199 +#: core/models.py:201 msgid "Whether the user has completed the first connection process." msgstr "" -#: core/models.py:209 +#: core/models.py:211 msgid "user" msgstr "implijer" -#: core/models.py:210 +#: core/models.py:212 msgid "users" msgstr "implijerien" -#: core/models.py:439 +#: core/models.py:469 msgid "Active email address" msgstr "" -#: core/models.py:440 +#: core/models.py:470 msgid "Email address to deactivate" msgstr "" -#: core/models.py:467 +#: core/models.py:497 msgid "Unique ID in the source file" msgstr "" -#: core/models.py:473 core/models.py:771 +#: core/models.py:503 core/models.py:812 msgid "Pending" msgstr "" -#: core/models.py:474 +#: core/models.py:504 msgid "Ready" msgstr "" -#: core/models.py:475 core/models.py:773 +#: core/models.py:505 core/models.py:814 msgid "Done" msgstr "" -#: core/models.py:476 core/models.py:774 +#: core/models.py:506 core/models.py:815 msgid "Error" msgstr "" -#: core/models.py:484 +#: core/models.py:514 msgid "user reconciliation" msgstr "" -#: core/models.py:485 +#: core/models.py:515 msgid "user reconciliations" msgstr "" -#: core/models.py:723 +#: core/models.py:764 msgid "You have requested a reconciliation of your user accounts on Docs.\n" " To confirm that you are the one who initiated the request\n" " and that this email belongs to you:" msgstr "" -#: core/models.py:729 +#: core/models.py:770 msgid "Confirm by clicking the link to start the reconciliation" msgstr "" -#: core/models.py:734 core/models.py:840 +#: core/models.py:775 core/models.py:881 msgid "Click here" msgstr "" -#: core/models.py:735 +#: core/models.py:776 msgid "Confirm" msgstr "" -#: core/models.py:746 +#: core/models.py:787 msgid "Your reconciliation request has been processed.\n" " New documents are likely associated with your account:" msgstr "" -#: core/models.py:751 +#: core/models.py:792 msgid "Your accounts have been merged" msgstr "" -#: core/models.py:756 +#: core/models.py:797 msgid "Click here to see" msgstr "" -#: core/models.py:757 +#: core/models.py:798 msgid "See my documents" msgstr "" -#: core/models.py:767 +#: core/models.py:808 msgid "CSV file" msgstr "" -#: core/models.py:772 +#: core/models.py:813 msgid "Running" msgstr "" -#: core/models.py:782 +#: core/models.py:823 msgid "user reconciliation CSV import" msgstr "" -#: core/models.py:783 +#: core/models.py:824 msgid "user reconciliation CSV imports" msgstr "" -#: core/models.py:827 +#: core/models.py:868 #, python-brace-format msgid "Your request for reconciliation was unsuccessful.\n" " Reconciliation failed for the following email addresses:\n" @@ -348,273 +348,273 @@ msgid "Your request for reconciliation was unsuccessful.\n" " You can submit another request with the valid email addresses." msgstr "" -#: core/models.py:835 +#: core/models.py:876 msgid "Reconciliation of your Docs accounts not completed" msgstr "" -#: core/models.py:841 +#: core/models.py:882 msgid "Make a new request" msgstr "" -#: core/models.py:956 +#: core/models.py:997 msgid "title" msgstr "titl" -#: core/models.py:957 +#: core/models.py:998 msgid "excerpt" msgstr "bomm" -#: core/models.py:1004 +#: core/models.py:1045 msgid "Document" msgstr "Restr" -#: core/models.py:1005 +#: core/models.py:1046 msgid "Documents" msgstr "Restroù" -#: core/models.py:1022 core/models.py:1351 core/models.py:2087 +#: core/models.py:1063 core/models.py:1442 core/models.py:2178 msgid "Untitled Document" msgstr "Restr hep titl" -#: core/models.py:1352 +#: core/models.py:1443 msgid "Open" msgstr "Digeriñ" -#: core/models.py:1387 +#: core/models.py:1478 #, python-brace-format msgid "{name} shared a document with you!" msgstr "{name} en deus rannet ur restr ganeoc'h!" -#: core/models.py:1391 +#: core/models.py:1482 #, python-brace-format msgid "{name} invited you with the role \"{role}\" on the following document:" msgstr "{name} en deus pedet ac'hanoc'h gant ar rol \"{role}\" war ar restr da-heul:" -#: core/models.py:1397 +#: core/models.py:1488 #, python-brace-format msgid "{name} shared a document with you: {title}" msgstr "{name} en deus rannet ur restr ganeoc'h: {title}" -#: core/models.py:1497 +#: core/models.py:1588 msgid "Document/user link trace" msgstr "Roud liamm ar restr/an implijer" -#: core/models.py:1498 +#: core/models.py:1589 msgid "Document/user link traces" msgstr "Roudoù liamm ar restr/an implijer" -#: core/models.py:1504 +#: core/models.py:1595 msgid "A link trace already exists for this document/user." msgstr "Ur roud liamm a zo dija evit an restr/an implijer." -#: core/models.py:1527 +#: core/models.py:1618 msgid "Document favorite" msgstr "Restr muiañ-karet" -#: core/models.py:1528 +#: core/models.py:1619 msgid "Document favorites" msgstr "Restroù muiañ-karet" -#: core/models.py:1534 +#: core/models.py:1625 msgid "This document is already targeted by a favorite relation instance for the same user." msgstr "Ar restr-mañ a zo ur restr muiañ karet gant an implijer-mañ." -#: core/models.py:1556 +#: core/models.py:1647 msgid "Document/user relation" msgstr "Liamm restr/implijer" -#: core/models.py:1557 +#: core/models.py:1648 msgid "Document/user relations" msgstr "Liammoù restr/implijer" -#: core/models.py:1563 +#: core/models.py:1654 msgid "This user is already in this document." msgstr "An implijer-mañ a zo dija er restr-mañ." -#: core/models.py:1569 +#: core/models.py:1660 msgid "This team is already in this document." msgstr "Ar skipailh-mañ a zo dija en restr-mañ." -#: core/models.py:1575 +#: core/models.py:1666 msgid "Either user or team must be set, not both." msgstr "An implijer pe ar skipailh a rank bezañ termenet, ket an daou avat." -#: core/models.py:1726 +#: core/models.py:1817 msgid "Document ask for access" msgstr "Goulenn tizhout ar restr" -#: core/models.py:1727 +#: core/models.py:1818 msgid "Document ask for accesses" msgstr "Goulennoù tizhout ar restr" -#: core/models.py:1733 +#: core/models.py:1824 msgid "This user has already asked for access to this document." msgstr "An implijer en deus goulennet tizhout ar restr-mañ." -#: core/models.py:1790 +#: core/models.py:1881 #, python-brace-format msgid "{name} would like access to a document!" msgstr "{name} en defe c'hoant da dizhout ar restr-mañ!" -#: core/models.py:1794 +#: core/models.py:1885 #, python-brace-format msgid "{name} would like access to the following document:" msgstr "{name} en defe c'hoant da dizhout ar restr da-heul:" -#: core/models.py:1800 +#: core/models.py:1891 #, python-brace-format msgid "{name} is asking for access to the document: {title}" msgstr "{name} en defe c'hoant da dizhout ar restr: {title}" -#: core/models.py:1842 +#: core/models.py:1933 msgid "Thread" msgstr "" -#: core/models.py:1843 +#: core/models.py:1934 msgid "Threads" msgstr "" -#: core/models.py:1846 core/models.py:1899 +#: core/models.py:1937 core/models.py:1990 msgid "Anonymous" msgstr "" -#: core/models.py:1894 +#: core/models.py:1985 msgid "Comment" msgstr "" -#: core/models.py:1895 +#: core/models.py:1986 msgid "Comments" msgstr "" -#: core/models.py:1945 +#: core/models.py:2036 msgid "This emoji has already been reacted to this comment." msgstr "" -#: core/models.py:1949 +#: core/models.py:2040 msgid "Reaction" msgstr "" -#: core/models.py:1950 +#: core/models.py:2041 msgid "Reactions" msgstr "" -#: core/models.py:2001 +#: core/models.py:2092 msgid "Mention" msgstr "" -#: core/models.py:2002 +#: core/models.py:2093 msgid "Mentions" msgstr "" -#: core/models.py:2015 +#: core/models.py:2106 msgid "a deleted user" msgstr "" -#: core/models.py:2025 +#: core/models.py:2116 msgid "The thread does not belong to this document." msgstr "" -#: core/models.py:2089 +#: core/models.py:2180 #, python-brace-format msgid "{name} mentioned you in a comment in \"{title}\"" msgstr "" -#: core/models.py:2093 +#: core/models.py:2184 #, python-brace-format msgid "{name} mentioned you in a comment in the following document:" msgstr "" -#: core/models.py:2096 +#: core/models.py:2187 #, python-brace-format msgid "{name} mentioned you in \"{title}\"" msgstr "" -#: core/models.py:2099 +#: core/models.py:2190 #, python-brace-format msgid "{name} mentioned you in the following document:" msgstr "" -#: core/models.py:2125 +#: core/models.py:2216 msgid "email address" msgstr "postel" -#: core/models.py:2144 +#: core/models.py:2235 msgid "Document invitation" msgstr "Pedadenn d'ur restr" -#: core/models.py:2145 +#: core/models.py:2236 msgid "Document invitations" msgstr "Pedadennoù d'ur restr" -#: core/models.py:2165 +#: core/models.py:2256 msgid "This email is already associated to a registered user." msgstr "Ar postel-mañ a zo liammet ouzh un implijer enskrivet." -#: core/models.py:2208 +#: core/models.py:2299 msgid "Migrated" msgstr "" -#: core/models.py:2209 +#: core/models.py:2300 msgid "Already migrated" msgstr "" -#: core/models.py:2210 +#: core/models.py:2301 msgid "Nothing in the object storage" msgstr "" -#: core/models.py:2211 +#: core/models.py:2302 msgid "No readable version" msgstr "" -#: core/models.py:2212 +#: core/models.py:2303 msgid "Failed" msgstr "" -#: core/models.py:2236 +#: core/models.py:2327 msgid "status" msgstr "" -#: core/models.py:2238 +#: core/models.py:2329 msgid "versions" msgstr "" -#: core/models.py:2241 +#: core/models.py:2332 msgid "applied" msgstr "" -#: core/models.py:2242 +#: core/models.py:2333 msgid "versions that added content, one activity entry each" msgstr "" -#: core/models.py:2246 +#: core/models.py:2337 msgid "skipped" msgstr "" -#: core/models.py:2247 +#: core/models.py:2338 msgid "versions that could not be read" msgstr "" -#: core/models.py:2251 +#: core/models.py:2342 msgid "dropped" msgstr "" -#: core/models.py:2252 +#: core/models.py:2343 msgid "versions older than the ones the server replays" msgstr "" -#: core/models.py:2254 +#: core/models.py:2345 msgid "duration" msgstr "" -#: core/models.py:2255 +#: core/models.py:2346 msgid "error" msgstr "" -#: core/models.py:2260 +#: core/models.py:2351 msgid "Document migration" msgstr "" -#: core/models.py:2261 +#: core/models.py:2352 msgid "Document migrations" msgstr "" @@ -634,7 +634,7 @@ msgstr " Docs, hoc'h ostilh nevez ret-holl evit aozañ, rannañ ha kenlabourat w msgid " Brought to you by %(brandname)s " msgstr " Kinniget gant %(brandname)s " -#: impress/settings.py:960 +#: impress/settings.py:974 msgid "Docs AI" msgstr "" diff --git a/src/backend/locale/de_DE/LC_MESSAGES/django.po b/src/backend/locale/de_DE/LC_MESSAGES/django.po index cc9383635f..f46c2a7f5a 100644 --- a/src/backend/locale/de_DE/LC_MESSAGES/django.po +++ b/src/backend/locale/de_DE/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: lasuite-docs\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-30 13:00+0000\n" -"PO-Revision-Date: 2026-10-02 09:08\n" +"POT-Creation-Date: 2026-10-05 12:41+0000\n" +"PO-Revision-Date: 2026-10-05 14:54\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -78,12 +78,12 @@ msgstr "Dies ist ein Pflichtfeld." msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration." msgstr "Der Zugriff auf den Link '%(link_reach)s' ist aufgrund der Konfiguration übergeordneter Dokumente nicht erlaubt." -#: core/api/viewsets.py:1434 +#: core/api/viewsets.py:1439 #, python-brace-format msgid "copy of {title}" msgstr "Kopie von {title}" -#: core/api/viewsets.py:3334 +#: core/api/viewsets.py:3324 #, python-format msgid "A comment can have a maximum of %(max)d distinct reactions." msgstr "" @@ -148,198 +148,198 @@ msgstr "Links" msgid "Right" msgstr "Rechts" -#: core/models.py:80 +#: core/models.py:82 msgid "id" msgstr "ID" -#: core/models.py:81 +#: core/models.py:83 msgid "primary key for the record as UUID" msgstr "Primärschlüssel für den Datensatz als UUID" -#: core/models.py:87 +#: core/models.py:89 msgid "created on" msgstr "Erstellt am" -#: core/models.py:88 +#: core/models.py:90 msgid "date and time at which a record was created" msgstr "Datum und Uhrzeit, an dem ein Datensatz erstellt wurde" -#: core/models.py:93 core/models.py:2256 +#: core/models.py:95 core/models.py:2347 msgid "updated on" msgstr "Aktualisiert" -#: core/models.py:94 +#: core/models.py:96 msgid "date and time at which a record was last updated" msgstr "Datum und Uhrzeit, an dem zuletzt aktualisiert wurde" -#: core/models.py:130 +#: core/models.py:132 msgid "We couldn't find a user with this sub but the email is already associated with a registered user." msgstr "Wir konnten keinen Benutzer mit diesem Abo finden, aber die E-Mail-Adresse ist bereits einem registrierten Benutzer zugeordnet." -#: core/models.py:141 +#: core/models.py:143 msgid "sub" msgstr "sub" -#: core/models.py:142 +#: core/models.py:144 msgid "Required. 255 characters or fewer. ASCII characters only." msgstr "Pflichtfeld. 255 Zeichen oder weniger. Buchstaben (nur ASCII), Ziffern und die Zeichen @/-/_/." -#: core/models.py:150 +#: core/models.py:152 msgid "full name" msgstr "Name" -#: core/models.py:152 +#: core/models.py:154 msgid "short name" msgstr "Kurzbezeichnung" -#: core/models.py:155 +#: core/models.py:157 msgid "identity email address" msgstr "Identitäts-E-Mail-Adresse" -#: core/models.py:160 +#: core/models.py:162 msgid "admin email address" msgstr "Admin E-Mail-Adresse" -#: core/models.py:167 +#: core/models.py:169 msgid "language" msgstr "Sprache" -#: core/models.py:168 +#: core/models.py:170 msgid "The language in which the user wants to see the interface." msgstr "Die Sprache, in der der Benutzer die Benutzeroberfläche sehen möchte." -#: core/models.py:176 +#: core/models.py:178 msgid "The timezone in which the user wants to see times." msgstr "Die Zeitzone, in der der Nutzer Zeiten sehen möchte." -#: core/models.py:179 +#: core/models.py:181 msgid "device" msgstr "Gerät" -#: core/models.py:181 +#: core/models.py:183 msgid "Whether the user is a device or a real user." msgstr "Ob der Benutzer ein Gerät oder ein echter Benutzer ist." -#: core/models.py:184 +#: core/models.py:186 msgid "staff status" msgstr "Status des Teammitgliedes" -#: core/models.py:186 +#: core/models.py:188 msgid "Whether the user can log into this admin site." msgstr "Gibt an, ob der Benutzer sich in diese Admin-Seite einloggen kann." -#: core/models.py:189 +#: core/models.py:191 msgid "active" msgstr "aktiviert" -#: core/models.py:192 +#: core/models.py:194 msgid "Whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "Ob dieser Benutzer als aktiviert behandelt werden soll. Deaktivieren Sie diese Option, anstatt Konten zu löschen." -#: core/models.py:197 +#: core/models.py:199 msgid "first connection status" msgstr "Status der ersten Verbindung" -#: core/models.py:199 +#: core/models.py:201 msgid "Whether the user has completed the first connection process." msgstr "Gibt an, ob der Benutzer die Prozedur der ersten Verbindung abgeschlossen hat." -#: core/models.py:209 +#: core/models.py:211 msgid "user" msgstr "Benutzer" -#: core/models.py:210 +#: core/models.py:212 msgid "users" msgstr "Benutzer" -#: core/models.py:439 +#: core/models.py:469 msgid "Active email address" msgstr "Aktive E-Mail-Adresse" -#: core/models.py:440 +#: core/models.py:470 msgid "Email address to deactivate" msgstr "Zu deaktivierende E-Mail-Adresse" -#: core/models.py:467 +#: core/models.py:497 msgid "Unique ID in the source file" msgstr "" -#: core/models.py:473 core/models.py:771 +#: core/models.py:503 core/models.py:812 msgid "Pending" msgstr "Ausstehend" -#: core/models.py:474 +#: core/models.py:504 msgid "Ready" msgstr "Bereit" -#: core/models.py:475 core/models.py:773 +#: core/models.py:505 core/models.py:814 msgid "Done" msgstr "Fertig" -#: core/models.py:476 core/models.py:774 +#: core/models.py:506 core/models.py:815 msgid "Error" msgstr "Fehler" -#: core/models.py:484 +#: core/models.py:514 msgid "user reconciliation" msgstr "" -#: core/models.py:485 +#: core/models.py:515 msgid "user reconciliations" msgstr "" -#: core/models.py:723 +#: core/models.py:764 msgid "You have requested a reconciliation of your user accounts on Docs.\n" " To confirm that you are the one who initiated the request\n" " and that this email belongs to you:" msgstr "" -#: core/models.py:729 +#: core/models.py:770 msgid "Confirm by clicking the link to start the reconciliation" msgstr "" -#: core/models.py:734 core/models.py:840 +#: core/models.py:775 core/models.py:881 msgid "Click here" msgstr "Klicken Sie hier" -#: core/models.py:735 +#: core/models.py:776 msgid "Confirm" msgstr "Bestätigen Sie" -#: core/models.py:746 +#: core/models.py:787 msgid "Your reconciliation request has been processed.\n" " New documents are likely associated with your account:" msgstr "" -#: core/models.py:751 +#: core/models.py:792 msgid "Your accounts have been merged" msgstr "Ihre Konten wurden zusammengelegt" -#: core/models.py:756 +#: core/models.py:797 msgid "Click here to see" msgstr "Klicken Sie hier um zu sehen" -#: core/models.py:757 +#: core/models.py:798 msgid "See my documents" msgstr "Meine Dokumente einsehen" -#: core/models.py:767 +#: core/models.py:808 msgid "CSV file" msgstr "CSV-Datei" -#: core/models.py:772 +#: core/models.py:813 msgid "Running" msgstr "Wird ausgeführt" -#: core/models.py:782 +#: core/models.py:823 msgid "user reconciliation CSV import" msgstr "" -#: core/models.py:783 +#: core/models.py:824 msgid "user reconciliation CSV imports" msgstr "" -#: core/models.py:827 +#: core/models.py:868 #, python-brace-format msgid "Your request for reconciliation was unsuccessful.\n" " Reconciliation failed for the following email addresses:\n" @@ -348,273 +348,273 @@ msgid "Your request for reconciliation was unsuccessful.\n" " You can submit another request with the valid email addresses." msgstr "" -#: core/models.py:835 +#: core/models.py:876 msgid "Reconciliation of your Docs accounts not completed" msgstr "" -#: core/models.py:841 +#: core/models.py:882 msgid "Make a new request" msgstr "Neue Anfrage erstellen" -#: core/models.py:956 +#: core/models.py:997 msgid "title" msgstr "Titel" -#: core/models.py:957 +#: core/models.py:998 msgid "excerpt" msgstr "Auszug" -#: core/models.py:1004 +#: core/models.py:1045 msgid "Document" msgstr "Dokument" -#: core/models.py:1005 +#: core/models.py:1046 msgid "Documents" msgstr "Dokumente" -#: core/models.py:1022 core/models.py:1351 core/models.py:2087 +#: core/models.py:1063 core/models.py:1442 core/models.py:2178 msgid "Untitled Document" msgstr "Unbenanntes Dokument" -#: core/models.py:1352 +#: core/models.py:1443 msgid "Open" msgstr "Öffnen" -#: core/models.py:1387 +#: core/models.py:1478 #, python-brace-format msgid "{name} shared a document with you!" msgstr "{name} hat ein Dokument mit Ihnen geteilt!" -#: core/models.py:1391 +#: core/models.py:1482 #, python-brace-format msgid "{name} invited you with the role \"{role}\" on the following document:" msgstr "{name} hat Sie mit der Rolle \"{role}\" zu folgendem Dokument eingeladen:" -#: core/models.py:1397 +#: core/models.py:1488 #, python-brace-format msgid "{name} shared a document with you: {title}" msgstr "{name} hat ein Dokument mit Ihnen geteilt: {title}" -#: core/models.py:1497 +#: core/models.py:1588 msgid "Document/user link trace" msgstr "Dokument/Benutzer Linkverfolgung" -#: core/models.py:1498 +#: core/models.py:1589 msgid "Document/user link traces" msgstr "Dokument/Benutzer Linkverfolgung" -#: core/models.py:1504 +#: core/models.py:1595 msgid "A link trace already exists for this document/user." msgstr "Für dieses Dokument/ diesen Benutzer ist bereits eine Linkverfolgung vorhanden." -#: core/models.py:1527 +#: core/models.py:1618 msgid "Document favorite" msgstr "Dokumentenfavorit" -#: core/models.py:1528 +#: core/models.py:1619 msgid "Document favorites" msgstr "Dokumentfavoriten" -#: core/models.py:1534 +#: core/models.py:1625 msgid "This document is already targeted by a favorite relation instance for the same user." msgstr "Dieses Dokument ist bereits durch den gleichen Benutzer favorisiert worden." -#: core/models.py:1556 +#: core/models.py:1647 msgid "Document/user relation" msgstr "Dokument/Benutzerbeziehung" -#: core/models.py:1557 +#: core/models.py:1648 msgid "Document/user relations" msgstr "Dokument/Benutzerbeziehungen" -#: core/models.py:1563 +#: core/models.py:1654 msgid "This user is already in this document." msgstr "Dieser Benutzer befindet sich bereits in diesem Dokument." -#: core/models.py:1569 +#: core/models.py:1660 msgid "This team is already in this document." msgstr "Dieses Team befindet sich bereits in diesem Dokument." -#: core/models.py:1575 +#: core/models.py:1666 msgid "Either user or team must be set, not both." msgstr "Benutzer oder Team müssen gesetzt werden, nicht beides." -#: core/models.py:1726 +#: core/models.py:1817 msgid "Document ask for access" msgstr "Dokument um Zugriff bitten" -#: core/models.py:1727 +#: core/models.py:1818 msgid "Document ask for accesses" msgstr "Dokumentenabfragen" -#: core/models.py:1733 +#: core/models.py:1824 msgid "This user has already asked for access to this document." msgstr "Dieser Benutzer hat bereits um Zugang zu diesem Dokument gebeten." -#: core/models.py:1790 +#: core/models.py:1881 #, python-brace-format msgid "{name} would like access to a document!" msgstr "{name} möchte Zugriff auf ein Dokument erhalten!" -#: core/models.py:1794 +#: core/models.py:1885 #, python-brace-format msgid "{name} would like access to the following document:" msgstr "{name} möchte auf das folgende Dokument zugreifen:" -#: core/models.py:1800 +#: core/models.py:1891 #, python-brace-format msgid "{name} is asking for access to the document: {title}" msgstr "{name} bittet um Zugang zum Dokument: {title}" -#: core/models.py:1842 +#: core/models.py:1933 msgid "Thread" msgstr "Thread" -#: core/models.py:1843 +#: core/models.py:1934 msgid "Threads" msgstr "Threads" -#: core/models.py:1846 core/models.py:1899 +#: core/models.py:1937 core/models.py:1990 msgid "Anonymous" msgstr "Gast" -#: core/models.py:1894 +#: core/models.py:1985 msgid "Comment" msgstr "Kommentar" -#: core/models.py:1895 +#: core/models.py:1986 msgid "Comments" msgstr "Kommentare" -#: core/models.py:1945 +#: core/models.py:2036 msgid "This emoji has already been reacted to this comment." msgstr "" -#: core/models.py:1949 +#: core/models.py:2040 msgid "Reaction" msgstr "Reaktion" -#: core/models.py:1950 +#: core/models.py:2041 msgid "Reactions" msgstr "Reaktionen" -#: core/models.py:2001 +#: core/models.py:2092 msgid "Mention" msgstr "" -#: core/models.py:2002 +#: core/models.py:2093 msgid "Mentions" msgstr "" -#: core/models.py:2015 +#: core/models.py:2106 msgid "a deleted user" msgstr "" -#: core/models.py:2025 +#: core/models.py:2116 msgid "The thread does not belong to this document." msgstr "" -#: core/models.py:2089 +#: core/models.py:2180 #, python-brace-format msgid "{name} mentioned you in a comment in \"{title}\"" msgstr "" -#: core/models.py:2093 +#: core/models.py:2184 #, python-brace-format msgid "{name} mentioned you in a comment in the following document:" msgstr "" -#: core/models.py:2096 +#: core/models.py:2187 #, python-brace-format msgid "{name} mentioned you in \"{title}\"" msgstr "" -#: core/models.py:2099 +#: core/models.py:2190 #, python-brace-format msgid "{name} mentioned you in the following document:" msgstr "" -#: core/models.py:2125 +#: core/models.py:2216 msgid "email address" msgstr "E-Mail-Adresse" -#: core/models.py:2144 +#: core/models.py:2235 msgid "Document invitation" msgstr "Einladung zum Dokument" -#: core/models.py:2145 +#: core/models.py:2236 msgid "Document invitations" msgstr "Dokumenteinladungen" -#: core/models.py:2165 +#: core/models.py:2256 msgid "This email is already associated to a registered user." msgstr "Diese E-Mail ist bereits einem registrierten Benutzer zugeordnet." -#: core/models.py:2208 +#: core/models.py:2299 msgid "Migrated" msgstr "" -#: core/models.py:2209 +#: core/models.py:2300 msgid "Already migrated" msgstr "" -#: core/models.py:2210 +#: core/models.py:2301 msgid "Nothing in the object storage" msgstr "" -#: core/models.py:2211 +#: core/models.py:2302 msgid "No readable version" msgstr "" -#: core/models.py:2212 +#: core/models.py:2303 msgid "Failed" msgstr "" -#: core/models.py:2236 +#: core/models.py:2327 msgid "status" msgstr "" -#: core/models.py:2238 +#: core/models.py:2329 msgid "versions" msgstr "" -#: core/models.py:2241 +#: core/models.py:2332 msgid "applied" msgstr "" -#: core/models.py:2242 +#: core/models.py:2333 msgid "versions that added content, one activity entry each" msgstr "" -#: core/models.py:2246 +#: core/models.py:2337 msgid "skipped" msgstr "" -#: core/models.py:2247 +#: core/models.py:2338 msgid "versions that could not be read" msgstr "" -#: core/models.py:2251 +#: core/models.py:2342 msgid "dropped" msgstr "" -#: core/models.py:2252 +#: core/models.py:2343 msgid "versions older than the ones the server replays" msgstr "" -#: core/models.py:2254 +#: core/models.py:2345 msgid "duration" msgstr "" -#: core/models.py:2255 +#: core/models.py:2346 msgid "error" msgstr "" -#: core/models.py:2260 +#: core/models.py:2351 msgid "Document migration" msgstr "" -#: core/models.py:2261 +#: core/models.py:2352 msgid "Document migrations" msgstr "" @@ -634,7 +634,7 @@ msgstr " Docs, Ihr neues unentbehrliches Werkzeug für die Organisation, den Aus msgid " Brought to you by %(brandname)s " msgstr " Erstellt von %(brandname)s " -#: impress/settings.py:960 +#: impress/settings.py:974 msgid "Docs AI" msgstr "Docs AI" diff --git a/src/backend/locale/el_GR/LC_MESSAGES/django.po b/src/backend/locale/el_GR/LC_MESSAGES/django.po index fa250b9d52..a87cd35622 100644 --- a/src/backend/locale/el_GR/LC_MESSAGES/django.po +++ b/src/backend/locale/el_GR/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: lasuite-docs\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-30 13:00+0000\n" -"PO-Revision-Date: 2026-10-02 09:08\n" +"POT-Creation-Date: 2026-10-05 12:41+0000\n" +"PO-Revision-Date: 2026-10-05 14:54\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -78,12 +78,12 @@ msgstr "Αυτό το πεδίο είναι υποχρεωτικό." msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration." msgstr "Η εμβέλεια συνδέσμου '%(link_reach)s' δεν επιτρέπεται βάσει της διαμόρφωσης του γονικού εγγράφου." -#: core/api/viewsets.py:1434 +#: core/api/viewsets.py:1439 #, python-brace-format msgid "copy of {title}" msgstr "αντίγραφο του {title}" -#: core/api/viewsets.py:3334 +#: core/api/viewsets.py:3324 #, python-format msgid "A comment can have a maximum of %(max)d distinct reactions." msgstr "" @@ -148,147 +148,147 @@ msgstr "Αριστερά" msgid "Right" msgstr "Δεξιά" -#: core/models.py:80 +#: core/models.py:82 msgid "id" msgstr "αναγνωριστικό" -#: core/models.py:81 +#: core/models.py:83 msgid "primary key for the record as UUID" msgstr "πρωτεύον κλειδί για την εγγραφή ως UUID" -#: core/models.py:87 +#: core/models.py:89 msgid "created on" msgstr "δημιουργήθηκε στις" -#: core/models.py:88 +#: core/models.py:90 msgid "date and time at which a record was created" msgstr "ημερομηνία και ώρα δημιουργίας μιας εγγραφής" -#: core/models.py:93 core/models.py:2256 +#: core/models.py:95 core/models.py:2347 msgid "updated on" msgstr "ενημερώθηκε στις" -#: core/models.py:94 +#: core/models.py:96 msgid "date and time at which a record was last updated" msgstr "ημερομηνία και ώρα τελευταίας ενημέρωσης μιας εγγραφής" -#: core/models.py:130 +#: core/models.py:132 msgid "We couldn't find a user with this sub but the email is already associated with a registered user." msgstr "Δεν μπορέσαμε να βρούμε χρήστη με αυτό το sub, αλλά το email σχετίζεται ήδη με έναν εγγεγραμμένο χρήστη." -#: core/models.py:141 +#: core/models.py:143 msgid "sub" msgstr "sub (αναγνωριστικό υποκειμένου)" -#: core/models.py:142 +#: core/models.py:144 msgid "Required. 255 characters or fewer. ASCII characters only." msgstr "Υποχρεωτικό. 255 χαρακτήρες ή λιγότεροι. Μόνο χαρακτήρες ASCII." -#: core/models.py:150 +#: core/models.py:152 msgid "full name" msgstr "πλήρες όνομα" -#: core/models.py:152 +#: core/models.py:154 msgid "short name" msgstr "σύντομο όνομα" -#: core/models.py:155 +#: core/models.py:157 msgid "identity email address" msgstr "διεύθυνση email ταυτότητας" -#: core/models.py:160 +#: core/models.py:162 msgid "admin email address" msgstr "διεύθυνση email διαχειριστή" -#: core/models.py:167 +#: core/models.py:169 msgid "language" msgstr "γλώσσα" -#: core/models.py:168 +#: core/models.py:170 msgid "The language in which the user wants to see the interface." msgstr "Η γλώσσα στην οποία ο χρήστης θέλει να δει τη διεπαφή." -#: core/models.py:176 +#: core/models.py:178 msgid "The timezone in which the user wants to see times." msgstr "Η ζώνη ώρας στην οποία ο χρήστης θέλει να βλέπει την ώρα." -#: core/models.py:179 +#: core/models.py:181 msgid "device" msgstr "συσκευή" -#: core/models.py:181 +#: core/models.py:183 msgid "Whether the user is a device or a real user." msgstr "Εάν ο χρήστης είναι μια συσκευή ή πραγματικός χρήστης." -#: core/models.py:184 +#: core/models.py:186 msgid "staff status" msgstr "κατάσταση προσωπικού" -#: core/models.py:186 +#: core/models.py:188 msgid "Whether the user can log into this admin site." msgstr "Εάν ο χρήστης μπορεί να συνδεθεί σε αυτόν τον ιστότοπο διαχείρισης." -#: core/models.py:189 +#: core/models.py:191 msgid "active" msgstr "ενεργός" -#: core/models.py:192 +#: core/models.py:194 msgid "Whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "Εάν αυτός ο χρήστης πρέπει να θεωρείται ενεργός. Αποεπιλέξτε το αντί να διαγράψετε λογαριασμούς." -#: core/models.py:197 +#: core/models.py:199 msgid "first connection status" msgstr "πρώτη κατάσταση σύνδεσης" -#: core/models.py:199 +#: core/models.py:201 msgid "Whether the user has completed the first connection process." msgstr "Εάν ο χρήστης έχει ολοκληρώσει τη διαδικασία της πρώτης σύνδεσης." -#: core/models.py:209 +#: core/models.py:211 msgid "user" msgstr "χρήστης" -#: core/models.py:210 +#: core/models.py:212 msgid "users" msgstr "χρήστες" -#: core/models.py:439 +#: core/models.py:469 msgid "Active email address" msgstr "Ενεργή διεύθυνση email" -#: core/models.py:440 +#: core/models.py:470 msgid "Email address to deactivate" msgstr "Διεύθυνση email για απενεργοποίηση" -#: core/models.py:467 +#: core/models.py:497 msgid "Unique ID in the source file" msgstr "Μοναδικό αναγνωριστικό στο πηγαίο αρχείο" -#: core/models.py:473 core/models.py:771 +#: core/models.py:503 core/models.py:812 msgid "Pending" msgstr "Σε εκκρεμότητα" -#: core/models.py:474 +#: core/models.py:504 msgid "Ready" msgstr "Έτοιμο" -#: core/models.py:475 core/models.py:773 +#: core/models.py:505 core/models.py:814 msgid "Done" msgstr "Ολοκληρώθηκε" -#: core/models.py:476 core/models.py:774 +#: core/models.py:506 core/models.py:815 msgid "Error" msgstr "Σφάλμα" -#: core/models.py:484 +#: core/models.py:514 msgid "user reconciliation" msgstr "συμφωνία χρήστη" -#: core/models.py:485 +#: core/models.py:515 msgid "user reconciliations" msgstr "συμφωνία χρηστών" -#: core/models.py:723 +#: core/models.py:764 msgid "You have requested a reconciliation of your user accounts on Docs.\n" " To confirm that you are the one who initiated the request\n" " and that this email belongs to you:" @@ -296,53 +296,53 @@ msgstr "Έχετε ζητήσει έναν συνδυασμό των λογαρ " Για να επιβεβαιώσετε ότι είστε εκείνος που ξεκίνησε το αίτημα\n" " και ότι αυτό το email ανήκει σε σας:" -#: core/models.py:729 +#: core/models.py:770 msgid "Confirm by clicking the link to start the reconciliation" msgstr "Επιβεβαιώστε κάνοντας κλικ στο σύνδεσμο για να ξεκινήσει η συμφωνία" -#: core/models.py:734 core/models.py:840 +#: core/models.py:775 core/models.py:881 msgid "Click here" msgstr "Κάντε κλικ εδώ" -#: core/models.py:735 +#: core/models.py:776 msgid "Confirm" msgstr "Επιβεβαίωση" -#: core/models.py:746 +#: core/models.py:787 msgid "Your reconciliation request has been processed.\n" " New documents are likely associated with your account:" msgstr "Το αίτημά σας για συμφωνία έχει επεξεργαστεί.\n" " Νέα έγγραφα είναι πιθανό να σχετίζονται με τον λογαριασμό σας:" -#: core/models.py:751 +#: core/models.py:792 msgid "Your accounts have been merged" msgstr "Οι λογαριασμοί σας έχουν συγχωνευθεί" -#: core/models.py:756 +#: core/models.py:797 msgid "Click here to see" msgstr "Κάντε κλικ εδώ για να δείτε" -#: core/models.py:757 +#: core/models.py:798 msgid "See my documents" msgstr "Δείτε τα έγγραφά μου" -#: core/models.py:767 +#: core/models.py:808 msgid "CSV file" msgstr "Αρχείο CSV" -#: core/models.py:772 +#: core/models.py:813 msgid "Running" msgstr "Εκτελείται" -#: core/models.py:782 +#: core/models.py:823 msgid "user reconciliation CSV import" msgstr "εισαγωγή CSV συμφωνίας χρηστών" -#: core/models.py:783 +#: core/models.py:824 msgid "user reconciliation CSV imports" msgstr "εισαγωγές CSV συμφωνίας χρηστών" -#: core/models.py:827 +#: core/models.py:868 #, python-brace-format msgid "Your request for reconciliation was unsuccessful.\n" " Reconciliation failed for the following email addresses:\n" @@ -355,273 +355,273 @@ msgstr "Το αίτημά σας για επαλήθευση δεν ολοκλη " Παρακαλούμε ελέγξτε αν υπάρχουν τυπογραφικά λάθη.\n" " Μπορείτε να υποβάλετε ένα νέο αίτημα με τις σωστές διευθύνσεις email." -#: core/models.py:835 +#: core/models.py:876 msgid "Reconciliation of your Docs accounts not completed" msgstr "Η συμφωνία των λογαριασμών σας Docs δεν ολοκληρώθηκε" -#: core/models.py:841 +#: core/models.py:882 msgid "Make a new request" msgstr "Κάντε ένα νέο αίτημα" -#: core/models.py:956 +#: core/models.py:997 msgid "title" msgstr "τίτλος" -#: core/models.py:957 +#: core/models.py:998 msgid "excerpt" msgstr "απόσπασμα" -#: core/models.py:1004 +#: core/models.py:1045 msgid "Document" msgstr "Έγγραφο" -#: core/models.py:1005 +#: core/models.py:1046 msgid "Documents" msgstr "Έγγραφα" -#: core/models.py:1022 core/models.py:1351 core/models.py:2087 +#: core/models.py:1063 core/models.py:1442 core/models.py:2178 msgid "Untitled Document" msgstr "Έγγραφο χωρίς τίτλο" -#: core/models.py:1352 +#: core/models.py:1443 msgid "Open" msgstr "Άνοιγμα" -#: core/models.py:1387 +#: core/models.py:1478 #, python-brace-format msgid "{name} shared a document with you!" msgstr "Ο/Η {name} μοιράστηκε ένα έγγραφο μαζί σας!" -#: core/models.py:1391 +#: core/models.py:1482 #, python-brace-format msgid "{name} invited you with the role \"{role}\" on the following document:" msgstr "Ο/Η {name} σας προσκάλεσε με τον ρόλο \"{role}\" στο ακόλουθο έγγραφο:" -#: core/models.py:1397 +#: core/models.py:1488 #, python-brace-format msgid "{name} shared a document with you: {title}" msgstr "Ο/Η {name} μοιράστηκε ένα έγγραφο μαζί σας: {title}" -#: core/models.py:1497 +#: core/models.py:1588 msgid "Document/user link trace" msgstr "Ίχνος συνδέσμου εγγράφου/χρήστη" -#: core/models.py:1498 +#: core/models.py:1589 msgid "Document/user link traces" msgstr "Ίχνη συνδέσμου εγγράφου/χρήστη" -#: core/models.py:1504 +#: core/models.py:1595 msgid "A link trace already exists for this document/user." msgstr "Ένα ίχνος συνδέσμου υπάρχει ήδη για αυτό το έγγραφο/χρήστη." -#: core/models.py:1527 +#: core/models.py:1618 msgid "Document favorite" msgstr "Αγαπημένο έγγραφο" -#: core/models.py:1528 +#: core/models.py:1619 msgid "Document favorites" msgstr "Αγαπημένα έγγραφα" -#: core/models.py:1534 +#: core/models.py:1625 msgid "This document is already targeted by a favorite relation instance for the same user." msgstr "Αυτό το έγγραφο στοχεύεται ήδη από μια σχέση αγαπημένου για τον ίδιο χρήστη." -#: core/models.py:1556 +#: core/models.py:1647 msgid "Document/user relation" msgstr "Σχέση εγγράφου/χρήστη" -#: core/models.py:1557 +#: core/models.py:1648 msgid "Document/user relations" msgstr "Σχέσεις εγγράφου/χρήστη" -#: core/models.py:1563 +#: core/models.py:1654 msgid "This user is already in this document." msgstr "Αυτός ο χρήστης συμμετέχει ήδη σε αυτό το έγγραφο." -#: core/models.py:1569 +#: core/models.py:1660 msgid "This team is already in this document." msgstr "Αυτή η ομάδα συμμετέχει ήδη σε αυτό το έγγραφο." -#: core/models.py:1575 +#: core/models.py:1666 msgid "Either user or team must be set, not both." msgstr "Πρέπει να οριστεί είτε χρήστης είτε ομάδα, όχι και τα δύο." -#: core/models.py:1726 +#: core/models.py:1817 msgid "Document ask for access" msgstr "Αίτημα πρόσβασης σε έγγραφο" -#: core/models.py:1727 +#: core/models.py:1818 msgid "Document ask for accesses" msgstr "Αιτήματα πρόσβασης σε έγγραφα" -#: core/models.py:1733 +#: core/models.py:1824 msgid "This user has already asked for access to this document." msgstr "Αυτός ο χρήστης έχει ήδη ζητήσει πρόσβαση σε αυτό το έγγραφο." -#: core/models.py:1790 +#: core/models.py:1881 #, python-brace-format msgid "{name} would like access to a document!" msgstr "Ο/Η {name} θα ήθελε πρόσβαση σε ένα έγγραφο!" -#: core/models.py:1794 +#: core/models.py:1885 #, python-brace-format msgid "{name} would like access to the following document:" msgstr "Ο/Η {name} θα ήθελε πρόσβαση στο ακόλουθο έγγραφο:" -#: core/models.py:1800 +#: core/models.py:1891 #, python-brace-format msgid "{name} is asking for access to the document: {title}" msgstr "Ο/Η {name} ζητά πρόσβαση στο έγγραφο: {title}" -#: core/models.py:1842 +#: core/models.py:1933 msgid "Thread" msgstr "Νήμα" -#: core/models.py:1843 +#: core/models.py:1934 msgid "Threads" msgstr "Νήματα" -#: core/models.py:1846 core/models.py:1899 +#: core/models.py:1937 core/models.py:1990 msgid "Anonymous" msgstr "Ανώνυμος" -#: core/models.py:1894 +#: core/models.py:1985 msgid "Comment" msgstr "Σχόλιο" -#: core/models.py:1895 +#: core/models.py:1986 msgid "Comments" msgstr "Σχόλια" -#: core/models.py:1945 +#: core/models.py:2036 msgid "This emoji has already been reacted to this comment." msgstr "Αυτό το emoji έχει χρησιμοποιηθεί ήδη ως αντίδραση σε αυτό το σχόλιο." -#: core/models.py:1949 +#: core/models.py:2040 msgid "Reaction" msgstr "Αντίδραση" -#: core/models.py:1950 +#: core/models.py:2041 msgid "Reactions" msgstr "Αντιδράσεις" -#: core/models.py:2001 +#: core/models.py:2092 msgid "Mention" msgstr "" -#: core/models.py:2002 +#: core/models.py:2093 msgid "Mentions" msgstr "" -#: core/models.py:2015 +#: core/models.py:2106 msgid "a deleted user" msgstr "" -#: core/models.py:2025 +#: core/models.py:2116 msgid "The thread does not belong to this document." msgstr "" -#: core/models.py:2089 +#: core/models.py:2180 #, python-brace-format msgid "{name} mentioned you in a comment in \"{title}\"" msgstr "" -#: core/models.py:2093 +#: core/models.py:2184 #, python-brace-format msgid "{name} mentioned you in a comment in the following document:" msgstr "" -#: core/models.py:2096 +#: core/models.py:2187 #, python-brace-format msgid "{name} mentioned you in \"{title}\"" msgstr "" -#: core/models.py:2099 +#: core/models.py:2190 #, python-brace-format msgid "{name} mentioned you in the following document:" msgstr "" -#: core/models.py:2125 +#: core/models.py:2216 msgid "email address" msgstr "διεύθυνση email" -#: core/models.py:2144 +#: core/models.py:2235 msgid "Document invitation" msgstr "Πρόσκληση σε έγγραφο" -#: core/models.py:2145 +#: core/models.py:2236 msgid "Document invitations" msgstr "Προσκλήσεις εγγράφου" -#: core/models.py:2165 +#: core/models.py:2256 msgid "This email is already associated to a registered user." msgstr "Αυτό το email σχετίζεται ήδη με έναν εγγεγραμμένο χρήστη." -#: core/models.py:2208 +#: core/models.py:2299 msgid "Migrated" msgstr "" -#: core/models.py:2209 +#: core/models.py:2300 msgid "Already migrated" msgstr "" -#: core/models.py:2210 +#: core/models.py:2301 msgid "Nothing in the object storage" msgstr "" -#: core/models.py:2211 +#: core/models.py:2302 msgid "No readable version" msgstr "" -#: core/models.py:2212 +#: core/models.py:2303 msgid "Failed" msgstr "" -#: core/models.py:2236 +#: core/models.py:2327 msgid "status" msgstr "" -#: core/models.py:2238 +#: core/models.py:2329 msgid "versions" msgstr "" -#: core/models.py:2241 +#: core/models.py:2332 msgid "applied" msgstr "" -#: core/models.py:2242 +#: core/models.py:2333 msgid "versions that added content, one activity entry each" msgstr "" -#: core/models.py:2246 +#: core/models.py:2337 msgid "skipped" msgstr "" -#: core/models.py:2247 +#: core/models.py:2338 msgid "versions that could not be read" msgstr "" -#: core/models.py:2251 +#: core/models.py:2342 msgid "dropped" msgstr "" -#: core/models.py:2252 +#: core/models.py:2343 msgid "versions older than the ones the server replays" msgstr "" -#: core/models.py:2254 +#: core/models.py:2345 msgid "duration" msgstr "" -#: core/models.py:2255 +#: core/models.py:2346 msgid "error" msgstr "" -#: core/models.py:2260 +#: core/models.py:2351 msgid "Document migration" msgstr "" -#: core/models.py:2261 +#: core/models.py:2352 msgid "Document migrations" msgstr "" @@ -641,7 +641,7 @@ msgstr " Docs, το νέο απαραίτητο εργαλείο σας για msgid " Brought to you by %(brandname)s " msgstr " Σας προσφέρεται από την %(brandname)s " -#: impress/settings.py:960 +#: impress/settings.py:974 msgid "Docs AI" msgstr "Τεχνητή Νοημοσύνη (AI) Docs" diff --git a/src/backend/locale/en_US/LC_MESSAGES/django.po b/src/backend/locale/en_US/LC_MESSAGES/django.po index e3f176c918..89ed56e920 100644 --- a/src/backend/locale/en_US/LC_MESSAGES/django.po +++ b/src/backend/locale/en_US/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: lasuite-docs\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-30 13:00+0000\n" -"PO-Revision-Date: 2026-10-02 09:08\n" +"POT-Creation-Date: 2026-10-05 12:41+0000\n" +"PO-Revision-Date: 2026-10-05 14:54\n" "Last-Translator: \n" "Language-Team: English\n" "Language: en_US\n" @@ -78,12 +78,12 @@ msgstr "" msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration." msgstr "" -#: core/api/viewsets.py:1434 +#: core/api/viewsets.py:1439 #, python-brace-format msgid "copy of {title}" msgstr "" -#: core/api/viewsets.py:3334 +#: core/api/viewsets.py:3324 #, python-format msgid "A comment can have a maximum of %(max)d distinct reactions." msgstr "" @@ -148,198 +148,198 @@ msgstr "" msgid "Right" msgstr "" -#: core/models.py:80 +#: core/models.py:82 msgid "id" msgstr "" -#: core/models.py:81 +#: core/models.py:83 msgid "primary key for the record as UUID" msgstr "" -#: core/models.py:87 +#: core/models.py:89 msgid "created on" msgstr "" -#: core/models.py:88 +#: core/models.py:90 msgid "date and time at which a record was created" msgstr "" -#: core/models.py:93 core/models.py:2256 +#: core/models.py:95 core/models.py:2347 msgid "updated on" msgstr "" -#: core/models.py:94 +#: core/models.py:96 msgid "date and time at which a record was last updated" msgstr "" -#: core/models.py:130 +#: core/models.py:132 msgid "We couldn't find a user with this sub but the email is already associated with a registered user." msgstr "" -#: core/models.py:141 +#: core/models.py:143 msgid "sub" msgstr "" -#: core/models.py:142 +#: core/models.py:144 msgid "Required. 255 characters or fewer. ASCII characters only." msgstr "" -#: core/models.py:150 +#: core/models.py:152 msgid "full name" msgstr "" -#: core/models.py:152 +#: core/models.py:154 msgid "short name" msgstr "" -#: core/models.py:155 +#: core/models.py:157 msgid "identity email address" msgstr "" -#: core/models.py:160 +#: core/models.py:162 msgid "admin email address" msgstr "" -#: core/models.py:167 +#: core/models.py:169 msgid "language" msgstr "" -#: core/models.py:168 +#: core/models.py:170 msgid "The language in which the user wants to see the interface." msgstr "" -#: core/models.py:176 +#: core/models.py:178 msgid "The timezone in which the user wants to see times." msgstr "" -#: core/models.py:179 +#: core/models.py:181 msgid "device" msgstr "" -#: core/models.py:181 +#: core/models.py:183 msgid "Whether the user is a device or a real user." msgstr "" -#: core/models.py:184 +#: core/models.py:186 msgid "staff status" msgstr "" -#: core/models.py:186 +#: core/models.py:188 msgid "Whether the user can log into this admin site." msgstr "" -#: core/models.py:189 +#: core/models.py:191 msgid "active" msgstr "" -#: core/models.py:192 +#: core/models.py:194 msgid "Whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: core/models.py:197 +#: core/models.py:199 msgid "first connection status" msgstr "" -#: core/models.py:199 +#: core/models.py:201 msgid "Whether the user has completed the first connection process." msgstr "" -#: core/models.py:209 +#: core/models.py:211 msgid "user" msgstr "" -#: core/models.py:210 +#: core/models.py:212 msgid "users" msgstr "" -#: core/models.py:439 +#: core/models.py:469 msgid "Active email address" msgstr "" -#: core/models.py:440 +#: core/models.py:470 msgid "Email address to deactivate" msgstr "" -#: core/models.py:467 +#: core/models.py:497 msgid "Unique ID in the source file" msgstr "" -#: core/models.py:473 core/models.py:771 +#: core/models.py:503 core/models.py:812 msgid "Pending" msgstr "" -#: core/models.py:474 +#: core/models.py:504 msgid "Ready" msgstr "" -#: core/models.py:475 core/models.py:773 +#: core/models.py:505 core/models.py:814 msgid "Done" msgstr "" -#: core/models.py:476 core/models.py:774 +#: core/models.py:506 core/models.py:815 msgid "Error" msgstr "" -#: core/models.py:484 +#: core/models.py:514 msgid "user reconciliation" msgstr "" -#: core/models.py:485 +#: core/models.py:515 msgid "user reconciliations" msgstr "" -#: core/models.py:723 +#: core/models.py:764 msgid "You have requested a reconciliation of your user accounts on Docs.\n" " To confirm that you are the one who initiated the request\n" " and that this email belongs to you:" msgstr "" -#: core/models.py:729 +#: core/models.py:770 msgid "Confirm by clicking the link to start the reconciliation" msgstr "" -#: core/models.py:734 core/models.py:840 +#: core/models.py:775 core/models.py:881 msgid "Click here" msgstr "" -#: core/models.py:735 +#: core/models.py:776 msgid "Confirm" msgstr "" -#: core/models.py:746 +#: core/models.py:787 msgid "Your reconciliation request has been processed.\n" " New documents are likely associated with your account:" msgstr "" -#: core/models.py:751 +#: core/models.py:792 msgid "Your accounts have been merged" msgstr "" -#: core/models.py:756 +#: core/models.py:797 msgid "Click here to see" msgstr "" -#: core/models.py:757 +#: core/models.py:798 msgid "See my documents" msgstr "" -#: core/models.py:767 +#: core/models.py:808 msgid "CSV file" msgstr "" -#: core/models.py:772 +#: core/models.py:813 msgid "Running" msgstr "" -#: core/models.py:782 +#: core/models.py:823 msgid "user reconciliation CSV import" msgstr "" -#: core/models.py:783 +#: core/models.py:824 msgid "user reconciliation CSV imports" msgstr "" -#: core/models.py:827 +#: core/models.py:868 #, python-brace-format msgid "Your request for reconciliation was unsuccessful.\n" " Reconciliation failed for the following email addresses:\n" @@ -348,273 +348,273 @@ msgid "Your request for reconciliation was unsuccessful.\n" " You can submit another request with the valid email addresses." msgstr "" -#: core/models.py:835 +#: core/models.py:876 msgid "Reconciliation of your Docs accounts not completed" msgstr "" -#: core/models.py:841 +#: core/models.py:882 msgid "Make a new request" msgstr "" -#: core/models.py:956 +#: core/models.py:997 msgid "title" msgstr "" -#: core/models.py:957 +#: core/models.py:998 msgid "excerpt" msgstr "" -#: core/models.py:1004 +#: core/models.py:1045 msgid "Document" msgstr "" -#: core/models.py:1005 +#: core/models.py:1046 msgid "Documents" msgstr "" -#: core/models.py:1022 core/models.py:1351 core/models.py:2087 +#: core/models.py:1063 core/models.py:1442 core/models.py:2178 msgid "Untitled Document" msgstr "" -#: core/models.py:1352 +#: core/models.py:1443 msgid "Open" msgstr "" -#: core/models.py:1387 +#: core/models.py:1478 #, python-brace-format msgid "{name} shared a document with you!" msgstr "" -#: core/models.py:1391 +#: core/models.py:1482 #, python-brace-format msgid "{name} invited you with the role \"{role}\" on the following document:" msgstr "" -#: core/models.py:1397 +#: core/models.py:1488 #, python-brace-format msgid "{name} shared a document with you: {title}" msgstr "" -#: core/models.py:1497 +#: core/models.py:1588 msgid "Document/user link trace" msgstr "" -#: core/models.py:1498 +#: core/models.py:1589 msgid "Document/user link traces" msgstr "" -#: core/models.py:1504 +#: core/models.py:1595 msgid "A link trace already exists for this document/user." msgstr "" -#: core/models.py:1527 +#: core/models.py:1618 msgid "Document favorite" msgstr "" -#: core/models.py:1528 +#: core/models.py:1619 msgid "Document favorites" msgstr "" -#: core/models.py:1534 +#: core/models.py:1625 msgid "This document is already targeted by a favorite relation instance for the same user." msgstr "" -#: core/models.py:1556 +#: core/models.py:1647 msgid "Document/user relation" msgstr "" -#: core/models.py:1557 +#: core/models.py:1648 msgid "Document/user relations" msgstr "" -#: core/models.py:1563 +#: core/models.py:1654 msgid "This user is already in this document." msgstr "" -#: core/models.py:1569 +#: core/models.py:1660 msgid "This team is already in this document." msgstr "" -#: core/models.py:1575 +#: core/models.py:1666 msgid "Either user or team must be set, not both." msgstr "" -#: core/models.py:1726 +#: core/models.py:1817 msgid "Document ask for access" msgstr "" -#: core/models.py:1727 +#: core/models.py:1818 msgid "Document ask for accesses" msgstr "" -#: core/models.py:1733 +#: core/models.py:1824 msgid "This user has already asked for access to this document." msgstr "" -#: core/models.py:1790 +#: core/models.py:1881 #, python-brace-format msgid "{name} would like access to a document!" msgstr "" -#: core/models.py:1794 +#: core/models.py:1885 #, python-brace-format msgid "{name} would like access to the following document:" msgstr "" -#: core/models.py:1800 +#: core/models.py:1891 #, python-brace-format msgid "{name} is asking for access to the document: {title}" msgstr "" -#: core/models.py:1842 +#: core/models.py:1933 msgid "Thread" msgstr "" -#: core/models.py:1843 +#: core/models.py:1934 msgid "Threads" msgstr "" -#: core/models.py:1846 core/models.py:1899 +#: core/models.py:1937 core/models.py:1990 msgid "Anonymous" msgstr "" -#: core/models.py:1894 +#: core/models.py:1985 msgid "Comment" msgstr "" -#: core/models.py:1895 +#: core/models.py:1986 msgid "Comments" msgstr "" -#: core/models.py:1945 +#: core/models.py:2036 msgid "This emoji has already been reacted to this comment." msgstr "" -#: core/models.py:1949 +#: core/models.py:2040 msgid "Reaction" msgstr "" -#: core/models.py:1950 +#: core/models.py:2041 msgid "Reactions" msgstr "" -#: core/models.py:2001 +#: core/models.py:2092 msgid "Mention" msgstr "" -#: core/models.py:2002 +#: core/models.py:2093 msgid "Mentions" msgstr "" -#: core/models.py:2015 +#: core/models.py:2106 msgid "a deleted user" msgstr "" -#: core/models.py:2025 +#: core/models.py:2116 msgid "The thread does not belong to this document." msgstr "" -#: core/models.py:2089 +#: core/models.py:2180 #, python-brace-format msgid "{name} mentioned you in a comment in \"{title}\"" msgstr "" -#: core/models.py:2093 +#: core/models.py:2184 #, python-brace-format msgid "{name} mentioned you in a comment in the following document:" msgstr "" -#: core/models.py:2096 +#: core/models.py:2187 #, python-brace-format msgid "{name} mentioned you in \"{title}\"" msgstr "" -#: core/models.py:2099 +#: core/models.py:2190 #, python-brace-format msgid "{name} mentioned you in the following document:" msgstr "" -#: core/models.py:2125 +#: core/models.py:2216 msgid "email address" msgstr "" -#: core/models.py:2144 +#: core/models.py:2235 msgid "Document invitation" msgstr "" -#: core/models.py:2145 +#: core/models.py:2236 msgid "Document invitations" msgstr "" -#: core/models.py:2165 +#: core/models.py:2256 msgid "This email is already associated to a registered user." msgstr "" -#: core/models.py:2208 +#: core/models.py:2299 msgid "Migrated" msgstr "" -#: core/models.py:2209 +#: core/models.py:2300 msgid "Already migrated" msgstr "" -#: core/models.py:2210 +#: core/models.py:2301 msgid "Nothing in the object storage" msgstr "" -#: core/models.py:2211 +#: core/models.py:2302 msgid "No readable version" msgstr "" -#: core/models.py:2212 +#: core/models.py:2303 msgid "Failed" msgstr "" -#: core/models.py:2236 +#: core/models.py:2327 msgid "status" msgstr "" -#: core/models.py:2238 +#: core/models.py:2329 msgid "versions" msgstr "" -#: core/models.py:2241 +#: core/models.py:2332 msgid "applied" msgstr "" -#: core/models.py:2242 +#: core/models.py:2333 msgid "versions that added content, one activity entry each" msgstr "" -#: core/models.py:2246 +#: core/models.py:2337 msgid "skipped" msgstr "" -#: core/models.py:2247 +#: core/models.py:2338 msgid "versions that could not be read" msgstr "" -#: core/models.py:2251 +#: core/models.py:2342 msgid "dropped" msgstr "" -#: core/models.py:2252 +#: core/models.py:2343 msgid "versions older than the ones the server replays" msgstr "" -#: core/models.py:2254 +#: core/models.py:2345 msgid "duration" msgstr "" -#: core/models.py:2255 +#: core/models.py:2346 msgid "error" msgstr "" -#: core/models.py:2260 +#: core/models.py:2351 msgid "Document migration" msgstr "" -#: core/models.py:2261 +#: core/models.py:2352 msgid "Document migrations" msgstr "" @@ -634,7 +634,7 @@ msgstr "" msgid " Brought to you by %(brandname)s " msgstr "" -#: impress/settings.py:960 +#: impress/settings.py:974 msgid "Docs AI" msgstr "" diff --git a/src/backend/locale/es_ES/LC_MESSAGES/django.po b/src/backend/locale/es_ES/LC_MESSAGES/django.po index ace9ee57a3..97be3f3f3b 100644 --- a/src/backend/locale/es_ES/LC_MESSAGES/django.po +++ b/src/backend/locale/es_ES/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: lasuite-docs\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-30 13:00+0000\n" -"PO-Revision-Date: 2026-10-02 09:08\n" +"POT-Creation-Date: 2026-10-05 12:41+0000\n" +"PO-Revision-Date: 2026-10-05 14:54\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Language: es_ES\n" @@ -78,12 +78,12 @@ msgstr "" msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration." msgstr "" -#: core/api/viewsets.py:1434 +#: core/api/viewsets.py:1439 #, python-brace-format msgid "copy of {title}" msgstr "copia de {title}" -#: core/api/viewsets.py:3334 +#: core/api/viewsets.py:3324 #, python-format msgid "A comment can have a maximum of %(max)d distinct reactions." msgstr "" @@ -148,198 +148,198 @@ msgstr "Izquierda" msgid "Right" msgstr "Derecha" -#: core/models.py:80 +#: core/models.py:82 msgid "id" msgstr "id" -#: core/models.py:81 +#: core/models.py:83 msgid "primary key for the record as UUID" msgstr "clave primaria para el registro como UUID" -#: core/models.py:87 +#: core/models.py:89 msgid "created on" msgstr "creado el" -#: core/models.py:88 +#: core/models.py:90 msgid "date and time at which a record was created" msgstr "fecha y hora en la que se creó un registro" -#: core/models.py:93 core/models.py:2256 +#: core/models.py:95 core/models.py:2347 msgid "updated on" msgstr "actualizado el" -#: core/models.py:94 +#: core/models.py:96 msgid "date and time at which a record was last updated" msgstr "fecha y hora en la que un registro fue actualizado por última vez" -#: core/models.py:130 +#: core/models.py:132 msgid "We couldn't find a user with this sub but the email is already associated with a registered user." msgstr "No se ha podido encontrar un usuario con este sub (UUID), pero el correo electrónico ya está asociado con un usuario." -#: core/models.py:141 +#: core/models.py:143 msgid "sub" msgstr "sub (UUID)" -#: core/models.py:142 +#: core/models.py:144 msgid "Required. 255 characters or fewer. ASCII characters only." msgstr "Obligatorio. 255 caracteres o menos. Solo caracteres ASCII." -#: core/models.py:150 +#: core/models.py:152 msgid "full name" msgstr "nombre completo" -#: core/models.py:152 +#: core/models.py:154 msgid "short name" msgstr "nombre abreviado" -#: core/models.py:155 +#: core/models.py:157 msgid "identity email address" msgstr "correo electrónico de identidad" -#: core/models.py:160 +#: core/models.py:162 msgid "admin email address" msgstr "correo electrónico del administrador" -#: core/models.py:167 +#: core/models.py:169 msgid "language" msgstr "idioma" -#: core/models.py:168 +#: core/models.py:170 msgid "The language in which the user wants to see the interface." msgstr "El idioma en el que el usuario desea ver la interfaz." -#: core/models.py:176 +#: core/models.py:178 msgid "The timezone in which the user wants to see times." msgstr "La zona horaria en la que el usuario quiere ver los tiempos." -#: core/models.py:179 +#: core/models.py:181 msgid "device" msgstr "dispositivo" -#: core/models.py:181 +#: core/models.py:183 msgid "Whether the user is a device or a real user." msgstr "Si el usuario es un dispositivo o un usuario real." -#: core/models.py:184 +#: core/models.py:186 msgid "staff status" msgstr "rol en el equipo" -#: core/models.py:186 +#: core/models.py:188 msgid "Whether the user can log into this admin site." msgstr "Si el usuario puede iniciar sesión en esta página web de administración." -#: core/models.py:189 +#: core/models.py:191 msgid "active" msgstr "activo" -#: core/models.py:192 +#: core/models.py:194 msgid "Whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "Si este usuario debe ser considerado como activo. Deseleccionar en lugar de eliminar cuentas." -#: core/models.py:197 +#: core/models.py:199 msgid "first connection status" msgstr "" -#: core/models.py:199 +#: core/models.py:201 msgid "Whether the user has completed the first connection process." msgstr "" -#: core/models.py:209 +#: core/models.py:211 msgid "user" msgstr "usuario" -#: core/models.py:210 +#: core/models.py:212 msgid "users" msgstr "usuarios" -#: core/models.py:439 +#: core/models.py:469 msgid "Active email address" msgstr "" -#: core/models.py:440 +#: core/models.py:470 msgid "Email address to deactivate" msgstr "" -#: core/models.py:467 +#: core/models.py:497 msgid "Unique ID in the source file" msgstr "" -#: core/models.py:473 core/models.py:771 +#: core/models.py:503 core/models.py:812 msgid "Pending" msgstr "Pending" -#: core/models.py:474 +#: core/models.py:504 msgid "Ready" msgstr "Listo" -#: core/models.py:475 core/models.py:773 +#: core/models.py:505 core/models.py:814 msgid "Done" msgstr "Terminado" -#: core/models.py:476 core/models.py:774 +#: core/models.py:506 core/models.py:815 msgid "Error" msgstr "Error" -#: core/models.py:484 +#: core/models.py:514 msgid "user reconciliation" msgstr "" -#: core/models.py:485 +#: core/models.py:515 msgid "user reconciliations" msgstr "" -#: core/models.py:723 +#: core/models.py:764 msgid "You have requested a reconciliation of your user accounts on Docs.\n" " To confirm that you are the one who initiated the request\n" " and that this email belongs to you:" msgstr "" -#: core/models.py:729 +#: core/models.py:770 msgid "Confirm by clicking the link to start the reconciliation" msgstr "" -#: core/models.py:734 core/models.py:840 +#: core/models.py:775 core/models.py:881 msgid "Click here" msgstr "Haga click aquí" -#: core/models.py:735 +#: core/models.py:776 msgid "Confirm" msgstr "Confirmar" -#: core/models.py:746 +#: core/models.py:787 msgid "Your reconciliation request has been processed.\n" " New documents are likely associated with your account:" msgstr "" -#: core/models.py:751 +#: core/models.py:792 msgid "Your accounts have been merged" msgstr "" -#: core/models.py:756 +#: core/models.py:797 msgid "Click here to see" msgstr "Haz clic aquí para ver" -#: core/models.py:757 +#: core/models.py:798 msgid "See my documents" msgstr "" -#: core/models.py:767 +#: core/models.py:808 msgid "CSV file" msgstr "Archivo CSV" -#: core/models.py:772 +#: core/models.py:813 msgid "Running" msgstr "En ejecución" -#: core/models.py:782 +#: core/models.py:823 msgid "user reconciliation CSV import" msgstr "" -#: core/models.py:783 +#: core/models.py:824 msgid "user reconciliation CSV imports" msgstr "" -#: core/models.py:827 +#: core/models.py:868 #, python-brace-format msgid "Your request for reconciliation was unsuccessful.\n" " Reconciliation failed for the following email addresses:\n" @@ -348,273 +348,273 @@ msgid "Your request for reconciliation was unsuccessful.\n" " You can submit another request with the valid email addresses." msgstr "" -#: core/models.py:835 +#: core/models.py:876 msgid "Reconciliation of your Docs accounts not completed" msgstr "" -#: core/models.py:841 +#: core/models.py:882 msgid "Make a new request" msgstr "Hacer un nuevo pedido" -#: core/models.py:956 +#: core/models.py:997 msgid "title" msgstr "título" -#: core/models.py:957 +#: core/models.py:998 msgid "excerpt" msgstr "resumen" -#: core/models.py:1004 +#: core/models.py:1045 msgid "Document" msgstr "Documento" -#: core/models.py:1005 +#: core/models.py:1046 msgid "Documents" msgstr "Documentos" -#: core/models.py:1022 core/models.py:1351 core/models.py:2087 +#: core/models.py:1063 core/models.py:1442 core/models.py:2178 msgid "Untitled Document" msgstr "Documento sin título" -#: core/models.py:1352 +#: core/models.py:1443 msgid "Open" msgstr "Abrir" -#: core/models.py:1387 +#: core/models.py:1478 #, python-brace-format msgid "{name} shared a document with you!" msgstr "¡{name} ha compartido un documento contigo!" -#: core/models.py:1391 +#: core/models.py:1482 #, python-brace-format msgid "{name} invited you with the role \"{role}\" on the following document:" msgstr "Te ha invitado {name} al siguiente documento con el rol \"{role}\" :" -#: core/models.py:1397 +#: core/models.py:1488 #, python-brace-format msgid "{name} shared a document with you: {title}" msgstr "{name} ha compartido un documento contigo: {title}" -#: core/models.py:1497 +#: core/models.py:1588 msgid "Document/user link trace" msgstr "Traza del enlace de documento/usuario" -#: core/models.py:1498 +#: core/models.py:1589 msgid "Document/user link traces" msgstr "Trazas del enlace de documento/usuario" -#: core/models.py:1504 +#: core/models.py:1595 msgid "A link trace already exists for this document/user." msgstr "Ya existe una traza de enlace para este documento/usuario." -#: core/models.py:1527 +#: core/models.py:1618 msgid "Document favorite" msgstr "Documento favorito" -#: core/models.py:1528 +#: core/models.py:1619 msgid "Document favorites" msgstr "Documentos favoritos" -#: core/models.py:1534 +#: core/models.py:1625 msgid "This document is already targeted by a favorite relation instance for the same user." msgstr "Este documento ya ha sido marcado como favorito por el usuario." -#: core/models.py:1556 +#: core/models.py:1647 msgid "Document/user relation" msgstr "Relación documento/usuario" -#: core/models.py:1557 +#: core/models.py:1648 msgid "Document/user relations" msgstr "Relaciones documento/usuario" -#: core/models.py:1563 +#: core/models.py:1654 msgid "This user is already in this document." msgstr "Este usuario ya forma parte del documento." -#: core/models.py:1569 +#: core/models.py:1660 msgid "This team is already in this document." msgstr "Este equipo ya forma parte del documento." -#: core/models.py:1575 +#: core/models.py:1666 msgid "Either user or team must be set, not both." msgstr "Debe establecerse un usuario o un equipo, no ambos." -#: core/models.py:1726 +#: core/models.py:1817 msgid "Document ask for access" msgstr "Solicitud de acceso" -#: core/models.py:1727 +#: core/models.py:1818 msgid "Document ask for accesses" msgstr "Solicitud de accesos" -#: core/models.py:1733 +#: core/models.py:1824 msgid "This user has already asked for access to this document." msgstr "Este usuario ya ha solicitado acceso a este documento." -#: core/models.py:1790 +#: core/models.py:1881 #, python-brace-format msgid "{name} would like access to a document!" msgstr "¡{name} desea acceder a un documento!" -#: core/models.py:1794 +#: core/models.py:1885 #, python-brace-format msgid "{name} would like access to the following document:" msgstr "{name} desea acceso al siguiente documento:" -#: core/models.py:1800 +#: core/models.py:1891 #, python-brace-format msgid "{name} is asking for access to the document: {title}" msgstr "{name} está pidiendo acceso al documento: {title}" -#: core/models.py:1842 +#: core/models.py:1933 msgid "Thread" msgstr "Thread" -#: core/models.py:1843 +#: core/models.py:1934 msgid "Threads" msgstr "Threads" -#: core/models.py:1846 core/models.py:1899 +#: core/models.py:1937 core/models.py:1990 msgid "Anonymous" msgstr "Anónimo" -#: core/models.py:1894 +#: core/models.py:1985 msgid "Comment" msgstr "Comentario" -#: core/models.py:1895 +#: core/models.py:1986 msgid "Comments" msgstr "Comentarios" -#: core/models.py:1945 +#: core/models.py:2036 msgid "This emoji has already been reacted to this comment." msgstr "" -#: core/models.py:1949 +#: core/models.py:2040 msgid "Reaction" msgstr "Reacción" -#: core/models.py:1950 +#: core/models.py:2041 msgid "Reactions" msgstr "Reacciones" -#: core/models.py:2001 +#: core/models.py:2092 msgid "Mention" msgstr "" -#: core/models.py:2002 +#: core/models.py:2093 msgid "Mentions" msgstr "" -#: core/models.py:2015 +#: core/models.py:2106 msgid "a deleted user" msgstr "" -#: core/models.py:2025 +#: core/models.py:2116 msgid "The thread does not belong to this document." msgstr "" -#: core/models.py:2089 +#: core/models.py:2180 #, python-brace-format msgid "{name} mentioned you in a comment in \"{title}\"" msgstr "" -#: core/models.py:2093 +#: core/models.py:2184 #, python-brace-format msgid "{name} mentioned you in a comment in the following document:" msgstr "" -#: core/models.py:2096 +#: core/models.py:2187 #, python-brace-format msgid "{name} mentioned you in \"{title}\"" msgstr "" -#: core/models.py:2099 +#: core/models.py:2190 #, python-brace-format msgid "{name} mentioned you in the following document:" msgstr "" -#: core/models.py:2125 +#: core/models.py:2216 msgid "email address" msgstr "dirección de correo electrónico" -#: core/models.py:2144 +#: core/models.py:2235 msgid "Document invitation" msgstr "Invitación al documento" -#: core/models.py:2145 +#: core/models.py:2236 msgid "Document invitations" msgstr "Invitaciones a documentos" -#: core/models.py:2165 +#: core/models.py:2256 msgid "This email is already associated to a registered user." msgstr "Este correo electrónico está asociado a un usuario registrado." -#: core/models.py:2208 +#: core/models.py:2299 msgid "Migrated" msgstr "" -#: core/models.py:2209 +#: core/models.py:2300 msgid "Already migrated" msgstr "" -#: core/models.py:2210 +#: core/models.py:2301 msgid "Nothing in the object storage" msgstr "" -#: core/models.py:2211 +#: core/models.py:2302 msgid "No readable version" msgstr "" -#: core/models.py:2212 +#: core/models.py:2303 msgid "Failed" msgstr "" -#: core/models.py:2236 +#: core/models.py:2327 msgid "status" msgstr "" -#: core/models.py:2238 +#: core/models.py:2329 msgid "versions" msgstr "" -#: core/models.py:2241 +#: core/models.py:2332 msgid "applied" msgstr "" -#: core/models.py:2242 +#: core/models.py:2333 msgid "versions that added content, one activity entry each" msgstr "" -#: core/models.py:2246 +#: core/models.py:2337 msgid "skipped" msgstr "" -#: core/models.py:2247 +#: core/models.py:2338 msgid "versions that could not be read" msgstr "" -#: core/models.py:2251 +#: core/models.py:2342 msgid "dropped" msgstr "" -#: core/models.py:2252 +#: core/models.py:2343 msgid "versions older than the ones the server replays" msgstr "" -#: core/models.py:2254 +#: core/models.py:2345 msgid "duration" msgstr "" -#: core/models.py:2255 +#: core/models.py:2346 msgid "error" msgstr "" -#: core/models.py:2260 +#: core/models.py:2351 msgid "Document migration" msgstr "" -#: core/models.py:2261 +#: core/models.py:2352 msgid "Document migrations" msgstr "" @@ -634,7 +634,7 @@ msgstr "Docs, su nueva herramienta esencial para organizar, compartir y colabora msgid " Brought to you by %(brandname)s " msgstr " Presentado por %(brandname)s " -#: impress/settings.py:960 +#: impress/settings.py:974 msgid "Docs AI" msgstr "Docs AI" diff --git a/src/backend/locale/fr_FR/LC_MESSAGES/django.po b/src/backend/locale/fr_FR/LC_MESSAGES/django.po index 755807b9a6..220d1d4353 100644 --- a/src/backend/locale/fr_FR/LC_MESSAGES/django.po +++ b/src/backend/locale/fr_FR/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: lasuite-docs\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-30 13:00+0000\n" -"PO-Revision-Date: 2026-10-02 09:05\n" +"POT-Creation-Date: 2026-10-05 12:41+0000\n" +"PO-Revision-Date: 2026-10-05 14:54\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -78,12 +78,12 @@ msgstr "Ce champ est obligatoire." msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration." msgstr "La portée du lien '%(link_reach)s' n'est pas autorisée en fonction de la configuration du document parent." -#: core/api/viewsets.py:1434 +#: core/api/viewsets.py:1439 #, python-brace-format msgid "copy of {title}" msgstr "copie de {title}" -#: core/api/viewsets.py:3334 +#: core/api/viewsets.py:3324 #, python-format msgid "A comment can have a maximum of %(max)d distinct reactions." msgstr "Un commentaire peut recevoir au maximum %(max)d réactions différentes." @@ -148,147 +148,147 @@ msgstr "Gauche" msgid "Right" msgstr "Droite" -#: core/models.py:80 +#: core/models.py:82 msgid "id" msgstr "identifiant/id" -#: core/models.py:81 +#: core/models.py:83 msgid "primary key for the record as UUID" msgstr "clé primaire pour l'enregistrement en tant que UUID" -#: core/models.py:87 +#: core/models.py:89 msgid "created on" msgstr "créé le" -#: core/models.py:88 +#: core/models.py:90 msgid "date and time at which a record was created" msgstr "date et heure de création de l'enregistrement" -#: core/models.py:93 core/models.py:2256 +#: core/models.py:95 core/models.py:2347 msgid "updated on" msgstr "mis à jour le" -#: core/models.py:94 +#: core/models.py:96 msgid "date and time at which a record was last updated" msgstr "date et heure de la dernière mise à jour de l'enregistrement" -#: core/models.py:130 +#: core/models.py:132 msgid "We couldn't find a user with this sub but the email is already associated with a registered user." msgstr "Nous n'avons pas pu trouver un utilisateur avec ce sous-groupe mais l'e-mail est déjà associé à un utilisateur enregistré." -#: core/models.py:141 +#: core/models.py:143 msgid "sub" msgstr "sous-groupe" -#: core/models.py:142 +#: core/models.py:144 msgid "Required. 255 characters or fewer. ASCII characters only." msgstr "Obligatoire. 255 caractères ou moins. Caractères ASCII uniquement." -#: core/models.py:150 +#: core/models.py:152 msgid "full name" msgstr "nom complet" -#: core/models.py:152 +#: core/models.py:154 msgid "short name" msgstr "nom court" -#: core/models.py:155 +#: core/models.py:157 msgid "identity email address" msgstr "adresse e-mail d'identité" -#: core/models.py:160 +#: core/models.py:162 msgid "admin email address" msgstr "adresse e-mail de l'administrateur" -#: core/models.py:167 +#: core/models.py:169 msgid "language" msgstr "langue" -#: core/models.py:168 +#: core/models.py:170 msgid "The language in which the user wants to see the interface." msgstr "La langue dans laquelle l'utilisateur veut voir l'interface." -#: core/models.py:176 +#: core/models.py:178 msgid "The timezone in which the user wants to see times." msgstr "Le fuseau horaire dans lequel l'utilisateur souhaite voir les heures." -#: core/models.py:179 +#: core/models.py:181 msgid "device" msgstr "appareil" -#: core/models.py:181 +#: core/models.py:183 msgid "Whether the user is a device or a real user." msgstr "Si l'utilisateur est un appareil ou un utilisateur réel." -#: core/models.py:184 +#: core/models.py:186 msgid "staff status" msgstr "statut d'équipe" -#: core/models.py:186 +#: core/models.py:188 msgid "Whether the user can log into this admin site." msgstr "Si l'utilisateur peut se connecter à ce site d'administration." -#: core/models.py:189 +#: core/models.py:191 msgid "active" msgstr "actif" -#: core/models.py:192 +#: core/models.py:194 msgid "Whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "Si cet utilisateur doit être traité comme actif. Désélectionnez ceci au lieu de supprimer des comptes." -#: core/models.py:197 +#: core/models.py:199 msgid "first connection status" msgstr "état de la première connexion" -#: core/models.py:199 +#: core/models.py:201 msgid "Whether the user has completed the first connection process." msgstr "Si l'utilisateur a terminé le processus de première connexion." -#: core/models.py:209 +#: core/models.py:211 msgid "user" msgstr "utilisateur" -#: core/models.py:210 +#: core/models.py:212 msgid "users" msgstr "utilisateurs" -#: core/models.py:439 +#: core/models.py:469 msgid "Active email address" msgstr "Adresse email active" -#: core/models.py:440 +#: core/models.py:470 msgid "Email address to deactivate" msgstr "Adresse email à désactiver" -#: core/models.py:467 +#: core/models.py:497 msgid "Unique ID in the source file" msgstr "Identifiant unique dans le fichier source" -#: core/models.py:473 core/models.py:771 +#: core/models.py:503 core/models.py:812 msgid "Pending" msgstr "En attente" -#: core/models.py:474 +#: core/models.py:504 msgid "Ready" msgstr "Prêt" -#: core/models.py:475 core/models.py:773 +#: core/models.py:505 core/models.py:814 msgid "Done" msgstr "Terminé" -#: core/models.py:476 core/models.py:774 +#: core/models.py:506 core/models.py:815 msgid "Error" msgstr "Erreur" -#: core/models.py:484 +#: core/models.py:514 msgid "user reconciliation" msgstr "rapprochement de l'utilisateur" -#: core/models.py:485 +#: core/models.py:515 msgid "user reconciliations" msgstr "rapprochements de l'utilisateur" -#: core/models.py:723 +#: core/models.py:764 msgid "You have requested a reconciliation of your user accounts on Docs.\n" " To confirm that you are the one who initiated the request\n" " and that this email belongs to you:" @@ -296,53 +296,53 @@ msgstr "Vous avez demandé un rapprochement de vos comptes utilisateur sur Docs. " Pour confirmer que vous êtes bien à l'origine de cette demande\n" " et que cet e-mail vous appartient :" -#: core/models.py:729 +#: core/models.py:770 msgid "Confirm by clicking the link to start the reconciliation" msgstr "Confirmez en cliquant sur le lien pour commencer le rapprochement" -#: core/models.py:734 core/models.py:840 +#: core/models.py:775 core/models.py:881 msgid "Click here" msgstr "Cliquez ici" -#: core/models.py:735 +#: core/models.py:776 msgid "Confirm" msgstr "Confirmer" -#: core/models.py:746 +#: core/models.py:787 msgid "Your reconciliation request has been processed.\n" " New documents are likely associated with your account:" msgstr "Votre demande de rapprochement a été traitée.\n" " De nouveaux documents sont probablement associés à votre compte :" -#: core/models.py:751 +#: core/models.py:792 msgid "Your accounts have been merged" msgstr "Vos comptes ont été fusionnés" -#: core/models.py:756 +#: core/models.py:797 msgid "Click here to see" msgstr "Cliquez ici pour voir" -#: core/models.py:757 +#: core/models.py:798 msgid "See my documents" msgstr "Voir mes documents" -#: core/models.py:767 +#: core/models.py:808 msgid "CSV file" msgstr "Fichier CSV" -#: core/models.py:772 +#: core/models.py:813 msgid "Running" msgstr "En cours" -#: core/models.py:782 +#: core/models.py:823 msgid "user reconciliation CSV import" msgstr "import du CSV de rapprochement utilisateur" -#: core/models.py:783 +#: core/models.py:824 msgid "user reconciliation CSV imports" msgstr "import du CSV de rapprochement utilisateur" -#: core/models.py:827 +#: core/models.py:868 #, python-brace-format msgid "Your request for reconciliation was unsuccessful.\n" " Reconciliation failed for the following email addresses:\n" @@ -355,273 +355,273 @@ msgstr "Votre demande de rapprochement n'a pas abouti.\n" " Veuillez vérifier qu'il n'y a pas de fautes de frappe.\n" " Vous pouvez envoyer une nouvelle demande avec des adresses e-mail valides." -#: core/models.py:835 +#: core/models.py:876 msgid "Reconciliation of your Docs accounts not completed" msgstr "Le rapprochement de vos comptes Docs n'est pas terminé" -#: core/models.py:841 +#: core/models.py:882 msgid "Make a new request" msgstr "Faire une nouvelle demande" -#: core/models.py:956 +#: core/models.py:997 msgid "title" msgstr "titre" -#: core/models.py:957 +#: core/models.py:998 msgid "excerpt" msgstr "extrait" -#: core/models.py:1004 +#: core/models.py:1045 msgid "Document" msgstr "Document" -#: core/models.py:1005 +#: core/models.py:1046 msgid "Documents" msgstr "Documents" -#: core/models.py:1022 core/models.py:1351 core/models.py:2087 +#: core/models.py:1063 core/models.py:1442 core/models.py:2178 msgid "Untitled Document" msgstr "Document sans titre" -#: core/models.py:1352 +#: core/models.py:1443 msgid "Open" msgstr "Ouvrir" -#: core/models.py:1387 +#: core/models.py:1478 #, python-brace-format msgid "{name} shared a document with you!" -msgstr "{name} a partagé un document avec vous!" +msgstr "{name} a partagé un document avec vous !" -#: core/models.py:1391 +#: core/models.py:1482 #, python-brace-format msgid "{name} invited you with the role \"{role}\" on the following document:" msgstr "{name} vous a invité avec le rôle \"{role}\" sur le document suivant :" -#: core/models.py:1397 +#: core/models.py:1488 #, python-brace-format msgid "{name} shared a document with you: {title}" msgstr "{name} a partagé un document avec vous : {title}" -#: core/models.py:1497 +#: core/models.py:1588 msgid "Document/user link trace" msgstr "Trace du lien document/utilisateur" -#: core/models.py:1498 +#: core/models.py:1589 msgid "Document/user link traces" msgstr "Traces du lien document/utilisateur" -#: core/models.py:1504 +#: core/models.py:1595 msgid "A link trace already exists for this document/user." msgstr "Une trace de lien existe déjà pour ce document/utilisateur." -#: core/models.py:1527 +#: core/models.py:1618 msgid "Document favorite" msgstr "Document favori" -#: core/models.py:1528 +#: core/models.py:1619 msgid "Document favorites" msgstr "Documents favoris" -#: core/models.py:1534 +#: core/models.py:1625 msgid "This document is already targeted by a favorite relation instance for the same user." msgstr "Ce document est déjà un favori de cet utilisateur." -#: core/models.py:1556 +#: core/models.py:1647 msgid "Document/user relation" msgstr "Relation document/utilisateur" -#: core/models.py:1557 +#: core/models.py:1648 msgid "Document/user relations" msgstr "Relations document/utilisateur" -#: core/models.py:1563 +#: core/models.py:1654 msgid "This user is already in this document." msgstr "Cet utilisateur est déjà dans ce document." -#: core/models.py:1569 +#: core/models.py:1660 msgid "This team is already in this document." msgstr "Cette équipe est déjà dans ce document." -#: core/models.py:1575 +#: core/models.py:1666 msgid "Either user or team must be set, not both." msgstr "L'utilisateur ou l'équipe doivent être définis, pas les deux." -#: core/models.py:1726 +#: core/models.py:1817 msgid "Document ask for access" msgstr "Demande d'accès au document" -#: core/models.py:1727 +#: core/models.py:1818 msgid "Document ask for accesses" msgstr "Demande d'accès au document" -#: core/models.py:1733 +#: core/models.py:1824 msgid "This user has already asked for access to this document." msgstr "Cet utilisateur a déjà demandé l'accès à ce document." -#: core/models.py:1790 +#: core/models.py:1881 #, python-brace-format msgid "{name} would like access to a document!" msgstr "{name} souhaiterait accéder au document suivant !" -#: core/models.py:1794 +#: core/models.py:1885 #, python-brace-format msgid "{name} would like access to the following document:" msgstr "{name} souhaiterait accéder au document suivant :" -#: core/models.py:1800 +#: core/models.py:1891 #, python-brace-format msgid "{name} is asking for access to the document: {title}" msgstr "{name} demande l'accès au document : {title}" -#: core/models.py:1842 +#: core/models.py:1933 msgid "Thread" msgstr "Conversation" -#: core/models.py:1843 +#: core/models.py:1934 msgid "Threads" msgstr "Conversations" -#: core/models.py:1846 core/models.py:1899 +#: core/models.py:1937 core/models.py:1990 msgid "Anonymous" msgstr "Anonyme" -#: core/models.py:1894 +#: core/models.py:1985 msgid "Comment" msgstr "Commentaire" -#: core/models.py:1895 +#: core/models.py:1986 msgid "Comments" msgstr "Commentaires" -#: core/models.py:1945 +#: core/models.py:2036 msgid "This emoji has already been reacted to this comment." msgstr "Cet émoji a déjà été réagi à ce commentaire." -#: core/models.py:1949 +#: core/models.py:2040 msgid "Reaction" msgstr "Réaction" -#: core/models.py:1950 +#: core/models.py:2041 msgid "Reactions" msgstr "Réactions" -#: core/models.py:2001 +#: core/models.py:2092 msgid "Mention" msgstr "Mention" -#: core/models.py:2002 +#: core/models.py:2093 msgid "Mentions" msgstr "Mentions" -#: core/models.py:2015 +#: core/models.py:2106 msgid "a deleted user" msgstr "un utilisateur supprimé" -#: core/models.py:2025 +#: core/models.py:2116 msgid "The thread does not belong to this document." msgstr "Le fil de discussion n'appartient pas à ce document." -#: core/models.py:2089 +#: core/models.py:2180 #, python-brace-format msgid "{name} mentioned you in a comment in \"{title}\"" msgstr "{name} vous a mentionné(e) dans un commentaire dans \"{title}\"" -#: core/models.py:2093 +#: core/models.py:2184 #, python-brace-format msgid "{name} mentioned you in a comment in the following document:" msgstr "{name} vous a mentionné(e) dans un commentaire dans le document suivant :" -#: core/models.py:2096 +#: core/models.py:2187 #, python-brace-format msgid "{name} mentioned you in \"{title}\"" msgstr "{name} vous a mentionné(e) dans \"{title}\"" -#: core/models.py:2099 +#: core/models.py:2190 #, python-brace-format msgid "{name} mentioned you in the following document:" msgstr "{name} vous a mentionné(e) dans le document suivant :" -#: core/models.py:2125 +#: core/models.py:2216 msgid "email address" msgstr "adresse e-mail" -#: core/models.py:2144 +#: core/models.py:2235 msgid "Document invitation" msgstr "Invitation à un document" -#: core/models.py:2145 +#: core/models.py:2236 msgid "Document invitations" msgstr "Invitations à un document" -#: core/models.py:2165 +#: core/models.py:2256 msgid "This email is already associated to a registered user." msgstr "Cette adresse email est déjà associée à un utilisateur inscrit." -#: core/models.py:2208 +#: core/models.py:2299 msgid "Migrated" msgstr "Migré" -#: core/models.py:2209 +#: core/models.py:2300 msgid "Already migrated" msgstr "Déjà migré" -#: core/models.py:2210 +#: core/models.py:2301 msgid "Nothing in the object storage" msgstr "Rien dans le stockage d'objets" -#: core/models.py:2211 +#: core/models.py:2302 msgid "No readable version" msgstr "Aucune version lisible" -#: core/models.py:2212 +#: core/models.py:2303 msgid "Failed" msgstr "Échec" -#: core/models.py:2236 +#: core/models.py:2327 msgid "status" msgstr "statut" -#: core/models.py:2238 +#: core/models.py:2329 msgid "versions" msgstr "versions" -#: core/models.py:2241 +#: core/models.py:2332 msgid "applied" msgstr "appliqué" -#: core/models.py:2242 +#: core/models.py:2333 msgid "versions that added content, one activity entry each" msgstr "versions ayant ajouté du contenu, une entrée d'activité chacune" -#: core/models.py:2246 +#: core/models.py:2337 msgid "skipped" msgstr "ignoré" -#: core/models.py:2247 +#: core/models.py:2338 msgid "versions that could not be read" msgstr "versions qui n'ont pas pu être lues" -#: core/models.py:2251 +#: core/models.py:2342 msgid "dropped" msgstr "abandonné" -#: core/models.py:2252 +#: core/models.py:2343 msgid "versions older than the ones the server replays" msgstr "versions antérieures à celles que le serveur rejoue" -#: core/models.py:2254 +#: core/models.py:2345 msgid "duration" msgstr "durée" -#: core/models.py:2255 +#: core/models.py:2346 msgid "error" msgstr "erreur" -#: core/models.py:2260 +#: core/models.py:2351 msgid "Document migration" msgstr "Migration de document" -#: core/models.py:2261 +#: core/models.py:2352 msgid "Document migrations" msgstr "Migration des documents" @@ -641,7 +641,7 @@ msgstr " Docs, votre nouvel outil incontournable pour organiser, partager et col msgid " Brought to you by %(brandname)s " msgstr " Proposé par %(brandname)s " -#: impress/settings.py:960 +#: impress/settings.py:974 msgid "Docs AI" msgstr "Docs IA" diff --git a/src/backend/locale/it_IT/LC_MESSAGES/django.po b/src/backend/locale/it_IT/LC_MESSAGES/django.po index f691308820..1c652cf4a1 100644 --- a/src/backend/locale/it_IT/LC_MESSAGES/django.po +++ b/src/backend/locale/it_IT/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: lasuite-docs\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-30 13:00+0000\n" -"PO-Revision-Date: 2026-10-02 09:08\n" +"POT-Creation-Date: 2026-10-05 12:41+0000\n" +"PO-Revision-Date: 2026-10-05 14:54\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -78,12 +78,12 @@ msgstr "Questo campo è obbligatorio." msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration." msgstr "La visibilità del link '%(link_reach)s' non è consentita in base alla configurazione del documento principale." -#: core/api/viewsets.py:1434 +#: core/api/viewsets.py:1439 #, python-brace-format msgid "copy of {title}" msgstr "copia di {title}" -#: core/api/viewsets.py:3334 +#: core/api/viewsets.py:3324 #, python-format msgid "A comment can have a maximum of %(max)d distinct reactions." msgstr "Un commento può avere al massimo %(max)d reazioni distinte." @@ -148,147 +148,147 @@ msgstr "Sinistra" msgid "Right" msgstr "Destra" -#: core/models.py:80 +#: core/models.py:82 msgid "id" msgstr "Id" -#: core/models.py:81 +#: core/models.py:83 msgid "primary key for the record as UUID" msgstr "chiave primaria per il record come UUID" -#: core/models.py:87 +#: core/models.py:89 msgid "created on" msgstr "creato il" -#: core/models.py:88 +#: core/models.py:90 msgid "date and time at which a record was created" msgstr "data e ora in cui è stato creato un record" -#: core/models.py:93 core/models.py:2256 +#: core/models.py:95 core/models.py:2347 msgid "updated on" msgstr "aggiornato il" -#: core/models.py:94 +#: core/models.py:96 msgid "date and time at which a record was last updated" msgstr "data e ora in cui l’ultimo record è stato aggiornato" -#: core/models.py:130 +#: core/models.py:132 msgid "We couldn't find a user with this sub but the email is already associated with a registered user." msgstr "Impossibile trovare un utente con questo sub, ma l'email è già associata a un utente registrato." -#: core/models.py:141 +#: core/models.py:143 msgid "sub" msgstr "sub" -#: core/models.py:142 +#: core/models.py:144 msgid "Required. 255 characters or fewer. ASCII characters only." msgstr "Obbligatorio. Massimo 255 caratteri. Solo caratteri ASCII." -#: core/models.py:150 +#: core/models.py:152 msgid "full name" msgstr "nome completo" -#: core/models.py:152 +#: core/models.py:154 msgid "short name" msgstr "nome" -#: core/models.py:155 +#: core/models.py:157 msgid "identity email address" msgstr "indirizzo email di identità" -#: core/models.py:160 +#: core/models.py:162 msgid "admin email address" msgstr "Indirizzo email dell'amministratore" -#: core/models.py:167 +#: core/models.py:169 msgid "language" msgstr "lingua" -#: core/models.py:168 +#: core/models.py:170 msgid "The language in which the user wants to see the interface." msgstr "La lingua in cui l'utente vuole vedere l'interfaccia." -#: core/models.py:176 +#: core/models.py:178 msgid "The timezone in which the user wants to see times." msgstr "Il fuso orario in cui l'utente vuole vedere gli orari." -#: core/models.py:179 +#: core/models.py:181 msgid "device" msgstr "dispositivo" -#: core/models.py:181 +#: core/models.py:183 msgid "Whether the user is a device or a real user." msgstr "Se l'utente è un dispositivo o un utente reale." -#: core/models.py:184 +#: core/models.py:186 msgid "staff status" msgstr "stato del personale" -#: core/models.py:186 +#: core/models.py:188 msgid "Whether the user can log into this admin site." msgstr "Indica se l'utente può accedere a questo sito amministratore." -#: core/models.py:189 +#: core/models.py:191 msgid "active" msgstr "attivo" -#: core/models.py:192 +#: core/models.py:194 msgid "Whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "Indica se questo utente deve essere trattato come attivo. Deseleziona invece di eliminare gli account." -#: core/models.py:197 +#: core/models.py:199 msgid "first connection status" msgstr "stato della prima connessione" -#: core/models.py:199 +#: core/models.py:201 msgid "Whether the user has completed the first connection process." msgstr "Indica se l'utente ha completato il processo di prima connessione." -#: core/models.py:209 +#: core/models.py:211 msgid "user" msgstr "utente" -#: core/models.py:210 +#: core/models.py:212 msgid "users" msgstr "utenti" -#: core/models.py:439 +#: core/models.py:469 msgid "Active email address" msgstr "Indirizzo email attivo" -#: core/models.py:440 +#: core/models.py:470 msgid "Email address to deactivate" msgstr "Indirizzo email da disattivare" -#: core/models.py:467 +#: core/models.py:497 msgid "Unique ID in the source file" msgstr "ID univoco nel file sorgente" -#: core/models.py:473 core/models.py:771 +#: core/models.py:503 core/models.py:812 msgid "Pending" msgstr "In attesa" -#: core/models.py:474 +#: core/models.py:504 msgid "Ready" msgstr "Pronto" -#: core/models.py:475 core/models.py:773 +#: core/models.py:505 core/models.py:814 msgid "Done" msgstr "Completato" -#: core/models.py:476 core/models.py:774 +#: core/models.py:506 core/models.py:815 msgid "Error" msgstr "Errore" -#: core/models.py:484 +#: core/models.py:514 msgid "user reconciliation" msgstr "riconciliazione utente" -#: core/models.py:485 +#: core/models.py:515 msgid "user reconciliations" msgstr "riconciliazioni utente" -#: core/models.py:723 +#: core/models.py:764 msgid "You have requested a reconciliation of your user accounts on Docs.\n" " To confirm that you are the one who initiated the request\n" " and that this email belongs to you:" @@ -296,53 +296,53 @@ msgstr "Hai richiesto una riconciliazione dei tuoi account utente su Docs.\n" " Per confermare che sei stato tu a avviare la richiesta\n" " e che questo indirizzo email ti appartiene:" -#: core/models.py:729 +#: core/models.py:770 msgid "Confirm by clicking the link to start the reconciliation" msgstr "Conferma cliccando sul link per avviare la riconciliazione" -#: core/models.py:734 core/models.py:840 +#: core/models.py:775 core/models.py:881 msgid "Click here" msgstr "Clicca qui" -#: core/models.py:735 +#: core/models.py:776 msgid "Confirm" msgstr "Conferma" -#: core/models.py:746 +#: core/models.py:787 msgid "Your reconciliation request has been processed.\n" " New documents are likely associated with your account:" msgstr "La tua richiesta di riconciliazione è stata elaborata.\n" " È probabile che nuovi documenti siano ora associati al tuo account:" -#: core/models.py:751 +#: core/models.py:792 msgid "Your accounts have been merged" msgstr "I tuoi account sono stati uniti" -#: core/models.py:756 +#: core/models.py:797 msgid "Click here to see" msgstr "Clicca qui per vedere" -#: core/models.py:757 +#: core/models.py:798 msgid "See my documents" msgstr "Vedi i miei documenti" -#: core/models.py:767 +#: core/models.py:808 msgid "CSV file" msgstr "File CSV" -#: core/models.py:772 +#: core/models.py:813 msgid "Running" msgstr "In esecuzione" -#: core/models.py:782 +#: core/models.py:823 msgid "user reconciliation CSV import" msgstr "importazione CSV riconciliazione utenti" -#: core/models.py:783 +#: core/models.py:824 msgid "user reconciliation CSV imports" msgstr "importazioni CSV riconciliazione utenti" -#: core/models.py:827 +#: core/models.py:868 #, python-brace-format msgid "Your request for reconciliation was unsuccessful.\n" " Reconciliation failed for the following email addresses:\n" @@ -355,273 +355,273 @@ msgstr "La tua richiesta di riconciliazione non è andata a buon fine.\n" " Verifica che non ci siano errori di battitura.\n" " Puoi inviare un'altra richiesta con gli indirizzi email validi." -#: core/models.py:835 +#: core/models.py:876 msgid "Reconciliation of your Docs accounts not completed" msgstr "Riconciliazione dei tuoi account Docs non completata" -#: core/models.py:841 +#: core/models.py:882 msgid "Make a new request" msgstr "Fai una nuova richiesta" -#: core/models.py:956 +#: core/models.py:997 msgid "title" msgstr "titolo" -#: core/models.py:957 +#: core/models.py:998 msgid "excerpt" msgstr "estratto" -#: core/models.py:1004 +#: core/models.py:1045 msgid "Document" msgstr "Documento" -#: core/models.py:1005 +#: core/models.py:1046 msgid "Documents" msgstr "Documenti" -#: core/models.py:1022 core/models.py:1351 core/models.py:2087 +#: core/models.py:1063 core/models.py:1442 core/models.py:2178 msgid "Untitled Document" msgstr "Documento senza titolo" -#: core/models.py:1352 +#: core/models.py:1443 msgid "Open" msgstr "Apri" -#: core/models.py:1387 +#: core/models.py:1478 #, python-brace-format msgid "{name} shared a document with you!" msgstr "{name} ha condiviso un documento con te!" -#: core/models.py:1391 +#: core/models.py:1482 #, python-brace-format msgid "{name} invited you with the role \"{role}\" on the following document:" msgstr "{name} ti ha invitato con il ruolo \"{role}\" nel seguente documento:" -#: core/models.py:1397 +#: core/models.py:1488 #, python-brace-format msgid "{name} shared a document with you: {title}" msgstr "{name} ha condiviso un documento con te: {title}" -#: core/models.py:1497 +#: core/models.py:1588 msgid "Document/user link trace" msgstr "Traccia del link documento/utente" -#: core/models.py:1498 +#: core/models.py:1589 msgid "Document/user link traces" msgstr "Tracce del link documento/utente" -#: core/models.py:1504 +#: core/models.py:1595 msgid "A link trace already exists for this document/user." msgstr "Esiste già una traccia del link per questo documento/utente." -#: core/models.py:1527 +#: core/models.py:1618 msgid "Document favorite" msgstr "Documento preferito" -#: core/models.py:1528 +#: core/models.py:1619 msgid "Document favorites" msgstr "Documenti preferiti" -#: core/models.py:1534 +#: core/models.py:1625 msgid "This document is already targeted by a favorite relation instance for the same user." msgstr "Questo documento è già associato a un'istanza di relazione preferita per lo stesso utente." -#: core/models.py:1556 +#: core/models.py:1647 msgid "Document/user relation" msgstr "Relazione documento/utente" -#: core/models.py:1557 +#: core/models.py:1648 msgid "Document/user relations" msgstr "Relazioni documento/utente" -#: core/models.py:1563 +#: core/models.py:1654 msgid "This user is already in this document." msgstr "Questo utente è già presente in questo documento." -#: core/models.py:1569 +#: core/models.py:1660 msgid "This team is already in this document." msgstr "Questo team è già presente in questo documento." -#: core/models.py:1575 +#: core/models.py:1666 msgid "Either user or team must be set, not both." msgstr "Deve essere impostato l'utente o il team, non entrambi." -#: core/models.py:1726 +#: core/models.py:1817 msgid "Document ask for access" msgstr "Richiesta di accesso al documento" -#: core/models.py:1727 +#: core/models.py:1818 msgid "Document ask for accesses" msgstr "Richieste di accesso al documento" -#: core/models.py:1733 +#: core/models.py:1824 msgid "This user has already asked for access to this document." msgstr "Questo utente ha già richiesto l'accesso a questo documento." -#: core/models.py:1790 +#: core/models.py:1881 #, python-brace-format msgid "{name} would like access to a document!" msgstr "{name} desidera accedere a un documento!" -#: core/models.py:1794 +#: core/models.py:1885 #, python-brace-format msgid "{name} would like access to the following document:" msgstr "{name} desidera accedere al seguente documento:" -#: core/models.py:1800 +#: core/models.py:1891 #, python-brace-format msgid "{name} is asking for access to the document: {title}" msgstr "{name} sta richiedendo l'accesso al documento: {title}" -#: core/models.py:1842 +#: core/models.py:1933 msgid "Thread" msgstr "Discussione" -#: core/models.py:1843 +#: core/models.py:1934 msgid "Threads" msgstr "Discussioni" -#: core/models.py:1846 core/models.py:1899 +#: core/models.py:1937 core/models.py:1990 msgid "Anonymous" msgstr "Anonimo" -#: core/models.py:1894 +#: core/models.py:1985 msgid "Comment" msgstr "Commento" -#: core/models.py:1895 +#: core/models.py:1986 msgid "Comments" msgstr "Commenti" -#: core/models.py:1945 +#: core/models.py:2036 msgid "This emoji has already been reacted to this comment." msgstr "Questa emoji è già stata usata come reazione a questo commento." -#: core/models.py:1949 +#: core/models.py:2040 msgid "Reaction" msgstr "Reazione" -#: core/models.py:1950 +#: core/models.py:2041 msgid "Reactions" msgstr "Reazioni" -#: core/models.py:2001 +#: core/models.py:2092 msgid "Mention" msgstr "" -#: core/models.py:2002 +#: core/models.py:2093 msgid "Mentions" msgstr "" -#: core/models.py:2015 +#: core/models.py:2106 msgid "a deleted user" msgstr "" -#: core/models.py:2025 +#: core/models.py:2116 msgid "The thread does not belong to this document." msgstr "" -#: core/models.py:2089 +#: core/models.py:2180 #, python-brace-format msgid "{name} mentioned you in a comment in \"{title}\"" msgstr "" -#: core/models.py:2093 +#: core/models.py:2184 #, python-brace-format msgid "{name} mentioned you in a comment in the following document:" msgstr "" -#: core/models.py:2096 +#: core/models.py:2187 #, python-brace-format msgid "{name} mentioned you in \"{title}\"" msgstr "" -#: core/models.py:2099 +#: core/models.py:2190 #, python-brace-format msgid "{name} mentioned you in the following document:" msgstr "" -#: core/models.py:2125 +#: core/models.py:2216 msgid "email address" msgstr "indirizzo email" -#: core/models.py:2144 +#: core/models.py:2235 msgid "Document invitation" msgstr "Invito al documento" -#: core/models.py:2145 +#: core/models.py:2236 msgid "Document invitations" msgstr "Inviti al documento" -#: core/models.py:2165 +#: core/models.py:2256 msgid "This email is already associated to a registered user." msgstr "Questa email è già associata a un utente registrato." -#: core/models.py:2208 +#: core/models.py:2299 msgid "Migrated" msgstr "" -#: core/models.py:2209 +#: core/models.py:2300 msgid "Already migrated" msgstr "" -#: core/models.py:2210 +#: core/models.py:2301 msgid "Nothing in the object storage" msgstr "" -#: core/models.py:2211 +#: core/models.py:2302 msgid "No readable version" msgstr "" -#: core/models.py:2212 +#: core/models.py:2303 msgid "Failed" msgstr "" -#: core/models.py:2236 +#: core/models.py:2327 msgid "status" msgstr "" -#: core/models.py:2238 +#: core/models.py:2329 msgid "versions" msgstr "" -#: core/models.py:2241 +#: core/models.py:2332 msgid "applied" msgstr "" -#: core/models.py:2242 +#: core/models.py:2333 msgid "versions that added content, one activity entry each" msgstr "" -#: core/models.py:2246 +#: core/models.py:2337 msgid "skipped" msgstr "" -#: core/models.py:2247 +#: core/models.py:2338 msgid "versions that could not be read" msgstr "" -#: core/models.py:2251 +#: core/models.py:2342 msgid "dropped" msgstr "" -#: core/models.py:2252 +#: core/models.py:2343 msgid "versions older than the ones the server replays" msgstr "" -#: core/models.py:2254 +#: core/models.py:2345 msgid "duration" msgstr "" -#: core/models.py:2255 +#: core/models.py:2346 msgid "error" msgstr "" -#: core/models.py:2260 +#: core/models.py:2351 msgid "Document migration" msgstr "" -#: core/models.py:2261 +#: core/models.py:2352 msgid "Document migrations" msgstr "" @@ -641,7 +641,7 @@ msgstr " Docs, il tuo nuovo strumento essenziale per organizzare, condividere e msgid " Brought to you by %(brandname)s " msgstr " Offerto da %(brandname)s " -#: impress/settings.py:960 +#: impress/settings.py:974 msgid "Docs AI" msgstr "Docs AI" diff --git a/src/backend/locale/nl_NL/LC_MESSAGES/django.po b/src/backend/locale/nl_NL/LC_MESSAGES/django.po index 40d6c3bc6d..c57ea61e14 100644 --- a/src/backend/locale/nl_NL/LC_MESSAGES/django.po +++ b/src/backend/locale/nl_NL/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: lasuite-docs\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-30 13:00+0000\n" -"PO-Revision-Date: 2026-10-02 09:08\n" +"POT-Creation-Date: 2026-10-05 12:41+0000\n" +"PO-Revision-Date: 2026-10-05 14:54\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -78,12 +78,12 @@ msgstr "Dit veld is verplicht." msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration." msgstr "Link bereik '%(link_reach)s' is niet toegestaan op basis van bovenliggende documentconfiguratie." -#: core/api/viewsets.py:1434 +#: core/api/viewsets.py:1439 #, python-brace-format msgid "copy of {title}" msgstr "kopie van {title}" -#: core/api/viewsets.py:3334 +#: core/api/viewsets.py:3324 #, python-format msgid "A comment can have a maximum of %(max)d distinct reactions." msgstr "Een opmerking kan maximaal %(max)d verschillende reacties hebben." @@ -148,147 +148,147 @@ msgstr "Links" msgid "Right" msgstr "Rechts" -#: core/models.py:80 +#: core/models.py:82 msgid "id" msgstr "id" -#: core/models.py:81 +#: core/models.py:83 msgid "primary key for the record as UUID" msgstr "primaire sleutel voor dossier als UUID" -#: core/models.py:87 +#: core/models.py:89 msgid "created on" msgstr "gecreëerd op" -#: core/models.py:88 +#: core/models.py:90 msgid "date and time at which a record was created" msgstr "datum en tijd waarop dossier is gecreeërd" -#: core/models.py:93 core/models.py:2256 +#: core/models.py:95 core/models.py:2347 msgid "updated on" msgstr "Laatst gewijzigd op" -#: core/models.py:94 +#: core/models.py:96 msgid "date and time at which a record was last updated" msgstr "datum en tijd waarop dossier laatst was gewijzigd" -#: core/models.py:130 +#: core/models.py:132 msgid "We couldn't find a user with this sub but the email is already associated with a registered user." msgstr "Wij konden geen gebruiker vinden met dit id, maar de email is al geassocieerd met een geregistreerde gebruiker." -#: core/models.py:141 +#: core/models.py:143 msgid "sub" msgstr "id" -#: core/models.py:142 +#: core/models.py:144 msgid "Required. 255 characters or fewer. ASCII characters only." msgstr "Vereist. 255 tekens of minder. Alleen ASCII tekens." -#: core/models.py:150 +#: core/models.py:152 msgid "full name" msgstr "volledige naam" -#: core/models.py:152 +#: core/models.py:154 msgid "short name" msgstr "gebruikersnaam" -#: core/models.py:155 +#: core/models.py:157 msgid "identity email address" msgstr "identiteit emailadres" -#: core/models.py:160 +#: core/models.py:162 msgid "admin email address" msgstr "admin emailadres" -#: core/models.py:167 +#: core/models.py:169 msgid "language" msgstr "taal" -#: core/models.py:168 +#: core/models.py:170 msgid "The language in which the user wants to see the interface." msgstr "De taal waarin de gebruiker de interface wil zien." -#: core/models.py:176 +#: core/models.py:178 msgid "The timezone in which the user wants to see times." msgstr "De tijdzone waarin de gebruiker de tijden wil zien." -#: core/models.py:179 +#: core/models.py:181 msgid "device" msgstr "apparaat" -#: core/models.py:181 +#: core/models.py:183 msgid "Whether the user is a device or a real user." msgstr "Of de gebruiker een apparaat is of een echte gebruiker." -#: core/models.py:184 +#: core/models.py:186 msgid "staff status" msgstr "beheerder status" -#: core/models.py:186 +#: core/models.py:188 msgid "Whether the user can log into this admin site." msgstr "Of de gebruiker kan inloggen in het beheer gedeelte." -#: core/models.py:189 +#: core/models.py:191 msgid "active" msgstr "actief" -#: core/models.py:192 +#: core/models.py:194 msgid "Whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "Of een gebruiker als actief moet worden beschouwd. Deselecteer dit in plaats van het account te deleten." -#: core/models.py:197 +#: core/models.py:199 msgid "first connection status" msgstr "eerste verbinding status" -#: core/models.py:199 +#: core/models.py:201 msgid "Whether the user has completed the first connection process." msgstr "Of de gebruiker het eerste verbindingsproces heeft voltooid." -#: core/models.py:209 +#: core/models.py:211 msgid "user" msgstr "gebruiker" -#: core/models.py:210 +#: core/models.py:212 msgid "users" msgstr "gebruikers" -#: core/models.py:439 +#: core/models.py:469 msgid "Active email address" msgstr "Actieve e-mail adres" -#: core/models.py:440 +#: core/models.py:470 msgid "Email address to deactivate" msgstr "E-mailadres om te deactiveren" -#: core/models.py:467 +#: core/models.py:497 msgid "Unique ID in the source file" msgstr "Unieke ID in het bronbestand" -#: core/models.py:473 core/models.py:771 +#: core/models.py:503 core/models.py:812 msgid "Pending" msgstr "In behandeling" -#: core/models.py:474 +#: core/models.py:504 msgid "Ready" msgstr "Klaar" -#: core/models.py:475 core/models.py:773 +#: core/models.py:505 core/models.py:814 msgid "Done" msgstr "Klaar" -#: core/models.py:476 core/models.py:774 +#: core/models.py:506 core/models.py:815 msgid "Error" msgstr "Fout" -#: core/models.py:484 +#: core/models.py:514 msgid "user reconciliation" msgstr "gebruiker samenvoegen" -#: core/models.py:485 +#: core/models.py:515 msgid "user reconciliations" msgstr "gebruikers samenvoegen" -#: core/models.py:723 +#: core/models.py:764 msgid "You have requested a reconciliation of your user accounts on Docs.\n" " To confirm that you are the one who initiated the request\n" " and that this email belongs to you:" @@ -296,53 +296,53 @@ msgstr "Je hebt gevraagd om een samenvoeging van je gebruikersaccounts op Docs.\ " Om te bevestigen dat u degene bent die het verzoek\n" " heeft geïnitieerd en dat deze e-mail van u is:" -#: core/models.py:729 +#: core/models.py:770 msgid "Confirm by clicking the link to start the reconciliation" msgstr "Bevestig door te klikken op de link om de samenvoeging te starten" -#: core/models.py:734 core/models.py:840 +#: core/models.py:775 core/models.py:881 msgid "Click here" msgstr "Klik hier" -#: core/models.py:735 +#: core/models.py:776 msgid "Confirm" msgstr "Bevestig" -#: core/models.py:746 +#: core/models.py:787 msgid "Your reconciliation request has been processed.\n" " New documents are likely associated with your account:" msgstr "Uw samenvoegingsverzoek is verwerkt.\n" " Nieuwe documenten worden waarschijnlijk geassocieerd met uw account:" -#: core/models.py:751 +#: core/models.py:792 msgid "Your accounts have been merged" msgstr "Je accounts zijn samengevoegd" -#: core/models.py:756 +#: core/models.py:797 msgid "Click here to see" msgstr "Klik hier om te bekijken" -#: core/models.py:757 +#: core/models.py:798 msgid "See my documents" msgstr "Mijn documenten bekijken" -#: core/models.py:767 +#: core/models.py:808 msgid "CSV file" msgstr "CSV bestand" -#: core/models.py:772 +#: core/models.py:813 msgid "Running" msgstr "Bezig" -#: core/models.py:782 +#: core/models.py:823 msgid "user reconciliation CSV import" msgstr "gebruiker samenvoeging CSV import" -#: core/models.py:783 +#: core/models.py:824 msgid "user reconciliation CSV imports" msgstr "gebruiker reconciliation CSV imports" -#: core/models.py:827 +#: core/models.py:868 #, python-brace-format msgid "Your request for reconciliation was unsuccessful.\n" " Reconciliation failed for the following email addresses:\n" @@ -355,273 +355,273 @@ msgstr "Uw verzoek tot verzoening is mislukt.\n" " Controleer op typefouten.\n" " U kunt een ander verzoek indienen met de geldige e-mailadressen." -#: core/models.py:835 +#: core/models.py:876 msgid "Reconciliation of your Docs accounts not completed" msgstr "Samenvoeging van je Docs accounts is niet voltooid" -#: core/models.py:841 +#: core/models.py:882 msgid "Make a new request" msgstr "Maak een nieuw verzoek" -#: core/models.py:956 +#: core/models.py:997 msgid "title" msgstr "titel" -#: core/models.py:957 +#: core/models.py:998 msgid "excerpt" msgstr "uittreksel" -#: core/models.py:1004 +#: core/models.py:1045 msgid "Document" msgstr "Document" -#: core/models.py:1005 +#: core/models.py:1046 msgid "Documents" msgstr "Documenten" -#: core/models.py:1022 core/models.py:1351 core/models.py:2087 +#: core/models.py:1063 core/models.py:1442 core/models.py:2178 msgid "Untitled Document" msgstr "Naamloos Document" -#: core/models.py:1352 +#: core/models.py:1443 msgid "Open" msgstr "Open" -#: core/models.py:1387 +#: core/models.py:1478 #, python-brace-format msgid "{name} shared a document with you!" msgstr "{name} heeft een document met u gedeeld!" -#: core/models.py:1391 +#: core/models.py:1482 #, python-brace-format msgid "{name} invited you with the role \"{role}\" on the following document:" msgstr "{name} heeft u uitgenodigd met de rol \"{role}\" op het volgende document:" -#: core/models.py:1397 +#: core/models.py:1488 #, python-brace-format msgid "{name} shared a document with you: {title}" msgstr "{name} heeft een document met u gedeeld: {title}" -#: core/models.py:1497 +#: core/models.py:1588 msgid "Document/user link trace" msgstr "Document/gebruiker link" -#: core/models.py:1498 +#: core/models.py:1589 msgid "Document/user link traces" msgstr "Document/gebruiker link" -#: core/models.py:1504 +#: core/models.py:1595 msgid "A link trace already exists for this document/user." msgstr "Een link bestaat al voor dit document/deze gebruiker." -#: core/models.py:1527 +#: core/models.py:1618 msgid "Document favorite" msgstr "Document favoriet" -#: core/models.py:1528 +#: core/models.py:1619 msgid "Document favorites" msgstr "Document favorieten" -#: core/models.py:1534 +#: core/models.py:1625 msgid "This document is already targeted by a favorite relation instance for the same user." msgstr "Dit document is al in gebruik als favoriet door dezelfde gebruiker." -#: core/models.py:1556 +#: core/models.py:1647 msgid "Document/user relation" msgstr "Document/gebruiker relatie" -#: core/models.py:1557 +#: core/models.py:1648 msgid "Document/user relations" msgstr "Document/gebruiker relaties" -#: core/models.py:1563 +#: core/models.py:1654 msgid "This user is already in this document." msgstr "De gebruiker bestaat al in dit document." -#: core/models.py:1569 +#: core/models.py:1660 msgid "This team is already in this document." msgstr "Dit team bestaat al in dit document." -#: core/models.py:1575 +#: core/models.py:1666 msgid "Either user or team must be set, not both." msgstr "Een gebruiker of team moet gekozen worden, maar niet beide." -#: core/models.py:1726 +#: core/models.py:1817 msgid "Document ask for access" msgstr "Document verzoekt om toegang" -#: core/models.py:1727 +#: core/models.py:1818 msgid "Document ask for accesses" msgstr "Document verzoekt om toegangen" -#: core/models.py:1733 +#: core/models.py:1824 msgid "This user has already asked for access to this document." msgstr "Deze gebruiker heeft al om toegang tot dit document gevraagd." -#: core/models.py:1790 +#: core/models.py:1881 #, python-brace-format msgid "{name} would like access to a document!" msgstr "{name} verzoekt toegang tot een document!" -#: core/models.py:1794 +#: core/models.py:1885 #, python-brace-format msgid "{name} would like access to the following document:" msgstr "{name} verzoekt toegang tot het volgende document:" -#: core/models.py:1800 +#: core/models.py:1891 #, python-brace-format msgid "{name} is asking for access to the document: {title}" msgstr "{name} verzoekt toegang tot het document: {title}" -#: core/models.py:1842 +#: core/models.py:1933 msgid "Thread" msgstr "Kanaal" -#: core/models.py:1843 +#: core/models.py:1934 msgid "Threads" msgstr "Kanalen" -#: core/models.py:1846 core/models.py:1899 +#: core/models.py:1937 core/models.py:1990 msgid "Anonymous" msgstr "Anoniem" -#: core/models.py:1894 +#: core/models.py:1985 msgid "Comment" msgstr "Reactie" -#: core/models.py:1895 +#: core/models.py:1986 msgid "Comments" msgstr "Reacties" -#: core/models.py:1945 +#: core/models.py:2036 msgid "This emoji has already been reacted to this comment." msgstr "Deze emoji is al op deze opmerking gereageerd." -#: core/models.py:1949 +#: core/models.py:2040 msgid "Reaction" msgstr "Reactie" -#: core/models.py:1950 +#: core/models.py:2041 msgid "Reactions" msgstr "Reacties" -#: core/models.py:2001 +#: core/models.py:2092 msgid "Mention" msgstr "Vermelding" -#: core/models.py:2002 +#: core/models.py:2093 msgid "Mentions" msgstr "Vermeldingen" -#: core/models.py:2015 +#: core/models.py:2106 msgid "a deleted user" msgstr "een verwijderde gebruiker" -#: core/models.py:2025 +#: core/models.py:2116 msgid "The thread does not belong to this document." msgstr "De discussie hoort niet bij dit document." -#: core/models.py:2089 +#: core/models.py:2180 #, python-brace-format msgid "{name} mentioned you in a comment in \"{title}\"" msgstr "{name} noemde u in een opmerking in \"{title}\"" -#: core/models.py:2093 +#: core/models.py:2184 #, python-brace-format msgid "{name} mentioned you in a comment in the following document:" msgstr "{name} noemde u in een opmerking in het volgende document:" -#: core/models.py:2096 +#: core/models.py:2187 #, python-brace-format msgid "{name} mentioned you in \"{title}\"" msgstr "{name} noemde u in \"{title}\"" -#: core/models.py:2099 +#: core/models.py:2190 #, python-brace-format msgid "{name} mentioned you in the following document:" msgstr "{name} noemde u in het volgende document:" -#: core/models.py:2125 +#: core/models.py:2216 msgid "email address" msgstr "e-mailadres" -#: core/models.py:2144 +#: core/models.py:2235 msgid "Document invitation" msgstr "Document uitnodiging" -#: core/models.py:2145 +#: core/models.py:2236 msgid "Document invitations" msgstr "Document uitnodigingen" -#: core/models.py:2165 +#: core/models.py:2256 msgid "This email is already associated to a registered user." msgstr "Deze email is al geassocieerd met een geregistreerde gebruiker." -#: core/models.py:2208 +#: core/models.py:2299 msgid "Migrated" msgstr "Gemigreerd" -#: core/models.py:2209 +#: core/models.py:2300 msgid "Already migrated" msgstr "Al gemigreerd" -#: core/models.py:2210 +#: core/models.py:2301 msgid "Nothing in the object storage" msgstr "Niets in de objectopslag" -#: core/models.py:2211 +#: core/models.py:2302 msgid "No readable version" msgstr "Geen leesbare versie" -#: core/models.py:2212 +#: core/models.py:2303 msgid "Failed" msgstr "Mislukt" -#: core/models.py:2236 +#: core/models.py:2327 msgid "status" msgstr "status" -#: core/models.py:2238 +#: core/models.py:2329 msgid "versions" msgstr "versies" -#: core/models.py:2241 +#: core/models.py:2332 msgid "applied" msgstr "toegepast" -#: core/models.py:2242 +#: core/models.py:2333 msgid "versions that added content, one activity entry each" msgstr "versies die inhoud hebben toegevoegd, met elk één activiteitvermelding" -#: core/models.py:2246 +#: core/models.py:2337 msgid "skipped" msgstr "overgeslagen" -#: core/models.py:2247 +#: core/models.py:2338 msgid "versions that could not be read" msgstr "versies die niet konden worden gelezen" -#: core/models.py:2251 +#: core/models.py:2342 msgid "dropped" msgstr "laten vallen" -#: core/models.py:2252 +#: core/models.py:2343 msgid "versions older than the ones the server replays" msgstr "versies ouder dan degene die de server opnieuw afspeelt" -#: core/models.py:2254 +#: core/models.py:2345 msgid "duration" msgstr "duur" -#: core/models.py:2255 +#: core/models.py:2346 msgid "error" msgstr "fout" -#: core/models.py:2260 +#: core/models.py:2351 msgid "Document migration" msgstr "Document migratie" -#: core/models.py:2261 +#: core/models.py:2352 msgid "Document migrations" msgstr "Document migraties" @@ -641,7 +641,7 @@ msgstr " Docs, jouw nieuwe essentiële tool voor het organiseren, delen en colla msgid " Brought to you by %(brandname)s " msgstr " Geleverd door %(brandname)s " -#: impress/settings.py:960 +#: impress/settings.py:974 msgid "Docs AI" msgstr "Docs AI" diff --git a/src/backend/locale/pl_PL/LC_MESSAGES/django.po b/src/backend/locale/pl_PL/LC_MESSAGES/django.po index a006b092ef..8bc7bd0afc 100644 --- a/src/backend/locale/pl_PL/LC_MESSAGES/django.po +++ b/src/backend/locale/pl_PL/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: lasuite-docs\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-30 13:00+0000\n" -"PO-Revision-Date: 2026-10-02 09:08\n" +"POT-Creation-Date: 2026-10-05 12:41+0000\n" +"PO-Revision-Date: 2026-10-05 14:54\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -78,12 +78,12 @@ msgstr "To pole jest wymagane." msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration." msgstr "Zasięg linku „%(link_reach)s” nie jest dozwolony zgodnie z konfiguracją dokumentu nadrzędnego." -#: core/api/viewsets.py:1434 +#: core/api/viewsets.py:1439 #, python-brace-format msgid "copy of {title}" msgstr "kopia {title}" -#: core/api/viewsets.py:3334 +#: core/api/viewsets.py:3324 #, python-format msgid "A comment can have a maximum of %(max)d distinct reactions." msgstr "Komentarz może mieć maksymalnie %(max)d różnych reakcji." @@ -148,147 +148,147 @@ msgstr "W lewo" msgid "Right" msgstr "W prawo" -#: core/models.py:80 +#: core/models.py:82 msgid "id" msgstr "id" -#: core/models.py:81 +#: core/models.py:83 msgid "primary key for the record as UUID" msgstr "klucz główny dla rekordu jako UUID" -#: core/models.py:87 +#: core/models.py:89 msgid "created on" msgstr "utworzono" -#: core/models.py:88 +#: core/models.py:90 msgid "date and time at which a record was created" msgstr "data i godzina utworzenia rekordu" -#: core/models.py:93 core/models.py:2256 +#: core/models.py:95 core/models.py:2347 msgid "updated on" msgstr "zaktualizowano" -#: core/models.py:94 +#: core/models.py:96 msgid "date and time at which a record was last updated" msgstr "data i godzina ostatniej aktualizacji rekordu" -#: core/models.py:130 +#: core/models.py:132 msgid "We couldn't find a user with this sub but the email is already associated with a registered user." msgstr "Nie znaleźliśmy użytkownika z tym identyfikatorem sub, ale adres e-mail jest już powiązany z zarejestrowanym użytkownikiem." -#: core/models.py:141 +#: core/models.py:143 msgid "sub" msgstr "sub" -#: core/models.py:142 +#: core/models.py:144 msgid "Required. 255 characters or fewer. ASCII characters only." msgstr "Wymagane. 255 znaków lub mniej. Tylko znaki ASCII." -#: core/models.py:150 +#: core/models.py:152 msgid "full name" msgstr "imię i nazwisko" -#: core/models.py:152 +#: core/models.py:154 msgid "short name" msgstr "krótka nazwa" -#: core/models.py:155 +#: core/models.py:157 msgid "identity email address" msgstr "adres e-mail używany do identyfikacji" -#: core/models.py:160 +#: core/models.py:162 msgid "admin email address" msgstr "adres e-mail administratora" -#: core/models.py:167 +#: core/models.py:169 msgid "language" msgstr "język" -#: core/models.py:168 +#: core/models.py:170 msgid "The language in which the user wants to see the interface." msgstr "Język, w którym użytkownik chce wyświetlać interfejs." -#: core/models.py:176 +#: core/models.py:178 msgid "The timezone in which the user wants to see times." msgstr "Strefa czasowa, według której użytkownik chce wyświetlać czas." -#: core/models.py:179 +#: core/models.py:181 msgid "device" msgstr "urządzenie" -#: core/models.py:181 +#: core/models.py:183 msgid "Whether the user is a device or a real user." msgstr "Określa, czy konto reprezentuje urządzenie, czy rzeczywistego użytkownika." -#: core/models.py:184 +#: core/models.py:186 msgid "staff status" msgstr "status członka personelu" -#: core/models.py:186 +#: core/models.py:188 msgid "Whether the user can log into this admin site." msgstr "Określa, czy użytkownik może zalogować się do panelu administracyjnego." -#: core/models.py:189 +#: core/models.py:191 msgid "active" msgstr "aktywny" -#: core/models.py:192 +#: core/models.py:194 msgid "Whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "Określa, czy ten użytkownik powinien być traktowany jako aktywny. Odznacz tę opcję zamiast usuwać konto." -#: core/models.py:197 +#: core/models.py:199 msgid "first connection status" msgstr "status pierwszego połączenia" -#: core/models.py:199 +#: core/models.py:201 msgid "Whether the user has completed the first connection process." msgstr "Czy użytkownik zakończył proces pierwszego połączenia." -#: core/models.py:209 +#: core/models.py:211 msgid "user" msgstr "użytkownik" -#: core/models.py:210 +#: core/models.py:212 msgid "users" msgstr "użytkownicy" -#: core/models.py:439 +#: core/models.py:469 msgid "Active email address" msgstr "Aktywny adres e-mail" -#: core/models.py:440 +#: core/models.py:470 msgid "Email address to deactivate" msgstr "Adres e-mail do dezaktywacji" -#: core/models.py:467 +#: core/models.py:497 msgid "Unique ID in the source file" msgstr "Unikalny identyfikator w pliku źródłowym" -#: core/models.py:473 core/models.py:771 +#: core/models.py:503 core/models.py:812 msgid "Pending" msgstr "Oczekujące" -#: core/models.py:474 +#: core/models.py:504 msgid "Ready" msgstr "Gotowe" -#: core/models.py:475 core/models.py:773 +#: core/models.py:505 core/models.py:814 msgid "Done" msgstr "Zakończone" -#: core/models.py:476 core/models.py:774 +#: core/models.py:506 core/models.py:815 msgid "Error" msgstr "Błąd" -#: core/models.py:484 +#: core/models.py:514 msgid "user reconciliation" msgstr "łączenie kont użytkownika" -#: core/models.py:485 +#: core/models.py:515 msgid "user reconciliations" msgstr "łączenie kont użytkowników" -#: core/models.py:723 +#: core/models.py:764 msgid "You have requested a reconciliation of your user accounts on Docs.\n" " To confirm that you are the one who initiated the request\n" " and that this email belongs to you:" @@ -296,53 +296,53 @@ msgstr "Otrzymaliśmy Twoją prośbę o połączenie kont w Docs.\n" " Aby potwierdzić, że prośba została wysłana przez Ciebie\n" " i że ten adres e-mail należy do Ciebie:" -#: core/models.py:729 +#: core/models.py:770 msgid "Confirm by clicking the link to start the reconciliation" msgstr "Potwierdź, klikając link, aby rozpocząć łączenie kont" -#: core/models.py:734 core/models.py:840 +#: core/models.py:775 core/models.py:881 msgid "Click here" msgstr "Kliknij tutaj" -#: core/models.py:735 +#: core/models.py:776 msgid "Confirm" msgstr "Potwierdź" -#: core/models.py:746 +#: core/models.py:787 msgid "Your reconciliation request has been processed.\n" " New documents are likely associated with your account:" msgstr "Twoja prośba o połączenie kont została przetworzona.\n" " Nowe dokumenty zostały prawdopodobnie przypisane do Twojego konta:" -#: core/models.py:751 +#: core/models.py:792 msgid "Your accounts have been merged" msgstr "Twoje konta zostały połączone" -#: core/models.py:756 +#: core/models.py:797 msgid "Click here to see" msgstr "Kliknij tutaj, aby zobaczyć" -#: core/models.py:757 +#: core/models.py:798 msgid "See my documents" msgstr "Zobacz moje dokumenty" -#: core/models.py:767 +#: core/models.py:808 msgid "CSV file" msgstr "Plik CSV" -#: core/models.py:772 +#: core/models.py:813 msgid "Running" msgstr "W toku" -#: core/models.py:782 +#: core/models.py:823 msgid "user reconciliation CSV import" msgstr "import pliku CSV do łączenia kont użytkowników" -#: core/models.py:783 +#: core/models.py:824 msgid "user reconciliation CSV imports" msgstr "importy plików CSV do łączenia kont użytkowników" -#: core/models.py:827 +#: core/models.py:868 #, python-brace-format msgid "Your request for reconciliation was unsuccessful.\n" " Reconciliation failed for the following email addresses:\n" @@ -355,273 +355,273 @@ msgstr "Twoja prośba o połączenie kont nie powiodła się.\n" " Sprawdź, czy nie ma literówek.\n" " Możesz złożyć kolejną prośbę, podając prawidłowe adresy e-mail." -#: core/models.py:835 +#: core/models.py:876 msgid "Reconciliation of your Docs accounts not completed" msgstr "Łączenie Twoich kont Docs nie zostało ukończone" -#: core/models.py:841 +#: core/models.py:882 msgid "Make a new request" msgstr "Złóż nową prośbę" -#: core/models.py:956 +#: core/models.py:997 msgid "title" msgstr "tytuł" -#: core/models.py:957 +#: core/models.py:998 msgid "excerpt" msgstr "fragment" -#: core/models.py:1004 +#: core/models.py:1045 msgid "Document" msgstr "Dokument" -#: core/models.py:1005 +#: core/models.py:1046 msgid "Documents" msgstr "Dokumenty" -#: core/models.py:1022 core/models.py:1351 core/models.py:2087 +#: core/models.py:1063 core/models.py:1442 core/models.py:2178 msgid "Untitled Document" msgstr "Dokument bez tytułu" -#: core/models.py:1352 +#: core/models.py:1443 msgid "Open" msgstr "Otwórz" -#: core/models.py:1387 +#: core/models.py:1478 #, python-brace-format msgid "{name} shared a document with you!" msgstr "Dokument został Ci udostępniony przez {name}!" -#: core/models.py:1391 +#: core/models.py:1482 #, python-brace-format msgid "{name} invited you with the role \"{role}\" on the following document:" msgstr "{name} zaprasza Cię z rolą \"{role}\" do następującego dokumentu:" -#: core/models.py:1397 +#: core/models.py:1488 #, python-brace-format msgid "{name} shared a document with you: {title}" msgstr "Dokument został Ci udostępniony przez {name}: {title}" -#: core/models.py:1497 +#: core/models.py:1588 msgid "Document/user link trace" msgstr "Ślad powiązania dokumentu z użytkownikiem" -#: core/models.py:1498 +#: core/models.py:1589 msgid "Document/user link traces" msgstr "Ślady powiązań dokumentu z użytkownikiem" -#: core/models.py:1504 +#: core/models.py:1595 msgid "A link trace already exists for this document/user." msgstr "Ślad powiązania dla tego dokumentu i użytkownika już istnieje." -#: core/models.py:1527 +#: core/models.py:1618 msgid "Document favorite" msgstr "Ulubiony dokument" -#: core/models.py:1528 +#: core/models.py:1619 msgid "Document favorites" msgstr "Ulubione dokumenty" -#: core/models.py:1534 +#: core/models.py:1625 msgid "This document is already targeted by a favorite relation instance for the same user." msgstr "Ten dokument jest już objęty relacją ulubionych dla tego samego użytkownika." -#: core/models.py:1556 +#: core/models.py:1647 msgid "Document/user relation" msgstr "Relacja dokumentu z użytkownikiem" -#: core/models.py:1557 +#: core/models.py:1648 msgid "Document/user relations" msgstr "Relacje dokumentu z użytkownikami" -#: core/models.py:1563 +#: core/models.py:1654 msgid "This user is already in this document." msgstr "Ten użytkownik ma już dostęp do tego dokumentu." -#: core/models.py:1569 +#: core/models.py:1660 msgid "This team is already in this document." msgstr "Ten zespół ma już dostęp do tego dokumentu." -#: core/models.py:1575 +#: core/models.py:1666 msgid "Either user or team must be set, not both." msgstr "Należy wskazać użytkownika albo zespół, ale nie oba jednocześnie." -#: core/models.py:1726 +#: core/models.py:1817 msgid "Document ask for access" msgstr "Prośba o dostęp do dokumentu" -#: core/models.py:1727 +#: core/models.py:1818 msgid "Document ask for accesses" msgstr "Prośby o dostęp do dokumentu" -#: core/models.py:1733 +#: core/models.py:1824 msgid "This user has already asked for access to this document." msgstr "Ten użytkownik już poprosił o dostęp do tego dokumentu." -#: core/models.py:1790 +#: core/models.py:1881 #, python-brace-format msgid "{name} would like access to a document!" msgstr "{name} chce uzyskać dostęp do dokumentu!" -#: core/models.py:1794 +#: core/models.py:1885 #, python-brace-format msgid "{name} would like access to the following document:" msgstr "{name} chce uzyskać dostęp do następującego dokumentu:" -#: core/models.py:1800 +#: core/models.py:1891 #, python-brace-format msgid "{name} is asking for access to the document: {title}" msgstr "{name} prosi o dostęp do dokumentu: {title}" -#: core/models.py:1842 +#: core/models.py:1933 msgid "Thread" msgstr "Wątek" -#: core/models.py:1843 +#: core/models.py:1934 msgid "Threads" msgstr "Wątki" -#: core/models.py:1846 core/models.py:1899 +#: core/models.py:1937 core/models.py:1990 msgid "Anonymous" msgstr "Anonimowy" -#: core/models.py:1894 +#: core/models.py:1985 msgid "Comment" msgstr "Komentarz" -#: core/models.py:1895 +#: core/models.py:1986 msgid "Comments" msgstr "Komentarze" -#: core/models.py:1945 +#: core/models.py:2036 msgid "This emoji has already been reacted to this comment." msgstr "Ta reakcja emoji została już dodana do tego komentarza." -#: core/models.py:1949 +#: core/models.py:2040 msgid "Reaction" msgstr "Reakcja" -#: core/models.py:1950 +#: core/models.py:2041 msgid "Reactions" msgstr "Reakcje" -#: core/models.py:2001 +#: core/models.py:2092 msgid "Mention" msgstr "" -#: core/models.py:2002 +#: core/models.py:2093 msgid "Mentions" msgstr "" -#: core/models.py:2015 +#: core/models.py:2106 msgid "a deleted user" msgstr "" -#: core/models.py:2025 +#: core/models.py:2116 msgid "The thread does not belong to this document." msgstr "" -#: core/models.py:2089 +#: core/models.py:2180 #, python-brace-format msgid "{name} mentioned you in a comment in \"{title}\"" msgstr "" -#: core/models.py:2093 +#: core/models.py:2184 #, python-brace-format msgid "{name} mentioned you in a comment in the following document:" msgstr "" -#: core/models.py:2096 +#: core/models.py:2187 #, python-brace-format msgid "{name} mentioned you in \"{title}\"" msgstr "" -#: core/models.py:2099 +#: core/models.py:2190 #, python-brace-format msgid "{name} mentioned you in the following document:" msgstr "" -#: core/models.py:2125 +#: core/models.py:2216 msgid "email address" msgstr "adres e-mail" -#: core/models.py:2144 +#: core/models.py:2235 msgid "Document invitation" msgstr "Zaproszenie do dokumentu" -#: core/models.py:2145 +#: core/models.py:2236 msgid "Document invitations" msgstr "Zaproszenia do dokumentu" -#: core/models.py:2165 +#: core/models.py:2256 msgid "This email is already associated to a registered user." msgstr "Ten e-mail jest już powiązany z zarejestrowanym użytkownikiem." -#: core/models.py:2208 +#: core/models.py:2299 msgid "Migrated" msgstr "" -#: core/models.py:2209 +#: core/models.py:2300 msgid "Already migrated" msgstr "" -#: core/models.py:2210 +#: core/models.py:2301 msgid "Nothing in the object storage" msgstr "" -#: core/models.py:2211 +#: core/models.py:2302 msgid "No readable version" msgstr "" -#: core/models.py:2212 +#: core/models.py:2303 msgid "Failed" msgstr "" -#: core/models.py:2236 +#: core/models.py:2327 msgid "status" msgstr "" -#: core/models.py:2238 +#: core/models.py:2329 msgid "versions" msgstr "" -#: core/models.py:2241 +#: core/models.py:2332 msgid "applied" msgstr "" -#: core/models.py:2242 +#: core/models.py:2333 msgid "versions that added content, one activity entry each" msgstr "" -#: core/models.py:2246 +#: core/models.py:2337 msgid "skipped" msgstr "" -#: core/models.py:2247 +#: core/models.py:2338 msgid "versions that could not be read" msgstr "" -#: core/models.py:2251 +#: core/models.py:2342 msgid "dropped" msgstr "" -#: core/models.py:2252 +#: core/models.py:2343 msgid "versions older than the ones the server replays" msgstr "" -#: core/models.py:2254 +#: core/models.py:2345 msgid "duration" msgstr "" -#: core/models.py:2255 +#: core/models.py:2346 msgid "error" msgstr "" -#: core/models.py:2260 +#: core/models.py:2351 msgid "Document migration" msgstr "" -#: core/models.py:2261 +#: core/models.py:2352 msgid "Document migrations" msgstr "" @@ -641,7 +641,7 @@ msgstr " Docs, Twoje nowe niezbędne narzędzie do organizowania, udostępniania msgid " Brought to you by %(brandname)s " msgstr " Dostarczone przez %(brandname)s " -#: impress/settings.py:960 +#: impress/settings.py:974 msgid "Docs AI" msgstr "Docs AI" diff --git a/src/backend/locale/pt_PT/LC_MESSAGES/django.po b/src/backend/locale/pt_PT/LC_MESSAGES/django.po index b88e456e32..4233a925e7 100644 --- a/src/backend/locale/pt_PT/LC_MESSAGES/django.po +++ b/src/backend/locale/pt_PT/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: lasuite-docs\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-30 13:00+0000\n" -"PO-Revision-Date: 2026-10-02 09:08\n" +"POT-Creation-Date: 2026-10-05 12:41+0000\n" +"PO-Revision-Date: 2026-10-05 14:54\n" "Last-Translator: \n" "Language-Team: Portuguese\n" "Language: pt_PT\n" @@ -78,12 +78,12 @@ msgstr "" msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration." msgstr "" -#: core/api/viewsets.py:1434 +#: core/api/viewsets.py:1439 #, python-brace-format msgid "copy of {title}" msgstr "cópia de {title}" -#: core/api/viewsets.py:3334 +#: core/api/viewsets.py:3324 #, python-format msgid "A comment can have a maximum of %(max)d distinct reactions." msgstr "" @@ -148,198 +148,198 @@ msgstr "Esquerda" msgid "Right" msgstr "" -#: core/models.py:80 +#: core/models.py:82 msgid "id" msgstr "id" -#: core/models.py:81 +#: core/models.py:83 msgid "primary key for the record as UUID" msgstr "" -#: core/models.py:87 +#: core/models.py:89 msgid "created on" msgstr "" -#: core/models.py:88 +#: core/models.py:90 msgid "date and time at which a record was created" msgstr "" -#: core/models.py:93 core/models.py:2256 +#: core/models.py:95 core/models.py:2347 msgid "updated on" msgstr "" -#: core/models.py:94 +#: core/models.py:96 msgid "date and time at which a record was last updated" msgstr "" -#: core/models.py:130 +#: core/models.py:132 msgid "We couldn't find a user with this sub but the email is already associated with a registered user." msgstr "" -#: core/models.py:141 +#: core/models.py:143 msgid "sub" msgstr "sub" -#: core/models.py:142 +#: core/models.py:144 msgid "Required. 255 characters or fewer. ASCII characters only." msgstr "" -#: core/models.py:150 +#: core/models.py:152 msgid "full name" msgstr "" -#: core/models.py:152 +#: core/models.py:154 msgid "short name" msgstr "" -#: core/models.py:155 +#: core/models.py:157 msgid "identity email address" msgstr "" -#: core/models.py:160 +#: core/models.py:162 msgid "admin email address" msgstr "" -#: core/models.py:167 +#: core/models.py:169 msgid "language" msgstr "" -#: core/models.py:168 +#: core/models.py:170 msgid "The language in which the user wants to see the interface." msgstr "" -#: core/models.py:176 +#: core/models.py:178 msgid "The timezone in which the user wants to see times." msgstr "" -#: core/models.py:179 +#: core/models.py:181 msgid "device" msgstr "" -#: core/models.py:181 +#: core/models.py:183 msgid "Whether the user is a device or a real user." msgstr "" -#: core/models.py:184 +#: core/models.py:186 msgid "staff status" msgstr "" -#: core/models.py:186 +#: core/models.py:188 msgid "Whether the user can log into this admin site." msgstr "" -#: core/models.py:189 +#: core/models.py:191 msgid "active" msgstr "" -#: core/models.py:192 +#: core/models.py:194 msgid "Whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: core/models.py:197 +#: core/models.py:199 msgid "first connection status" msgstr "" -#: core/models.py:199 +#: core/models.py:201 msgid "Whether the user has completed the first connection process." msgstr "" -#: core/models.py:209 +#: core/models.py:211 msgid "user" msgstr "utilizador" -#: core/models.py:210 +#: core/models.py:212 msgid "users" msgstr "" -#: core/models.py:439 +#: core/models.py:469 msgid "Active email address" msgstr "" -#: core/models.py:440 +#: core/models.py:470 msgid "Email address to deactivate" msgstr "" -#: core/models.py:467 +#: core/models.py:497 msgid "Unique ID in the source file" msgstr "" -#: core/models.py:473 core/models.py:771 +#: core/models.py:503 core/models.py:812 msgid "Pending" msgstr "" -#: core/models.py:474 +#: core/models.py:504 msgid "Ready" msgstr "" -#: core/models.py:475 core/models.py:773 +#: core/models.py:505 core/models.py:814 msgid "Done" msgstr "Concluído" -#: core/models.py:476 core/models.py:774 +#: core/models.py:506 core/models.py:815 msgid "Error" msgstr "" -#: core/models.py:484 +#: core/models.py:514 msgid "user reconciliation" msgstr "" -#: core/models.py:485 +#: core/models.py:515 msgid "user reconciliations" msgstr "" -#: core/models.py:723 +#: core/models.py:764 msgid "You have requested a reconciliation of your user accounts on Docs.\n" " To confirm that you are the one who initiated the request\n" " and that this email belongs to you:" msgstr "" -#: core/models.py:729 +#: core/models.py:770 msgid "Confirm by clicking the link to start the reconciliation" msgstr "" -#: core/models.py:734 core/models.py:840 +#: core/models.py:775 core/models.py:881 msgid "Click here" msgstr "" -#: core/models.py:735 +#: core/models.py:776 msgid "Confirm" msgstr "" -#: core/models.py:746 +#: core/models.py:787 msgid "Your reconciliation request has been processed.\n" " New documents are likely associated with your account:" msgstr "" -#: core/models.py:751 +#: core/models.py:792 msgid "Your accounts have been merged" msgstr "" -#: core/models.py:756 +#: core/models.py:797 msgid "Click here to see" msgstr "" -#: core/models.py:757 +#: core/models.py:798 msgid "See my documents" msgstr "" -#: core/models.py:767 +#: core/models.py:808 msgid "CSV file" msgstr "" -#: core/models.py:772 +#: core/models.py:813 msgid "Running" msgstr "" -#: core/models.py:782 +#: core/models.py:823 msgid "user reconciliation CSV import" msgstr "" -#: core/models.py:783 +#: core/models.py:824 msgid "user reconciliation CSV imports" msgstr "" -#: core/models.py:827 +#: core/models.py:868 #, python-brace-format msgid "Your request for reconciliation was unsuccessful.\n" " Reconciliation failed for the following email addresses:\n" @@ -348,273 +348,273 @@ msgid "Your request for reconciliation was unsuccessful.\n" " You can submit another request with the valid email addresses." msgstr "" -#: core/models.py:835 +#: core/models.py:876 msgid "Reconciliation of your Docs accounts not completed" msgstr "" -#: core/models.py:841 +#: core/models.py:882 msgid "Make a new request" msgstr "" -#: core/models.py:956 +#: core/models.py:997 msgid "title" msgstr "" -#: core/models.py:957 +#: core/models.py:998 msgid "excerpt" msgstr "" -#: core/models.py:1004 +#: core/models.py:1045 msgid "Document" msgstr "" -#: core/models.py:1005 +#: core/models.py:1046 msgid "Documents" msgstr "" -#: core/models.py:1022 core/models.py:1351 core/models.py:2087 +#: core/models.py:1063 core/models.py:1442 core/models.py:2178 msgid "Untitled Document" msgstr "" -#: core/models.py:1352 +#: core/models.py:1443 msgid "Open" msgstr "Abrir" -#: core/models.py:1387 +#: core/models.py:1478 #, python-brace-format msgid "{name} shared a document with you!" msgstr "" -#: core/models.py:1391 +#: core/models.py:1482 #, python-brace-format msgid "{name} invited you with the role \"{role}\" on the following document:" msgstr "" -#: core/models.py:1397 +#: core/models.py:1488 #, python-brace-format msgid "{name} shared a document with you: {title}" msgstr "" -#: core/models.py:1497 +#: core/models.py:1588 msgid "Document/user link trace" msgstr "" -#: core/models.py:1498 +#: core/models.py:1589 msgid "Document/user link traces" msgstr "" -#: core/models.py:1504 +#: core/models.py:1595 msgid "A link trace already exists for this document/user." msgstr "" -#: core/models.py:1527 +#: core/models.py:1618 msgid "Document favorite" msgstr "" -#: core/models.py:1528 +#: core/models.py:1619 msgid "Document favorites" msgstr "" -#: core/models.py:1534 +#: core/models.py:1625 msgid "This document is already targeted by a favorite relation instance for the same user." msgstr "" -#: core/models.py:1556 +#: core/models.py:1647 msgid "Document/user relation" msgstr "" -#: core/models.py:1557 +#: core/models.py:1648 msgid "Document/user relations" msgstr "" -#: core/models.py:1563 +#: core/models.py:1654 msgid "This user is already in this document." msgstr "" -#: core/models.py:1569 +#: core/models.py:1660 msgid "This team is already in this document." msgstr "" -#: core/models.py:1575 +#: core/models.py:1666 msgid "Either user or team must be set, not both." msgstr "" -#: core/models.py:1726 +#: core/models.py:1817 msgid "Document ask for access" msgstr "" -#: core/models.py:1727 +#: core/models.py:1818 msgid "Document ask for accesses" msgstr "" -#: core/models.py:1733 +#: core/models.py:1824 msgid "This user has already asked for access to this document." msgstr "" -#: core/models.py:1790 +#: core/models.py:1881 #, python-brace-format msgid "{name} would like access to a document!" msgstr "" -#: core/models.py:1794 +#: core/models.py:1885 #, python-brace-format msgid "{name} would like access to the following document:" msgstr "" -#: core/models.py:1800 +#: core/models.py:1891 #, python-brace-format msgid "{name} is asking for access to the document: {title}" msgstr "" -#: core/models.py:1842 +#: core/models.py:1933 msgid "Thread" msgstr "" -#: core/models.py:1843 +#: core/models.py:1934 msgid "Threads" msgstr "" -#: core/models.py:1846 core/models.py:1899 +#: core/models.py:1937 core/models.py:1990 msgid "Anonymous" msgstr "" -#: core/models.py:1894 +#: core/models.py:1985 msgid "Comment" msgstr "" -#: core/models.py:1895 +#: core/models.py:1986 msgid "Comments" msgstr "" -#: core/models.py:1945 +#: core/models.py:2036 msgid "This emoji has already been reacted to this comment." msgstr "" -#: core/models.py:1949 +#: core/models.py:2040 msgid "Reaction" msgstr "" -#: core/models.py:1950 +#: core/models.py:2041 msgid "Reactions" msgstr "" -#: core/models.py:2001 +#: core/models.py:2092 msgid "Mention" msgstr "" -#: core/models.py:2002 +#: core/models.py:2093 msgid "Mentions" msgstr "" -#: core/models.py:2015 +#: core/models.py:2106 msgid "a deleted user" msgstr "" -#: core/models.py:2025 +#: core/models.py:2116 msgid "The thread does not belong to this document." msgstr "" -#: core/models.py:2089 +#: core/models.py:2180 #, python-brace-format msgid "{name} mentioned you in a comment in \"{title}\"" msgstr "" -#: core/models.py:2093 +#: core/models.py:2184 #, python-brace-format msgid "{name} mentioned you in a comment in the following document:" msgstr "" -#: core/models.py:2096 +#: core/models.py:2187 #, python-brace-format msgid "{name} mentioned you in \"{title}\"" msgstr "" -#: core/models.py:2099 +#: core/models.py:2190 #, python-brace-format msgid "{name} mentioned you in the following document:" msgstr "" -#: core/models.py:2125 +#: core/models.py:2216 msgid "email address" msgstr "" -#: core/models.py:2144 +#: core/models.py:2235 msgid "Document invitation" msgstr "" -#: core/models.py:2145 +#: core/models.py:2236 msgid "Document invitations" msgstr "" -#: core/models.py:2165 +#: core/models.py:2256 msgid "This email is already associated to a registered user." msgstr "" -#: core/models.py:2208 +#: core/models.py:2299 msgid "Migrated" msgstr "" -#: core/models.py:2209 +#: core/models.py:2300 msgid "Already migrated" msgstr "" -#: core/models.py:2210 +#: core/models.py:2301 msgid "Nothing in the object storage" msgstr "" -#: core/models.py:2211 +#: core/models.py:2302 msgid "No readable version" msgstr "" -#: core/models.py:2212 +#: core/models.py:2303 msgid "Failed" msgstr "" -#: core/models.py:2236 +#: core/models.py:2327 msgid "status" msgstr "" -#: core/models.py:2238 +#: core/models.py:2329 msgid "versions" msgstr "" -#: core/models.py:2241 +#: core/models.py:2332 msgid "applied" msgstr "" -#: core/models.py:2242 +#: core/models.py:2333 msgid "versions that added content, one activity entry each" msgstr "" -#: core/models.py:2246 +#: core/models.py:2337 msgid "skipped" msgstr "" -#: core/models.py:2247 +#: core/models.py:2338 msgid "versions that could not be read" msgstr "" -#: core/models.py:2251 +#: core/models.py:2342 msgid "dropped" msgstr "" -#: core/models.py:2252 +#: core/models.py:2343 msgid "versions older than the ones the server replays" msgstr "" -#: core/models.py:2254 +#: core/models.py:2345 msgid "duration" msgstr "" -#: core/models.py:2255 +#: core/models.py:2346 msgid "error" msgstr "" -#: core/models.py:2260 +#: core/models.py:2351 msgid "Document migration" msgstr "" -#: core/models.py:2261 +#: core/models.py:2352 msgid "Document migrations" msgstr "" @@ -634,7 +634,7 @@ msgstr "" msgid " Brought to you by %(brandname)s " msgstr "" -#: impress/settings.py:960 +#: impress/settings.py:974 msgid "Docs AI" msgstr "" diff --git a/src/backend/locale/ru_RU/LC_MESSAGES/django.po b/src/backend/locale/ru_RU/LC_MESSAGES/django.po index 99cf24d045..b24f44ea60 100644 --- a/src/backend/locale/ru_RU/LC_MESSAGES/django.po +++ b/src/backend/locale/ru_RU/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: lasuite-docs\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-30 13:00+0000\n" -"PO-Revision-Date: 2026-10-02 09:08\n" +"POT-Creation-Date: 2026-10-05 12:41+0000\n" +"PO-Revision-Date: 2026-10-05 14:54\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -78,12 +78,12 @@ msgstr "Это поле обязательное." msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration." msgstr "Доступ по ссылке '%(link_reach)s' запрещён в соответствии с настройками родительского документа." -#: core/api/viewsets.py:1434 +#: core/api/viewsets.py:1439 #, python-brace-format msgid "copy of {title}" msgstr "копия {title}" -#: core/api/viewsets.py:3334 +#: core/api/viewsets.py:3324 #, python-format msgid "A comment can have a maximum of %(max)d distinct reactions." msgstr "В комментариях может быть максимум %(max)d отдельных реакций." @@ -148,147 +148,147 @@ msgstr "Слева" msgid "Right" msgstr "Справа" -#: core/models.py:80 +#: core/models.py:82 msgid "id" msgstr "id" -#: core/models.py:81 +#: core/models.py:83 msgid "primary key for the record as UUID" msgstr "первичный ключ для записи как UUID" -#: core/models.py:87 +#: core/models.py:89 msgid "created on" msgstr "создано" -#: core/models.py:88 +#: core/models.py:90 msgid "date and time at which a record was created" msgstr "дата и время создания записи" -#: core/models.py:93 core/models.py:2256 +#: core/models.py:95 core/models.py:2347 msgid "updated on" msgstr "обновлено" -#: core/models.py:94 +#: core/models.py:96 msgid "date and time at which a record was last updated" msgstr "дата и время последнего обновления записи" -#: core/models.py:130 +#: core/models.py:132 msgid "We couldn't find a user with this sub but the email is already associated with a registered user." msgstr "Мы не смогли найти пользователя с этими данными, но этот адрес уже связан с зарегистрированным пользователем." -#: core/models.py:141 +#: core/models.py:143 msgid "sub" msgstr "вложение" -#: core/models.py:142 +#: core/models.py:144 msgid "Required. 255 characters or fewer. ASCII characters only." msgstr "Обязательно. 255 символов или меньше. Только ASCII символы." -#: core/models.py:150 +#: core/models.py:152 msgid "full name" msgstr "полное имя" -#: core/models.py:152 +#: core/models.py:154 msgid "short name" msgstr "короткое имя" -#: core/models.py:155 +#: core/models.py:157 msgid "identity email address" msgstr "личный адрес электронной почты" -#: core/models.py:160 +#: core/models.py:162 msgid "admin email address" msgstr "e-mail администратора" -#: core/models.py:167 +#: core/models.py:169 msgid "language" msgstr "язык" -#: core/models.py:168 +#: core/models.py:170 msgid "The language in which the user wants to see the interface." msgstr "Язык, на котором пользователь хочет видеть интерфейс." -#: core/models.py:176 +#: core/models.py:178 msgid "The timezone in which the user wants to see times." msgstr "Часовой пояс, в котором пользователь хочет видеть время." -#: core/models.py:179 +#: core/models.py:181 msgid "device" msgstr "устройство" -#: core/models.py:181 +#: core/models.py:183 msgid "Whether the user is a device or a real user." msgstr "Пользователь является устройством или человеком." -#: core/models.py:184 +#: core/models.py:186 msgid "staff status" msgstr "статус сотрудника" -#: core/models.py:186 +#: core/models.py:188 msgid "Whether the user can log into this admin site." msgstr "Может ли пользователь войти на этот административный сайт." -#: core/models.py:189 +#: core/models.py:191 msgid "active" msgstr "активный" -#: core/models.py:192 +#: core/models.py:194 msgid "Whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "Должен ли пользователь рассматриваться как активный. Альтернатива удалению учётных записей." -#: core/models.py:197 +#: core/models.py:199 msgid "first connection status" msgstr "состояние первого подключения" -#: core/models.py:199 +#: core/models.py:201 msgid "Whether the user has completed the first connection process." msgstr "Завершил ли пользователь процесс первого соединения." -#: core/models.py:209 +#: core/models.py:211 msgid "user" msgstr "пользователь" -#: core/models.py:210 +#: core/models.py:212 msgid "users" msgstr "пользователи" -#: core/models.py:439 +#: core/models.py:469 msgid "Active email address" msgstr "Активный адрес электронной почты" -#: core/models.py:440 +#: core/models.py:470 msgid "Email address to deactivate" msgstr "Адрес электронной почты для деактивации" -#: core/models.py:467 +#: core/models.py:497 msgid "Unique ID in the source file" msgstr "Уникальный идентификатор в исходном файле" -#: core/models.py:473 core/models.py:771 +#: core/models.py:503 core/models.py:812 msgid "Pending" msgstr "В обработке" -#: core/models.py:474 +#: core/models.py:504 msgid "Ready" msgstr "Готово" -#: core/models.py:475 core/models.py:773 +#: core/models.py:505 core/models.py:814 msgid "Done" msgstr "Выполнено" -#: core/models.py:476 core/models.py:774 +#: core/models.py:506 core/models.py:815 msgid "Error" msgstr "Ошибка" -#: core/models.py:484 +#: core/models.py:514 msgid "user reconciliation" msgstr "сверка данных пользователя" -#: core/models.py:485 +#: core/models.py:515 msgid "user reconciliations" msgstr "сверки данных пользователя" -#: core/models.py:723 +#: core/models.py:764 msgid "You have requested a reconciliation of your user accounts on Docs.\n" " To confirm that you are the one who initiated the request\n" " and that this email belongs to you:" @@ -296,53 +296,53 @@ msgstr "Вы запросили сверку учётных записей по " Чтобы подтвердить факт того, что вы являетесь инициатором запроса\n" " и что этот адрес принадлежит вам:" -#: core/models.py:729 +#: core/models.py:770 msgid "Confirm by clicking the link to start the reconciliation" msgstr "Чтобы начать сверку, подтвердите это, нажав на ссылку" -#: core/models.py:734 core/models.py:840 +#: core/models.py:775 core/models.py:881 msgid "Click here" msgstr "Нажмите здесь" -#: core/models.py:735 +#: core/models.py:776 msgid "Confirm" msgstr "Подтверждение" -#: core/models.py:746 +#: core/models.py:787 msgid "Your reconciliation request has been processed.\n" " New documents are likely associated with your account:" msgstr "Ваш запрос на сверку был обработан.\n" " Новые документы, вероятно, связаны с вашей учётной записью:" -#: core/models.py:751 +#: core/models.py:792 msgid "Your accounts have been merged" msgstr "Ваши учётные записи были объединены" -#: core/models.py:756 +#: core/models.py:797 msgid "Click here to see" msgstr "Нажмите здесь, чтобы просмотреть" -#: core/models.py:757 +#: core/models.py:798 msgid "See my documents" msgstr "Просмотреть мои документы" -#: core/models.py:767 +#: core/models.py:808 msgid "CSV file" msgstr "CSV-файл" -#: core/models.py:772 +#: core/models.py:813 msgid "Running" msgstr "Выполнение" -#: core/models.py:782 +#: core/models.py:823 msgid "user reconciliation CSV import" msgstr "импорт из CSV сверки пользователей" -#: core/models.py:783 +#: core/models.py:824 msgid "user reconciliation CSV imports" msgstr "импорты из CSV сверки пользователями" -#: core/models.py:827 +#: core/models.py:868 #, python-brace-format msgid "Your request for reconciliation was unsuccessful.\n" " Reconciliation failed for the following email addresses:\n" @@ -355,273 +355,273 @@ msgstr "Ваш запрос на сверку не удался.\n" " Пожалуйста, проверьте, нет ли в них опечаток.\n" " Вы можете отправить ещё один запрос с действительными адресами электронной почты." -#: core/models.py:835 +#: core/models.py:876 msgid "Reconciliation of your Docs accounts not completed" msgstr "Сверка ваших учётных записей Docs не завершена" -#: core/models.py:841 +#: core/models.py:882 msgid "Make a new request" msgstr "Создать новый запрос" -#: core/models.py:956 +#: core/models.py:997 msgid "title" msgstr "заголовок" -#: core/models.py:957 +#: core/models.py:998 msgid "excerpt" msgstr "отрывок" -#: core/models.py:1004 +#: core/models.py:1045 msgid "Document" msgstr "Документ" -#: core/models.py:1005 +#: core/models.py:1046 msgid "Documents" msgstr "Документы" -#: core/models.py:1022 core/models.py:1351 core/models.py:2087 +#: core/models.py:1063 core/models.py:1442 core/models.py:2178 msgid "Untitled Document" msgstr "Безымянный документ" -#: core/models.py:1352 +#: core/models.py:1443 msgid "Open" msgstr "Открыть" -#: core/models.py:1387 +#: core/models.py:1478 #, python-brace-format msgid "{name} shared a document with you!" msgstr "{name} делится с вами документом!" -#: core/models.py:1391 +#: core/models.py:1482 #, python-brace-format msgid "{name} invited you with the role \"{role}\" on the following document:" msgstr "{name} приглашает вас присоединиться к следующему документу с ролью \"{role}\":" -#: core/models.py:1397 +#: core/models.py:1488 #, python-brace-format msgid "{name} shared a document with you: {title}" msgstr "{name} делится с вами документом: {title}" -#: core/models.py:1497 +#: core/models.py:1588 msgid "Document/user link trace" msgstr "Трассировка связи документ/пользователь" -#: core/models.py:1498 +#: core/models.py:1589 msgid "Document/user link traces" msgstr "Трассировка связей документ/пользователь" -#: core/models.py:1504 +#: core/models.py:1595 msgid "A link trace already exists for this document/user." msgstr "Для этого документа/пользователя уже существует трассировка ссылки." -#: core/models.py:1527 +#: core/models.py:1618 msgid "Document favorite" msgstr "Избранный документ" -#: core/models.py:1528 +#: core/models.py:1619 msgid "Document favorites" msgstr "Избранные документы" -#: core/models.py:1534 +#: core/models.py:1625 msgid "This document is already targeted by a favorite relation instance for the same user." msgstr "Этот документ уже помечен как избранный для этого пользователя." -#: core/models.py:1556 +#: core/models.py:1647 msgid "Document/user relation" msgstr "Отношение документ/пользователь" -#: core/models.py:1557 +#: core/models.py:1648 msgid "Document/user relations" msgstr "Отношения документ/пользователь" -#: core/models.py:1563 +#: core/models.py:1654 msgid "This user is already in this document." msgstr "Этот пользователь уже имеет доступ к этому документу." -#: core/models.py:1569 +#: core/models.py:1660 msgid "This team is already in this document." msgstr "Эта команда уже имеет доступ к этому документу." -#: core/models.py:1575 +#: core/models.py:1666 msgid "Either user or team must be set, not both." msgstr "Может быть выбран либо пользователь, либо команда, но не оба варианта сразу." -#: core/models.py:1726 +#: core/models.py:1817 msgid "Document ask for access" msgstr "Документ запрашивает доступ" -#: core/models.py:1727 +#: core/models.py:1818 msgid "Document ask for accesses" msgstr "Документ запрашивает доступы" -#: core/models.py:1733 +#: core/models.py:1824 msgid "This user has already asked for access to this document." msgstr "Этот пользователь уже запросил доступ к этому документу." -#: core/models.py:1790 +#: core/models.py:1881 #, python-brace-format msgid "{name} would like access to a document!" msgstr "{name} хочет получить доступ к документу!" -#: core/models.py:1794 +#: core/models.py:1885 #, python-brace-format msgid "{name} would like access to the following document:" msgstr "{name} хочет получить доступ к следующему документу:" -#: core/models.py:1800 +#: core/models.py:1891 #, python-brace-format msgid "{name} is asking for access to the document: {title}" msgstr "{name} запрашивает доступ к документу: {title}" -#: core/models.py:1842 +#: core/models.py:1933 msgid "Thread" msgstr "Обсуждение" -#: core/models.py:1843 +#: core/models.py:1934 msgid "Threads" msgstr "Обсуждения" -#: core/models.py:1846 core/models.py:1899 +#: core/models.py:1937 core/models.py:1990 msgid "Anonymous" msgstr "Аноним" -#: core/models.py:1894 +#: core/models.py:1985 msgid "Comment" msgstr "Комментарий" -#: core/models.py:1895 +#: core/models.py:1986 msgid "Comments" msgstr "Комментарии" -#: core/models.py:1945 +#: core/models.py:2036 msgid "This emoji has already been reacted to this comment." msgstr "Этот эмодзи уже использован в этом комментарии." -#: core/models.py:1949 +#: core/models.py:2040 msgid "Reaction" msgstr "Реакция" -#: core/models.py:1950 +#: core/models.py:2041 msgid "Reactions" msgstr "Реакции" -#: core/models.py:2001 +#: core/models.py:2092 msgid "Mention" msgstr "Упоминание" -#: core/models.py:2002 +#: core/models.py:2093 msgid "Mentions" msgstr "Упоминания" -#: core/models.py:2015 +#: core/models.py:2106 msgid "a deleted user" msgstr "удалённый пользователь" -#: core/models.py:2025 +#: core/models.py:2116 msgid "The thread does not belong to this document." msgstr "Это обсуждение не принадлежит этому документу." -#: core/models.py:2089 +#: core/models.py:2180 #, python-brace-format msgid "{name} mentioned you in a comment in \"{title}\"" msgstr "{name} упоминает вас в комментарии к \"{title}\"" -#: core/models.py:2093 +#: core/models.py:2184 #, python-brace-format msgid "{name} mentioned you in a comment in the following document:" msgstr "{name} упоминает вас в комментарии в следующем документе:" -#: core/models.py:2096 +#: core/models.py:2187 #, python-brace-format msgid "{name} mentioned you in \"{title}\"" msgstr "{name} упоминает вас в \"{title}\"" -#: core/models.py:2099 +#: core/models.py:2190 #, python-brace-format msgid "{name} mentioned you in the following document:" msgstr "{name} упоминает вас в следующем документе:" -#: core/models.py:2125 +#: core/models.py:2216 msgid "email address" msgstr "адрес электронной почты" -#: core/models.py:2144 +#: core/models.py:2235 msgid "Document invitation" msgstr "Приглашение для документа" -#: core/models.py:2145 +#: core/models.py:2236 msgid "Document invitations" msgstr "Приглашения для документов" -#: core/models.py:2165 +#: core/models.py:2256 msgid "This email is already associated to a registered user." msgstr "Этот адрес уже связан с зарегистрированным пользователем." -#: core/models.py:2208 +#: core/models.py:2299 msgid "Migrated" msgstr "Перенесено" -#: core/models.py:2209 +#: core/models.py:2300 msgid "Already migrated" msgstr "Уже перенесено" -#: core/models.py:2210 +#: core/models.py:2301 msgid "Nothing in the object storage" msgstr "В хранилище объектов ничего не найдено" -#: core/models.py:2211 +#: core/models.py:2302 msgid "No readable version" msgstr "Нет читаемой версии" -#: core/models.py:2212 +#: core/models.py:2303 msgid "Failed" msgstr "Неудачно" -#: core/models.py:2236 +#: core/models.py:2327 msgid "status" msgstr "состояние" -#: core/models.py:2238 +#: core/models.py:2329 msgid "versions" msgstr "версии" -#: core/models.py:2241 +#: core/models.py:2332 msgid "applied" msgstr "применено" -#: core/models.py:2242 +#: core/models.py:2333 msgid "versions that added content, one activity entry each" msgstr "версии, добавляющие содержимое, по одной записи активности" -#: core/models.py:2246 +#: core/models.py:2337 msgid "skipped" msgstr "пропущено" -#: core/models.py:2247 +#: core/models.py:2338 msgid "versions that could not be read" msgstr "версии, которые не могут быть прочитаны" -#: core/models.py:2251 +#: core/models.py:2342 msgid "dropped" msgstr "выброшено" -#: core/models.py:2252 +#: core/models.py:2343 msgid "versions older than the ones the server replays" msgstr "версии, старше тех версий, которые воспроизводит сервер" -#: core/models.py:2254 +#: core/models.py:2345 msgid "duration" msgstr "длительность" -#: core/models.py:2255 +#: core/models.py:2346 msgid "error" msgstr "ошибка" -#: core/models.py:2260 +#: core/models.py:2351 msgid "Document migration" msgstr "Перенос документа" -#: core/models.py:2261 +#: core/models.py:2352 msgid "Document migrations" msgstr "Перенос документов" @@ -641,7 +641,7 @@ msgstr " Docs, ваш новый инструмент для организац msgid " Brought to you by %(brandname)s " msgstr " Доступ получен от %(brandname)s " -#: impress/settings.py:960 +#: impress/settings.py:974 msgid "Docs AI" msgstr "Docs ИИ" diff --git a/src/backend/locale/sl_SI/LC_MESSAGES/django.po b/src/backend/locale/sl_SI/LC_MESSAGES/django.po index 5981118fe6..60e4fc8ea9 100644 --- a/src/backend/locale/sl_SI/LC_MESSAGES/django.po +++ b/src/backend/locale/sl_SI/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: lasuite-docs\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-30 13:00+0000\n" -"PO-Revision-Date: 2026-10-02 09:08\n" +"POT-Creation-Date: 2026-10-05 12:41+0000\n" +"PO-Revision-Date: 2026-10-05 14:54\n" "Last-Translator: \n" "Language-Team: Slovenian\n" "Language: sl_SI\n" @@ -78,12 +78,12 @@ msgstr "" msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration." msgstr "" -#: core/api/viewsets.py:1434 +#: core/api/viewsets.py:1439 #, python-brace-format msgid "copy of {title}" msgstr "" -#: core/api/viewsets.py:3334 +#: core/api/viewsets.py:3324 #, python-format msgid "A comment can have a maximum of %(max)d distinct reactions." msgstr "" @@ -148,198 +148,198 @@ msgstr "Levo" msgid "Right" msgstr "Desno" -#: core/models.py:80 +#: core/models.py:82 msgid "id" msgstr "" -#: core/models.py:81 +#: core/models.py:83 msgid "primary key for the record as UUID" msgstr "primarni ključ za zapis kot UUID" -#: core/models.py:87 +#: core/models.py:89 msgid "created on" msgstr "ustvarjen na" -#: core/models.py:88 +#: core/models.py:90 msgid "date and time at which a record was created" msgstr "datum in čas, ko je bil zapis ustvarjen" -#: core/models.py:93 core/models.py:2256 +#: core/models.py:95 core/models.py:2347 msgid "updated on" msgstr "posodobljeno dne" -#: core/models.py:94 +#: core/models.py:96 msgid "date and time at which a record was last updated" msgstr "datum in čas, ko je bil zapis nazadnje posodobljen" -#: core/models.py:130 +#: core/models.py:132 msgid "We couldn't find a user with this sub but the email is already associated with a registered user." msgstr "Nismo mogli najti uporabnika s tem sub, vendar je e-poštni naslov že povezan z registriranim uporabnikom." -#: core/models.py:141 +#: core/models.py:143 msgid "sub" msgstr "" -#: core/models.py:142 +#: core/models.py:144 msgid "Required. 255 characters or fewer. ASCII characters only." msgstr "" -#: core/models.py:150 +#: core/models.py:152 msgid "full name" msgstr "polno ime" -#: core/models.py:152 +#: core/models.py:154 msgid "short name" msgstr "kratko ime" -#: core/models.py:155 +#: core/models.py:157 msgid "identity email address" msgstr "elektronski naslov identitete" -#: core/models.py:160 +#: core/models.py:162 msgid "admin email address" msgstr "elektronski naslov skrbnika" -#: core/models.py:167 +#: core/models.py:169 msgid "language" msgstr "jezik" -#: core/models.py:168 +#: core/models.py:170 msgid "The language in which the user wants to see the interface." msgstr "Jezik, v katerem uporabnik želi videti vmesnik." -#: core/models.py:176 +#: core/models.py:178 msgid "The timezone in which the user wants to see times." msgstr "Časovni pas, v katerem želi uporabnik videti uro." -#: core/models.py:179 +#: core/models.py:181 msgid "device" msgstr "naprava" -#: core/models.py:181 +#: core/models.py:183 msgid "Whether the user is a device or a real user." msgstr "Ali je uporabnik naprava ali pravi uporabnik." -#: core/models.py:184 +#: core/models.py:186 msgid "staff status" msgstr "kadrovski status" -#: core/models.py:186 +#: core/models.py:188 msgid "Whether the user can log into this admin site." msgstr "Ali se uporabnik lahko prijavi na to skrbniško mesto." -#: core/models.py:189 +#: core/models.py:191 msgid "active" msgstr "aktivni" -#: core/models.py:192 +#: core/models.py:194 msgid "Whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "Ali je treba tega uporabnika obravnavati kot aktivnega. Namesto brisanja računov počistite to izbiro." -#: core/models.py:197 +#: core/models.py:199 msgid "first connection status" msgstr "" -#: core/models.py:199 +#: core/models.py:201 msgid "Whether the user has completed the first connection process." msgstr "" -#: core/models.py:209 +#: core/models.py:211 msgid "user" msgstr "uporabnik" -#: core/models.py:210 +#: core/models.py:212 msgid "users" msgstr "uporabniki" -#: core/models.py:439 +#: core/models.py:469 msgid "Active email address" msgstr "" -#: core/models.py:440 +#: core/models.py:470 msgid "Email address to deactivate" msgstr "" -#: core/models.py:467 +#: core/models.py:497 msgid "Unique ID in the source file" msgstr "" -#: core/models.py:473 core/models.py:771 +#: core/models.py:503 core/models.py:812 msgid "Pending" msgstr "" -#: core/models.py:474 +#: core/models.py:504 msgid "Ready" msgstr "" -#: core/models.py:475 core/models.py:773 +#: core/models.py:505 core/models.py:814 msgid "Done" msgstr "" -#: core/models.py:476 core/models.py:774 +#: core/models.py:506 core/models.py:815 msgid "Error" msgstr "" -#: core/models.py:484 +#: core/models.py:514 msgid "user reconciliation" msgstr "" -#: core/models.py:485 +#: core/models.py:515 msgid "user reconciliations" msgstr "" -#: core/models.py:723 +#: core/models.py:764 msgid "You have requested a reconciliation of your user accounts on Docs.\n" " To confirm that you are the one who initiated the request\n" " and that this email belongs to you:" msgstr "" -#: core/models.py:729 +#: core/models.py:770 msgid "Confirm by clicking the link to start the reconciliation" msgstr "" -#: core/models.py:734 core/models.py:840 +#: core/models.py:775 core/models.py:881 msgid "Click here" msgstr "" -#: core/models.py:735 +#: core/models.py:776 msgid "Confirm" msgstr "" -#: core/models.py:746 +#: core/models.py:787 msgid "Your reconciliation request has been processed.\n" " New documents are likely associated with your account:" msgstr "" -#: core/models.py:751 +#: core/models.py:792 msgid "Your accounts have been merged" msgstr "" -#: core/models.py:756 +#: core/models.py:797 msgid "Click here to see" msgstr "" -#: core/models.py:757 +#: core/models.py:798 msgid "See my documents" msgstr "" -#: core/models.py:767 +#: core/models.py:808 msgid "CSV file" msgstr "" -#: core/models.py:772 +#: core/models.py:813 msgid "Running" msgstr "" -#: core/models.py:782 +#: core/models.py:823 msgid "user reconciliation CSV import" msgstr "" -#: core/models.py:783 +#: core/models.py:824 msgid "user reconciliation CSV imports" msgstr "" -#: core/models.py:827 +#: core/models.py:868 #, python-brace-format msgid "Your request for reconciliation was unsuccessful.\n" " Reconciliation failed for the following email addresses:\n" @@ -348,273 +348,273 @@ msgid "Your request for reconciliation was unsuccessful.\n" " You can submit another request with the valid email addresses." msgstr "" -#: core/models.py:835 +#: core/models.py:876 msgid "Reconciliation of your Docs accounts not completed" msgstr "" -#: core/models.py:841 +#: core/models.py:882 msgid "Make a new request" msgstr "" -#: core/models.py:956 +#: core/models.py:997 msgid "title" msgstr "naslov" -#: core/models.py:957 +#: core/models.py:998 msgid "excerpt" msgstr "odlomek" -#: core/models.py:1004 +#: core/models.py:1045 msgid "Document" msgstr "Dokument" -#: core/models.py:1005 +#: core/models.py:1046 msgid "Documents" msgstr "Dokumenti" -#: core/models.py:1022 core/models.py:1351 core/models.py:2087 +#: core/models.py:1063 core/models.py:1442 core/models.py:2178 msgid "Untitled Document" msgstr "Dokument brez naslova" -#: core/models.py:1352 +#: core/models.py:1443 msgid "Open" msgstr "Odpri" -#: core/models.py:1387 +#: core/models.py:1478 #, python-brace-format msgid "{name} shared a document with you!" msgstr "{name} je delil dokument z vami!" -#: core/models.py:1391 +#: core/models.py:1482 #, python-brace-format msgid "{name} invited you with the role \"{role}\" on the following document:" msgstr "{name} vas je povabil z vlogo \"{role}\" na naslednjem dokumentu:" -#: core/models.py:1397 +#: core/models.py:1488 #, python-brace-format msgid "{name} shared a document with you: {title}" msgstr "{name} je delil dokument z vami: {title}" -#: core/models.py:1497 +#: core/models.py:1588 msgid "Document/user link trace" msgstr "Dokument/sled povezave uporabnika" -#: core/models.py:1498 +#: core/models.py:1589 msgid "Document/user link traces" msgstr "Sledi povezav dokumenta/uporabnika" -#: core/models.py:1504 +#: core/models.py:1595 msgid "A link trace already exists for this document/user." msgstr "Za ta dokument/uporabnika že obstaja sled povezave." -#: core/models.py:1527 +#: core/models.py:1618 msgid "Document favorite" msgstr "Priljubljeni dokument" -#: core/models.py:1528 +#: core/models.py:1619 msgid "Document favorites" msgstr "Priljubljeni dokumenti" -#: core/models.py:1534 +#: core/models.py:1625 msgid "This document is already targeted by a favorite relation instance for the same user." msgstr "Ta dokument je že ciljno usmerjen s priljubljenim primerkom relacije za istega uporabnika." -#: core/models.py:1556 +#: core/models.py:1647 msgid "Document/user relation" msgstr "Odnos dokument/uporabnik" -#: core/models.py:1557 +#: core/models.py:1648 msgid "Document/user relations" msgstr "Odnosi dokument/uporabnik" -#: core/models.py:1563 +#: core/models.py:1654 msgid "This user is already in this document." msgstr "Ta uporabnik je že v tem dokumentu." -#: core/models.py:1569 +#: core/models.py:1660 msgid "This team is already in this document." msgstr "Ta ekipa je že v tem dokumentu." -#: core/models.py:1575 +#: core/models.py:1666 msgid "Either user or team must be set, not both." msgstr "Nastaviti je treba bodisi uporabnika ali ekipo, a ne obojega." -#: core/models.py:1726 +#: core/models.py:1817 msgid "Document ask for access" msgstr "" -#: core/models.py:1727 +#: core/models.py:1818 msgid "Document ask for accesses" msgstr "" -#: core/models.py:1733 +#: core/models.py:1824 msgid "This user has already asked for access to this document." msgstr "" -#: core/models.py:1790 +#: core/models.py:1881 #, python-brace-format msgid "{name} would like access to a document!" msgstr "" -#: core/models.py:1794 +#: core/models.py:1885 #, python-brace-format msgid "{name} would like access to the following document:" msgstr "" -#: core/models.py:1800 +#: core/models.py:1891 #, python-brace-format msgid "{name} is asking for access to the document: {title}" msgstr "" -#: core/models.py:1842 +#: core/models.py:1933 msgid "Thread" msgstr "" -#: core/models.py:1843 +#: core/models.py:1934 msgid "Threads" msgstr "" -#: core/models.py:1846 core/models.py:1899 +#: core/models.py:1937 core/models.py:1990 msgid "Anonymous" msgstr "" -#: core/models.py:1894 +#: core/models.py:1985 msgid "Comment" msgstr "" -#: core/models.py:1895 +#: core/models.py:1986 msgid "Comments" msgstr "" -#: core/models.py:1945 +#: core/models.py:2036 msgid "This emoji has already been reacted to this comment." msgstr "" -#: core/models.py:1949 +#: core/models.py:2040 msgid "Reaction" msgstr "" -#: core/models.py:1950 +#: core/models.py:2041 msgid "Reactions" msgstr "" -#: core/models.py:2001 +#: core/models.py:2092 msgid "Mention" msgstr "" -#: core/models.py:2002 +#: core/models.py:2093 msgid "Mentions" msgstr "" -#: core/models.py:2015 +#: core/models.py:2106 msgid "a deleted user" msgstr "" -#: core/models.py:2025 +#: core/models.py:2116 msgid "The thread does not belong to this document." msgstr "" -#: core/models.py:2089 +#: core/models.py:2180 #, python-brace-format msgid "{name} mentioned you in a comment in \"{title}\"" msgstr "" -#: core/models.py:2093 +#: core/models.py:2184 #, python-brace-format msgid "{name} mentioned you in a comment in the following document:" msgstr "" -#: core/models.py:2096 +#: core/models.py:2187 #, python-brace-format msgid "{name} mentioned you in \"{title}\"" msgstr "" -#: core/models.py:2099 +#: core/models.py:2190 #, python-brace-format msgid "{name} mentioned you in the following document:" msgstr "" -#: core/models.py:2125 +#: core/models.py:2216 msgid "email address" msgstr "elektronski naslov" -#: core/models.py:2144 +#: core/models.py:2235 msgid "Document invitation" msgstr "Vabilo na dokument" -#: core/models.py:2145 +#: core/models.py:2236 msgid "Document invitations" msgstr "Vabila na dokument" -#: core/models.py:2165 +#: core/models.py:2256 msgid "This email is already associated to a registered user." msgstr "Ta e-poštni naslov je že povezan z registriranim uporabnikom." -#: core/models.py:2208 +#: core/models.py:2299 msgid "Migrated" msgstr "" -#: core/models.py:2209 +#: core/models.py:2300 msgid "Already migrated" msgstr "" -#: core/models.py:2210 +#: core/models.py:2301 msgid "Nothing in the object storage" msgstr "" -#: core/models.py:2211 +#: core/models.py:2302 msgid "No readable version" msgstr "" -#: core/models.py:2212 +#: core/models.py:2303 msgid "Failed" msgstr "" -#: core/models.py:2236 +#: core/models.py:2327 msgid "status" msgstr "" -#: core/models.py:2238 +#: core/models.py:2329 msgid "versions" msgstr "" -#: core/models.py:2241 +#: core/models.py:2332 msgid "applied" msgstr "" -#: core/models.py:2242 +#: core/models.py:2333 msgid "versions that added content, one activity entry each" msgstr "" -#: core/models.py:2246 +#: core/models.py:2337 msgid "skipped" msgstr "" -#: core/models.py:2247 +#: core/models.py:2338 msgid "versions that could not be read" msgstr "" -#: core/models.py:2251 +#: core/models.py:2342 msgid "dropped" msgstr "" -#: core/models.py:2252 +#: core/models.py:2343 msgid "versions older than the ones the server replays" msgstr "" -#: core/models.py:2254 +#: core/models.py:2345 msgid "duration" msgstr "" -#: core/models.py:2255 +#: core/models.py:2346 msgid "error" msgstr "" -#: core/models.py:2260 +#: core/models.py:2351 msgid "Document migration" msgstr "" -#: core/models.py:2261 +#: core/models.py:2352 msgid "Document migrations" msgstr "" @@ -634,7 +634,7 @@ msgstr " Dokumenti, vaše novo bistveno orodje za organiziranje, skupno rabo in msgid " Brought to you by %(brandname)s " msgstr " Pod okriljem %(brandname)s " -#: impress/settings.py:960 +#: impress/settings.py:974 msgid "Docs AI" msgstr "" diff --git a/src/backend/locale/sv_SE/LC_MESSAGES/django.po b/src/backend/locale/sv_SE/LC_MESSAGES/django.po index debc6da809..1e27ff9d45 100644 --- a/src/backend/locale/sv_SE/LC_MESSAGES/django.po +++ b/src/backend/locale/sv_SE/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: lasuite-docs\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-30 13:00+0000\n" -"PO-Revision-Date: 2026-10-02 09:08\n" +"POT-Creation-Date: 2026-10-05 12:41+0000\n" +"PO-Revision-Date: 2026-10-05 14:54\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Language: sv_SE\n" @@ -78,12 +78,12 @@ msgstr "" msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration." msgstr "" -#: core/api/viewsets.py:1434 +#: core/api/viewsets.py:1439 #, python-brace-format msgid "copy of {title}" msgstr "" -#: core/api/viewsets.py:3334 +#: core/api/viewsets.py:3324 #, python-format msgid "A comment can have a maximum of %(max)d distinct reactions." msgstr "" @@ -148,198 +148,198 @@ msgstr "" msgid "Right" msgstr "" -#: core/models.py:80 +#: core/models.py:82 msgid "id" msgstr "" -#: core/models.py:81 +#: core/models.py:83 msgid "primary key for the record as UUID" msgstr "" -#: core/models.py:87 +#: core/models.py:89 msgid "created on" msgstr "" -#: core/models.py:88 +#: core/models.py:90 msgid "date and time at which a record was created" msgstr "" -#: core/models.py:93 core/models.py:2256 +#: core/models.py:95 core/models.py:2347 msgid "updated on" msgstr "" -#: core/models.py:94 +#: core/models.py:96 msgid "date and time at which a record was last updated" msgstr "" -#: core/models.py:130 +#: core/models.py:132 msgid "We couldn't find a user with this sub but the email is already associated with a registered user." msgstr "" -#: core/models.py:141 +#: core/models.py:143 msgid "sub" msgstr "" -#: core/models.py:142 +#: core/models.py:144 msgid "Required. 255 characters or fewer. ASCII characters only." msgstr "" -#: core/models.py:150 +#: core/models.py:152 msgid "full name" msgstr "" -#: core/models.py:152 +#: core/models.py:154 msgid "short name" msgstr "" -#: core/models.py:155 +#: core/models.py:157 msgid "identity email address" msgstr "" -#: core/models.py:160 +#: core/models.py:162 msgid "admin email address" msgstr "" -#: core/models.py:167 +#: core/models.py:169 msgid "language" msgstr "" -#: core/models.py:168 +#: core/models.py:170 msgid "The language in which the user wants to see the interface." msgstr "" -#: core/models.py:176 +#: core/models.py:178 msgid "The timezone in which the user wants to see times." msgstr "" -#: core/models.py:179 +#: core/models.py:181 msgid "device" msgstr "" -#: core/models.py:181 +#: core/models.py:183 msgid "Whether the user is a device or a real user." msgstr "" -#: core/models.py:184 +#: core/models.py:186 msgid "staff status" msgstr "" -#: core/models.py:186 +#: core/models.py:188 msgid "Whether the user can log into this admin site." msgstr "" -#: core/models.py:189 +#: core/models.py:191 msgid "active" msgstr "aktiv" -#: core/models.py:192 +#: core/models.py:194 msgid "Whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: core/models.py:197 +#: core/models.py:199 msgid "first connection status" msgstr "" -#: core/models.py:199 +#: core/models.py:201 msgid "Whether the user has completed the first connection process." msgstr "" -#: core/models.py:209 +#: core/models.py:211 msgid "user" msgstr "" -#: core/models.py:210 +#: core/models.py:212 msgid "users" msgstr "" -#: core/models.py:439 +#: core/models.py:469 msgid "Active email address" msgstr "" -#: core/models.py:440 +#: core/models.py:470 msgid "Email address to deactivate" msgstr "" -#: core/models.py:467 +#: core/models.py:497 msgid "Unique ID in the source file" msgstr "" -#: core/models.py:473 core/models.py:771 +#: core/models.py:503 core/models.py:812 msgid "Pending" msgstr "" -#: core/models.py:474 +#: core/models.py:504 msgid "Ready" msgstr "" -#: core/models.py:475 core/models.py:773 +#: core/models.py:505 core/models.py:814 msgid "Done" msgstr "" -#: core/models.py:476 core/models.py:774 +#: core/models.py:506 core/models.py:815 msgid "Error" msgstr "" -#: core/models.py:484 +#: core/models.py:514 msgid "user reconciliation" msgstr "" -#: core/models.py:485 +#: core/models.py:515 msgid "user reconciliations" msgstr "" -#: core/models.py:723 +#: core/models.py:764 msgid "You have requested a reconciliation of your user accounts on Docs.\n" " To confirm that you are the one who initiated the request\n" " and that this email belongs to you:" msgstr "" -#: core/models.py:729 +#: core/models.py:770 msgid "Confirm by clicking the link to start the reconciliation" msgstr "" -#: core/models.py:734 core/models.py:840 +#: core/models.py:775 core/models.py:881 msgid "Click here" msgstr "" -#: core/models.py:735 +#: core/models.py:776 msgid "Confirm" msgstr "" -#: core/models.py:746 +#: core/models.py:787 msgid "Your reconciliation request has been processed.\n" " New documents are likely associated with your account:" msgstr "" -#: core/models.py:751 +#: core/models.py:792 msgid "Your accounts have been merged" msgstr "" -#: core/models.py:756 +#: core/models.py:797 msgid "Click here to see" msgstr "" -#: core/models.py:757 +#: core/models.py:798 msgid "See my documents" msgstr "" -#: core/models.py:767 +#: core/models.py:808 msgid "CSV file" msgstr "" -#: core/models.py:772 +#: core/models.py:813 msgid "Running" msgstr "" -#: core/models.py:782 +#: core/models.py:823 msgid "user reconciliation CSV import" msgstr "" -#: core/models.py:783 +#: core/models.py:824 msgid "user reconciliation CSV imports" msgstr "" -#: core/models.py:827 +#: core/models.py:868 #, python-brace-format msgid "Your request for reconciliation was unsuccessful.\n" " Reconciliation failed for the following email addresses:\n" @@ -348,273 +348,273 @@ msgid "Your request for reconciliation was unsuccessful.\n" " You can submit another request with the valid email addresses." msgstr "" -#: core/models.py:835 +#: core/models.py:876 msgid "Reconciliation of your Docs accounts not completed" msgstr "" -#: core/models.py:841 +#: core/models.py:882 msgid "Make a new request" msgstr "" -#: core/models.py:956 +#: core/models.py:997 msgid "title" msgstr "" -#: core/models.py:957 +#: core/models.py:998 msgid "excerpt" msgstr "" -#: core/models.py:1004 +#: core/models.py:1045 msgid "Document" msgstr "" -#: core/models.py:1005 +#: core/models.py:1046 msgid "Documents" msgstr "" -#: core/models.py:1022 core/models.py:1351 core/models.py:2087 +#: core/models.py:1063 core/models.py:1442 core/models.py:2178 msgid "Untitled Document" msgstr "" -#: core/models.py:1352 +#: core/models.py:1443 msgid "Open" msgstr "Öppna" -#: core/models.py:1387 +#: core/models.py:1478 #, python-brace-format msgid "{name} shared a document with you!" msgstr "" -#: core/models.py:1391 +#: core/models.py:1482 #, python-brace-format msgid "{name} invited you with the role \"{role}\" on the following document:" msgstr "" -#: core/models.py:1397 +#: core/models.py:1488 #, python-brace-format msgid "{name} shared a document with you: {title}" msgstr "" -#: core/models.py:1497 +#: core/models.py:1588 msgid "Document/user link trace" msgstr "" -#: core/models.py:1498 +#: core/models.py:1589 msgid "Document/user link traces" msgstr "" -#: core/models.py:1504 +#: core/models.py:1595 msgid "A link trace already exists for this document/user." msgstr "" -#: core/models.py:1527 +#: core/models.py:1618 msgid "Document favorite" msgstr "" -#: core/models.py:1528 +#: core/models.py:1619 msgid "Document favorites" msgstr "" -#: core/models.py:1534 +#: core/models.py:1625 msgid "This document is already targeted by a favorite relation instance for the same user." msgstr "" -#: core/models.py:1556 +#: core/models.py:1647 msgid "Document/user relation" msgstr "" -#: core/models.py:1557 +#: core/models.py:1648 msgid "Document/user relations" msgstr "" -#: core/models.py:1563 +#: core/models.py:1654 msgid "This user is already in this document." msgstr "" -#: core/models.py:1569 +#: core/models.py:1660 msgid "This team is already in this document." msgstr "" -#: core/models.py:1575 +#: core/models.py:1666 msgid "Either user or team must be set, not both." msgstr "" -#: core/models.py:1726 +#: core/models.py:1817 msgid "Document ask for access" msgstr "" -#: core/models.py:1727 +#: core/models.py:1818 msgid "Document ask for accesses" msgstr "" -#: core/models.py:1733 +#: core/models.py:1824 msgid "This user has already asked for access to this document." msgstr "" -#: core/models.py:1790 +#: core/models.py:1881 #, python-brace-format msgid "{name} would like access to a document!" msgstr "" -#: core/models.py:1794 +#: core/models.py:1885 #, python-brace-format msgid "{name} would like access to the following document:" msgstr "" -#: core/models.py:1800 +#: core/models.py:1891 #, python-brace-format msgid "{name} is asking for access to the document: {title}" msgstr "" -#: core/models.py:1842 +#: core/models.py:1933 msgid "Thread" msgstr "" -#: core/models.py:1843 +#: core/models.py:1934 msgid "Threads" msgstr "" -#: core/models.py:1846 core/models.py:1899 +#: core/models.py:1937 core/models.py:1990 msgid "Anonymous" msgstr "" -#: core/models.py:1894 +#: core/models.py:1985 msgid "Comment" msgstr "" -#: core/models.py:1895 +#: core/models.py:1986 msgid "Comments" msgstr "" -#: core/models.py:1945 +#: core/models.py:2036 msgid "This emoji has already been reacted to this comment." msgstr "" -#: core/models.py:1949 +#: core/models.py:2040 msgid "Reaction" msgstr "" -#: core/models.py:1950 +#: core/models.py:2041 msgid "Reactions" msgstr "" -#: core/models.py:2001 +#: core/models.py:2092 msgid "Mention" msgstr "" -#: core/models.py:2002 +#: core/models.py:2093 msgid "Mentions" msgstr "" -#: core/models.py:2015 +#: core/models.py:2106 msgid "a deleted user" msgstr "" -#: core/models.py:2025 +#: core/models.py:2116 msgid "The thread does not belong to this document." msgstr "" -#: core/models.py:2089 +#: core/models.py:2180 #, python-brace-format msgid "{name} mentioned you in a comment in \"{title}\"" msgstr "" -#: core/models.py:2093 +#: core/models.py:2184 #, python-brace-format msgid "{name} mentioned you in a comment in the following document:" msgstr "" -#: core/models.py:2096 +#: core/models.py:2187 #, python-brace-format msgid "{name} mentioned you in \"{title}\"" msgstr "" -#: core/models.py:2099 +#: core/models.py:2190 #, python-brace-format msgid "{name} mentioned you in the following document:" msgstr "" -#: core/models.py:2125 +#: core/models.py:2216 msgid "email address" msgstr "e-postadress" -#: core/models.py:2144 +#: core/models.py:2235 msgid "Document invitation" msgstr "Bjud in dokument" -#: core/models.py:2145 +#: core/models.py:2236 msgid "Document invitations" msgstr "Inbjudningar dokument" -#: core/models.py:2165 +#: core/models.py:2256 msgid "This email is already associated to a registered user." msgstr "Denna e-postadress är redan associerad med en registrerad användare." -#: core/models.py:2208 +#: core/models.py:2299 msgid "Migrated" msgstr "" -#: core/models.py:2209 +#: core/models.py:2300 msgid "Already migrated" msgstr "" -#: core/models.py:2210 +#: core/models.py:2301 msgid "Nothing in the object storage" msgstr "" -#: core/models.py:2211 +#: core/models.py:2302 msgid "No readable version" msgstr "" -#: core/models.py:2212 +#: core/models.py:2303 msgid "Failed" msgstr "" -#: core/models.py:2236 +#: core/models.py:2327 msgid "status" msgstr "" -#: core/models.py:2238 +#: core/models.py:2329 msgid "versions" msgstr "" -#: core/models.py:2241 +#: core/models.py:2332 msgid "applied" msgstr "" -#: core/models.py:2242 +#: core/models.py:2333 msgid "versions that added content, one activity entry each" msgstr "" -#: core/models.py:2246 +#: core/models.py:2337 msgid "skipped" msgstr "" -#: core/models.py:2247 +#: core/models.py:2338 msgid "versions that could not be read" msgstr "" -#: core/models.py:2251 +#: core/models.py:2342 msgid "dropped" msgstr "" -#: core/models.py:2252 +#: core/models.py:2343 msgid "versions older than the ones the server replays" msgstr "" -#: core/models.py:2254 +#: core/models.py:2345 msgid "duration" msgstr "" -#: core/models.py:2255 +#: core/models.py:2346 msgid "error" msgstr "" -#: core/models.py:2260 +#: core/models.py:2351 msgid "Document migration" msgstr "" -#: core/models.py:2261 +#: core/models.py:2352 msgid "Document migrations" msgstr "" @@ -634,7 +634,7 @@ msgstr "" msgid " Brought to you by %(brandname)s " msgstr "" -#: impress/settings.py:960 +#: impress/settings.py:974 msgid "Docs AI" msgstr "" diff --git a/src/backend/locale/tr_TR/LC_MESSAGES/django.po b/src/backend/locale/tr_TR/LC_MESSAGES/django.po index 5ad339f002..9f5752f588 100644 --- a/src/backend/locale/tr_TR/LC_MESSAGES/django.po +++ b/src/backend/locale/tr_TR/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: lasuite-docs\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-30 13:00+0000\n" -"PO-Revision-Date: 2026-10-02 09:08\n" +"POT-Creation-Date: 2026-10-05 12:41+0000\n" +"PO-Revision-Date: 2026-10-05 14:54\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -78,12 +78,12 @@ msgstr "" msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration." msgstr "" -#: core/api/viewsets.py:1434 +#: core/api/viewsets.py:1439 #, python-brace-format msgid "copy of {title}" msgstr "" -#: core/api/viewsets.py:3334 +#: core/api/viewsets.py:3324 #, python-format msgid "A comment can have a maximum of %(max)d distinct reactions." msgstr "" @@ -148,198 +148,198 @@ msgstr "" msgid "Right" msgstr "" -#: core/models.py:80 +#: core/models.py:82 msgid "id" msgstr "" -#: core/models.py:81 +#: core/models.py:83 msgid "primary key for the record as UUID" msgstr "" -#: core/models.py:87 +#: core/models.py:89 msgid "created on" msgstr "" -#: core/models.py:88 +#: core/models.py:90 msgid "date and time at which a record was created" msgstr "" -#: core/models.py:93 core/models.py:2256 +#: core/models.py:95 core/models.py:2347 msgid "updated on" msgstr "" -#: core/models.py:94 +#: core/models.py:96 msgid "date and time at which a record was last updated" msgstr "" -#: core/models.py:130 +#: core/models.py:132 msgid "We couldn't find a user with this sub but the email is already associated with a registered user." msgstr "" -#: core/models.py:141 +#: core/models.py:143 msgid "sub" msgstr "" -#: core/models.py:142 +#: core/models.py:144 msgid "Required. 255 characters or fewer. ASCII characters only." msgstr "" -#: core/models.py:150 +#: core/models.py:152 msgid "full name" msgstr "" -#: core/models.py:152 +#: core/models.py:154 msgid "short name" msgstr "" -#: core/models.py:155 +#: core/models.py:157 msgid "identity email address" msgstr "" -#: core/models.py:160 +#: core/models.py:162 msgid "admin email address" msgstr "" -#: core/models.py:167 +#: core/models.py:169 msgid "language" msgstr "" -#: core/models.py:168 +#: core/models.py:170 msgid "The language in which the user wants to see the interface." msgstr "" -#: core/models.py:176 +#: core/models.py:178 msgid "The timezone in which the user wants to see times." msgstr "" -#: core/models.py:179 +#: core/models.py:181 msgid "device" msgstr "" -#: core/models.py:181 +#: core/models.py:183 msgid "Whether the user is a device or a real user." msgstr "" -#: core/models.py:184 +#: core/models.py:186 msgid "staff status" msgstr "" -#: core/models.py:186 +#: core/models.py:188 msgid "Whether the user can log into this admin site." msgstr "" -#: core/models.py:189 +#: core/models.py:191 msgid "active" msgstr "" -#: core/models.py:192 +#: core/models.py:194 msgid "Whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: core/models.py:197 +#: core/models.py:199 msgid "first connection status" msgstr "" -#: core/models.py:199 +#: core/models.py:201 msgid "Whether the user has completed the first connection process." msgstr "" -#: core/models.py:209 +#: core/models.py:211 msgid "user" msgstr "" -#: core/models.py:210 +#: core/models.py:212 msgid "users" msgstr "" -#: core/models.py:439 +#: core/models.py:469 msgid "Active email address" msgstr "" -#: core/models.py:440 +#: core/models.py:470 msgid "Email address to deactivate" msgstr "" -#: core/models.py:467 +#: core/models.py:497 msgid "Unique ID in the source file" msgstr "" -#: core/models.py:473 core/models.py:771 +#: core/models.py:503 core/models.py:812 msgid "Pending" msgstr "" -#: core/models.py:474 +#: core/models.py:504 msgid "Ready" msgstr "" -#: core/models.py:475 core/models.py:773 +#: core/models.py:505 core/models.py:814 msgid "Done" msgstr "" -#: core/models.py:476 core/models.py:774 +#: core/models.py:506 core/models.py:815 msgid "Error" msgstr "" -#: core/models.py:484 +#: core/models.py:514 msgid "user reconciliation" msgstr "" -#: core/models.py:485 +#: core/models.py:515 msgid "user reconciliations" msgstr "" -#: core/models.py:723 +#: core/models.py:764 msgid "You have requested a reconciliation of your user accounts on Docs.\n" " To confirm that you are the one who initiated the request\n" " and that this email belongs to you:" msgstr "" -#: core/models.py:729 +#: core/models.py:770 msgid "Confirm by clicking the link to start the reconciliation" msgstr "" -#: core/models.py:734 core/models.py:840 +#: core/models.py:775 core/models.py:881 msgid "Click here" msgstr "" -#: core/models.py:735 +#: core/models.py:776 msgid "Confirm" msgstr "" -#: core/models.py:746 +#: core/models.py:787 msgid "Your reconciliation request has been processed.\n" " New documents are likely associated with your account:" msgstr "" -#: core/models.py:751 +#: core/models.py:792 msgid "Your accounts have been merged" msgstr "" -#: core/models.py:756 +#: core/models.py:797 msgid "Click here to see" msgstr "" -#: core/models.py:757 +#: core/models.py:798 msgid "See my documents" msgstr "" -#: core/models.py:767 +#: core/models.py:808 msgid "CSV file" msgstr "" -#: core/models.py:772 +#: core/models.py:813 msgid "Running" msgstr "" -#: core/models.py:782 +#: core/models.py:823 msgid "user reconciliation CSV import" msgstr "" -#: core/models.py:783 +#: core/models.py:824 msgid "user reconciliation CSV imports" msgstr "" -#: core/models.py:827 +#: core/models.py:868 #, python-brace-format msgid "Your request for reconciliation was unsuccessful.\n" " Reconciliation failed for the following email addresses:\n" @@ -348,273 +348,273 @@ msgid "Your request for reconciliation was unsuccessful.\n" " You can submit another request with the valid email addresses." msgstr "" -#: core/models.py:835 +#: core/models.py:876 msgid "Reconciliation of your Docs accounts not completed" msgstr "" -#: core/models.py:841 +#: core/models.py:882 msgid "Make a new request" msgstr "" -#: core/models.py:956 +#: core/models.py:997 msgid "title" msgstr "" -#: core/models.py:957 +#: core/models.py:998 msgid "excerpt" msgstr "" -#: core/models.py:1004 +#: core/models.py:1045 msgid "Document" msgstr "" -#: core/models.py:1005 +#: core/models.py:1046 msgid "Documents" msgstr "" -#: core/models.py:1022 core/models.py:1351 core/models.py:2087 +#: core/models.py:1063 core/models.py:1442 core/models.py:2178 msgid "Untitled Document" msgstr "" -#: core/models.py:1352 +#: core/models.py:1443 msgid "Open" msgstr "" -#: core/models.py:1387 +#: core/models.py:1478 #, python-brace-format msgid "{name} shared a document with you!" msgstr "" -#: core/models.py:1391 +#: core/models.py:1482 #, python-brace-format msgid "{name} invited you with the role \"{role}\" on the following document:" msgstr "" -#: core/models.py:1397 +#: core/models.py:1488 #, python-brace-format msgid "{name} shared a document with you: {title}" msgstr "" -#: core/models.py:1497 +#: core/models.py:1588 msgid "Document/user link trace" msgstr "" -#: core/models.py:1498 +#: core/models.py:1589 msgid "Document/user link traces" msgstr "" -#: core/models.py:1504 +#: core/models.py:1595 msgid "A link trace already exists for this document/user." msgstr "" -#: core/models.py:1527 +#: core/models.py:1618 msgid "Document favorite" msgstr "" -#: core/models.py:1528 +#: core/models.py:1619 msgid "Document favorites" msgstr "" -#: core/models.py:1534 +#: core/models.py:1625 msgid "This document is already targeted by a favorite relation instance for the same user." msgstr "" -#: core/models.py:1556 +#: core/models.py:1647 msgid "Document/user relation" msgstr "" -#: core/models.py:1557 +#: core/models.py:1648 msgid "Document/user relations" msgstr "" -#: core/models.py:1563 +#: core/models.py:1654 msgid "This user is already in this document." msgstr "" -#: core/models.py:1569 +#: core/models.py:1660 msgid "This team is already in this document." msgstr "" -#: core/models.py:1575 +#: core/models.py:1666 msgid "Either user or team must be set, not both." msgstr "" -#: core/models.py:1726 +#: core/models.py:1817 msgid "Document ask for access" msgstr "" -#: core/models.py:1727 +#: core/models.py:1818 msgid "Document ask for accesses" msgstr "" -#: core/models.py:1733 +#: core/models.py:1824 msgid "This user has already asked for access to this document." msgstr "" -#: core/models.py:1790 +#: core/models.py:1881 #, python-brace-format msgid "{name} would like access to a document!" msgstr "" -#: core/models.py:1794 +#: core/models.py:1885 #, python-brace-format msgid "{name} would like access to the following document:" msgstr "" -#: core/models.py:1800 +#: core/models.py:1891 #, python-brace-format msgid "{name} is asking for access to the document: {title}" msgstr "" -#: core/models.py:1842 +#: core/models.py:1933 msgid "Thread" msgstr "" -#: core/models.py:1843 +#: core/models.py:1934 msgid "Threads" msgstr "" -#: core/models.py:1846 core/models.py:1899 +#: core/models.py:1937 core/models.py:1990 msgid "Anonymous" msgstr "" -#: core/models.py:1894 +#: core/models.py:1985 msgid "Comment" msgstr "" -#: core/models.py:1895 +#: core/models.py:1986 msgid "Comments" msgstr "" -#: core/models.py:1945 +#: core/models.py:2036 msgid "This emoji has already been reacted to this comment." msgstr "" -#: core/models.py:1949 +#: core/models.py:2040 msgid "Reaction" msgstr "" -#: core/models.py:1950 +#: core/models.py:2041 msgid "Reactions" msgstr "" -#: core/models.py:2001 +#: core/models.py:2092 msgid "Mention" msgstr "" -#: core/models.py:2002 +#: core/models.py:2093 msgid "Mentions" msgstr "" -#: core/models.py:2015 +#: core/models.py:2106 msgid "a deleted user" msgstr "" -#: core/models.py:2025 +#: core/models.py:2116 msgid "The thread does not belong to this document." msgstr "" -#: core/models.py:2089 +#: core/models.py:2180 #, python-brace-format msgid "{name} mentioned you in a comment in \"{title}\"" msgstr "" -#: core/models.py:2093 +#: core/models.py:2184 #, python-brace-format msgid "{name} mentioned you in a comment in the following document:" msgstr "" -#: core/models.py:2096 +#: core/models.py:2187 #, python-brace-format msgid "{name} mentioned you in \"{title}\"" msgstr "" -#: core/models.py:2099 +#: core/models.py:2190 #, python-brace-format msgid "{name} mentioned you in the following document:" msgstr "" -#: core/models.py:2125 +#: core/models.py:2216 msgid "email address" msgstr "" -#: core/models.py:2144 +#: core/models.py:2235 msgid "Document invitation" msgstr "" -#: core/models.py:2145 +#: core/models.py:2236 msgid "Document invitations" msgstr "" -#: core/models.py:2165 +#: core/models.py:2256 msgid "This email is already associated to a registered user." msgstr "" -#: core/models.py:2208 +#: core/models.py:2299 msgid "Migrated" msgstr "" -#: core/models.py:2209 +#: core/models.py:2300 msgid "Already migrated" msgstr "" -#: core/models.py:2210 +#: core/models.py:2301 msgid "Nothing in the object storage" msgstr "" -#: core/models.py:2211 +#: core/models.py:2302 msgid "No readable version" msgstr "" -#: core/models.py:2212 +#: core/models.py:2303 msgid "Failed" msgstr "" -#: core/models.py:2236 +#: core/models.py:2327 msgid "status" msgstr "" -#: core/models.py:2238 +#: core/models.py:2329 msgid "versions" msgstr "" -#: core/models.py:2241 +#: core/models.py:2332 msgid "applied" msgstr "" -#: core/models.py:2242 +#: core/models.py:2333 msgid "versions that added content, one activity entry each" msgstr "" -#: core/models.py:2246 +#: core/models.py:2337 msgid "skipped" msgstr "" -#: core/models.py:2247 +#: core/models.py:2338 msgid "versions that could not be read" msgstr "" -#: core/models.py:2251 +#: core/models.py:2342 msgid "dropped" msgstr "" -#: core/models.py:2252 +#: core/models.py:2343 msgid "versions older than the ones the server replays" msgstr "" -#: core/models.py:2254 +#: core/models.py:2345 msgid "duration" msgstr "" -#: core/models.py:2255 +#: core/models.py:2346 msgid "error" msgstr "" -#: core/models.py:2260 +#: core/models.py:2351 msgid "Document migration" msgstr "" -#: core/models.py:2261 +#: core/models.py:2352 msgid "Document migrations" msgstr "" @@ -634,7 +634,7 @@ msgstr "" msgid " Brought to you by %(brandname)s " msgstr "" -#: impress/settings.py:960 +#: impress/settings.py:974 msgid "Docs AI" msgstr "" diff --git a/src/backend/locale/uk_UA/LC_MESSAGES/django.po b/src/backend/locale/uk_UA/LC_MESSAGES/django.po index 7f3244f07e..b92bf0cb8d 100644 --- a/src/backend/locale/uk_UA/LC_MESSAGES/django.po +++ b/src/backend/locale/uk_UA/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: lasuite-docs\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-30 13:00+0000\n" -"PO-Revision-Date: 2026-10-02 09:08\n" +"POT-Creation-Date: 2026-10-05 12:41+0000\n" +"PO-Revision-Date: 2026-10-05 14:54\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -78,12 +78,12 @@ msgstr "Це поле є обов’язковим." msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration." msgstr "Доступ до посилання '%(link_reach)s' заборонено на основі конфігурації батьківського документа." -#: core/api/viewsets.py:1434 +#: core/api/viewsets.py:1439 #, python-brace-format msgid "copy of {title}" msgstr "копія {title}" -#: core/api/viewsets.py:3334 +#: core/api/viewsets.py:3324 #, python-format msgid "A comment can have a maximum of %(max)d distinct reactions." msgstr "Коментарі можуть мати максимум %(max)d різних реакцій." @@ -148,147 +148,147 @@ msgstr "Ліворуч" msgid "Right" msgstr "Праворуч" -#: core/models.py:80 +#: core/models.py:82 msgid "id" msgstr "id" -#: core/models.py:81 +#: core/models.py:83 msgid "primary key for the record as UUID" msgstr "первинний ключ для запису як UUID" -#: core/models.py:87 +#: core/models.py:89 msgid "created on" msgstr "створено" -#: core/models.py:88 +#: core/models.py:90 msgid "date and time at which a record was created" msgstr "дата і час, коли запис було створено" -#: core/models.py:93 core/models.py:2256 +#: core/models.py:95 core/models.py:2347 msgid "updated on" msgstr "оновлено" -#: core/models.py:94 +#: core/models.py:96 msgid "date and time at which a record was last updated" msgstr "дата і час, коли запис був востаннє оновлений" -#: core/models.py:130 +#: core/models.py:132 msgid "We couldn't find a user with this sub but the email is already associated with a registered user." msgstr "Ми не змогли знайти користувача з цими даними, але адреса вже пов'язана з зареєстрованим користувачем." -#: core/models.py:141 +#: core/models.py:143 msgid "sub" msgstr "вкладений документ" -#: core/models.py:142 +#: core/models.py:144 msgid "Required. 255 characters or fewer. ASCII characters only." msgstr "Обов'язкове. 255 символів або менше. Тільки символи ASCII." -#: core/models.py:150 +#: core/models.py:152 msgid "full name" msgstr "повне ім'я" -#: core/models.py:152 +#: core/models.py:154 msgid "short name" msgstr "коротке ім'я" -#: core/models.py:155 +#: core/models.py:157 msgid "identity email address" msgstr "адреса електронної пошти особи" -#: core/models.py:160 +#: core/models.py:162 msgid "admin email address" msgstr "електронна адреса адміністратора" -#: core/models.py:167 +#: core/models.py:169 msgid "language" msgstr "мова" -#: core/models.py:168 +#: core/models.py:170 msgid "The language in which the user wants to see the interface." msgstr "Мова, якою користувач хоче бачити інтерфейс." -#: core/models.py:176 +#: core/models.py:178 msgid "The timezone in which the user wants to see times." msgstr "Часовий пояс, в якому користувач хоче бачити час." -#: core/models.py:179 +#: core/models.py:181 msgid "device" msgstr "пристрій" -#: core/models.py:181 +#: core/models.py:183 msgid "Whether the user is a device or a real user." msgstr "Чи є користувач пристроєм чи реальним користувачем." -#: core/models.py:184 +#: core/models.py:186 msgid "staff status" msgstr "статус співробітника" -#: core/models.py:186 +#: core/models.py:188 msgid "Whether the user can log into this admin site." msgstr "Чи може користувач увійти на цей сайт адміністратора." -#: core/models.py:189 +#: core/models.py:191 msgid "active" msgstr "активний" -#: core/models.py:192 +#: core/models.py:194 msgid "Whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "Чи слід ставитися до цього користувача як до активного. Зніміть вибір замість видалення облікового запису." -#: core/models.py:197 +#: core/models.py:199 msgid "first connection status" msgstr "стан першого з'єднання" -#: core/models.py:199 +#: core/models.py:201 msgid "Whether the user has completed the first connection process." msgstr "Чи завершив користувач перший процес з'єднання." -#: core/models.py:209 +#: core/models.py:211 msgid "user" msgstr "користувач" -#: core/models.py:210 +#: core/models.py:212 msgid "users" msgstr "користувачі" -#: core/models.py:439 +#: core/models.py:469 msgid "Active email address" msgstr "Активна електронна адреса" -#: core/models.py:440 +#: core/models.py:470 msgid "Email address to deactivate" msgstr "Електронна адреса, що буде деактивована" -#: core/models.py:467 +#: core/models.py:497 msgid "Unique ID in the source file" msgstr "Унікальний ідентифікатор у вихідному файлі" -#: core/models.py:473 core/models.py:771 +#: core/models.py:503 core/models.py:812 msgid "Pending" msgstr "В очікуванні" -#: core/models.py:474 +#: core/models.py:504 msgid "Ready" msgstr "Готово" -#: core/models.py:475 core/models.py:773 +#: core/models.py:505 core/models.py:814 msgid "Done" msgstr "Виконано" -#: core/models.py:476 core/models.py:774 +#: core/models.py:506 core/models.py:815 msgid "Error" msgstr "Помилка" -#: core/models.py:484 +#: core/models.py:514 msgid "user reconciliation" msgstr "узгодження користувачів" -#: core/models.py:485 +#: core/models.py:515 msgid "user reconciliations" msgstr "узгодження користувачів" -#: core/models.py:723 +#: core/models.py:764 msgid "You have requested a reconciliation of your user accounts on Docs.\n" " To confirm that you are the one who initiated the request\n" " and that this email belongs to you:" @@ -296,53 +296,53 @@ msgstr "Ви запросили узгодження своїх облікови " Щоб підтвердити, що саме ви ініціювали запит\n" " і що ця електронна адреса належить вам:" -#: core/models.py:729 +#: core/models.py:770 msgid "Confirm by clicking the link to start the reconciliation" msgstr "Підтвердіть, натиснувши на посилання, щоб почати узгодження" -#: core/models.py:734 core/models.py:840 +#: core/models.py:775 core/models.py:881 msgid "Click here" msgstr "Натисніть тут" -#: core/models.py:735 +#: core/models.py:776 msgid "Confirm" msgstr "Підтвердження" -#: core/models.py:746 +#: core/models.py:787 msgid "Your reconciliation request has been processed.\n" " New documents are likely associated with your account:" msgstr "Ваш запит на узгодження оброблено.\n" " Нові документи, ймовірно, пов'язані з вашим обліковим записом:" -#: core/models.py:751 +#: core/models.py:792 msgid "Your accounts have been merged" msgstr "Ваші облікові записи були об'єднані" -#: core/models.py:756 +#: core/models.py:797 msgid "Click here to see" msgstr "Натисніть тут, щоб переглянути" -#: core/models.py:757 +#: core/models.py:798 msgid "See my documents" msgstr "Переглянути мої документи" -#: core/models.py:767 +#: core/models.py:808 msgid "CSV file" msgstr "CSV-файл" -#: core/models.py:772 +#: core/models.py:813 msgid "Running" msgstr "Виконується" -#: core/models.py:782 +#: core/models.py:823 msgid "user reconciliation CSV import" msgstr "імпорт CSV для узгодження користувачів" -#: core/models.py:783 +#: core/models.py:824 msgid "user reconciliation CSV imports" msgstr "імпорт CSV для узгодження користувачів" -#: core/models.py:827 +#: core/models.py:868 #, python-brace-format msgid "Your request for reconciliation was unsuccessful.\n" " Reconciliation failed for the following email addresses:\n" @@ -355,273 +355,273 @@ msgstr "Ваш запит на узгодження не був виконани " Перевірте, чи немає помилок.\n" " Ви можете надіслати інший запит із дійсними адресами електронної пошти." -#: core/models.py:835 +#: core/models.py:876 msgid "Reconciliation of your Docs accounts not completed" msgstr "Узгодження ваших облікових записів не завершено" -#: core/models.py:841 +#: core/models.py:882 msgid "Make a new request" msgstr "Зробити новий запит" -#: core/models.py:956 +#: core/models.py:997 msgid "title" msgstr "заголовок" -#: core/models.py:957 +#: core/models.py:998 msgid "excerpt" msgstr "уривок" -#: core/models.py:1004 +#: core/models.py:1045 msgid "Document" msgstr "Документ" -#: core/models.py:1005 +#: core/models.py:1046 msgid "Documents" msgstr "Документи" -#: core/models.py:1022 core/models.py:1351 core/models.py:2087 +#: core/models.py:1063 core/models.py:1442 core/models.py:2178 msgid "Untitled Document" msgstr "Документ без назви" -#: core/models.py:1352 +#: core/models.py:1443 msgid "Open" msgstr "Відкрити" -#: core/models.py:1387 +#: core/models.py:1478 #, python-brace-format msgid "{name} shared a document with you!" msgstr "{name} ділиться з вами документом!" -#: core/models.py:1391 +#: core/models.py:1482 #, python-brace-format msgid "{name} invited you with the role \"{role}\" on the following document:" msgstr "{name} запрошує вас для роботи з документом із роллю \"{role}\":" -#: core/models.py:1397 +#: core/models.py:1488 #, python-brace-format msgid "{name} shared a document with you: {title}" msgstr "{name} ділиться з вами документом: {title}" -#: core/models.py:1497 +#: core/models.py:1588 msgid "Document/user link trace" msgstr "Трасування посилання Документ/користувач" -#: core/models.py:1498 +#: core/models.py:1589 msgid "Document/user link traces" msgstr "Трасування посилань Документ/користувач" -#: core/models.py:1504 +#: core/models.py:1595 msgid "A link trace already exists for this document/user." msgstr "Відстеження вже існуючих посилань для цього документа/користувача." -#: core/models.py:1527 +#: core/models.py:1618 msgid "Document favorite" msgstr "Обраний документ" -#: core/models.py:1528 +#: core/models.py:1619 msgid "Document favorites" msgstr "Обрані документи" -#: core/models.py:1534 +#: core/models.py:1625 msgid "This document is already targeted by a favorite relation instance for the same user." msgstr "Цей документ вже вказаний як обраний для одного користувача." -#: core/models.py:1556 +#: core/models.py:1647 msgid "Document/user relation" msgstr "Відносини документ/користувач" -#: core/models.py:1557 +#: core/models.py:1648 msgid "Document/user relations" msgstr "Відносини документ/користувач" -#: core/models.py:1563 +#: core/models.py:1654 msgid "This user is already in this document." msgstr "Цей користувач вже має доступ до цього документу." -#: core/models.py:1569 +#: core/models.py:1660 msgid "This team is already in this document." msgstr "Ця команда вже має доступ до цього документа." -#: core/models.py:1575 +#: core/models.py:1666 msgid "Either user or team must be set, not both." msgstr "Вкажіть користувача або команду, а не обох." -#: core/models.py:1726 +#: core/models.py:1817 msgid "Document ask for access" msgstr "Запит доступу до документа" -#: core/models.py:1727 +#: core/models.py:1818 msgid "Document ask for accesses" msgstr "Запит доступу для документа" -#: core/models.py:1733 +#: core/models.py:1824 msgid "This user has already asked for access to this document." msgstr "Цей користувач вже попросив доступ до цього документа." -#: core/models.py:1790 +#: core/models.py:1881 #, python-brace-format msgid "{name} would like access to a document!" msgstr "{name} хоче отримати доступ до документа!" -#: core/models.py:1794 +#: core/models.py:1885 #, python-brace-format msgid "{name} would like access to the following document:" msgstr "{name} бажає отримати доступ до наступного документа:" -#: core/models.py:1800 +#: core/models.py:1891 #, python-brace-format msgid "{name} is asking for access to the document: {title}" msgstr "{name} запитує доступ до документа: {title}" -#: core/models.py:1842 +#: core/models.py:1933 msgid "Thread" msgstr "Обговорення" -#: core/models.py:1843 +#: core/models.py:1934 msgid "Threads" msgstr "Обговорення" -#: core/models.py:1846 core/models.py:1899 +#: core/models.py:1937 core/models.py:1990 msgid "Anonymous" msgstr "Анонім" -#: core/models.py:1894 +#: core/models.py:1985 msgid "Comment" msgstr "Коментар" -#: core/models.py:1895 +#: core/models.py:1986 msgid "Comments" msgstr "Коментарі" -#: core/models.py:1945 +#: core/models.py:2036 msgid "This emoji has already been reacted to this comment." msgstr "Цим емодзі вже відреагували на цей коментар." -#: core/models.py:1949 +#: core/models.py:2040 msgid "Reaction" msgstr "Реакція" -#: core/models.py:1950 +#: core/models.py:2041 msgid "Reactions" msgstr "Реакції" -#: core/models.py:2001 +#: core/models.py:2092 msgid "Mention" msgstr "Згадування" -#: core/models.py:2002 +#: core/models.py:2093 msgid "Mentions" msgstr "Згадування" -#: core/models.py:2015 +#: core/models.py:2106 msgid "a deleted user" msgstr "видалений користувач" -#: core/models.py:2025 +#: core/models.py:2116 msgid "The thread does not belong to this document." msgstr "Обговорення не належить цьому документу." -#: core/models.py:2089 +#: core/models.py:2180 #, python-brace-format msgid "{name} mentioned you in a comment in \"{title}\"" msgstr "{name} згадує вас у коментарі в \"{title}\"" -#: core/models.py:2093 +#: core/models.py:2184 #, python-brace-format msgid "{name} mentioned you in a comment in the following document:" msgstr "{name} згадує вас у коментарі в наступному документі:" -#: core/models.py:2096 +#: core/models.py:2187 #, python-brace-format msgid "{name} mentioned you in \"{title}\"" msgstr "{name} згадує вас у \"{title}\"" -#: core/models.py:2099 +#: core/models.py:2190 #, python-brace-format msgid "{name} mentioned you in the following document:" msgstr "{name} згадує вас у наступному документі:" -#: core/models.py:2125 +#: core/models.py:2216 msgid "email address" msgstr "електронна адреса" -#: core/models.py:2144 +#: core/models.py:2235 msgid "Document invitation" msgstr "Запрошення до редагування документа" -#: core/models.py:2145 +#: core/models.py:2236 msgid "Document invitations" msgstr "Запрошення до редагування документів" -#: core/models.py:2165 +#: core/models.py:2256 msgid "This email is already associated to a registered user." msgstr "Ця електронна пошта вже пов'язана з зареєстрованим користувачем." -#: core/models.py:2208 +#: core/models.py:2299 msgid "Migrated" msgstr "Перенесено" -#: core/models.py:2209 +#: core/models.py:2300 msgid "Already migrated" msgstr "Вже перенесено" -#: core/models.py:2210 +#: core/models.py:2301 msgid "Nothing in the object storage" msgstr "Нічого у сховищі об’єкта" -#: core/models.py:2211 +#: core/models.py:2302 msgid "No readable version" msgstr "Немає читабельної версії" -#: core/models.py:2212 +#: core/models.py:2303 msgid "Failed" msgstr "Збій" -#: core/models.py:2236 +#: core/models.py:2327 msgid "status" msgstr "стан" -#: core/models.py:2238 +#: core/models.py:2329 msgid "versions" msgstr "версії" -#: core/models.py:2241 +#: core/models.py:2332 msgid "applied" msgstr "застосовано" -#: core/models.py:2242 +#: core/models.py:2333 msgid "versions that added content, one activity entry each" msgstr "версії, які додали вміст, по одному запису діяльності" -#: core/models.py:2246 +#: core/models.py:2337 msgid "skipped" msgstr "пропущено" -#: core/models.py:2247 +#: core/models.py:2338 msgid "versions that could not be read" msgstr "версії, які не можуть бути прочитані" -#: core/models.py:2251 +#: core/models.py:2342 msgid "dropped" msgstr "викинуті" -#: core/models.py:2252 +#: core/models.py:2343 msgid "versions older than the ones the server replays" msgstr "версії старші тих, що може відтворити сервер" -#: core/models.py:2254 +#: core/models.py:2345 msgid "duration" msgstr "тривалість" -#: core/models.py:2255 +#: core/models.py:2346 msgid "error" msgstr "помилка" -#: core/models.py:2260 +#: core/models.py:2351 msgid "Document migration" msgstr "Перенесення документа" -#: core/models.py:2261 +#: core/models.py:2352 msgid "Document migrations" msgstr "Перенесення документів" @@ -641,7 +641,7 @@ msgstr " Docs, ваш новий важливий інструмент для о msgid " Brought to you by %(brandname)s " msgstr " Запрошення отримане від %(brandname)s " -#: impress/settings.py:960 +#: impress/settings.py:974 msgid "Docs AI" msgstr "Docs ШІ" diff --git a/src/backend/locale/zh_CN/LC_MESSAGES/django.po b/src/backend/locale/zh_CN/LC_MESSAGES/django.po index c5a81467d8..47c924ee28 100644 --- a/src/backend/locale/zh_CN/LC_MESSAGES/django.po +++ b/src/backend/locale/zh_CN/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: lasuite-docs\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-30 13:00+0000\n" -"PO-Revision-Date: 2026-10-02 09:08\n" +"POT-Creation-Date: 2026-10-05 12:41+0000\n" +"PO-Revision-Date: 2026-10-05 14:54\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -78,12 +78,12 @@ msgstr "此欄位為必填。" msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration." msgstr "根據父文件設定,不允許連結範圍「%(link_reach)s」。" -#: core/api/viewsets.py:1434 +#: core/api/viewsets.py:1439 #, python-brace-format msgid "copy of {title}" msgstr "{title} 的副本" -#: core/api/viewsets.py:3334 +#: core/api/viewsets.py:3324 #, python-format msgid "A comment can have a maximum of %(max)d distinct reactions." msgstr "" @@ -148,198 +148,198 @@ msgstr "左" msgid "Right" msgstr "右" -#: core/models.py:80 +#: core/models.py:82 msgid "id" msgstr "ID" -#: core/models.py:81 +#: core/models.py:83 msgid "primary key for the record as UUID" msgstr "記錄的主鍵(UUID)" -#: core/models.py:87 +#: core/models.py:89 msgid "created on" msgstr "建立於" -#: core/models.py:88 +#: core/models.py:90 msgid "date and time at which a record was created" msgstr "記錄建立的日期與時間" -#: core/models.py:93 core/models.py:2256 +#: core/models.py:95 core/models.py:2347 msgid "updated on" msgstr "更新於" -#: core/models.py:94 +#: core/models.py:96 msgid "date and time at which a record was last updated" msgstr "記錄最後更新的日期與時間" -#: core/models.py:130 +#: core/models.py:132 msgid "We couldn't find a user with this sub but the email is already associated with a registered user." msgstr "我們找不到具有此 sub 的使用者,但此電子郵件地址已與已註冊使用者關聯。" -#: core/models.py:141 +#: core/models.py:143 msgid "sub" msgstr "sub" -#: core/models.py:142 +#: core/models.py:144 msgid "Required. 255 characters or fewer. ASCII characters only." msgstr "必填。255 個字元(含)以下。僅限 ASCII 字元。" -#: core/models.py:150 +#: core/models.py:152 msgid "full name" msgstr "全名" -#: core/models.py:152 +#: core/models.py:154 msgid "short name" msgstr "簡稱" -#: core/models.py:155 +#: core/models.py:157 msgid "identity email address" msgstr "身份驗證電子郵件地址" -#: core/models.py:160 +#: core/models.py:162 msgid "admin email address" msgstr "管理員電子郵件地址" -#: core/models.py:167 +#: core/models.py:169 msgid "language" msgstr "語言" -#: core/models.py:168 +#: core/models.py:170 msgid "The language in which the user wants to see the interface." msgstr "使用者希望介面顯示的語言。" -#: core/models.py:176 +#: core/models.py:178 msgid "The timezone in which the user wants to see times." msgstr "使用者希望時間顯示的時區。" -#: core/models.py:179 +#: core/models.py:181 msgid "device" msgstr "裝置" -#: core/models.py:181 +#: core/models.py:183 msgid "Whether the user is a device or a real user." msgstr "使用者是裝置還是真實使用者。" -#: core/models.py:184 +#: core/models.py:186 msgid "staff status" msgstr "工作人員狀態" -#: core/models.py:186 +#: core/models.py:188 msgid "Whether the user can log into this admin site." msgstr "使用者是否可以登入此管理後台。" -#: core/models.py:189 +#: core/models.py:191 msgid "active" msgstr "啟用" -#: core/models.py:192 +#: core/models.py:194 msgid "Whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "此使用者是否應被視為處於啟用狀態。請取消勾選此項而非刪除帳號。" -#: core/models.py:197 +#: core/models.py:199 msgid "first connection status" msgstr "" -#: core/models.py:199 +#: core/models.py:201 msgid "Whether the user has completed the first connection process." msgstr "" -#: core/models.py:209 +#: core/models.py:211 msgid "user" msgstr "使用者" -#: core/models.py:210 +#: core/models.py:212 msgid "users" msgstr "使用者" -#: core/models.py:439 +#: core/models.py:469 msgid "Active email address" msgstr "" -#: core/models.py:440 +#: core/models.py:470 msgid "Email address to deactivate" msgstr "" -#: core/models.py:467 +#: core/models.py:497 msgid "Unique ID in the source file" msgstr "" -#: core/models.py:473 core/models.py:771 +#: core/models.py:503 core/models.py:812 msgid "Pending" msgstr "" -#: core/models.py:474 +#: core/models.py:504 msgid "Ready" msgstr "" -#: core/models.py:475 core/models.py:773 +#: core/models.py:505 core/models.py:814 msgid "Done" msgstr "" -#: core/models.py:476 core/models.py:774 +#: core/models.py:506 core/models.py:815 msgid "Error" msgstr "" -#: core/models.py:484 +#: core/models.py:514 msgid "user reconciliation" msgstr "" -#: core/models.py:485 +#: core/models.py:515 msgid "user reconciliations" msgstr "" -#: core/models.py:723 +#: core/models.py:764 msgid "You have requested a reconciliation of your user accounts on Docs.\n" " To confirm that you are the one who initiated the request\n" " and that this email belongs to you:" msgstr "" -#: core/models.py:729 +#: core/models.py:770 msgid "Confirm by clicking the link to start the reconciliation" msgstr "" -#: core/models.py:734 core/models.py:840 +#: core/models.py:775 core/models.py:881 msgid "Click here" msgstr "" -#: core/models.py:735 +#: core/models.py:776 msgid "Confirm" msgstr "" -#: core/models.py:746 +#: core/models.py:787 msgid "Your reconciliation request has been processed.\n" " New documents are likely associated with your account:" msgstr "" -#: core/models.py:751 +#: core/models.py:792 msgid "Your accounts have been merged" msgstr "" -#: core/models.py:756 +#: core/models.py:797 msgid "Click here to see" msgstr "" -#: core/models.py:757 +#: core/models.py:798 msgid "See my documents" msgstr "" -#: core/models.py:767 +#: core/models.py:808 msgid "CSV file" msgstr "" -#: core/models.py:772 +#: core/models.py:813 msgid "Running" msgstr "" -#: core/models.py:782 +#: core/models.py:823 msgid "user reconciliation CSV import" msgstr "" -#: core/models.py:783 +#: core/models.py:824 msgid "user reconciliation CSV imports" msgstr "" -#: core/models.py:827 +#: core/models.py:868 #, python-brace-format msgid "Your request for reconciliation was unsuccessful.\n" " Reconciliation failed for the following email addresses:\n" @@ -348,273 +348,273 @@ msgid "Your request for reconciliation was unsuccessful.\n" " You can submit another request with the valid email addresses." msgstr "" -#: core/models.py:835 +#: core/models.py:876 msgid "Reconciliation of your Docs accounts not completed" msgstr "" -#: core/models.py:841 +#: core/models.py:882 msgid "Make a new request" msgstr "" -#: core/models.py:956 +#: core/models.py:997 msgid "title" msgstr "標題" -#: core/models.py:957 +#: core/models.py:998 msgid "excerpt" msgstr "摘要" -#: core/models.py:1004 +#: core/models.py:1045 msgid "Document" msgstr "文件" -#: core/models.py:1005 +#: core/models.py:1046 msgid "Documents" msgstr "文件" -#: core/models.py:1022 core/models.py:1351 core/models.py:2087 +#: core/models.py:1063 core/models.py:1442 core/models.py:2178 msgid "Untitled Document" msgstr "未命名文件" -#: core/models.py:1352 +#: core/models.py:1443 msgid "Open" msgstr "開啟" -#: core/models.py:1387 +#: core/models.py:1478 #, python-brace-format msgid "{name} shared a document with you!" msgstr "{name} 與您分享了一份文件!" -#: core/models.py:1391 +#: core/models.py:1482 #, python-brace-format msgid "{name} invited you with the role \"{role}\" on the following document:" msgstr "{name} 邀請您以「{role}」角色參與以下文件:" -#: core/models.py:1397 +#: core/models.py:1488 #, python-brace-format msgid "{name} shared a document with you: {title}" msgstr "{name} 與您分享了一份文件:{title}" -#: core/models.py:1497 +#: core/models.py:1588 msgid "Document/user link trace" msgstr "文件/使用者連結追蹤" -#: core/models.py:1498 +#: core/models.py:1589 msgid "Document/user link traces" msgstr "文件/使用者連結追蹤" -#: core/models.py:1504 +#: core/models.py:1595 msgid "A link trace already exists for this document/user." msgstr "此文件/使用者已存在連結追蹤。" -#: core/models.py:1527 +#: core/models.py:1618 msgid "Document favorite" msgstr "文件收藏" -#: core/models.py:1528 +#: core/models.py:1619 msgid "Document favorites" msgstr "文件收藏" -#: core/models.py:1534 +#: core/models.py:1625 msgid "This document is already targeted by a favorite relation instance for the same user." msgstr "此使用者已將此文件加入收藏。" -#: core/models.py:1556 +#: core/models.py:1647 msgid "Document/user relation" msgstr "文件/使用者關聯" -#: core/models.py:1557 +#: core/models.py:1648 msgid "Document/user relations" msgstr "文件/使用者關聯" -#: core/models.py:1563 +#: core/models.py:1654 msgid "This user is already in this document." msgstr "此使用者已在此文件中。" -#: core/models.py:1569 +#: core/models.py:1660 msgid "This team is already in this document." msgstr "此團隊已在此文件中。" -#: core/models.py:1575 +#: core/models.py:1666 msgid "Either user or team must be set, not both." msgstr "必須設定使用者或團隊其中之一,不能同時設定兩者。" -#: core/models.py:1726 +#: core/models.py:1817 msgid "Document ask for access" msgstr "要求文件存取權" -#: core/models.py:1727 +#: core/models.py:1818 msgid "Document ask for accesses" msgstr "要求文件存取權" -#: core/models.py:1733 +#: core/models.py:1824 msgid "This user has already asked for access to this document." msgstr "此使用者已要求過存取此文件的權限。" -#: core/models.py:1790 +#: core/models.py:1881 #, python-brace-format msgid "{name} would like access to a document!" msgstr "{name} 想要存取文件!" -#: core/models.py:1794 +#: core/models.py:1885 #, python-brace-format msgid "{name} would like access to the following document:" msgstr "{name} 想要存取以下文件:" -#: core/models.py:1800 +#: core/models.py:1891 #, python-brace-format msgid "{name} is asking for access to the document: {title}" msgstr "{name} 正要求存取文件:{title}" -#: core/models.py:1842 +#: core/models.py:1933 msgid "Thread" msgstr "對話串" -#: core/models.py:1843 +#: core/models.py:1934 msgid "Threads" msgstr "對話串" -#: core/models.py:1846 core/models.py:1899 +#: core/models.py:1937 core/models.py:1990 msgid "Anonymous" msgstr "匿名" -#: core/models.py:1894 +#: core/models.py:1985 msgid "Comment" msgstr "評論" -#: core/models.py:1895 +#: core/models.py:1986 msgid "Comments" msgstr "評論" -#: core/models.py:1945 +#: core/models.py:2036 msgid "This emoji has already been reacted to this comment." msgstr "此評論已標記過此表情符號。" -#: core/models.py:1949 +#: core/models.py:2040 msgid "Reaction" msgstr "回應" -#: core/models.py:1950 +#: core/models.py:2041 msgid "Reactions" msgstr "回應" -#: core/models.py:2001 +#: core/models.py:2092 msgid "Mention" msgstr "" -#: core/models.py:2002 +#: core/models.py:2093 msgid "Mentions" msgstr "" -#: core/models.py:2015 +#: core/models.py:2106 msgid "a deleted user" msgstr "" -#: core/models.py:2025 +#: core/models.py:2116 msgid "The thread does not belong to this document." msgstr "" -#: core/models.py:2089 +#: core/models.py:2180 #, python-brace-format msgid "{name} mentioned you in a comment in \"{title}\"" msgstr "" -#: core/models.py:2093 +#: core/models.py:2184 #, python-brace-format msgid "{name} mentioned you in a comment in the following document:" msgstr "" -#: core/models.py:2096 +#: core/models.py:2187 #, python-brace-format msgid "{name} mentioned you in \"{title}\"" msgstr "" -#: core/models.py:2099 +#: core/models.py:2190 #, python-brace-format msgid "{name} mentioned you in the following document:" msgstr "" -#: core/models.py:2125 +#: core/models.py:2216 msgid "email address" msgstr "電子郵件地址" -#: core/models.py:2144 +#: core/models.py:2235 msgid "Document invitation" msgstr "文件邀請" -#: core/models.py:2145 +#: core/models.py:2236 msgid "Document invitations" msgstr "文件邀請" -#: core/models.py:2165 +#: core/models.py:2256 msgid "This email is already associated to a registered user." msgstr "此電子郵件地址已與已註冊使用者關聯。" -#: core/models.py:2208 +#: core/models.py:2299 msgid "Migrated" msgstr "" -#: core/models.py:2209 +#: core/models.py:2300 msgid "Already migrated" msgstr "" -#: core/models.py:2210 +#: core/models.py:2301 msgid "Nothing in the object storage" msgstr "" -#: core/models.py:2211 +#: core/models.py:2302 msgid "No readable version" msgstr "" -#: core/models.py:2212 +#: core/models.py:2303 msgid "Failed" msgstr "" -#: core/models.py:2236 +#: core/models.py:2327 msgid "status" msgstr "" -#: core/models.py:2238 +#: core/models.py:2329 msgid "versions" msgstr "" -#: core/models.py:2241 +#: core/models.py:2332 msgid "applied" msgstr "" -#: core/models.py:2242 +#: core/models.py:2333 msgid "versions that added content, one activity entry each" msgstr "" -#: core/models.py:2246 +#: core/models.py:2337 msgid "skipped" msgstr "" -#: core/models.py:2247 +#: core/models.py:2338 msgid "versions that could not be read" msgstr "" -#: core/models.py:2251 +#: core/models.py:2342 msgid "dropped" msgstr "" -#: core/models.py:2252 +#: core/models.py:2343 msgid "versions older than the ones the server replays" msgstr "" -#: core/models.py:2254 +#: core/models.py:2345 msgid "duration" msgstr "" -#: core/models.py:2255 +#: core/models.py:2346 msgid "error" msgstr "" -#: core/models.py:2260 +#: core/models.py:2351 msgid "Document migration" msgstr "" -#: core/models.py:2261 +#: core/models.py:2352 msgid "Document migrations" msgstr "" @@ -634,7 +634,7 @@ msgstr " Docs,您團隊組織、分享及協作文件的全新必備工具。 msgid " Brought to you by %(brandname)s " msgstr " 由 %(brandname)s 提供 " -#: impress/settings.py:960 +#: impress/settings.py:974 msgid "Docs AI" msgstr "" diff --git a/src/backend/locale/zh_TW/LC_MESSAGES/django.po b/src/backend/locale/zh_TW/LC_MESSAGES/django.po index 44738bed68..b19e8b256a 100644 --- a/src/backend/locale/zh_TW/LC_MESSAGES/django.po +++ b/src/backend/locale/zh_TW/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: lasuite-docs\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-30 13:00+0000\n" -"PO-Revision-Date: 2026-10-02 09:08\n" +"POT-Creation-Date: 2026-10-05 12:41+0000\n" +"PO-Revision-Date: 2026-10-05 14:54\n" "Last-Translator: \n" "Language-Team: Chinese Traditional\n" "Language: zh_TW\n" @@ -78,12 +78,12 @@ msgstr "" msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration." msgstr "" -#: core/api/viewsets.py:1434 +#: core/api/viewsets.py:1439 #, python-brace-format msgid "copy of {title}" msgstr "" -#: core/api/viewsets.py:3334 +#: core/api/viewsets.py:3324 #, python-format msgid "A comment can have a maximum of %(max)d distinct reactions." msgstr "" @@ -148,198 +148,198 @@ msgstr "" msgid "Right" msgstr "" -#: core/models.py:80 +#: core/models.py:82 msgid "id" msgstr "" -#: core/models.py:81 +#: core/models.py:83 msgid "primary key for the record as UUID" msgstr "" -#: core/models.py:87 +#: core/models.py:89 msgid "created on" msgstr "" -#: core/models.py:88 +#: core/models.py:90 msgid "date and time at which a record was created" msgstr "" -#: core/models.py:93 core/models.py:2256 +#: core/models.py:95 core/models.py:2347 msgid "updated on" msgstr "" -#: core/models.py:94 +#: core/models.py:96 msgid "date and time at which a record was last updated" msgstr "" -#: core/models.py:130 +#: core/models.py:132 msgid "We couldn't find a user with this sub but the email is already associated with a registered user." msgstr "" -#: core/models.py:141 +#: core/models.py:143 msgid "sub" msgstr "" -#: core/models.py:142 +#: core/models.py:144 msgid "Required. 255 characters or fewer. ASCII characters only." msgstr "" -#: core/models.py:150 +#: core/models.py:152 msgid "full name" msgstr "" -#: core/models.py:152 +#: core/models.py:154 msgid "short name" msgstr "" -#: core/models.py:155 +#: core/models.py:157 msgid "identity email address" msgstr "" -#: core/models.py:160 +#: core/models.py:162 msgid "admin email address" msgstr "" -#: core/models.py:167 +#: core/models.py:169 msgid "language" msgstr "" -#: core/models.py:168 +#: core/models.py:170 msgid "The language in which the user wants to see the interface." msgstr "" -#: core/models.py:176 +#: core/models.py:178 msgid "The timezone in which the user wants to see times." msgstr "" -#: core/models.py:179 +#: core/models.py:181 msgid "device" msgstr "" -#: core/models.py:181 +#: core/models.py:183 msgid "Whether the user is a device or a real user." msgstr "" -#: core/models.py:184 +#: core/models.py:186 msgid "staff status" msgstr "" -#: core/models.py:186 +#: core/models.py:188 msgid "Whether the user can log into this admin site." msgstr "" -#: core/models.py:189 +#: core/models.py:191 msgid "active" msgstr "" -#: core/models.py:192 +#: core/models.py:194 msgid "Whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: core/models.py:197 +#: core/models.py:199 msgid "first connection status" msgstr "" -#: core/models.py:199 +#: core/models.py:201 msgid "Whether the user has completed the first connection process." msgstr "" -#: core/models.py:209 +#: core/models.py:211 msgid "user" msgstr "" -#: core/models.py:210 +#: core/models.py:212 msgid "users" msgstr "" -#: core/models.py:439 +#: core/models.py:469 msgid "Active email address" msgstr "" -#: core/models.py:440 +#: core/models.py:470 msgid "Email address to deactivate" msgstr "" -#: core/models.py:467 +#: core/models.py:497 msgid "Unique ID in the source file" msgstr "" -#: core/models.py:473 core/models.py:771 +#: core/models.py:503 core/models.py:812 msgid "Pending" msgstr "" -#: core/models.py:474 +#: core/models.py:504 msgid "Ready" msgstr "" -#: core/models.py:475 core/models.py:773 +#: core/models.py:505 core/models.py:814 msgid "Done" msgstr "" -#: core/models.py:476 core/models.py:774 +#: core/models.py:506 core/models.py:815 msgid "Error" msgstr "" -#: core/models.py:484 +#: core/models.py:514 msgid "user reconciliation" msgstr "" -#: core/models.py:485 +#: core/models.py:515 msgid "user reconciliations" msgstr "" -#: core/models.py:723 +#: core/models.py:764 msgid "You have requested a reconciliation of your user accounts on Docs.\n" " To confirm that you are the one who initiated the request\n" " and that this email belongs to you:" msgstr "" -#: core/models.py:729 +#: core/models.py:770 msgid "Confirm by clicking the link to start the reconciliation" msgstr "" -#: core/models.py:734 core/models.py:840 +#: core/models.py:775 core/models.py:881 msgid "Click here" msgstr "" -#: core/models.py:735 +#: core/models.py:776 msgid "Confirm" msgstr "" -#: core/models.py:746 +#: core/models.py:787 msgid "Your reconciliation request has been processed.\n" " New documents are likely associated with your account:" msgstr "" -#: core/models.py:751 +#: core/models.py:792 msgid "Your accounts have been merged" msgstr "" -#: core/models.py:756 +#: core/models.py:797 msgid "Click here to see" msgstr "" -#: core/models.py:757 +#: core/models.py:798 msgid "See my documents" msgstr "" -#: core/models.py:767 +#: core/models.py:808 msgid "CSV file" msgstr "" -#: core/models.py:772 +#: core/models.py:813 msgid "Running" msgstr "" -#: core/models.py:782 +#: core/models.py:823 msgid "user reconciliation CSV import" msgstr "" -#: core/models.py:783 +#: core/models.py:824 msgid "user reconciliation CSV imports" msgstr "" -#: core/models.py:827 +#: core/models.py:868 #, python-brace-format msgid "Your request for reconciliation was unsuccessful.\n" " Reconciliation failed for the following email addresses:\n" @@ -348,273 +348,273 @@ msgid "Your request for reconciliation was unsuccessful.\n" " You can submit another request with the valid email addresses." msgstr "" -#: core/models.py:835 +#: core/models.py:876 msgid "Reconciliation of your Docs accounts not completed" msgstr "" -#: core/models.py:841 +#: core/models.py:882 msgid "Make a new request" msgstr "" -#: core/models.py:956 +#: core/models.py:997 msgid "title" msgstr "" -#: core/models.py:957 +#: core/models.py:998 msgid "excerpt" msgstr "" -#: core/models.py:1004 +#: core/models.py:1045 msgid "Document" msgstr "" -#: core/models.py:1005 +#: core/models.py:1046 msgid "Documents" msgstr "" -#: core/models.py:1022 core/models.py:1351 core/models.py:2087 +#: core/models.py:1063 core/models.py:1442 core/models.py:2178 msgid "Untitled Document" msgstr "" -#: core/models.py:1352 +#: core/models.py:1443 msgid "Open" msgstr "" -#: core/models.py:1387 +#: core/models.py:1478 #, python-brace-format msgid "{name} shared a document with you!" msgstr "" -#: core/models.py:1391 +#: core/models.py:1482 #, python-brace-format msgid "{name} invited you with the role \"{role}\" on the following document:" msgstr "" -#: core/models.py:1397 +#: core/models.py:1488 #, python-brace-format msgid "{name} shared a document with you: {title}" msgstr "" -#: core/models.py:1497 +#: core/models.py:1588 msgid "Document/user link trace" msgstr "" -#: core/models.py:1498 +#: core/models.py:1589 msgid "Document/user link traces" msgstr "" -#: core/models.py:1504 +#: core/models.py:1595 msgid "A link trace already exists for this document/user." msgstr "" -#: core/models.py:1527 +#: core/models.py:1618 msgid "Document favorite" msgstr "" -#: core/models.py:1528 +#: core/models.py:1619 msgid "Document favorites" msgstr "" -#: core/models.py:1534 +#: core/models.py:1625 msgid "This document is already targeted by a favorite relation instance for the same user." msgstr "" -#: core/models.py:1556 +#: core/models.py:1647 msgid "Document/user relation" msgstr "" -#: core/models.py:1557 +#: core/models.py:1648 msgid "Document/user relations" msgstr "" -#: core/models.py:1563 +#: core/models.py:1654 msgid "This user is already in this document." msgstr "" -#: core/models.py:1569 +#: core/models.py:1660 msgid "This team is already in this document." msgstr "" -#: core/models.py:1575 +#: core/models.py:1666 msgid "Either user or team must be set, not both." msgstr "" -#: core/models.py:1726 +#: core/models.py:1817 msgid "Document ask for access" msgstr "" -#: core/models.py:1727 +#: core/models.py:1818 msgid "Document ask for accesses" msgstr "" -#: core/models.py:1733 +#: core/models.py:1824 msgid "This user has already asked for access to this document." msgstr "" -#: core/models.py:1790 +#: core/models.py:1881 #, python-brace-format msgid "{name} would like access to a document!" msgstr "" -#: core/models.py:1794 +#: core/models.py:1885 #, python-brace-format msgid "{name} would like access to the following document:" msgstr "" -#: core/models.py:1800 +#: core/models.py:1891 #, python-brace-format msgid "{name} is asking for access to the document: {title}" msgstr "" -#: core/models.py:1842 +#: core/models.py:1933 msgid "Thread" msgstr "" -#: core/models.py:1843 +#: core/models.py:1934 msgid "Threads" msgstr "" -#: core/models.py:1846 core/models.py:1899 +#: core/models.py:1937 core/models.py:1990 msgid "Anonymous" msgstr "" -#: core/models.py:1894 +#: core/models.py:1985 msgid "Comment" msgstr "" -#: core/models.py:1895 +#: core/models.py:1986 msgid "Comments" msgstr "" -#: core/models.py:1945 +#: core/models.py:2036 msgid "This emoji has already been reacted to this comment." msgstr "" -#: core/models.py:1949 +#: core/models.py:2040 msgid "Reaction" msgstr "" -#: core/models.py:1950 +#: core/models.py:2041 msgid "Reactions" msgstr "" -#: core/models.py:2001 +#: core/models.py:2092 msgid "Mention" msgstr "" -#: core/models.py:2002 +#: core/models.py:2093 msgid "Mentions" msgstr "" -#: core/models.py:2015 +#: core/models.py:2106 msgid "a deleted user" msgstr "" -#: core/models.py:2025 +#: core/models.py:2116 msgid "The thread does not belong to this document." msgstr "" -#: core/models.py:2089 +#: core/models.py:2180 #, python-brace-format msgid "{name} mentioned you in a comment in \"{title}\"" msgstr "" -#: core/models.py:2093 +#: core/models.py:2184 #, python-brace-format msgid "{name} mentioned you in a comment in the following document:" msgstr "" -#: core/models.py:2096 +#: core/models.py:2187 #, python-brace-format msgid "{name} mentioned you in \"{title}\"" msgstr "" -#: core/models.py:2099 +#: core/models.py:2190 #, python-brace-format msgid "{name} mentioned you in the following document:" msgstr "" -#: core/models.py:2125 +#: core/models.py:2216 msgid "email address" msgstr "" -#: core/models.py:2144 +#: core/models.py:2235 msgid "Document invitation" msgstr "" -#: core/models.py:2145 +#: core/models.py:2236 msgid "Document invitations" msgstr "" -#: core/models.py:2165 +#: core/models.py:2256 msgid "This email is already associated to a registered user." msgstr "" -#: core/models.py:2208 +#: core/models.py:2299 msgid "Migrated" msgstr "" -#: core/models.py:2209 +#: core/models.py:2300 msgid "Already migrated" msgstr "" -#: core/models.py:2210 +#: core/models.py:2301 msgid "Nothing in the object storage" msgstr "" -#: core/models.py:2211 +#: core/models.py:2302 msgid "No readable version" msgstr "" -#: core/models.py:2212 +#: core/models.py:2303 msgid "Failed" msgstr "" -#: core/models.py:2236 +#: core/models.py:2327 msgid "status" msgstr "" -#: core/models.py:2238 +#: core/models.py:2329 msgid "versions" msgstr "" -#: core/models.py:2241 +#: core/models.py:2332 msgid "applied" msgstr "" -#: core/models.py:2242 +#: core/models.py:2333 msgid "versions that added content, one activity entry each" msgstr "" -#: core/models.py:2246 +#: core/models.py:2337 msgid "skipped" msgstr "" -#: core/models.py:2247 +#: core/models.py:2338 msgid "versions that could not be read" msgstr "" -#: core/models.py:2251 +#: core/models.py:2342 msgid "dropped" msgstr "" -#: core/models.py:2252 +#: core/models.py:2343 msgid "versions older than the ones the server replays" msgstr "" -#: core/models.py:2254 +#: core/models.py:2345 msgid "duration" msgstr "" -#: core/models.py:2255 +#: core/models.py:2346 msgid "error" msgstr "" -#: core/models.py:2260 +#: core/models.py:2351 msgid "Document migration" msgstr "" -#: core/models.py:2261 +#: core/models.py:2352 msgid "Document migrations" msgstr "" @@ -634,7 +634,7 @@ msgstr "" msgid " Brought to you by %(brandname)s " msgstr "" -#: impress/settings.py:960 +#: impress/settings.py:974 msgid "Docs AI" msgstr "" diff --git a/src/backend/pyproject.toml b/src/backend/pyproject.toml index 5ac9d00372..3f9865b15b 100644 --- a/src/backend/pyproject.toml +++ b/src/backend/pyproject.toml @@ -2,12 +2,12 @@ # impress package # [build-system] -requires = ["uv_build>=0.11.9,<0.12"] +requires = ["uv_build>=0.12.19,<0.13"] build-backend = "uv_build" [project] name = "impress" -version = "5.7.0" +version = "6.0.0" authors = [{ "name" = "DINUM", "email" = "dev@mail.numerique.gouv.fr" }] classifiers = [ "Development Status :: 5 - Production/Stable", @@ -25,53 +25,53 @@ license = "MIT" requires-python = "~=3.14.0" dependencies = [ "beautifulsoup4==4.15.0", - "boto3==1.43.56", + "boto3==1.43.103", "Brotli==1.2.0", "celery[redis]==5.6.3", "dj-database-url==3.1.2", "django-configurations==2.5.1", "django-cors-headers==4.9.0", - "django-countries==9.0.0", + "django-countries==9.1.0", "django-csp==4.0", "django-filter==26.1", "django-lasuite[all]==0.0.30", "django-parler==2.4", "django-prometheus==2.5.0", "django-redis==7.0.0", - "django-silk==5.5.2", + "django-silk==5.6.0", "django-storages[s3]==1.14.6", "django-timezone-field>=5.1", "django<6.0.0", "django-treebeard<5.0.0", - "djangorestframework==3.17.2", + "djangorestframework==3.18.1", "django-waffle==5.0.0", "drf_spectacular==0.30.0", "dockerflow==2026.3.4", "easy_thumbnails==2.10.1", - "emoji==2.15.0", + "emoji==2.16.0", "factory_boy==3.3.3", - "gunicorn==26.0.0", - "joserfc==1.6.8", + "gunicorn==26.2.0", + "joserfc==1.7.5", "jsonschema==4.26.0", "langfuse==3.11.2", - "lxml==6.1.1", - "markdown==3.10.2", + "lxml==6.1.3", + "markdown==3.11", "mozilla-django-oidc==5.0.2", "nested-multipart-parser==1.6.0", - "openai==2.48.0", - "posthog==7.29.0", + "openai==3.19.2", + "posthog==7.60.1", "prometheus-client==0.26.0", - "psycopg[binary,pool]==3.3.4", - "pycrdt==0.14.1", - "pydantic==2.13.4", - "pydantic-ai-slim[openai,mistral,logfire,web]==1.107.1", + "psycopg[binary,pool]==3.3.6", + "pycrdt==0.14.6", + "pydantic==2.13.5", + "pydantic-ai-slim[logfire,mistral,openai,web]==2.53.0", "PyJWT[crypto]==2.15.0", "python-magic==0.4.27", "redis<6.0.0", "requests==2.34.2", - "sentry-sdk==2.66.1", - "servestatic==4.3.3", - "uvicorn==0.51.0", + "sentry-sdk==2.71.0", + "servestatic==4.3.4", + "uvicorn==0.54.0", ] [project.urls] @@ -83,23 +83,23 @@ dependencies = [ [project.optional-dependencies] dev = [ "django-extensions==4.1", - "django-test-migrations==1.5.0", - "drf-spectacular-sidecar==2026.7.1", + "django-test-migrations==1.7.0", + "drf-spectacular-sidecar==2026.9.1", "freezegun==1.5.5", "ipdb==0.13.13", - "ipython==9.15.0", + "ipython==9.17.1", "pyfakefs==6.2.0", "pylint-django==2.8.0", - "pylint==4.0.6", + "pylint==4.0.9", "pytest-asyncio==1.4.0", "pytest-cov==7.1.0", - "pytest-django==4.12.0", + "pytest-django==4.14.0", "pytest==9.1.1", "pytest-icdiff==0.9", "pytest-xdist==3.8.0", - "responses==0.26.2", + "responses==0.26.3", "ruff==0.16.0", - "types-requests==2.33.0.20260712", + "types-requests==2.33.0.20260906", ] [tool.basedpyright] diff --git a/src/backend/uv.lock b/src/backend/uv.lock index 05ca273484..9ceb87d764 100644 --- a/src/backend/uv.lock +++ b/src/backend/uv.lock @@ -25,14 +25,14 @@ wheels = [ [[package]] name = "anyio" -version = "4.13.0" +version = "4.14.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "idna" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/19/14/2c5dd9f512b66549ae92767a9c7b330ae88e1932ca57876909410251fe13/anyio-4.13.0.tar.gz", hash = "sha256:334b70e641fd2221c1505b3890c69882fe4a2df910cba14d97019b90b24439dc", size = 231622, upload-time = "2026-03-24T12:59:09.671Z" } +sdist = { url = "https://files.pythonhosted.org/packages/61/cc/a381afa6efea9f496eff839d4a6a1aed3bfafc7b3ab4b0d1b243a12573dd/anyio-4.14.2.tar.gz", hash = "sha256:cfa139f3ed1a23ee8f88a145ddb5ac7605b8bbfd8592baacd7ce3d8bb4313c7f", size = 260176, upload-time = "2026-07-12T20:29:07.082Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl", hash = "sha256:08b310f9e24a9594186fd75b4f73f4a4152069e3853f1ed8bfbf58369f4ad708", size = 114353, upload-time = "2026-03-24T12:59:08.246Z" }, + { url = "https://files.pythonhosted.org/packages/da/35/f2287558c17e29fafc8ef3daf819bb9834061cfa43bff8014f7df7f63bdc/anyio-4.14.2-py3-none-any.whl", hash = "sha256:9f505dda5ac9f0c8309b5e8bd445a8c2bf7246f3ce950121e45ea15bc41d1494", size = 125813, upload-time = "2026-07-12T20:29:05.763Z" }, ] [[package]] @@ -104,30 +104,30 @@ wheels = [ [[package]] name = "boto3" -version = "1.43.56" +version = "1.43.103" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "botocore" }, { name = "jmespath" }, { name = "s3transfer" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/53/05/23e1aa8c9e4b0399a61e7fd65c4f9cc0625121f24760e37471f776404abb/boto3-1.43.56.tar.gz", hash = "sha256:57c90df9fb026f2e6ae22530861198130203733c5c9ec4e5cca3a4037f5a8db4", size = 112673, upload-time = "2026-07-24T19:31:48.606Z" } +sdist = { url = "https://files.pythonhosted.org/packages/46/59/012898d78087105e9c20fe31605d3f1999921745e1890ee0f0d993846e2e/boto3-1.43.103.tar.gz", hash = "sha256:524821052527f6446d249bf710847b032d9b12135e346c9751777a0a2811cf04", size = 112687, upload-time = "2026-09-25T19:26:30.427Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b8/57/3a960c9f581c00f2a591901b46e035ff79ab3956d16607f12306b3b8d483/boto3-1.43.56-py3-none-any.whl", hash = "sha256:feb699d4ab241ef5c1b80bb58277be2aaad365cd4b672d7817e0bc59ee45131b", size = 140026, upload-time = "2026-07-24T19:31:47.155Z" }, + { url = "https://files.pythonhosted.org/packages/f2/66/6eb2e92c57b30e54c87fe14c8cd71de3aed9184f3cec95c39132a3fcc61f/boto3-1.43.103-py3-none-any.whl", hash = "sha256:574796187eb4e4fcaaf5c1b88c1724a1ba5a95bc27aeae5573676178666acc71", size = 140044, upload-time = "2026-09-25T19:26:29.085Z" }, ] [[package]] name = "botocore" -version = "1.43.62" +version = "1.43.108" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "jmespath" }, { name = "python-dateutil" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/4e/8d/36af6d99269a701f83809b87a01f4728699eb825ebdedee3a3d515b18f61/botocore-1.43.62.tar.gz", hash = "sha256:94efc419c9f0f41dc2415e4b6b62f04ae21b3ce3930fac47214c4d3f361ea8b8", size = 15818261, upload-time = "2026-07-31T19:35:06.235Z" } +sdist = { url = "https://files.pythonhosted.org/packages/61/16/6b4477f433da2c11193802f538330ce080076c2f38d817ad437ed3cd1465/botocore-1.43.108.tar.gz", hash = "sha256:ee4f75cf3bdbb0da7912e089950e8112f692016539d939312c771499958e6cfd", size = 16312879, upload-time = "2026-10-02T19:32:20.797Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c0/65/d5dae96de68ffc55acf87c3bae76e9dabeeca92aadf1223f20e9a7860aef/botocore-1.43.62-py3-none-any.whl", hash = "sha256:76de153de1ba3e242b2e6df6a13ab8a3fb35d17db562462969e661457b63166e", size = 15502622, upload-time = "2026-07-31T19:35:02.697Z" }, + { url = "https://files.pythonhosted.org/packages/7a/0b/4670b7e23914b5cc357be5ca45fae503b57d98ecff4b3eabea70412809fd/botocore-1.43.108-py3-none-any.whl", hash = "sha256:ab9d16c6b4350aaa54ed28202dfa2998b2d735fdbf3247eb60af469d8d48a5b8", size = 16008194, upload-time = "2026-10-02T19:32:15.086Z" }, ] [[package]] @@ -355,55 +355,65 @@ wheels = [ [[package]] name = "cryptography" -version = "48.0.0" +version = "50.0.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9f/a9/db8f313fdcd85d767d4973515e1db101f9c71f95fced83233de224673757/cryptography-48.0.0.tar.gz", hash = "sha256:5c3932f4436d1cccb036cb0eaef46e6e2db91035166f1ad6505c3c9d5a635920", size = 832984, upload-time = "2026-05-04T22:59:38.133Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/df/3d/01f6dd9190170a5a241e0e98c2d04be3664a9e6f5b9b872cde63aff1c3dd/cryptography-48.0.0-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:0c558d2cdffd8f4bbb30fc7134c74d2ca9a476f830bb053074498fbc86f41ed6", size = 8001587, upload-time = "2026-05-04T22:57:36.803Z" }, - { url = "https://files.pythonhosted.org/packages/b2/6e/e90527eef33f309beb811cf7c982c3aeffcce8e3edb178baa4ca3ae4a6fa/cryptography-48.0.0-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f5333311663ea94f75dd408665686aaf426563556bb5283554a3539177e03b8c", size = 4690433, upload-time = "2026-05-04T22:57:40.373Z" }, - { url = "https://files.pythonhosted.org/packages/90/04/673510ed51ddff56575f306cf1617d80411ee76831ccd3097599140efdfe/cryptography-48.0.0-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7995ef305d7165c3f11ae07f2517e5a4f1d5c18da1376a0a9ed496336b69e5f3", size = 4710620, upload-time = "2026-05-04T22:57:42.935Z" }, - { url = "https://files.pythonhosted.org/packages/14/d5/e9c4ef932c8d800490c34d8bd589d64a31d5890e27ec9e9ad532be893294/cryptography-48.0.0-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:40ba1f85eaa6959837b1d51c9767e230e14612eea4ef110ee8854ada22da1bf5", size = 4696283, upload-time = "2026-05-04T22:57:45.294Z" }, - { url = "https://files.pythonhosted.org/packages/0c/29/174b9dfb60b12d59ecfc6cfa04bc88c21b42a54f01b8aae09bb6e51e4c7f/cryptography-48.0.0-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:369a6348999f94bbd53435c894377b20ab95f25a9065c283570e70150d8abc3c", size = 5296573, upload-time = "2026-05-04T22:57:47.933Z" }, - { url = "https://files.pythonhosted.org/packages/95/38/0d29a6fd7d0d1373f0c0c88a04ba20e359b257753ac497564cd660fc1d55/cryptography-48.0.0-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:a0e692c683f4df67815a2d258b324e66f4738bd7a96a218c826dce4f4bd05d8f", size = 4743677, upload-time = "2026-05-04T22:57:50.067Z" }, - { url = "https://files.pythonhosted.org/packages/30/be/eef653013d5c63b6a490529e0316f9ac14a37602965d4903efed1399f32b/cryptography-48.0.0-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:18349bbc56f4743c8b12dc32e2bccb2cf83ee8b69a3bba74ef8ae857e26b3d25", size = 4330808, upload-time = "2026-05-04T22:57:52.301Z" }, - { url = "https://files.pythonhosted.org/packages/84/9e/500463e87abb7a0a0f9f256ec21123ecde0a7b5541a15e840ea54551fd81/cryptography-48.0.0-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:7e8eac43dfca5c4cccc6dad9a80504436fca53bb9bc3100a2386d730fbe6b602", size = 4695941, upload-time = "2026-05-04T22:57:54.603Z" }, - { url = "https://files.pythonhosted.org/packages/e3/dc/7303087450c2ec9e7fbb750e17c2abfbc658f23cbd0e54009509b7cc4091/cryptography-48.0.0-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:9ccdac7d40688ecb5a3b4a604b8a88c8002e3442d6c60aead1db2a89a041560c", size = 5252579, upload-time = "2026-05-04T22:57:57.207Z" }, - { url = "https://files.pythonhosted.org/packages/d0/c0/7101d3b7215edcdc90c45da544961fd8ed2d6448f77577460fa75a8443f7/cryptography-48.0.0-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:bd72e68b06bb1e96913f97dd4901119bc17f39d4586a5adf2d3e47bc2b9d58b5", size = 4743326, upload-time = "2026-05-04T22:57:59.535Z" }, - { url = "https://files.pythonhosted.org/packages/ac/d8/5b833bad13016f562ab9d063d68199a4bd121d18458e439515601d3357ec/cryptography-48.0.0-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:59baa2cb386c4f0b9905bd6eb4c2a79a69a128408fd31d32ca4d7102d4156321", size = 4826672, upload-time = "2026-05-04T22:58:01.996Z" }, - { url = "https://files.pythonhosted.org/packages/98/e1/7074eb8bf3c135558c73fc2bcf0f5633f912e6fb87e868a55c454080ef09/cryptography-48.0.0-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:9249e3cd978541d665967ac2cb2787fd6a62bddf1e75b3e347a594d7dacf4f74", size = 4972574, upload-time = "2026-05-04T22:58:03.968Z" }, - { url = "https://files.pythonhosted.org/packages/04/70/e5a1b41d325f797f39427aa44ef8baf0be500065ab6d8e10369d850d4a4f/cryptography-48.0.0-cp311-abi3-win32.whl", hash = "sha256:9c459db21422be75e2809370b829a87eb37f74cd785fc4aa9ea1e5f43b47cda4", size = 3294868, upload-time = "2026-05-04T22:58:06.467Z" }, - { url = "https://files.pythonhosted.org/packages/f4/ac/8ac51b4a5fc5932eb7ee5c517ba7dc8cd834f0048962b6b352f00f41ebf9/cryptography-48.0.0-cp311-abi3-win_amd64.whl", hash = "sha256:5b012212e08b8dd5edc78ef54da83dd9892fd9105323b3993eff6bea65dc21d7", size = 3817107, upload-time = "2026-05-04T22:58:08.845Z" }, - { url = "https://files.pythonhosted.org/packages/6b/84/70e3feea9feea87fd7cbe77efb2712ae1e3e6edf10749dc6e95f4e60e455/cryptography-48.0.0-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:3cb07a3ed6431663cd321ea8a000a1314c74211f823e4177fefa2255e057d1ec", size = 7986556, upload-time = "2026-05-04T22:58:11.172Z" }, - { url = "https://files.pythonhosted.org/packages/89/6e/18e07a618bb5442ba10cf4df16e99c071365528aa570dfcb8c02e25a303b/cryptography-48.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8c7378637d7d88016fa6791c159f698b3d3eed28ebf844ac36b9dc04a14dae18", size = 4684776, upload-time = "2026-05-04T22:58:13.712Z" }, - { url = "https://files.pythonhosted.org/packages/be/6a/4ea3b4c6c6759794d5ee2103c304a5076dc4b19ae1f9fe47dba439e159e9/cryptography-48.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cc90c0b39b2e3c65ef52c804b72e3c58f8a04ab2a1871272798e5f9572c17d20", size = 4698121, upload-time = "2026-05-04T22:58:16.448Z" }, - { url = "https://files.pythonhosted.org/packages/2f/59/6ff6ad6cae03bb887da2a5860b2c9805f8dac969ef01ce563336c49bd1d1/cryptography-48.0.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:76341972e1eff8b4bea859f09c0d3e64b96ce931b084f9b9b7db8ef364c30eff", size = 4690042, upload-time = "2026-05-04T22:58:18.544Z" }, - { url = "https://files.pythonhosted.org/packages/ca/b4/fc334ed8cfd705aca282fe4d8f5ae64a8e0f74932e9feecb344610cf6e4d/cryptography-48.0.0-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:55b7718303bf06a5753dcdccf2f3945cf18ad7bffde41b61226e4db31ab89a9c", size = 5282526, upload-time = "2026-05-04T22:58:20.75Z" }, - { url = "https://files.pythonhosted.org/packages/11/08/9f8c5386cc4cd90d8255c7cdd0f5baf459a08502a09de30dc51f553d38dc/cryptography-48.0.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:a64697c641c7b1b2178e573cbc31c7c6684cd56883a478d75143dbb7118036db", size = 4733116, upload-time = "2026-05-04T22:58:23.627Z" }, - { url = "https://files.pythonhosted.org/packages/b8/77/99307d7574045699f8805aa500fa0fb83422d115b5400a064ddd306d7750/cryptography-48.0.0-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:561215ea3879cb1cbbf272867e2efda62476f240fb58c64de6b393ae19246741", size = 4316030, upload-time = "2026-05-04T22:58:25.581Z" }, - { url = "https://files.pythonhosted.org/packages/fd/36/a608b98337af3cb2aff4818e406649d30572b7031918b04c87d979495348/cryptography-48.0.0-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:ad64688338ed4bc1a6618076ba75fd7194a5f1797ac60b47afe926285adb3166", size = 4689640, upload-time = "2026-05-04T22:58:27.747Z" }, - { url = "https://files.pythonhosted.org/packages/dd/a6/825010a291b4438aecc1f568bc428189fc1175515223632477c07dc0a6df/cryptography-48.0.0-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:906cbf0670286c6e0044156bc7d4af9cbb0ef6db9f73e52c3ec56ba6bdde5336", size = 5237657, upload-time = "2026-05-04T22:58:29.848Z" }, - { url = "https://files.pythonhosted.org/packages/b9/09/4e76a09b4caa29aad535ddc806f5d4c5d01885bd978bd984fbc6ca032cae/cryptography-48.0.0-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:ea8990436d914540a40ab24b6a77c0969695ed52f4a4874c5137ccf7045a7057", size = 4732362, upload-time = "2026-05-04T22:58:32.009Z" }, - { url = "https://files.pythonhosted.org/packages/18/78/444fa04a77d0cb95f417dda20d450e13c56ba8e5220fc892a1658f44f882/cryptography-48.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c18684a7f0cc9a3cb60328f496b8e3372def7c5d2df39ac267878b05565aaaae", size = 4819580, upload-time = "2026-05-04T22:58:34.254Z" }, - { url = "https://files.pythonhosted.org/packages/38/85/ea67067c70a1fd4be2c63d35eeed82658023021affccc7b17705f8527dd2/cryptography-48.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:9be5aafa5736574f8f15f262adc81b2a9869e2cfe9014d52a44633905b40d52c", size = 4963283, upload-time = "2026-05-04T22:58:36.376Z" }, - { url = "https://files.pythonhosted.org/packages/75/54/cc6d0f3deac3e81c7f847e8a189a12b6cdd65059b43dad25d4316abd849a/cryptography-48.0.0-cp314-cp314t-win32.whl", hash = "sha256:c17dfe85494deaeddc5ce251aebd1d60bbe6afc8b62071bb0b469431a000124f", size = 3270954, upload-time = "2026-05-04T22:58:38.791Z" }, - { url = "https://files.pythonhosted.org/packages/49/67/cc947e288c0758a4e5473d1dcb743037ab7785541265a969240b8885441a/cryptography-48.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:27241b1dc9962e056062a8eef1991d02c3a24569c95975bd2322a8a52c6e5e12", size = 3797313, upload-time = "2026-05-04T22:58:40.746Z" }, - { url = "https://files.pythonhosted.org/packages/f2/63/61d4a4e1c6b6bab6ce1e213cd36a24c415d90e76d78c5eb8577c5541d2e8/cryptography-48.0.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:58d00498e8933e4a194f3076aee1b4a97dfec1a6da444535755822fe5d8b0b86", size = 7983482, upload-time = "2026-05-04T22:58:43.769Z" }, - { url = "https://files.pythonhosted.org/packages/d5/ac/f5b5995b87770c693e2596559ffafe195b4033a57f14a82268a2842953f3/cryptography-48.0.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:614d0949f4790582d2cc25553abd09dd723025f0c0e7c67376a1d77196743d6e", size = 4683266, upload-time = "2026-05-04T22:58:46.064Z" }, - { url = "https://files.pythonhosted.org/packages/ec/c6/8b14f67e18338fbc4adb76f66c001f5c3610b3e2d1837f268f47a347dbbb/cryptography-48.0.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7ce4bfae76319a532a2dc68f82cc32f5676ee792a983187dac07183690e5c66f", size = 4696228, upload-time = "2026-05-04T22:58:48.22Z" }, - { url = "https://files.pythonhosted.org/packages/ea/73/f808fbae9514bd91b47875b003f13e284c8c6bdfd904b7944e803937eec1/cryptography-48.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:2eb992bbd4661238c5a397594c83f5b4dc2bc5b848c365c8f991b6780efcc5c7", size = 4689097, upload-time = "2026-05-04T22:58:50.9Z" }, - { url = "https://files.pythonhosted.org/packages/93/01/d86632d7d28db8ae83221995752eeb6639ffb374c2d22955648cf8d52797/cryptography-48.0.0-cp39-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:22a5cb272895dce158b2cacdfdc3debd299019659f42947dbdac6f32d68fe832", size = 5283582, upload-time = "2026-05-04T22:58:53.017Z" }, - { url = "https://files.pythonhosted.org/packages/02/e1/50edc7a50334807cc4791fc4a0ce7468b4a1416d9138eab358bfc9a3d70b/cryptography-48.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:2b4d59804e8408e2fea7d1fbaf218e5ec984325221db76e6a241a9abd6cdd95c", size = 4730479, upload-time = "2026-05-04T22:58:55.611Z" }, - { url = "https://files.pythonhosted.org/packages/6f/af/99a582b1b1641ff5911ac559beb45097cf79efd4ead4657f578ef1af2d47/cryptography-48.0.0-cp39-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:984a20b0f62a26f48a3396c72e4bc34c66e356d356bf370053066b3b6d54634a", size = 4326481, upload-time = "2026-05-04T22:58:57.607Z" }, - { url = "https://files.pythonhosted.org/packages/90/ee/89aa26a06ef0a7d7611788ffd571a7c50e368cc6a4d5eef8b4884e866edb/cryptography-48.0.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:5a5ed8fde7a1d09376ca0b40e68cd59c69fe23b1f9768bd5824f54681626032a", size = 4688713, upload-time = "2026-05-04T22:59:00.077Z" }, - { url = "https://files.pythonhosted.org/packages/70/ba/bcb1b0bb7a33d4c7c0c4d4c7874b4a62ae4f56113a5f4baefa362dfb1f0f/cryptography-48.0.0-cp39-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:8cd666227ef7af430aa5914a9910e0ddd703e75f039cef0825cd0da71b6b711a", size = 5238165, upload-time = "2026-05-04T22:59:02.317Z" }, - { url = "https://files.pythonhosted.org/packages/c9/70/ca4003b1ce5ca3dc3186ada51908c8a9b9ff7d5cab83cc0d43ee14ec144f/cryptography-48.0.0-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:9071196d81abc88b3516ac8cdfad32e2b66dd4a5393a8e68a961e9161ddc6239", size = 4729947, upload-time = "2026-05-04T22:59:05.255Z" }, - { url = "https://files.pythonhosted.org/packages/44/a0/4ec7cf774207905aef1a8d11c3750d5a1db805eb380ee4e16df317870128/cryptography-48.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:1e2d54c8be6152856a36f0882ab231e70f8ec7f14e93cf87db8a2ed056bf160c", size = 4822059, upload-time = "2026-05-04T22:59:07.802Z" }, - { url = "https://files.pythonhosted.org/packages/1e/75/a2e55f99c16fcac7b5d6c1eb19ad8e00799854d6be5ca845f9259eae1681/cryptography-48.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a5da777e32ffed6f85a7b2b3f7c5cbc88c146bfcd0a1d7baf5fcc6c52ee35dd4", size = 4960575, upload-time = "2026-05-04T22:59:09.851Z" }, - { url = "https://files.pythonhosted.org/packages/b8/23/6e6f32143ab5d8b36ca848a502c4bcd477ae75b9e1677e3530d669062578/cryptography-48.0.0-cp39-abi3-win32.whl", hash = "sha256:77a2ccbbe917f6710e05ba9adaa25fb5075620bf3ea6fb751997875aff4ae4bd", size = 3279117, upload-time = "2026-05-04T22:59:12.019Z" }, - { url = "https://files.pythonhosted.org/packages/9d/9a/0fea98a70cf1749d41d738836f6349d97945f7c89433a259a6c2642eefeb/cryptography-48.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:16cd65b9330583e4619939b3a3843eec1e6e789744bb01e7c7e2e62e33c239c8", size = 3792100, upload-time = "2026-05-04T22:59:14.884Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/9d/af/182eb91b0df3fe75c4d9f26fe70684569566745f6ba7e5c9c73a862c5252/cryptography-50.0.2.tar.gz", hash = "sha256:7b46165bb56eb4704e2eaaf86f3c940d19154535d9b0ca7d6d590b04060e00d5", size = 880623, upload-time = "2026-09-30T15:30:04.884Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/56/d194340cc4a57535e82e1bee9e89667ac4b7c13b5d3f59686deae3094dd5/cryptography-50.0.2-cp311-abi3-macosx_11_0_arm64.whl", hash = "sha256:fa8f5efb344d6908a1ce62f4a24e2e5780f825d6f53f5f50ec5ffacac72936cb", size = 3914904, upload-time = "2026-09-30T14:43:44.339Z" }, + { url = "https://files.pythonhosted.org/packages/d9/69/c9bd862c3bf43d6399c433caf002df16e2dffd4be49bdf515cda38038711/cryptography-50.0.2-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:79def8d059362e7831389ed3be0ecdf58a89386e1271e35dd9f5af84e81bffd0", size = 4731146, upload-time = "2026-09-30T14:43:47.113Z" }, + { url = "https://files.pythonhosted.org/packages/21/69/64cef1f702bf6657e0cc186ed1a2891d50d29fb41586b254e1c07adea261/cryptography-50.0.2-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:630ebfea3bf689d075f82316324ff7433dc447fe6bc1bfc76524b74b4a9567d2", size = 4719841, upload-time = "2026-09-30T14:43:49.01Z" }, + { url = "https://files.pythonhosted.org/packages/38/6b/61a3f8d8c5e1e49a6cddccafc4015cc1c0021360ab0acb4080e7a423644a/cryptography-50.0.2-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f9f6143a8c75945eb960d9eb98905a441394abfa24afaae239d514ffb2586480", size = 4738340, upload-time = "2026-09-30T14:43:50.932Z" }, + { url = "https://files.pythonhosted.org/packages/7b/2e/7212ca32fd43dc91f2f41db20160b268098874b4c9a0e7be94d6835f5b2e/cryptography-50.0.2-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:a582ab2ae1d34f67112cadc86702774c9ea4374df6bca6afe672817203c99134", size = 5367029, upload-time = "2026-09-30T14:43:52.911Z" }, + { url = "https://files.pythonhosted.org/packages/1a/f1/b474e930c4d910328780e3940da76f5aa5cbc48ce1fc14e44d239d9ea9db/cryptography-50.0.2-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:4061c0079120205fb760c58acab6443e217307dcf05e3702cf970e0689972856", size = 4753050, upload-time = "2026-09-30T14:43:55.272Z" }, + { url = "https://files.pythonhosted.org/packages/7c/52/9af10e80ac16b0fcc2123f9cbd5e7afbd0fd5075bb7a607c592258a39cda/cryptography-50.0.2-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:ac9ed99d81760c62fe89d5f0815cdfa1ba9a35141cf30f1c2d044f04b4803d2e", size = 4376724, upload-time = "2026-09-30T14:43:57.24Z" }, + { url = "https://files.pythonhosted.org/packages/71/37/6202e488cc1eb625ea110c292c6bda92823176e023f427d8d5660ce8d632/cryptography-50.0.2-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:87e9ce85beb6b328ba370cc6e6aea483c92617b4c95b1d33a49297eb662bfb04", size = 4737859, upload-time = "2026-09-30T14:43:59.541Z" }, + { url = "https://files.pythonhosted.org/packages/8f/30/e86d7d518489b0ae2497091a35287abcb1a2ce4037837a34afbe9b1d6964/cryptography-50.0.2-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:f265528741e048bce55c3463ed721fb0aa45a5888d8add8cfeccb3035451bbdc", size = 5324103, upload-time = "2026-09-30T14:44:01.901Z" }, + { url = "https://files.pythonhosted.org/packages/d3/69/2c833a049475e0a3444e94c7d0aca0aa51d166374a449b09e92ac98138de/cryptography-50.0.2-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:9dab55f57c74c3cad24c323bacbbd04be4705ba6eb0d92e920b1fc4837ed5079", size = 4752576, upload-time = "2026-09-30T14:44:04.545Z" }, + { url = "https://files.pythonhosted.org/packages/6c/5d/906970b83bbfc1f5bbfb677a143c181f2801f23b6a7204a3b47c42c97e65/cryptography-50.0.2-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:25784ce8b9621c90c643efb9e1e2162ab3b0224cae446ad5e70e7fcb1ce18b51", size = 4870819, upload-time = "2026-09-30T14:44:06.884Z" }, + { url = "https://files.pythonhosted.org/packages/68/e3/f2298d3bb55e0c4a91841ec4d01b3f020ba8c5fbf15ccdcc6dcf03f97025/cryptography-50.0.2-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:85d0d9a31b9098e98534226d5686b47264b95e62ce459dc2e62fdfc809f9fe93", size = 5030152, upload-time = "2026-09-30T14:44:09.443Z" }, + { url = "https://files.pythonhosted.org/packages/9a/4f/adfc442765721292fff86d314ce385d3249d22db42295c0dd057727b60f3/cryptography-50.0.2-cp311-abi3-win_amd64.whl", hash = "sha256:7afa5a6602a9f29af1f3a2965f831bae7c9d5d597b7cbb716d41ab3b7d89879c", size = 3824692, upload-time = "2026-09-30T14:44:11.671Z" }, + { url = "https://files.pythonhosted.org/packages/ce/cb/52eb3770c0d0be2702a98c6e96065ddc0a2877cf0845aa9c23397c142cd4/cryptography-50.0.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f785f6161f202ab04d8ca194158968798e480ca058943907972da5f12e2881e8", size = 3892731, upload-time = "2026-09-30T14:44:13.485Z" }, + { url = "https://files.pythonhosted.org/packages/19/8e/aa1fc533d4546b127b45de8aa024eb5933d23eff9debfe25931e56861095/cryptography-50.0.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0ecbc5652bdb6fc9eaf89a7d196e20941adfe812f43bc4ca05d9150496821047", size = 4710431, upload-time = "2026-09-30T14:44:15.427Z" }, + { url = "https://files.pythonhosted.org/packages/6a/64/72bc3f75176e7e406b748a3e3830432b8c51297b38368713df04dc04898a/cryptography-50.0.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ab50ee449bf968271e820086f10a33d101dd060370abc10bcd22279be2656539", size = 4694824, upload-time = "2026-09-30T14:44:17.69Z" }, + { url = "https://files.pythonhosted.org/packages/4e/c6/62c77550edfa5ca3f14bf44a1e6739b9fa09d6e998a11d97ed8213bccc98/cryptography-50.0.2-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:a9f7355e6fab51f6c369b86fb7571cffa05edee2c2121e0380a37fb9ac1cd5c1", size = 4716967, upload-time = "2026-09-30T14:44:19.661Z" }, + { url = "https://files.pythonhosted.org/packages/f4/37/cce70f150c432914460157a6ecc161752e053aa5ec0ef3b3f7dc6e31039a/cryptography-50.0.2-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:94e5e9f108ee10471288214d3d233fbfbb492840a8457eb85178d643ddeb32c7", size = 5328676, upload-time = "2026-09-30T14:44:21.744Z" }, + { url = "https://files.pythonhosted.org/packages/aa/9a/6f2f0304d634ceafdeaf23e84537336664ac419b5d07611675c2ad3f6b7a/cryptography-50.0.2-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:241449bf940a5d27309bd317e6f9a2af6932113818bb2b8f5c59ddc7ef16da18", size = 4727698, upload-time = "2026-09-30T14:44:24.178Z" }, + { url = "https://files.pythonhosted.org/packages/1d/de/66bcf9244d118663b2e1aaded8990f4640e3d7b7411870a5765f252074d2/cryptography-50.0.2-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:d8947001be83df1394050758ce0e745dd74fb134eef0a4b5124208dfc3a68c37", size = 4354821, upload-time = "2026-09-30T14:44:26.263Z" }, + { url = "https://files.pythonhosted.org/packages/bd/e6/db28a28c7b6c676addce89136de3d8db49ea825a8c863472e36e42ead4ad/cryptography-50.0.2-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:4a20ce1e5cb4284a86692fdcba7cb8754185c6b2e5c56fcef3751cf451d3cdc2", size = 4716748, upload-time = "2026-09-30T14:44:28.447Z" }, + { url = "https://files.pythonhosted.org/packages/30/96/01546c7f69ea0e2ab790a2e4f0934a4052fb9b388147fbf83c2fd72f1e57/cryptography-50.0.2-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:84f964e537f916e2cc85199e5a88742e964939b575ac8598b3f9d6cc416cdaf1", size = 5285085, upload-time = "2026-09-30T14:44:30.704Z" }, + { url = "https://files.pythonhosted.org/packages/6c/01/03263395f74d50b071e9e66daace3f8bef80493e5d410726f2ba8554736b/cryptography-50.0.2-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:828d49b0ff5a0e3975865571c5d91dbbdd0d38d8289b249a163e9425413a5e05", size = 4727268, upload-time = "2026-09-30T14:44:32.92Z" }, + { url = "https://files.pythonhosted.org/packages/eb/94/2bfe8f29ec0cc9c0d99359c4161adf32858e4934b72c6d100d2ac0bbe962/cryptography-50.0.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:deb9fde5c60e437ee4821bc9bc39ff31b42135c27e1dc61ef0a629389c1de62e", size = 4849503, upload-time = "2026-09-30T14:44:34.969Z" }, + { url = "https://files.pythonhosted.org/packages/54/44/e80651ecbf0e42b62e2bb5f5768916e07eea72e1297338956a61df361f88/cryptography-50.0.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:8c71ba2cd31fc93748c38e1b613200ff1c2665cbfd5341fe3a61cfde35a1430e", size = 5004057, upload-time = "2026-09-30T14:44:37.064Z" }, + { url = "https://files.pythonhosted.org/packages/f8/cc/1d33befb3cd7ea7e77d2d73f43f2066471da1b21f24a6156efcaabf6d2e8/cryptography-50.0.2-cp314-cp314t-win_amd64.whl", hash = "sha256:78198641e5be9521beea5aa782bb551a58068d10e6eb04c9c680c1b69f2e7d45", size = 3795868, upload-time = "2026-09-30T14:44:39.71Z" }, + { url = "https://files.pythonhosted.org/packages/2d/49/93f6a6e7a87c9aa68d44d3e1cdb5fe8f60c90d5d2f46acae9a56892816b8/cryptography-50.0.2-cp315-abi3.abi3t-macosx_11_0_arm64.whl", hash = "sha256:edc3342adf8f697fc5f59c887a304356f147b397809440ed64e2fa6af2f50f37", size = 4133708, upload-time = "2026-09-30T14:44:41.807Z" }, + { url = "https://files.pythonhosted.org/packages/8c/75/32ac2a56243d778805c16ca6a32b8f74fb757df7e28d7ecb560afafb59cf/cryptography-50.0.2-cp315-abi3.abi3t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d370b8d1dfcdf7130178137f6fbee6140774a1acc6cacefc4b42643ec11d0a3a", size = 4956267, upload-time = "2026-09-30T14:44:43.693Z" }, + { url = "https://files.pythonhosted.org/packages/aa/a4/2c8d734e43d97f0842ee9f1b7b4bfb3d0cf5e19edebf43c2afe6675c2320/cryptography-50.0.2-cp315-abi3.abi3t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f2f9bd7f90c64fe89253f0a2c05e3c4856072660429ce8831b4235bf29403a67", size = 4966465, upload-time = "2026-09-30T14:44:45.769Z" }, + { url = "https://files.pythonhosted.org/packages/c2/58/ee288c829a6f41f6235ae9dd33d82fd19b45442b65b4c8a3da36963d9f7a/cryptography-50.0.2-cp315-abi3.abi3t-manylinux_2_28_aarch64.whl", hash = "sha256:e275096ea1e60cc595cda2836fd4a6c725d1125108b868be17f53684d164e2cc", size = 4959356, upload-time = "2026-09-30T14:44:48.211Z" }, + { url = "https://files.pythonhosted.org/packages/92/20/9ded6d51ddd9897f6b6e81fb9ebea7951d7cc5d6c890b0ed8abf77a51a80/cryptography-50.0.2-cp315-abi3.abi3t-manylinux_2_28_ppc64le.whl", hash = "sha256:b13478603dcd0a2479ff8e87e2c19a7d525734686fe3c49542472293a204212d", size = 5548822, upload-time = "2026-09-30T14:44:50.86Z" }, + { url = "https://files.pythonhosted.org/packages/02/a8/8df951850d6b31d2a00218f19e2b3f999523437ed7a819df7fa427942fca/cryptography-50.0.2-cp315-abi3.abi3t-manylinux_2_28_x86_64.whl", hash = "sha256:58a0c478eeca76fe5e07993c5a0703def34a6dc6a0cda4f5564639b33112ffe7", size = 5001199, upload-time = "2026-09-30T14:44:53.379Z" }, + { url = "https://files.pythonhosted.org/packages/8b/f9/36b3022218ce75b7cdf068fb95f809f9bd0d820e4955ef43b90c255cc7ac/cryptography-50.0.2-cp315-abi3.abi3t-manylinux_2_31_armv7l.whl", hash = "sha256:d38cdff612d06fa6a32840d5e1b1f7a27cee4a349aa9085d94a67789d6bfd408", size = 4629333, upload-time = "2026-09-30T14:44:55.635Z" }, + { url = "https://files.pythonhosted.org/packages/8c/72/20f99a219f6af47cdd1cbd978c243b92d71496e168a746138af44ded4f29/cryptography-50.0.2-cp315-abi3.abi3t-manylinux_2_34_aarch64.whl", hash = "sha256:fdd28f912fccfec1846a94e2e1e8f9b0012f557f0c46fe4f3eb0d7a87afcf90b", size = 4958822, upload-time = "2026-09-30T14:44:59.639Z" }, + { url = "https://files.pythonhosted.org/packages/f2/20/196f112617fb08eb4d608a2a6c422373d46f9cc2857f38fc0667033c0899/cryptography-50.0.2-cp315-abi3.abi3t-manylinux_2_34_ppc64le.whl", hash = "sha256:cbc8738fd8526d80f35cb3a40d41f41a2e7030bb3b18b09a6778ef63d291c2fd", size = 5506351, upload-time = "2026-09-30T14:45:02.267Z" }, + { url = "https://files.pythonhosted.org/packages/24/95/83378121ef3eaaaf71d4b781577ff794acb39b9e1b87a3f156898c8497ed/cryptography-50.0.2-cp315-abi3.abi3t-manylinux_2_34_x86_64.whl", hash = "sha256:e105ab60406787da31fccc883fc0f733af1efd78f0136a4599692c4083a73d0c", size = 5000859, upload-time = "2026-09-30T14:45:05.009Z" }, + { url = "https://files.pythonhosted.org/packages/22/f7/70fd7ae4d1dbfa7ba29b02e1b9068771519a86027756510b700ce81086a8/cryptography-50.0.2-cp315-abi3.abi3t-musllinux_1_2_aarch64.whl", hash = "sha256:6f8700550aa1474a91e5dc07049c46f98b423b5b1ddd0483e0b51362eeeaf5be", size = 5092151, upload-time = "2026-09-30T15:29:15.932Z" }, + { url = "https://files.pythonhosted.org/packages/d4/be/688367b74de86984bd58d8efacfc7c9e68b89a6a22ced0fb4f38db50254a/cryptography-50.0.2-cp315-abi3.abi3t-musllinux_1_2_x86_64.whl", hash = "sha256:c71be1cbfa5cd9a41ee452acf1eccd82b2c05950358b106ec8ceb83411d1a020", size = 5286120, upload-time = "2026-09-30T15:29:18.309Z" }, + { url = "https://files.pythonhosted.org/packages/39/d1/55f8a3f2ef5d1529e16835ef10cf0fe3d559ce237b46dddc440c0bba3649/cryptography-50.0.2-cp315-abi3.abi3t-win_amd64.whl", hash = "sha256:c423ab384a46c4dff7217b2ea5ba2e11cffdeab6441acd04cf65a369caf0366c", size = 4111557, upload-time = "2026-09-30T15:29:20.155Z" }, + { url = "https://files.pythonhosted.org/packages/23/ad/ac987755d00e1e64273760228d2635ae38dae2be83e3c6e0d3289d91dec3/cryptography-50.0.2-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:0ec5f09541743261e66e291b4a0cbf0fb2997aeaab6d9e9c740b9dba1b58d1c2", size = 3943588, upload-time = "2026-09-30T15:29:22.265Z" }, + { url = "https://files.pythonhosted.org/packages/d5/8d/6d585339bedf85d45044c85d8412dac53f2bb6f918e8b7777efba1787844/cryptography-50.0.2-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c5e67125c7dca78d199ec4e116aa93dbb83494808ecbb8211a2cb09b1bf41dbd", size = 4756166, upload-time = "2026-09-30T15:29:24.58Z" }, + { url = "https://files.pythonhosted.org/packages/bf/f1/1c1f6874e8550cfddd4b688ceb38cefb6ed15ceed224d56f133f3d88c214/cryptography-50.0.2-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ee247f5c245c9a2fe7c8e2214e295918838e44e00a45a6718451e4004219e767", size = 4749145, upload-time = "2026-09-30T15:29:26.807Z" }, + { url = "https://files.pythonhosted.org/packages/c1/63/61b15dc1a8de03fe0adbe3fd7608b3ad5c73bf50993bbcb1faaa930afe33/cryptography-50.0.2-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:dfe9763530994147d9af1def057a5b9658b00e8f8fe8743d144d1e0911c2e454", size = 4763638, upload-time = "2026-09-30T15:29:28.588Z" }, + { url = "https://files.pythonhosted.org/packages/fc/35/b345bdfa40c9126df1a9d33236aa98418367931b8725f84fc3ae2b98dc59/cryptography-50.0.2-cp39-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:58ddb5a8e3179d12f19e4ea34d2d32e9d63a4baa142c875c1eb59f41b7243acd", size = 5382217, upload-time = "2026-09-30T15:29:30.589Z" }, + { url = "https://files.pythonhosted.org/packages/4f/87/ef344a9e616871f2519c22d6afcda79ddd5d35e9592d95eb6e677608d055/cryptography-50.0.2-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f21e8a22c8605750c7af886bab299a363721264061b4ac0a30efb73cfd58efc5", size = 4781387, upload-time = "2026-09-30T15:29:32.605Z" }, + { url = "https://files.pythonhosted.org/packages/90/5b/f2fdb13cd0b96f6f932c8627bb292a45f11c64d21620a8e120aee9a3b848/cryptography-50.0.2-cp39-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:9c8402a82ea0dc4ceeab793db05f0fafa8ca139ca34fcde5df0f596103c74107", size = 4403790, upload-time = "2026-09-30T15:29:34.374Z" }, + { url = "https://files.pythonhosted.org/packages/bc/ce/7e4f662b1e3c393513569e402cfc85ac7da0bd3d5435e122a3140219eb2d/cryptography-50.0.2-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:0ddc924c04591c2811ca024d62ecad4f7f6f08af8939c211438f48a16bd23602", size = 4764319, upload-time = "2026-09-30T15:29:36.149Z" }, + { url = "https://files.pythonhosted.org/packages/3c/3f/86ff33ce34cc0de6847fb96e035a1a760d81652e38643f617c02ad32ef7a/cryptography-50.0.2-cp39-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:a6557e5f38e065ca9fbdaf7cfc7435ecb1d113aa81a022d1b51921ee7432e227", size = 5338560, upload-time = "2026-09-30T15:29:39.053Z" }, + { url = "https://files.pythonhosted.org/packages/40/cf/6b5c8e2fd9202d98988ab7cb5cc5c991704c4ad55f492ff408e4969f83f1/cryptography-50.0.2-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:1981f1db4630889b9ef7803fadef12b056f428cb6b85c27ba57b774793b6093c", size = 4780973, upload-time = "2026-09-30T15:29:41.251Z" }, + { url = "https://files.pythonhosted.org/packages/10/bf/8d6ebc7dded797bd0f0160d52188021211f011a2b164ef0ae1dac4587465/cryptography-50.0.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:7a8701d6b584d76e909e3d305b7d126b41439876a5aaf76cddc67fc230eafa2e", size = 4897738, upload-time = "2026-09-30T15:29:43.106Z" }, + { url = "https://files.pythonhosted.org/packages/d4/aa/f3f6e0de7e6253b8baa8b2d8fb9d50924fa75cee3d4624bd4bc1208ee923/cryptography-50.0.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:ce47f66801c20ec6c6632453bb5960fe38939e9306970b48b3a5a26de7745d94", size = 5058280, upload-time = "2026-09-30T15:29:44.827Z" }, + { url = "https://files.pythonhosted.org/packages/f6/b6/a1faf3a27ae9405fb34b1713cc73b2d8a26b04d5c561578fa2e6ef3e5bb9/cryptography-50.0.2-cp39-abi3-win_amd64.whl", hash = "sha256:4e81d95e5bafc2d6e34e4bed780e53e4d5b9a2f928573428aa4d35fbec1eb0de", size = 3854095, upload-time = "2026-09-30T15:29:46.782Z" }, ] [[package]] @@ -486,15 +496,15 @@ wheels = [ [[package]] name = "django-countries" -version = "9.0.0" +version = "9.1.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "asgiref" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/6e/c1/1e8feb818164c3f23465c08cc3bc1cd7da7101506268a138a1b92ea40339/django_countries-9.0.0.tar.gz", hash = "sha256:a993416af08a8a4e6e866d56b71c7ce92351c81a2543da213cd7899917567a42", size = 614144, upload-time = "2026-06-10T00:39:28.841Z" } +sdist = { url = "https://files.pythonhosted.org/packages/de/7e/54c144d213ccdd4f3e74e044c4b6cb7a0c2ccf2e738886fd61b9a0a376df/django_countries-9.1.0.tar.gz", hash = "sha256:c1027417e1d1ebad5ac8fbc45a7578fc400c4fc895d6b865e001c16ba4be0939", size = 614115, upload-time = "2026-09-10T22:24:18Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5c/bb/5a17b339852f6486d02b4dd0033132082976c71f049ee909ccb42917be52/django_countries-9.0.0-py3-none-any.whl", hash = "sha256:21fce461733c856355c487d1f24b71338599482505004a0c2e521fd574a59fb1", size = 931759, upload-time = "2026-06-10T00:39:26.851Z" }, + { url = "https://files.pythonhosted.org/packages/9c/86/f4a3a1bc0827e19bd0ec7267d80725e4f02916d34a279747672436a0aa5b/django_countries-9.1.0-py3-none-any.whl", hash = "sha256:18c9f6e1a8e32356656b1db5ee94121310cbc3b91dc78171052a9ef9d57d5318", size = 928029, upload-time = "2026-09-10T22:24:16.325Z" }, ] [[package]] @@ -598,16 +608,16 @@ wheels = [ [[package]] name = "django-silk" -version = "5.5.2" +version = "5.6.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "django" }, { name = "gprof2dot" }, { name = "sqlparse" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/90/f4/e5f50497db9a3e59121237e3f74d6b2a2e5fc09ae0d242a659f3e0ca33c6/django_silk-5.5.2.tar.gz", hash = "sha256:c488ee1eab763a6f3d0db09a969e7a91b637743f04159cd8d10141386157ec0d", size = 4498731, upload-time = "2026-08-13T04:25:18.482Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d5/36/49ce4c5244dc3716b2c70919fb510eb4edc3fc0b36d2f4c096ca6f539949/django_silk-5.6.0.tar.gz", hash = "sha256:bb741fb8af45eba663e8ed832207d16ecd731496313311f6dfae5fe776bed38e", size = 4501978, upload-time = "2026-09-12T05:36:59.31Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ee/da/48607c4a756df4a3d37752006824004fe6ecb5e0a2b34864c97a9903ea08/django_silk-5.5.2-py3-none-any.whl", hash = "sha256:6f11ae724699192bdda247513aa40160fd5e7e3de3083ec307b7151d801d1d51", size = 1945106, upload-time = "2026-08-13T04:25:29.316Z" }, + { url = "https://files.pythonhosted.org/packages/2f/c4/3593fe23bad8bdaef7ad6360fa88cfa70618fd40b0b0935db9130b438429/django_silk-5.6.0-py3-none-any.whl", hash = "sha256:761300bde25b8ce3c381dc0710e82c792c099c0ee6558fad3165dc560a06dd48", size = 1946405, upload-time = "2026-09-12T05:37:10.558Z" }, ] [[package]] @@ -629,14 +639,11 @@ s3 = [ [[package]] name = "django-test-migrations" -version = "1.5.0" +version = "1.7.0" source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/be/ed/7fc6f8e89d83565fc4acb93ae0a2387d885ac83cda445cb6c570f302bf55/django_test_migrations-1.5.0.tar.gz", hash = "sha256:1cbff04b1e82c5564a6f635284907b381cc11a2ff883adff46776d9126824f07", size = 20143, upload-time = "2025-04-18T10:15:38.547Z" } +sdist = { url = "https://files.pythonhosted.org/packages/0f/26/6518a878dcdf5de8c20eee254a8dc942d8e907edbc5e131c1c3057837705/django_test_migrations-1.7.0.tar.gz", hash = "sha256:9b199fa3817b28846455d8a13434eed44d15cd1bd89a5144902f8e5212bc1199", size = 20635, upload-time = "2026-09-23T09:32:41.042Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c0/fe/38789c69f71adff9156bda7542d8fd05fcde1a109cf67bd7a1a139f8199f/django_test_migrations-1.5.0-py3-none-any.whl", hash = "sha256:96a08f085fc8bfaa53d44618341d82a2d22fd194c821cd81b147b66f0bec0da8", size = 25099, upload-time = "2025-04-18T10:15:37.16Z" }, + { url = "https://files.pythonhosted.org/packages/8c/3f/32851cdb5850136349ba5d7f5e2536e9f3460452b20508460f91218b4b6d/django_test_migrations-1.7.0-py3-none-any.whl", hash = "sha256:409d5437f7a2a9a47c4c9384902c8fa6d072c142f73b1d75a6df310831f9edea", size = 25542, upload-time = "2026-09-23T09:32:42.105Z" }, ] [[package]] @@ -677,14 +684,14 @@ wheels = [ [[package]] name = "djangorestframework" -version = "3.17.2" +version = "3.18.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "django" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/3b/35/c96055e700fdff25da3a7b7756cfd1d4dc54f38b9bc6d6c5e19e3a0fdc20/djangorestframework-3.17.2.tar.gz", hash = "sha256:89ed713b6dc83e1539f214b7d10808ae19bb8511004beba886225da6d5c9dafa", size = 906683, upload-time = "2026-08-05T07:47:22.5Z" } +sdist = { url = "https://files.pythonhosted.org/packages/8a/2e/b3ce9d449b1ed9f9dd74fb7dfbc5f20860d5f40c2b4b10a2c3eabd8ff579/djangorestframework-3.18.1.tar.gz", hash = "sha256:605d79fa2ec2f02905492e5ea13d903c2d842d0b4c915a57f7bf02ab9f3c91dd", size = 915653, upload-time = "2026-09-07T18:04:08.288Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a2/46/c14108e400b208c394325eb63fbae06c81341b6447fa1a6f9da718b17fe7/djangorestframework-3.17.2-py3-none-any.whl", hash = "sha256:cb0546a7415d5b46c04e0f4fe0a54b2109f4fdd5e83ca773c8c6183a6493d042", size = 899109, upload-time = "2026-08-05T07:47:20.853Z" }, + { url = "https://files.pythonhosted.org/packages/e8/83/5ed615e47339d8e65f62eb1a8133f8f046492eb3a25ad40d90acb9a208b3/djangorestframework-3.18.1-py3-none-any.whl", hash = "sha256:f1409d698967aaf82d5d98d76b549c8fba8bd92ebd0d83d24454508f72168dc2", size = 901373, upload-time = "2026-09-07T18:04:06.237Z" }, ] [[package]] @@ -715,14 +722,14 @@ wheels = [ [[package]] name = "drf-spectacular-sidecar" -version = "2026.7.1" +version = "2026.9.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "django" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/7a/51/9e038d14bf51a0bd051e8bcb690287349c908fa7ba69021d9f3e5d5ac51f/drf_spectacular_sidecar-2026.7.1.tar.gz", hash = "sha256:40113c4066c7bc3ef15a7ce1c40cda227a907a9986748024a813a9e0595eba25", size = 2593211, upload-time = "2026-07-01T13:39:06.084Z" } +sdist = { url = "https://files.pythonhosted.org/packages/67/87/ef9f1693499ac2c1bf3c33ce57e72c423aed51ab51f7ebd5d3a38f20c606/drf_spectacular_sidecar-2026.9.1.tar.gz", hash = "sha256:99c2b845d0a52b01a7a8e96736a48ef2099dc3dedea103012dfea41a9e4e9ecc", size = 2605997, upload-time = "2026-09-01T15:27:00.127Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/9d/76/d08f5c79f7643dbff4512605c28b75481966ed6c8cc9b397c9dd2ee91cd1/drf_spectacular_sidecar-2026.7.1-py3-none-any.whl", hash = "sha256:bc6d50c9b64660e45e09296d39553b3e759eedd825fc41d631ee5b3f88e0c5de", size = 2617384, upload-time = "2026-07-01T13:39:03.787Z" }, + { url = "https://files.pythonhosted.org/packages/19/3b/c4866e6304d09d8813883774dadc5ff70a355279fc2527af3a4004fdb5f0/drf_spectacular_sidecar-2026.9.1-py3-none-any.whl", hash = "sha256:1e521d0ff78c7ab1a873423fc6e6b82ef6bae863f170762e7410ac63b2c7b72f", size = 2628532, upload-time = "2026-09-01T15:26:58.472Z" }, ] [[package]] @@ -740,11 +747,11 @@ wheels = [ [[package]] name = "emoji" -version = "2.15.0" +version = "2.16.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a2/78/0d2db9382c92a163d7095fc08efff7800880f830a152cfced40161e7638d/emoji-2.15.0.tar.gz", hash = "sha256:eae4ab7d86456a70a00a985125a03263a5eac54cd55e51d7e184b1ed3b6757e4", size = 615483, upload-time = "2025-09-21T12:13:02.755Z" } +sdist = { url = "https://files.pythonhosted.org/packages/34/01/a25a9c13e2f8945d06b219e08e88a5dd8a504ad1a79f872f25d6814f498c/emoji-2.16.0.tar.gz", hash = "sha256:ff9e9b1c48389ef78ed1787e7693c555e84e6bb9bac16be1fd65e1616dbf80c8", size = 617905, upload-time = "2026-09-16T19:47:57.051Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e1/5e/4b5aaaabddfacfe36ba7768817bd1f71a7a810a43705e531f3ae4c690767/emoji-2.15.0-py3-none-any.whl", hash = "sha256:205296793d66a89d88af4688fa57fd6496732eb48917a87175a023c8138995eb", size = 608433, upload-time = "2025-09-21T12:13:01.197Z" }, + { url = "https://files.pythonhosted.org/packages/fd/8a/75e3177f374877b19dd3112820b071836ad1100f9f58424630b4783519bc/emoji-2.16.0-py3-none-any.whl", hash = "sha256:c4230d80640def9071599ff56b1b5950fe13a2a94c0da98c5deab12431b24330", size = 610912, upload-time = "2026-09-16T19:47:55.507Z" }, ] [[package]] @@ -812,15 +819,15 @@ wheels = [ [[package]] name = "genai-prices" -version = "0.1.1" +version = "0.1.9" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "httpx2" }, { name = "pydantic" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/83/9b/85e646305a90a2da18f1edf055498668391e71f9849d3e1754d66559a311/genai_prices-0.1.1.tar.gz", hash = "sha256:54a2237691e0aaefb057d10a0c3c20160accc9fc09521c64c03fcdb7a4a69f68", size = 91182, upload-time = "2026-08-01T09:02:49.552Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/f0/4b4c7f63de6d558714d2207808080dd0988d0317a54ebcde790e4f6c1b6e/genai_prices-0.1.9.tar.gz", hash = "sha256:20ec774d32ec5d345510877fac415f2560bbfeb081bc4cd4e7ebce57a5503e8d", size = 118447, upload-time = "2026-09-25T03:47:27.569Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6e/5e/cfe36dff790ffad6aeff8a069b6f36743987ac17053579035ee0a67635dd/genai_prices-0.1.1-py3-none-any.whl", hash = "sha256:de2e3d8ea3ca1d0d292025995c598da447a74e94f22cd3342df46941aeb5416b", size = 95300, upload-time = "2026-08-01T09:02:48.308Z" }, + { url = "https://files.pythonhosted.org/packages/1b/e0/57d07f653813b7ea9e3a82064a2b6a112f63004530ac665e0934829473c7/genai_prices-0.1.9-py3-none-any.whl", hash = "sha256:3da8faa0a126e4df7be36696b90abe2be1fea8826bfcf45d39d91bc397fa9d1d", size = 125549, upload-time = "2026-09-25T03:47:26.483Z" }, ] [[package]] @@ -855,14 +862,11 @@ wheels = [ [[package]] name = "gunicorn" -version = "26.0.0" +version = "26.2.0" source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "packaging" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/6d/b7/a4a3f632f823e432ce6bc65f62961b7980c898c77f075a2f7118cb3846fe/gunicorn-26.0.0.tar.gz", hash = "sha256:ca9346f85e3a4aeeb64d491045c16b9a35647abd37ea15efe53080eb8b090baf", size = 727286, upload-time = "2026-05-05T06:38:25.529Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d9/8a/e4ef6ee11701b6cd64702848415ffb69eeff85cb388a3c6c7fe86f22f3f8/gunicorn-26.2.0.tar.gz", hash = "sha256:62b864895d9ebff0b2f9867ba04fe811c93121596540830c9c916d0769668447", size = 787921, upload-time = "2026-08-24T15:05:59.3Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e6/40/9c2384fc2be4ad25dd4a49decd5ad9ea5a3639814c11bd40ab77cb9f0a14/gunicorn-26.0.0-py3-none-any.whl", hash = "sha256:40233d26a5f0d1872916188c276e21641155111c2853f0c2cd55260aec0d24fc", size = 212009, upload-time = "2026-05-05T06:38:23.007Z" }, + { url = "https://files.pythonhosted.org/packages/fe/85/7522a52e5e2f42faf1a129113ab63e548c42e103e9af395b7bfe65e403e2/gunicorn-26.2.0-py3-none-any.whl", hash = "sha256:bd249d0b3f7972f7432f0a6b6ff3b3ee2d129f70cd1ff6c09a9dd9e29a2b88e3", size = 228389, upload-time = "2026-08-24T15:05:57.67Z" }, ] [[package]] @@ -889,15 +893,15 @@ wheels = [ [[package]] name = "httpcore2" -version = "2.9.1" +version = "2.13.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "h11" }, { name = "truststore" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/39/a8/20ed1ed79cbc2ecdf5301c0968ab7c85547212e2a7bd126ddd2d986e206e/httpcore2-2.9.1.tar.gz", hash = "sha256:4d8acbf8b306f48c9d6046591fd5ba4037d1b1b1000d140fc2c3eab1e9a0c0e2", size = 67089, upload-time = "2026-07-24T09:21:03.867Z" } +sdist = { url = "https://files.pythonhosted.org/packages/cb/f3/1db7aa2bc2524062192bb0e0323969492d1883152a232fe36eea65f4e35c/httpcore2-2.13.1.tar.gz", hash = "sha256:e0aa977abe17e69a3b820a24542a6fa88702676d83880b8d194dcd18408e5103", size = 68071, upload-time = "2026-09-23T07:47:22.372Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/9f/fb/46c52b781975c335a2bcf1072c7bbc007cbdc8d674217f5ee1daba2c848b/httpcore2-2.9.1-py3-none-any.whl", hash = "sha256:6182472379e855fe4221246a2bb7ecede403bc61c6798062ae1787d051ccde26", size = 82809, upload-time = "2026-07-24T09:21:01.178Z" }, + { url = "https://files.pythonhosted.org/packages/09/ba/a4568248771ce81957bfb7cc600264a40fbcda092391ee1c415c50be4bea/httpcore2-2.13.1-py3-none-any.whl", hash = "sha256:e1e05d4f25f7d7d496bfb96748f6f4b67657b03da069b3a68c36069f3db73d0a", size = 83423, upload-time = "2026-09-23T07:47:19.365Z" }, ] [[package]] @@ -917,17 +921,27 @@ wheels = [ [[package]] name = "httpx2" -version = "2.9.1" +version = "2.13.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "anyio" }, - { name = "httpcore2" }, + { name = "anyio", marker = "sys_platform != 'emscripten'" }, + { name = "httpcore2", marker = "sys_platform != 'emscripten'" }, + { name = "httpx2-jsfetch", marker = "sys_platform == 'emscripten'" }, { name = "idna" }, - { name = "truststore" }, + { name = "truststore", marker = "sys_platform != 'emscripten'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d5/44/474bef2a0e9d90f1715d32cb98b0738695ca17ba324095fb2497ed7fbd59/httpx2-2.13.1.tar.gz", hash = "sha256:e48744a19e3af5ee48313d0ce5fe941d5422fae5705ea922a4aabf94d7800dfa", size = 100405, upload-time = "2026-09-23T07:47:23.052Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d8/9c/6fe8931fd9f381042a9e4c7d5a7b4cbf7016b252bec0c99a49fce42c3326/httpx2-2.13.1-py3-none-any.whl", hash = "sha256:6dff50fabc270ee5fd25d845d0b078ed20564579744d6d962850975996d2f9a4", size = 95597, upload-time = "2026-09-23T07:47:20.995Z" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/21/14/38128fbafd7e0ed41d874df6c9a653d47c2d111cfe59e2b4ac95161b4abd/httpx2-2.9.1.tar.gz", hash = "sha256:1932a768737e3666291582833da748cc4e563c337cf96706fccc04fa6e58764a", size = 95458, upload-time = "2026-07-24T09:21:04.972Z" } + +[[package]] +name = "httpx2-jsfetch" +version = "1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cd/c4/0e5636363151a2a1795e0a77617168b9ca438e1748ec05fc9b5687f93d64/httpx2_jsfetch-1.0.tar.gz", hash = "sha256:70a0e3eabfef7cce5ad9c629f7d01ca05e418f586646f4ddf14782e4c1454c60", size = 6872, upload-time = "2026-08-07T00:13:07.492Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/13/b8/cfd91c4ab9134d386d48f0b6ac662ff3d4be6efdee59ee1c67ebc3c0487c/httpx2-2.9.1-py3-none-any.whl", hash = "sha256:1820fe14a9ab1107bfeff39259987429450b070ec0ff38cc87eb0d8c97fdc71a", size = 91191, upload-time = "2026-07-24T09:21:02.6Z" }, + { url = "https://files.pythonhosted.org/packages/9b/43/832f631d32e4f1211caa2ba368317739fe71f0b8530e4c9d15dc454bac2a/httpx2_jsfetch-1.0-py3-none-any.whl", hash = "sha256:cb916b707601e69a07721aabc8f3f6659be3a6893bc1ff5c6f9e02241df2da32", size = 6382, upload-time = "2026-08-07T00:13:06.567Z" }, ] [[package]] @@ -948,21 +962,9 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl", hash = "sha256:7f952cbe720b688055e3f87de14f5c3e5fdaa8bc3928985c4077ca689de849a2", size = 65455, upload-time = "2026-06-02T14:34:06.319Z" }, ] -[[package]] -name = "importlib-metadata" -version = "8.7.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "zipp" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f3/49/3b30cad09e7771a4982d9975a8cbf64f00d4a1ececb53297f1d9a7be1b10/importlib_metadata-8.7.1.tar.gz", hash = "sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb", size = 57107, upload-time = "2025-12-21T10:00:19.278Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fa/5e/f8e9a1d23b9c20a551a8a02ea3637b4642e22c2626e3a13a9a29cdea99eb/importlib_metadata-8.7.1-py3-none-any.whl", hash = "sha256:5a1f80bf1daa489495071efbb095d75a634cf28a8bc299581244063b53176151", size = 27865, upload-time = "2025-12-21T10:00:18.329Z" }, -] - [[package]] name = "impress" -version = "5.7.0" +version = "6.0.0" source = { editable = "." } dependencies = [ { name = "beautifulsoup4" }, @@ -1040,14 +1042,14 @@ dev = [ [package.metadata] requires-dist = [ { name = "beautifulsoup4", specifier = "==4.15.0" }, - { name = "boto3", specifier = "==1.43.56" }, + { name = "boto3", specifier = "==1.43.103" }, { name = "brotli", specifier = "==1.2.0" }, { name = "celery", extras = ["redis"], specifier = "==5.6.3" }, { name = "dj-database-url", specifier = "==3.1.2" }, { name = "django", specifier = "<6.0.0" }, { name = "django-configurations", specifier = "==2.5.1" }, { name = "django-cors-headers", specifier = "==4.9.0" }, - { name = "django-countries", specifier = "==9.0.0" }, + { name = "django-countries", specifier = "==9.1.0" }, { name = "django-csp", specifier = "==4.0" }, { name = "django-extensions", marker = "extra == 'dev'", specifier = "==4.1" }, { name = "django-filter", specifier = "==26.1" }, @@ -1055,56 +1057,56 @@ requires-dist = [ { name = "django-parler", specifier = "==2.4" }, { name = "django-prometheus", specifier = "==2.5.0" }, { name = "django-redis", specifier = "==7.0.0" }, - { name = "django-silk", specifier = "==5.5.2" }, + { name = "django-silk", specifier = "==5.6.0" }, { name = "django-storages", extras = ["s3"], specifier = "==1.14.6" }, - { name = "django-test-migrations", marker = "extra == 'dev'", specifier = "==1.5.0" }, + { name = "django-test-migrations", marker = "extra == 'dev'", specifier = "==1.7.0" }, { name = "django-timezone-field", specifier = ">=5.1" }, { name = "django-treebeard", specifier = "<5.0.0" }, { name = "django-waffle", specifier = "==5.0.0" }, - { name = "djangorestframework", specifier = "==3.17.2" }, + { name = "djangorestframework", specifier = "==3.18.1" }, { name = "dockerflow", specifier = "==2026.3.4" }, { name = "drf-spectacular", specifier = "==0.30.0" }, - { name = "drf-spectacular-sidecar", marker = "extra == 'dev'", specifier = "==2026.7.1" }, + { name = "drf-spectacular-sidecar", marker = "extra == 'dev'", specifier = "==2026.9.1" }, { name = "easy-thumbnails", specifier = "==2.10.1" }, - { name = "emoji", specifier = "==2.15.0" }, + { name = "emoji", specifier = "==2.16.0" }, { name = "factory-boy", specifier = "==3.3.3" }, { name = "freezegun", marker = "extra == 'dev'", specifier = "==1.5.5" }, - { name = "gunicorn", specifier = "==26.0.0" }, + { name = "gunicorn", specifier = "==26.2.0" }, { name = "ipdb", marker = "extra == 'dev'", specifier = "==0.13.13" }, - { name = "ipython", marker = "extra == 'dev'", specifier = "==9.15.0" }, - { name = "joserfc", specifier = "==1.6.8" }, + { name = "ipython", marker = "extra == 'dev'", specifier = "==9.17.1" }, + { name = "joserfc", specifier = "==1.7.5" }, { name = "jsonschema", specifier = "==4.26.0" }, { name = "langfuse", specifier = "==3.11.2" }, - { name = "lxml", specifier = "==6.1.1" }, - { name = "markdown", specifier = "==3.10.2" }, + { name = "lxml", specifier = "==6.1.3" }, + { name = "markdown", specifier = "==3.11" }, { name = "mozilla-django-oidc", specifier = "==5.0.2" }, { name = "nested-multipart-parser", specifier = "==1.6.0" }, - { name = "openai", specifier = "==2.48.0" }, - { name = "posthog", specifier = "==7.29.0" }, + { name = "openai", specifier = "==3.19.2" }, + { name = "posthog", specifier = "==7.60.1" }, { name = "prometheus-client", specifier = "==0.26.0" }, - { name = "psycopg", extras = ["binary", "pool"], specifier = "==3.3.4" }, - { name = "pycrdt", specifier = "==0.14.1" }, - { name = "pydantic", specifier = "==2.13.4" }, - { name = "pydantic-ai-slim", extras = ["openai", "mistral", "logfire", "web"], specifier = "==1.107.1" }, + { name = "psycopg", extras = ["binary", "pool"], specifier = "==3.3.6" }, + { name = "pycrdt", specifier = "==0.14.6" }, + { name = "pydantic", specifier = "==2.13.5" }, + { name = "pydantic-ai-slim", extras = ["logfire", "mistral", "openai", "web"], specifier = "==2.53.0" }, { name = "pyfakefs", marker = "extra == 'dev'", specifier = "==6.2.0" }, { name = "pyjwt", extras = ["crypto"], specifier = "==2.15.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = "==4.0.6" }, + { name = "pylint", marker = "extra == 'dev'", specifier = "==4.0.9" }, { name = "pylint-django", marker = "extra == 'dev'", specifier = "==2.8.0" }, { name = "pytest", marker = "extra == 'dev'", specifier = "==9.1.1" }, { name = "pytest-asyncio", marker = "extra == 'dev'", specifier = "==1.4.0" }, { name = "pytest-cov", marker = "extra == 'dev'", specifier = "==7.1.0" }, - { name = "pytest-django", marker = "extra == 'dev'", specifier = "==4.12.0" }, + { name = "pytest-django", marker = "extra == 'dev'", specifier = "==4.14.0" }, { name = "pytest-icdiff", marker = "extra == 'dev'", specifier = "==0.9" }, { name = "pytest-xdist", marker = "extra == 'dev'", specifier = "==3.8.0" }, { name = "python-magic", specifier = "==0.4.27" }, { name = "redis", specifier = "<6.0.0" }, { name = "requests", specifier = "==2.34.2" }, - { name = "responses", marker = "extra == 'dev'", specifier = "==0.26.2" }, + { name = "responses", marker = "extra == 'dev'", specifier = "==0.26.3" }, { name = "ruff", marker = "extra == 'dev'", specifier = "==0.16.0" }, - { name = "sentry-sdk", specifier = "==2.66.1" }, - { name = "servestatic", specifier = "==4.3.3" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = "==2.33.0.20260712" }, - { name = "uvicorn", specifier = "==0.51.0" }, + { name = "sentry-sdk", specifier = "==2.71.0" }, + { name = "servestatic", specifier = "==4.3.4" }, + { name = "types-requests", marker = "extra == 'dev'", specifier = "==2.33.0.20260906" }, + { name = "uvicorn", specifier = "==0.54.0" }, ] provides-extras = ["dev"] @@ -1141,11 +1143,10 @@ wheels = [ [[package]] name = "ipython" -version = "9.15.0" +version = "9.17.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, - { name = "decorator" }, { name = "ipython-pygments-lexers" }, { name = "jedi" }, { name = "matplotlib-inline" }, @@ -1156,9 +1157,9 @@ dependencies = [ { name = "stack-data" }, { name = "traitlets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/53/59/165d3b4d75cc34add3122c4417ecb229085140ac573103c223cd01dde96f/ipython-9.15.0.tar.gz", hash = "sha256:da2819ce2aa83135257df830660b1176d986c3d2876db24df01974fa955b2756", size = 4442580, upload-time = "2026-06-26T11:03:35.913Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b9/32/99451b1283ec5d92ad77073f12e1c667dc10775384d8f15c2914207149dd/ipython-9.17.1.tar.gz", hash = "sha256:8919be8c27f20a6f4423145028063f6637b42a03ce57665bb12015ee1f073529", size = 4539289, upload-time = "2026-09-01T08:29:32.6Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/40/3a/948263ca3b9d65bb2b1b0c521b3a49fad5d59ada58724bd87d2bd5ff3f36/ipython-9.15.0-py3-none-any.whl", hash = "sha256:515ad9c3cdf0c932a5a9f6245419e8aba706b7bd03c3e1d3a1c83d9351d6aa6e", size = 630895, upload-time = "2026-06-26T11:03:33.809Z" }, + { url = "https://files.pythonhosted.org/packages/2d/1e/65b59cf518c106aa755e7f7da3099027738687a862ec785060702a481320/ipython-9.17.1-py3-none-any.whl", hash = "sha256:6d1645743cfd1a07eb695d85aa2b5fa66721f8cbae9431d4049f7084bbf06509", size = 639038, upload-time = "2026-09-01T08:29:30.673Z" }, ] [[package]] @@ -1196,37 +1197,38 @@ wheels = [ [[package]] name = "jiter" -version = "0.14.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6e/c1/0cddc6eb17d4c53a99840953f95dd3accdc5cfc7a337b0e9b26476276be9/jiter-0.14.0.tar.gz", hash = "sha256:e8a39e66dac7153cf3f964a12aad515afa8d74938ec5cc0018adcdae5367c79e", size = 165725, upload-time = "2026-04-10T14:28:42.01Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4f/1e/354ed92461b165bd581f9ef5150971a572c873ec3b68a916d5aa91da3cc2/jiter-0.14.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:6f396837fc7577871ca8c12edaf239ed9ccef3bbe39904ae9b8b63ce0a48b140", size = 315277, upload-time = "2026-04-10T14:27:18.109Z" }, - { url = "https://files.pythonhosted.org/packages/a6/95/8c7c7028aa8636ac21b7a55faef3e34215e6ed0cbf5ae58258427f621aa3/jiter-0.14.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:a4d50ea3d8ba4176f79754333bd35f1bbcd28e91adc13eb9b7ca91bc52a6cef9", size = 315923, upload-time = "2026-04-10T14:27:19.603Z" }, - { url = "https://files.pythonhosted.org/packages/47/40/e2a852a44c4a089f2681a16611b7ce113224a80fd8504c46d78491b47220/jiter-0.14.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce17f8a050447d1b4153bda4fb7d26e6a9e74eb4f4a41913f30934c5075bf615", size = 344943, upload-time = "2026-04-10T14:27:21.262Z" }, - { url = "https://files.pythonhosted.org/packages/fc/1f/670f92adee1e9895eac41e8a4d623b6da68c4d46249d8b556b60b63f949e/jiter-0.14.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f4f1c4b125e1652aefbc2e2c1617b60a160ab789d180e3d423c41439e5f32850", size = 369725, upload-time = "2026-04-10T14:27:22.766Z" }, - { url = "https://files.pythonhosted.org/packages/01/2f/541c9ba567d05de1c4874a0f8f8c5e3fd78e2b874266623da9a775cf46e0/jiter-0.14.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be808176a6a3a14321d18c603f2d40741858a7c4fc982f83232842689fe86dd9", size = 461210, upload-time = "2026-04-10T14:27:24.315Z" }, - { url = "https://files.pythonhosted.org/packages/ce/a9/c31cbec09627e0d5de7aeaec7690dba03e090caa808fefd8133137cf45bc/jiter-0.14.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:26679d58ba816f88c3849306dd58cb863a90a1cf352cdd4ef67e30ccf8a77994", size = 380002, upload-time = "2026-04-10T14:27:26.155Z" }, - { url = "https://files.pythonhosted.org/packages/50/02/3c05c1666c41904a2f607475a73e7a4763d1cbde2d18229c4f85b22dc253/jiter-0.14.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80381f5a19af8fa9aef743f080e34f6b25ebd89656475f8cf0470ec6157052aa", size = 354678, upload-time = "2026-04-10T14:27:27.701Z" }, - { url = "https://files.pythonhosted.org/packages/7d/97/e15b33545c2b13518f560d695f974b9891b311641bdcf178d63177e8801e/jiter-0.14.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:004df5fdb8ecbd6d99f3227df18ba1a259254c4359736a2e6f036c944e02d7c5", size = 358920, upload-time = "2026-04-10T14:27:29.256Z" }, - { url = "https://files.pythonhosted.org/packages/ad/d2/8b1461def6b96ba44530df20d07ef7a1c7da22f3f9bf1727e2d611077bf1/jiter-0.14.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cff5708f7ed0fa098f2b53446c6fa74c48469118e5cd7497b4f1cd569ab06928", size = 394512, upload-time = "2026-04-10T14:27:31.344Z" }, - { url = "https://files.pythonhosted.org/packages/e3/88/837566dd6ed6e452e8d3205355afd484ce44b2533edfa4ed73a298ea893e/jiter-0.14.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:2492e5f06c36a976d25c7cc347a60e26d5470178d44cde1b9b75e60b4e519f28", size = 521120, upload-time = "2026-04-10T14:27:33.299Z" }, - { url = "https://files.pythonhosted.org/packages/89/6b/b00b45c4d1b4c031777fe161d620b755b5b02cdade1e316dcb46e4471d63/jiter-0.14.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:7609cfbe3a03d37bfdbf5052012d5a879e72b83168a363deae7b3a26564d57de", size = 553668, upload-time = "2026-04-10T14:27:34.868Z" }, - { url = "https://files.pythonhosted.org/packages/ad/d8/6fe5b42011d19397433d345716eac16728ac241862a2aac9c91923c7509a/jiter-0.14.0-cp314-cp314-win32.whl", hash = "sha256:7282342d32e357543565286b6450378c3cd402eea333fc1ebe146f1fabb306fc", size = 207001, upload-time = "2026-04-10T14:27:36.455Z" }, - { url = "https://files.pythonhosted.org/packages/e5/43/5c2e08da1efad5e410f0eaaabeadd954812612c33fbbd8fd5328b489139d/jiter-0.14.0-cp314-cp314-win_amd64.whl", hash = "sha256:bd77945f38866a448e73b0b7637366afa814d4617790ecd88a18ca74377e6c02", size = 202187, upload-time = "2026-04-10T14:27:38Z" }, - { url = "https://files.pythonhosted.org/packages/aa/1f/6e39ac0b4cdfa23e606af5b245df5f9adaa76f35e0c5096790da430ca506/jiter-0.14.0-cp314-cp314-win_arm64.whl", hash = "sha256:f2d4c61da0821ee42e0cdf5489da60a6d074306313a377c2b35af464955a3611", size = 192257, upload-time = "2026-04-10T14:27:39.504Z" }, - { url = "https://files.pythonhosted.org/packages/05/57/7dbc0ffbbb5176a27e3518716608aa464aee2e2887dc938f0b900a120449/jiter-0.14.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1bf7ff85517dd2f20a5750081d2b75083c1b269cf75afc7511bdf1f9548beb3b", size = 323441, upload-time = "2026-04-10T14:27:41.039Z" }, - { url = "https://files.pythonhosted.org/packages/83/6e/7b3314398d8983f06b557aa21b670511ec72d3b79a68ee5e4d9bff972286/jiter-0.14.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8ef8791c3e78d6c6b157c6d360fbb5c715bebb8113bc6a9303c5caff012754a", size = 348109, upload-time = "2026-04-10T14:27:42.552Z" }, - { url = "https://files.pythonhosted.org/packages/ae/4f/8dc674bcd7db6dba566de73c08c763c337058baff1dbeb34567045b27cdc/jiter-0.14.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e74663b8b10da1fe0f4e4703fd7980d24ad17174b6bb35d8498d6e3ebce2ae6a", size = 368328, upload-time = "2026-04-10T14:27:44.574Z" }, - { url = "https://files.pythonhosted.org/packages/3b/5f/188e09a1f20906f98bbdec44ed820e19f4e8eb8aff88b9d1a5a497587ff3/jiter-0.14.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1aca29ba52913f78362ec9c2da62f22cdc4c3083313403f90c15460979b84d9b", size = 463301, upload-time = "2026-04-10T14:27:46.717Z" }, - { url = "https://files.pythonhosted.org/packages/ac/f0/19046ef965ed8f349e8554775bb12ff4352f443fbe12b95d31f575891256/jiter-0.14.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8b39b7d87a952b79949af5fef44d2544e58c21a28da7f1bae3ef166455c61746", size = 378891, upload-time = "2026-04-10T14:27:48.32Z" }, - { url = "https://files.pythonhosted.org/packages/c4/c3/da43bd8431ee175695777ee78cf0e93eacbb47393ff493f18c45231b427d/jiter-0.14.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78d918a68b26e9fab068c2b5453577ef04943ab2807b9a6275df2a812599a310", size = 360749, upload-time = "2026-04-10T14:27:49.88Z" }, - { url = "https://files.pythonhosted.org/packages/72/26/e054771be889707c6161dbdec9c23d33a9ec70945395d70f07cfea1e9a6f/jiter-0.14.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:b08997c35aee1201c1a5361466a8fb9162d03ae7bf6568df70b6c859f1e654a4", size = 358526, upload-time = "2026-04-10T14:27:51.504Z" }, - { url = "https://files.pythonhosted.org/packages/c3/0f/7bea65ea2a6d91f2bf989ff11a18136644392bf2b0497a1fa50934c30a9c/jiter-0.14.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:260bf7ca20704d58d41f669e5e9fe7fe2fa72901a6b324e79056f5d52e9c9be2", size = 393926, upload-time = "2026-04-10T14:27:53.368Z" }, - { url = "https://files.pythonhosted.org/packages/3c/a1/b1ff7d70deef61ac0b7c6c2f12d2ace950cdeecb4fdc94500a0926802857/jiter-0.14.0-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:37826e3df29e60f30a382f9294348d0238ef127f4b5d7f5f8da78b5b9e050560", size = 521052, upload-time = "2026-04-10T14:27:55.058Z" }, - { url = "https://files.pythonhosted.org/packages/0b/7b/3b0649983cbaf15eda26a414b5b1982e910c67bd6f7b1b490f3cfc76896a/jiter-0.14.0-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:645be49c46f2900937ba0eaf871ad5183c96858c0af74b6becc7f4e367e36e06", size = 553716, upload-time = "2026-04-10T14:27:57.269Z" }, - { url = "https://files.pythonhosted.org/packages/97/f8/33d78c83bd93ae0c0af05293a6660f88a1977caef39a6d72a84afab94ce0/jiter-0.14.0-cp314-cp314t-win32.whl", hash = "sha256:2f7877ed45118de283786178eceaf877110abacd04fde31efff3940ae9672674", size = 207957, upload-time = "2026-04-10T14:27:59.285Z" }, - { url = "https://files.pythonhosted.org/packages/d6/ac/2b760516c03e2227826d1f7025d89bf6bf6357a28fe75c2a2800873c50bf/jiter-0.14.0-cp314-cp314t-win_amd64.whl", hash = "sha256:14c0cb10337c49f5eafe8e7364daca5e29a020ea03580b8f8e6c597fed4e1588", size = 204690, upload-time = "2026-04-10T14:28:00.962Z" }, - { url = "https://files.pythonhosted.org/packages/dc/2e/a44c20c58aeed0355f2d326969a181696aeb551a25195f47563908a815be/jiter-0.14.0-cp314-cp314t-win_arm64.whl", hash = "sha256:5419d4aa2024961da9fe12a9cfe7484996735dca99e8e090b5c88595ef1951ff", size = 191338, upload-time = "2026-04-10T14:28:02.853Z" }, +version = "0.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9c/1f/8176d92e001f86505424b41664032ae26a882bc9ca41a32c803f373f9195/jiter-0.17.0.tar.gz", hash = "sha256:03e432f226a453851079fb84cd17c6da9991eab723e28d716f14ae3d906e0c12", size = 229037, upload-time = "2026-09-12T15:14:14.253Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/01/9e/23065f8e2c7a4c372c1b6f6622e4cfab4dc786cb5150052b1527e6a6a840/jiter-0.17.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:00d783a779c5664e16dbad5e3a3c3a75e128b07dd5f4765159658d9210a50ca5", size = 292210, upload-time = "2026-09-12T15:12:35.613Z" }, + { url = "https://files.pythonhosted.org/packages/ea/81/67b58647560bc82a4490d722caa8561d7a86a9f45d4fa620b7e5fe282c7a/jiter-0.17.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0619d806e260ecf0c2a64521942c94af5d547c9ec99b55ae4f51b538b5576a76", size = 321512, upload-time = "2026-09-12T15:12:36.907Z" }, + { url = "https://files.pythonhosted.org/packages/c7/07/6658359a25f55927f7f8bf0e16465dee2ccd0b2a1a5208acc0df8972e074/jiter-0.17.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dc0288ce39190ee33fe6e4ec73161eed34e7e2da509b525546ca061778d62b64", size = 343897, upload-time = "2026-09-12T15:12:38.189Z" }, + { url = "https://files.pythonhosted.org/packages/46/04/5d50a9f0319cbdc37fd53c27f8c313d46afc34f1b048219ae6d8ea068da4/jiter-0.17.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5a52a430d04225ffde633e6840bf2381d34c019ff98526b5929755b9052fb199", size = 326519, upload-time = "2026-09-12T15:12:39.532Z" }, + { url = "https://files.pythonhosted.org/packages/bb/c7/d02517832b29eb8275fdd0f4ce0f17b80f58cc4c3ebecd4d9ace990d633d/jiter-0.17.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:37f33d327900bf2879613b3363fd48df97b4232d0c41f54bcf2e790c2fc40a71", size = 341369, upload-time = "2026-09-12T15:12:41.486Z" }, + { url = "https://files.pythonhosted.org/packages/3b/07/499b5f5603501cdd93a73a6a176dfad9c96555a3ae58ca9f8e3acba63dc9/jiter-0.17.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6cf564d43c4388149ca58ee571d0f5ccf875e20d1fd4662fd94cc0d1ea3b10ef", size = 352160, upload-time = "2026-09-12T15:12:42.721Z" }, + { url = "https://files.pythonhosted.org/packages/f5/75/b04013c7743269d4533ef4e746fc0ed678a143968dd7448658e3f51daad2/jiter-0.17.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:523c499235fb65add25d4bb01b1c4709ce695efdc7deb6c0a7bc515b5c44e0fb", size = 345018, upload-time = "2026-09-12T15:12:44.192Z" }, + { url = "https://files.pythonhosted.org/packages/1d/96/cbb6fd1e42a77c8412ec4643db95059b30cdfc635e387cc9193e098ce268/jiter-0.17.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:455e4ab35cb2a4a91a8404e08fd3c621bae433922e59bf1c494fe20a426b013b", size = 329244, upload-time = "2026-09-12T15:12:45.491Z" }, + { url = "https://files.pythonhosted.org/packages/15/67/d3be402f398566a379bf40ae65be5c3505b14d9e95e0802a597ddde7ddee/jiter-0.17.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6871973bfbd4408f7f1c632b30bbb5bbd9671c1bc8650af6823e24b7be13709b", size = 335693, upload-time = "2026-09-12T15:12:46.935Z" }, + { url = "https://files.pythonhosted.org/packages/7f/8d/98e2c4130b93d64f1d67c89060b928d04102549bf05e64451c9e6024f9ca/jiter-0.17.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:77f6aac0137309b31448c1bdcda4c6c77077664a6d018ece8d94019c68a5a5b9", size = 484329, upload-time = "2026-09-12T15:12:48.361Z" }, + { url = "https://files.pythonhosted.org/packages/78/5e/8da91e49f0fbca37c3489fb4cf3ad6676d4965f00ae5468bca3a2513737a/jiter-0.17.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:93946d89fa04d5ba64dd323a8dd8d901676cb8a3c81d99ae4f6c051a9b4c3f2f", size = 521358, upload-time = "2026-09-12T15:12:49.856Z" }, + { url = "https://files.pythonhosted.org/packages/be/21/5388684a5a38af3557cd9c2424b9827c71809cff24373c75ef9d0d3dfba9/jiter-0.17.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:70f19a2ca8429f91e82eeffb2f51cb87bc2d6e953b009b91a92d29c3a16ccb03", size = 110459, upload-time = "2026-09-12T15:12:51.747Z" }, + { url = "https://files.pythonhosted.org/packages/b1/ad/58b3a93525d2ffca7f54d9dee441381990082bd1172fbeb8d6a3f72a4dc3/jiter-0.17.0-cp314-cp314-win32.whl", hash = "sha256:71dbd74314c5df52a1bccf7b8bca46d14e943af7a2012e73b23f49977ef194c8", size = 185043, upload-time = "2026-09-12T15:12:54.477Z" }, + { url = "https://files.pythonhosted.org/packages/7a/4a/1aa520eb6c359b262c14ff995ca7283837208ddfb1202082ce9d73cf214d/jiter-0.17.0-cp314-cp314-win_amd64.whl", hash = "sha256:ac3c6ee3264d6f5c44c617f90bc7e8b9e1587e7d6708c9d8f811cb65582ee312", size = 227163, upload-time = "2026-09-12T15:12:55.931Z" }, + { url = "https://files.pythonhosted.org/packages/cf/e4/5997f648794bd9b499491d0ff480b096cc9a9c65bdba29f57568e6aa1705/jiter-0.17.0-cp314-cp314-win_arm64.whl", hash = "sha256:6219adaf59711ba7063a52496e8ec6d3fa3e209d7827d83eee3b2abc780a1744", size = 183505, upload-time = "2026-09-12T15:12:58.196Z" }, + { url = "https://files.pythonhosted.org/packages/ac/4a/84a5ec271d09f7590b6073af5ee4abb44eab4ccace453b7e2c5ce45234ca/jiter-0.17.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:59bddbe6f9ffecc68d641e1e2d619ce64cf8a9e9eeb74e5c518f74fc87abf1b0", size = 321527, upload-time = "2026-09-12T15:12:59.394Z" }, + { url = "https://files.pythonhosted.org/packages/39/71/9e1fd0045f5920b4c36be35c3f0f0dfd123668684f8ad352619d7aa44183/jiter-0.17.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6cb41cd1432f1dc19a231cf70b54d42b2c9f05085155859263fce06fa4d41388", size = 340865, upload-time = "2026-09-12T15:13:00.756Z" }, + { url = "https://files.pythonhosted.org/packages/b7/2b/14627fd2bc377f3dd09491bcace6b90e34b4d7fea2f1f3295031ff91f528/jiter-0.17.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fd7790aa79c8b518e512ebcdfce9f11d8ef5f30efd43720c8a19a548b39fa489", size = 325412, upload-time = "2026-09-12T15:13:02.152Z" }, + { url = "https://files.pythonhosted.org/packages/4c/f3/8d5808f7bf0f456bde79e6393587183a0cee5f83d179fe1f7f1eff2ba067/jiter-0.17.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dbbfe4e3c21c8166980cddc5bee1a315df082454f007947dfb6fb73800768165", size = 340473, upload-time = "2026-09-12T15:13:03.485Z" }, + { url = "https://files.pythonhosted.org/packages/4f/da/1d8c7c6c4ae6b2423b94a81b6b907d37b28f87664e077427b531bf1b5313/jiter-0.17.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8c286860abfe8b100cac1c02e225e5776eb9216edd71ba17cdb237da4af32bc9", size = 350757, upload-time = "2026-09-12T15:13:04.828Z" }, + { url = "https://files.pythonhosted.org/packages/eb/96/c1813dcca15c5a370145a448aaea7d1f83f6f0228a5f1130e79340ee385f/jiter-0.17.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f753eb70b1474a29e635e7542ff7312e6d6b951e0b25e8a2e8c34eeb1ddcd478", size = 345203, upload-time = "2026-09-12T15:13:06.131Z" }, + { url = "https://files.pythonhosted.org/packages/d7/f7/fc61cbcf2992d169ede13648fc3fd8e2d3171a3669dde43cd4db556549ac/jiter-0.17.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:eae86b1f027031e39db2e0e9c4842221edb7b8cd474d23f87a79b3bd4b651768", size = 328322, upload-time = "2026-09-12T15:13:07.392Z" }, + { url = "https://files.pythonhosted.org/packages/8f/88/46418a3abbdffb7dc41b314200360f24f75faaeb35573e81c92de322cce9/jiter-0.17.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5bf350452a43173e69e1fc74847c57a60e3d7515807287f29849baa2a85d8718", size = 336570, upload-time = "2026-09-12T15:13:08.666Z" }, + { url = "https://files.pythonhosted.org/packages/f0/28/b8a55b949be6306df8888e365a8df05441de8a7b11289f6957004302e41e/jiter-0.17.0-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:da139721f4b7cafdbff580a4f511ea24cb91f4909330c6b926a1ca53836c0a59", size = 482879, upload-time = "2026-09-12T15:13:10.037Z" }, + { url = "https://files.pythonhosted.org/packages/75/3b/21d0afa53ba0680962c39f3eb95ed2946f8793369ed44b0c82b490723081/jiter-0.17.0-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:8079849db9a1371bfd90bad088458a8fb836261879df2233cc9632464ecf64e1", size = 520406, upload-time = "2026-09-12T15:13:11.456Z" }, + { url = "https://files.pythonhosted.org/packages/ef/03/bcbaf8b6b9ea23c2c074411f8ecfbb02d820abac5d0cb8f4e280209174a2/jiter-0.17.0-cp314-cp314t-win32.whl", hash = "sha256:8f770b0c77e5fac482e1ba03ca1a7e18286bfb213d749932a00a7e4cd5de5e06", size = 184434, upload-time = "2026-09-12T15:13:13.037Z" }, + { url = "https://files.pythonhosted.org/packages/7a/b5/5d6ce2c93ef6fe1241b37a9005547f9b6d58db1f07f39fe95807d4b98f51/jiter-0.17.0-cp314-cp314t-win_amd64.whl", hash = "sha256:c4289293e5278d9314b00f15c37f2120fa51d3d68565292e715524c750e775a9", size = 227392, upload-time = "2026-09-12T15:13:14.933Z" }, + { url = "https://files.pythonhosted.org/packages/f5/4b/1e52baf90187606e33a7b8cfa8f96f5829acd7f01870077eb01059ab76d0/jiter-0.17.0-cp314-cp314t-win_arm64.whl", hash = "sha256:4dfbfe5a6e1e80a7082af559f66386405025ec278833e0c649f69cbc6e1004cc", size = 182776, upload-time = "2026-09-12T15:13:16.239Z" }, ] [[package]] @@ -1240,14 +1242,14 @@ wheels = [ [[package]] name = "joserfc" -version = "1.6.8" +version = "1.7.5" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cryptography" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5d/ac/d4fd5b30f82900eac60d765f179f0ba005825ac462cc8ced6e13ec685ab3/joserfc-1.6.8.tar.gz", hash = "sha256:878620c553a6ebdd76ccdc356782fee3f735f21a356d079a546b42a4670ace5f", size = 232930, upload-time = "2026-05-27T03:22:37.819Z" } +sdist = { url = "https://files.pythonhosted.org/packages/19/94/80fea1514b7c6d7d37804d3fe9ca81455f633347fc98731bd71ffe1faa17/joserfc-1.7.5.tar.gz", hash = "sha256:d5ff536e658e17664f8c1b1ab60dc4aa62aa973fcef1edd33cc44bda45d6f5ea", size = 234990, upload-time = "2026-08-29T13:05:42.057Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/98/8c/5cdce2cf3ce8155849baf9a5e2ce77e89dc87ec3bdb38259e5d85fbc45bd/joserfc-1.6.8-py3-none-any.whl", hash = "sha256:22fb31a69094a5e6f44632002a9df2c30c941fc6c8ce1b037e92c03de954cf9f", size = 70927, upload-time = "2026-05-27T03:22:35.796Z" }, + { url = "https://files.pythonhosted.org/packages/67/c5/82addfd375e5ee6520644e0553e4aadde92d668c4fc99cc716d337fe7bb3/joserfc-1.7.5-py3-none-any.whl", hash = "sha256:add2c2c84e8373b084d526a8b53daba5d7a513a118cd2dcd9fc9f979d0922159", size = 71269, upload-time = "2026-08-29T13:05:40.718Z" }, ] [[package]] @@ -1329,7 +1331,7 @@ wheels = [ [[package]] name = "logfire" -version = "4.32.1" +version = "5.1.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "executing" }, @@ -1340,9 +1342,9 @@ dependencies = [ { name = "rich" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b5/d7/70c6def7f3f459b2d57aa7fb37863d31b8d877e391547f200ee8c31d2e30/logfire-4.32.1.tar.gz", hash = "sha256:8e7ff418b5f2629c8a8e9426283ff82c760a30f24516c4c389d6cbb1d9768c58", size = 1089612, upload-time = "2026-04-15T14:11:57.518Z" } +sdist = { url = "https://files.pythonhosted.org/packages/51/70/efb64888a6e375de10fa990169222493d5cf2a76ccb990c483b0ba7372df/logfire-5.1.1.tar.gz", hash = "sha256:7f9fc158988be37559045b054f278608d9fdc06bd9f875515ea6476bf260cb23", size = 1368530, upload-time = "2026-09-25T09:19:50.082Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a4/77/70f6d97d7d74d2f2eeb695fe491b28906ae5c350b48516bb237ace9a1778/logfire-4.32.1-py3-none-any.whl", hash = "sha256:cb7873efec0e94a3de6e603539daaa6509a454599621c80dd227fbfa0ade37d4", size = 313021, upload-time = "2026-04-15T14:11:54.024Z" }, + { url = "https://files.pythonhosted.org/packages/10/4e/714730339dfe5e5a517f2e8fc015a5137d9c147928eeda0d2a0524c2aa94/logfire-5.1.1-py3-none-any.whl", hash = "sha256:ee2e25b83830f52ea3d7a1b35cf6f783490b2ba349f0383ca8ae6f5ff2a4f7dd", size = 479430, upload-time = "2026-09-25T09:19:46.597Z" }, ] [package.optional-dependencies] @@ -1361,55 +1363,55 @@ wheels = [ [[package]] name = "lxml" -version = "6.1.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/05/3b/aab6728cae887456f409b4d75e8a01856e4f04bd510de38052a47768b680/lxml-6.1.1.tar.gz", hash = "sha256:ba96ae44888e0185281e937633a743ea90d5a196c6000f82565ebb0580012d40", size = 4197430, upload-time = "2026-05-18T19:19:06.424Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/13/e2/2e325795566de01d0d7c3bb57d3c370616b2d07b01214e84eec5d3b10963/lxml-6.1.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:19b7ab10b210b0b3ad7985d9ac4eb66ab09a90b20fe6e2f7ba55d01a234345d0", size = 8577146, upload-time = "2026-05-18T19:18:17.765Z" }, - { url = "https://files.pythonhosted.org/packages/93/cf/5630b5e4be7d2e6bee8efe83865c925221103cf0221303b104ce134b01e2/lxml-6.1.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:c08e5c694306507275f2290073350c4f32e383db15213b2c69e7ff39c1193840", size = 4623866, upload-time = "2026-05-18T19:18:30.669Z" }, - { url = "https://files.pythonhosted.org/packages/d2/51/3904907c063451cf8d4a5c9fe0cad95fa1f4ec57f4e3884fa0731bd7a305/lxml-6.1.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:74a9717fd0d82effef5c2854f0d917231d5324b5a3eb7275c43ac9fa32f97a14", size = 4950022, upload-time = "2026-05-18T19:19:31.958Z" }, - { url = "https://files.pythonhosted.org/packages/94/cd/9c7611a51c37a2830928405817cc5d56a97f64fab83cc3f628748b135749/lxml-6.1.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:efe0374196335f93b53269acd811b944f2e6bdc88e8894f214bd636455484909", size = 5086695, upload-time = "2026-05-18T19:19:34.764Z" }, - { url = "https://files.pythonhosted.org/packages/da/d6/24e3b5906abb0b674ff2ae195bc3ce59708df2bcd17cf17703b2d7dd643a/lxml-6.1.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ac931cdc9442c1763b8a8f6cd62c0c938737eafc5be75eff88df55fc73bc0d00", size = 5031642, upload-time = "2026-05-18T19:19:37.771Z" }, - { url = "https://files.pythonhosted.org/packages/2d/db/6ec54f99019838bff54785c51da07f189eb4676861c5f2730962b0d8d665/lxml-6.1.1-cp314-cp314-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:aee395f5d0927f947758b4ec119fd5fc8ec71f07a1c5c52077b30b04c0fa6955", size = 5647338, upload-time = "2026-05-18T19:19:40.553Z" }, - { url = "https://files.pythonhosted.org/packages/42/3d/ef4dcfffd22d27a61805d8ed9f7fb888495bc6aa88648fa07c1eaa5586b6/lxml-6.1.1-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9395002973c827b3ed67db77e6ec09f092919a587022174554096a269378fb13", size = 5239528, upload-time = "2026-05-18T19:19:43.657Z" }, - { url = "https://files.pythonhosted.org/packages/62/bb/37fb3f0dff146bdcfa78eec47879273820b2a0bf350ec236ce14bd0b1c26/lxml-6.1.1-cp314-cp314-manylinux_2_28_i686.whl", hash = "sha256:73bc2086f141224ebddb7fc5c6a36ca58b31b94b561e1dfe8e073e3270fad1e7", size = 5350730, upload-time = "2026-05-18T19:19:46.307Z" }, - { url = "https://files.pythonhosted.org/packages/90/42/43253f168388df4fae1f38c01df36ddb9bee39e2048167b54cdcbae85ea3/lxml-6.1.1-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:3779def59032b81e44a5f70096ef6bf2082f8d901937dca354474ba09782e245", size = 4697530, upload-time = "2026-05-18T19:19:49.889Z" }, - { url = "https://files.pythonhosted.org/packages/eb/a8/c5a8504f81bbdfc8e7094c2c850cdb4ed6777fc4d5ddd9e5ab819f3b0d54/lxml-6.1.1-cp314-cp314-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:86c89b9d55ebf820ad7c90bc533410f0d098054f293351f10603c0c46ff598f5", size = 5250670, upload-time = "2026-05-18T19:19:53.199Z" }, - { url = "https://files.pythonhosted.org/packages/77/b7/c7e76ab18744d75e21f320ebf9ff9d1ceae2b54dd431ea5a64caf26c9672/lxml-6.1.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:19607c6bbff2a44cf3fe8250abccd20942d3462473e0a721d01d379ed017e462", size = 5084485, upload-time = "2026-05-18T19:19:08.422Z" }, - { url = "https://files.pythonhosted.org/packages/31/31/b35c53f8ef7b7c31cacd23d3638652fff7bcd1deb6eedb709ab43b685908/lxml-6.1.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:c6ed5141a5c7507cf3ee76bd363b0d6f801e3321adc35b5d825a23115faa5465", size = 4737635, upload-time = "2026-05-18T19:19:12.321Z" }, - { url = "https://files.pythonhosted.org/packages/d9/06/31f23c813a7fe8e0cb1b175e915b08c9bf4e86d225b210feadbdbe519667/lxml-6.1.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:62aeb7e85b5d60320b9d77eef2e773994e2c0ce10121b277e0a19804e1654a5a", size = 5670681, upload-time = "2026-05-18T19:19:15.001Z" }, - { url = "https://files.pythonhosted.org/packages/1a/bc/ce619bccc89b1fd9ad8a8e1330ee3f3beff9f2ff95b712d7bbcdd6e22fc3/lxml-6.1.1-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:b1b963fd8f5caa68e99dfae060d54de1fe9cba899b8718b44a00cdca53c3e590", size = 5238229, upload-time = "2026-05-18T19:19:18.131Z" }, - { url = "https://files.pythonhosted.org/packages/2f/5d/b329acbbedc0b619ebc2be6cf7ee9ed07e80892c88d4dfd612c33805789a/lxml-6.1.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:63876be28efefa04a1df615b46770e82042cce445cfdce55160522f57b231ccb", size = 5264191, upload-time = "2026-05-18T19:19:21.118Z" }, - { url = "https://files.pythonhosted.org/packages/d6/85/be36fb1425b30db3c3f9df75fe86343ebffb79e6320bd7f588e25bfeac39/lxml-6.1.1-cp314-cp314-win32.whl", hash = "sha256:7f7a92e8583f06b1fd49d01158143b8461cfcd135dcb10ec807270a3051bd603", size = 3657202, upload-time = "2026-05-18T19:17:39.509Z" }, - { url = "https://files.pythonhosted.org/packages/b8/ce/3cf9a827342269f54d405a6202397de63f07c69cbd6ce7d183a3f0cba1e9/lxml-6.1.1-cp314-cp314-win_amd64.whl", hash = "sha256:b2d444f2e66624d68e9c6b211e28a76e22fff5fcabcfff4deac18b529b7d4137", size = 4064497, upload-time = "2026-05-18T19:18:14.662Z" }, - { url = "https://files.pythonhosted.org/packages/d9/3e/1a957bde8f0760039e627f94699f82caa782c9d838d86c3d28245ee67212/lxml-6.1.1-cp314-cp314-win_arm64.whl", hash = "sha256:3fd9728a2735fda14f4e8235830c86b539e9661e849665bf926d3f867943b4bf", size = 3741991, upload-time = "2026-05-19T19:22:59.111Z" }, - { url = "https://files.pythonhosted.org/packages/78/b2/00ed55b3a2efa4658fb795c38d1090ec9b3e8a6c3683d4441fa517f09c3b/lxml-6.1.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:787b2496d0dbe8cd180984e8d29e3a6f76e7ea34db781cb3bd55e4ba1ef8b4ee", size = 8827545, upload-time = "2026-05-18T19:18:41.193Z" }, - { url = "https://files.pythonhosted.org/packages/c0/73/74573db19baa618d5f266f2407898b087ff6927115b00b71e5fc1b700847/lxml-6.1.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:2c8daa471358dc2d6fcf02165e80ec68f77871a286df95bc5cc3816153b0fd2c", size = 4735736, upload-time = "2026-05-18T19:18:46.761Z" }, - { url = "https://files.pythonhosted.org/packages/16/02/6f7061f4f95f51e545d48e87647c54791d204a4e881be4156e7a26ba5338/lxml-6.1.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:acd7d70b64c0aae0c7922cca83d288a16f5f6da523637697872253415269baef", size = 4970291, upload-time = "2026-05-18T19:19:56.215Z" }, - { url = "https://files.pythonhosted.org/packages/b0/02/55fc057d8283427dea7d6edb102e7a840239c77a64a983d92f62a304c0e9/lxml-6.1.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4f0dd2f01f9f8a89f565d000e03abcf0a13d692a346c8d22f628d49af098777a", size = 5102822, upload-time = "2026-05-18T19:19:59.223Z" }, - { url = "https://files.pythonhosted.org/packages/e4/48/8e1cf78d89d66850121d9255a2a24414c98f775da93b90cf976956c24b14/lxml-6.1.1-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0b7e8a14c8634bf6f7a568634cb395305a6d964aeb5b7ee32248094bed3a7e2c", size = 5027923, upload-time = "2026-05-18T19:20:01.549Z" }, - { url = "https://files.pythonhosted.org/packages/ed/00/0632a0647612c8af24d26997b3b961397daa9d5b2581444805933629a4cb/lxml-6.1.1-cp314-cp314t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:86281fbdd6a8162756f8d603f37e3435bfa38043adb79c6dc6a2dfee065e7525", size = 5595843, upload-time = "2026-05-18T19:20:03.93Z" }, - { url = "https://files.pythonhosted.org/packages/bc/86/ab008a7dc360711b66858d61c80a5979a70a09f2aa2b05d9698df80b803d/lxml-6.1.1-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c5d7152ec39ca7c402d8fb9bad86140a15b9503bd0c54484e3f1bbe3dd37ceca", size = 5224515, upload-time = "2026-05-18T19:20:06.381Z" }, - { url = "https://files.pythonhosted.org/packages/75/c6/2702ff375e728e34f56d9a45339a9cf7e4427e917f542225242d63a05afa/lxml-6.1.1-cp314-cp314t-manylinux_2_28_i686.whl", hash = "sha256:88d8cb75b9d82858497a5393e3c63cfbf03035225e4b35a49ed7ccb151e4dc0e", size = 5312511, upload-time = "2026-05-18T19:20:09.308Z" }, - { url = "https://files.pythonhosted.org/packages/b7/57/a5807c98f87a86f10ef9ffab35516df7c0f0c4b6d5d33e9f608ab9c04a31/lxml-6.1.1-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:f64ec5397ea6a41fc1b4af0380d79b44a755b5531dcaccd9940fb260dca93038", size = 4639206, upload-time = "2026-05-18T19:20:11.704Z" }, - { url = "https://files.pythonhosted.org/packages/1f/e1/8a0a2c35734812395f4da4eaf33748a7e5705bfb2a58b128da764339d5ec/lxml-6.1.1-cp314-cp314t-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d34bbf07dbc7ca5970671b1512e928991fb5e9d95365636c9b2d8b4f53af405e", size = 5232404, upload-time = "2026-05-18T19:20:14.064Z" }, - { url = "https://files.pythonhosted.org/packages/c2/e2/0e6a4dd5ad84d01d99aa7bae7cfefd4a760a0e0f8176818241de17d9b6c0/lxml-6.1.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:17e0e18d4ad8adbd0399291bc44845b69d9dd68439a3cdebdf35ff902ec05072", size = 5083769, upload-time = "2026-05-18T19:19:23.758Z" }, - { url = "https://files.pythonhosted.org/packages/a0/7e/161f33d463f6ffc1c7679104b65086dea120080d49dde4d238f015aaee2f/lxml-6.1.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:3ab541146f1f6968c462d6c2ac495148e8cdba2f8347700b2141b6ec5a75bf52", size = 4758936, upload-time = "2026-05-18T19:19:27.256Z" }, - { url = "https://files.pythonhosted.org/packages/f1/fb/2369825e3f6ca99305bf9f7b7085fda91c8b0922a89e54d900974aa3ef85/lxml-6.1.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:2a0217714657e023ef4293500f65aa20fce6164c8fd6b08fa5bd4a859fb14b9b", size = 5620296, upload-time = "2026-05-18T19:19:29.993Z" }, - { url = "https://files.pythonhosted.org/packages/30/90/d61e383146f74c5ab683947ea14dc7b82778838ab9b95ea73a23b60d0191/lxml-6.1.1-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:05a82eb6e1530a64f26225b55cbd178113bd0b5af1c2b625f25e5296742c26d2", size = 5228598, upload-time = "2026-05-18T19:19:33.523Z" }, - { url = "https://files.pythonhosted.org/packages/76/2d/2dafd8149e94b05bb070690efd5bb2680720681e03ff03fc57d2b70a1105/lxml-6.1.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:9e36f163528fc50cbef305f02a5fd66d404edf7049cdaff211dbc2cba5a7013e", size = 5247845, upload-time = "2026-05-18T19:19:36.649Z" }, - { url = "https://files.pythonhosted.org/packages/ce/68/b30e913340c380ddac9580c6e6230991fc37240ec4f64704833e4f3e2769/lxml-6.1.1-cp314-cp314t-win32.whl", hash = "sha256:649dda677cf3bd6ac9ae14007ba0c824ded8ce5808b53fc7431d9140399118c1", size = 3897345, upload-time = "2026-05-18T19:17:33.562Z" }, - { url = "https://files.pythonhosted.org/packages/3c/4e/9eb2af5335545f9fbcd7af57bcf87c6025d31eaa31b14ec184a6c8675328/lxml-6.1.1-cp314-cp314t-win_amd64.whl", hash = "sha256:793033d6c5cdf33a573f910d9bea14ef8f5771820411d118da8e1182edb53d5e", size = 4393350, upload-time = "2026-05-18T19:18:10.076Z" }, - { url = "https://files.pythonhosted.org/packages/7f/2c/0f1e93c636720e8a3eb59af2bfda99d98b55891e1c53bc30c2e0e865f01b/lxml-6.1.1-cp314-cp314t-win_arm64.whl", hash = "sha256:58bb955caba94e467d2a96da17660d2d704e0675894cba21ab8a775b8621fd1c", size = 3817223, upload-time = "2026-05-19T19:22:56.823Z" }, +version = "6.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/23/ad/28ecd7cb894d172f3c9c80a075eeeb2017ac62e3632cee05a5f9493547eb/lxml-6.1.3.tar.gz", hash = "sha256:45222d94ddd511536f3b2f7d9deae3b2339b4ce0f075f1ca25703b07cad9dd21", size = 4211198, upload-time = "2026-09-02T14:48:02.287Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/15/fc75a70b0af6021d0ea16811f1fc71cc42cd06ce90fe10f007a69b2eed84/lxml-6.1.3-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:2bec13085dc8ef48a3fe62f7dfcacfeda2c785cdf19cc8eeda2bb9ed081da165", size = 8609725, upload-time = "2026-09-02T14:49:00.156Z" }, + { url = "https://files.pythonhosted.org/packages/84/ef/398fcf9018f881ec9aeaafae1ddd6586dfb13314a35d35e899de373dcae0/lxml-6.1.3-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:4f4db7c7e954d289d71878938348b3d91b904a3e8210a11939359fb758a58e7d", size = 4639629, upload-time = "2026-09-02T14:49:02.81Z" }, + { url = "https://files.pythonhosted.org/packages/a7/2d/49b6a6ad7ce8f64b07b9fe852ff0c6d3fcbb26db61bee4f63d4120180a1c/lxml-6.1.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2cae5d5c90a62d9139c512a0cb1aad1d182b022b5740daea2617eb5bf7fc658e", size = 4965074, upload-time = "2026-09-02T14:49:05.133Z" }, + { url = "https://files.pythonhosted.org/packages/66/bc/6230cf80e4331c33383b0b6b73dc31a393dd76edd4cb73d761de5123034d/lxml-6.1.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c6c0c13128a32eb04a51357e56a094e13aa8e6d3d1884de2e9ae923f6915e1a8", size = 5099355, upload-time = "2026-09-02T14:49:07.343Z" }, + { url = "https://files.pythonhosted.org/packages/ac/cf/d1143d9b7717e07a82f158a1fc9ce6e581fdad1226734950af869e3ffde4/lxml-6.1.3-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2221e88679d1351e9a40aaee54bc65679b9795bbd0160bc3d5e36b163344eb75", size = 5036795, upload-time = "2026-09-02T14:49:09.65Z" }, + { url = "https://files.pythonhosted.org/packages/31/6f/194bb00ffb89712c30f5a7e1b8e685590e140fad6c8261fec172c09a3dc0/lxml-6.1.3-cp314-cp314-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cfb398886a7eb4c719161c3efcff2a1248febc53a4d8e5072d2d8a87fed84ac9", size = 5658740, upload-time = "2026-09-02T14:49:11.9Z" }, + { url = "https://files.pythonhosted.org/packages/e9/44/27e3cee3dcdb3b7bc09727b642bdbfcd098490ea77df04611db9060d7722/lxml-6.1.3-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a7eb78ba28b187e1e9203a55c60fcf70df2d22cb205fe6d51b9383d6097419f0", size = 5245991, upload-time = "2026-09-02T14:49:14.154Z" }, + { url = "https://files.pythonhosted.org/packages/ca/e9/8312560579fc980bbd2233a8a673cc46f7d613d3633f2bf08a21e8f4ad13/lxml-6.1.3-cp314-cp314-manylinux_2_28_i686.whl", hash = "sha256:ea6b1e9105b4b24a34c722432d9fb578f9ed83af21fa1abda639011e0f22bbb6", size = 5354136, upload-time = "2026-09-02T14:49:16.459Z" }, + { url = "https://files.pythonhosted.org/packages/74/d8/eda60f4f73a9c780b5d6e1175484f66e6c81a2c93346e2906a1fec9c7a02/lxml-6.1.3-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:e8b17e23df3e827a69d25af70990ca2420e92668aaffaeeb3cd2351d7916a023", size = 4704379, upload-time = "2026-09-02T14:49:19.032Z" }, + { url = "https://files.pythonhosted.org/packages/ba/c8/c9cc60057be78ac34bd2b842e45e6e88edbfe5e532e82c3b82381b7aab49/lxml-6.1.3-cp314-cp314-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1b7c37339d7e75cab9a123a04248e243cefefb302ad6db566ea0c77cbcde421e", size = 5258676, upload-time = "2026-09-02T14:49:21.306Z" }, + { url = "https://files.pythonhosted.org/packages/41/7b/66894008fee8d1785b8db129747ae963fd427b68f456918df7f2f24a8b98/lxml-6.1.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:83e3a51e7933db700a0da0db31849db3a24022d9970da9bb73001e1d0326fd92", size = 5090069, upload-time = "2026-09-02T14:49:23.562Z" }, + { url = "https://files.pythonhosted.org/packages/8b/31/c1b60404859f4c3cd1f41f29c65a24e25cea78fde822d9574a21f66810be/lxml-6.1.3-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:9bde9ae026a55b9a192078dfa6e27dd0ca4a050171ab6272e92f97b757dfdf48", size = 4741958, upload-time = "2026-09-02T14:49:26.037Z" }, + { url = "https://files.pythonhosted.org/packages/23/b8/6285f0cf546f14da2554cabdeaf7c2c2ff3190c74807f0de2e8810a786f9/lxml-6.1.3-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:1a635e837b50a1819bebfedaac5916498ea024120969da8790500148fb0a894d", size = 5683245, upload-time = "2026-09-02T14:49:28.438Z" }, + { url = "https://files.pythonhosted.org/packages/d3/f6/2168cab44336dcb15fed0f0b78577225b83297cdf0dee349c95420c3dcb0/lxml-6.1.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:d0c5c362bc94f1929dc7e96e715bbe7bd17037f802e6d8f0d1545df9133c0559", size = 5246087, upload-time = "2026-09-02T14:49:30.955Z" }, + { url = "https://files.pythonhosted.org/packages/f5/89/32f5de69a0a31f30e6164981851f87b37ecb2c4ee838e504b88d49d4818e/lxml-6.1.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c59e4265608da6a041f54646ecc0c9ecdbb19aaf14c4c684bb6c2114998cc415", size = 5269352, upload-time = "2026-09-02T14:49:33.502Z" }, + { url = "https://files.pythonhosted.org/packages/a2/a1/741d952ed3a7ef7a50055c6415aec3f067015e97f72f4389ce77b09657ba/lxml-6.1.3-cp314-cp314-win32.whl", hash = "sha256:2e62c569ec7531b679b184cbfe335c501c1d13c4b363560013019962eb630e6d", size = 3662783, upload-time = "2026-09-02T14:50:23.751Z" }, + { url = "https://files.pythonhosted.org/packages/0f/bc/5811cc73cac05e324e05ba9b0924e1a163a317a167ede8a9c748b11db30a/lxml-6.1.3-cp314-cp314-win_amd64.whl", hash = "sha256:66299564c046bc7e0cc5de5106601eae907e9fa5904cd68a323380a8502f7861", size = 4073951, upload-time = "2026-09-02T14:50:26.348Z" }, + { url = "https://files.pythonhosted.org/packages/92/18/3768c8b01ac3a9bed1914715e6011711b00e2a11628ffa6f7fa37f8e0269/lxml-6.1.3-cp314-cp314-win_arm64.whl", hash = "sha256:ebd054ad1737a68fb7c5c073d405cef2b88bb824e294de3b4a4e995b47f0e376", size = 3749279, upload-time = "2026-09-02T14:50:28.749Z" }, + { url = "https://files.pythonhosted.org/packages/72/38/84684784738d9451db2b330de2483f496690c3a5c642071df24135739b37/lxml-6.1.3-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:5a143e6207579de8baeded4eaac9134413200359f1969d636f0bfb98ee8c3c8f", size = 8860296, upload-time = "2026-09-02T14:49:36.346Z" }, + { url = "https://files.pythonhosted.org/packages/24/b7/fc4c50bb1b38e864010ea396046cabe85129bf9e65b11edcfbc37d356241/lxml-6.1.3-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:a1cec0f99b9b914d39176347a93b7610dc09324491aee1cbc57cd291a41a1d55", size = 4755190, upload-time = "2026-09-02T14:49:39.872Z" }, + { url = "https://files.pythonhosted.org/packages/94/e2/ee9aa6ed2b666b2db1f6f7fd48964ff9da39ebe827ef5eac0ab881f639d9/lxml-6.1.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f6b9d2aad499c769ee8287609ab0e6de99d8bcea99c6e6c2e64945259fd52fb2", size = 4979517, upload-time = "2026-09-02T14:49:42.153Z" }, + { url = "https://files.pythonhosted.org/packages/29/e3/e7763d1661b283ddd4fa36f91b9a497db6b8d2aff55028b16c7f642e0755/lxml-6.1.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a23fefdb345b2d4d0ff2860571b5ff9a89a28b6a120f720e8fb0324d346626", size = 5115270, upload-time = "2026-09-02T14:49:44.493Z" }, + { url = "https://files.pythonhosted.org/packages/2d/cd/22205d5b4d177e3f4156f780412426ee7c7f8107809f119f0dcc40fa51e3/lxml-6.1.3-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:545ccc14fb05485f48b4439ec35beb16d5b5280eb6c81c658bd4707a2a119414", size = 5032449, upload-time = "2026-09-02T14:49:46.841Z" }, + { url = "https://files.pythonhosted.org/packages/da/43/06a4626c3bb79ef8c501b674afab8100d64e798665bb2a97d1c960636a49/lxml-6.1.3-cp314-cp314t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:93476b6514b373fc6ca67d26c442784f7807c86f00635bfe79f935c3eab2af17", size = 5603325, upload-time = "2026-09-02T14:49:49.664Z" }, + { url = "https://files.pythonhosted.org/packages/d0/9c/733682a0c2de9f5779ba207bbb3f3f6be8c6bda863fc01739b186b38783a/lxml-6.1.3-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8db38ff3fb7aee7d6a82ae4da2eef1178656fe1216841fbd24870062a9d60473", size = 5229023, upload-time = "2026-09-02T14:49:52.447Z" }, + { url = "https://files.pythonhosted.org/packages/c6/8a/e69cdaca3fd33a647942925664f01b20908d41a6968c182305be9c38fb11/lxml-6.1.3-cp314-cp314t-manylinux_2_28_i686.whl", hash = "sha256:25f4118c438f96bb466e83108506d03d5c31b1bd2387e83e5b070bda6ded9c37", size = 5317811, upload-time = "2026-09-02T14:49:55.25Z" }, + { url = "https://files.pythonhosted.org/packages/2e/b2/0c397588174403c2ab68fc464abf97e03e7324f9c6cb6a99023104707195/lxml-6.1.3-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:1beb0f9909b26cee938df9ba56b15252a84429b1fc30ce6fca161390b9789a70", size = 4646516, upload-time = "2026-09-02T14:49:57.761Z" }, + { url = "https://files.pythonhosted.org/packages/56/7e/cfea25afafbe49db8b225764f7f74bb37c2a7f5e717d917d3d4a5e098ed4/lxml-6.1.3-cp314-cp314t-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3a27ac6c780c8b8a1cd231b58407634cafc1c4cc28cd6c7141362df0f36351e7", size = 5240626, upload-time = "2026-09-02T14:50:00.279Z" }, + { url = "https://files.pythonhosted.org/packages/a1/75/7a587771bb52ebb0e2c57b6dbe9fd96a70fbb54d72ddd97d54c5f8ec18d5/lxml-6.1.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:a1932d7ce78a561367512c594fe66eac2b2ec9b9264cfd9b5f950622f4a116e2", size = 5086619, upload-time = "2026-09-02T14:50:03.245Z" }, + { url = "https://files.pythonhosted.org/packages/1e/01/94c0ebe6d831861542d251e038052e52bf6d33f1d18f1cfffdc82851065a/lxml-6.1.3-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:7d0f5976aa2701996f759b30172925829867547bb073af0ae67d1307a0f0262c", size = 4758828, upload-time = "2026-09-02T14:50:05.873Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f1/938d67bd0e5b1fdfa52be28aefdffbad57e1f6b8e921c2aab88542c75f40/lxml-6.1.3-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:c5e7ce578aa8a80910a72a8ca0bbea3baae10100827249001999726a788456d8", size = 5627083, upload-time = "2026-09-02T14:50:08.555Z" }, + { url = "https://files.pythonhosted.org/packages/d8/65/4e51522f6c214650db0abb7b16ccd11b1238b8a05a8d59aa4ebed59c9f67/lxml-6.1.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:d97c5227621af74b111882a290b10f371780a38eef9d9e730408fba2259b52fb", size = 5235170, upload-time = "2026-09-02T14:50:11.255Z" }, + { url = "https://files.pythonhosted.org/packages/92/c2/e73d19365665f6b16ef84df21199befc3b06e4c539046ad2d9595f6fb9ea/lxml-6.1.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:da707f14ea3c35ee463d50acd596d6488e4b2b4ae7cf77a5bf93f55c023d63e8", size = 5252273, upload-time = "2026-09-02T14:50:13.782Z" }, + { url = "https://files.pythonhosted.org/packages/48/a9/7f386c84c9fe2854e1ca6e231c285e1c8f392971ac353c6865e6ec49faff/lxml-6.1.3-cp314-cp314t-win32.whl", hash = "sha256:9efe56a68179f3adc4de41861c9358931db03837c48dd5e1c78077b84dd07f3a", size = 3902712, upload-time = "2026-09-02T14:50:16.171Z" }, + { url = "https://files.pythonhosted.org/packages/82/a6/8a3eb793f7900ef01c7f99e6f5fcbcfbdff35251cfaef66b32a4c16352d6/lxml-6.1.3-cp314-cp314t-win_amd64.whl", hash = "sha256:c9389b3784b56c58d933b5e0aecdf28f901b073ff385358d8a7d40907f6e14b2", size = 4400979, upload-time = "2026-09-02T14:50:18.621Z" }, + { url = "https://files.pythonhosted.org/packages/cc/c4/3807bea283b4fe9e9d9f5dde46a73df91178472b335d2778e10b2a37aa22/lxml-6.1.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32a409be3190b088f960ac92bfedfbef2f86c49ff940765e1548177592d20026", size = 3823401, upload-time = "2026-09-02T14:50:21.119Z" }, ] [[package]] name = "markdown" -version = "3.10.2" +version = "3.11" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2b/f4/69fa6ed85ae003c2378ffa8f6d2e3234662abd02c10d216c0ba96081a238/markdown-3.10.2.tar.gz", hash = "sha256:994d51325d25ad8aa7ce4ebaec003febcce822c3f8c911e3b17c52f7f589f950", size = 368805, upload-time = "2026-02-09T14:57:26.942Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f8/4f/700155c8c20d9e655dd0732b5fc3c7614f291b9148da271d7388e50bf774/markdown-3.11.tar.gz", hash = "sha256:180224db6aed87ba9ce1f2781ebcd5826253de8ff637112090e24b84502bbf9f", size = 485623, upload-time = "2026-09-25T13:46:23.473Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/de/1f/77fa3081e4f66ca3576c896ae5d31c3002ac6607f9747d2e3aa49227e464/markdown-3.10.2-py3-none-any.whl", hash = "sha256:e91464b71ae3ee7afd3017d9f358ef0baf158fd9a298db92f1d4761133824c36", size = 108180, upload-time = "2026-02-09T14:57:25.787Z" }, + { url = "https://files.pythonhosted.org/packages/ec/1e/32971905a7ab47f8b66866ed949fa48b104ba1c4a6fa57794c4f2c4b2cb8/markdown-3.11-py3-none-any.whl", hash = "sha256:cd6c89e7eb308c8b332ed673215a52d208a43f8bacc030b1419376129408719e", size = 111296, upload-time = "2026-09-25T13:46:22.163Z" }, ] [[package]] @@ -1456,11 +1458,11 @@ wheels = [ [[package]] name = "mistralai" -version = "2.7.2" +version = "3.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "eval-type-backport" }, - { name = "httpx" }, + { name = "httpx2" }, { name = "jsonpath-python" }, { name = "opentelemetry-api" }, { name = "opentelemetry-semantic-conventions" }, @@ -1468,9 +1470,9 @@ dependencies = [ { name = "python-dateutil" }, { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0f/f2/5a2fdcbee80e83674fab398cedbfa97e0b35f316fadd6ff85c37c8054e84/mistralai-2.7.2.tar.gz", hash = "sha256:184b7a502e69cc7cdeb0b095020d7e9407a9544c4496f0317984263dac3d7939", size = 535414, upload-time = "2026-07-24T13:06:55.577Z" } +sdist = { url = "https://files.pythonhosted.org/packages/29/aa/f29b0759add3aa4d5d436651ad075d90fe9cdd3aa5917d9fdcb4f143e2b8/mistralai-3.0.0.tar.gz", hash = "sha256:60789d0efd23f779d18922e4a6a4f54af428dff05deab0be9fc963acf7160f7f", size = 605652, upload-time = "2026-09-28T18:35:28.044Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/82/40/e2c0cca6da63716a384776a9e348ebcdb693e04a06e3c9db189439d0077c/mistralai-2.7.2-py3-none-any.whl", hash = "sha256:b2b26fa43670d6247ea352c23fe821605ecbbcf305755b629e804dbd3f6fd439", size = 1273387, upload-time = "2026-07-24T13:06:53.649Z" }, + { url = "https://files.pythonhosted.org/packages/b8/7c/54b5e975567f1177b2c8b81a35ebdddf0bf51b66a6ea34cbcbabe7101dac/mistralai-3.0.0-py3-none-any.whl", hash = "sha256:98b421c3cf350f7ed6fb2192f42aa8d2efec9fab6e62fb4e8379b133d882a4c9", size = 1420750, upload-time = "2026-09-28T18:35:26.44Z" }, ] [[package]] @@ -1496,51 +1498,48 @@ sdist = { url = "https://files.pythonhosted.org/packages/b8/48/b91a6f924a2abd9e8 [[package]] name = "openai" -version = "2.48.0" +version = "3.19.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, - { name = "distro" }, - { name = "httpx" }, + { name = "httpx2" }, { name = "jiter" }, { name = "pydantic" }, { name = "sniffio" }, - { name = "tqdm" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/2a/ae/d4d1835488c0350424009dac5095b9a3e173bee12fd2e421ee27e2142c42/openai-2.48.0.tar.gz", hash = "sha256:231b1e7661dda14574986c2f71451e9d584b7fe69e0ee6480e12ed090b48fc16", size = 1093427, upload-time = "2026-07-23T20:15:50.402Z" } +sdist = { url = "https://files.pythonhosted.org/packages/7c/91/2d5722388a50cc86e162779df5fbfe0afa652a6e2d5c9ee616e081a82098/openai-3.19.2.tar.gz", hash = "sha256:de185f9834ad064d965ec42bd0766731cf66bceea16a7670294a835d207019e6", size = 1716953, upload-time = "2026-09-24T00:06:07.315Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b5/2a/dcb891114e303c4379d4a498f10222e33eee540bcef4e1e493bd0af2b242/openai-2.48.0-py3-none-any.whl", hash = "sha256:c98df30aaaf93c51979f64d3e7c5b76464f8be0173368266229eb8fe6bd30f2c", size = 1648520, upload-time = "2026-07-23T20:15:48.052Z" }, + { url = "https://files.pythonhosted.org/packages/bd/20/4fe123e60525375878c67d1d8d051c9c5dec81cc56a579ba9304ca743303/openai-3.19.2-py3-none-any.whl", hash = "sha256:66247fcd07266e72536e90656dc27f3b0bb1e9d8696d4013fc55402c0b96a5c2", size = 2071459, upload-time = "2026-09-24T00:06:05.416Z" }, ] [[package]] name = "opentelemetry-api" -version = "1.39.1" +version = "1.44.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "importlib-metadata" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/97/b9/3161be15bb8e3ad01be8be5a968a9237c3027c5be504362ff800fca3e442/opentelemetry_api-1.39.1.tar.gz", hash = "sha256:fbde8c80e1b937a2c61f20347e91c0c18a1940cecf012d62e65a7caf08967c9c", size = 65767, upload-time = "2025-12-11T13:32:39.182Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/8b/aa9e2d8b8dfa7c946f7dec5d1f8f6ba8eca062f43509a06bdb5ce93d26c0/opentelemetry_api-1.44.0.tar.gz", hash = "sha256:67647e5e9566edcf421166fdf022b3537f818635daa852b289e34604dc6fb33a", size = 72406, upload-time = "2026-07-16T15:25:32.678Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cf/df/d3f1ddf4bb4cb50ed9b1139cc7b1c54c34a1e7ce8fd1b9a37c0d1551a6bd/opentelemetry_api-1.39.1-py3-none-any.whl", hash = "sha256:2edd8463432a7f8443edce90972169b195e7d6a05500cd29e6d13898187c9950", size = 66356, upload-time = "2025-12-11T13:32:17.304Z" }, + { url = "https://files.pythonhosted.org/packages/ca/6f/a04e900f465ff3221ccc395522503e2d10e79fa21f2723c8e177aae1e0d1/opentelemetry_api-1.44.0-py3-none-any.whl", hash = "sha256:94b98c893a91b88657eaac1e3ba89618cdb85be6918196705354f34728b2cdef", size = 60018, upload-time = "2026-07-16T15:25:11.657Z" }, ] [[package]] name = "opentelemetry-exporter-otlp-proto-common" -version = "1.39.1" +version = "1.44.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "opentelemetry-proto" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e9/9d/22d241b66f7bbde88a3bfa6847a351d2c46b84de23e71222c6aae25c7050/opentelemetry_exporter_otlp_proto_common-1.39.1.tar.gz", hash = "sha256:763370d4737a59741c89a67b50f9e39271639ee4afc999dadfe768541c027464", size = 20409, upload-time = "2025-12-11T13:32:40.885Z" } +sdist = { url = "https://files.pythonhosted.org/packages/61/09/4d717852c1cf3f854b76c7110a5d00883bc3c99288b9b0dbcbeb9e306eb6/opentelemetry_exporter_otlp_proto_common-1.44.0.tar.gz", hash = "sha256:dc87a5a5bc58f149a56d1547e4691588fa12994cdc3bc039a694ccb3375862ac", size = 20202, upload-time = "2026-07-16T15:25:37.658Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8c/02/ffc3e143d89a27ac21fd557365b98bd0653b98de8a101151d5805b5d4c33/opentelemetry_exporter_otlp_proto_common-1.39.1-py3-none-any.whl", hash = "sha256:08f8a5862d64cc3435105686d0216c1365dc5701f86844a8cd56597d0c764fde", size = 18366, upload-time = "2025-12-11T13:32:20.2Z" }, + { url = "https://files.pythonhosted.org/packages/5e/71/65fd9d54c10b860f87c045ccee1264cab7011268895d3528818a29c1172a/opentelemetry_exporter_otlp_proto_common-1.44.0-py3-none-any.whl", hash = "sha256:9a9fe61bba73d802904bc989f1d6b4a7b1ee40f06c40e98d6f85af65aaebb694", size = 17045, upload-time = "2026-07-16T15:25:18.201Z" }, ] [[package]] name = "opentelemetry-exporter-otlp-proto-http" -version = "1.39.1" +version = "1.44.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "googleapis-common-protos" }, @@ -1551,14 +1550,14 @@ dependencies = [ { name = "requests" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/80/04/2a08fa9c0214ae38880df01e8bfae12b067ec0793446578575e5080d6545/opentelemetry_exporter_otlp_proto_http-1.39.1.tar.gz", hash = "sha256:31bdab9745c709ce90a49a0624c2bd445d31a28ba34275951a6a362d16a0b9cb", size = 17288, upload-time = "2025-12-11T13:32:42.029Z" } +sdist = { url = "https://files.pythonhosted.org/packages/1a/87/95e2a5aaa795b4e2260d74e16df2d5541deb2ea9de010bcd615f4dee2654/opentelemetry_exporter_otlp_proto_http-1.44.0.tar.gz", hash = "sha256:c633d7270ad6b57cd4cfbe8b0007a9e2e7c0cb50bd6c50fe2a7b245f721a09d8", size = 25806, upload-time = "2026-07-16T15:25:39.162Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/95/f1/b27d3e2e003cd9a3592c43d099d2ed8d0a947c15281bf8463a256db0b46c/opentelemetry_exporter_otlp_proto_http-1.39.1-py3-none-any.whl", hash = "sha256:d9f5207183dd752a412c4cd564ca8875ececba13be6e9c6c370ffb752fd59985", size = 19641, upload-time = "2025-12-11T13:32:22.248Z" }, + { url = "https://files.pythonhosted.org/packages/cd/d0/fdeb1a98d8d3a6205f5f297c51b4a9bfe65126ab60339669bbe3dd54c2e2/opentelemetry_exporter_otlp_proto_http-1.44.0-py3-none-any.whl", hash = "sha256:838592fce774c1c8bb7b9a0a7facbfa82e17be5a8a4e94cef10cb84ae026bae3", size = 21850, upload-time = "2026-07-16T15:25:20.006Z" }, ] [[package]] name = "opentelemetry-instrumentation" -version = "0.60b1" +version = "0.65b0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "opentelemetry-api" }, @@ -1566,14 +1565,14 @@ dependencies = [ { name = "packaging" }, { name = "wrapt" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/41/0f/7e6b713ac117c1f5e4e3300748af699b9902a2e5e34c9cf443dde25a01fa/opentelemetry_instrumentation-0.60b1.tar.gz", hash = "sha256:57ddc7974c6eb35865af0426d1a17132b88b2ed8586897fee187fd5b8944bd6a", size = 31706, upload-time = "2025-12-11T13:36:42.515Z" } +sdist = { url = "https://files.pythonhosted.org/packages/13/91/3c58961cb0360cd60509064734f0be4275383c8681d73c580a40ca83ddce/opentelemetry_instrumentation-0.65b0.tar.gz", hash = "sha256:071d9d9eced9bd6460444ec3b0c77229870ed05a881c22c84fdede58e4eed09b", size = 42689, upload-time = "2026-07-16T15:25:50.275Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/77/d2/6788e83c5c86a2690101681aeef27eeb2a6bf22df52d3f263a22cee20915/opentelemetry_instrumentation-0.60b1-py3-none-any.whl", hash = "sha256:04480db952b48fb1ed0073f822f0ee26012b7be7c3eac1a3793122737c78632d", size = 33096, upload-time = "2025-12-11T13:35:33.067Z" }, + { url = "https://files.pythonhosted.org/packages/40/7b/85eab1215f72adf0e68d3dc4a679b9bff993fa679ff34cd8dd378e2659fd/opentelemetry_instrumentation-0.65b0-py3-none-any.whl", hash = "sha256:ea967a72b9939b5fcfdad572753b4306c59dcb99e3f382d95dae04286805e137", size = 36717, upload-time = "2026-07-16T15:24:51.424Z" }, ] [[package]] name = "opentelemetry-instrumentation-httpx" -version = "0.60b1" +version = "0.65b0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "opentelemetry-api" }, @@ -1582,57 +1581,57 @@ dependencies = [ { name = "opentelemetry-util-http" }, { name = "wrapt" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/86/08/11208bcfcab4fc2023252c3f322aa397fd9ad948355fea60f5fc98648603/opentelemetry_instrumentation_httpx-0.60b1.tar.gz", hash = "sha256:a506ebaf28c60112cbe70ad4f0338f8603f148938cb7b6794ce1051cd2b270ae", size = 20611, upload-time = "2025-12-11T13:37:01.661Z" } +sdist = { url = "https://files.pythonhosted.org/packages/61/03/a529140241addd4d0acc73bafbd6f74691651b92fc0ae9b4513cf80f07fa/opentelemetry_instrumentation_httpx-0.65b0.tar.gz", hash = "sha256:4627aa9c6bb99bf4462c8b565b0ef6aeb9ffad95c6c92868be1ef7895de112ee", size = 26309, upload-time = "2026-07-16T15:26:07.973Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/43/59/b98e84eebf745ffc75397eaad4763795bff8a30cbf2373a50ed4e70646c5/opentelemetry_instrumentation_httpx-0.60b1-py3-none-any.whl", hash = "sha256:f37636dd742ad2af83d896ba69601ed28da51fa4e25d1ab62fde89ce413e275b", size = 15701, upload-time = "2025-12-11T13:36:04.56Z" }, + { url = "https://files.pythonhosted.org/packages/9d/0f/c6144096b4914bbf44b43ba21c962e8f333ff045770b50a3e79ed8bd455f/opentelemetry_instrumentation_httpx-0.65b0-py3-none-any.whl", hash = "sha256:400f1b78afa4ee2332b5debe58e1ed1b317913d58812c952576be76660aeadb1", size = 17436, upload-time = "2026-07-16T15:25:15.772Z" }, ] [[package]] name = "opentelemetry-proto" -version = "1.39.1" +version = "1.44.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "protobuf" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/49/1d/f25d76d8260c156c40c97c9ed4511ec0f9ce353f8108ca6e7561f82a06b2/opentelemetry_proto-1.39.1.tar.gz", hash = "sha256:6c8e05144fc0d3ed4d22c2289c6b126e03bcd0e6a7da0f16cedd2e1c2772e2c8", size = 46152, upload-time = "2025-12-11T13:32:48.681Z" } +sdist = { url = "https://files.pythonhosted.org/packages/64/01/40ac4ae9a149263cc52c2cee200ddd80cb6d8db1a4610abf8eabce0fe771/opentelemetry_proto-1.44.0.tar.gz", hash = "sha256:c547a79c2f8c0c515d31509154682e5921c7cfd5ca67b70e1f9266e2c3e103f3", size = 46488, upload-time = "2026-07-16T15:25:45.34Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/51/95/b40c96a7b5203005a0b03d8ce8cd212ff23f1793d5ba289c87a097571b18/opentelemetry_proto-1.39.1-py3-none-any.whl", hash = "sha256:22cdc78efd3b3765d09e68bfbd010d4fc254c9818afd0b6b423387d9dee46007", size = 72535, upload-time = "2025-12-11T13:32:33.866Z" }, + { url = "https://files.pythonhosted.org/packages/d1/7c/8be563d68e93bbefa5c8affb82ddcff91b3ad858ce49957ba7b16fd3e0ab/opentelemetry_proto-1.44.0-py3-none-any.whl", hash = "sha256:898b155a0e1557afd867478fb6158e8122a46329ca0bb8dc53cc55e98f017f56", size = 72483, upload-time = "2026-07-16T15:25:28.429Z" }, ] [[package]] name = "opentelemetry-sdk" -version = "1.39.1" +version = "1.44.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "opentelemetry-api" }, { name = "opentelemetry-semantic-conventions" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/eb/fb/c76080c9ba07e1e8235d24cdcc4d125ef7aa3edf23eb4e497c2e50889adc/opentelemetry_sdk-1.39.1.tar.gz", hash = "sha256:cf4d4563caf7bff906c9f7967e2be22d0d6b349b908be0d90fb21c8e9c995cc6", size = 171460, upload-time = "2025-12-11T13:32:49.369Z" } +sdist = { url = "https://files.pythonhosted.org/packages/5d/77/a6592cbc7c8d9bcc9d6757a9df45e04a7c585e3e6e7a13456da522b21109/opentelemetry_sdk-1.44.0.tar.gz", hash = "sha256:cebe7f65dc12f26ead75c6064de12fd2a9052e5060c0272d402cfa203aae123b", size = 208624, upload-time = "2026-07-16T15:25:46.078Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7c/98/e91cf858f203d86f4eccdf763dcf01cf03f1dae80c3750f7e635bfa206b6/opentelemetry_sdk-1.39.1-py3-none-any.whl", hash = "sha256:4d5482c478513ecb0a5d938dcc61394e647066e0cc2676bee9f3af3f3f45f01c", size = 132565, upload-time = "2025-12-11T13:32:35.069Z" }, + { url = "https://files.pythonhosted.org/packages/e7/23/ff077e61886ee020a17ce9c8b6fa11c601c8d8345b09ea24f605445df62a/opentelemetry_sdk-1.44.0-py3-none-any.whl", hash = "sha256:df081c4c6bcfdb1211e3e86140376792643128a25f8d72d1d27675936e7e96ad", size = 137221, upload-time = "2026-07-16T15:25:29.534Z" }, ] [[package]] name = "opentelemetry-semantic-conventions" -version = "0.60b1" +version = "0.65b0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "opentelemetry-api" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/91/df/553f93ed38bf22f4b999d9be9c185adb558982214f33eae539d3b5cd0858/opentelemetry_semantic_conventions-0.60b1.tar.gz", hash = "sha256:87c228b5a0669b748c76d76df6c364c369c28f1c465e50f661e39737e84bc953", size = 137935, upload-time = "2025-12-11T13:32:50.487Z" } +sdist = { url = "https://files.pythonhosted.org/packages/8f/73/0cbdebcb4cf545fdd328da14f5137e37d0770c3f26185e478b0d15d94f50/opentelemetry_semantic_conventions-0.65b0.tar.gz", hash = "sha256:f9b2b81e9d5b64f11bc952075e7e9c7fb0aab075c7fd1c46d597f1b919852d60", size = 148774, upload-time = "2026-07-16T15:25:46.902Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7a/5e/5958555e09635d09b75de3c4f8b9cae7335ca545d77392ffe7331534c402/opentelemetry_semantic_conventions-0.60b1-py3-none-any.whl", hash = "sha256:9fa8c8b0c110da289809292b0591220d3a7b53c1526a23021e977d68597893fb", size = 219982, upload-time = "2025-12-11T13:32:36.955Z" }, + { url = "https://files.pythonhosted.org/packages/a6/0e/49df70d9b81fb5cbae4bbf2a49d865b09bcbcbc4eb53f5851b1027738d78/opentelemetry_semantic_conventions-0.65b0-py3-none-any.whl", hash = "sha256:1cacde7b0ad306f84c5ef08c3dbe1bbaf20165bba6f8bff43b670e555a086bcb", size = 204645, upload-time = "2026-07-16T15:25:30.688Z" }, ] [[package]] name = "opentelemetry-util-http" -version = "0.60b1" +version = "0.65b0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/50/fc/c47bb04a1d8a941a4061307e1eddfa331ed4d0ab13d8a9781e6db256940a/opentelemetry_util_http-0.60b1.tar.gz", hash = "sha256:0d97152ca8c8a41ced7172d29d3622a219317f74ae6bb3027cfbdcf22c3cc0d6", size = 11053, upload-time = "2025-12-11T13:37:25.115Z" } +sdist = { url = "https://files.pythonhosted.org/packages/32/a9/d7525a59fdd240e69b5af4a6338e78fafa1b4203394122cbd6701fb5f84a/opentelemetry_util_http-0.65b0.tar.gz", hash = "sha256:84f82d826978bba416ab453460ff6a7391cdc3534c93a786595e4068680016b7", size = 11243, upload-time = "2026-07-16T15:26:27.898Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/16/5c/d3f1733665f7cd582ef0842fb1d2ed0bc1fba10875160593342d22bba375/opentelemetry_util_http-0.60b1-py3-none-any.whl", hash = "sha256:66381ba28550c91bee14dcba8979ace443444af1ed609226634596b4b0faf199", size = 8947, upload-time = "2025-12-11T13:36:37.151Z" }, + { url = "https://files.pythonhosted.org/packages/23/3f/ab8d29df207ce5f470a07fa96ebb48af4e95b7fab7e7635311b9a32f2fab/opentelemetry_util_http-0.65b0-py3-none-any.whl", hash = "sha256:7553b606f963097cb190536dc30556cce85090692e471a422fff30ca29b04348", size = 8245, upload-time = "2026-07-16T15:25:46.482Z" }, ] [[package]] @@ -1667,35 +1666,31 @@ wheels = [ [[package]] name = "pillow" -version = "12.2.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8c/21/c2bcdd5906101a30244eaffc1b6e6ce71a31bd0742a01eb89e660ebfac2d/pillow-12.2.0.tar.gz", hash = "sha256:a830b1a40919539d07806aa58e1b114df53ddd43213d9c8b75847eee6c0182b5", size = 46987819, upload-time = "2026-04-01T14:46:17.687Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/bf/98/4595daa2365416a86cb0d495248a393dfc84e96d62ad080c8546256cb9c0/pillow-12.2.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:3adc9215e8be0448ed6e814966ecf3d9952f0ea40eb14e89a102b87f450660d8", size = 4100848, upload-time = "2026-04-01T14:44:48.48Z" }, - { url = "https://files.pythonhosted.org/packages/0b/79/40184d464cf89f6663e18dfcf7ca21aae2491fff1a16127681bf1fa9b8cf/pillow-12.2.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:6a9adfc6d24b10f89588096364cc726174118c62130c817c2837c60cf08a392b", size = 4176515, upload-time = "2026-04-01T14:44:51.353Z" }, - { url = "https://files.pythonhosted.org/packages/b0/63/703f86fd4c422a9cf722833670f4f71418fb116b2853ff7da722ea43f184/pillow-12.2.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:6a6e67ea2e6feda684ed370f9a1c52e7a243631c025ba42149a2cc5934dec295", size = 3640159, upload-time = "2026-04-01T14:44:53.588Z" }, - { url = "https://files.pythonhosted.org/packages/71/e0/fb22f797187d0be2270f83500aab851536101b254bfa1eae10795709d283/pillow-12.2.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:2bb4a8d594eacdfc59d9e5ad972aa8afdd48d584ffd5f13a937a664c3e7db0ed", size = 5312185, upload-time = "2026-04-01T14:44:56.039Z" }, - { url = "https://files.pythonhosted.org/packages/ba/8c/1a9e46228571de18f8e28f16fabdfc20212a5d019f3e3303452b3f0a580d/pillow-12.2.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:80b2da48193b2f33ed0c32c38140f9d3186583ce7d516526d462645fd98660ae", size = 4695386, upload-time = "2026-04-01T14:44:58.663Z" }, - { url = "https://files.pythonhosted.org/packages/70/62/98f6b7f0c88b9addd0e87c217ded307b36be024d4ff8869a812b241d1345/pillow-12.2.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22db17c68434de69d8ecfc2fe821569195c0c373b25cccb9cbdacf2c6e53c601", size = 6280384, upload-time = "2026-04-01T14:45:01.5Z" }, - { url = "https://files.pythonhosted.org/packages/5e/03/688747d2e91cfbe0e64f316cd2e8005698f76ada3130d0194664174fa5de/pillow-12.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7b14cc0106cd9aecda615dd6903840a058b4700fcb817687d0ee4fc8b6e389be", size = 8091599, upload-time = "2026-04-01T14:45:04.5Z" }, - { url = "https://files.pythonhosted.org/packages/f6/35/577e22b936fcdd66537329b33af0b4ccfefaeabd8aec04b266528cddb33c/pillow-12.2.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8cbeb542b2ebc6fcdacabf8aca8c1a97c9b3ad3927d46b8723f9d4f033288a0f", size = 6396021, upload-time = "2026-04-01T14:45:07.117Z" }, - { url = "https://files.pythonhosted.org/packages/11/8d/d2532ad2a603ca2b93ad9f5135732124e57811d0168155852f37fbce2458/pillow-12.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4bfd07bc812fbd20395212969e41931001fd59eb55a60658b0e5710872e95286", size = 7083360, upload-time = "2026-04-01T14:45:09.763Z" }, - { url = "https://files.pythonhosted.org/packages/5e/26/d325f9f56c7e039034897e7380e9cc202b1e368bfd04d4cbe6a441f02885/pillow-12.2.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:9aba9a17b623ef750a4d11b742cbafffeb48a869821252b30ee21b5e91392c50", size = 6507628, upload-time = "2026-04-01T14:45:12.378Z" }, - { url = "https://files.pythonhosted.org/packages/5f/f7/769d5632ffb0988f1c5e7660b3e731e30f7f8ec4318e94d0a5d674eb65a4/pillow-12.2.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:deede7c263feb25dba4e82ea23058a235dcc2fe1f6021025dc71f2b618e26104", size = 7209321, upload-time = "2026-04-01T14:45:15.122Z" }, - { url = "https://files.pythonhosted.org/packages/6a/7a/c253e3c645cd47f1aceea6a8bacdba9991bf45bb7dfe927f7c893e89c93c/pillow-12.2.0-cp314-cp314-win32.whl", hash = "sha256:632ff19b2778e43162304d50da0181ce24ac5bb8180122cbe1bf4673428328c7", size = 6479723, upload-time = "2026-04-01T14:45:17.797Z" }, - { url = "https://files.pythonhosted.org/packages/cd/8b/601e6566b957ca50e28725cb6c355c59c2c8609751efbecd980db44e0349/pillow-12.2.0-cp314-cp314-win_amd64.whl", hash = "sha256:4e6c62e9d237e9b65fac06857d511e90d8461a32adcc1b9065ea0c0fa3a28150", size = 7217400, upload-time = "2026-04-01T14:45:20.529Z" }, - { url = "https://files.pythonhosted.org/packages/d6/94/220e46c73065c3e2951bb91c11a1fb636c8c9ad427ac3ce7d7f3359b9b2f/pillow-12.2.0-cp314-cp314-win_arm64.whl", hash = "sha256:b1c1fbd8a5a1af3412a0810d060a78b5136ec0836c8a4ef9aa11807f2a22f4e1", size = 2554835, upload-time = "2026-04-01T14:45:23.162Z" }, - { url = "https://files.pythonhosted.org/packages/b6/ab/1b426a3974cb0e7da5c29ccff4807871d48110933a57207b5a676cccc155/pillow-12.2.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:57850958fe9c751670e49b2cecf6294acc99e562531f4bd317fa5ddee2068463", size = 5314225, upload-time = "2026-04-01T14:45:25.637Z" }, - { url = "https://files.pythonhosted.org/packages/19/1e/dce46f371be2438eecfee2a1960ee2a243bbe5e961890146d2dee1ff0f12/pillow-12.2.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:d5d38f1411c0ed9f97bcb49b7bd59b6b7c314e0e27420e34d99d844b9ce3b6f3", size = 4698541, upload-time = "2026-04-01T14:45:28.355Z" }, - { url = "https://files.pythonhosted.org/packages/55/c3/7fbecf70adb3a0c33b77a300dc52e424dc22ad8cdc06557a2e49523b703d/pillow-12.2.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5c0a9f29ca8e79f09de89293f82fc9b0270bb4af1d58bc98f540cc4aedf03166", size = 6322251, upload-time = "2026-04-01T14:45:30.924Z" }, - { url = "https://files.pythonhosted.org/packages/1c/3c/7fbc17cfb7e4fe0ef1642e0abc17fc6c94c9f7a16be41498e12e2ba60408/pillow-12.2.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1610dd6c61621ae1cf811bef44d77e149ce3f7b95afe66a4512f8c59f25d9ebe", size = 8127807, upload-time = "2026-04-01T14:45:33.908Z" }, - { url = "https://files.pythonhosted.org/packages/ff/c3/a8ae14d6defd2e448493ff512fae903b1e9bd40b72efb6ec55ce0048c8ce/pillow-12.2.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a34329707af4f73cf1782a36cd2289c0368880654a2c11f027bcee9052d35dd", size = 6433935, upload-time = "2026-04-01T14:45:36.623Z" }, - { url = "https://files.pythonhosted.org/packages/6e/32/2880fb3a074847ac159d8f902cb43278a61e85f681661e7419e6596803ed/pillow-12.2.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8e9c4f5b3c546fa3458a29ab22646c1c6c787ea8f5ef51300e5a60300736905e", size = 7116720, upload-time = "2026-04-01T14:45:39.258Z" }, - { url = "https://files.pythonhosted.org/packages/46/87/495cc9c30e0129501643f24d320076f4cc54f718341df18cc70ec94c44e1/pillow-12.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:fb043ee2f06b41473269765c2feae53fc2e2fbf96e5e22ca94fb5ad677856f06", size = 6540498, upload-time = "2026-04-01T14:45:41.879Z" }, - { url = "https://files.pythonhosted.org/packages/18/53/773f5edca692009d883a72211b60fdaf8871cbef075eaa9d577f0a2f989e/pillow-12.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f278f034eb75b4e8a13a54a876cc4a5ab39173d2cdd93a638e1b467fc545ac43", size = 7239413, upload-time = "2026-04-01T14:45:44.705Z" }, - { url = "https://files.pythonhosted.org/packages/c9/e4/4b64a97d71b2a83158134abbb2f5bd3f8a2ea691361282f010998f339ec7/pillow-12.2.0-cp314-cp314t-win32.whl", hash = "sha256:6bb77b2dcb06b20f9f4b4a8454caa581cd4dd0643a08bacf821216a16d9c8354", size = 6482084, upload-time = "2026-04-01T14:45:47.568Z" }, - { url = "https://files.pythonhosted.org/packages/ba/13/306d275efd3a3453f72114b7431c877d10b1154014c1ebbedd067770d629/pillow-12.2.0-cp314-cp314t-win_amd64.whl", hash = "sha256:6562ace0d3fb5f20ed7290f1f929cae41b25ae29528f2af1722966a0a02e2aa1", size = 7225152, upload-time = "2026-04-01T14:45:50.032Z" }, - { url = "https://files.pythonhosted.org/packages/ff/6e/cf826fae916b8658848d7b9f38d88da6396895c676e8086fc0988073aaf8/pillow-12.2.0-cp314-cp314t-win_arm64.whl", hash = "sha256:aa88ccfe4e32d362816319ed727a004423aab09c5cea43c01a4b435643fa34eb", size = 2556579, upload-time = "2026-04-01T14:45:52.529Z" }, +version = "12.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1c/3d/bb7fca845737cf9d7dbde16ed1843984665ff2e0a518f5db43e77ec540b9/pillow-12.3.0.tar.gz", hash = "sha256:3b8182a766685eaa002637e28b4ec8d6b18819a0c71f579bf0dbaa5830297cce", size = 47025035, upload-time = "2026-07-01T11:56:38.965Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/01/001f65b68192f0228cc1dbbc8d2530ab5d58b61037ba0587f946fea607cd/pillow-12.3.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:9cf95fe4d0f84c82d282745d9bb08ad9f926efa00be4697e767b814ce40d4330", size = 4161736, upload-time = "2026-07-01T11:54:51.156Z" }, + { url = "https://files.pythonhosted.org/packages/1a/d2/0219746d0fd16fc8a84498e79452375be3797d3ce4044596ce565164b84f/pillow-12.3.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:8728f216dcdb6e6d555cf971cb34076139ad74b31fc2c14da4fafc741c5f6217", size = 4255435, upload-time = "2026-07-01T11:54:53.414Z" }, + { url = "https://files.pythonhosted.org/packages/c8/02/8d0bc62ef0302318c46ff2a512822d2610e81c7aa46c9b3abe6cbaca5ad0/pillow-12.3.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:a45650e8ce7fafffd731db8550230db6b0d306d181a90b67d3e6bca2f1990930", size = 3696262, upload-time = "2026-07-01T11:54:55.739Z" }, + { url = "https://files.pythonhosted.org/packages/85/e2/73c77d218410b14f5f2d565e8a998d5317b7b9c75368d29985139f7a46f0/pillow-12.3.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:ba54cfebe86920a559a7c4d6b9050791c20513650a1952ebe3368c7dc70306f8", size = 5350344, upload-time = "2026-07-01T11:54:57.657Z" }, + { url = "https://files.pythonhosted.org/packages/c7/da/32c752228ae345f489e3a42499d817b6c3996da7e8a3bc7a04fc806b243b/pillow-12.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:e158cb00350dc278f3b91551101aa7d12415a66ebf2c91d8d5ac14e56ddd3ad0", size = 4780131, upload-time = "2026-07-01T11:54:59.713Z" }, + { url = "https://files.pythonhosted.org/packages/b1/9d/8b2c807dbef61a5197c047afe99823787eb66f63daf9fb2432f91d6f0462/pillow-12.3.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e9aeb04d6aef139de265b29683e119b638208f88cf73cdd1658aa07221165321", size = 6263757, upload-time = "2026-07-01T11:55:01.778Z" }, + { url = "https://files.pythonhosted.org/packages/5c/44/c85361f65dbe00eea8576ee467c768d25129989efb76e94f205e9ca9bb46/pillow-12.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:251bf95b67017e27b13d82f5b326234ca62d70f9cf4c2b9032de2358a3b12c7b", size = 6936962, upload-time = "2026-07-01T11:55:03.93Z" }, + { url = "https://files.pythonhosted.org/packages/18/7e/e483414b35800b86b6f08dbbc7803fb5cd52c4d6f897f47d53ea2c7e6f65/pillow-12.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fe3cca2e4e8a592be0f269a1ca4835c25199d9f3ce815c8491048f785b0a0198", size = 6339171, upload-time = "2026-07-01T11:55:05.989Z" }, + { url = "https://files.pythonhosted.org/packages/f0/f4/68c491844841ede6bed70189546b3ee9731cf9f2cbad396faff5e1ccba45/pillow-12.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:23aceaa007d6172b02c277f0cd359c79492bbb14f7072b4ede9fbcaf20648130", size = 7048116, upload-time = "2026-07-01T11:55:08.131Z" }, + { url = "https://files.pythonhosted.org/packages/a3/34/77f3f793fed8efc7d243f21b33c5a3f0d1c97ee70346d3db855587e155ff/pillow-12.3.0-cp314-cp314-win32.whl", hash = "sha256:af8d94b0db561cf68b88a267c5c44b49e134f525d0dc2cb7ed413a66bc23559a", size = 6467209, upload-time = "2026-07-01T11:55:10.408Z" }, + { url = "https://files.pythonhosted.org/packages/f1/e0/492879f69d94f91f60fc8cd05ba03650e9520afebb2fb7aa12777d7c7f38/pillow-12.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:fdafc9cce40277e0f7a0feabce0ee50dd2fa1800f3b38015e51296b5e814048d", size = 7237707, upload-time = "2026-07-01T11:55:12.745Z" }, + { url = "https://files.pythonhosted.org/packages/c9/ac/6b11f2875f1c2ac040d84e1bbf9cf22a88038f901ca1037898b280b38365/pillow-12.3.0-cp314-cp314-win_arm64.whl", hash = "sha256:e91206ee562682b51b98ef4b26a6ef48fd84e15fd4c4bc5ec768eb641d206838", size = 2565995, upload-time = "2026-07-01T11:55:14.736Z" }, + { url = "https://files.pythonhosted.org/packages/52/69/c2208e56af9bfc1913afb24020297a691eb1d4ef688474c8a04913f65e04/pillow-12.3.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:164b31cd1a0490ab6efae01aa5df49da7061be0af1b30e035b6e9a1bfe34ee6e", size = 5352503, upload-time = "2026-07-01T11:55:17.076Z" }, + { url = "https://files.pythonhosted.org/packages/07/70/e5686d753e898a45d778ff1718dba8516ead6ab6b95d85fc8c4b70650cf2/pillow-12.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5afb51d599ea772b8365ae807ae557f18bccfe46ab261fd1c2a9ed700fc6eb17", size = 4782956, upload-time = "2026-07-01T11:55:19.448Z" }, + { url = "https://files.pythonhosted.org/packages/d5/37/25c6692f06927ee973ff18c8d9ee98ad0b4d84ee67a09610c2dd1447958e/pillow-12.3.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3edce1d53195db527e0191f84b71d02022de0540bf43a16ed734ed7537b07385", size = 6322855, upload-time = "2026-07-01T11:55:21.613Z" }, + { url = "https://files.pythonhosted.org/packages/cc/91/420637fcb8f1bc11029e403b4538e6694744428d8246118e45719f944556/pillow-12.3.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bf16ba1b4d0b6b7c8e534936632270cf70eb00dbe09005bc345b2677b726855c", size = 6989642, upload-time = "2026-07-01T11:55:24.006Z" }, + { url = "https://files.pythonhosted.org/packages/10/08/b94d7811281ccf0d143a1cf768d1c49e1e54af63e7b708ab2ee3eb87face/pillow-12.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:24870b09b224f7ae3c39ed07d10e819d06f8720bc551847b1d623832b5b0e28d", size = 6391281, upload-time = "2026-07-01T11:55:26.252Z" }, + { url = "https://files.pythonhosted.org/packages/d2/87/24233f785f55474dc02ce3e739c5528a77e3a862e9333d1dd7a25cc31f70/pillow-12.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:30f2aa603c41533cc25c05acd0da21636e84a315768feb631c937177db558931", size = 7096716, upload-time = "2026-07-01T11:55:28.318Z" }, + { url = "https://files.pythonhosted.org/packages/23/26/fcb2f6e37175b04f53570b59937867e2b80ee1685e744023153028fc14f9/pillow-12.3.0-cp314-cp314t-win32.whl", hash = "sha256:4b0a7fe987b14c31ebda6083f74f22b561fd3739bc0ac51e019622e3d72668c7", size = 6474125, upload-time = "2026-07-01T11:55:30.956Z" }, + { url = "https://files.pythonhosted.org/packages/90/de/3634abee5f1c9e13c56787b7d5517b0ba8d6de51700b95578cf338349c9f/pillow-12.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:962864dc93511324d51ddbb5b9f8731bf71675b93ca612a07441896f4688fb8c", size = 7242939, upload-time = "2026-07-01T11:55:34.044Z" }, + { url = "https://files.pythonhosted.org/packages/ce/2a/fd13f8eb24de5714a6eb444a3d67e2842c6c576e159a43793adf23051351/pillow-12.3.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0740a512dc522224c77d9aa5a8d70d8b7d73fb91f2c21125d8d025d3b8990e45", size = 2567506, upload-time = "2026-07-01T11:55:35.988Z" }, ] [[package]] @@ -1718,7 +1713,7 @@ wheels = [ [[package]] name = "posthog" -version = "7.29.0" +version = "7.60.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "backoff" }, @@ -1726,9 +1721,9 @@ dependencies = [ { name = "requests" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d3/09/43ae0e27bafe031d307921cdeadcd3af8a7370c887177df7c43cfd903adf/posthog-7.29.0.tar.gz", hash = "sha256:673f201e2d204f0664bb0cec86f8adfca97ba3a94488fb7857bb11c4a35fb017", size = 360483, upload-time = "2026-07-23T15:26:28.225Z" } +sdist = { url = "https://files.pythonhosted.org/packages/29/ca/4fffd4d5377a8c84de14f6ea5a18bd8060eeaba5f6921d1ca420db564756/posthog-7.60.1.tar.gz", hash = "sha256:99436369a40b2f9e628145e997f1dcd98a5e5389da1605d4ab630d742cc1bd5d", size = 689412, upload-time = "2026-09-25T15:01:57.575Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ac/4a/01c3e9f44a2f167977b5fafc9ba5b4ed5a027881da4b2ee1f4987a621758/posthog-7.29.0-py3-none-any.whl", hash = "sha256:8269afec8439e0177fd9d660b88d0a580497b617ee6aa213850ae9244ad46111", size = 429592, upload-time = "2026-07-23T15:26:26.343Z" }, + { url = "https://files.pythonhosted.org/packages/6f/01/2048c0fa981c4677f4f4b1d6633d3b7d1589dd13966179514a0b1f56b3c1/posthog-7.60.1-py3-none-any.whl", hash = "sha256:67bc374907c3cafc1b378c4011d5e7cf6b249c240a98470cf908da2c44f76483", size = 805975, upload-time = "2026-09-25T15:01:55.786Z" }, ] [[package]] @@ -1800,14 +1795,14 @@ wheels = [ [[package]] name = "psycopg" -version = "3.3.4" +version = "3.3.6" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "tzdata", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/db/2f/cb91e5502ec9de1de6f1b76cfbf69531932725361168bb06963620c77e2e/psycopg-3.3.4.tar.gz", hash = "sha256:e21207764952cff81b6b8bdacad9a3939f2793367fdac2987b3aac36a651b5bc", size = 165799, upload-time = "2026-05-01T23:31:55.179Z" } +sdist = { url = "https://files.pythonhosted.org/packages/76/26/3ea4ca5eaea1c0debcdf7ee7c1613fbe721dc27a03c461c0817ffd8a0601/psycopg-3.3.6.tar.gz", hash = "sha256:c081f2250df751a943036e42db6df4571c66cd0aabe8291a7a506512b12007d2", size = 168171, upload-time = "2026-09-18T13:22:55.152Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5c/e0/7b3dee031daae7743609ce3c746565d4a3ed7c2c186479eb48e34e838c64/psycopg-3.3.4-py3-none-any.whl", hash = "sha256:b6bbc25ccf05c8fad3b061d9db2ef0909a555171b84b07f29458a447253d679a", size = 213001, upload-time = "2026-05-01T23:20:50.816Z" }, + { url = "https://files.pythonhosted.org/packages/4e/de/748bd7609c71cae5d737f0ba9192f19329f70180ecda8fff3cac02c5abe3/psycopg-3.3.6-py3-none-any.whl", hash = "sha256:a1db9f7148b06a28606767efaca51fa6f9398c5c0a3810519be69d7000bdb631", size = 215490, upload-time = "2026-09-18T13:15:29.374Z" }, ] [package.optional-dependencies] @@ -1820,20 +1815,20 @@ pool = [ [[package]] name = "psycopg-binary" -version = "3.3.4" +version = "3.3.6" source = { registry = "https://pypi.org/simple" } wheels = [ - { url = "https://files.pythonhosted.org/packages/48/a6/828c9185701dab71b234c2a76c38a08b098ebfec5020716b4e93807492b5/psycopg_binary-3.3.4-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:28b7398fdd19db3232c884fb24550bdfe951221f510e195e233299e4c9b78f97", size = 4607292, upload-time = "2026-05-01T23:30:38.962Z" }, - { url = "https://files.pythonhosted.org/packages/92/58/5b40dbc9d839045c9dae956960e4fb6d20bcabe6c59a2aa34fc3a371913f/psycopg_binary-3.3.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1fbaa292a3c8bb61b45df1ad3da1908ccee7cb889db9425e3557d9e34e2a4829", size = 4687023, upload-time = "2026-05-01T23:30:47.227Z" }, - { url = "https://files.pythonhosted.org/packages/85/a9/793f0ac107a9003b48441d0d1f9f616d96e0f37458dd8dc12528ceff55fb/psycopg_binary-3.3.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:94596f9e7633ee3f6440711d43bb70aa31cc0a46a900ab8b4201a366ace5c9e7", size = 5486985, upload-time = "2026-05-01T23:30:55.517Z" }, - { url = "https://files.pythonhosted.org/packages/8f/26/42e8533497e2592334f68ec529cf5f840f7fa4e99575a4bb61aa184dbfbf/psycopg_binary-3.3.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8c0056529e68dbe9184cd4019a1f3d8f3a4ead2f6fc7a5afcf27d3314edd1277", size = 5168745, upload-time = "2026-05-01T23:31:01.904Z" }, - { url = "https://files.pythonhosted.org/packages/15/af/b7151776cc08d5935d45c833ec818a9beb417cf7c08239af1aafbdae78ee/psycopg_binary-3.3.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2c09aad7051326e7603c14e50636db9c01f78272dc54b3accff03d46370461e6", size = 6761486, upload-time = "2026-05-01T23:31:14.511Z" }, - { url = "https://files.pythonhosted.org/packages/d0/ed/c92533b9124712d592cbf1cd6c76da933a2e0acea81dfe1fbe7e735f0cff/psycopg_binary-3.3.4-cp314-cp314-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:514404ed543efd620c85602b747df2a23cf1241b4067199e1a66f2d2757aaa41", size = 4997427, upload-time = "2026-05-01T23:31:20.901Z" }, - { url = "https://files.pythonhosted.org/packages/a2/23/ccadfd0de416aa188356daa199453af24087b042e296088706d190ae0295/psycopg_binary-3.3.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:46893c26858be12cc49ca4226ed6a60b4bfccadd946b3bebb783a60b38788228", size = 4533549, upload-time = "2026-05-01T23:31:26.204Z" }, - { url = "https://files.pythonhosted.org/packages/fd/a0/c8f43cee36386f7bc891ab41a9d31ea07cf9826038e732da79f26b1e5f34/psycopg_binary-3.3.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:df1d567fc430f6df15c9fcf67d87685fc49bdb325adc0db5af1adfb2f44eb5c9", size = 4210256, upload-time = "2026-05-01T23:31:33.884Z" }, - { url = "https://files.pythonhosted.org/packages/4e/2c/c1547871be3790676e8868b38655496422f94f0978dfb66b74bdba2f1676/psycopg_binary-3.3.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:6b9016b1714da4dd5ecaaa75b82098aa5a0b87854ce9b092e21c27c4ae23e014", size = 3946204, upload-time = "2026-05-01T23:31:39.626Z" }, - { url = "https://files.pythonhosted.org/packages/c4/b1/f6670f00fa7ea601584623f6c11602ab92117d83eaff885e0210f6de7418/psycopg_binary-3.3.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:47c656a8a7ba6eb0cff1801a4caaa9c8bdc12d03080e273aff1c8ac39971a77e", size = 4255811, upload-time = "2026-05-01T23:31:44.986Z" }, - { url = "https://files.pythonhosted.org/packages/eb/e6/5fff07a70d1f945ed90ae131c3bd76cab32beff7c58c6db15ad5820b6d1f/psycopg_binary-3.3.4-cp314-cp314-win_amd64.whl", hash = "sha256:c37e024c07308cd06cf3ec51bfd0e7f6157585a4d84d1bce4a7f5f7913719bf8", size = 3666849, upload-time = "2026-05-01T23:31:51.165Z" }, + { url = "https://files.pythonhosted.org/packages/6d/b9/60711317c284a442511644ea7185b56ebe627606d6741e732cd16108c47b/psycopg_binary-3.3.6-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:b3f75dee0f9afafabe4edc52c4842f1e1878ed2069bd05b22d6fe961e97e4dba", size = 4720512, upload-time = "2026-09-18T13:20:29.278Z" }, + { url = "https://files.pythonhosted.org/packages/63/da/28befc84454cbc6374550de7746f591f8fe1b6165c1fce249652cc8291c4/psycopg_binary-3.3.6-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:5927b7ba63153cd8e9862987290a2b783a5c590daf2a4ef981700cc3569166d4", size = 4782318, upload-time = "2026-09-18T13:20:35.401Z" }, + { url = "https://files.pythonhosted.org/packages/a4/8a/0d21c2c833cdc0d4244c77e858e0ed37fa2abec2623be4fd686f617109ce/psycopg_binary-3.3.6-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:0bf08b749cc144f33b44a91b78e3f71c60eb07963746a0df5a100b36ce3d7475", size = 5567460, upload-time = "2026-09-18T13:20:41.902Z" }, + { url = "https://files.pythonhosted.org/packages/49/6d/7692d0d4e656b6cc9868d8acc2e3b42f17a0db4a625400a6d093cb0533a1/psycopg_binary-3.3.6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:31cd942c23f613276b81a6e6598cefa12960058b0f46e1e874b540c793f6aca5", size = 5246902, upload-time = "2026-09-18T13:20:47.661Z" }, + { url = "https://files.pythonhosted.org/packages/d4/c1/b8a1f18fb1b7558a17f57f7cb3fc8bc93189feea2958925950b3acb15743/psycopg_binary-3.3.6-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4690cf67738f0e0e49a32aeec99bf0e4595cc2b4f1af984a4345394b1dcff91a", size = 6847192, upload-time = "2026-09-18T13:20:56.874Z" }, + { url = "https://files.pythonhosted.org/packages/a5/76/404f33519167c65cca88ec4998776f1dbebccc301ee977f0e62c47fb0826/psycopg_binary-3.3.6-cp314-cp314-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ad1c785e784cfd87e8436c6b7702f2d321fc39601bbaf29bc63a41a867091638", size = 5079573, upload-time = "2026-09-18T13:21:04.155Z" }, + { url = "https://files.pythonhosted.org/packages/f0/d9/79e8fbc8f37262a415f3550f0bcc5f98037442bf3d12ef6cbae2056655ae/psycopg_binary-3.3.6-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:79a2a1c3449f6c3409427078ed1cec10de79f3023cb5f2504f0597d350ad46c7", size = 4613633, upload-time = "2026-09-18T13:21:10.664Z" }, + { url = "https://files.pythonhosted.org/packages/d4/47/96225db74be7d2ce04b3a58678b53cda610225055edf5faa775c9f501d8b/psycopg_binary-3.3.6-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:86147cb5d140341c3363fb5bacce31f8d5543902a46699d3c536b101bbceaf9e", size = 4293375, upload-time = "2026-09-18T13:21:16.027Z" }, + { url = "https://files.pythonhosted.org/packages/2a/d2/18e9c779a5efd565250329adaf529ecc2b8b2ed5be5cb0f6ccee208cbfd9/psycopg_binary-3.3.6-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:7308c93cf0b19bbaf8e6ff0a6ad50d3c442385739245fe15a8d593bf841734a6", size = 4019883, upload-time = "2026-09-18T13:21:21.587Z" }, + { url = "https://files.pythonhosted.org/packages/ef/28/0cc654afc6c2cda982767f5679d3646b30b1ec86545bdaa9402202d6776c/psycopg_binary-3.3.6-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:05a83ac9fd52b9bca7cb5ab04b3691163170bd16f53defa27216ea3aa07ee781", size = 4332607, upload-time = "2026-09-18T13:21:27.63Z" }, + { url = "https://files.pythonhosted.org/packages/f1/3e/0a753a74fbd7aef120f286c016e09d3cc3f1daf7688f4a145d27281260b2/psycopg_binary-3.3.6-cp314-cp314-win_amd64.whl", hash = "sha256:1fbd30e537dab22cafdf080608f10148fe2a5f3a61294ddb5113caac8a623840", size = 3755671, upload-time = "2026-09-18T13:21:33.855Z" }, ] [[package]] @@ -1877,31 +1872,31 @@ wheels = [ [[package]] name = "pycrdt" -version = "0.14.1" +version = "0.14.6" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5d/4b/827ec39efadd52cf9dca9a663e7a5e215a4415a3ddd1b187536e21238f99/pycrdt-0.14.1.tar.gz", hash = "sha256:56e7c2d36407716f4977b5f3b972892c51758d31dafff9d043702b5c7fd1aa87", size = 95362, upload-time = "2026-06-17T14:18:04.784Z" } +sdist = { url = "https://files.pythonhosted.org/packages/87/9d/16151d2fa506384068a0027f30a5951d186903b98099a9ee4871ba5e7567/pycrdt-0.14.6.tar.gz", hash = "sha256:ed59185cc0aec28d2fe2d92277a65af6ef799efcf5c5fe99303018cfc5d84428", size = 96715, upload-time = "2026-09-21T08:39:03.038Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0e/22/4dec10d664f3f4d09e1142504ad354f993919c9a9ad9a7bb9d3b2eb277b2/pycrdt-0.14.1-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:008b67d78cc8a99a07c2bbe876a866c5d4ef7e3a90cf33463af7521fa5837a6c", size = 1931551, upload-time = "2026-06-17T14:17:26.19Z" }, - { url = "https://files.pythonhosted.org/packages/bd/ec/42e16b63a70b1907301945ea3a9e85cbfad0a4a1cfd669367e02f28a8e0f/pycrdt-0.14.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:389c8dda4a41a1d6d664ab5c4c66d859e75d24add7e2f5df8ce6954effbe23c6", size = 1041602, upload-time = "2026-06-17T14:17:27.974Z" }, - { url = "https://files.pythonhosted.org/packages/89/76/ba53f5f3ebd5a104b431a4d3433dba9770bded5ece259e582530e289f89b/pycrdt-0.14.1-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1b89eb0020711b2faaec41bd701af64b7c201ef039e781fe5fc945d148301fde", size = 1061937, upload-time = "2026-06-17T14:17:29.755Z" }, - { url = "https://files.pythonhosted.org/packages/88/86/6127c295d5c9fdfa13f61e569c2fb1cba3ce3bb1fbb7a912f14e3baac04a/pycrdt-0.14.1-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3ba13fcb11665d05f3e3a80942dda42ff0d91a33f685909c2e90d0e57cacdad5", size = 1249379, upload-time = "2026-06-17T14:17:31.719Z" }, - { url = "https://files.pythonhosted.org/packages/46/63/fa06b2b8488788bf073d81fb8020eed5c8084465037c18478aaa91c06a8a/pycrdt-0.14.1-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9a64e7a2e4ea5bc27f1675b64a3669c588adb6a8f2ed33a798d42d7d1f607845", size = 1099321, upload-time = "2026-06-17T14:17:33.547Z" }, - { url = "https://files.pythonhosted.org/packages/83/24/a19c5825f25135485527f2c83c4b4151ba6688a3fac7c7a0c8d20bd2b25f/pycrdt-0.14.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a153994b1f32ec6012d00ec645f80bf7e77ebea907759ee5fbe4e08a6f242bd7", size = 1069402, upload-time = "2026-06-17T14:17:35.295Z" }, - { url = "https://files.pythonhosted.org/packages/ab/0a/f91f8689d5abb8e0d3fa73ee71e52326185913f27ac0189223d0b7bad77c/pycrdt-0.14.1-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fa6f02d8272737e734033a7ec62382d3929b2ab70681aac54b9d21373d78bf82", size = 1165406, upload-time = "2026-06-17T14:17:37.264Z" }, - { url = "https://files.pythonhosted.org/packages/b2/59/829f7aab8706e26fd5876ff37371359ff2930211b534570cd3d11305d6f6/pycrdt-0.14.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e83047e92cf7248c2d40d7be7a42fd7065598c3cc31f3d422def2886499787d6", size = 1216928, upload-time = "2026-06-17T14:17:39.232Z" }, - { url = "https://files.pythonhosted.org/packages/19/8f/a69823e4b02f1da3329d82316b2c733b1875c96e3aff5a2c1ebd8cefd1f8/pycrdt-0.14.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:9d33a6dd2dab10a6380ce9bd7fee79f7e3b868214e95e977842adf9e54906fdf", size = 1337450, upload-time = "2026-06-17T14:17:40.991Z" }, - { url = "https://files.pythonhosted.org/packages/30/5d/040bbcaf59a0e590e3f89946afa611960d08f87c60367260a3ecf01c02de/pycrdt-0.14.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:e347942c2ac71c1ac6ef04212fcd3eb8456f88053b71bf51a288084531c27135", size = 1334972, upload-time = "2026-06-17T14:17:42.6Z" }, - { url = "https://files.pythonhosted.org/packages/67/e4/be739b1301575b04e85eab7d76cb557a9abd167451d7442592e3f3d65b95/pycrdt-0.14.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:cce1a249ab5b3d9757ceb42f22da51043c50f1d5c18b0673522b41a7311ce232", size = 1280543, upload-time = "2026-06-17T14:17:45.715Z" }, - { url = "https://files.pythonhosted.org/packages/18/06/1760c307048b431a195b41027faf48906dc8f22b8ee647817d6a15258c9c/pycrdt-0.14.1-cp314-cp314-win32.whl", hash = "sha256:fb93e7e277fc9b2cc26ce5b51d3e3b6436a762d0a0985ceaa50459ff6a33230f", size = 800359, upload-time = "2026-06-17T14:17:47.843Z" }, - { url = "https://files.pythonhosted.org/packages/5c/5c/ef3db9970413a661680972274f6b93f961130748e581a41c0c9960e29275/pycrdt-0.14.1-cp314-cp314-win_amd64.whl", hash = "sha256:e3334b8f9fc8caeb41ac8a754adeb9dc640bb8fa1420c38cdb8dc2001a4777c8", size = 864167, upload-time = "2026-06-17T14:17:49.65Z" }, + { url = "https://files.pythonhosted.org/packages/39/c8/06a5378b2d93a2dcefceaec8276de70df4294ad036bebe3bc44775bb1bdd/pycrdt-0.14.6-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:9d882f8e682ff8cf28d7a72f7276548b4ac2da3292fd4ffe533df8854058c817", size = 1910884, upload-time = "2026-09-21T08:38:22.129Z" }, + { url = "https://files.pythonhosted.org/packages/cb/83/0c6220f014dcb2f1ad21ca7d79a9d12c5905a28457e27558dc74facac33f/pycrdt-0.14.6-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:03a36126f2e15fb7bba65d811fbf32db9abc8288f86bb0d5fd756bd239d0a213", size = 1049390, upload-time = "2026-09-21T08:38:24.133Z" }, + { url = "https://files.pythonhosted.org/packages/09/4b/c4cadeff3f26f191111a353c022bf4c67f659ccb68343c6023699152698d/pycrdt-0.14.6-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3c419cdc7c071943797549846f0bd7a2afe64bdb1d360e874059d763100c335b", size = 1074734, upload-time = "2026-09-21T08:38:26.217Z" }, + { url = "https://files.pythonhosted.org/packages/37/9a/37add6a42e06b5f3cc70bf271d14b50af23e2afaf0d6f8c6009e676f7937/pycrdt-0.14.6-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ec095037fdbf268efd3c770624f8213fc5c29ad903deb464bba68fc7f94b236f", size = 1266639, upload-time = "2026-09-21T08:38:28.286Z" }, + { url = "https://files.pythonhosted.org/packages/9e/f6/3ad094f7718e22a828df6f292f03310170f5d22ed721f6066dac4319457c/pycrdt-0.14.6-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a4a5d56bb8346f241078da6a75d57a997c6ab13248fdb608d75261621a3fe20c", size = 1111942, upload-time = "2026-09-21T08:38:30.145Z" }, + { url = "https://files.pythonhosted.org/packages/00/fd/766f4546c6e65326778de93bd35d52cf6e06644b49c773cfdcdc14800e9e/pycrdt-0.14.6-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96ea4c0a3c408a688d794bb0caefe8b0f1cdc98cfff54e0c859c2a74344b5840", size = 1062799, upload-time = "2026-09-21T08:38:32.22Z" }, + { url = "https://files.pythonhosted.org/packages/6c/62/4e4d0c7efc546d968fe210af85d4fd15ecd99d3162f19fc421eb432decfb/pycrdt-0.14.6-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4c3e67c79f6d51c9130e9684101db4fb59d1eaf661db8690f35630ebe5adb109", size = 1184663, upload-time = "2026-09-21T08:38:34.149Z" }, + { url = "https://files.pythonhosted.org/packages/96/a3/8110012249bb71a280f01a3672e783b0658268661028a4193034969ff932/pycrdt-0.14.6-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:dce936fd23ae0b303e87c192c8e5384cb0c1b9ef0298b3601b88d9d0dda7e339", size = 1226239, upload-time = "2026-09-21T08:38:36.167Z" }, + { url = "https://files.pythonhosted.org/packages/a9/13/e9c0a1e222f0802becb4f3245c87d3fde559097e3e0387d67df615a3e920/pycrdt-0.14.6-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:d6d2b47256e444cad29665f832e5d0801685b02924af1be86b9aa2150195dcd7", size = 1347934, upload-time = "2026-09-21T08:38:38.182Z" }, + { url = "https://files.pythonhosted.org/packages/6a/e9/90c47bed419ef090b7be458e0ebbf07d0995346d9070a1ad9aaab7affd99/pycrdt-0.14.6-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:dc351bfeb184e3bbbac44aca433ef16b0e09c85a98b6870888e8955d5624b4e8", size = 1355340, upload-time = "2026-09-21T08:38:40.016Z" }, + { url = "https://files.pythonhosted.org/packages/1c/78/44eac56716b73cb99e3298cd05ea50eb001ff91646faf678d804187578dc/pycrdt-0.14.6-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:870eb7ab4ba699b9270348ced0862976b16a57587d6c1aa7ac274d3b24cbec13", size = 1285156, upload-time = "2026-09-21T08:38:42.852Z" }, + { url = "https://files.pythonhosted.org/packages/d6/f9/3513b6a1b3988cd6b490f96cf72fcd4d1e8f25035f090c521c5f00147147/pycrdt-0.14.6-cp314-cp314-win32.whl", hash = "sha256:ad497a699cfc1a24b50dc43a3d579774bea46e406baf257e95dddb8976841ee3", size = 811442, upload-time = "2026-09-21T08:38:44.857Z" }, + { url = "https://files.pythonhosted.org/packages/35/88/c0869b8fea03163e66284e415cd3e9ab702b75108836e51d043ff75a0e31/pycrdt-0.14.6-cp314-cp314-win_amd64.whl", hash = "sha256:14e995fd7f047d104c89240a03224a1a2bfcfe8b5cc36b5391d0350ecc371fce", size = 868769, upload-time = "2026-09-21T08:38:46.78Z" }, ] [[package]] name = "pydantic" -version = "2.13.4" +version = "2.13.5" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "annotated-types" }, @@ -1909,32 +1904,34 @@ dependencies = [ { name = "typing-extensions" }, { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/18/a5/b60d21ac674192f8ab0ba4e9fd860690f9b4a6e51ca5df118733b487d8d6/pydantic-2.13.4.tar.gz", hash = "sha256:c40756b57adaa8b1efeeced5c196f3f3b7c435f90e84ea7f443901bec8099ef6", size = 844775, upload-time = "2026-05-06T13:43:05.343Z" } +sdist = { url = "https://files.pythonhosted.org/packages/53/ef/fc4f868f4e2cee79f863883abffceff107875f569b848507319842d2a681/pydantic-2.13.5.tar.gz", hash = "sha256:51a9c5f7b2f8e636f04c6cada605d9b6a3bf1348fdf945a3d8869b19bba0ee08", size = 845750, upload-time = "2026-08-28T14:04:00.916Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl", hash = "sha256:45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba", size = 472262, upload-time = "2026-05-06T13:43:02.641Z" }, + { url = "https://files.pythonhosted.org/packages/eb/47/c95ffc2009878c7aac0c5e08528022dcb885933252a88b5f170058014464/pydantic-2.13.5-py3-none-any.whl", hash = "sha256:346a034f080da3755d8e9cb5e00e8b07de1d39e4f6e2c87d8ab7cafa0b269a73", size = 472589, upload-time = "2026-08-28T14:03:59.136Z" }, ] [[package]] name = "pydantic-ai-slim" -version = "1.107.1" +version = "2.53.0" source = { registry = "https://pypi.org/simple" } dependencies = [ + { name = "anyio" }, { name = "genai-prices" }, { name = "griffelib" }, - { name = "httpx" }, + { name = "httpx2" }, { name = "opentelemetry-api" }, { name = "pydantic" }, { name = "pydantic-graph" }, { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d5/a5/e4a515a5eaa2cef746356e69e706e6cfa4575d1065652b226104db693877/pydantic_ai_slim-1.107.1.tar.gz", hash = "sha256:c4c86aae407e62ea720e8911627219f34f60668dc4c35fdead5ad026efdd00fc", size = 780236, upload-time = "2026-07-11T03:22:16.105Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b4/26/9d25a5107491856f27c1d4e8234ae47e6f165c4474f8513aabe91fcb8a8f/pydantic_ai_slim-2.53.0.tar.gz", hash = "sha256:37539693ff944dca2ee1ad30ad3c2b5c8adfdb9f54808767098dbc5410130a9b", size = 1770502, upload-time = "2026-10-02T03:18:09.2Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/92/26/a9f8761ce3789a67c930d2d93742a2c10382a6d1fe99fba0aa67430c7786/pydantic_ai_slim-1.107.1-py3-none-any.whl", hash = "sha256:8eade1c9a1bbdf19c06b4fba9424980b0f446ef2756d2559cc819971ec35cc8f", size = 964387, upload-time = "2026-07-11T03:22:09.178Z" }, + { url = "https://files.pythonhosted.org/packages/ca/6d/af87099ae2338e5bc3fae90734ef5a2121d4d582060a88a297bd109863b3/pydantic_ai_slim-2.53.0-py3-none-any.whl", hash = "sha256:979fb5553cc32baf9f3aaeff7a83c19d6ce6d19c0284f5cd54087bc9870b2522", size = 2081244, upload-time = "2026-10-02T03:17:58.698Z" }, ] [package.optional-dependencies] logfire = [ { name = "logfire", extra = ["httpx"] }, + { name = "opentelemetry-instrumentation-httpx" }, ] mistral = [ { name = "mistralai" }, @@ -1944,65 +1941,64 @@ openai = [ { name = "tiktoken" }, ] web = [ - { name = "httpx" }, { name = "starlette" }, { name = "uvicorn" }, ] [[package]] name = "pydantic-core" -version = "2.46.4" +version = "2.46.5" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9d/56/921726b776ace8d8f5db44c4ef961006580d91dc52b803c489fafd1aa249/pydantic_core-2.46.4.tar.gz", hash = "sha256:62f875393d7f270851f20523dd2e29f082bcc82292d66db2b64ea71f64b6e1c1", size = 471464, upload-time = "2026-05-06T13:37:06.98Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/74/228a26ddad29c6672b805d9fd78e8d251cd04004fa7eed0e622096cd0250/pydantic_core-2.46.4-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:428e04521a40150c85216fc8b85e8d39fece235a9cf5e383761238c7fa9b96fb", size = 2102079, upload-time = "2026-05-06T13:38:41.019Z" }, - { url = "https://files.pythonhosted.org/packages/ad/1f/8970b150a4b4365623ae00fc88603491f763c627311ae8031e3111356d6e/pydantic_core-2.46.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:23ace664830ee0bfe014a0c7bc248b1f7f25ed7ad103852c317624a1083af462", size = 1952179, upload-time = "2026-05-06T13:36:59.812Z" }, - { url = "https://files.pythonhosted.org/packages/95/30/5211a831ae054928054b2f79731661087a2bc5c01e825c672b3a4a8f1b3e/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce5c1d2a8b27468f433ca974829c44060b8097eedc39933e3c206a90ee49c4a9", size = 1978926, upload-time = "2026-05-06T13:37:39.933Z" }, - { url = "https://files.pythonhosted.org/packages/57/e9/689668733b1eb67adeef047db3c2e8788fcf65a7fd9c9e2b46b7744fe245/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7283d57845ecf5a163403eb0702dfc220cc4fbdd18919cb5ccea4f95ee1cdab4", size = 2046785, upload-time = "2026-05-06T13:38:01.995Z" }, - { url = "https://files.pythonhosted.org/packages/60/d9/6715260422ff50a2109878fd24d948a6c3446bb2664f34ee78cd972b3acd/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8daafc69c93ee8a0204506a3b6b30f586ef54028f52aeeeb5c4cfc5184fd5914", size = 2228733, upload-time = "2026-05-06T13:40:50.371Z" }, - { url = "https://files.pythonhosted.org/packages/18/ae/fdb2f64316afca925640f8e70bb1a564b0ec2721c1389e25b8eb4bf9a299/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd2213145bcc2ba85884d0ac63d222fece9209678f77b9b4d76f054c561adb28", size = 2307534, upload-time = "2026-05-06T13:37:21.531Z" }, - { url = "https://files.pythonhosted.org/packages/89/1d/8eff589b45bb8190a9d12c49cfad0f176a5cbd1534908a6b5125e2886239/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a5f930472650a82629163023e630d160863fce524c616f4e5186e5de9d9a49b", size = 2099732, upload-time = "2026-05-06T13:39:31.942Z" }, - { url = "https://files.pythonhosted.org/packages/06/d5/ee5a3366637fee41dee51a1fc91562dcf12ddbc68fda34e6b253da2324bb/pydantic_core-2.46.4-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:c1b3f518abeca3aa13c712fd202306e145abf59a18b094a6bafb2d2bbf59192c", size = 2129627, upload-time = "2026-05-06T13:37:25.033Z" }, - { url = "https://files.pythonhosted.org/packages/94/33/2414be571d2c6a6c4d08be21f9292b6d3fdb08949a97b6dfe985017821db/pydantic_core-2.46.4-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a7dd0b3ee80d90150e3495a3a13ac34dbcbfd4f012996a6a1d8900e91b5c0fb", size = 2179141, upload-time = "2026-05-06T13:37:14.046Z" }, - { url = "https://files.pythonhosted.org/packages/7b/79/7daa95be995be0eecc4cf75064cb33f9bbbfe3fe0158caf2f0d4a996a5c7/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:3fb702cd90b0446a3a1c5e470bfa0dd23c0233b676a9099ddcc964fa6ca13898", size = 2184325, upload-time = "2026-05-06T13:36:53.615Z" }, - { url = "https://files.pythonhosted.org/packages/9f/cb/d0a382f5c0de8a222dc61c65348e0ce831b1f68e0a018450d31c2cace3a5/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:b8458003118a712e66286df6a707db01c52c0f52f7db8e4a38f0da1d3b94fc4e", size = 2323990, upload-time = "2026-05-06T13:40:29.971Z" }, - { url = "https://files.pythonhosted.org/packages/05/db/d9ba624cc4a5aced1598e88c04fdbd8310c8a69b9d38b9a3d39ce3a61ed7/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:372429a130e469c9cd698925ce5fc50940b7a1336b0d82038e63d5bbc4edc519", size = 2369978, upload-time = "2026-05-06T13:37:23.027Z" }, - { url = "https://files.pythonhosted.org/packages/f2/20/d15df15ba918c423461905802bfd2981c3af0bfa0e40d05e13edbfa48bc3/pydantic_core-2.46.4-cp314-cp314-win32.whl", hash = "sha256:85bb3611ff1802f3ee7fdd7dbff26b56f343fb432d57a4728fdd49b6ef35e2f4", size = 1966354, upload-time = "2026-05-06T13:38:03.499Z" }, - { url = "https://files.pythonhosted.org/packages/fc/b6/6b8de4c0a7d7ab3004c439c80c5c1e0a3e8d78bbae19379b01960383d9e5/pydantic_core-2.46.4-cp314-cp314-win_amd64.whl", hash = "sha256:811ff8e9c313ab425368bcbb36e5c4ebd7108c2bbf4e4089cfbb0b01eff63fac", size = 2072238, upload-time = "2026-05-06T13:39:40.807Z" }, - { url = "https://files.pythonhosted.org/packages/32/36/51eb763beec1f4cf59b1db243a7dcc39cbb41230f050a09b9d69faaf0a48/pydantic_core-2.46.4-cp314-cp314-win_arm64.whl", hash = "sha256:bfec22eab3c8cc2ceec0248aec886624116dc079afa027ecc8ad4a7e62010f8a", size = 2018251, upload-time = "2026-05-06T13:37:26.72Z" }, - { url = "https://files.pythonhosted.org/packages/e8/91/855af51d625b23aa987116a19e231d2aaef9c4a415273ddc189b79a45fee/pydantic_core-2.46.4-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:af8244b2bef6aaad6d92cda81372de7f8c8d36c9f0c3ea36e827c60e7d9467a0", size = 2099593, upload-time = "2026-05-06T13:39:47.682Z" }, - { url = "https://files.pythonhosted.org/packages/fb/1b/8784a54c65edb5f49f0a14d6977cf1b209bba85a4c77445b255c2de58ab3/pydantic_core-2.46.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5a4330cdbc57162e4b3aa303f588ba752257694c9c9be3e7ebb11b4aca659b5d", size = 1935226, upload-time = "2026-05-06T13:40:40.428Z" }, - { url = "https://files.pythonhosted.org/packages/e8/e7/1955d28d1afc56dd4b3ad7cc0cf39df1b9852964cf16e5d13912756d6d6b/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29c61fc04a3d840155ff08e475a04809278972fe6aef51e2720554e96367e34b", size = 1974605, upload-time = "2026-05-06T13:37:32.029Z" }, - { url = "https://files.pythonhosted.org/packages/93/e2/3fedbf0ba7a22850e6e9fd78117f1c0f10f950182344d8a6c535d468fdd8/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c50f2528cf200c5eed56faf3f4e22fcd5f38c157a8b78576e6ba3168ec35f000", size = 2030777, upload-time = "2026-05-06T13:38:55.239Z" }, - { url = "https://files.pythonhosted.org/packages/f8/61/46be275fcaaba0b4f5b9669dd852267ce1ff616592dccf7a7845588df091/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0cbe8b01f948de4286c74cdd6c667aceb38f5c1e26f0693b3983d9d74887c65e", size = 2236641, upload-time = "2026-05-06T13:37:08.096Z" }, - { url = "https://files.pythonhosted.org/packages/60/db/12e93e46a8bac9988be3c016860f83293daea8c716c029c9ace279036f2f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:617d7e2ca7dcb8c5cf6bcb8c59b8832c94b36196bbf1cbd1bfb56ed341905edd", size = 2286404, upload-time = "2026-05-06T13:40:20.221Z" }, - { url = "https://files.pythonhosted.org/packages/e2/4a/4d8b19008f38d31c53b8219cfedc2e3d5de5fe99d90076b7e767de29274f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7027560ee92211647d0d34e3f7cd6f50da56399d26a9c8ad0da286d3869a53f3", size = 2109219, upload-time = "2026-05-06T13:38:12.153Z" }, - { url = "https://files.pythonhosted.org/packages/88/70/3cbc40978fefb7bb09c6708d40d4ad1a5d70fd7213c3d17f971de868ec1f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:f99626688942fb746e545232e7726926f3be91b5975f8b55327665fafda991c7", size = 2110594, upload-time = "2026-05-06T13:40:02.971Z" }, - { url = "https://files.pythonhosted.org/packages/9d/20/b8d36736216e29491125531685b2f9e61aa5b4b2599893f8268551da3338/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fc3e9034a63de20e15e8ade85358bc6efc614008cab72898b4b4952bea0509ff", size = 2159542, upload-time = "2026-05-06T13:39:27.506Z" }, - { url = "https://files.pythonhosted.org/packages/1d/a2/367df868eb584dacf6bf82a389272406d7178e301c4ac82545ab98bc2dd9/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:97e7cf2be5c77b7d1a9713a05605d49460d02c6078d38d8bef3cbe323c548424", size = 2168146, upload-time = "2026-05-06T13:38:31.93Z" }, - { url = "https://files.pythonhosted.org/packages/c1/b8/4460f77f7e201893f649a29ab355dddd3beee8a97bcb1a320db414f9a06e/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:3bf92c5d0e00fefaab325a4d27828fe6b6e2a21848686b5b60d2d9eeb09d76c6", size = 2306309, upload-time = "2026-05-06T13:37:44.717Z" }, - { url = "https://files.pythonhosted.org/packages/64/c4/be2639293acd87dc8ddbcec41a73cee9b2ebf996fe6d892a1a74e88ad3f7/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:3ecbc122d18468d06ca279dc26a8c2e2d5acb10943bb35e36ae92096dc3b5565", size = 2369736, upload-time = "2026-05-06T13:37:05.645Z" }, - { url = "https://files.pythonhosted.org/packages/30/a6/9f9f380dbb301f67023bf8f707aaa75daadf84f7152d95c410fd7e81d994/pydantic_core-2.46.4-cp314-cp314t-win32.whl", hash = "sha256:e846ae7835bf0703ae43f534ab79a867146dadd59dc9ca5c8b53d5c8f7c9ef02", size = 1955575, upload-time = "2026-05-06T13:38:51.116Z" }, - { url = "https://files.pythonhosted.org/packages/40/1f/f1eb9eb350e795d1af8586289746f5c5677d16043040d63710e22abc43c9/pydantic_core-2.46.4-cp314-cp314t-win_amd64.whl", hash = "sha256:2108ba5c1c1eca18030634489dc544844144ee36357f2f9f780b93e7ddbb44b5", size = 2051624, upload-time = "2026-05-06T13:38:21.672Z" }, - { url = "https://files.pythonhosted.org/packages/f6/d2/42dd53d0a85c27606f316d3aa5d2869c4e8470a5ed6dec30e4a1abe19192/pydantic_core-2.46.4-cp314-cp314t-win_arm64.whl", hash = "sha256:4fcbe087dbc2068af7eda3aa87634eba216dbda64d1ae73c8684b621d33f6596", size = 2017325, upload-time = "2026-05-06T13:40:52.723Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/af/f9/8a06bea35ef8daf588f707784c973a7046e0034c8d8cfb08828eeffb8b75/pydantic_core-2.46.5.tar.gz", hash = "sha256:10416c15b8839ecc4ef4d0885da76da6fd0f67333a0eb8aff6d93c4b8f2910fc", size = 472262, upload-time = "2026-08-28T10:01:31.677Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8e/8a/14596f2a8367da50cf7cbac48169ee5d9c8e11d486a3b527082384630c72/pydantic_core-2.46.5-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:c1c43ad4339643d70ebb8124e1305a7dab423001eff58bb41a0f731adbc98355", size = 2074081, upload-time = "2026-08-28T09:59:16.141Z" }, + { url = "https://files.pythonhosted.org/packages/ae/d5/d8a4eb6d6c7f66b91dd37c576d76e9e60fba900caf5372c17bcf949febc2/pydantic_core-2.46.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1a353f84de772f423b5ffb11d7ae352fbbef0f446f3c0b0af0f8236d7233606e", size = 1920497, upload-time = "2026-08-28T09:59:18.065Z" }, + { url = "https://files.pythonhosted.org/packages/8e/26/092079428f86e927e030b2c0ced87df69dbb1c875cdeaa67bf42ea2be746/pydantic_core-2.46.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5086029a57366b8cf81b130a43908738095c270c21a8d7f0e8bdfdb89718e2f3", size = 1952130, upload-time = "2026-08-28T09:59:20.476Z" }, + { url = "https://files.pythonhosted.org/packages/08/c3/8ec0e290a9ebaebd64047bf5fda94be835c6b1551b02437e4b76778fbcd7/pydantic_core-2.46.5-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:46c25dda9d092a06c08db76ffe0a197107904d0dfac653f7d5306bbcd6d6119c", size = 2026371, upload-time = "2026-08-28T09:59:22.227Z" }, + { url = "https://files.pythonhosted.org/packages/01/72/4fd20ad520fb8da0157f95b27a7eb05a72790ef08138e7701ac972c342ea/pydantic_core-2.46.5-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:37ea7b83c935e5b0d68c9449b82651accf78a10828b2c02b2f2d9e9496446c21", size = 2202822, upload-time = "2026-08-28T09:59:24.277Z" }, + { url = "https://files.pythonhosted.org/packages/31/b0/d16e0771206b29314f0d52198b720be21e8a99ab2bf11e3bc0d7c9cebdff/pydantic_core-2.46.5-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e64e88d5585bea9ce95861079de72006c7fa6d3df4e3a3b65ba31eb979c15c9f", size = 2262756, upload-time = "2026-08-28T09:59:26.608Z" }, + { url = "https://files.pythonhosted.org/packages/2c/9b/59634b7ac631c63b2a37760eb6943af3e29573d6b59a4abc5e7f019d4cee/pydantic_core-2.46.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:54d510bac3ee52247af28ed4bb18a1e799f040ac60fd2bf5ccd4c92f1fbe786f", size = 2068352, upload-time = "2026-08-28T09:59:29.044Z" }, + { url = "https://files.pythonhosted.org/packages/08/7c/570abb1ad2155348dc754ea91be22e5aaa18eb6d69a6068f7c6f2679a6ed/pydantic_core-2.46.5-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:a2a5e1d0ff29adddc9f6d6821a66302e4493f8ca898b715b6b1182c2c201ea0a", size = 2104777, upload-time = "2026-08-28T09:59:30.95Z" }, + { url = "https://files.pythonhosted.org/packages/8e/25/5bf74adc65a1ac5b7be3f6cb0bcb5433615c1598a801c19d830d84c98ded/pydantic_core-2.46.5-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:03b9666e41e35d8909852ba191a0607520f81b74eaf12ccf8737005dbb313821", size = 2156312, upload-time = "2026-08-28T09:59:32.604Z" }, + { url = "https://files.pythonhosted.org/packages/90/6a/2ef38830675e050121040618135564ed56b860b45433b02d9b4ebece46f3/pydantic_core-2.46.5-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:a91c17edf6eea2402cb5457b4c89e99bc5ed1004aa34c4adf1d4258c1a5c22c2", size = 2150067, upload-time = "2026-08-28T09:59:34.453Z" }, + { url = "https://files.pythonhosted.org/packages/90/ef/a7dbb03a14a64c2a4621f989c615ed9a892535a6cad938fc27079f919d80/pydantic_core-2.46.5-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:b49924c73a235e969511bf2aabdff3beebf9820931f646c80274d5d780010c47", size = 2304516, upload-time = "2026-08-28T09:59:36.194Z" }, + { url = "https://files.pythonhosted.org/packages/68/f8/6bb4c4b80e8a6fde1904c64a51c62a1d04fcdfa3ea521a66b2ddefa1d885/pydantic_core-2.46.5-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:2cbd9a5eff05e51c447c34dfa4632145b26b09120cf04bd0c871e44c1a5e1c9a", size = 2335223, upload-time = "2026-08-28T09:59:37.931Z" }, + { url = "https://files.pythonhosted.org/packages/2a/80/f46b8c681195190b2c1f1c7c0a81abce60663e987613e09ef64d433dd96b/pydantic_core-2.46.5-cp314-cp314-win32.whl", hash = "sha256:2d5d76654becf5efd62c9e51c3756c67b49498b0c9a40884934c40807adbd074", size = 1934827, upload-time = "2026-08-28T09:59:39.836Z" }, + { url = "https://files.pythonhosted.org/packages/f7/3c/60674207246bc0a4009d2391b7c7251c7159f279c8d2ab8aae8ef46f3dee/pydantic_core-2.46.5-cp314-cp314-win_amd64.whl", hash = "sha256:fa10ef4112775900e7a0661068635eb67b2ab824fbde764de6e0e21982a93db0", size = 2042648, upload-time = "2026-08-28T09:59:41.792Z" }, + { url = "https://files.pythonhosted.org/packages/69/0c/117c562c7c1babdf44576b72a5e496906506c93690387ecfbca7c729ae2e/pydantic_core-2.46.5-cp314-cp314-win_arm64.whl", hash = "sha256:045ab3b6d308439e32b81cc173bba5b9018bc6ed896afd0c65b3b009b1699af5", size = 1989652, upload-time = "2026-08-28T09:59:43.702Z" }, + { url = "https://files.pythonhosted.org/packages/e8/66/9336ae58f9eb68c41d121894e52c4c89eccb07eb8f602a04ee9c3f37736a/pydantic_core-2.46.5-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:8816f3d218beb4b787de5c9759c259b8fa61f9dec42dc7811f320a33771778b7", size = 2065829, upload-time = "2026-08-28T09:59:45.364Z" }, + { url = "https://files.pythonhosted.org/packages/c5/02/bc19b47a96c2d3109760711acf22369e56bd7e405ca52f7ade164d2ead57/pydantic_core-2.46.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:bce57638e08ac148e5778cce7feb968307a727d66f8e2274a543d0cf0c9ad6a3", size = 1905716, upload-time = "2026-08-28T09:59:47.18Z" }, + { url = "https://files.pythonhosted.org/packages/52/a4/70b47c0509923dd98ccfed04fb3e32ea3849c82a0ff2205bb41009b43c00/pydantic_core-2.46.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:976e1128455aa595ea04c79ccfedff1aaeab96ee013fcc916bed120c4f0ad94f", size = 1934216, upload-time = "2026-08-28T09:59:49.241Z" }, + { url = "https://files.pythonhosted.org/packages/52/ab/aa03b65f7bb198585edf806b906c3223ecf1795543e39e23aec4cce27ad2/pydantic_core-2.46.5-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e7b891faeedeafba41b2983e5001a81b6a915b69544c7e7570d1989ce1c36ac7", size = 2010635, upload-time = "2026-08-28T09:59:51.692Z" }, + { url = "https://files.pythonhosted.org/packages/3c/8b/0da06343f30b84ec549aafd309c6456223d5dc8bd36af504c573faad561d/pydantic_core-2.46.5-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5f194189415698233dd1114a093a9b56e61e2c57e11b469be3b0506f46f0771c", size = 2209369, upload-time = "2026-08-28T09:59:53.582Z" }, + { url = "https://files.pythonhosted.org/packages/d6/5b/844c4defaa34a3df66eb9257087d121d70c201298b96abdf9f492fc2f1bf/pydantic_core-2.46.5-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:82a36973cf8a2ef5406f4fe2edbf8ed0c99629535d959e0b100c76a32535a111", size = 2253238, upload-time = "2026-08-28T09:59:55.484Z" }, + { url = "https://files.pythonhosted.org/packages/f4/64/a4e536cb16d7f61a7fd3120b46c577fc7fa7325992f69c4f52bc786d77d8/pydantic_core-2.46.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdbb78909f52b981d3b2d56b97328d71eb0b974c36bd77c920123a7ebb192829", size = 2065740, upload-time = "2026-08-28T09:59:58.038Z" }, + { url = "https://files.pythonhosted.org/packages/5f/75/aaa38c6bc2d085f6605b34eabdc6a8a4e0b2e61fc9c8e6e52b28e97b3125/pydantic_core-2.46.5-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:52e24eacdb536cade636aa90fb851835222becff8484b7001fdc78cb0290f2aa", size = 2087425, upload-time = "2026-08-28T09:59:59.898Z" }, + { url = "https://files.pythonhosted.org/packages/55/ae/fcab4cfc39aba3689e1d20c8b5250ad280957022c09af2ed9cd585602a5e/pydantic_core-2.46.5-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:37ae34309d7bd8c0d61ab839668058f2a7962ea1fc51d105d2db228fe0618034", size = 2139306, upload-time = "2026-08-28T10:00:03.057Z" }, + { url = "https://files.pythonhosted.org/packages/2d/f4/f1d03a4bc9d9acbc62f4d742b8a319af52f71885079868b2ff8e48a651ee/pydantic_core-2.46.5-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:0cdbada856a1c69a7624a64d3d9aefe79300bd6ef827b43a4f265010b9b55184", size = 2144589, upload-time = "2026-08-28T10:00:05.645Z" }, + { url = "https://files.pythonhosted.org/packages/83/f3/7a53bb1356de514a4cd295f25b6ac39237895620c0462d2592b76c16e114/pydantic_core-2.46.5-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:545f26c504b27c3758439a5e6d9349931f0a04f855668d5fe323c89e82300a38", size = 2288882, upload-time = "2026-08-28T10:00:07.931Z" }, + { url = "https://files.pythonhosted.org/packages/cd/94/5a81583660c175c59d49ffb09f4b3a44debeaf86a19fca664ae1cdd9ee32/pydantic_core-2.46.5-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:ff218293c9c806138dca139765e3b067621be52bcd93cdc14c7711be7ddc90a9", size = 2335210, upload-time = "2026-08-28T10:00:10.177Z" }, + { url = "https://files.pythonhosted.org/packages/5a/9f/5d685c2693b972d1a59c998586e8823712b66603aeff47ee60a4bdaafd37/pydantic_core-2.46.5-cp314-cp314t-win32.whl", hash = "sha256:97cf3eb53a8cccacf9d46686a0926186c9bfb5574f2ed66d3639d5fe117cd3a9", size = 1921180, upload-time = "2026-08-28T10:00:12.35Z" }, + { url = "https://files.pythonhosted.org/packages/70/12/5c94ee16d65a37a15f9e869f5e6256df111154491173801a4c5e800ab548/pydantic_core-2.46.5-cp314-cp314t-win_amd64.whl", hash = "sha256:d2f9fc07a8042a8f95925b35c4f04f469707c981fc33245b6ca187cf5d2dd290", size = 2020515, upload-time = "2026-08-28T10:00:14.774Z" }, + { url = "https://files.pythonhosted.org/packages/63/19/67830dda664e6bdf9285ee2e40f355d0d7d6b92aa0c42e8d217bb8d33d36/pydantic_core-2.46.5-cp314-cp314t-win_arm64.whl", hash = "sha256:acf8a67ba51f4ca9ddbd0e6b3000a65ac51ab734661778b3e7ba64d99a710f2f", size = 1989276, upload-time = "2026-08-28T10:00:16.984Z" }, ] [[package]] name = "pydantic-graph" -version = "1.107.1" +version = "2.53.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "httpx" }, + { name = "anyio" }, { name = "logfire-api" }, { name = "pydantic" }, { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b9/d0/b10720e987f433d63af6cba046554f84cf20aee696209a90af6d6769b385/pydantic_graph-1.107.1.tar.gz", hash = "sha256:c83b255a67b1e64e460749a61195309738f42895ad5b93da2140d6bff76b14f1", size = 62563, upload-time = "2026-07-11T03:22:18.404Z" } +sdist = { url = "https://files.pythonhosted.org/packages/eb/40/e31e2b9ca23f116f6a488e6114e803604e488ac05cb64aaab6b4633c52f0/pydantic_graph-2.53.0.tar.gz", hash = "sha256:28f05d5f66f5f6b11ef8f1c263f93781271b3af77ef3b313cc51b88a2e33445a", size = 45267, upload-time = "2026-10-02T03:18:12.674Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/dd/f0/27537e7c7df3dcca6b8ad2bff9a35c6a4f1b4e76d21cd6c6ab931d7ef0bc/pydantic_graph-1.107.1-py3-none-any.whl", hash = "sha256:b5893249b7fc1dc2e60dfc40a08ccd4cc0d1dd6e05aeeee2a50392c5663eac60", size = 80106, upload-time = "2026-07-11T03:22:12.083Z" }, + { url = "https://files.pythonhosted.org/packages/5c/07/6c5a2e57aad764dd81f8a8552b47ad88c598108c6794f703fe919a31bf26/pydantic_graph-2.53.0-py3-none-any.whl", hash = "sha256:48d70fd7affe15f33773a74b9657ab9442569725d9e67263ac3a3b95de89f714", size = 52764, upload-time = "2026-10-02T03:18:03.622Z" }, ] [[package]] @@ -2039,7 +2035,7 @@ crypto = [ [[package]] name = "pylint" -version = "4.0.6" +version = "4.0.9" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "astroid" }, @@ -2050,9 +2046,9 @@ dependencies = [ { name = "platformdirs" }, { name = "tomlkit" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/7d/1d/3bb57f303701549550d74bf7ced2b07412be97125c167a0c9d216aa9f762/pylint-4.0.6.tar.gz", hash = "sha256:52f19191bee08bf103f9705ad1a0ece4aa5a0a4ef2bdcbd969375a1e6f6579d5", size = 1585588, upload-time = "2026-06-14T14:43:26.772Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/5e/d5ec2c861010cf8577a3e5baaf2405fdf1004f1657d9245c4efb006c1dfd/pylint-4.0.9.tar.gz", hash = "sha256:6f1305780229ae720e89b8aff2b3ff857cbb268fbab98c8b586960267667ad34", size = 1604187, upload-time = "2026-09-23T15:26:43.144Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ab/da/acb2e7d4dbd2dfb792d38c0d850481f29ad7049b356d23f56c687d35203b/pylint-4.0.6-py3-none-any.whl", hash = "sha256:d11a0e1fdb7b1cd46ec5d6fc78fee8b95f28695b2d6140e5809925f61e32ea54", size = 538389, upload-time = "2026-06-14T14:43:24.873Z" }, + { url = "https://files.pythonhosted.org/packages/66/46/12e94ae1f9db89152223bdb17920b12c79e94ac51e19dce1da9fb63627b0/pylint-4.0.9-py3-none-any.whl", hash = "sha256:c4ba5bbaf1e70ecf05f08cd7d6091ea04824b79a2b2d9f5b10dc25fc34cb1124", size = 542068, upload-time = "2026-09-23T15:26:41.626Z" }, ] [[package]] @@ -2124,14 +2120,14 @@ wheels = [ [[package]] name = "pytest-django" -version = "4.12.0" +version = "4.14.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pytest" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/13/2b/db9a193df89e5660137f5428063bcc2ced7ad790003b26974adf5c5ceb3b/pytest_django-4.12.0.tar.gz", hash = "sha256:df94ec819a83c8979c8f6de13d9cdfbe76e8c21d39473cfe2b40c9fc9be3c758", size = 91156, upload-time = "2026-02-14T18:40:49.235Z" } +sdist = { url = "https://files.pythonhosted.org/packages/44/f6/3851312120c2bf2f19cafff931e75059aad1ba670703cd751e2fde9bc942/pytest_django-4.14.0.tar.gz", hash = "sha256:26787dd3f422cfbab8f55b80a776e2edea7a11092cb74e960bef1312515708ef", size = 94700, upload-time = "2026-08-10T14:13:08.319Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/83/a5/41d091f697c09609e7ef1d5d61925494e0454ebf51de7de05f0f0a728f1d/pytest_django-4.12.0-py3-none-any.whl", hash = "sha256:3ff300c49f8350ba2953b90297d23bf5f589db69545f56f1ec5f8cff5da83e85", size = 26123, upload-time = "2026-02-14T18:40:47.381Z" }, + { url = "https://files.pythonhosted.org/packages/9c/03/850bffad2b581c440ca51c039d74504d5a422c94bda0bdb8a8ba5068d48b/pytest_django-4.14.0-py3-none-any.whl", hash = "sha256:c533b08d89cc675efcd5398eea270b34547e35f9a3608e2c9748dd88428ea187", size = 27067, upload-time = "2026-08-10T14:13:06.998Z" }, ] [[package]] @@ -2302,16 +2298,16 @@ wheels = [ [[package]] name = "responses" -version = "0.26.2" +version = "0.26.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyyaml" }, { name = "requests" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f0/1a/4af3e6d659394b809838490b144e4ab8d7ed3b9fecc7ca78f5d2f79b1a3d/responses-0.26.2.tar.gz", hash = "sha256:9c9259b46a8349197edebf43cfa68a87e1a2802ef503ff8b2fecbabc0b45afd8", size = 84030, upload-time = "2026-07-03T16:44:50.325Z" } +sdist = { url = "https://files.pythonhosted.org/packages/9f/47/f216a33221db8eff328987661cf18371afee89c62a62b434b963d6b509c9/responses-0.26.3.tar.gz", hash = "sha256:b0c11ca8131b8b227b8d5108e6ed39772222bd5aab030ed430e8f99057c4c409", size = 86335, upload-time = "2026-08-26T19:17:24.373Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7c/28/693e1d9ebf72baa062ded80d837a035b86ce75eda5a269379e9e2b1008a8/responses-0.26.2-py3-none-any.whl", hash = "sha256:6fdfeabd58e5ec473b98dfe02e6d46d3173bd8dd573eff2ccccf1a05a5135364", size = 35609, upload-time = "2026-07-03T16:44:49.1Z" }, + { url = "https://files.pythonhosted.org/packages/6d/86/ca7958de70cb0752350575e98229368a3a2f746a2942034b3364e17312bb/responses-0.26.3-py3-none-any.whl", hash = "sha256:74474f799334ac4f37d93b6437ecc3bb1bb5c77a8d31780a338643be2dce0af8", size = 36289, upload-time = "2026-08-26T19:17:23.176Z" }, ] [[package]] @@ -2403,27 +2399,27 @@ wheels = [ [[package]] name = "sentry-sdk" -version = "2.66.1" +version = "2.71.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "certifi" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/7f/6f/d59cad0889d15fde85254cf58e701484de3f3f0406003b3197746910b19b/sentry_sdk-2.66.1.tar.gz", hash = "sha256:f882fb08710c5f8bfc603aafa3e901b384009a19cc3f76a572b863392ee81cdc", size = 940543, upload-time = "2026-07-22T12:26:54.553Z" } +sdist = { url = "https://files.pythonhosted.org/packages/67/93/9ef70bfb7346c778caf09b7cd10c17c33f601f2d17019fa1aedcda738b5f/sentry_sdk-2.71.0.tar.gz", hash = "sha256:7beb27a22f06396f3a05510c3da6ea10e1c79e02e859993c27ce4ff074e296d6", size = 1052358, upload-time = "2026-09-28T14:04:00.645Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/89/d3/726bd88f0eece09ddf431bea4c9191c18e7a8d070b854eb0014d447712ee/sentry_sdk-2.66.1-py3-none-any.whl", hash = "sha256:86002793161d9a95ef04bdd8d442e9bfece5d989b755f05d6360215094a7aff6", size = 505555, upload-time = "2026-07-22T12:26:52.71Z" }, + { url = "https://files.pythonhosted.org/packages/a4/f6/b3e68b2e08e9a52e6c8a279ca2fc0d3a535f3886222375f54ef9efbd694d/sentry_sdk-2.71.0-py3-none-any.whl", hash = "sha256:9ed36b4c206048aa67b5ddba0a6e28d59fc55cf10d60f5f7aea2c3917184bf4a", size = 534254, upload-time = "2026-09-28T14:03:58.668Z" }, ] [[package]] name = "servestatic" -version = "4.3.3" +version = "4.3.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "asgiref" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/6c/6b/ccfd794c446b61a191848337dc2757219152b142879dd50ff93b0e7290a7/servestatic-4.3.3.tar.gz", hash = "sha256:87628989eed8b6594ceed052bb185593df1fb3ff2db7c0c69b05bb8b2f7393d0", size = 33426, upload-time = "2026-09-02T21:55:49.492Z" } +sdist = { url = "https://files.pythonhosted.org/packages/dc/62/d0c5e77182fde15b6f04157aa1362a19b3e50436f782c7e090d6bf0aa73f/servestatic-4.3.4.tar.gz", hash = "sha256:fef61ea48b708f1e3a7f7fd29b3e70ad563486933ba1df97018f335e1abe9997", size = 33755, upload-time = "2026-09-07T02:13:36.294Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ce/fb/222b40a47f1f5736728c00485758ca35ffa8535a16f75e22e1a05205f614/servestatic-4.3.3-py3-none-any.whl", hash = "sha256:d46d374eef87a48b3b55379bf693613420e186c5b823f3e8fcceeda65c0c6e30", size = 40519, upload-time = "2026-09-02T21:55:48.302Z" }, + { url = "https://files.pythonhosted.org/packages/05/7c/f0f0ebb0d4d6864eeab8396556d906fbac4159e8a9e9bc687c48a87c119b/servestatic-4.3.4-py3-none-any.whl", hash = "sha256:5e467887d527ae7e8f12b511d6e99cf3b842a9f988e1a4d01f13e7e7e0e6b7dd", size = 40888, upload-time = "2026-09-07T02:13:35.042Z" }, ] [[package]] @@ -2446,20 +2442,20 @@ wheels = [ [[package]] name = "soupsieve" -version = "2.8.3" +version = "2.10" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7b/ae/2d9c981590ed9999a0d91755b47fc74f74de286b0f5cee14c9269041e6c4/soupsieve-2.8.3.tar.gz", hash = "sha256:3267f1eeea4251fb42728b6dfb746edc9acaffc4a45b27e19450b676586e8349", size = 118627, upload-time = "2026-01-20T04:27:02.457Z" } +sdist = { url = "https://files.pythonhosted.org/packages/71/c3/1b817965ac12dc002d7c9cd7dfffdd7d4fbf9b45763ef2ffe7b86ee94670/soupsieve-2.10.tar.gz", hash = "sha256:49e9380d7d2905463583bafe285e818c7366a9ed7b3aee221c1ac79c905d8bc0", size = 124337, upload-time = "2026-09-24T02:36:35.048Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/46/2c/1462b1d0a634697ae9e55b3cecdcb64788e8b7d63f54d923fcd0bb140aed/soupsieve-2.8.3-py3-none-any.whl", hash = "sha256:ed64f2ba4eebeab06cc4962affce381647455978ffc1e36bb79a545b91f45a95", size = 37016, upload-time = "2026-01-20T04:27:01.012Z" }, + { url = "https://files.pythonhosted.org/packages/66/87/5ed59e1d0290564e2027ed066c52b059892c4637741337fc0967183c8d4d/soupsieve-2.10-py3-none-any.whl", hash = "sha256:8596eb8967d744174820280fa62b4542a2e955bfaccca73ed8a13c6eb8e9b502", size = 38019, upload-time = "2026-09-24T02:36:33.709Z" }, ] [[package]] name = "sqlparse" -version = "0.5.5" +version = "0.6.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/90/76/437d71068094df0726366574cf3432a4ed754217b436eb7429415cf2d480/sqlparse-0.5.5.tar.gz", hash = "sha256:e20d4a9b0b8585fdf63b10d30066c7c94c5d7a7ec47c889a2d83a3caa93ff28e", size = 120815, upload-time = "2025-12-19T07:17:45.073Z" } +sdist = { url = "https://files.pythonhosted.org/packages/5f/d3/3f06a1006f2261d1342aefb3c71eed02f5d4ca5bdbecd86ebc12ad38306e/sqlparse-0.6.0.tar.gz", hash = "sha256:113c35c75365ab9cc9c7231d68c6428fb11c085fc8e9eb1ad659b7ddbf6cd2b9", size = 178477, upload-time = "2026-08-13T19:16:06.396Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/49/4b/359f28a903c13438ef59ebeee215fb25da53066db67b305c125f1c6d2a25/sqlparse-0.5.5-py3-none-any.whl", hash = "sha256:12a08b3bf3eec877c519589833aed092e2444e68240a3577e8e26148acc7b1ba", size = 46138, upload-time = "2025-12-19T07:17:46.573Z" }, + { url = "https://files.pythonhosted.org/packages/d9/50/f00935da0ec7cbf325f8dc4f772ae46fbc7b672dd62876e73f0a94adda57/sqlparse-0.6.0-py3-none-any.whl", hash = "sha256:b861c0288ce2fa56209a9a6412d2e066ac664b3873b89c26c9d8415e8e32996f", size = 50070, upload-time = "2026-08-13T19:16:04.062Z" }, ] [[package]] @@ -2478,14 +2474,14 @@ wheels = [ [[package]] name = "starlette" -version = "1.0.0" +version = "1.7.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/81/69/17425771797c36cded50b7fe44e850315d039f28b15901ab44839e70b593/starlette-1.0.0.tar.gz", hash = "sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149", size = 2655289, upload-time = "2026-03-22T18:29:46.779Z" } +sdist = { url = "https://files.pythonhosted.org/packages/7b/2b/3850dc6bf7ef71b088962eba31dafc6cffd2f96e577ebb0bb316df96da3e/starlette-1.7.0.tar.gz", hash = "sha256:c79f74ea63cff761804fbbfb182f1e0b440c2d07b164d24700c5a1bab5d6ff5d", size = 2736246, upload-time = "2026-09-23T07:30:26.35Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl", hash = "sha256:d3ec55e0bb321692d275455ddfd3df75fff145d009685eb40dc91fc66b03d38b", size = 72651, upload-time = "2026-03-22T18:29:45.111Z" }, + { url = "https://files.pythonhosted.org/packages/4e/d6/1ec1b290f9e0fb067899b61e1d37a30c923068bad260b216dbe37a7d2967/starlette-1.7.0-py3-none-any.whl", hash = "sha256:67f8e99895493dd2911a03f11314af6ceebeae4e704bb9f43dfc6a9db151c93e", size = 78980, upload-time = "2026-09-23T07:30:24.567Z" }, ] [[package]] @@ -2523,18 +2519,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b5/11/87d6d29fb5d237229d67973a6c9e06e048f01cf4994dee194ab0ea841814/tomlkit-0.14.0-py3-none-any.whl", hash = "sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680", size = 39310, upload-time = "2026-01-13T01:14:51.965Z" }, ] -[[package]] -name = "tqdm" -version = "4.67.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "colorama", marker = "sys_platform == 'win32'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/09/a9/6ba95a270c6f1fbcd8dac228323f2777d886cb206987444e4bce66338dd4/tqdm-4.67.3.tar.gz", hash = "sha256:7d825f03f89244ef73f1d4ce193cb1774a8179fd96f31d7e1dcde62092b960bb", size = 169598, upload-time = "2026-02-03T17:35:53.048Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl", hash = "sha256:ee1e4c0e59148062281c49d80b25b67771a127c85fc9676d3be5f243206826bf", size = 78374, upload-time = "2026-02-03T17:35:50.982Z" }, -] - [[package]] name = "traitlets" version = "5.15.0" @@ -2555,14 +2539,14 @@ wheels = [ [[package]] name = "types-requests" -version = "2.33.0.20260712" +version = "2.33.0.20260906" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/db/51/703318f7b7be8bee126ec13bf615050f932d0179b8784420f3a0199cc769/types_requests-2.33.0.20260712.tar.gz", hash = "sha256:2141b67ab534a5c5cd2dac5034f2a35f42e699c5bf185eee608c5246a069d7fb", size = 25084, upload-time = "2026-07-12T05:14:20.455Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c0/18/4c2c0290953f8b3b9612adfcb07b57f144ade3ad32a76764fca42b77c5f3/types_requests-2.33.0.20260906.tar.gz", hash = "sha256:76ab8a0fb736744a0c3deee7aa57b2927e301f078d9e61f5391b3e92002416b9", size = 25263, upload-time = "2026-09-06T06:35:47.707Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/62/e7/010c87f559e216d83f9dc51e939633fd0d0ead3377340181ab0e223cd3b5/types_requests-2.33.0.20260712-py3-none-any.whl", hash = "sha256:de027e28c171d3da529689cbfa023b0b4eab188c8dfa22fd834eebd2cee6e7bb", size = 21392, upload-time = "2026-07-12T05:14:19.616Z" }, + { url = "https://files.pythonhosted.org/packages/60/4c/51ec821d22a45b4162fa3f3e9e94ea4c0f8c49e82363b10955baa5438391/types_requests-2.33.0.20260906-py3-none-any.whl", hash = "sha256:9f53622652bd921ead7a54d665be1b8d518165c8b51cc9d68d944cd6b6bfa8fb", size = 21461, upload-time = "2026-09-06T06:35:45.856Z" }, ] [[package]] @@ -2618,24 +2602,24 @@ wheels = [ [[package]] name = "urllib3" -version = "2.7.0" +version = "2.8.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/53/0c/06f8b233b8fd13b9e5ee11424ef85419ba0d8ba0b3138bf360be2ff56953/urllib3-2.7.0.tar.gz", hash = "sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c", size = 433602, upload-time = "2026-05-07T16:13:18.596Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e3/05/b17359e1cefb4f909b5e40b1b90a496d987258916dbbf88e842c729f510e/urllib3-2.8.0.tar.gz", hash = "sha256:63bf2ead4c879426ebf22ef2a781eeb4aa3b4ae798a0435506f8687fd5bb9b63", size = 458972, upload-time = "2026-09-15T19:29:36.253Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl", hash = "sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897", size = 131087, upload-time = "2026-05-07T16:13:17.151Z" }, + { url = "https://files.pythonhosted.org/packages/92/9d/c4e665119135114480843e7ab388fa94d8480650450e6f8e26b70d323a4c/urllib3-2.8.0-py3-none-any.whl", hash = "sha256:0cf3cae568d36aa9576b28dfb35f11328f1cb974ca7647d9475ebb86c75ac6e3", size = 135717, upload-time = "2026-09-15T19:29:34.577Z" }, ] [[package]] name = "uvicorn" -version = "0.51.0" +version = "0.54.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "click" }, { name = "h11" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a2/65/b7c6c443ccc58678c91e1e973bbe2a878591538655d6e1d47f24ba1c51f3/uvicorn-0.51.0.tar.gz", hash = "sha256:f6f4b69b657c312f516dd2d268ab9ae6f254b11e4bac504f37b2ab58b24dd0b0", size = 94412, upload-time = "2026-07-08T10:59:05.962Z" } +sdist = { url = "https://files.pythonhosted.org/packages/da/34/30e9280707135d2cfc589dfff3cb796bd07a3aeb1a3e415ba09dd89d7bb4/uvicorn-0.54.0.tar.gz", hash = "sha256:a2e33cbfaa0306f8e6b0c13e0cb89d7d7a2da3e62b90c66e18c33d9807b28620", size = 112283, upload-time = "2026-09-25T06:52:37.601Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/45/ec/dbb7e5a6b91f86bfb9eb7d2988a2730907b6a729875b949c7f022e8b88fa/uvicorn-0.51.0-py3-none-any.whl", hash = "sha256:5d38af6cd620f2ae3849fb44fd4879e0890aa1febe8d47eb355fb45d93fe6a5b", size = 73219, upload-time = "2026-07-08T10:59:04.44Z" }, + { url = "https://files.pythonhosted.org/packages/38/0c/b54a4fdd7f90a3af8b02ebc9ce6712c2c208b7926a2f7bad95c33ebbe943/uvicorn-0.54.0-py3-none-any.whl", hash = "sha256:505bdb0f318731d45f1f712071fc781a8981f6847a31c902c9f5e652d4f67faf", size = 87427, upload-time = "2026-09-25T06:52:35.829Z" }, ] [[package]] @@ -2684,12 +2668,3 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/46/78/10ad9781128ed2f99dbc474f43283b13fea8ba58723e98844367531c18e9/wrapt-1.17.3-cp314-cp314t-win_arm64.whl", hash = "sha256:f38e60678850c42461d4202739f9bf1e3a737c7ad283638251e79cc49effb6b6", size = 38471, upload-time = "2025-08-12T05:52:57.784Z" }, { url = "https://files.pythonhosted.org/packages/1f/f6/a933bd70f98e9cf3e08167fc5cd7aaaca49147e48411c0bd5ae701bb2194/wrapt-1.17.3-py3-none-any.whl", hash = "sha256:7171ae35d2c33d326ac19dd8facb1e82e5fd04ef8c6c0e394d7af55a55051c22", size = 23591, upload-time = "2025-08-12T05:53:20.674Z" }, ] - -[[package]] -name = "zipp" -version = "3.23.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/30/21/093488dfc7cc8964ded15ab726fad40f25fd3d788fd741cc1c5a17d78ee8/zipp-3.23.1.tar.gz", hash = "sha256:32120e378d32cd9714ad503c1d024619063ec28aad2248dc6672ad13edfa5110", size = 25965, upload-time = "2026-04-13T23:21:46.6Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/08/8a/0861bec20485572fbddf3dfba2910e38fe249796cb73ecdeb74e07eeb8d3/zipp-3.23.1-py3-none-any.whl", hash = "sha256:0b3596c50a5c700c9cb40ba8d86d9f2cc4807e9bedb06bcdf7fac85633e444dc", size = 10378, upload-time = "2026-04-13T23:21:45.386Z" }, -] diff --git a/src/frontend/Dockerfile b/src/frontend/Dockerfile index 1c12846da0..05f997bb08 100644 --- a/src/frontend/Dockerfile +++ b/src/frontend/Dockerfile @@ -60,7 +60,7 @@ COPY --from=impress-builder /home/frontend/apps/impress/out /app FROM ${FRONTEND_IMAGE} AS frontend-source # ---- Front-end image ---- -FROM nginxinc/nginx-unprivileged:alpine3.23 AS frontend-production +FROM nginxinc/nginx-unprivileged:alpine3.24 AS frontend-production # Upgrade system packages to install security updates USER root diff --git a/src/frontend/apps/e2e/package.json b/src/frontend/apps/e2e/package.json index 5e4e3b3609..87463e8622 100644 --- a/src/frontend/apps/e2e/package.json +++ b/src/frontend/apps/e2e/package.json @@ -1,6 +1,6 @@ { "name": "app-e2e", - "version": "5.7.0", + "version": "6.0.0", "repository": "https://github.com/suitenumerique/docs", "author": "DINUM", "license": "MIT", @@ -25,7 +25,7 @@ "dependencies": { "@types/pngjs": "6.0.5", "convert-stream": "1.0.2", - "dotenv": "18.0.1", + "dotenv": "18.0.5", "pdf-parse": "2.4.5", "pixelmatch": "7.2.0", "pngjs": "7.0.0" diff --git a/src/frontend/apps/impress/package.json b/src/frontend/apps/impress/package.json index b0eb57ded8..81cda8db08 100644 --- a/src/frontend/apps/impress/package.json +++ b/src/frontend/apps/impress/package.json @@ -1,6 +1,6 @@ { "name": "app-impress", - "version": "5.7.0", + "version": "6.0.0", "repository": "https://github.com/suitenumerique/docs", "author": "DINUM", "license": "MIT", @@ -41,18 +41,18 @@ "@emoji-mart/react": "1.1.1", "@floating-ui/react": "0.27.20", "@fontsource-variable/inter": "5.3.0", - "@fontsource-variable/material-symbols-outlined": "5.3.7", + "@fontsource-variable/material-symbols-outlined": "5.3.8", "@fontsource/material-icons": "5.3.0", "@gouvfr-lasuite/ui-components": "1.2.0", "@lottiefiles/dotlottie-react": "^0.19.6", - "@mantine/core": "9.6.2", - "@mantine/hooks": "9.6.2", + "@mantine/core": "9.7.0", + "@mantine/hooks": "9.7.0", "@react-aria/live-announcer": "3.5.1", "@react-pdf/math": "2.0.1", "@react-pdf/renderer": "4.9.0", "@sentry/nextjs": "10.75.0", - "@tanstack/react-query": "5.103.2", - "@tiptap/extension-find-and-replace": "3.31.3", + "@tanstack/react-query": "5.104.1", + "@tiptap/extension-find-and-replace": "3.31.4", "@tiptap/extensions": "*", "@y/yhub-http-fallback": "0.1.1", "ai": "6.0.295", @@ -69,13 +69,13 @@ "luxon": "3.7.2", "mathjax-full": "3.2.2", "mathml2omml": "0.5.0", - "next": "16.3.6", - "posthog-js": "1.434.4", + "next": "16.3.8", + "posthog-js": "1.436.1", "react": "*", "react-aria-components": "1.21.1", "react-dom": "*", "react-dropzone": "20.1.2", - "react-i18next": "17.0.14", + "react-i18next": "17.0.15", "react-intersection-observer": "11.0.1", "react-resizable-panels": "3.0.6", "react-select": "5.10.2", @@ -93,30 +93,30 @@ "devDependencies": { "@gouvfr-lasuite/ui-tokens": "3.2.0", "@svgr/webpack": "8.1.0", - "@tanstack/react-query-devtools": "5.103.2", + "@tanstack/react-query-devtools": "5.104.1", "@testing-library/dom": "10.4.2", "@testing-library/jest-dom": "7.0.1", "@testing-library/react": "16.3.3", "@testing-library/user-event": "14.6.7", "@types/lodash": "4.17.25", - "@types/luxon": "3.7.5", + "@types/luxon": "3.7.6", "@types/node": "*", "@types/react": "*", "@types/react-dom": "*", - "@vitejs/plugin-react": "6.1.1", + "@vitejs/plugin-react": "6.1.2", "cross-env": "10.1.0", - "dotenv": "18.0.1", + "dotenv": "18.0.5", "eslint-plugin-docs": "*", "fetch-mock": "12.6.0", - "jsdom": "30.1.0", + "jsdom": "30.1.2", "node-fetch": "2.7.0", - "prettier": "3.9.8", + "prettier": "3.9.9", "stylelint": "16.26.1", "stylelint-config-standard": "39.0.1", "stylelint-prettier": "5.0.3", "typescript": "*", - "vite": "8.3.1", - "vitest": "5.0.1", + "vite": "8.3.2", + "vitest": "5.0.3", "webpack": "5.111.1", "workbox-webpack-plugin": "7.1.0" }, diff --git a/src/frontend/apps/impress/src/features/docs/doc-versioning/__tests__/utils.test.ts b/src/frontend/apps/impress/src/features/docs/doc-versioning/__tests__/utils.test.ts index f22e9e55a7..3053527fbc 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-versioning/__tests__/utils.test.ts +++ b/src/frontend/apps/impress/src/features/docs/doc-versioning/__tests__/utils.test.ts @@ -128,6 +128,32 @@ describe('mergeActivityEntries', () => { ]); }); + it('never returns two versions with the same id', () => { + // the id is the moment a version ends, and the preview and the restore are + // asked for nothing else: two entries ending together are one version of + // the document. Kept apart they would both look selected and share a list + // key. An imported save and an edit ending together cannot merge... + const adjacent = mergeActivityEntries([ + entry(0, 5_000, 'system'), + entry(100, 5_000, 'alice'), + ]); + + expect(adjacent).toHaveLength(1); + expect(adjacent[0]).toMatchObject({ id: '5000', from: 0, to: 5_000 }); + expect(adjacent[0].by.sort()).toEqual(['alice', 'system']); + + // ...and neither can a later one that ends where an earlier one did, with + // a different version in between + const apart = mergeActivityEntries([ + entry(0, 5_000, 'system'), + entry(100, 300, 'alice'), + entry(400, 5_000, 'system'), + ]); + + expect(apart.map((v) => v.id)).toEqual(['5000', '300']); + expect(apart[0]).toMatchObject({ from: 0, by: ['system'] }); + }); + it('keeps an unattributed change without inventing an author', () => { const [version] = mergeActivityEntries([entry(0, 0, null)]); diff --git a/src/frontend/apps/impress/src/features/docs/doc-versioning/utils.ts b/src/frontend/apps/impress/src/features/docs/doc-versioning/utils.ts index d8d6bc773b..93f934e2f3 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-versioning/utils.ts +++ b/src/frontend/apps/impress/src/features/docs/doc-versioning/utils.ts @@ -91,8 +91,22 @@ export const mergeActivityEntries = ( } }); - return versions.map((version, index) => ({ - ...version, - by: Array.from(authors[index]), - })); + /** + * Versions ending at the same moment are the same document but share an `id` + * (double selection, key clash): fold them, keeping every author. + */ + const unique = new Map(); + versions.forEach((version, index) => { + const known = unique.get(version.id); + if (known) { + known.from = Math.min(known.from, version.from); + authors[index].forEach((author) => known.by.push(author)); + known.by = Array.from(new Set(known.by)); + return; + } + + unique.set(version.id, { ...version, by: Array.from(authors[index]) }); + }); + + return Array.from(unique.values()); }; diff --git a/src/frontend/apps/impress/src/i18n/translations.json b/src/frontend/apps/impress/src/i18n/translations.json index c26f73d67e..07d9b66926 100644 --- a/src/frontend/apps/impress/src/i18n/translations.json +++ b/src/frontend/apps/impress/src/i18n/translations.json @@ -109,8 +109,6 @@ "List request access card": "Kartenn al listennad goulennoù moned", "List search user result card": "Listenn disoc'hoù ar c'hlask implijer", "Load more": "Kargañ muioc'h", - "Log in to access the document.": "Kevreañ evit tizhout an teul.", - "Login": "Kevreañ", "Main content": "Endalc'had pennañ", "More docs": "Restroù ouzhpenn", "More options": "Muioc'h a zibaboù", @@ -357,8 +355,6 @@ "List search user result card": "Ergebnis der Benutzersuche", "Load more": "Mehr laden", "Loading documents...": "Dokumente werden geladen...", - "Log in to access the document.": "Zum Zugriff Anmeldung erforderlich.", - "Login": "Anmelden", "Main content": "Hauptinhalt", "More docs": "Weitere Dokumente", "More options": "Mehr Einstellungen", @@ -669,8 +665,6 @@ "List search user result card": "Λίστα καρτών αποτελεσμάτων αναζήτησης χρήστη", "Load more": "Φόρτωση περισσότερων", "Loading documents...": "Φόρτωση εγγράφων...", - "Log in to access the document.": "Συνδεθείτε για να αποκτήσετε πρόσβαση στο έγγραφο.", - "Login": "Σύνδεση", "Main content": "Κύριο περιεχόμενο", "Modal confirmation for moving a document": "Επιβεβαίωση μετακίνησης εγγράφου", "More docs": "Περισσότερα έγγραφα", @@ -1018,8 +1012,6 @@ "List search user result card": "Lista de resultados de búsqueda de usuario", "Load more": "Ver más", "Loading documents...": "Cargando documentos...", - "Log in to access the document.": "Inicia sesión para acceder al documento.", - "Login": "Iniciar sesión", "More docs": "Más documentos", "More options": "Más opciones", "Move": "Mover", @@ -1311,7 +1303,7 @@ "Document duplicated": "Document dupliqué", "Document duplicated to My docs": "Document dupliqué dans Mes documents", "Document editor": "Éditeur de document", - "Document emoji": "Émoji de document", + "Document emoji": "Emoticône du document", "Document owner": "Propriétaire du document", "Document role text": "Texte du rôle du document", "Document starred successfully!": "Document ajouté aux favoris avec succès !", @@ -1418,8 +1410,6 @@ "Load more": "Afficher plus", "Loading documents...": "Chargement des documents...", "Loading more documents": "Chargement plus de documents", - "Log in to access the document.": "Connectez-vous pour accéder au document.", - "Login": "Connexion", "Main content": "Contenu principal", "Markdown": "Markdown", "Modal confirmation for moving a document": "Confirmation pour déplacer un document", @@ -1474,6 +1464,7 @@ "Personal data and cookies": "Données personnelles et cookies", "Picked up document {{id}}.": "Document ramassé {{id}}.", "Please download it only if it comes from a trusted source.": "Veuillez le télécharger uniquement s'il provient d'une source fiable.", + "Please sign in": "Veuillez vous connecter", "Present": "Présenter", "Present from here": "Présenter depuis ici", "Presenter controls": "Commandes de présentation", @@ -1491,7 +1482,7 @@ "Recent": "Récent", "Refresh page": "Actualiser la page", "Remove access": "Supprimer l'accès", - "Remove emoji": "Supprimer les emojis", + "Remove emoji": "Supprimer l'émoticône", "Remove {{name}} from the invite list": "Retirer {{name}} de la liste d'invitation", "Rephrase": "Reformuler", "Replace": "Remplacer", @@ -1587,6 +1578,7 @@ "Toggle to search in all documents or only in current document": "Activez pour rechercher dans tous les documents", "Too many requests. Please wait 60 seconds.": "Trop de demandes. Veuillez patienter 60 secondes.", "Trashbin": "Corbeille", + "Try it now": "Essayer maintenant", "Type a name or email": "Tapez un nom ou un email", "Type at least {{minLength}} characters to display user names": "Tapez au moins {{minLength}} caractères pour afficher les noms d'utilisateurs", "Type the name of a document": "Tapez le nom d'un document", @@ -1615,6 +1607,7 @@ "You have already requested access to this document.": "Vous avez déjà demandé l'accès à ce document.", "You must be at least the administrator of the target document": "Vous devez être au moins l'administrateur du document cible", "You must be the owner to move the document": "Vous devez être le propriétaire pour déplacer le document", + "You need to sign in before accessing the document": "Vous devez vous connecter avant d'accéder au document", "You're currently viewing a sub-document. To gain access, please request permission from the main document.": "Vous visualisez actuellement un sous-document. Pour obtenir un accès, veuillez demander la permission du document principal.", "You're offline. You can keep editing, and your changes will sync automatically once you're back online.": "Vous êtes hors ligne. Vous pouvez continuer à modifier votre document, et vos modifications se synchroniseront automatiquement une fois que vous serez de retour en ligne.", "Your access request for this document is pending.": "Votre demande d'accès à ce document est en attente.", @@ -1719,8 +1712,6 @@ "Last update: {{update}}": "Ultimo aggiornamento: {{update}}", "Link Copied !": "Link copiato!", "Load more": "Carica di più", - "Log in to access the document.": "Fai il login per accedere al documento.", - "Login": "Accedi", "More docs": "Altri documenti", "My docs": "I miei documenti", "Name": "Nome", @@ -2015,8 +2006,6 @@ "Load more": "Laad meer", "Loading documents...": "Document wordt geladen...", "Loading more documents": "Meer documenten worden laden", - "Log in to access the document.": "Log in om toegang tot het document te krijgen.", - "Login": "Inloggen", "Main content": "Hoofdinhoud", "Markdown": "Markdown", "Modal confirmation for moving a document": "Modal bevestiging voor het verplaatsen van een document", @@ -2455,8 +2444,6 @@ "Load more": "Załaduj więcej", "Loading documents...": "Ładowanie dokumentów...", "Loading more documents": "Ładowanie kolejnych dokumentów", - "Log in to access the document.": "Zaloguj się, aby uzyskać dostęp do dokumentu.", - "Login": "Zaloguj się", "Main content": "Główna zawartość", "Modal confirmation for moving a document": "Okno potwierdzenia przeniesienia dokumentu", "More docs": "Więcej dokumentów", @@ -2902,8 +2889,6 @@ "Load more": "Загрузить ещё", "Loading documents...": "Загрузка документов...", "Loading more documents": "Загрузка других документов", - "Log in to access the document.": "Войдите, чтобы получить доступ к документу.", - "Login": "Войти", "Main content": "Основное содержание", "Markdown": "Markdown", "Modal confirmation for moving a document": "Подтверждение перемещения документа", @@ -2958,6 +2943,7 @@ "Personal data and cookies": "Личные данные и файлы cookie", "Picked up document {{id}}.": "Документ {{id}} взят.", "Please download it only if it comes from a trusted source.": "Пожалуйста, загружайте вложения только если они взяты из надёжного источника.", + "Please sign in": "Пожалуйста, авторизуйтесь", "Present": "Показ слайдов", "Present from here": "Начать отсюда", "Presenter controls": "Управление слайдами", @@ -3071,6 +3057,7 @@ "Toggle to search in all documents or only in current document": "Поиск во всех документах или только в текущем документе", "Too many requests. Please wait 60 seconds.": "Слишком много запросов. Пожалуйста, подождите 60 секунд.", "Trashbin": "Корзина", + "Try it now": "Попробовать", "Type a name or email": "Введите имя или e-mail", "Type at least {{minLength}} characters to display user names": "Введите хотя бы {{minLength}} символов для отображения имён пользователей", "Type the name of a document": "Введите название документа", @@ -3099,6 +3086,7 @@ "You have already requested access to this document.": "Вы уже запросили доступ к этому документу.", "You must be at least the administrator of the target document": "Вы должны быть как минимум администратором целевого документа", "You must be the owner to move the document": "Для перемещения документа вы должны быть его владельцем", + "You need to sign in before accessing the document": "Для доступа к документу необходимо войти в учётную запись", "You're currently viewing a sub-document. To gain access, please request permission from the main document.": "Сейчас вы просматриваете вложенный документ. Чтобы получить доступ, запросите разрешение для основного документа.", "You're offline. You can keep editing, and your changes will sync automatically once you're back online.": "Вы не в сети. Вы можете продолжить редактирование, и ваши изменения будут синхронизироваться автоматически, как только вы вернётесь в сеть.", "Your access request for this document is pending.": "Ваш запрос доступа к этому документу ожидает одобрения владельцем.", @@ -3158,7 +3146,6 @@ "Emojify": "Emojify", "Language": "Språk", "Load more": "Ladda mer", - "Login": "Logga in", "No text selected": "Ingen text har valts", "Please download it only if it comes from a trusted source.": "Vänligen ladda ner den endast om den kommer från en betrodd källa.", "Proconnect Login": "Logga in via Proconnect", @@ -3205,7 +3192,6 @@ "Language": "Dil", "Last update: {{update}}": "Son güncelleme: {{update}}", "Load more": "Daha fazla yükle", - "Login": "Giriş yap", "More docs": "Daha fazla belge", "Name": "İsim", "No documents found": "Belge bulunamadı", @@ -3468,8 +3454,6 @@ "Load more": "Завантажити ще", "Loading documents...": "Завантаження документів...", "Loading more documents": "Завантаження інших документів", - "Log in to access the document.": "Увійдіть, щоб отримати доступ до документа.", - "Login": "Увійти", "Main content": "Основний вміст", "Markdown": "Markdown", "Modal confirmation for moving a document": "Підтвердження переміщення документа", @@ -3524,6 +3508,7 @@ "Personal data and cookies": "Особисті дані і файли cookie", "Picked up document {{id}}.": "Обрано документ {{id}}.", "Please download it only if it comes from a trusted source.": "Будь ласка, завантажте його, якщо він із надійного джерела.", + "Please sign in": "Будь ласка, авторизуйтесь", "Present": "Презентація", "Present from here": "Почати звідси", "Presenter controls": "Керування презентацією", @@ -3637,6 +3622,7 @@ "Toggle to search in all documents or only in current document": "Пошук в усіх документах або тільки в поточному документі", "Too many requests. Please wait 60 seconds.": "Занадто багато запитів. Будь ласка, зачекайте 60 секунд.", "Trashbin": "Кошик", + "Try it now": "Спробувати", "Type a name or email": "Введіть ім'я або електронну адресу", "Type at least {{minLength}} characters to display user names": "Введіть щонайменше {{minLength}} символів, щоб показати імена користувачів", "Type the name of a document": "Введіть назву документа", @@ -3665,6 +3651,7 @@ "You have already requested access to this document.": "Ви вже просили доступ до цього документа.", "You must be at least the administrator of the target document": "Ви повинні бути принаймні адміністратором цільового документа", "You must be the owner to move the document": "Для переміщення документа ви повинні бути його власником", + "You need to sign in before accessing the document": "Перед доступом до документа вам необхідно увійти до облікового запису", "You're currently viewing a sub-document. To gain access, please request permission from the main document.": "Зараз ви переглядаєте вкладений документ. Щоб отримати доступ, будь ласка, запитайте дозвіл від головного документа.", "You're offline. You can keep editing, and your changes will sync automatically once you're back online.": "Ви не в мережі. Ви можете продовжити редагування, і ваші зміни автоматично будуть синхронізуватися після того, як ви повернетеся до мережі.", "Your access request for this document is pending.": "Ваш запит на доступ до цього документа знаходиться в стані очікування.", @@ -3841,8 +3828,6 @@ "List request access card": "存取要求列表卡片", "List search user result card": "使用者搜尋結果列表卡片", "Load more": "載入更多", - "Log in to access the document.": "請登入以存取文件", - "Login": "登入", "Main content": "主要內容", "More docs": "更多文件", "More options": "更多選項", diff --git a/src/frontend/package.json b/src/frontend/package.json index fadfd10d5f..ab0fdaa7af 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -1,6 +1,6 @@ { "name": "impress", - "version": "5.7.0", + "version": "6.0.0", "private": true, "repository": "https://github.com/suitenumerique/docs", "author": "DINUM", @@ -32,24 +32,25 @@ "server:test": "yarn COLLABORATION_SERVER run test" }, "resolutions": { - "@tiptap/core": "3.31.3", - "@tiptap/extensions": "3.31.3", - "@tiptap/pm": "3.31.3", + "@tiptap/core": "3.31.4", + "@tiptap/extensions": "3.31.4", + "@tiptap/pm": "3.31.4", "@types/node": "24.13.6", "@types/react": "19.3.0", "@types/react-dom": "19.3.0", "@xmldom/xmldom": "0.9.12", - "eslint": "10.11.0", - "postcss": "8.5.28", + "eslint": "10.12.0", + "figlet": "1.12.0", + "postcss": "8.5.29", "prosemirror-model": "1.25.12", - "prosemirror-view": "1.42.5", + "prosemirror-view": "1.42.6", "react": "19.3.0", "react-dom": "19.3.0", "serialize-javascript": "7.1.2", "typescript": "6.0.3", "wrap-ansi": "10.0.2", "y-protocols": "1.0.7", - "yjs": "13.6.32" + "yjs": "13.6.33" }, "packageManager": "yarn@1.22.22" } diff --git a/src/frontend/packages/eslint-plugin-docs/package.json b/src/frontend/packages/eslint-plugin-docs/package.json index d9b994a699..9ecf038760 100644 --- a/src/frontend/packages/eslint-plugin-docs/package.json +++ b/src/frontend/packages/eslint-plugin-docs/package.json @@ -1,6 +1,6 @@ { "name": "eslint-plugin-docs", - "version": "5.7.0", + "version": "6.0.0", "repository": "https://github.com/suitenumerique/docs", "author": "DINUM", "license": "MIT", @@ -18,23 +18,23 @@ }, "dependencies": { "@eslint/js": "10.0.1", - "@next/eslint-plugin-next": "16.3.5", - "@tanstack/eslint-plugin-query": "5.103.2", - "@typescript-eslint/eslint-plugin": "8.70.0", - "@typescript-eslint/parser": "8.70.0", - "@typescript-eslint/utils": "8.70.0", + "@next/eslint-plugin-next": "16.3.8", + "@tanstack/eslint-plugin-query": "5.104.1", + "@typescript-eslint/eslint-plugin": "8.71.0", + "@typescript-eslint/parser": "8.71.0", + "@typescript-eslint/utils": "8.71.0", "@vitest/eslint-plugin": "1.6.27", - "eslint-config-next": "16.3.5", + "eslint-config-next": "16.3.8", "eslint-config-prettier": "10.1.8", "eslint-plugin-import-x": "4.17.1", "eslint-plugin-jest": "29.16.6", "eslint-plugin-jsx-a11y": "6.10.2", - "eslint-plugin-playwright": "2.12.0", + "eslint-plugin-playwright": "2.12.1", "eslint-plugin-prettier": "5.5.6", "eslint-plugin-react": "7.37.5", "eslint-plugin-react-hooks": "7.1.1", "eslint-plugin-testing-library": "7.16.2", - "prettier": "3.9.8" + "prettier": "3.9.9" }, "packageManager": "yarn@1.22.22" } diff --git a/src/frontend/packages/i18n/package.json b/src/frontend/packages/i18n/package.json index 8cb49a8ec1..6158e341c7 100644 --- a/src/frontend/packages/i18n/package.json +++ b/src/frontend/packages/i18n/package.json @@ -1,6 +1,6 @@ { "name": "packages-i18n", - "version": "5.7.0", + "version": "6.0.0", "repository": "https://github.com/suitenumerique/docs", "author": "DINUM", "license": "MIT", @@ -21,7 +21,7 @@ "eslint-plugin-import": "2.32.0", "i18next-parser": "9.4.0", "jest": "30.5.2", - "ts-jest": "29.4.12", + "ts-jest": "29.4.14", "typescript": "*", "yargs": "18.2.0" }, diff --git a/src/frontend/servers/y-provider/package.json b/src/frontend/servers/y-provider/package.json index df690ec3a7..ef6a6a369d 100644 --- a/src/frontend/servers/y-provider/package.json +++ b/src/frontend/servers/y-provider/package.json @@ -1,6 +1,6 @@ { "name": "server-y-provider", - "version": "5.7.0", + "version": "6.0.0", "description": "Y.js provider for docs", "repository": "https://github.com/suitenumerique/docs", "license": "MIT", @@ -35,12 +35,12 @@ "cross-env": "10.1.0", "eslint-plugin-docs": "*", "nodemon": "3.1.14", - "supertest": "7.2.2", + "supertest": "7.3.1", "ts-node": "10.9.2", - "tsc-alias": "1.9.5", + "tsc-alias": "1.9.7", "typescript": "*", - "vite": "8.3.1", - "vitest": "5.0.1", + "vite": "8.3.2", + "vitest": "5.0.3", "vitest-mock-extended": "5.1.1" }, "packageManager": "yarn@1.22.22" diff --git a/src/frontend/yarn.lock b/src/frontend/yarn.lock index ed362a17f4..a1ca011155 100644 --- a/src/frontend/yarn.lock +++ b/src/frontend/yarn.lock @@ -113,14 +113,14 @@ "@csstools/css-parser-algorithms" "^4.0.0" "@csstools/css-tokenizer" "^4.0.0" -"@asamuzakjp/css-color@^7.0.0": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@asamuzakjp/css-color/-/css-color-7.1.2.tgz#940f4936061633c33b78aa5703c7dfd6e0ae0b86" - integrity sha512-99DHAnXDB5z6EEK+9GMpVI7Mw4oxj97dY5bpOzMnjADQWxI8rN6TvTduuFLUhUMlS7/CfVZ06tcZsus6cltnNw== +"@asamuzakjp/css-color@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@asamuzakjp/css-color/-/css-color-7.1.3.tgz#720bdbf76f28c359deb9cc4be07331b838777b1c" + integrity sha512-1t1U8Cm3RBl9vh3RAZhjkPaduzLSvQJRToRrxpGR/eDRW99mOREleuu+mWfiFa795bUzjwht7NgphCKTs2ianQ== dependencies: - "@csstools/css-calc" "^3.4.1" - "@csstools/css-color-parser" "^4.2.4" - "@csstools/css-parser-algorithms" "^4.0.1" + "@csstools/css-calc" "^3.4.2" + "@csstools/css-color-parser" "^4.2.5" + "@csstools/css-parser-algorithms" "^4.0.2" "@csstools/css-tokenizer" "^4.0.2" lru-cache "^11.5.3" @@ -135,10 +135,10 @@ css-tree "^3.2.1" is-potential-custom-element-name "^1.0.1" -"@asamuzakjp/dom-selector@^9.1.2": - version "9.2.2" - resolved "https://registry.yarnpkg.com/@asamuzakjp/dom-selector/-/dom-selector-9.2.2.tgz#0a21e22e0ca1646a667055db64d172b9b59fc989" - integrity sha512-lSWTBMjAcmu2xn5yEDU7jh6QDV+C8GEKtdJ4pIQhXh26RkKQ7S3FuQlt+zZkUbTdJ4d3XyV1kPI/G0zWXxqaqw== +"@asamuzakjp/dom-selector@^9.2.4": + version "9.2.4" + resolved "https://registry.yarnpkg.com/@asamuzakjp/dom-selector/-/dom-selector-9.2.4.tgz#aa0bda9fb491fbbb7ed11ceb66a8044bb8f5e910" + integrity sha512-YnVzxDxLaqL0t7Q4wfcgHZjg55Wm6y5EaO7Bhu3q9J7wq/8iw3PhsnWiOQhYekx4VexnbkgWpTT6n+QIV7kczw== dependencies: bidi-js "^1.1.0" css-tree "^3.2.1" @@ -1551,11 +1551,16 @@ resolved "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-3.3.0.tgz#33cc4bdbab8edf1b6e3ab8c1eba849c41a324f1a" integrity sha512-c5ihYsPkdG6JCkU2zTMm4+k6r7RXuGxtWYhu5DHMIiF1FHzrfmHL5so11AoFpUv/tu61xfcmT4AmKoFfMPoqdQ== -"@csstools/css-calc@^3.4.1", "@csstools/css-calc@^3.4.2": +"@csstools/css-calc@^3.4.2": version "3.4.2" resolved "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-3.4.2.tgz#2c6ec8688a4e3eee02a1c55a20a0b582e3960677" integrity sha512-tL6LRF844sHjAKO7jt2w+uHo8Tocqpb9+KPUvIQETpR4RU87IaUzDuOV0QyzuQ37jmzFgwPHLLtLu/PDuH5qgg== +"@csstools/css-calc@^3.4.3": + version "3.4.3" + resolved "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-3.4.3.tgz#f3708018243c508ed9fca99835d3b03e9112cf95" + integrity sha512-iex20d8CHVkyvg6B7UKV7uHnI2Bqo9g+EFfT9E0y+GvTvhZ/DwONJ+9aKb1dlqm0ZiGsL5RXjp0fCoJYnkeDjA== + "@csstools/css-color-parser@^4.1.0": version "4.2.2" resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-4.2.2.tgz#f590bc710a26914dbe64c4656813eafc93f4e45e" @@ -1564,13 +1569,13 @@ "@csstools/color-helpers" "^6.1.1" "@csstools/css-calc" "^3.3.0" -"@csstools/css-color-parser@^4.2.4": - version "4.2.5" - resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-4.2.5.tgz#b48acc939856fd3d0e4a7e703c853ecb6efea2cd" - integrity sha512-Qqbp5pjbMwoaErP2t5qne5QDVDr3G5243oNW8ev5zfyyoqbzrQKbYDpKP/cuo3xBkzwqZqpP/rChrJhBdyTX7g== +"@csstools/css-color-parser@^4.2.5": + version "4.2.6" + resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-4.2.6.tgz#14dcf86f96d8f0708fec000b49fc39ab2e34f4b4" + integrity sha512-iiPQ3iRWwnJkeEn6RIu6SJPr7hYrLz6XZ9s/QZl+2/LI5KQVjpl2fdmDSZKuD4xP6GMmMPgHFFXg6k1Wkz0Trg== dependencies: "@csstools/color-helpers" "^6.1.2" - "@csstools/css-calc" "^3.4.2" + "@csstools/css-calc" "^3.4.3" "@csstools/css-parser-algorithms@^3.0.5": version "3.0.5" @@ -1582,7 +1587,7 @@ resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.0.tgz#e1c65dc09378b42f26a111fca7f7075fc2c26164" integrity sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w== -"@csstools/css-parser-algorithms@^4.0.1": +"@csstools/css-parser-algorithms@^4.0.2": version "4.0.2" resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.2.tgz#689445621dae9f2114db2bee2190d3b4513a2d3c" integrity sha512-40cSKyMvK+tq4qz6Awrlye2WGuOKt3FwPgtGg6KTfbHOWNw+Rk1rzbAtZnZ6IBhsY491HLRnDXwoyBAijmmILA== @@ -1592,7 +1597,7 @@ resolved "https://registry.yarnpkg.com/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.0.28.tgz#cd239a16f95c0ed7c6d74315da4e38f2e93bbf19" integrity sha512-1NRf1CUBjnr3K7hu8BLxjQrKCxEe8FP/xmPTenAxCRZWVLbmGotkFvG9mfNpjA6k7Bw1bw4BilZq9cu19RA5pg== -"@csstools/css-syntax-patches-for-csstree@^1.1.13": +"@csstools/css-syntax-patches-for-csstree@^1.1.15": version "1.1.15" resolved "https://registry.yarnpkg.com/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.15.tgz#2255da5042c77e6ba3faf1995188404b6fc22361" integrity sha512-J0u7HkVl2nzSlhsiTOp4AmwcUQ3D+mGEEKfBy/7To5/y7F2OHwyLrXfrhR0SMgr4p5Lo+eaMVSeai24zUcBIxA== @@ -2032,6 +2037,11 @@ resolved "https://registry.yarnpkg.com/@exodus/bytes/-/bytes-1.15.1.tgz#b13bc464ca162c17abf0837fb3a11aeab79e45d1" integrity sha512-S6mL0yNB/Abt9Ei4tq8gDhcczc4S3+vQ4ra7vxnAf+YHC02srtqxKKZghx2Dq6p0e66THKwR6r8N6P95wEty7Q== +"@exodus/bytes@^1.16.0": + version "1.16.0" + resolved "https://registry.yarnpkg.com/@exodus/bytes/-/bytes-1.16.0.tgz#954c9d9dd7eec15b966b2e8f2d883c04295b720c" + integrity sha512-IcpW84uEn3N7ETtNZMlxKhfl6Pec8rUNGOTBtWbK1FKhJxIFAptZyVrvVRVBimAJxJCgc3PxepxkdWWG4DVzfA== + "@exodus/bytes@^1.6.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@exodus/bytes/-/bytes-1.8.0.tgz#8382835f71db8377cf634a4ef5a71806e86ba9c7" @@ -2078,10 +2088,10 @@ resolved "https://registry.yarnpkg.com/@fontsource-variable/inter/-/inter-5.3.0.tgz#351dd1e02dab63a6cf66d57ec36dcfd10c07f07b" integrity sha512-OupL48va4JNofb97w6NYeF9S7W/kHNKM0Er8Dem5nqi4jeOLrVJDoE8tZEpnMJmtkvNbB1EIPPwHcdkF6b1oUA== -"@fontsource-variable/material-symbols-outlined@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@fontsource-variable/material-symbols-outlined/-/material-symbols-outlined-5.3.7.tgz#f2407b75ef83972f86625d05c127c661900c916b" - integrity sha512-d6kLamaMdad40AYoyJEBgCH63fRLklC7GW7bgb7WWbPh/UzuW483Dlyfmn3vxpiNsHLIMBOcYYkZDtOC9Y3MUA== +"@fontsource-variable/material-symbols-outlined@5.3.8": + version "5.3.8" + resolved "https://registry.yarnpkg.com/@fontsource-variable/material-symbols-outlined/-/material-symbols-outlined-5.3.8.tgz#19612228224d731ca31b52a5010bf7f3451256e1" + integrity sha512-vKpCnuTqRehg5RUVrqEQ/A8a52KykOJ65wqal9nxFXFVTYKlJOhx7r0TUbTgd2SN7oh31NJblxvX2CJxBNVqJg== "@fontsource-variable/roboto-flex@5.2.5": version "5.2.5" @@ -2869,7 +2879,7 @@ resolved "https://registry.yarnpkg.com/@keyv/serialize/-/serialize-1.1.1.tgz#0c01dd3a3483882af7cf3878d4e71d505c81fc4a" integrity sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA== -"@kobalte/core@^0.13.4": +"@kobalte/core@^0.13.14": version "0.13.14" resolved "https://registry.yarnpkg.com/@kobalte/core/-/core-0.13.14.tgz#6d46ada9a427e07f73fb61123a03220277a793d7" integrity sha512-SBVB1lnvYbYt2x3t7fG0lo5fGLEbHQ6PII3NDPva8vD5e2v53On84ZVQiuIk0XI/55R4GQhden7Yem+R/XR8uQ== @@ -2907,21 +2917,21 @@ resolved "https://registry.yarnpkg.com/@lottiefiles/dotlottie-web/-/dotlottie-web-0.80.0.tgz#de475ceef9789e980f5c38368639b9d4f6038dec" integrity sha512-M00APgOJfP6xPZ3kAzZAUNATxluFiMU0wD3asp6HQSXDX8qLzSDh/Jmqbo0H7+WcqfpQkN8WYBu3aOzm2y/b4g== -"@mantine/core@9.6.2": - version "9.6.2" - resolved "https://registry.yarnpkg.com/@mantine/core/-/core-9.6.2.tgz#ac53d64d10b240650dd8dcf4d488dee8fd6d931b" - integrity sha512-6W7xA3FRlGMclVDCY5U6rqhgzc+x+7G3nR9rntcjtF/Slnkp79Em8yjAB01F0wBSnrBUMK1TqKENf5o5WHiPOA== +"@mantine/core@9.7.0": + version "9.7.0" + resolved "https://registry.yarnpkg.com/@mantine/core/-/core-9.7.0.tgz#2b3bc425593d94b5503707911396f5e106c4db11" + integrity sha512-WhCvfXXpYMKV6py05wt0Vlxthtxe4YOzQiVhrrCvWKYDmvhKXgOTDzRdjkGHNji4r+7f7d3nz2XpwbzaZ47R/w== dependencies: "@floating-ui/react" "^0.27.20" clsx "^2.1.1" react-number-format "^5.4.5" react-remove-scroll "^2.7.2" - type-fest "^5.8.0" + type-fest "^5.10.0" -"@mantine/hooks@9.6.2": - version "9.6.2" - resolved "https://registry.yarnpkg.com/@mantine/hooks/-/hooks-9.6.2.tgz#7b9d2c63a58a6ba8e50de2a27b75c919d6337be4" - integrity sha512-SfNY0FvYi8vMytZbioQVx5JyX0dmLUQEmbgbQQXqe4iOto0QZ896XwhgMQ6g/FCWkvc9JHeHp7iPu4msqQFIEw== +"@mantine/hooks@9.7.0": + version "9.7.0" + resolved "https://registry.yarnpkg.com/@mantine/hooks/-/hooks-9.7.0.tgz#28e086bf7db97e915ca4a194b222f30a19f8f9f6" + integrity sha512-3a1w90f1OliaClGRlnPiviJtKxyMiKdVyM8Pd2h6se+LOm9/bgGI+pgoGw/tgv++BSQ4frqv+X7NBlqcY/S7KQ== "@mermaid-js/parser@^1.2.1": version "1.2.1" @@ -3156,58 +3166,58 @@ dependencies: "@tybys/wasm-util" "^0.10.3" -"@next/env@16.3.6": - version "16.3.6" - resolved "https://registry.yarnpkg.com/@next/env/-/env-16.3.6.tgz#47d93ed498a55f7db8bb309eeab0b5964b7964d6" - integrity sha512-x9Vblze1EbtltQYnNH38xCPWU3TVfBd1eXqA3+w9+BTpedkkdNpAaltXlGQ/nsc1+E0mVTNrtcbX3GoO09zeLQ== +"@next/env@16.3.8": + version "16.3.8" + resolved "https://registry.yarnpkg.com/@next/env/-/env-16.3.8.tgz#747ec41c063edb55248e7d9127f6b8fa47d6bb80" + integrity sha512-Al9zqHVV7TJv0eFuOU4U7Lvv74PTih4Ch63sk2xCIpSTkE3udFnaOcnzP2lQVymiL7yS9Cj2iClUXlR3EQ5sEw== -"@next/eslint-plugin-next@16.3.5": - version "16.3.5" - resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-16.3.5.tgz#487996bdc5197bdb619cce3d4a3ca54e57f8cfe3" - integrity sha512-PGfSeItHJ12DH8t+6sEbuMe59NE5rAhCfgk06QKTH2ne9VUL1JlaXdYXY3B8RaiF2SO50rDYvd39TulP6A6xZQ== +"@next/eslint-plugin-next@16.3.8": + version "16.3.8" + resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-16.3.8.tgz#9186a0fff633d867215e1ba2eeafa500c85d9f5f" + integrity sha512-eCR9RcLTZrVS+K3+VOhi0xMdUUGNuriCHHhU1ZoABC/QQ/Gp0OWbLKQxV2/9DkmihYdYRcQWFmZXW8M1AMUXYw== dependencies: "@eslint-community/eslint-utils" "4.9.1" fast-glob "3.3.1" -"@next/swc-darwin-arm64@16.3.6": - version "16.3.6" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.3.6.tgz#e92a4bfae82e0e0d2056a31806af16b7cd9b38bc" - integrity sha512-E/7GEqaUkt8mk/T8v9lAnrhzR06kdq1ZBkC12F8tAMkdIadwNp3H1KqHynDHrpcTlGCUdq/qu6vUL2aYVyYBdw== - -"@next/swc-darwin-x64@16.3.6": - version "16.3.6" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-16.3.6.tgz#0feec7995215c85bd18df527983836897757ff80" - integrity sha512-yBE893/nDWTlaiBD1p+qgt7NUen4U5R6FXyH0s67Npq1S3E0cVSef1WIXC2xBRgQvwAvJq6DnS6Y6PrY0cy4Ew== - -"@next/swc-linux-arm64-gnu@16.3.6": - version "16.3.6" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.3.6.tgz#f4a27ea38008e47ef670bacd4b4e92d0789209c2" - integrity sha512-KJDpjBqBPYlvkivmyrp+Qys6k/7ksbqGQvRVc6ZEGfR+cjQxx+nUkJaWmNZJsmoOrqYNbaXByF8wa0lBwDhB3Q== - -"@next/swc-linux-arm64-musl@16.3.6": - version "16.3.6" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.3.6.tgz#1b2dbad64636efdb49e574d8234526129e3b2a34" - integrity sha512-mqNg2K+hvWskSRb/QM+Ix412DvBsuSF0XV+frTSw5vmoucNnIlynFwKYew8D01bfATErMOM7Bujrf0BA5DRKFA== - -"@next/swc-linux-x64-gnu@16.3.6": - version "16.3.6" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.3.6.tgz#783f3fdf6e9f2bdf9d3f58e12cbed938c862c617" - integrity sha512-nFncBNGAYouRHjRVaITs9beZRfhX4ssVwpnvPIAbkZVH6LtGoAVlH4bJ8Cnf9SOo9bsXgPFer/GdHtEE3JNOkw== - -"@next/swc-linux-x64-musl@16.3.6": - version "16.3.6" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.3.6.tgz#c19df8320300d80bb5dc1b503796ec4e7d2f15f8" - integrity sha512-5Mf3cHDGR/Iz0ng2Bj3zUR3p5QS9YK3Hn2QiAfavFmyF48zwThAjpFoiTKNIcOHLYS4zEk+gzyJ/9deQ2ZB8yQ== - -"@next/swc-win32-arm64-msvc@16.3.6": - version "16.3.6" - resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.3.6.tgz#1e4e70b213f1d49223f5eb8aa0490b9fc615e807" - integrity sha512-0jkJy0C2kbrJWTk4YLa3xk80pVBpx8FCHJym7CnUfDAXe/FWv5qT7SQJbR0KuemyxaEDlEx5WT4VQJoTW+/9Qw== - -"@next/swc-win32-x64-msvc@16.3.6": - version "16.3.6" - resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.3.6.tgz#d7b84132a78b38792223b810e3fa0b20c980d895" - integrity sha512-/YXjI1e5OXcZ7YpxRwgP/1jAV/SBKTzeVKqN2mk7mLpcICsyn3Gl5+dIfDTJp70M0ccMhyMMRso4v6mPDCGepg== +"@next/swc-darwin-arm64@16.3.8": + version "16.3.8" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.3.8.tgz#489c9ea4b5b6767db91940e85f67321788abe10d" + integrity sha512-2JPRMh2nmQG5CiL7cXGL9AGwnPWJQ//cTtAUCT+w511QHk79SYz3LGv/pc5X643B/WEO0rvu3Yww0hqwt3kgeA== + +"@next/swc-darwin-x64@16.3.8": + version "16.3.8" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-16.3.8.tgz#aea6492bab222babc681348f5fdb88770a7f67aa" + integrity sha512-GZtCCOBKJ4leVIT/Th0llWKhD1ca92lzbQiS5R5ON9QkoiFnilFsebDae1JU2a3HWoKMEmEZWGs1AGLavVM72Q== + +"@next/swc-linux-arm64-gnu@16.3.8": + version "16.3.8" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.3.8.tgz#fe6704a2061f6141096dea2c44de21b2b279ae5a" + integrity sha512-O659ygeQYqneJ1fBKMpFxIFqYkYswu8IAS1OCKK/4f3ZgJJm1dRz4fVJZRi/kLLWjnBKnebOePA4WNv+sV1pVA== + +"@next/swc-linux-arm64-musl@16.3.8": + version "16.3.8" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.3.8.tgz#c36276d658b928685d7868977c997399d62487f4" + integrity sha512-dSjKSyWpzxoO1d3DIZZcP4XJcNaKeLmxQMFOiYl5vuBRMmweIqnAhty8tAmRsvTss779cK1FtYnDMj40e4TQlg== + +"@next/swc-linux-x64-gnu@16.3.8": + version "16.3.8" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.3.8.tgz#6216340bc96c8f65e2c63c370c66d5ad06ac4672" + integrity sha512-lbqOuz3RPRcv+o9msNsJw5x4+Y1ZwPTs6vmL6DCf7i0fZfvng/F59wyeDwqHIvV0mK//RBy/jJkZ+nCKsSMXjQ== + +"@next/swc-linux-x64-musl@16.3.8": + version "16.3.8" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.3.8.tgz#da4d0d90cc71f2a4d98da4743dfb1abcf10403b0" + integrity sha512-+316WswI8ScVgZeUd+1KGaXkHhaYQzCjvH/05TZSpJ8zBizb1a4G7DtO7F12jcBIqMOtsz9ji1t48fmKtzqsGA== + +"@next/swc-win32-arm64-msvc@16.3.8": + version "16.3.8" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.3.8.tgz#ef8a119c33859110583f64543b21b446050c539c" + integrity sha512-ji0gd4kMYUxO+1fJBIbiBVRCjzG/lloiyCccnlebvb1ZJ5qXCPZqYg4Jl1DrrixnWNMKylzgpmMWx0yNDYXlzw== + +"@next/swc-win32-x64-msvc@16.3.8": + version "16.3.8" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.3.8.tgz#be9ee227a7bf5615419ba3a3d5105056a4278fea" + integrity sha512-WcTlaKt/TWkh5kUjdJcUmB1XgZ+1c6fz4Y9fDHL73YNSdGaUWjceeWrrlwF0nv19iABYWC4iAq1oX1w4Bn0vfg== "@noble/ciphers@^1.3.0": version "1.3.0" @@ -3315,10 +3325,10 @@ resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.37.0.tgz#aa2b4fa0b910b66a050c5ddfcac1d262e91a321a" integrity sha512-JD6DerIKdJGmRp4jQyX5FlrQjA4tjOw1cvfsPAZXfOOEErMUHjPcPSICS+6WnM0nB0efSFARh0KAZss+bvExOA== -"@oxc-project/types@=0.151.0": - version "0.151.0" - resolved "https://registry.yarnpkg.com/@oxc-project/types/-/types-0.151.0.tgz#37206ed3fdebb8c4c5fc49ae20d53d9b4eed2bfe" - integrity sha512-J1yXrIlNDZVzE3ada310xeAw7nH8yCAyLPuUIsjKatFPmfn5bS1oW+cM+QsGOtVWd5nhSpbwZWx/rue+r5Z+PA== +"@oxc-project/types@=0.152.0": + version "0.152.0" + resolved "https://registry.yarnpkg.com/@oxc-project/types/-/types-0.152.0.tgz#643ff80ce7aacea025f859f13b60cbb42ae0a613" + integrity sha512-oM/5rLBm2tPkg0iBgkH/FOeR3PCDpY19GTgAZjMFM8h9WI9VW7cLgzp6nwtarYKmovavIQZ+Fe/RKX/8C8O/Rw== "@paralleldrive/cuid2@^2.2.2": version "2.3.0" @@ -3433,22 +3443,22 @@ dependencies: playwright "1.63.0" -"@posthog/browser-common@^0.9.0": - version "0.9.0" - resolved "https://registry.yarnpkg.com/@posthog/browser-common/-/browser-common-0.9.0.tgz#329c5de42123aaafa4953f2ebde6bbd4e44aabe1" - integrity sha512-EWoVzs1vVY7ihpn8yOjj3jyjriHUEEMVSBNL/TW3hk09fTriWRe76vJXrRg0G0yjTYxHmtlSkNn4mOV24ZEzzA== +"@posthog/browser-common@^0.9.1": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@posthog/browser-common/-/browser-common-0.9.1.tgz#e6eeb281d3fea46ec3dede6be28fa224b3dfdc3f" + integrity sha512-Dl8uV2OZAxfHfWyC7K0Y3HtT7ld+WGLbXIwgCgAGziOMGDIa/bepCRrCxy7IxsEzqY1HOrq/VDdcoNN7hBTSQQ== dependencies: - "@posthog/core" "^1.54.2" - "@posthog/types" "^1.412.1" + "@posthog/core" "^1.55.3" + "@posthog/types" "^1.413.0" -"@posthog/core@^1.54.2", "@posthog/core@^1.55.1": - version "1.55.2" - resolved "https://registry.yarnpkg.com/@posthog/core/-/core-1.55.2.tgz#4599e7d5901b69c0967e5f613bd3d185a29c11a8" - integrity sha512-2mYxGbDmTLUs096VbcZqSWo0lrI48/BrX65r54NynxxFq409BOx9w73HxOAtOKZ1vblkdV6/GxQTe7KDcIQidg== +"@posthog/core@^1.55.3", "@posthog/core@^1.56.0": + version "1.56.0" + resolved "https://registry.yarnpkg.com/@posthog/core/-/core-1.56.0.tgz#9c7c6d98036c41ead1e324a3159367a0dd33754b" + integrity sha512-WNlOoFQbOZyJzX54DhAslSpTjwDyXX5VLuRFNJjv172uOE9qHVUvtZAPP9dHZdq2HZkkLjbY27idH7UhzKSBVA== dependencies: - "@posthog/types" "^1.412.4" + "@posthog/types" "^1.413.0" -"@posthog/types@^1.412.1", "@posthog/types@^1.412.4": +"@posthog/types@^1.413.0": version "1.413.0" resolved "https://registry.yarnpkg.com/@posthog/types/-/types-1.413.0.tgz#5ba7ea6162685567c254e036130e5785f794bd53" integrity sha512-tYAVzNojWckuG/wxBB0fwE70sFruQQq4xbhkci7eH2ARU3mMfUTkvpN1HwBMpm0AtbxidLiH0IFvagmdJ8opPw== @@ -4974,80 +4984,80 @@ "@react-types/overlays" "^3.9.4" "@react-types/shared" "^3.33.1" -"@rolldown/binding-android-arm-eabi@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm-eabi/-/binding-android-arm-eabi-1.2.11.tgz#898b1c0c0c4de1ffb5997050a705f04cc102b4eb" - integrity sha512-A5kXfGKvKWWZE0TtPrfsvT+q4Y5d1QG8gGUzpYjGydM+fARM9MuX90PrXYXe0XbsDVgyxxNzHo6giCj90bsFNw== - -"@rolldown/binding-android-arm64@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.11.tgz#bf8ee88baaecd1747326d6c1d05ebdad483edc34" - integrity sha512-z6cTycz+iJ4PVkuL4HHW4DfTfoeU/2nqYYuSOrTmH7yHK5Y0LCOnA03V4ZNxavyVaU1oOqUgIg2klN/s+USGOA== - -"@rolldown/binding-darwin-arm64@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.11.tgz#4ebc103da1e0d6b24d815c1fb1d6af73245c1b1f" - integrity sha512-jShvqNtP6vDC6/A5JOAzbVV+DkgHqhl/ScVCJEbt+TUY6QYz7YnXcrg3sLtFBniro0f/Ld50ZwCWA6f7KYD1nQ== - -"@rolldown/binding-darwin-x64@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.11.tgz#ab669b448eb2cd2366a7ff01a84579a0f854f5f0" - integrity sha512-f2i2xiNWq1Z1l2++q2fuhZRdLAT3aqxD6vRNm1RAxpUoBcdqNB3C0s1Bt+K+PbEx2F5F4gQp6hqKkphCY/xF9w== - -"@rolldown/binding-freebsd-x64@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.11.tgz#74c26ec877c293c47c8958ab58e07e57f9382070" - integrity sha512-4Ir5FSOKIAMr4r0kExpt1s3bMgzJU3rA45AYOHtQpls0oNeqcYBKrWMlckrYH4KCfGLfkfn1tN1dmZPMVsdXow== - -"@rolldown/binding-linux-arm-gnueabihf@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.11.tgz#cbfe844867d7dbce1655c9b593be05bcaffb501d" - integrity sha512-/gnRDM+39BROzAN/k1OZjDPnDMcZxB/0EUxKjONO5yVkNEvlsoMDrxGNKgZi/ttFriS2gwlDNzB65pvNbFOXIQ== - -"@rolldown/binding-linux-arm64-gnu@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.11.tgz#2028ebac4a3f56b26ecd02f8850c74447087cbb2" - integrity sha512-PFaK8HwvAHbaKbBcDNQihjMKYvFnA5hiENx/l5tphTDz1E0WFp32l0A7aq7lyUwGsRw/xSrNIy/gIK4thrSCrw== - -"@rolldown/binding-linux-arm64-musl@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.11.tgz#a143325f96d5d5040dff50e292374f7467e7c82c" - integrity sha512-AskzJUIKRLPxkruR1wLKewGbOw+EYfU/9lOrBFj4AFrEA8hPpKFnODWNu2WLaNs0QNkEb9QIJufmVZZIL/bJlg== - -"@rolldown/binding-linux-ppc64-gnu@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.11.tgz#b38937ad8b4821682e3671ebfb609cb0e3ecb935" - integrity sha512-qlUGAheh2yh8afH7QBgx0PrRHN85hKnNd78x8MeMhXivuevgd8vgf6/CstOzmNKY/lLTHvNTrPy98cLnAugzJw== - -"@rolldown/binding-linux-s390x-gnu@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.11.tgz#6be2645a1ad89185e8d03f69116798c94eae19ec" - integrity sha512-secpEad+0vCbSfn8upFySkDskv+bGPk3THSDS9Y89yc4rb4kzqHp8Dmyd9BkQW4SnhNXBZCl/6CrO//hZahNJQ== - -"@rolldown/binding-linux-x64-gnu@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.11.tgz#fbc9a6a6c3b3db00e35573c67894bfbaa3128040" - integrity sha512-mOVBT3dPpkWm8XBWPmU4bf+U6dYDLeMo/9ojUmis4N0L5uu10qra5vOyngZ7/PSdoE4G9KvRt4bloRxNjLas7A== - -"@rolldown/binding-linux-x64-musl@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.11.tgz#f3f07a30c03d1d3a673b21fd4eaba84979aa4fd4" - integrity sha512-Is78i9A8Ui4SqcxUwFJ9uMmjDn58IbVTjFWYdQestFEgeuEmHMLGNriXnVJKkwG2YiZjw8cP0zCTyDMdDGtOOg== - -"@rolldown/binding-openharmony-arm64@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.11.tgz#c3848c61dd3b15edde9c98dfa8d50edb356ec71f" - integrity sha512-dUCXneZ87INUMyQ0D+C0HrEBNUPNXHaPmU5GTjyKTJEiussw9Kaj5Ln8UztPe4epV/ffvgNBEadksdYhmW6xJA== - -"@rolldown/binding-win32-arm64-msvc@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.11.tgz#99d9f7eb53b26f09212d646e9f50708a2f14414f" - integrity sha512-jByxb6qfd+bH1xUd0qnfFnb17i9sWBPY2tOavJ0l3tdr3OTu+Kvtm8cd/JV5nFt657b1VqGltxg9olOEfofXWw== - -"@rolldown/binding-win32-x64-msvc@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.11.tgz#c7bf663043c01021f63122a8499e9aca36408467" - integrity sha512-/PzKqzAJ03i19oy2ItPvyvaVjOjBCNnfaJs8yvUdGBKmiESgnrJSQ2awd81QzFbbnAmu7YO9ZnJrDCb9VSJPRA== +"@rolldown/binding-android-arm-eabi@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm-eabi/-/binding-android-arm-eabi-1.2.12.tgz#efba4353480c76804606f106c9ac01f0ddfa7d13" + integrity sha512-dB/a1214qKfHMXCpgqR4OZT+jS4kTyEXbQGJPqzobt5EwH5rX080pxE37alt3RzvR1bf1Yz/yGqRfrYAxuPw0A== + +"@rolldown/binding-android-arm64@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.12.tgz#6255422c39c2b45ee44b0286df902b9481f76ecb" + integrity sha512-7KHFgQ5VJxIHcLlrwrc3Xbds7oTNQT7Pgi9gQCJKrd2VGab/UksIOYp6VD8MzCstGxOKMgNamPwUCfxPdP1OHg== + +"@rolldown/binding-darwin-arm64@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.12.tgz#2d7d153d657f5ee4d44abb752ae7d64cac049ca5" + integrity sha512-3YIhqHD96nA5SaYNRBR16HnGv4oavZvXfD/ayHM+oYZ0WD/8lBAtf6zQua4kEyAvpqrluKXl0lnOBoiNby7x9w== + +"@rolldown/binding-darwin-x64@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.12.tgz#7ddc83ecef05fb28f1174e5be3eb4ae5307faedf" + integrity sha512-UuuJ35MFw4gmFOrE9pEqIV+K3syIKveph+Qc1/ljHZVdoDW4pz/JHR/eMVom+TZGl/5OOvGJOWaOCVt3ZfqhxA== + +"@rolldown/binding-freebsd-x64@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.12.tgz#9e68e57cc3a1c5ea363129234fd5dcc8537606dd" + integrity sha512-uMvssit0a4W+/7D8CbHUvG719mH3R2jwXAlh/XcPvuHTE0g++LymF88DCGNX0HM2rBOn0xrzgXktIB6fLSJBTQ== + +"@rolldown/binding-linux-arm-gnueabihf@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.12.tgz#335b4f2cbf8c8a2d1016f79feeb0187c578f5f7a" + integrity sha512-XcFu0R0xWnwzSf4IQgFH1rJIckPN1pLy2R+4r9IDB7Yfu/ys9cVqfa4pBrMHj7a3gl8mIR4nRNPg0e5IvEVs6g== + +"@rolldown/binding-linux-arm64-gnu@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.12.tgz#759fc27992583653f87dc447b4be02b4ddd0d1b4" + integrity sha512-260UrKgn8tz39ak+SMDOirKzr7V04M9dWPw5llW00SwBivCZoWcRBKV1d8cXnRkUmSZA3BdiUmBHWk7734Ulpw== + +"@rolldown/binding-linux-arm64-musl@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.12.tgz#e1f3094429a874cb76e2c7735759d333ad8f6791" + integrity sha512-5YK1I9SqDkbPgc1IA8BgDl34suqUS2q0KWnBrirm0E51YjOs6eo6dV6jbQfNE/argHRSvd0QUGgtpIoYx+WWpw== + +"@rolldown/binding-linux-ppc64-gnu@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.12.tgz#0ca361ac97774403dd5fe5976a363eb9c2139dc5" + integrity sha512-Rkcrmp7eFRg74yL5fXEU91JEWbdEPLevWwGtXpmhbjlD1StScbWTmO94Bhly+Mo+ketKYkdmM1vNUKeWSlx8cQ== + +"@rolldown/binding-linux-s390x-gnu@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.12.tgz#e40fb19c56e99197aec91ecb02756ebd378a347c" + integrity sha512-qvK4DuAsQc2BSjlx+Xr+IzOIvvxbGZqxFwdWfG6F518Erj0GGISyQbJ6pIappnOxlNPzNHvo/L0BwB30GZ+zVw== + +"@rolldown/binding-linux-x64-gnu@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.12.tgz#215aeb601d0daaf5d28582c1f2e967c775a6c70a" + integrity sha512-Q9uLBO53Xd4QIq1WOycVQyPP1O4HhraEV2qqb3uTrnVw6QZih9duY4vNXOivL1xoUS1/z+W8eF4NMfl2a8Sdjw== + +"@rolldown/binding-linux-x64-musl@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.12.tgz#90905cdd1ab12242d72de38b7ec9aa826a9ee17c" + integrity sha512-3IBxWFMjbOZskDPKv8Lf9BCnahlKuHthWkYnyIxOH/QcJrFcS4EmcenthApkwr/5+nEqZlLzeYbxeMaX7A5u4g== + +"@rolldown/binding-openharmony-arm64@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.12.tgz#e6868debd9202c476786f0995ca8250f3f647972" + integrity sha512-xtX61xg4LKPkPWilZU1ynKClz5Gj4bf74LML4r3eVLWumKnGjoEr1OSHQhMdbBDoYTi+yjrujvpZe2pUnqCrrA== + +"@rolldown/binding-win32-arm64-msvc@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.12.tgz#a335ae382cbf3b282c3a6fe620fe4f4a0e25dfda" + integrity sha512-At7fPB6PCaIjzgIhEZFxuT+BBFqiQibJDT4d3PhiR3f4E7bbMZF4aKblbFfEM3sETRDd1YiQx/+U/g/B/ou5Ew== + +"@rolldown/binding-win32-x64-msvc@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.12.tgz#55d6f9c288aa220f758310c39c31aa1c4d309830" + integrity sha512-WIw2haVKwjuYdXkHaoC0mF8Le71TuCBxjrdKqLbJGctbBABj+ClfmNvtbOnzpq3RokNo5+V1qhtSzJyXorsklQ== "@rolldown/pluginutils@^1.0.0", "@rolldown/pluginutils@^1.0.1": version "1.0.1" @@ -5569,7 +5579,7 @@ dependencies: "@solid-primitives/utils" "^6.4.1" -"@solid-primitives/keyed@^1.2.0", "@solid-primitives/keyed@^1.2.2": +"@solid-primitives/keyed@^1.2.0", "@solid-primitives/keyed@^1.5.3": version "1.5.3" resolved "https://registry.yarnpkg.com/@solid-primitives/keyed/-/keyed-1.5.3.tgz#df60e7a079cc99ef80d22e4c03bb80eabc106392" integrity sha512-zNadtyYBhJSOjXtogkGHmRxjGdz9KHc8sGGVAGlUABkE8BED2tbIZoxkwSqzOwde8OcUEH0bb5DLZUWIMvyBSA== @@ -5605,7 +5615,7 @@ dependencies: "@solid-primitives/utils" "^6.4.1" -"@solid-primitives/resize-observer@^2.0.26": +"@solid-primitives/resize-observer@^2.0.26", "@solid-primitives/resize-observer@^2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@solid-primitives/resize-observer/-/resize-observer-2.2.0.tgz#f6d76c0f765bb2008117c2e7504eb1707ef1268c" integrity sha512-9Fuu/EWBeGj+atGHRJp70HKhdfalmpjwxY8a32NZixdLNmfCJ45AfhLQNr6uOzETbbiMx4iCKlTrJ8KZCHC2Ww== @@ -5788,55 +5798,55 @@ dependencies: tslib "^2.8.0" -"@tanstack/eslint-plugin-query@5.103.2": - version "5.103.2" - resolved "https://registry.yarnpkg.com/@tanstack/eslint-plugin-query/-/eslint-plugin-query-5.103.2.tgz#a07574616fecc7765f5119d8e6dae1f14dc69854" - integrity sha512-qycCzS4j5p7lLT6NUDcUURv3csrYS2VfnaxMDUn/bBi4MPjU0z+tAGoRPwPS3V86Z9yp6PG4p30MtbTOXo80NQ== +"@tanstack/eslint-plugin-query@5.104.1": + version "5.104.1" + resolved "https://registry.yarnpkg.com/@tanstack/eslint-plugin-query/-/eslint-plugin-query-5.104.1.tgz#3d4a43358f28d606282d71833c587fee68f804d3" + integrity sha512-7LmiJkxzuy0YrCoL0q5yWz9NsW39h2CeuKjvetjVaFCJ9hrS4UM9TiCEx0rWeLDe6ff1r1KwV+yzclCvzzrnQg== dependencies: - "@typescript-eslint/utils" "^8.58.1" + "@typescript-eslint/utils" "^8.70.1" -"@tanstack/match-sorter-utils@^8.19.4": - version "8.19.4" - resolved "https://registry.yarnpkg.com/@tanstack/match-sorter-utils/-/match-sorter-utils-8.19.4.tgz#dacf772b5d94f4684f10dbeb2518cf72dccab8a5" - integrity sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg== +"@tanstack/match-sorter-utils@^9.1.2": + version "9.2.6" + resolved "https://registry.yarnpkg.com/@tanstack/match-sorter-utils/-/match-sorter-utils-9.2.6.tgz#a16c9e695111c3659805c1b278a7f205233dbe6e" + integrity sha512-DIpUSOhPfQ7u/qfUi/Wgm0wBO56MyBYXGvnlI0NcauDRPqdBUlAZZjW2Dxm92m+k1UWVhKw8YJ4f47+75Aujyw== dependencies: remove-accents "0.5.0" -"@tanstack/query-core@5.103.2": - version "5.103.2" - resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.103.2.tgz#9dd1792b42046808c1e8e997807b83137012dedd" - integrity sha512-I8DkFXls5jXLqtm8+QpOhEmG07hIblhSZFzafg9wHsMSEvMzULy9hK17wU1T/ahfhMbtITJhbxutwwCoihkR7A== +"@tanstack/query-core@5.104.1": + version "5.104.1" + resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.104.1.tgz#c9819a22f8183e423bbe04b71780a4e17b42aff8" + integrity sha512-TiRghcrGkUTE+M4JBxvpPSpBhxvIzQairw+cksrHYGr+2uwC77yW1SY9nYxnYRYOppvucf8rEg6b5byoz4rTpw== -"@tanstack/query-devtools@5.103.2": - version "5.103.2" - resolved "https://registry.yarnpkg.com/@tanstack/query-devtools/-/query-devtools-5.103.2.tgz#42b177896b119ab1c863d2ba1ccd8db31db405c2" - integrity sha512-QW+uVtT7dZcc9KMmKQ846Yw25h7WPhM1cfCYYaSkkmPqkK39g+Cj1tcAt+Ege+6rBVFQvNyYln0FgAAHcYGSdA== +"@tanstack/query-devtools@5.104.1": + version "5.104.1" + resolved "https://registry.yarnpkg.com/@tanstack/query-devtools/-/query-devtools-5.104.1.tgz#b3ed3a604e6d06dbbea0db98dd0f84788d282b12" + integrity sha512-wmXnQbnwEz+SctYMTrwsOWWNHKhCsVgtaliL9E+VI2vx2Xr773d/MpcrbIU1hEOUqC3p7x59swXFUPDLbplT3g== dependencies: - "@kobalte/core" "^0.13.4" - "@solid-primitives/keyed" "^1.2.2" - "@solid-primitives/resize-observer" "^2.0.26" + "@kobalte/core" "^0.13.14" + "@solid-primitives/keyed" "^1.5.3" + "@solid-primitives/resize-observer" "^2.2.0" "@solid-primitives/storage" "^1.3.11" - "@tanstack/match-sorter-utils" "^8.19.4" - "@tanstack/query-core" "5.103.2" + "@tanstack/match-sorter-utils" "^9.1.2" + "@tanstack/query-core" "5.104.1" clsx "^2.1.1" - goober "^2.1.16" - solid-js "^1.9.7" + goober "^2.1.19" + solid-js "^1.9.15" solid-transition-group "^0.2.3" - superjson "^2.2.2" + superjson "^2.2.6" -"@tanstack/react-query-devtools@5.103.2": - version "5.103.2" - resolved "https://registry.yarnpkg.com/@tanstack/react-query-devtools/-/react-query-devtools-5.103.2.tgz#b5eceb636e272f965656275157ad94ed2ace8b26" - integrity sha512-NV2AwKeS4UoyAJFcU0CNsoABKVf3A9KMX2InuII2LPUW7z6U296mbQITURAoMwDAxC2AMFCbXlMEPCgRGveQhw== +"@tanstack/react-query-devtools@5.104.1": + version "5.104.1" + resolved "https://registry.yarnpkg.com/@tanstack/react-query-devtools/-/react-query-devtools-5.104.1.tgz#e3eb3bd6d4f7ee7c58d83d938f70bdcc2331a270" + integrity sha512-0GoLxe08PVxnkbrHFwO+7fkgbc07xEcoBfdYvbTv63e6Fe7uz7PGyOxKeQTOXKGMmTfoniaISOqkjDzKC/66Ng== dependencies: - "@tanstack/query-devtools" "5.103.2" + "@tanstack/query-devtools" "5.104.1" -"@tanstack/react-query@5.103.2": - version "5.103.2" - resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.103.2.tgz#1d063909424ecf259fd88f974a4ecafe32edcfed" - integrity sha512-B+fWiYZBc+0uUD5zDZAeLw9dKj7XEsdnuu6zRZ+no6LNKpeE3P3bJ+N6HINjcIlWR6fW3vUoTneEaGa2V6ehqw== +"@tanstack/react-query@5.104.1": + version "5.104.1" + resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.104.1.tgz#c9c6b66ea96f8b5f73f4f3491b1776036a3c5456" + integrity sha512-Zz70EgjahNI7aCz8BZxM3vUGU44ycxEAzMuCUjLeA7SVhhOkg3ZgPjPJPvHjs6Rmky/dtmnu1WzjGHNHmhCoZQ== dependencies: - "@tanstack/query-core" "5.103.2" + "@tanstack/query-core" "5.104.1" "@tanstack/react-table@8.21.3": version "8.21.3" @@ -5888,10 +5898,10 @@ resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-14.6.7.tgz#c453ccfcaffed110cc79048ed18fccb0f4224f3b" integrity sha512-MPCpX8bxe8zS+JmmTwLp8jd0dy1rAm60Te/SL8JrQM3qvQJcBOs1d7IefJMyZzqM3EWBrDn/LWDt1BCGu4ASfg== -"@tiptap/core@3.31.3", "@tiptap/core@^3.29.2": - version "3.31.3" - resolved "https://registry.yarnpkg.com/@tiptap/core/-/core-3.31.3.tgz#97e1a5aa228ee8bce19b23d6570d4985446a0b9b" - integrity sha512-Cz50pvciQrxdSxgTkHOVz0uD0Yl/8Xt0QatGD6ILm47jW8EzyHR9RkUGs/D5IqzXKuVPntfw1ttaT926vXfiRg== +"@tiptap/core@3.31.4", "@tiptap/core@^3.29.2": + version "3.31.4" + resolved "https://registry.yarnpkg.com/@tiptap/core/-/core-3.31.4.tgz#6deb89d6a7db4e20a7e12ca50784328ed826b410" + integrity sha512-cIVUQYBycighzsk6GbmCef8ZiEDVxoT5EuAe4xg2q9dNkDqCXVqI4YGr9aavCQEiAS4uHiRwqvcsPqJHipFDfg== "@tiptap/extension-bold@^3.29.2": version "3.30.5" @@ -5910,10 +5920,10 @@ resolved "https://registry.yarnpkg.com/@tiptap/extension-code/-/extension-code-3.30.5.tgz#e73b5c9c83572f2244b74f8798c15eb2687329fd" integrity sha512-0dCt8eBo4sMtw+LjUu+0GF0JrTlREROdWoy8TM5kFPxJ5ZU2LKDiROXDPwXStaaoFFR/aStLH9xSpdz7cHUiUA== -"@tiptap/extension-find-and-replace@3.31.3": - version "3.31.3" - resolved "https://registry.yarnpkg.com/@tiptap/extension-find-and-replace/-/extension-find-and-replace-3.31.3.tgz#6e73d7757e27ef0590d977ad79700f207f91017c" - integrity sha512-QPUWVb9Ek7Q6Go4qqmvehtUG0H2LwpiXS7+/CpDTx7eqVAPxHWLYTmi1Q2v8Or8hgI0We8onaIbPJdnJJunxFg== +"@tiptap/extension-find-and-replace@3.31.4": + version "3.31.4" + resolved "https://registry.yarnpkg.com/@tiptap/extension-find-and-replace/-/extension-find-and-replace-3.31.4.tgz#87819618e2742171cd9c9a63245a10bbccb14def" + integrity sha512-RNk+VkcjER54lNHDFar5S9ZccNWmR25mSpfejrPG/Jr73HBFUXUgKTqyO/GBPwNe8c8G62UQZszR9pUCU19qaQ== dependencies: re2js "^2.8.6" @@ -5942,15 +5952,15 @@ resolved "https://registry.yarnpkg.com/@tiptap/extension-underline/-/extension-underline-3.30.5.tgz#8558a5691c2621f3cf076e153c9319cd39e60d99" integrity sha512-u12G/WW2uFRY95BzrSAU9RW002K+7lFpSCL6fb7Puh8yLhek3lddOtAx0P+NI/PyMKtcoVMtBxoi+0mwVM7NPQ== -"@tiptap/extensions@*", "@tiptap/extensions@3.31.3", "@tiptap/extensions@^3.29.2": - version "3.31.3" - resolved "https://registry.yarnpkg.com/@tiptap/extensions/-/extensions-3.31.3.tgz#f94a6a154d9fb3849db92a64b43e197d255c89cb" - integrity sha512-8sJNPGGUe8f3aDojcOW5cfVL7I5NrBbE0UWxG08qoi9Tea6qWbvQJsCR9tsrOapr/DaLr3kpbGZ9s1gEEfcNcA== +"@tiptap/extensions@*", "@tiptap/extensions@3.31.4", "@tiptap/extensions@^3.29.2": + version "3.31.4" + resolved "https://registry.yarnpkg.com/@tiptap/extensions/-/extensions-3.31.4.tgz#ac29dfeb89f78434936e21d3daa8bf54089afe81" + integrity sha512-nIupIne/sHpV2Kw1M4MOmr4+G454KI8BXM5+LWKOU2EpzfALZWVSy7koF9lVRna4Zp5Gv8hfg5Z8kvmrYQvhkw== -"@tiptap/pm@3.31.3", "@tiptap/pm@^3.29.2": - version "3.31.3" - resolved "https://registry.yarnpkg.com/@tiptap/pm/-/pm-3.31.3.tgz#e5bd2fac567a5d62aa016572f9747c8901108e20" - integrity sha512-sZime0SWsz/k62W2WvHx5Ig7G2h7kVhrrmnqy+wEgIHfDwEfOlelRjaWCiBCFlF7dxGUntJusCh9FxlLhni0Ag== +"@tiptap/pm@3.31.4", "@tiptap/pm@^3.29.2": + version "3.31.4" + resolved "https://registry.yarnpkg.com/@tiptap/pm/-/pm-3.31.4.tgz#f76cbacc32038921e41f0530a44fa1c40a818dce" + integrity sha512-x7dwth79cQp4QGae66/RJqMDJQv0+n7b7dD7cyFQBWqzPFLJxN/4paHY4qbWedZjNLhRyIOAD9a5q4AYM1zmPA== dependencies: prosemirror-changeset "^2.4.1" prosemirror-commands "^1.7.1" @@ -6410,10 +6420,10 @@ resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.25.tgz#69765ac7bcddb0eb072961cf292524a8f5b3c2c0" integrity sha512-+K1NIO8I+F9/wNulfVvu23QYd0Pe9/OCqRrim4NoYIf1VoEDL90Ve4ClzpyqBLc7NpGGWRvYNCKZ1BE/Jpf8dQ== -"@types/luxon@3.7.5": - version "3.7.5" - resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.7.5.tgz#d223e1adfdadb140eca9c51647aba59b98508128" - integrity sha512-jJ41Q4z6ZVO260MNDdHfW7+7a5iMiX8Mr6ZJHcmgrvhZha6dz5704o/lF2kKl6URjH6ivEL97w9xS/MgpJEphg== +"@types/luxon@3.7.6": + version "3.7.6" + resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.7.6.tgz#1acddd4b0e58c8e53ce505a979936aaa81f2f222" + integrity sha512-6KSjliQAXK8ZLgFQO4B7iE4Rpf/B3rItzCFuXezBY/XIAGxOdLd7vRNK9/StRPwiS/yJsVbB7HKpW46B8tcEuQ== "@types/mdast@^4.0.0": version "4.0.4" @@ -6584,16 +6594,16 @@ natural-compare "^1.4.0" ts-api-utils "^2.4.0" -"@typescript-eslint/eslint-plugin@8.70.0": - version "8.70.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.70.0.tgz#59f635c74dd1e2bffb6aecbda557b24dadffd3dc" - integrity sha512-/v8HZt6RlyIZxB3ntehELOcUcfxKPVGWXnQdJuHRmzrqgF8nQypcC/oxGW+Ot4VGKDq81XugPKxx0n5PBtf9PA== +"@typescript-eslint/eslint-plugin@8.71.0": + version "8.71.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.71.0.tgz#99f474391c3e54bfcb73b1934ea2dba6d6a59bef" + integrity sha512-pqcS9c1HxZTHt7End4nXqd0s5lJrrFzrgCkKFJrsbUnaL6M3+6oBFZaslg6Gjsl3argl2DDRFROnXARaZ2e4Nw== dependencies: "@eslint-community/regexpp" "^4.12.2" - "@typescript-eslint/scope-manager" "8.70.0" - "@typescript-eslint/type-utils" "8.70.0" - "@typescript-eslint/utils" "8.70.0" - "@typescript-eslint/visitor-keys" "8.70.0" + "@typescript-eslint/scope-manager" "8.71.0" + "@typescript-eslint/type-utils" "8.71.0" + "@typescript-eslint/utils" "8.71.0" + "@typescript-eslint/visitor-keys" "8.71.0" ignore "^7.0.5" natural-compare "^1.4.0" ts-api-utils "^2.5.0" @@ -6609,15 +6619,15 @@ "@typescript-eslint/visitor-keys" "8.57.0" debug "^4.4.3" -"@typescript-eslint/parser@8.70.0": - version "8.70.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.70.0.tgz#96ce2de96c06c8442fea1a8f7b07855a56b3c5e3" - integrity sha512-zYvrmj9Yxd63UGaXw+kdt6A0F0s0qveJyuatIM77bYC2DE4pgmg7a50u8LR7PRtXd0x+h+Tl3eXabGm06SWd3Q== +"@typescript-eslint/parser@8.71.0": + version "8.71.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.71.0.tgz#e1ecf4ff47f91c90fa11866b2190ee072d5a14af" + integrity sha512-CG4nPk1f2zc8yw4pALqHsFYH2hdo+h1T9daSp21+Hnxi9LOE3GT9hAfTKJCBXVNM2GmYs1eMEP615wPoeOgk3A== dependencies: - "@typescript-eslint/scope-manager" "8.70.0" - "@typescript-eslint/types" "8.70.0" - "@typescript-eslint/typescript-estree" "8.70.0" - "@typescript-eslint/visitor-keys" "8.70.0" + "@typescript-eslint/scope-manager" "8.71.0" + "@typescript-eslint/types" "8.71.0" + "@typescript-eslint/typescript-estree" "8.71.0" + "@typescript-eslint/visitor-keys" "8.71.0" debug "^4.4.3" "@typescript-eslint/project-service@8.56.0": @@ -6656,13 +6666,13 @@ "@typescript-eslint/types" "^8.59.1" debug "^4.4.3" -"@typescript-eslint/project-service@8.70.0": - version "8.70.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.70.0.tgz#a62e837362f26c604ad15b20bacce1c3f4d6b552" - integrity sha512-hFHbTNqhU9G+2eKFXCBVb1tjFT/LceiJ4+HfLO4pTpDI0KHi6iajpcFFkaSQ9gXmCh7n82A0PthaayEdN6mspQ== +"@typescript-eslint/project-service@8.71.0": + version "8.71.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.71.0.tgz#8408b60210e2f49ddf3cdb25c985df272a35461f" + integrity sha512-aABjw5rjBacYONVPaPiWOCjJu0vEF4a25iQuodlmQYL1trtLZ0X/y+2Vzl3BKI1odM4LnwLE1oUDXYp1wzx1TQ== dependencies: - "@typescript-eslint/tsconfig-utils" "^8.70.0" - "@typescript-eslint/types" "^8.70.0" + "@typescript-eslint/tsconfig-utils" "^8.71.0" + "@typescript-eslint/types" "^8.71.0" debug "^4.4.3" "@typescript-eslint/scope-manager@8.56.0": @@ -6697,13 +6707,13 @@ "@typescript-eslint/types" "8.59.1" "@typescript-eslint/visitor-keys" "8.59.1" -"@typescript-eslint/scope-manager@8.70.0": - version "8.70.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.70.0.tgz#b77628b03c9c56ef21fb5a6bc2f4a4335163b999" - integrity sha512-8nP3Kwh5hlgZ4FicGvmznAmJe8UL4sdU8tLukrPaMuQmDuk4Y8xYfzu/aYZW4xT2JCgc7H/TpDI5cGlxcWJSqQ== +"@typescript-eslint/scope-manager@8.71.0": + version "8.71.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.71.0.tgz#4a5a637b272d13d8755d5b5024099826eb4fc688" + integrity sha512-gWF0BhUcnjZxSpLE8ngS/59n2SB0J3YqRxvX1+2aoRJk9hNtHSLOV+TcarFiOr5ipXm3yc1QrI4c9YZc8zyCxw== dependencies: - "@typescript-eslint/types" "8.70.0" - "@typescript-eslint/visitor-keys" "8.70.0" + "@typescript-eslint/types" "8.71.0" + "@typescript-eslint/visitor-keys" "8.71.0" "@typescript-eslint/tsconfig-utils@8.56.0", "@typescript-eslint/tsconfig-utils@^8.56.0": version "8.56.0" @@ -6725,12 +6735,7 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.59.1.tgz#ba2a779a444f1d5cb92a606f9b209d239fd4cab1" integrity sha512-/0nEyPbX7gRsk0Uwfe4ALwwgxuA66d/l2mhRDNlAvaj4U3juhUtJNq0DsY8M2AYwwb9rEq2hrC3IcIcEt++iJA== -"@typescript-eslint/tsconfig-utils@8.70.0": - version "8.70.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.70.0.tgz#f583ca72159c4fd8e775c153da3241de6b77974f" - integrity sha512-adnkeeNq9Sq1sUf4+FRVc0KdgYghzsgFpZSQVZVvY0LCuUuN0FnQgyGzCJeC4fW1cdXseBAjU2EOqUIjbNcZUw== - -"@typescript-eslint/tsconfig-utils@^8.70.0": +"@typescript-eslint/tsconfig-utils@8.71.0", "@typescript-eslint/tsconfig-utils@^8.71.0": version "8.71.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.71.0.tgz#83a69c9a514af8f5ff099cc6c0d609c273e8f039" integrity sha512-Z1UlWHADEK2Mlb9NpWfDeSjqoZ5EyrOv4R3eQpbkzqn/EwaIdOpXXupEA1+0ZIOSJSZZDBHG0BrQyN8zUG6Pwg== @@ -6746,14 +6751,14 @@ debug "^4.4.3" ts-api-utils "^2.4.0" -"@typescript-eslint/type-utils@8.70.0": - version "8.70.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.70.0.tgz#7f9c01c24e56bfad2a089167926c7cdded9de5f6" - integrity sha512-NUMKIhYVaVIVLnRL9CRt+VVcuLgSHUCpXn4/+K8wql+vdInUzvx8BjUO1oJ7cG9shjFJKtF8F8Hh2kCh3/KBVw== +"@typescript-eslint/type-utils@8.71.0": + version "8.71.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.71.0.tgz#eab342370b18ae8ad39c031e3878bddabc1d254b" + integrity sha512-i8uO1qbdxeKgRnS5sCRt6On3/nfo2d2DwQe3Yvjx543zLy7r8ySqRuPPiIIXAhS03U0v5NfAFx+rUgxFzKKwNw== dependencies: - "@typescript-eslint/types" "8.70.0" - "@typescript-eslint/typescript-estree" "8.70.0" - "@typescript-eslint/utils" "8.70.0" + "@typescript-eslint/types" "8.71.0" + "@typescript-eslint/typescript-estree" "8.71.0" + "@typescript-eslint/utils" "8.71.0" debug "^4.4.3" ts-api-utils "^2.5.0" @@ -6777,12 +6782,7 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.59.1.tgz#c1d014d3f03a97e0113a8899fc9d4e45a7fb0ca9" integrity sha512-ZDCjgccSdYPw5Bxh+my4Z0lJU96ZDN7jbBzvmEn0FZx3RtU1C7VWl6NbDx94bwY3V5YsgwRzJPOgeY2Q/nLG8A== -"@typescript-eslint/types@8.70.0": - version "8.70.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.70.0.tgz#9ee52888cdeca604fe9436935219b967fa7f6053" - integrity sha512-asTOIYhDg4zdzOScCyaytrsV3cR6B4ecPQlXw/dJIm7J/MZTtCtfVII9JD8Geh4jTCrK/Xe6cg5UevoleMcoJQ== - -"@typescript-eslint/types@^8.70.0": +"@typescript-eslint/types@8.71.0", "@typescript-eslint/types@^8.71.0": version "8.71.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.71.0.tgz#a230a121e71665060afe27d1f1ad110371f9451e" integrity sha512-cJ4OoxPGWvFnBTnSZyaU+qJzGTqPTGJY+gDchj6cRyLRdmIdt4rcsE4twj+zPfrNiWuVi38wijHzShL++Z9atQ== @@ -6847,15 +6847,15 @@ tinyglobby "^0.2.15" ts-api-utils "^2.5.0" -"@typescript-eslint/typescript-estree@8.70.0": - version "8.70.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.70.0.tgz#79cfcd9678ee28ea69cc13032c0f89bb1d298917" - integrity sha512-d9NmHMPEKQ7QCLLm1jI3zmoQBwT5KwFYjXBJ9ymZfKCUU+5rmTRykKAFvH5Qn/ZCds3CEAFS9OC9M/jkl0X2bA== +"@typescript-eslint/typescript-estree@8.71.0": + version "8.71.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.71.0.tgz#78127ef7d5dad7f036ad065235a0fb92a3e02340" + integrity sha512-PEEF4G5sLLWAS5BpPrUvms4ySZkiBQQZM4z+3ReI46axK5Vqr/vXBQatJQIZZOYdGyPUAKTtsrWzpqKuU+3DEw== dependencies: - "@typescript-eslint/project-service" "8.70.0" - "@typescript-eslint/tsconfig-utils" "8.70.0" - "@typescript-eslint/types" "8.70.0" - "@typescript-eslint/visitor-keys" "8.70.0" + "@typescript-eslint/project-service" "8.71.0" + "@typescript-eslint/tsconfig-utils" "8.71.0" + "@typescript-eslint/types" "8.71.0" + "@typescript-eslint/visitor-keys" "8.71.0" debug "^4.4.3" minimatch "^10.2.2" semver "^7.7.3" @@ -6872,15 +6872,15 @@ "@typescript-eslint/types" "8.57.0" "@typescript-eslint/typescript-estree" "8.57.0" -"@typescript-eslint/utils@8.70.0": - version "8.70.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.70.0.tgz#78a78b4c52dd8523e5321993cb46ebe6d7934510" - integrity sha512-oZmtKJz/4fufZ2p3+Cn3ijEojcdfR+1zYDH2xKYrEly0dR/Q/1xUPRCOlKGxod78nWlU2UnDe09GZ3TaknBFGA== +"@typescript-eslint/utils@8.71.0", "@typescript-eslint/utils@^8.70.1": + version "8.71.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.71.0.tgz#4e7923ae1083e941c6fefabf4b978ffecc48ecb0" + integrity sha512-pKR/tEMVrXZG23UFKUn5BQf3zfmfk7KQceI2cGzywZ5nxM5Eu3hEJU1utjWzydtzBbcJAQhHN8iPCxobHpPcZQ== dependencies: "@eslint-community/eslint-utils" "^4.9.1" - "@typescript-eslint/scope-manager" "8.70.0" - "@typescript-eslint/types" "8.70.0" - "@typescript-eslint/typescript-estree" "8.70.0" + "@typescript-eslint/scope-manager" "8.71.0" + "@typescript-eslint/types" "8.71.0" + "@typescript-eslint/typescript-estree" "8.71.0" "@typescript-eslint/utils@^8.0.0": version "8.56.0" @@ -6902,7 +6902,7 @@ "@typescript-eslint/types" "8.57.2" "@typescript-eslint/typescript-estree" "8.57.2" -"@typescript-eslint/utils@^8.58.0", "@typescript-eslint/utils@^8.58.1": +"@typescript-eslint/utils@^8.58.0": version "8.59.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.59.1.tgz#cf6204d69701bbbc5b150f98c18aeef0a42c10bd" integrity sha512-3pIeoXhCeYH9FSCBI8P3iNwJlGuzPlYKkTlen2O9T1DSeeg8UG8jstq6BLk+Mda0qup7mgk4z4XL4OzRaxZ8LA== @@ -6944,12 +6944,12 @@ "@typescript-eslint/types" "8.59.1" eslint-visitor-keys "^5.0.0" -"@typescript-eslint/visitor-keys@8.70.0": - version "8.70.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.70.0.tgz#b451c8aea76dc97fc768b8d9d7f61019bf789628" - integrity sha512-BoC8PiO4Hkdo0TVJh9Ntxr5MxPDI7/oFsrygN5ADelFSeXG/qgNuucIGA+L5Z6JpPTE/uRfcTWtscjbUaufepQ== +"@typescript-eslint/visitor-keys@8.71.0": + version "8.71.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.71.0.tgz#8ca9a12bc5083b9a090c3ea4e5d9ef97f6558199" + integrity sha512-8eQ9R218XORK+KLosnf4bu/QsUXvUyVwTbArg7/0NMB1Pu87OJKvj4nhFblkYE8gQV73mW1dx1ptlPCkwRGa7A== dependencies: - "@typescript-eslint/types" "8.70.0" + "@typescript-eslint/types" "8.71.0" eslint-visitor-keys "^5.0.0" "@ungap/structured-clone@^1.0.0", "@ungap/structured-clone@^1.3.0": @@ -7181,10 +7181,10 @@ resolved "https://registry.yarnpkg.com/@vercel/oidc/-/oidc-3.2.0.tgz#5782a4d4904443f015808705b5537cf9c3b68528" integrity sha512-UycprH3T6n3jH0k44NHMa7pnFHGu/N05MjojYr+Mc6I7obkoLIJujSWwin1pCvdy/eOxrI/l3uDLQsmcrOb4ug== -"@vitejs/plugin-react@6.1.1": - version "6.1.1" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-6.1.1.tgz#47fa1a2f956e88eaf778ebf65ddce8e2b36597e7" - integrity sha512-yxLaQV9gkhS8ezJqCM6+ndU7mDY6gqAg75NQ+0IjwEI8IYOmQCgkRwHKVSfWXW076DsqMo0Dk+0FK1U+M5RgFw== +"@vitejs/plugin-react@6.1.2": + version "6.1.2" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-6.1.2.tgz#924d47e890a78cdf2b72f3f41fe8ab98e089b81e" + integrity sha512-fhJNGUdscQa4HkI0xFxwonWyhnVReCPDbXI7FH7jmzpnVCrFQI7PRrhWecO263610vOrs9tr2Y4xcf8uAdFxbw== dependencies: "@rolldown/pluginutils" "^1.0.1" @@ -7196,20 +7196,20 @@ "@typescript-eslint/scope-manager" "^8.58.0" "@typescript-eslint/utils" "^8.58.0" -"@vitest/mocker@5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-5.0.1.tgz#e1ca450ac67a57638e79b08481797793700a09f2" - integrity sha512-6K1DoBNAPGvuOcSsGA4D6x+5zEEff/KmOOP3uetT2TrGpVfI+HRHRnJJfKi5ib/g1vx8IYHQD8s0pbJz8WQI7Q== +"@vitest/mocker@5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-5.0.3.tgz#58666c76660c445c215dd6301fd8704f4550cb58" + integrity sha512-T8sWAIbkSyAjkwTcaEc3Iu0o9A27X1/kdXrizhZkGuSKScRQtRzclfAMpOTcGdXCsqxeWlpGy3XjqaW8CpLORg== dependencies: "@jridgewell/trace-mapping" "0.3.31" - "@vitest/spy" "5.0.1" + "@vitest/spy" "5.0.3" estree-walker "^3.0.3" magic-string "^1.2.3" -"@vitest/spy@5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-5.0.1.tgz#6dac40afd5620613c8d344542d3c30e8e20e32dd" - integrity sha512-rbto/mF/SGERxEgYOek7Xm6B9b+y+mVoo+f4b2LymYO8zM1b7uB5nHuhVMTP2hxdzgxvGiZYGxGIaMvL5y180Q== +"@vitest/spy@5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-5.0.3.tgz#9f1024c35e0bb5ab54169da00b5b743e061f72b4" + integrity sha512-XhFysQTB8AZ+P4gMi+Lpo99vg2AZi0qKpaB9yXQl37+CaMEAPO3iH/wGVnSyL5MPERiLezpqTVtrR6UZH5GCXg== "@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1": version "1.14.1" @@ -8326,6 +8326,11 @@ commander@^12.1.0: resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== +commander@^14.0.0: + version "14.0.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.3.tgz#425d79b48f9af82fcd9e4fc1ea8af6c5ec07bbc2" + integrity sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw== + commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -8927,6 +8932,14 @@ data-urls@^7.0.0: whatwg-mimetype "^5.0.0" whatwg-url "^16.0.0" +data-urls@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-8.0.0.tgz#d4e925beae8249dbe99a1defed36cebb9cc7a84c" + integrity sha512-JQUCCK+/CAGbGGx618PlFZMXH81Jtj7t73CHv9dd/zVWvxgGT2zLFRjnKb+Ng46GIwcy+f7f88qd4duqllK+WQ== + dependencies: + whatwg-mimetype "^5.0.0" + whatwg-url "^17.1.2" + data-view-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.2.tgz#211a03ba95ecaf7798a8c7198d79536211f88570" @@ -9178,10 +9191,10 @@ dot-case@^3.0.4: no-case "^3.0.4" tslib "^2.0.3" -dotenv@18.0.1: - version "18.0.1" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-18.0.1.tgz#27ad1fefc173e754a9a0a68fcd8aa71b267ed37f" - integrity sha512-0eR4m4D/jH5eaI3evo2ZqqMii5mrTCR12v12VChdie6O1gPHs7XAjzTep0CWc1Bd+oNx3vVfbi734dK4zghigw== +dotenv@18.0.5: + version "18.0.5" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-18.0.5.tgz#4fc2c5cd92cf89cdd72c8aa5b82b5a37c0a9a2bf" + integrity sha512-aBrGvt6KhjxbEnatqMWOMidftwsrCiCvqh1yNIGB9QyF0J+VcWkKDMsvYOEm7ZS82oiV+BT1sTOtIlAmUlTpwQ== dotenv@^16.3.1: version "16.6.1" @@ -9525,12 +9538,12 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-config-next@16.3.5: - version "16.3.5" - resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-16.3.5.tgz#ae4234db76020e1c391ca3e797e4c0e158a06c48" - integrity sha512-wPjq9MLQuWykHs8tsm2gH6OJThk6N27L8Te2JatlaGZ7jT1gtgGmJKukygL28xOlWsg5J1a1bGy/PvLyQC8OYA== +eslint-config-next@16.3.8: + version "16.3.8" + resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-16.3.8.tgz#83f8366dbf97f02b87aecb573372ca643f83250d" + integrity sha512-81vovwMe6NGnoFsl0KUJWzlS+y239i3fdsxs49gSEX3pDQW2cuKy+fxUPXNkQqqx6OCPheYPtBlSufc9aZ0k+w== dependencies: - "@next/eslint-plugin-next" "16.3.5" + "@next/eslint-plugin-next" "16.3.8" eslint-import-resolver-node "^0.3.6" eslint-import-resolver-typescript "^3.5.2" eslint-plugin-import "^2.32.0" @@ -9650,10 +9663,10 @@ eslint-plugin-jsx-a11y@6.10.2, eslint-plugin-jsx-a11y@^6.10.0: safe-regex-test "^1.0.3" string.prototype.includes "^2.0.1" -eslint-plugin-playwright@2.12.0: - version "2.12.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-playwright/-/eslint-plugin-playwright-2.12.0.tgz#3e7d3610ca3c06b04ae22854b45320735bf5cfa0" - integrity sha512-7HpSKR/D2oCH4RKRauFskcrnDrHvLQKopW7Nen8lqrFZtx/SB+FgqVaH+zyQd32noZSZy9Lrsa+DsYrVUpn6hg== +eslint-plugin-playwright@2.12.1: + version "2.12.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-playwright/-/eslint-plugin-playwright-2.12.1.tgz#3f27c41be3f0c95389b80478d6cf0191b94ff548" + integrity sha512-JhavNuYBIq7SE/Zg9Esf9RGHkXoDbzrEKS383cowzMyvZ4JMbmdNCN6CoW+RU1Cjzwcoea1tou0je58uXmT/9A== dependencies: globals "^17.3.0" @@ -9739,10 +9752,10 @@ eslint-visitor-keys@^5.0.0, eslint-visitor-keys@^5.0.1: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz#9e3c9489697824d2d4ce3a8ad12628f91e9f59be" integrity sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA== -eslint@10.11.0: - version "10.11.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-10.11.0.tgz#304d1591b7c6a327e3f64b4f550f99fda160ae20" - integrity sha512-P7a6UEEqb9G95MYAtqkmsTbVXIYyzIfl6NGOIJk162PaahFxFyeGcrlXYFSiagECg4sEm8IseJdZBKR3rx6MsQ== +eslint@10.12.0: + version "10.12.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-10.12.0.tgz#4f2f7e679bdce9d71438c2900f2c8d4d297332b0" + integrity sha512-npHjrHb2o4ehH3mE+YuxABR+0gyb0aVWCIolgJDArwCiHEIsonBm3ZKjel5b0U5+a+MbEvIyRCGCzD3eKKK2NA== dependencies: "@eslint-community/eslint-utils" "^4.8.0" "@eslint-community/regexpp" "^4.12.2" @@ -10058,10 +10071,12 @@ fflate@^0.8.2, fflate@^0.8.3: resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.8.3.tgz#bc27d8eb30343d4d512abb03480202ce65d825fc" integrity sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA== -figlet@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/figlet/-/figlet-1.8.1.tgz#e8e8a07e8c16be24c31086d7d5de8a9b9cf7f0fd" - integrity sha512-kEC3Sme+YvA8Hkibv0NR1oClGcWia0VB2fC1SlMy027cwe795Xx40Xiv/nw/iFAwQLupymWh+uhAAErn/7hwPg== +figlet@1.12.0, figlet@1.8.1: + version "1.12.0" + resolved "https://registry.yarnpkg.com/figlet/-/figlet-1.12.0.tgz#3e9c3a12f112db9479bd5ae4b87bc2b337b9a1af" + integrity sha512-Ith3WsUi0N/EqGt+0/F6XnWhT04sohhH2tT0Dq7GdUmWbMTIoCbg2Jq9qKggmTO62ST5kRCfB311EmIMbizGyA== + dependencies: + commander "^14.0.0" "file-entry-cache@11.1.5 || >11.1.6 <12": version "11.1.5" @@ -10516,7 +10531,7 @@ globjoin@^0.1.4: resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" integrity sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg== -goober@^2.1.16: +goober@^2.1.19: version "2.1.19" resolved "https://registry.yarnpkg.com/goober/-/goober-2.1.19.tgz#a4b4dcdbba9325b8c4d7380099f9f281f27c6a6f" integrity sha512-U7veizMqxyKlM58+Z5j2ngJBH/r9siDmxpvNxSw0PylF6WQvrASJEZrxh1hidRBJc2jqoBVSyOban5u8m+6Rxg== @@ -10719,6 +10734,13 @@ html-encoding-sniffer@^6.0.0: dependencies: "@exodus/bytes" "^1.6.0" +html-encoding-sniffer@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-7.0.0.tgz#cf995009e50fa6f90d74906ab5137f8ee9b7c9d8" + integrity sha512-UikN5yr7xsCDAq87Or5or0PAlD3HJJOKVzM05az588WnpDJ4Ux7a2A53Qi6gofGg2/EtvF/H4hCi/TXfCW4Y6w== + dependencies: + "@exodus/bytes" "^1.15.1" + html-escaper@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" @@ -11805,30 +11827,30 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" -jsdom@30.1.0: - version "30.1.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-30.1.0.tgz#fb3f39a40fc809bc82d2709604230cca71065fd6" - integrity sha512-h/Q+H+KmlGf49ITw3TrykSVbg04S75S2O7ZtJc9gMGOWBrQRZmx5AJIKLtJ01e6Kszl+/tpFthCVqxNifxhoqg== +jsdom@30.1.2: + version "30.1.2" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-30.1.2.tgz#28ef0482cab9724692c9dffcec3a6a6ae8a8f91e" + integrity sha512-0FFE/jE1rppmVfUrJUgxqXjcwolZYIGtAgj1pTussMhNZxIxi7W/PvfWaMNroGi2B36X1IKHbexpZ9DhkoOPiQ== dependencies: - "@asamuzakjp/css-color" "^7.0.0" - "@asamuzakjp/dom-selector" "^9.1.2" + "@asamuzakjp/css-color" "^7.1.3" + "@asamuzakjp/dom-selector" "^9.2.4" "@bramus/specificity" "^2.4.2" - "@csstools/css-syntax-patches-for-csstree" "^1.1.13" - "@exodus/bytes" "^1.15.1" + "@csstools/css-syntax-patches-for-csstree" "^1.1.15" + "@exodus/bytes" "^1.16.0" css-tree "^3.2.1" - data-urls "^7.0.0" + data-urls "^8.0.0" decimal.js "^10.6.0" - html-encoding-sniffer "^6.0.0" + html-encoding-sniffer "^7.0.0" is-potential-custom-element-name "^1.0.1" - lru-cache "^11.5.2" + lru-cache "^11.5.3" parse5 "^8.0.1" saxes "^6.0.0" tough-cookie "^6.0.2" - undici "^8.10.2" - w3c-xmlserializer "^5.0.0" + undici "^8.11.2" + w3c-xmlserializer "^6.0.0" webidl-conversions "^8.0.1" whatwg-mimetype "^5.0.0" - whatwg-url "^17.1.1" + whatwg-url "^17.2.0" xml-name-validator "^5.0.0" jsdom@^29.0.2: @@ -12206,7 +12228,7 @@ lru-cache@^11.0.0: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.2.6.tgz#356bf8a29e88a7a2945507b31f6429a65a192c58" integrity sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ== -lru-cache@^11.3.5, lru-cache@^11.5.2: +lru-cache@^11.3.5: version "11.5.2" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.5.2.tgz#00e16665c90c620fba14a3c368732a976493f760" integrity sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g== @@ -12613,10 +12635,10 @@ mylas@^2.1.9: resolved "https://registry.yarnpkg.com/mylas/-/mylas-2.1.13.tgz#1e23b37d58fdcc76e15d8a5ed23f9ae9fc0cbdf4" integrity sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg== -nanoid@^3.3.18: - version "3.3.19" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.19.tgz#336d4aa4bcd4fb24d2cddede7ffeae40bec03f0a" - integrity sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug== +nanoid@^3.3.19: + version "3.3.20" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.20.tgz#dfd4444d85aa10111ef66ba85ed72e08ba0855d8" + integrity sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ== nanoid@^5.1.3: version "5.1.16" @@ -12643,26 +12665,26 @@ neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -next@16.3.6: - version "16.3.6" - resolved "https://registry.yarnpkg.com/next/-/next-16.3.6.tgz#29a6cecb103bd2642a0ce322e68ecdb38a0f0af5" - integrity sha512-L+otWM/aQbYTx98aZhgEoMb4bZAXx1YVW4UMA/vuCyCoWG5HJyZUili8QAkqzrcC+5///tsz3s0M+SlyB5bLMw== +next@16.3.8: + version "16.3.8" + resolved "https://registry.yarnpkg.com/next/-/next-16.3.8.tgz#1c74c9d90029c9c756456bd745c49c248b21050c" + integrity sha512-U7QEZaTini6wKrb8A8hqLLqYQyCetegKjCpJOyxk642vWoMoU1x5PyZCJFvgYgiptA8xc5j/9xYlZFO7w9Sjmw== dependencies: - "@next/env" "16.3.6" + "@next/env" "16.3.8" "@swc/helpers" "0.5.23" baseline-browser-mapping "^2.9.19" caniuse-lite "^1.0.30001579" postcss "8.5.23" styled-jsx "5.1.6" optionalDependencies: - "@next/swc-darwin-arm64" "16.3.6" - "@next/swc-darwin-x64" "16.3.6" - "@next/swc-linux-arm64-gnu" "16.3.6" - "@next/swc-linux-arm64-musl" "16.3.6" - "@next/swc-linux-x64-gnu" "16.3.6" - "@next/swc-linux-x64-musl" "16.3.6" - "@next/swc-win32-arm64-msvc" "16.3.6" - "@next/swc-win32-x64-msvc" "16.3.6" + "@next/swc-darwin-arm64" "16.3.8" + "@next/swc-darwin-x64" "16.3.8" + "@next/swc-linux-arm64-gnu" "16.3.8" + "@next/swc-linux-arm64-musl" "16.3.8" + "@next/swc-linux-x64-gnu" "16.3.8" + "@next/swc-linux-x64-musl" "16.3.8" + "@next/swc-win32-arm64-msvc" "16.3.8" + "@next/swc-win32-x64-msvc" "16.3.8" sharp "^0.35.4" no-case@^3.0.4: @@ -13198,23 +13220,23 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0, postcss-value-parser@^ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@8.5.23, postcss@8.5.28, postcss@^8.5.28, postcss@^8.5.6: - version "8.5.28" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.28.tgz#da4563a99a06e62d6c1cd1acae363224bcaed6e9" - integrity sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A== +postcss@8.5.23, postcss@8.5.29, postcss@^8.5.28, postcss@^8.5.6: + version "8.5.29" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.29.tgz#086a0ded2c0257c71efb8c68776b477774714b4a" + integrity sha512-49cGhUbXj8Qenv0iTMxA1cFBzxXoctpC9Ujd77t1WcbJIr6nF/eI7g/8MgxrYldFRuAXvja7xQRwavoW7kgrxQ== dependencies: - nanoid "^3.3.18" + nanoid "^3.3.19" picocolors "^1.1.1" - source-map-js "^1.2.1" + source-map-js "^1.2.2" -posthog-js@1.434.4: - version "1.434.4" - resolved "https://registry.yarnpkg.com/posthog-js/-/posthog-js-1.434.4.tgz#ab372b68e66f32521b295feffde98e5df5378781" - integrity sha512-gsyult9qyScG0+Wqcqw6VXnb1a25QELnerQ44hStku6amEKndo8JLJleRaaQhkNn1A9xJ6awqQm1xF79WPkLRA== +posthog-js@1.436.1: + version "1.436.1" + resolved "https://registry.yarnpkg.com/posthog-js/-/posthog-js-1.436.1.tgz#7d8c6b3231585d281c872b8ba921a69309117710" + integrity sha512-+uPcck+hcaBbjtxBwOtiiZ9BcBXyJmewumUMVP5MrIZO36BHHZ+SzvHTxFsA5soNbPo2fuLppsWfpNnuSjbNeA== dependencies: - "@posthog/browser-common" "^0.9.0" - "@posthog/core" "^1.55.1" - "@posthog/types" "^1.412.4" + "@posthog/browser-common" "^0.9.1" + "@posthog/core" "^1.56.0" + "@posthog/types" "^1.413.0" core-js "^3.49.0" dompurify "^3.4.13" fflate "^0.4.8" @@ -13247,10 +13269,10 @@ prettier-linter-helpers@^1.0.1: dependencies: fast-diff "^1.1.2" -prettier@3.9.8: - version "3.9.8" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.9.8.tgz#54e81128584538c81d85fce9d5fd77a410c385c5" - integrity sha512-WRFq3Wn3WId7LLROfMLdH7xaFr2jR62wU8nLO6rQUOLOxNZUviyJQs1M0iIhLexSFy+L+w0ch66wtoO2jRjG0A== +prettier@3.9.9: + version "3.9.9" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.9.9.tgz#09b826918c91cd4cbc80e0cbd1d2a922ff04f233" + integrity sha512-Z/CJHIkdujO/OtN7nXUii0Rf3VT5SRuhjBA82Xvu2XhBUgX3nhP67T0LHceBdQLex7OOFGTox+Q5Yg8Jk2Qivg== pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: version "5.6.0" @@ -13433,19 +13455,19 @@ prosemirror-transform@^1.0.0, prosemirror-transform@^1.1.0, prosemirror-transfor dependencies: prosemirror-model "^1.21.0" -prosemirror-view@1.42.5, prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.27.0, prosemirror-view@^1.31.0, prosemirror-view@^1.41.4, prosemirror-view@^1.42.2, prosemirror-view@^1.42.3: - version "1.42.5" - resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.42.5.tgz#7452a9cf88fa6e725fe08713c44b54efe58b6491" - integrity sha512-7qcRaCWM48NC4utNQnx5Obvvs48/jMHXXvOXHH6WlBojmiK15eyxoHYlv5aJARHJHiFccSuWZ7ULW2SPrFAS/g== +prosemirror-view@1.42.6, prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.27.0, prosemirror-view@^1.31.0, prosemirror-view@^1.41.4, prosemirror-view@^1.42.2, prosemirror-view@^1.42.3: + version "1.42.6" + resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.42.6.tgz#d72d3ddafdc9c97db870f051f5cdd7c872eb53fc" + integrity sha512-3g25f6hKV2bBxo3puH3EcYWmmVNSH0iWmNsMVT7sugDSpA025jgpOLarcDWr39SdzPjYMaiYtRdNtXialPSjEQ== dependencies: prosemirror-model "^1.25.12" prosemirror-state "^1.0.0" prosemirror-transform "^1.1.0" proxy-addr@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + version "2.0.8" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.8.tgz#624e760fd8ab06b1b8320c2f8506d4422cf8e932" + integrity sha512-5nnx0yGyVUcY6t9RnWcARWtwT9F1D8O9rt08htPvnd49W1IgZtmLkhu9WfMzQj1cFxjHIO6connUNVW5k7AVyQ== dependencies: forwarded "0.2.0" ipaddr.js "1.9.1" @@ -13720,10 +13742,10 @@ react-dropzone@20.1.2: attr-accept "^4.0.0" file-selector "^5.0.0" -react-i18next@17.0.14: - version "17.0.14" - resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-17.0.14.tgz#a895ff593e461877953732c194a242fa3895ed61" - integrity sha512-ZpMBfJL3BiXPuYHj5QMY1GwvKJNhE1vCxOJQ8BoMBdHP5XONTfi/Qss1nuRlnFdIl72PKo2jPmw+fxuLjRFgaQ== +react-i18next@17.0.15: + version "17.0.15" + resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-17.0.15.tgz#ca219789bf83b556fd0404df4cfbe31b05e4e253" + integrity sha512-7uYpx/oBkesLto7cOzOmfITlUBaXHCAcFahmgETMfWr8nbbWRRnVGvz8wsH/xpbNcyoH+NpCcnOQEqWPMO6/hw== dependencies: "@babel/runtime" "^7.29.7" html-parse-stringify "^4.0.1" @@ -14200,29 +14222,29 @@ robust-predicates@^3.0.2: resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.3.tgz#1099061b3349e2c5abec6c2ab0acd440d24d4062" integrity sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA== -rolldown@~1.2.9: - version "1.2.11" - resolved "https://registry.yarnpkg.com/rolldown/-/rolldown-1.2.11.tgz#89c4e07d9098b88fe0b023de59d63a6216e9285c" - integrity sha512-qpSwIyz0jHQq5qXBTNxFmE6664rJ7O+4TvPFOiOaBSrz8IOHc1koKKSqTM2H6u1UG1+TveuC6vaDHKXFOvb1Kw== +rolldown@~1.2.11: + version "1.2.12" + resolved "https://registry.yarnpkg.com/rolldown/-/rolldown-1.2.12.tgz#75215a6b55a2a9e8f577ac937a4fe42d9682ae0c" + integrity sha512-8wafseiaG80xmXSfqidUNqZcylTlhmPZZt+za2m+js2sFZ8dTNlhIOV2WcbIPx2hgwPBJpEUGFAMZ9bgBBLTSQ== dependencies: - "@oxc-project/types" "=0.151.0" + "@oxc-project/types" "=0.152.0" "@rolldown/pluginutils" "^1.0.0" optionalDependencies: - "@rolldown/binding-android-arm-eabi" "1.2.11" - "@rolldown/binding-android-arm64" "1.2.11" - "@rolldown/binding-darwin-arm64" "1.2.11" - "@rolldown/binding-darwin-x64" "1.2.11" - "@rolldown/binding-freebsd-x64" "1.2.11" - "@rolldown/binding-linux-arm-gnueabihf" "1.2.11" - "@rolldown/binding-linux-arm64-gnu" "1.2.11" - "@rolldown/binding-linux-arm64-musl" "1.2.11" - "@rolldown/binding-linux-ppc64-gnu" "1.2.11" - "@rolldown/binding-linux-s390x-gnu" "1.2.11" - "@rolldown/binding-linux-x64-gnu" "1.2.11" - "@rolldown/binding-linux-x64-musl" "1.2.11" - "@rolldown/binding-openharmony-arm64" "1.2.11" - "@rolldown/binding-win32-arm64-msvc" "1.2.11" - "@rolldown/binding-win32-x64-msvc" "1.2.11" + "@rolldown/binding-android-arm-eabi" "1.2.12" + "@rolldown/binding-android-arm64" "1.2.12" + "@rolldown/binding-darwin-arm64" "1.2.12" + "@rolldown/binding-darwin-x64" "1.2.12" + "@rolldown/binding-freebsd-x64" "1.2.12" + "@rolldown/binding-linux-arm-gnueabihf" "1.2.12" + "@rolldown/binding-linux-arm64-gnu" "1.2.12" + "@rolldown/binding-linux-arm64-musl" "1.2.12" + "@rolldown/binding-linux-ppc64-gnu" "1.2.12" + "@rolldown/binding-linux-s390x-gnu" "1.2.12" + "@rolldown/binding-linux-x64-gnu" "1.2.12" + "@rolldown/binding-linux-x64-musl" "1.2.12" + "@rolldown/binding-openharmony-arm64" "1.2.12" + "@rolldown/binding-win32-arm64-msvc" "1.2.12" + "@rolldown/binding-win32-x64-msvc" "1.2.12" rollup@^2.43.1: version "2.80.0" @@ -14612,11 +14634,6 @@ side-channel@^1.1.1: side-channel-map "^1.0.1" side-channel-weakmap "^1.0.2" -siginfo@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" - integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== - signal-exit@^3.0.3: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" @@ -14661,7 +14678,7 @@ snake-case@^3.0.4: dot-case "^3.0.4" tslib "^2.0.3" -solid-js@^1.9.7: +solid-js@^1.9.15: version "1.9.15" resolved "https://registry.yarnpkg.com/solid-js/-/solid-js-1.9.15.tgz#209cbd4e0c7108d1e9bd1537ea7f91e03277a763" integrity sha512-EeiY2xfpZJqPLjXspVEKjAII4yv8NyG//NxZ3IpOFHdUNnnTyL0uJOeS9LWGvA7cFCz5y94cjFwYlmw5Luncsg== @@ -14704,10 +14721,10 @@ source-list-map@^2.0.0: resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== -source-map-js@^1.0.1, source-map-js@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" - integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== +source-map-js@^1.0.1, source-map-js@^1.2.1, source-map-js@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.2.tgz#79fb88d97535a21cb27162cb05d211b67acea4ab" + integrity sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw== source-map-support@~0.5.20: version "0.5.21" @@ -14780,11 +14797,6 @@ stack-utils@^2.0.6: dependencies: escape-string-regexp "^2.0.0" -stackback@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b" - integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== - stackblur-canvas@^2.0.0: version "2.7.0" resolved "https://registry.yarnpkg.com/stackblur-canvas/-/stackblur-canvas-2.7.0.tgz#af931277d0b5096df55e1f91c530043e066989b6" @@ -15163,17 +15175,17 @@ superagent@^10.3.0: mime "2.6.0" qs "^6.14.1" -superjson@^2.2.2: +superjson@^2.2.6: version "2.2.6" resolved "https://registry.yarnpkg.com/superjson/-/superjson-2.2.6.tgz#a223a3a988172a5f9656e2063fe5f733af40d099" integrity sha512-H+ue8Zo4vJmV2nRjpx86P35lzwDT3nItnIsocgumgr0hHMQ+ZGq5vrERg9kJBo5AWGmxZDhzDo+WVIJqkB0cGA== dependencies: copy-anything "^4" -supertest@7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/supertest/-/supertest-7.2.2.tgz#dac3ee25a2aa59942a7f641e50c838a7c8819204" - integrity sha512-oK8WG9diS3DlhdUkcFn4tkNIiIbBx9lI2ClF8K+b2/m8Eyv47LSawxUzZQSNKUrVb2KsqeTDCcjAAVPYaSLVTA== +supertest@7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/supertest/-/supertest-7.3.1.tgz#8d82b957b3d058cbae2db0e56d0e9173f76928ff" + integrity sha512-vNaNCFoCR/edDbErQZp5KLNT8R4dSPHX7rlDLoE8hWLAm/878j6ShMbe8HK/E6RwwuhlSXVelXAIg9AxR5WWPw== dependencies: cookie-signature "^1.2.2" methods "^1.1.2" @@ -15390,16 +15402,21 @@ tiny-invariant@^1.0.0: resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.3.tgz#46680b7a873a0d5d10005995eb90a70d74d60127" integrity sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg== -tinybench@6.1.4: - version "6.1.4" - resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-6.1.4.tgz#f855bb3ad1f2fe85cf624490d58bb4f4f5d30da8" - integrity sha512-9APumHG7r4yOk4X4WlkmE71aZcv1gvin1czO3OQ1U9iJcFA5Ja/ygyb0vPOVHTthFozUYs8CLoLUlM8grb2lTQ== +tinybench@^6.1.4: + version "6.2.0" + resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-6.2.0.tgz#392834d90f72567ee35330b4bc8f58e62e9e1d4d" + integrity sha512-78U2TlB2CnVenajOFzf3BKSm0J6oz5L0NV7g32LCPccvYc0lbWvys4d3uUUCS2B1N8PAf2+aekR8i1KbC3HO7Q== -tinyexec@1.3.0, tinyexec@^1.0.1: +tinyexec@^1.0.1: version "1.3.0" resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-1.3.0.tgz#aacc1dbb1d4e93e6ad8dd64944e09f9ad147a474" integrity sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ== +tinyexec@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-1.3.1.tgz#16a2e3c6e23fafce72640e678e651db36145b9c6" + integrity sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA== + tinyglobby@^0.2.13, tinyglobby@^0.2.15: version "0.2.15" resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.15.tgz#e228dd1e638cea993d2fdb4fcd2d4602a79951c2" @@ -15473,6 +15490,13 @@ tr46@^6.0.0: dependencies: punycode "^2.3.1" +tr46@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-7.0.0.tgz#af39140d4a8860868de4e16477a4a946bda03a62" + integrity sha512-BcDSDW+SIGWVOns1Zm6Yg91q9AEj7eaID0QDY9oIqJD1A8dscNwMcl9Sms2DeuWCNov1X0/oXanHGYQBSLwZsg== + dependencies: + punycode "^2.3.1" + tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" @@ -15503,10 +15527,10 @@ ts-essentials@^10.2.1: resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-10.2.1.tgz#f16288c2a43d0b09a080f29b4dc7fdfa7b5e6091" integrity sha512-+Id1fRkuir+CsgK2x04/icS2b4V1hQmq7ObzIrDjhN0ozfRYivnP7aaKMVJfLApQm0trjR39A6NIMVchiB9Erw== -ts-jest@29.4.12: - version "29.4.12" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.4.12.tgz#c34cd91f02d364e9286d2c016843315fd0efff76" - integrity sha512-Ov6ClY53Fflh6BGAnY2DlTq1hYDrTycz2PVTXBWFW2CU+9zrEqAp9fWdGXl42EXO5RLSFAcAZ2JFKbP+zBTFfw== +ts-jest@29.4.14: + version "29.4.14" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.4.14.tgz#cb36c043df0fada861c8b604a5d514f953126180" + integrity sha512-+943G6wCX5E3VpzTQhBGBFntCmdT+QAkTvUlp03edTONFBvqskuXPhpyX16xdUotO4P5HQKyppldSWjocoltLQ== dependencies: bs-logger "^0.2.6" fast-json-stable-stringify "^2.1.0" @@ -15537,10 +15561,10 @@ ts-node@10.9.2: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tsc-alias@1.9.5: - version "1.9.5" - resolved "https://registry.yarnpkg.com/tsc-alias/-/tsc-alias-1.9.5.tgz#7397c4f534ceb365ec7a4b62ca56eef46e052e5b" - integrity sha512-B2M3D2Fsb8dPT04Jc52R2Erp9u7QUjXpjb648dvKb0esKVmo0CC28KFe98sFkjmnY36D+PFqnAE/UDbHGbV+mA== +tsc-alias@1.9.7: + version "1.9.7" + resolved "https://registry.yarnpkg.com/tsc-alias/-/tsc-alias-1.9.7.tgz#4fae88e4d3634dcd35d358757641efc860e40b3f" + integrity sha512-nGOOLMkaociegx2Y9J1lnbqrledf1EfSq3Ds4H4CLySG5RyD58KrR4ahFIAgpeMVJz4BIhJND3ETt02o9zKQAw== dependencies: chokidar "^3.5.3" commander "^9.0.0" @@ -15597,10 +15621,10 @@ type-fest@^4.41.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.41.0.tgz#6ae1c8e5731273c2bf1f58ad39cbae2c91a46c58" integrity sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA== -type-fest@^5.8.0: - version "5.8.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-5.8.0.tgz#6d517998257c33159db4d4da6f18efa33bd47df3" - integrity sha512-YGYEVz3Fm5iy/AybuA0oyNFq7H4CgQNfRp/qfe8nurE1kuCeNm3/vfm9X4Mtl+qLyaKJUh5xrFZwogr41SMjYA== +type-fest@^5.10.0: + version "5.10.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-5.10.0.tgz#bf0131fdf662889c94c409d37402e364fb2016f7" + integrity sha512-NoSdpq/WEiAg5sjmBkmV/hfxv6HJH4NqPNrqjtSO5CwRmpsDfaf4begxW34KdJykH/l1yHtwBWQkCRdoXO8mPA== dependencies: tagged-tag "^1.0.0" @@ -15725,7 +15749,7 @@ undici@^7.12.0, undici@^7.25.0: resolved "https://registry.yarnpkg.com/undici/-/undici-7.30.0.tgz#64a947266eb7e21dbeac8b99f8720feef308bbe0" integrity sha512-dkrQXeHSaoamnItlYbmzG0wFYrM0ZwDxCIg0A7aKjTyyhh9svRzCNFEzV+Vm05/yehjCzjDZ31KXfGEjYSztDQ== -undici@^8.10.2: +undici@^8.11.2: version "8.11.2" resolved "https://registry.yarnpkg.com/undici/-/undici-8.11.2.tgz#b8f6f6504384ae535c8e46f8403fd8075f011d46" integrity sha512-u4UB2/IrKdU6lFxumHmmo1a3fCQO5tzQllRorfoRS63txhrB7xTpSn1PftwC4qEHkOaqP95fCWW4lJzwErwzhQ== @@ -16051,15 +16075,15 @@ vinyl@^3.0.0, vinyl@^3.0.1: replace-ext "^2.0.0" teex "^1.0.1" -vite@8.3.1: - version "8.3.1" - resolved "https://registry.yarnpkg.com/vite/-/vite-8.3.1.tgz#aa1099a4ccaf104a8c32492951497fa1781d9fce" - integrity sha512-/bvH9E9tmCXRGp2uXY3WbOldqpTwFkbha/8ANaEQ6VkxhH60KyqLwgZq6lG2y+4uT55x9+9eUHMpQ7uGnOCKjA== +vite@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/vite/-/vite-8.3.2.tgz#391d1e62761b343435b8e4b512e449a4f90670a3" + integrity sha512-SQr1x6W5vVSbROg7vsyXIaxK9b0G7zsT68acdWWRmnBUsgDieLCRG+Rep9WdZgcposvv/GSnr4GUUBqB3vXq6w== dependencies: lightningcss "^1.33.0" picomatch "^4.0.7" postcss "^8.5.28" - rolldown "~1.2.9" + rolldown "~1.2.11" tinyglobby "^0.2.17" optionalDependencies: fsevents "~2.3.3" @@ -16071,13 +16095,13 @@ vitest-mock-extended@5.1.1: dependencies: ts-essentials "^10.2.1" -vitest@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-5.0.1.tgz#22505b6481ed0e692b3f6d4fed179da8487d252c" - integrity sha512-iA95lQbKEkvrtTkdAgnWbXfbipWiiWe/hDl2P5tMi6WFwD76G0NxXAGp/M9EOcYupeGJRr6wppMc7CoA41TQjg== +vitest@5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-5.0.3.tgz#0d07cdc353bb0da4ff936e4471c1aa55f34c42ed" + integrity sha512-xMw97S3rjdtj5dkVat7jCsqWBpvchs3RlpQctUqwJD0KkERk40vz2fJ77lDwW/Vzh/pk18eItYAzkodhSes3jQ== dependencies: "@types/chai" "^5.2.2" - "@vitest/mocker" "5.0.1" + "@vitest/mocker" "5.0.3" chai "^6.2.2" es-module-lexer "^2.3.2" expect-type "^1.4.0" @@ -16085,10 +16109,10 @@ vitest@5.0.1: obug "^2.1.4" picomatch "^4.0.7" std-env "^4.2.0" - tinybench "6.1.4" - tinyexec "1.3.0" + tinybench "^6.1.4" + tinyexec "^1.3.0" tinyglobby "^0.2.17" - why-is-node-running "^2.3.0" + why-is-node-running "3.2.1" w3c-keyname@^2.2.0: version "2.2.8" @@ -16102,6 +16126,13 @@ w3c-xmlserializer@^5.0.0: dependencies: xml-name-validator "^5.0.0" +w3c-xmlserializer@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-6.0.0.tgz#27c0747e0091ada8cdb513c3645362e71fc50d82" + integrity sha512-4Nsy8K5Tr6SPDH9jhKJOHf7ChDrc1zufZTVSF7x72hwuEXBqxqk9G6cK+K2NRUtB3iELRJqjXb4JPDMBjMTl2Q== + dependencies: + xml-name-validator "^5.0.0" + walk-sync@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/walk-sync/-/walk-sync-2.2.0.tgz#80786b0657fcc8c0e1c0b1a042a09eae2966387a" @@ -16213,13 +16244,13 @@ whatwg-url@^16.0.0, whatwg-url@^16.0.1: tr46 "^6.0.0" webidl-conversions "^8.0.1" -whatwg-url@^17.1.1: - version "17.1.2" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-17.1.2.tgz#6b16cae400ac045d5d672af39e78b1c28e424947" - integrity sha512-TEZA+Zqxin7Jjsm2cjRohCmen5awh+hT6Zi3VZdqZlNRk7zvOI/9WpBFg/DWlA56bWnzwm6DuB8NS0EsxQH9uQ== +whatwg-url@^17.1.2, whatwg-url@^17.2.0: + version "17.2.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-17.2.0.tgz#8f9c121df5006111de3a3541241d2dbaf1c544e9" + integrity sha512-IhLIHNcBrzIixC5XXsbr4DxdjajyA5vQ5RwGZMtrUp+GbtE5Nrsge9QKau7jXrC0aTXLYGV0xiW7Tb4YS2aomw== dependencies: - "@exodus/bytes" "^1.15.1" - tr46 "^6.0.0" + "@exodus/bytes" "^1.16.0" + tr46 "^7.0.0" webidl-conversions "^8.0.1" whatwg-url@^5.0.0: @@ -16306,13 +16337,10 @@ which@^2.0.1, which@^2.0.2: dependencies: isexe "^2.0.0" -why-is-node-running@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-2.3.0.tgz#a3f69a97107f494b3cdc3bdddd883a7d65cebf04" - integrity sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w== - dependencies: - siginfo "^2.0.0" - stackback "0.0.2" +why-is-node-running@3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-3.2.1.tgz#f66f0d61f861e4d3965a7ad63645a953f550830c" + integrity sha512-Tb2FUhB4vUsGQlfSquQLYkApkuPAFQXGFzxWKHHumVz2dK+X1RUm/HnID4+TfIGYJ1kTcwOaCk/buYCEJr6YjQ== wicked-good-xpath@1.3.0: version "1.3.0" @@ -16634,10 +16662,10 @@ yargs@^17.7.2: y18n "^5.0.5" yargs-parser "^21.1.1" -yjs@*, yjs@13.6.32, yjs@^13.6.27: - version "13.6.32" - resolved "https://registry.yarnpkg.com/yjs/-/yjs-13.6.32.tgz#859dca48d7b2665c6f4b7a4481e97b72ab29e7b2" - integrity sha512-lfiJIIC4Xayt5ItynE407ehlE03pCjeOc4hkR4yxxvvNJ4kuiN25B0g+Qp8XagYz361LLL7DCzR5bvFJ81QKtQ== +yjs@*, yjs@13.6.33, yjs@^13.6.27: + version "13.6.33" + resolved "https://registry.yarnpkg.com/yjs/-/yjs-13.6.33.tgz#da54bb9a6463a694ae35e5ed085f718cfe96f138" + integrity sha512-q/UYvr1gOk4XII+Cu1CW2dINjYqJJFifTzogEaIARznrvX7uOlHsdTEXcnOBMuIsrCGEEKdNxi74kyMLZlKVfw== dependencies: lib0 "^0.2.99" diff --git a/src/helm/impress/Chart.yaml b/src/helm/impress/Chart.yaml index 31aea3643b..0b389d0a04 100644 --- a/src/helm/impress/Chart.yaml +++ b/src/helm/impress/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 type: application name: docs -version: 6.0.0-alpha.2 +version: 6.0.0 appVersion: latest diff --git a/src/mail/package.json b/src/mail/package.json index cdb686b637..a5ffe9789b 100644 --- a/src/mail/package.json +++ b/src/mail/package.json @@ -1,6 +1,6 @@ { "name": "mail_mjml", - "version": "5.7.0", + "version": "6.0.0", "description": "An util to generate html and text django's templates from mjml templates", "type": "module", "dependencies": { diff --git a/src/yhub-server/Dockerfile b/src/yhub-server/Dockerfile index 7ceda9e4c9..422c94a170 100644 --- a/src/yhub-server/Dockerfile +++ b/src/yhub-server/Dockerfile @@ -1,5 +1,12 @@ -# trixie for glibc >= 2.38 — uws prebuilt binaries reject bookworm's 2.36 -FROM node:22-trixie AS base +# trixie for glibc >= 2.38 — uws prebuilt binaries reject bookworm's 2.36. +# slim: the full image ships compilers, imagemagick, mariadb... that the server +# never uses and that the vulnerability scan of the CI reports. +FROM node:22-trixie-slim AS base + +# Upgrade system packages to install security updates +RUN apt-get update && \ + apt-get upgrade -y && \ + rm -rf /var/lib/apt/lists/* WORKDIR /app @@ -48,7 +55,13 @@ RUN yarn build # ---- Production image ---- FROM base AS yhub -RUN yarn install --frozen-lockfile --production +# the cache is cleaned in the same layer: it keeps a copy of every package of +# the lockfile, the development ones included +RUN yarn install --frozen-lockfile --production && \ + yarn cache clean + +# npm is not needed at runtime and bundles its own, rarely updated, dependencies +RUN rm -rf /usr/local/bin/npm /usr/local/bin/npx /usr/local/lib/node_modules/npm COPY --from=yhub-builder /app/dist ./dist diff --git a/src/yhub-server/README.md b/src/yhub-server/README.md index 473e2bc75d..a746c19b79 100644 --- a/src/yhub-server/README.md +++ b/src/yhub-server/README.md @@ -584,11 +584,19 @@ already includes it, so a fresh checkout needs nothing extra; an upgrade is ## Deletion -The content of a document lives here, so deleting one in Docs has to be said -here too — otherwise the clients already connected keep editing it and the -content outlives the document. The backend does that from -`sync_service_deletions_in_cascade`, which walks the deleted subtree and tells -this server what became of each of its documents. +A soft deletion in Docs is no longer reported to this server: the room stays +alive, its access re-checks — the backend answers read-only for a deleted +document — keep it so for everyone, and the reset of connections the deletion +queues (`reset_service_connections_on_commit`) closes the clients still +connected with edit rights. Tombstoning the room here would make the document +unreachable from the editor, which the trashbin and the restore feature need. + +The routes below remain what they are: `delete_ydoc` still reports the +documents deleted for good from the database (`delete_service_documents`) and +the duplicates of a failed duplication, and `restore_ydoc` is the safety net +the backend's restoration walk (`sync_service_restorations_in_cascade`) keeps +running: nothing tombstones the room of a soft-deleted document anymore, and +only this call lifts a tombstone laid out of band. Deleting is `DELETE /collaboration/ydoc/v1/{org}/{docid}`, built into yhub 0.6.0. It is a **soft** deletion: the deletion is recorded, the clients editing @@ -601,7 +609,9 @@ Restoring is the custom `POST /collaboration/restore-ydoc/v1/{org}/{docid}` above: yhub 0.6.0 has no built-in route for it. The content was never touched, so the document comes back with its whole history. Restoring one that is not deleted answers 200 and changes nothing, which is what lets the backend restore -a subtree without asking what became of each document in it. +a subtree without asking what became of each document in it — and what lets the +restoration walk skip the documents that stay deleted, instead of tombstoning +them. Erasing the content for good is a third operation (`YHub.deleteDoc(docRef, { hard: true })`). yhub 0.8 exposes it over REST as `DELETE .../ydoc?hard=true`, diff --git a/src/yhub-server/package.json b/src/yhub-server/package.json index e8a79d7d0d..0ba03afc8a 100644 --- a/src/yhub-server/package.json +++ b/src/yhub-server/package.json @@ -1,5 +1,6 @@ { "name": "yhub-server", + "version": "6.0.0", "private": true, "type": "module", "scripts": { @@ -13,7 +14,7 @@ "test:watch": "vitest" }, "dependencies": { - "@aws-sdk/client-s3": "3.1136.0", + "@aws-sdk/client-s3": "3.1146.0", "@sentry/node": "10.75.0", "@sentry/profiling-node": "10.75.0", "@y/hub": "0.9.0", @@ -24,13 +25,13 @@ "devDependencies": { "@eslint/js": "10.0.1", "@types/node": "24.13.6", - "eslint": "10.11.0", + "eslint": "10.12.0", "eslint-config-prettier": "10.1.8", "nodemon": "3.1.14", "typescript": "6.0.3", - "typescript-eslint": "8.70.0", - "vite": "8.3.1", - "vitest": "5.0.1" + "typescript-eslint": "8.71.0", + "vite": "8.3.2", + "vitest": "5.0.3" }, "engines": { "node": ">=22" diff --git a/src/yhub-server/yarn.lock b/src/yhub-server/yarn.lock index 8e75a92e8b..9dba7f8183 100644 --- a/src/yhub-server/yarn.lock +++ b/src/yhub-server/yarn.lock @@ -2,7 +2,7 @@ # yarn lockfile v1 -"@aws-sdk/checksums@^3.1001.0": +"@aws-sdk/checksums@^3.1001.1": version "3.1001.1" resolved "https://registry.yarnpkg.com/@aws-sdk/checksums/-/checksums-3.1001.1.tgz#b6c42737c673e3904ead8c83ad5d79c377d746f4" integrity sha512-x12Q17KYlJAd3nKf8LV5LV0vt8sh8/6YfQLGPtrGnQf/tW4jqxPGq5GPpuVitpQYM3eUR4XB7CbxZf751NMbLw== @@ -13,24 +13,24 @@ "@smithy/types" "^4.19.0" tslib "^2.6.2" -"@aws-sdk/client-s3@3.1136.0": - version "3.1136.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.1136.0.tgz#9f17fe9d0e4362053d3a984f5f4fbe19586f3427" - integrity sha512-1FUvu6nuUi3y9VjQAYootkfWKQqZ8aT8wZoV5I0bpeMkGVgntYpJ11xLicGotGE6E1qtLXB+GdOJM9B+OQYWDA== - dependencies: - "@aws-sdk/checksums" "^3.1001.0" - "@aws-sdk/core" "^3.978.0" - "@aws-sdk/credential-provider-node" "^3.972.83" - "@aws-sdk/middleware-sdk-s3" "^3.972.76" - "@aws-sdk/signature-v4-multi-region" "^3.996.46" - "@aws-sdk/types" "^3.974.5" - "@smithy/core" "^3.33.3" - "@smithy/fetch-http-handler" "^5.7.2" - "@smithy/node-http-handler" "^4.11.3" - "@smithy/types" "^4.17.2" +"@aws-sdk/client-s3@3.1146.0": + version "3.1146.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.1146.0.tgz#40294d678aa29824bc6e77077fa4d2bd0fbeda01" + integrity sha512-WY0YCBzxc4muFfY6UbGpA+oib0nGT/Px2aEPGYX7pp1la2OmDLChnK81mu8H7LdYvwGU1pLAsLIa/qgad0Wd7g== + dependencies: + "@aws-sdk/checksums" "^3.1001.1" + "@aws-sdk/core" "^3.978.1" + "@aws-sdk/credential-provider-node" "^3.972.84" + "@aws-sdk/middleware-sdk-s3" "^3.972.77" + "@aws-sdk/signature-v4-multi-region" "^3.996.47" + "@aws-sdk/types" "^3.974.6" + "@smithy/core" "^3.35.0" + "@smithy/fetch-http-handler" "^5.8.0" + "@smithy/node-http-handler" "^4.12.1" + "@smithy/types" "^4.19.0" tslib "^2.6.2" -"@aws-sdk/core@^3.978.0", "@aws-sdk/core@^3.978.1": +"@aws-sdk/core@^3.978.1": version "3.978.1" resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.978.1.tgz#1e4db18f9c450e0aba550edfee4c6897e09af879" integrity sha512-LbY9aGsEiznDWmUc30Nwv3aIX/+dbwTx8KfS0yOC3NPYMO+O91e6jkT1azf34FwjOndq8/Q+RcVVZz5xnerwdg== @@ -99,7 +99,7 @@ "@smithy/types" "^4.19.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-node@^3.972.83": +"@aws-sdk/credential-provider-node@^3.972.84": version "3.972.84" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.84.tgz#226bc8d9110d0562dc895e609ec54b4bc8f68155" integrity sha512-oHt854odINVwzwsh+c5x69j0ajm4DbqqqVJ+O1ECsCIZeMDAbzFpXItaqP7UZstJj/ATdTk/KFSH0LaNAgV+kA== @@ -152,7 +152,7 @@ "@smithy/types" "^4.19.0" tslib "^2.6.2" -"@aws-sdk/middleware-sdk-s3@^3.972.76": +"@aws-sdk/middleware-sdk-s3@^3.972.77": version "3.972.77" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.972.77.tgz#f1006f029292db2658dbec0d175b66f6c2427523" integrity sha512-E7W2UOeUoc+lg3uIfR/dM7ZwusHwhBQrKMnlkRv4EXRR+C0YtV1pg25xC7GdZIhXH+NAMgZPCbE7o5to2cjFiw== @@ -178,16 +178,6 @@ "@smithy/types" "^4.19.0" tslib "^2.6.2" -"@aws-sdk/signature-v4-multi-region@^3.996.46": - version "3.996.46" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.46.tgz#ee57afe5282da4b57968061ef8706d32890267ab" - integrity sha512-L+2xZTye/2T96f3lwCws0Zw6GG2JHZW9e8FpVgGBeeExSKyeoZ6CWRpBml/7DNiK/O26jrgPM9F+Ay8VkgzUWQ== - dependencies: - "@aws-sdk/types" "^3.974.5" - "@smithy/signature-v4" "^5.6.12" - "@smithy/types" "^4.17.2" - tslib "^2.6.2" - "@aws-sdk/signature-v4-multi-region@^3.996.47": version "3.996.47" resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.47.tgz#4a707c1d5b43ea242897c393b03f8583fcfbb8ab" @@ -210,14 +200,6 @@ "@smithy/types" "^4.19.0" tslib "^2.6.2" -"@aws-sdk/types@^3.974.5": - version "3.974.5" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.974.5.tgz#a52691531738d191b8b3fd1ae7757c2eeec7afee" - integrity sha512-LkwLL2BLbC6wNNm4JaH9mbEqBMdOZCct6VAYqhdN4U1xrWM+fUJQEfbHwQgDypapOWTRtlk25akb5afM0P8CIQ== - dependencies: - "@smithy/types" "^4.17.2" - tslib "^2.6.2" - "@aws-sdk/types@^3.974.6": version "3.974.6" resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.974.6.tgz#e388d89a012ce70e60fef26174562f99285b1e95" @@ -437,10 +419,10 @@ resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.43.0.tgz#f3f467e36c27332f0e735ec86cdcd78dd6f27865" integrity sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg== -"@oxc-project/types@=0.151.0": - version "0.151.0" - resolved "https://registry.yarnpkg.com/@oxc-project/types/-/types-0.151.0.tgz#37206ed3fdebb8c4c5fc49ae20d53d9b4eed2bfe" - integrity sha512-J1yXrIlNDZVzE3ada310xeAw7nH8yCAyLPuUIsjKatFPmfn5bS1oW+cM+QsGOtVWd5nhSpbwZWx/rue+r5Z+PA== +"@oxc-project/types@=0.152.0": + version "0.152.0" + resolved "https://registry.yarnpkg.com/@oxc-project/types/-/types-0.152.0.tgz#643ff80ce7aacea025f859f13b60cbb42ae0a613" + integrity sha512-oM/5rLBm2tPkg0iBgkH/FOeR3PCDpY19GTgAZjMFM8h9WI9VW7cLgzp6nwtarYKmovavIQZ+Fe/RKX/8C8O/Rw== "@pinojs/redact@^0.4.0": version "0.4.0" @@ -474,80 +456,80 @@ resolved "https://registry.yarnpkg.com/@redis/time-series/-/time-series-5.12.1.tgz#15b6deaaf3716bc2633311c0ed18201c9299392d" integrity sha512-c6JL6E3EcZJuNqKFz+KM+l9l5mpcQiKvTwgA3blt5glWJ8hjDk0yeHN3beE/MpqYIQ8UEX44ItQzgkE/gCBELQ== -"@rolldown/binding-android-arm-eabi@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm-eabi/-/binding-android-arm-eabi-1.2.11.tgz#898b1c0c0c4de1ffb5997050a705f04cc102b4eb" - integrity sha512-A5kXfGKvKWWZE0TtPrfsvT+q4Y5d1QG8gGUzpYjGydM+fARM9MuX90PrXYXe0XbsDVgyxxNzHo6giCj90bsFNw== - -"@rolldown/binding-android-arm64@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.11.tgz#bf8ee88baaecd1747326d6c1d05ebdad483edc34" - integrity sha512-z6cTycz+iJ4PVkuL4HHW4DfTfoeU/2nqYYuSOrTmH7yHK5Y0LCOnA03V4ZNxavyVaU1oOqUgIg2klN/s+USGOA== - -"@rolldown/binding-darwin-arm64@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.11.tgz#4ebc103da1e0d6b24d815c1fb1d6af73245c1b1f" - integrity sha512-jShvqNtP6vDC6/A5JOAzbVV+DkgHqhl/ScVCJEbt+TUY6QYz7YnXcrg3sLtFBniro0f/Ld50ZwCWA6f7KYD1nQ== - -"@rolldown/binding-darwin-x64@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.11.tgz#ab669b448eb2cd2366a7ff01a84579a0f854f5f0" - integrity sha512-f2i2xiNWq1Z1l2++q2fuhZRdLAT3aqxD6vRNm1RAxpUoBcdqNB3C0s1Bt+K+PbEx2F5F4gQp6hqKkphCY/xF9w== - -"@rolldown/binding-freebsd-x64@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.11.tgz#74c26ec877c293c47c8958ab58e07e57f9382070" - integrity sha512-4Ir5FSOKIAMr4r0kExpt1s3bMgzJU3rA45AYOHtQpls0oNeqcYBKrWMlckrYH4KCfGLfkfn1tN1dmZPMVsdXow== - -"@rolldown/binding-linux-arm-gnueabihf@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.11.tgz#cbfe844867d7dbce1655c9b593be05bcaffb501d" - integrity sha512-/gnRDM+39BROzAN/k1OZjDPnDMcZxB/0EUxKjONO5yVkNEvlsoMDrxGNKgZi/ttFriS2gwlDNzB65pvNbFOXIQ== - -"@rolldown/binding-linux-arm64-gnu@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.11.tgz#2028ebac4a3f56b26ecd02f8850c74447087cbb2" - integrity sha512-PFaK8HwvAHbaKbBcDNQihjMKYvFnA5hiENx/l5tphTDz1E0WFp32l0A7aq7lyUwGsRw/xSrNIy/gIK4thrSCrw== - -"@rolldown/binding-linux-arm64-musl@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.11.tgz#a143325f96d5d5040dff50e292374f7467e7c82c" - integrity sha512-AskzJUIKRLPxkruR1wLKewGbOw+EYfU/9lOrBFj4AFrEA8hPpKFnODWNu2WLaNs0QNkEb9QIJufmVZZIL/bJlg== - -"@rolldown/binding-linux-ppc64-gnu@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.11.tgz#b38937ad8b4821682e3671ebfb609cb0e3ecb935" - integrity sha512-qlUGAheh2yh8afH7QBgx0PrRHN85hKnNd78x8MeMhXivuevgd8vgf6/CstOzmNKY/lLTHvNTrPy98cLnAugzJw== - -"@rolldown/binding-linux-s390x-gnu@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.11.tgz#6be2645a1ad89185e8d03f69116798c94eae19ec" - integrity sha512-secpEad+0vCbSfn8upFySkDskv+bGPk3THSDS9Y89yc4rb4kzqHp8Dmyd9BkQW4SnhNXBZCl/6CrO//hZahNJQ== - -"@rolldown/binding-linux-x64-gnu@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.11.tgz#fbc9a6a6c3b3db00e35573c67894bfbaa3128040" - integrity sha512-mOVBT3dPpkWm8XBWPmU4bf+U6dYDLeMo/9ojUmis4N0L5uu10qra5vOyngZ7/PSdoE4G9KvRt4bloRxNjLas7A== - -"@rolldown/binding-linux-x64-musl@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.11.tgz#f3f07a30c03d1d3a673b21fd4eaba84979aa4fd4" - integrity sha512-Is78i9A8Ui4SqcxUwFJ9uMmjDn58IbVTjFWYdQestFEgeuEmHMLGNriXnVJKkwG2YiZjw8cP0zCTyDMdDGtOOg== - -"@rolldown/binding-openharmony-arm64@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.11.tgz#c3848c61dd3b15edde9c98dfa8d50edb356ec71f" - integrity sha512-dUCXneZ87INUMyQ0D+C0HrEBNUPNXHaPmU5GTjyKTJEiussw9Kaj5Ln8UztPe4epV/ffvgNBEadksdYhmW6xJA== - -"@rolldown/binding-win32-arm64-msvc@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.11.tgz#99d9f7eb53b26f09212d646e9f50708a2f14414f" - integrity sha512-jByxb6qfd+bH1xUd0qnfFnb17i9sWBPY2tOavJ0l3tdr3OTu+Kvtm8cd/JV5nFt657b1VqGltxg9olOEfofXWw== - -"@rolldown/binding-win32-x64-msvc@1.2.11": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.11.tgz#c7bf663043c01021f63122a8499e9aca36408467" - integrity sha512-/PzKqzAJ03i19oy2ItPvyvaVjOjBCNnfaJs8yvUdGBKmiESgnrJSQ2awd81QzFbbnAmu7YO9ZnJrDCb9VSJPRA== +"@rolldown/binding-android-arm-eabi@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm-eabi/-/binding-android-arm-eabi-1.2.12.tgz#efba4353480c76804606f106c9ac01f0ddfa7d13" + integrity sha512-dB/a1214qKfHMXCpgqR4OZT+jS4kTyEXbQGJPqzobt5EwH5rX080pxE37alt3RzvR1bf1Yz/yGqRfrYAxuPw0A== + +"@rolldown/binding-android-arm64@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.12.tgz#6255422c39c2b45ee44b0286df902b9481f76ecb" + integrity sha512-7KHFgQ5VJxIHcLlrwrc3Xbds7oTNQT7Pgi9gQCJKrd2VGab/UksIOYp6VD8MzCstGxOKMgNamPwUCfxPdP1OHg== + +"@rolldown/binding-darwin-arm64@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.12.tgz#2d7d153d657f5ee4d44abb752ae7d64cac049ca5" + integrity sha512-3YIhqHD96nA5SaYNRBR16HnGv4oavZvXfD/ayHM+oYZ0WD/8lBAtf6zQua4kEyAvpqrluKXl0lnOBoiNby7x9w== + +"@rolldown/binding-darwin-x64@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.12.tgz#7ddc83ecef05fb28f1174e5be3eb4ae5307faedf" + integrity sha512-UuuJ35MFw4gmFOrE9pEqIV+K3syIKveph+Qc1/ljHZVdoDW4pz/JHR/eMVom+TZGl/5OOvGJOWaOCVt3ZfqhxA== + +"@rolldown/binding-freebsd-x64@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.12.tgz#9e68e57cc3a1c5ea363129234fd5dcc8537606dd" + integrity sha512-uMvssit0a4W+/7D8CbHUvG719mH3R2jwXAlh/XcPvuHTE0g++LymF88DCGNX0HM2rBOn0xrzgXktIB6fLSJBTQ== + +"@rolldown/binding-linux-arm-gnueabihf@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.12.tgz#335b4f2cbf8c8a2d1016f79feeb0187c578f5f7a" + integrity sha512-XcFu0R0xWnwzSf4IQgFH1rJIckPN1pLy2R+4r9IDB7Yfu/ys9cVqfa4pBrMHj7a3gl8mIR4nRNPg0e5IvEVs6g== + +"@rolldown/binding-linux-arm64-gnu@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.12.tgz#759fc27992583653f87dc447b4be02b4ddd0d1b4" + integrity sha512-260UrKgn8tz39ak+SMDOirKzr7V04M9dWPw5llW00SwBivCZoWcRBKV1d8cXnRkUmSZA3BdiUmBHWk7734Ulpw== + +"@rolldown/binding-linux-arm64-musl@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.12.tgz#e1f3094429a874cb76e2c7735759d333ad8f6791" + integrity sha512-5YK1I9SqDkbPgc1IA8BgDl34suqUS2q0KWnBrirm0E51YjOs6eo6dV6jbQfNE/argHRSvd0QUGgtpIoYx+WWpw== + +"@rolldown/binding-linux-ppc64-gnu@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.12.tgz#0ca361ac97774403dd5fe5976a363eb9c2139dc5" + integrity sha512-Rkcrmp7eFRg74yL5fXEU91JEWbdEPLevWwGtXpmhbjlD1StScbWTmO94Bhly+Mo+ketKYkdmM1vNUKeWSlx8cQ== + +"@rolldown/binding-linux-s390x-gnu@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.12.tgz#e40fb19c56e99197aec91ecb02756ebd378a347c" + integrity sha512-qvK4DuAsQc2BSjlx+Xr+IzOIvvxbGZqxFwdWfG6F518Erj0GGISyQbJ6pIappnOxlNPzNHvo/L0BwB30GZ+zVw== + +"@rolldown/binding-linux-x64-gnu@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.12.tgz#215aeb601d0daaf5d28582c1f2e967c775a6c70a" + integrity sha512-Q9uLBO53Xd4QIq1WOycVQyPP1O4HhraEV2qqb3uTrnVw6QZih9duY4vNXOivL1xoUS1/z+W8eF4NMfl2a8Sdjw== + +"@rolldown/binding-linux-x64-musl@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.12.tgz#90905cdd1ab12242d72de38b7ec9aa826a9ee17c" + integrity sha512-3IBxWFMjbOZskDPKv8Lf9BCnahlKuHthWkYnyIxOH/QcJrFcS4EmcenthApkwr/5+nEqZlLzeYbxeMaX7A5u4g== + +"@rolldown/binding-openharmony-arm64@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.12.tgz#e6868debd9202c476786f0995ca8250f3f647972" + integrity sha512-xtX61xg4LKPkPWilZU1ynKClz5Gj4bf74LML4r3eVLWumKnGjoEr1OSHQhMdbBDoYTi+yjrujvpZe2pUnqCrrA== + +"@rolldown/binding-win32-arm64-msvc@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.12.tgz#a335ae382cbf3b282c3a6fe620fe4f4a0e25dfda" + integrity sha512-At7fPB6PCaIjzgIhEZFxuT+BBFqiQibJDT4d3PhiR3f4E7bbMZF4aKblbFfEM3sETRDd1YiQx/+U/g/B/ou5Ew== + +"@rolldown/binding-win32-x64-msvc@1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.12.tgz#55d6f9c288aa220f758310c39c31aa1c4d309830" + integrity sha512-WIw2haVKwjuYdXkHaoC0mF8Le71TuCBxjrdKqLbJGctbBABj+ClfmNvtbOnzpq3RokNo5+V1qhtSzJyXorsklQ== "@rolldown/pluginutils@^1.0.0": version "1.0.1" @@ -649,7 +631,7 @@ "@smithy/types" "^4.17.2" tslib "^2.6.2" -"@smithy/fetch-http-handler@^5.7.2", "@smithy/fetch-http-handler@^5.8.0": +"@smithy/fetch-http-handler@^5.8.0": version "5.8.0" resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-5.8.0.tgz#349464e31682d739a74efa42362756be49eb2883" integrity sha512-ycSJu3tFAQ4v04CBB0agqFMVsSQ1iG3yw+SpgxRqKfaURpQD4CZ8Wn0zPMmSnOuTpTh65Vz+EA0rMrw089wvkA== @@ -658,7 +640,7 @@ "@smithy/types" "^4.18.0" tslib "^2.6.2" -"@smithy/node-http-handler@^4.11.3", "@smithy/node-http-handler@^4.12.1": +"@smithy/node-http-handler@^4.12.1": version "4.12.1" resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-4.12.1.tgz#e4da9379d228517ba85845081e4e6758ca315c5d" integrity sha512-ThMkboGeONWXAelq9FvGsuJC4rOi+qyC4/zhUF58xYpxUg5sQKx2VXZYJmtNjr4dSuBJ1HeJXETQILCz3wOHvw== @@ -667,15 +649,6 @@ "@smithy/types" "^4.18.0" tslib "^2.6.2" -"@smithy/signature-v4@^5.6.12": - version "5.7.3" - resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-5.7.3.tgz#76603bf1ac9aa44e1d2f4f358b0cc0cf84961e46" - integrity sha512-7ImGm+FkHRLcBaRttIAMZ6bzJZWb2cJGoYjq46F2UjycujWzrL9GEN9h4w7eQyXJYnltrUhxbbieBAIRrdqpow== - dependencies: - "@smithy/core" "^3.33.3" - "@smithy/types" "^4.17.2" - tslib "^2.6.2" - "@smithy/signature-v4@^5.7.3": version "5.7.4" resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-5.7.4.tgz#f188be5238ddb5c5b3117f6fb75d36a38f8b033f" @@ -734,126 +707,116 @@ dependencies: undici-types "~7.18.0" -"@typescript-eslint/eslint-plugin@8.70.0": - version "8.70.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.70.0.tgz#59f635c74dd1e2bffb6aecbda557b24dadffd3dc" - integrity sha512-/v8HZt6RlyIZxB3ntehELOcUcfxKPVGWXnQdJuHRmzrqgF8nQypcC/oxGW+Ot4VGKDq81XugPKxx0n5PBtf9PA== +"@typescript-eslint/eslint-plugin@8.71.0": + version "8.71.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.71.0.tgz#99f474391c3e54bfcb73b1934ea2dba6d6a59bef" + integrity sha512-pqcS9c1HxZTHt7End4nXqd0s5lJrrFzrgCkKFJrsbUnaL6M3+6oBFZaslg6Gjsl3argl2DDRFROnXARaZ2e4Nw== dependencies: "@eslint-community/regexpp" "^4.12.2" - "@typescript-eslint/scope-manager" "8.70.0" - "@typescript-eslint/type-utils" "8.70.0" - "@typescript-eslint/utils" "8.70.0" - "@typescript-eslint/visitor-keys" "8.70.0" + "@typescript-eslint/scope-manager" "8.71.0" + "@typescript-eslint/type-utils" "8.71.0" + "@typescript-eslint/utils" "8.71.0" + "@typescript-eslint/visitor-keys" "8.71.0" ignore "^7.0.5" natural-compare "^1.4.0" ts-api-utils "^2.5.0" -"@typescript-eslint/parser@8.70.0": - version "8.70.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.70.0.tgz#96ce2de96c06c8442fea1a8f7b07855a56b3c5e3" - integrity sha512-zYvrmj9Yxd63UGaXw+kdt6A0F0s0qveJyuatIM77bYC2DE4pgmg7a50u8LR7PRtXd0x+h+Tl3eXabGm06SWd3Q== +"@typescript-eslint/parser@8.71.0": + version "8.71.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.71.0.tgz#e1ecf4ff47f91c90fa11866b2190ee072d5a14af" + integrity sha512-CG4nPk1f2zc8yw4pALqHsFYH2hdo+h1T9daSp21+Hnxi9LOE3GT9hAfTKJCBXVNM2GmYs1eMEP615wPoeOgk3A== dependencies: - "@typescript-eslint/scope-manager" "8.70.0" - "@typescript-eslint/types" "8.70.0" - "@typescript-eslint/typescript-estree" "8.70.0" - "@typescript-eslint/visitor-keys" "8.70.0" + "@typescript-eslint/scope-manager" "8.71.0" + "@typescript-eslint/types" "8.71.0" + "@typescript-eslint/typescript-estree" "8.71.0" + "@typescript-eslint/visitor-keys" "8.71.0" debug "^4.4.3" -"@typescript-eslint/project-service@8.70.0": - version "8.70.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.70.0.tgz#a62e837362f26c604ad15b20bacce1c3f4d6b552" - integrity sha512-hFHbTNqhU9G+2eKFXCBVb1tjFT/LceiJ4+HfLO4pTpDI0KHi6iajpcFFkaSQ9gXmCh7n82A0PthaayEdN6mspQ== +"@typescript-eslint/project-service@8.71.0": + version "8.71.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.71.0.tgz#8408b60210e2f49ddf3cdb25c985df272a35461f" + integrity sha512-aABjw5rjBacYONVPaPiWOCjJu0vEF4a25iQuodlmQYL1trtLZ0X/y+2Vzl3BKI1odM4LnwLE1oUDXYp1wzx1TQ== dependencies: - "@typescript-eslint/tsconfig-utils" "^8.70.0" - "@typescript-eslint/types" "^8.70.0" + "@typescript-eslint/tsconfig-utils" "^8.71.0" + "@typescript-eslint/types" "^8.71.0" debug "^4.4.3" -"@typescript-eslint/scope-manager@8.70.0": - version "8.70.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.70.0.tgz#b77628b03c9c56ef21fb5a6bc2f4a4335163b999" - integrity sha512-8nP3Kwh5hlgZ4FicGvmznAmJe8UL4sdU8tLukrPaMuQmDuk4Y8xYfzu/aYZW4xT2JCgc7H/TpDI5cGlxcWJSqQ== +"@typescript-eslint/scope-manager@8.71.0": + version "8.71.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.71.0.tgz#4a5a637b272d13d8755d5b5024099826eb4fc688" + integrity sha512-gWF0BhUcnjZxSpLE8ngS/59n2SB0J3YqRxvX1+2aoRJk9hNtHSLOV+TcarFiOr5ipXm3yc1QrI4c9YZc8zyCxw== dependencies: - "@typescript-eslint/types" "8.70.0" - "@typescript-eslint/visitor-keys" "8.70.0" + "@typescript-eslint/types" "8.71.0" + "@typescript-eslint/visitor-keys" "8.71.0" -"@typescript-eslint/tsconfig-utils@8.70.0": - version "8.70.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.70.0.tgz#f583ca72159c4fd8e775c153da3241de6b77974f" - integrity sha512-adnkeeNq9Sq1sUf4+FRVc0KdgYghzsgFpZSQVZVvY0LCuUuN0FnQgyGzCJeC4fW1cdXseBAjU2EOqUIjbNcZUw== +"@typescript-eslint/tsconfig-utils@8.71.0", "@typescript-eslint/tsconfig-utils@^8.71.0": + version "8.71.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.71.0.tgz#83a69c9a514af8f5ff099cc6c0d609c273e8f039" + integrity sha512-Z1UlWHADEK2Mlb9NpWfDeSjqoZ5EyrOv4R3eQpbkzqn/EwaIdOpXXupEA1+0ZIOSJSZZDBHG0BrQyN8zUG6Pwg== -"@typescript-eslint/tsconfig-utils@^8.70.0": - version "8.70.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.70.1.tgz#e9353a6e5f3498a29b40946ca3e11f6166fef09e" - integrity sha512-jumze1fPI+sDOaM2TWGQdn39PDxTr7TZGeuyLkAbNyx2vtMT3uRnVKChN0hfht5V2TugphJzF6bYXvBcE09qqg== - -"@typescript-eslint/type-utils@8.70.0": - version "8.70.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.70.0.tgz#7f9c01c24e56bfad2a089167926c7cdded9de5f6" - integrity sha512-NUMKIhYVaVIVLnRL9CRt+VVcuLgSHUCpXn4/+K8wql+vdInUzvx8BjUO1oJ7cG9shjFJKtF8F8Hh2kCh3/KBVw== +"@typescript-eslint/type-utils@8.71.0": + version "8.71.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.71.0.tgz#eab342370b18ae8ad39c031e3878bddabc1d254b" + integrity sha512-i8uO1qbdxeKgRnS5sCRt6On3/nfo2d2DwQe3Yvjx543zLy7r8ySqRuPPiIIXAhS03U0v5NfAFx+rUgxFzKKwNw== dependencies: - "@typescript-eslint/types" "8.70.0" - "@typescript-eslint/typescript-estree" "8.70.0" - "@typescript-eslint/utils" "8.70.0" + "@typescript-eslint/types" "8.71.0" + "@typescript-eslint/typescript-estree" "8.71.0" + "@typescript-eslint/utils" "8.71.0" debug "^4.4.3" ts-api-utils "^2.5.0" -"@typescript-eslint/types@8.70.0": - version "8.70.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.70.0.tgz#9ee52888cdeca604fe9436935219b967fa7f6053" - integrity sha512-asTOIYhDg4zdzOScCyaytrsV3cR6B4ecPQlXw/dJIm7J/MZTtCtfVII9JD8Geh4jTCrK/Xe6cg5UevoleMcoJQ== - -"@typescript-eslint/types@^8.70.0": - version "8.70.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.70.1.tgz#2022b9d07d057174eba25b9bbd289641d262a196" - integrity sha512-Dm1ypdhhrGCTyyehxElhgJ6kgk8MVCv5qXdoOVqPr1uqk42jX8KjrZqhROvdShczA8qrDoYiOWn1ykWlx2k81Q== - -"@typescript-eslint/typescript-estree@8.70.0": - version "8.70.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.70.0.tgz#79cfcd9678ee28ea69cc13032c0f89bb1d298917" - integrity sha512-d9NmHMPEKQ7QCLLm1jI3zmoQBwT5KwFYjXBJ9ymZfKCUU+5rmTRykKAFvH5Qn/ZCds3CEAFS9OC9M/jkl0X2bA== - dependencies: - "@typescript-eslint/project-service" "8.70.0" - "@typescript-eslint/tsconfig-utils" "8.70.0" - "@typescript-eslint/types" "8.70.0" - "@typescript-eslint/visitor-keys" "8.70.0" +"@typescript-eslint/types@8.71.0", "@typescript-eslint/types@^8.71.0": + version "8.71.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.71.0.tgz#a230a121e71665060afe27d1f1ad110371f9451e" + integrity sha512-cJ4OoxPGWvFnBTnSZyaU+qJzGTqPTGJY+gDchj6cRyLRdmIdt4rcsE4twj+zPfrNiWuVi38wijHzShL++Z9atQ== + +"@typescript-eslint/typescript-estree@8.71.0": + version "8.71.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.71.0.tgz#78127ef7d5dad7f036ad065235a0fb92a3e02340" + integrity sha512-PEEF4G5sLLWAS5BpPrUvms4ySZkiBQQZM4z+3ReI46axK5Vqr/vXBQatJQIZZOYdGyPUAKTtsrWzpqKuU+3DEw== + dependencies: + "@typescript-eslint/project-service" "8.71.0" + "@typescript-eslint/tsconfig-utils" "8.71.0" + "@typescript-eslint/types" "8.71.0" + "@typescript-eslint/visitor-keys" "8.71.0" debug "^4.4.3" minimatch "^10.2.2" semver "^7.7.3" tinyglobby "^0.2.15" ts-api-utils "^2.5.0" -"@typescript-eslint/utils@8.70.0": - version "8.70.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.70.0.tgz#78a78b4c52dd8523e5321993cb46ebe6d7934510" - integrity sha512-oZmtKJz/4fufZ2p3+Cn3ijEojcdfR+1zYDH2xKYrEly0dR/Q/1xUPRCOlKGxod78nWlU2UnDe09GZ3TaknBFGA== +"@typescript-eslint/utils@8.71.0": + version "8.71.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.71.0.tgz#4e7923ae1083e941c6fefabf4b978ffecc48ecb0" + integrity sha512-pKR/tEMVrXZG23UFKUn5BQf3zfmfk7KQceI2cGzywZ5nxM5Eu3hEJU1utjWzydtzBbcJAQhHN8iPCxobHpPcZQ== dependencies: "@eslint-community/eslint-utils" "^4.9.1" - "@typescript-eslint/scope-manager" "8.70.0" - "@typescript-eslint/types" "8.70.0" - "@typescript-eslint/typescript-estree" "8.70.0" + "@typescript-eslint/scope-manager" "8.71.0" + "@typescript-eslint/types" "8.71.0" + "@typescript-eslint/typescript-estree" "8.71.0" -"@typescript-eslint/visitor-keys@8.70.0": - version "8.70.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.70.0.tgz#b451c8aea76dc97fc768b8d9d7f61019bf789628" - integrity sha512-BoC8PiO4Hkdo0TVJh9Ntxr5MxPDI7/oFsrygN5ADelFSeXG/qgNuucIGA+L5Z6JpPTE/uRfcTWtscjbUaufepQ== +"@typescript-eslint/visitor-keys@8.71.0": + version "8.71.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.71.0.tgz#8ca9a12bc5083b9a090c3ea4e5d9ef97f6558199" + integrity sha512-8eQ9R218XORK+KLosnf4bu/QsUXvUyVwTbArg7/0NMB1Pu87OJKvj4nhFblkYE8gQV73mW1dx1ptlPCkwRGa7A== dependencies: - "@typescript-eslint/types" "8.70.0" + "@typescript-eslint/types" "8.71.0" eslint-visitor-keys "^5.0.0" -"@vitest/mocker@5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-5.0.1.tgz#e1ca450ac67a57638e79b08481797793700a09f2" - integrity sha512-6K1DoBNAPGvuOcSsGA4D6x+5zEEff/KmOOP3uetT2TrGpVfI+HRHRnJJfKi5ib/g1vx8IYHQD8s0pbJz8WQI7Q== +"@vitest/mocker@5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-5.0.3.tgz#58666c76660c445c215dd6301fd8704f4550cb58" + integrity sha512-T8sWAIbkSyAjkwTcaEc3Iu0o9A27X1/kdXrizhZkGuSKScRQtRzclfAMpOTcGdXCsqxeWlpGy3XjqaW8CpLORg== dependencies: "@jridgewell/trace-mapping" "0.3.31" - "@vitest/spy" "5.0.1" + "@vitest/spy" "5.0.3" estree-walker "^3.0.3" magic-string "^1.2.3" -"@vitest/spy@5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-5.0.1.tgz#6dac40afd5620613c8d344542d3c30e8e20e32dd" - integrity sha512-rbto/mF/SGERxEgYOek7Xm6B9b+y+mVoo+f4b2LymYO8zM1b7uB5nHuhVMTP2hxdzgxvGiZYGxGIaMvL5y180Q== +"@vitest/spy@5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-5.0.3.tgz#9f1024c35e0bb5ab54169da00b5b743e061f72b4" + integrity sha512-XhFysQTB8AZ+P4gMi+Lpo99vg2AZi0qKpaB9yXQl37+CaMEAPO3iH/wGVnSyL5MPERiLezpqTVtrR6UZH5GCXg== "@y-crdt/yn@^0.1.4": version "0.1.4" @@ -1100,10 +1063,10 @@ eslint-visitor-keys@^5.0.0, eslint-visitor-keys@^5.0.1: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz#9e3c9489697824d2d4ce3a8ad12628f91e9f59be" integrity sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA== -eslint@10.11.0: - version "10.11.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-10.11.0.tgz#304d1591b7c6a327e3f64b4f550f99fda160ae20" - integrity sha512-P7a6UEEqb9G95MYAtqkmsTbVXIYyzIfl6NGOIJk162PaahFxFyeGcrlXYFSiagECg4sEm8IseJdZBKR3rx6MsQ== +eslint@10.12.0: + version "10.12.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-10.12.0.tgz#4f2f7e679bdce9d71438c2900f2c8d4d297332b0" + integrity sha512-npHjrHb2o4ehH3mE+YuxABR+0gyb0aVWCIolgJDArwCiHEIsonBm3ZKjel5b0U5+a+MbEvIyRCGCzD3eKKK2NA== dependencies: "@eslint-community/eslint-utils" "^4.8.0" "@eslint-community/regexpp" "^4.12.2" @@ -1799,29 +1762,29 @@ require-in-the-middle@^8.0.0: debug "^4.3.5" module-details-from-path "^1.0.3" -rolldown@~1.2.9: - version "1.2.11" - resolved "https://registry.yarnpkg.com/rolldown/-/rolldown-1.2.11.tgz#89c4e07d9098b88fe0b023de59d63a6216e9285c" - integrity sha512-qpSwIyz0jHQq5qXBTNxFmE6664rJ7O+4TvPFOiOaBSrz8IOHc1koKKSqTM2H6u1UG1+TveuC6vaDHKXFOvb1Kw== +rolldown@~1.2.11: + version "1.2.12" + resolved "https://registry.yarnpkg.com/rolldown/-/rolldown-1.2.12.tgz#75215a6b55a2a9e8f577ac937a4fe42d9682ae0c" + integrity sha512-8wafseiaG80xmXSfqidUNqZcylTlhmPZZt+za2m+js2sFZ8dTNlhIOV2WcbIPx2hgwPBJpEUGFAMZ9bgBBLTSQ== dependencies: - "@oxc-project/types" "=0.151.0" + "@oxc-project/types" "=0.152.0" "@rolldown/pluginutils" "^1.0.0" optionalDependencies: - "@rolldown/binding-android-arm-eabi" "1.2.11" - "@rolldown/binding-android-arm64" "1.2.11" - "@rolldown/binding-darwin-arm64" "1.2.11" - "@rolldown/binding-darwin-x64" "1.2.11" - "@rolldown/binding-freebsd-x64" "1.2.11" - "@rolldown/binding-linux-arm-gnueabihf" "1.2.11" - "@rolldown/binding-linux-arm64-gnu" "1.2.11" - "@rolldown/binding-linux-arm64-musl" "1.2.11" - "@rolldown/binding-linux-ppc64-gnu" "1.2.11" - "@rolldown/binding-linux-s390x-gnu" "1.2.11" - "@rolldown/binding-linux-x64-gnu" "1.2.11" - "@rolldown/binding-linux-x64-musl" "1.2.11" - "@rolldown/binding-openharmony-arm64" "1.2.11" - "@rolldown/binding-win32-arm64-msvc" "1.2.11" - "@rolldown/binding-win32-x64-msvc" "1.2.11" + "@rolldown/binding-android-arm-eabi" "1.2.12" + "@rolldown/binding-android-arm64" "1.2.12" + "@rolldown/binding-darwin-arm64" "1.2.12" + "@rolldown/binding-darwin-x64" "1.2.12" + "@rolldown/binding-freebsd-x64" "1.2.12" + "@rolldown/binding-linux-arm-gnueabihf" "1.2.12" + "@rolldown/binding-linux-arm64-gnu" "1.2.12" + "@rolldown/binding-linux-arm64-musl" "1.2.12" + "@rolldown/binding-linux-ppc64-gnu" "1.2.12" + "@rolldown/binding-linux-s390x-gnu" "1.2.12" + "@rolldown/binding-linux-x64-gnu" "1.2.12" + "@rolldown/binding-linux-x64-musl" "1.2.12" + "@rolldown/binding-openharmony-arm64" "1.2.12" + "@rolldown/binding-win32-arm64-msvc" "1.2.12" + "@rolldown/binding-win32-x64-msvc" "1.2.12" safe-buffer@~5.2.0: version "5.2.1" @@ -1855,11 +1818,6 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -siginfo@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" - integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== - simple-update-notifier@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz#d70b92bdab7d6d90dfd73931195a30b6e3d7cebb" @@ -1889,11 +1847,6 @@ split2@^4.0.0: resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== -stackback@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b" - integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== - std-env@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/std-env/-/std-env-4.2.0.tgz#8ebe0ec60485668ab47227b312f4254cdf80c9d3" @@ -1958,15 +1911,15 @@ through2@^4.0.2: dependencies: readable-stream "3" -tinybench@6.1.4: - version "6.1.4" - resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-6.1.4.tgz#f855bb3ad1f2fe85cf624490d58bb4f4f5d30da8" - integrity sha512-9APumHG7r4yOk4X4WlkmE71aZcv1gvin1czO3OQ1U9iJcFA5Ja/ygyb0vPOVHTthFozUYs8CLoLUlM8grb2lTQ== +tinybench@^6.1.4: + version "6.2.0" + resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-6.2.0.tgz#392834d90f72567ee35330b4bc8f58e62e9e1d4d" + integrity sha512-78U2TlB2CnVenajOFzf3BKSm0J6oz5L0NV7g32LCPccvYc0lbWvys4d3uUUCS2B1N8PAf2+aekR8i1KbC3HO7Q== -tinyexec@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-1.3.0.tgz#aacc1dbb1d4e93e6ad8dd64944e09f9ad147a474" - integrity sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ== +tinyexec@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-1.3.1.tgz#16a2e3c6e23fafce72640e678e651db36145b9c6" + integrity sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA== tinyglobby@^0.2.15, tinyglobby@^0.2.17: version "0.2.17" @@ -2005,15 +1958,15 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -typescript-eslint@8.70.0: - version "8.70.0" - resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.70.0.tgz#6c90c532079132ba7d4a386bf0882c56d82fe5af" - integrity sha512-P/W5cz70/cQAuKfY3xwQMWWTV7BvJ0mAQmi+9mBcsVPaBUpd6Ohpa+fECv9rBFrQcig86jAiNBFNWUqnTjr4pw== +typescript-eslint@8.71.0: + version "8.71.0" + resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.71.0.tgz#4d7d8e9939bc12f20690ebf99367b50a02f9ece9" + integrity sha512-fBdHYiqQ14RW6mOMXD14Svn82ZsCYAoQSzGRzyEjR59S5A2Krh/l7fGTOQ7iCr8gGy/mHVXtEF7s5fgjEdV0Pw== dependencies: - "@typescript-eslint/eslint-plugin" "8.70.0" - "@typescript-eslint/parser" "8.70.0" - "@typescript-eslint/typescript-estree" "8.70.0" - "@typescript-eslint/utils" "8.70.0" + "@typescript-eslint/eslint-plugin" "8.71.0" + "@typescript-eslint/parser" "8.71.0" + "@typescript-eslint/typescript-estree" "8.71.0" + "@typescript-eslint/utils" "8.71.0" typescript@6.0.3: version "6.0.3" @@ -2046,26 +1999,26 @@ util-deprecate@^1.0.1: version "20.69.0" resolved "https://codeload.github.com/uNetworking/uWebSockets.js/tar.gz/dddd8ffd1b2c28a66022160923ca92f064cdacb4" -vite@8.3.1: - version "8.3.1" - resolved "https://registry.yarnpkg.com/vite/-/vite-8.3.1.tgz#aa1099a4ccaf104a8c32492951497fa1781d9fce" - integrity sha512-/bvH9E9tmCXRGp2uXY3WbOldqpTwFkbha/8ANaEQ6VkxhH60KyqLwgZq6lG2y+4uT55x9+9eUHMpQ7uGnOCKjA== +vite@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/vite/-/vite-8.3.2.tgz#391d1e62761b343435b8e4b512e449a4f90670a3" + integrity sha512-SQr1x6W5vVSbROg7vsyXIaxK9b0G7zsT68acdWWRmnBUsgDieLCRG+Rep9WdZgcposvv/GSnr4GUUBqB3vXq6w== dependencies: lightningcss "^1.33.0" picomatch "^4.0.7" postcss "^8.5.28" - rolldown "~1.2.9" + rolldown "~1.2.11" tinyglobby "^0.2.17" optionalDependencies: fsevents "~2.3.3" -vitest@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-5.0.1.tgz#22505b6481ed0e692b3f6d4fed179da8487d252c" - integrity sha512-iA95lQbKEkvrtTkdAgnWbXfbipWiiWe/hDl2P5tMi6WFwD76G0NxXAGp/M9EOcYupeGJRr6wppMc7CoA41TQjg== +vitest@5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-5.0.3.tgz#0d07cdc353bb0da4ff936e4471c1aa55f34c42ed" + integrity sha512-xMw97S3rjdtj5dkVat7jCsqWBpvchs3RlpQctUqwJD0KkERk40vz2fJ77lDwW/Vzh/pk18eItYAzkodhSes3jQ== dependencies: "@types/chai" "^5.2.2" - "@vitest/mocker" "5.0.1" + "@vitest/mocker" "5.0.3" chai "^6.2.2" es-module-lexer "^2.3.2" expect-type "^1.4.0" @@ -2073,10 +2026,10 @@ vitest@5.0.1: obug "^2.1.4" picomatch "^4.0.7" std-env "^4.2.0" - tinybench "6.1.4" - tinyexec "1.3.0" + tinybench "^6.1.4" + tinyexec "^1.3.0" tinyglobby "^0.2.17" - why-is-node-running "^2.3.0" + why-is-node-running "3.2.1" which@^2.0.1: version "2.0.2" @@ -2085,13 +2038,10 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -why-is-node-running@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-2.3.0.tgz#a3f69a97107f494b3cdc3bdddd883a7d65cebf04" - integrity sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w== - dependencies: - siginfo "^2.0.0" - stackback "0.0.2" +why-is-node-running@3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-3.2.1.tgz#f66f0d61f861e4d3965a7ad63645a953f550830c" + integrity sha512-Tb2FUhB4vUsGQlfSquQLYkApkuPAFQXGFzxWKHHumVz2dK+X1RUm/HnID4+TfIGYJ1kTcwOaCk/buYCEJr6YjQ== word-wrap@^1.2.5: version "1.2.5"