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