diff --git a/docs/de/index.md b/docs/de/index.md index a44f193..3de4713 100644 --- a/docs/de/index.md +++ b/docs/de/index.md @@ -1,5 +1,5 @@

- FastAPI-fastkit + FastAPI-fastkit

FastAPI-fastkit: schnelles, einfach zu nutzendes Starter-Kit für Neulinge in Python und FastAPI diff --git a/docs/en/index.md b/docs/en/index.md index 2e80b9b..c93ae4b 100644 --- a/docs/en/index.md +++ b/docs/en/index.md @@ -1,5 +1,5 @@

- FastAPI-fastkit + FastAPI-fastkit

FastAPI-fastkit: Fast, easy-to-use starter kit for new users of Python and FastAPI diff --git a/docs/es/index.md b/docs/es/index.md index 193f813..1d695c4 100644 --- a/docs/es/index.md +++ b/docs/es/index.md @@ -1,5 +1,5 @@

- FastAPI-fastkit + FastAPI-fastkit

FastAPI-fastkit: kit de inicio rápido y fácil de usar para nuevos usuarios de Python y FastAPI diff --git a/docs/fr/index.md b/docs/fr/index.md index c3f4304..b923d26 100644 --- a/docs/fr/index.md +++ b/docs/fr/index.md @@ -1,5 +1,5 @@

- FastAPI-fastkit + FastAPI-fastkit

FastAPI-fastkit : kit de démarrage rapide et facile à utiliser pour les nouveaux utilisateurs de Python et FastAPI diff --git a/docs/ja/index.md b/docs/ja/index.md index 31c464a..7144400 100644 --- a/docs/ja/index.md +++ b/docs/ja/index.md @@ -1,5 +1,5 @@

- FastAPI-fastkit + FastAPI-fastkit

FastAPI-fastkit: Python と FastAPI を初めて使う方のための、速くて使いやすいスターターキット diff --git a/docs/ko/index.md b/docs/ko/index.md index b56f6ff..8476033 100644 --- a/docs/ko/index.md +++ b/docs/ko/index.md @@ -1,5 +1,5 @@

- FastAPI-fastkit + FastAPI-fastkit

FastAPI-fastkit: Python과 FastAPI를 처음 접하는 분들을 위한 빠르고 쓰기 쉬운 스타터 키트 diff --git a/docs/zh/index.md b/docs/zh/index.md index 8bc2409..759a027 100644 --- a/docs/zh/index.md +++ b/docs/zh/index.md @@ -1,5 +1,5 @@

- FastAPI-fastkit + FastAPI-fastkit

