diff --git a/mflix/client/package.json b/mflix/client/package.json
index 2151fee..552c14c 100644
--- a/mflix/client/package.json
+++ b/mflix/client/package.json
@@ -12,17 +12,17 @@
"lint": "eslint"
},
"dependencies": {
- "react": "19.2.0",
- "react-dom": "19.2.0",
- "next": "16.1.5"
+ "next": "^16.1.6",
+ "react": "^19.2.4",
+ "react-dom": "^19.2.4"
},
"devDependencies": {
- "typescript": "^5",
+ "@eslint/eslintrc": "^3",
"@types/node": "^20",
"@types/react": "^19",
"@types/react-dom": "^19",
"eslint": "^9",
- "eslint-config-next": "16.1.5",
- "@eslint/eslintrc": "^3"
+ "eslint-config-next": "^16.1.6",
+ "typescript": "^5"
}
}
diff --git a/mflix/server/java-spring/pom.xml b/mflix/server/java-spring/pom.xml
index baff5c0..a7b3ae8 100644
--- a/mflix/server/java-spring/pom.xml
+++ b/mflix/server/java-spring/pom.xml
@@ -21,11 +21,11 @@
21
2.8.13
- 4.0.0
- 3.19.0
- 1.12.0
+ 5.1.0
+ 3.20.0
+ 1.13.0
1.17.8
- 1.0.0-beta3
+ 1.11.0-beta19
@@ -50,7 +50,7 @@
me.paulschwarz
- spring-dotenv
+ springboot3-dotenv
${dotenv.version}
diff --git a/mflix/server/js-express/package.json b/mflix/server/js-express/package.json
index 85f09a2..ae1e7d3 100644
--- a/mflix/server/js-express/package.json
+++ b/mflix/server/js-express/package.json
@@ -19,26 +19,26 @@
"test:silent": "jest --silent"
},
"dependencies": {
- "cors": "^2.8.5",
- "dotenv": "^17.2.3",
- "express": "^5.1.0",
- "mongodb": "^7.0.0",
+ "cors": "^2.8.6",
+ "dotenv": "^17.2.4",
+ "express": "^5.2.1",
+ "mongodb": "^7.1.0",
"swagger-jsdoc": "^6.2.8",
"swagger-ui-express": "^5.0.1",
"winston": "^3.19.0"
},
"devDependencies": {
- "@types/cors": "^2.8.17",
- "@types/express": "^4.17.21",
- "@types/jest": "^29.5.14",
- "@types/node": "^20.10.5",
+ "@types/cors": "^2.8.19",
+ "@types/express": "^5.0.6",
+ "@types/jest": "^30.0.0",
+ "@types/node": "^25.2.2",
"@types/supertest": "^6.0.3",
"@types/swagger-jsdoc": "^6.0.4",
"@types/swagger-ui-express": "^4.1.8",
- "jest": "^29.7.0",
- "supertest": "^7.1.4",
- "ts-jest": "^29.1.1",
+ "jest": "^30.2.0",
+ "supertest": "^7.2.2",
+ "ts-jest": "^29.4.6",
"ts-node": "^10.9.2",
- "typescript": "^5.3.3"
+ "typescript": "^5.9.3"
}
}
diff --git a/mflix/server/js-express/src/controllers/movieController.ts b/mflix/server/js-express/src/controllers/movieController.ts
index 26801e4..a4e516b 100644
--- a/mflix/server/js-express/src/controllers/movieController.ts
+++ b/mflix/server/js-express/src/controllers/movieController.ts
@@ -172,8 +172,8 @@ export async function getDistinctGenres(
export async function getMovieById(req: Request, res: Response): Promise {
const { id } = req.params;
- // Validate ObjectId format
- if (!ObjectId.isValid(id)) {
+ // Validate id is a string and ObjectId format
+ if (typeof id !== "string" || !ObjectId.isValid(id)) {
res
.status(400)
.json(
@@ -305,8 +305,8 @@ export async function updateMovie(req: Request, res: Response): Promise {
const { id } = req.params;
const updateData: UpdateMovieRequest = req.body;
- // Validate ObjectId format
- if (!ObjectId.isValid(id)) {
+ // Validate id is a string and ObjectId format
+ if (typeof id !== "string" || !ObjectId.isValid(id)) {
res
.status(400)
.json(
@@ -426,8 +426,8 @@ export async function updateMoviesBatch(
export async function deleteMovie(req: Request, res: Response): Promise {
const { id } = req.params;
- // Validate ObjectId format
- if (!ObjectId.isValid(id)) {
+ // Validate id is a string and ObjectId format
+ if (typeof id !== "string" || !ObjectId.isValid(id)) {
res
.status(400)
.json(
@@ -521,8 +521,8 @@ export async function findAndDeleteMovie(
): Promise {
const { id } = req.params;
- // Validate ObjectId format
- if (!ObjectId.isValid(id)) {
+ // Validate id is a string and ObjectId format
+ if (typeof id !== "string" || !ObjectId.isValid(id)) {
res
.status(400)
.json(
diff --git a/mflix/server/python-fastapi/requirements.in b/mflix/server/python-fastapi/requirements.in
index a54f67e..c50a667 100644
--- a/mflix/server/python-fastapi/requirements.in
+++ b/mflix/server/python-fastapi/requirements.in
@@ -2,21 +2,21 @@
# 1. CORE WEB FRAMEWORK & ASGI SERVER
# FastAPI and its main components.
# ------------------------------------------------------------------------------
-fastapi~=0.120.1 # The main web framework
-starlette~=0.49.1 # FastAPI's underlying ASGI toolkit
+fastapi~=0.120.4 # The main web framework
+starlette~=0.49.3 # FastAPI's underlying ASGI toolkit
uvicorn~=0.38.0 # Production-ready ASGI server
-uvloop~=0.22.0 # Optional: High-performance event loop for uvicorn
-websockets~=15.0.0 # For WebSocket support
-watchfiles~=1.1.0 # For hot-reloading in development
+uvloop~=0.22.1 # Optional: High-performance event loop for uvicorn
+websockets~=15.0.1 # For WebSocket support
+watchfiles~=1.1.1 # For hot-reloading in development
# ==============================================================================
# 2. DATA VALIDATION & CORE UTILITIES
# Primary libraries for data models and environment config.
# ------------------------------------------------------------------------------
-pydantic~=2.12.0 # Data validation and settings management
-python-dotenv~=1.1.0 # For loading configuration from .env files
+pydantic~=2.12.5 # Data validation and settings management
+python-dotenv~=1.1.1 # For loading configuration from .env files
python-multipart>=0.0.22 # For parsing form data and file uploads
-PyYAML~=6.0.0 # For handling YAML configuration or data
+PyYAML~=6.0.3 # For handling YAML configuration or data
# ==============================================================================
# 3. DATABASE & CONNECTIVITY
@@ -29,33 +29,33 @@ dnspython~=2.8.0 # Required for SRV record lookups by pymongo (e.g., Mong
# 4. HTTP CLIENT & UTILITIES
# Primary libraries for making external HTTP requests.
# ------------------------------------------------------------------------------
-httpx~=0.28.0 # Asynchronous HTTP client for requests to external APIs
+httpx~=0.28.1 # Asynchronous HTTP client for requests to external APIs
email-validator~=2.3.0 # Utility for validating email addresses
-voyageai~=0.3.5 # Vector embeddings API client
+voyageai~=0.3.7 # Vector embeddings API client
urllib3>=2.6.3 # HTTP library
# ==============================================================================
# 5. CLI & DEVELOPMENT TOOLS
# Tools for building command-line interfaces for management tasks.
# ------------------------------------------------------------------------------
-typer~=0.20.0 # Library for creating command-line applications
-fastapi-cli~=0.0.0 # Tools to run and manage FastAPI projects
-fastapi-cloud-cli~=0.3.0 # Tools for cloud deployment (specific to your pipeline)
+typer~=0.20.1 # Library for creating command-line applications
+fastapi-cli~=0.0.20 # Tools to run and manage FastAPI projects
+fastapi-cloud-cli~=0.3.1 # Tools for cloud deployment (specific to your pipeline)
# ==============================================================================
# 6. TESTING & MONITORING
# Frameworks for ensuring code quality and production health.
# ------------------------------------------------------------------------------
-pytest~=8.4.0 # Primary testing framework
+pytest~=8.4.2 # Primary testing framework
pytest-asyncio~=1.2.0 # Plugin to make asynchronous tests easy with pytest
-sentry-sdk~=2.42.0 # For error tracking and performance monitoring
+sentry-sdk~=2.42.1 # For error tracking and performance monitoring
# ==============================================================================
# 7. LOGGING AND TERMINAL OUTPUT
# Libraries for rich console output and debugging.
# ------------------------------------------------------------------------------
rich~=14.2.0 # For rich, formatted terminal output
-rich-toolkit~=0.15.0 # Extensions for the 'rich' library
+rich-toolkit~=0.15.1 # Extensions for the 'rich' library
# ==============================================================================
# 8. TRANSITIVE DEPENDENCY CONSTRAINTS
@@ -63,4 +63,4 @@ rich-toolkit~=0.15.0 # Extensions for the 'rich' library
# ------------------------------------------------------------------------------
filelock>=3.20.3 # Transitive dep via huggingface-hub
aiohttp>=3.13.3 # Transitive dep via voyageai
-orjson>=3.11.5 # Transitive dep via langsmith (CVE fix)
+orjson>=3.11.7 # Transitive dep via langsmith (CVE fix)
diff --git a/mflix/server/python-fastapi/requirements.txt b/mflix/server/python-fastapi/requirements.txt
index 3113cb3..29e4311 100644
--- a/mflix/server/python-fastapi/requirements.txt
+++ b/mflix/server/python-fastapi/requirements.txt
@@ -2,7 +2,7 @@
# This file is autogenerated by pip-compile with Python 3.13
# by the following command:
#
-# pip-compile --output-file=requirements.txt requirements.in
+# pip-compile requirements.in
#
aiohappyeyeballs==2.6.1
# via aiohttp
@@ -14,18 +14,18 @@ aiolimiter==1.2.1
# via voyageai
aiosignal==1.4.0
# via aiohttp
-annotated-doc==0.0.3
+annotated-doc==0.0.4
# via fastapi
annotated-types==0.7.0
# via pydantic
-anyio==4.11.0
+anyio==4.12.1
# via
# httpx
# starlette
# watchfiles
attrs==25.4.0
# via aiohttp
-certifi==2025.10.5
+certifi==2026.1.4
# via
# httpcore
# httpx
@@ -33,7 +33,7 @@ certifi==2025.10.5
# sentry-sdk
charset-normalizer==3.4.4
# via requests
-click==8.3.0
+click==8.3.1
# via
# rich-toolkit
# typer
@@ -48,12 +48,14 @@ email-validator==2.3.0
# via
# -r requirements.in
# pydantic
-fastapi==0.120.2
+fastapi==0.120.4
# via -r requirements.in
-fastapi-cli==0.0.14
+fastapi-cli==0.0.20
# via -r requirements.in
fastapi-cloud-cli==0.3.1
# via -r requirements.in
+ffmpeg-python==0.2.0
+ # via voyageai
filelock==3.20.3
# via
# -r requirements.in
@@ -62,8 +64,10 @@ frozenlist==1.8.0
# via
# aiohttp
# aiosignal
-fsspec==2025.10.0
+fsspec==2026.2.0
# via huggingface-hub
+future==1.0.0
+ # via ffmpeg-python
h11==0.16.0
# via
# httpcore
@@ -80,7 +84,7 @@ httpx==0.28.1
# fastapi-cloud-cli
# huggingface-hub
# langsmith
-huggingface-hub==1.0.1
+huggingface-hub==1.4.1
# via tokenizers
idna==3.11
# via
@@ -95,33 +99,33 @@ jsonpatch==1.33
# via langchain-core
jsonpointer==3.0.0
# via jsonpatch
-langchain-core==1.2.5
+langchain-core==1.2.9
# via langchain-text-splitters
-langchain-text-splitters==1.0.0
+langchain-text-splitters==1.1.0
# via voyageai
-langsmith==0.4.40
+langsmith==0.6.9
# via langchain-core
markdown-it-py==4.0.0
# via rich
mdurl==0.1.2
# via markdown-it-py
-multidict==6.7.0
+multidict==6.7.1
# via
# aiohttp
# yarl
-numpy==2.3.4
+numpy==2.4.2
# via voyageai
-orjson==3.11.5
+orjson==3.11.7
# via
# -r requirements.in
# langsmith
-packaging==25.0
+packaging==26.0
# via
# huggingface-hub
# langchain-core
# langsmith
# pytest
-pillow==12.0.0
+pillow==12.1.0
# via voyageai
pluggy==1.6.0
# via pytest
@@ -129,7 +133,7 @@ propcache==0.4.1
# via
# aiohttp
# yarl
-pydantic[email]==2.12.3
+pydantic[email]==2.12.5
# via
# -r requirements.in
# fastapi
@@ -137,7 +141,7 @@ pydantic[email]==2.12.3
# langchain-core
# langsmith
# voyageai
-pydantic-core==2.41.4
+pydantic-core==2.41.5
# via pydantic
pygments==2.19.2
# via
@@ -180,7 +184,7 @@ rich-toolkit==0.15.1
# -r requirements.in
# fastapi-cli
# fastapi-cloud-cli
-rignore==0.7.1
+rignore==0.7.6
# via fastapi-cloud-cli
sentry-sdk==2.42.1
# via
@@ -190,26 +194,24 @@ shellingham==1.5.4
# via
# huggingface-hub
# typer
-sniffio==1.3.1
- # via anyio
-starlette==0.49.1
+starlette==0.49.3
# via
# -r requirements.in
# fastapi
-tenacity==9.1.2
+tenacity==9.1.3
# via
# langchain-core
# voyageai
-tokenizers==0.22.1
+tokenizers==0.22.2
# via voyageai
-tqdm==4.67.1
+tqdm==4.67.3
# via huggingface-hub
-typer==0.20.0
+typer==0.20.1
# via
# -r requirements.in
# fastapi-cli
# fastapi-cloud-cli
-typer-slim==0.20.0
+typer-slim==0.21.1
# via huggingface-hub
typing-extensions==4.15.0
# via
@@ -229,8 +231,10 @@ urllib3==2.6.3
# -r requirements.in
# requests
# sentry-sdk
-uuid-utils==0.12.0
- # via langchain-core
+uuid-utils==0.14.0
+ # via
+ # langchain-core
+ # langsmith
uvicorn[standard]==0.38.0
# via
# -r requirements.in
@@ -240,7 +244,7 @@ uvloop==0.22.1
# via
# -r requirements.in
# uvicorn
-voyageai==0.3.5
+voyageai==0.3.7
# via -r requirements.in
watchfiles==1.1.1
# via
@@ -250,6 +254,8 @@ websockets==15.0.1
# via
# -r requirements.in
# uvicorn
+xxhash==3.6.0
+ # via langsmith
yarl==1.22.0
# via aiohttp
zstandard==0.25.0