FastAPI-fastkit:面向 Python 与 FastAPI 新手的快速、易用启动套件 diff --git a/pdm.lock b/pdm.lock index 35e01e1..c4501cb 100644 --- a/pdm.lock +++ b/pdm.lock @@ -5,7 +5,7 @@ groups = ["default", "dev", "docs", "translation"] strategy = ["inherit_metadata"] lock_version = "4.5.0" -content_hash = "sha256:f1a31fc9cbaa1b093f0abc420939719747239767abb6a8c3132612289dcd776f" +content_hash = "sha256:8f0df0c0e00dc1ca95ccb9f01c7e8faa87a40da560806c6bb5e767c66c71c27f" [[metadata.targets]] requires_python = ">=3.12" @@ -47,18 +47,18 @@ files = [ [[package]] name = "anyio" -version = "4.13.0" +version = "4.15.1" requires_python = ">=3.10" summary = "High-level concurrency and networking framework on top of asyncio or Trio" groups = ["translation"] dependencies = [ "exceptiongroup>=1.0.2; python_version < \"3.11\"", "idna>=2.8", - "typing-extensions>=4.5; python_version < \"3.13\"", + "typing-extensions>=4.16.0; python_version < \"3.15\"", ] files = [ - {file = "anyio-4.13.0-py3-none-any.whl", hash = "sha256:08b310f9e24a9594186fd75b4f73f4a4152069e3853f1ed8bfbf58369f4ad708"}, - {file = "anyio-4.13.0.tar.gz", hash = "sha256:334b70e641fd2221c1505b3890c69882fe4a2df910cba14d97019b90b24439dc"}, + {file = "anyio-4.15.1-py3-none-any.whl", hash = "sha256:6152fdbbf9a77fdec97731721bebf7c4c44f7c29b424b0065826173efc7ed101"}, + {file = "anyio-4.15.1.tar.gz", hash = "sha256:9f28306018cbd6d329e64a36d58256edff76dd996fe423bc957326e578b82a94"}, ] [[package]] @@ -1470,13 +1470,13 @@ files = [ [[package]] name = "typing-extensions" -version = "4.15.0" +version = "4.16.0" requires_python = ">=3.9" summary = "Backported and Experimental Type Hints for Python 3.9+" groups = ["dev", "translation"] files = [ - {file = "typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548"}, - {file = "typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466"}, + {file = "typing_extensions-4.16.0-py3-none-any.whl", hash = "sha256:481caa481374e813c1b176ada14e97f1f67a4539ce9cfeb3f350d78d6370c2e8"}, + {file = "typing_extensions-4.16.0.tar.gz", hash = "sha256:dc983d19a509c94dba722ee6abd33940f7c05a89e243c47e907eb4db6f1a43e5"}, ] [[package]] @@ -1495,13 +1495,13 @@ files = [ [[package]] name = "urllib3" -version = "2.7.0" +version = "2.8.0" requires_python = ">=3.10" summary = "HTTP library with thread-safe connection pooling, file post, and more." groups = ["docs"] files = [ - {file = "urllib3-2.7.0-py3-none-any.whl", hash = "sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897"}, - {file = "urllib3-2.7.0.tar.gz", hash = "sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c"}, + {file = "urllib3-2.8.0-py3-none-any.whl", hash = "sha256:0cf3cae568d36aa9576b28dfb35f11328f1cb974ca7647d9475ebb86c75ac6e3"}, + {file = "urllib3-2.8.0.tar.gz", hash = "sha256:63bf2ead4c879426ebf22ef2a781eeb4aa3b4ae798a0435506f8687fd5bb9b63"}, ] [[package]] diff --git a/pyproject.toml b/pyproject.toml index ba899fa..9ac36b1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -96,9 +96,11 @@ docs = [ # pygments < 2.20.0 — ReDoS in GUID regex # requests < 2.33.0 — insecure temp file reuse in extract_zipped_paths # idna < 3.15 — quadratic complexity in IDNA decoding (transitive via requests) + # urllib3 < 2.8.0 — chunked Deflate streaming infinite loop (GHSA-gh4c-6fx4-qh6g), transitive via requests "pygments>=2.20.0", "requests>=2.33.0", "idna>=3.15", + "urllib3>=2.8.0", # pymdown-extensions <= 11.0.0 — ReDoS plus two path-traversal advisories; # 10.17.2+ was already required because earlier releases crash on pygments # 2.20+ (NoneType filename passed to html.escape), see pymdown-extensions#2580. @@ -107,6 +109,8 @@ docs = [ translation = [ "openai>=2.8.1", "anthropic>=0.74.0", + # anyio < 4.14.2 — TLSStream IDNA host-name encoding allows certificate spoofing (GHSA-82r6-8w77-94w6); transitive via httpx + "anyio>=4.14.2", ] [tool.coverage.run] diff --git a/requirements-docs.txt b/requirements-docs.txt index c750349..21e0a1f 100644 --- a/requirements-docs.txt +++ b/requirements-docs.txt @@ -33,5 +33,5 @@ rcslice==1.1.0 requests==2.33.1 six==1.17.0 types-pyyaml==6.0.12.20260408 -urllib3==2.7.0 +urllib3==2.8.0 watchdog==6.0.0 diff --git a/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/pyproject.toml-tpl b/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/pyproject.toml-tpl index aec7b4f..c44a520 100644 --- a/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/pyproject.toml-tpl +++ b/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/pyproject.toml-tpl @@ -19,7 +19,7 @@ dependencies = [ "sqlmodel>=0.0.42", "SQLAlchemy>=2.0.52", "alembic>=1.19.1", - "PyJWT>=2.13.0", + "PyJWT>=2.15.1", "pwdlib[argon2]>=0.3.1", "psycopg[binary]>=3.3.5", ] diff --git a/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/requirements.txt-tpl b/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/requirements.txt-tpl index ed384fb..c99969e 100644 --- a/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/requirements.txt-tpl +++ b/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/requirements.txt-tpl @@ -12,7 +12,7 @@ SQLAlchemy==2.0.52 alembic==1.19.1 psycopg[binary]==3.3.5 # Authentication -PyJWT==2.13.0 +PyJWT==2.15.1 pwdlib[argon2]==0.3.1 # Development & tests pytest==9.1.1 diff --git a/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/pyproject.toml-tpl b/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/pyproject.toml-tpl index 1e3ab80..628a092 100644 --- a/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/pyproject.toml-tpl +++ b/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/pyproject.toml-tpl @@ -18,7 +18,7 @@ dependencies = [ "fastapi-mcp>=0.3.7,<0.4.0", "mcp>=1.29.1,<2.0.0", "pwdlib[argon2]>=0.3.1", - "PyJWT[crypto]>=2.13.0", + "PyJWT[crypto]>=2.15.1", "python-multipart>=0.0.32", ] diff --git a/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/requirements.txt-tpl b/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/requirements.txt-tpl index 20f26d8..8d79b37 100644 --- a/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/requirements.txt-tpl +++ b/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/requirements.txt-tpl @@ -40,7 +40,7 @@ pydantic==2.13.5 pydantic-core==2.46.5 pydantic-settings==2.15.0 pygments==2.21.0 -PyJWT==2.13.0 +PyJWT==2.15.1 pytest==9.1.1 pytest-cov==7.1.0 python-dotenv==1.2.3 @@ -59,7 +59,7 @@ tomli==2.4.1 typer==0.27.2 typing-extensions==4.16.0 typing-inspection==0.4.4 -urllib3==2.7.0 +urllib3==2.8.0 uvicorn==0.52.4 uvloop==0.22.1 watchfiles==1.2.0 diff --git a/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/setup.cfg-tpl b/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/setup.cfg-tpl index 1bc7329..675b9fb 100644 --- a/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/setup.cfg-tpl +++ b/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/setup.cfg-tpl @@ -29,7 +29,7 @@ install_requires = pydantic>=2.10.6 pydantic-settings>=2.7.1 python-dotenv>=1.0.1 - PyJWT[crypto]>=2.10.0 + PyJWT[crypto]>=2.15.1 pwdlib[argon2]>=0.3.1 python-multipart>=0.0.17 diff --git a/uv.lock b/uv.lock index 48d04a8..d68dfa5 100644 --- a/uv.lock +++ b/uv.lock @@ -32,16 +32,15 @@ wheels = [ [[package]] name = "anyio" -version = "4.11.0" +version = "4.14.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "idna" }, - { name = "sniffio" }, { name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c6/78/7d432127c41b50bccba979505f272c16cbcadcc33645d5fa3a738110ae75/anyio-4.11.0.tar.gz", hash = "sha256:82a8d0b81e318cc5ce71a5f1f8b5c4e63619620b63141ef8c995fa0db95a57c4", size = 219094, upload-time = "2025-09-23T09:19:12.58Z" } +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/15/b3/9b1a8074496371342ec1e796a96f99c82c945a339cd81a8e73de28b4cf9e/anyio-4.11.0-py3-none-any.whl", hash = "sha256:0287e96f4d26d4149305414d4e3bc32f0dcd0862365a4bddea19d7a1ec38c4fc", size = 109097, upload-time = "2025-09-23T09:19:10.601Z" }, + { 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]] @@ -338,9 +337,11 @@ docs = [ { name = "pyyaml" }, { name = "requests" }, { name = "types-pyyaml" }, + { name = "urllib3" }, ] translation = [ { name = "anthropic" }, + { name = "anyio" }, { name = "openai" }, ] @@ -372,9 +373,11 @@ docs = [ { name = "pyyaml", specifier = ">=6.0.3" }, { name = "requests", specifier = ">=2.33.0" }, { name = "types-pyyaml", specifier = ">=6.0.12.20250915" }, + { name = "urllib3", specifier = ">=2.8.0" }, ] translation = [ { name = "anthropic", specifier = ">=0.74.0" }, + { name = "anyio", specifier = ">=4.14.2" }, { name = "openai", specifier = ">=2.8.1" }, ] @@ -1227,11 +1230,11 @@ 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]]