From 369775e0390ae7d7a889c9b08035152cd743121a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?= Date: Sat, 10 Oct 2026 01:08:57 +0200 Subject: [PATCH] chore(deps): move dotenv to 18 The breaking changes in 18 do not reach this repository: nothing preloads dotenv with -r, nothing reads a .env.vault, and both entry points in use (the default export in prisma.config.ts and the side-effect dotenv/config import in the one-shot scripts) keep their behaviour. dotenv/config stays quiet by default. What does change is the load message, which now goes to stderr. Prisma reads prisma.config.ts on every migrate deploy at container start, so both loads there pass quiet: true rather than adding two stderr lines to each boot. The image's /opt/prisma-cli install, which the config resolves dotenv from, moves to the same 18.0.6. --- Dockerfile | 2 +- package.json | 2 +- pnpm-lock.yaml | 21 ++++++++++----------- prisma.config.ts | 4 ++-- scripts/__tests__/release-workflows.test.ts | 2 +- 5 files changed, 15 insertions(+), 16 deletions(-) diff --git a/Dockerfile b/Dockerfile index 20fe839da..475e51861 100644 --- a/Dockerfile +++ b/Dockerfile @@ -247,7 +247,7 @@ RUN mkdir -p /opt/prisma-cli && \ npm pkg set 'overrides.mysql2=^3.22.0' && \ npm pkg set 'overrides.@hono/node-server=^1.19.15' && \ npm pkg set 'overrides.valibot=^1.4.2' && \ - npm install --omit=dev prisma@7.10.0 @prisma/engines@7.10.0 tsx@4.23.1 dotenv@17.4.2 && \ + npm install --omit=dev prisma@7.10.0 @prisma/engines@7.10.0 tsx@4.23.1 dotenv@18.0.6 && \ ln -sfn /opt/prisma-cli/node_modules/.bin/tsx /usr/local/bin/healthlog-tsx && \ ln -sfn /opt/prisma-cli/node_modules/dotenv /app/node_modules/dotenv && \ ln -sfn /opt/prisma-cli/node_modules/prisma /app/node_modules/prisma && \ diff --git a/package.json b/package.json index b75d1c141..77a8da0aa 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "date-fns": "^4.4.0", - "dotenv": "^17.4.2", + "dotenv": "^18.0.6", "fflate": "^0.8.3", "jose": "^6.2.12", "jspdf": "^4.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 800b4ae5c..15617a681 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -102,8 +102,8 @@ importers: specifier: ^4.4.0 version: 4.4.0 dotenv: - specifier: ^17.4.2 - version: 17.4.2 + specifier: ^18.0.6 + version: 18.0.6 fflate: specifier: ^0.8.3 version: 0.8.3 @@ -2897,9 +2897,6 @@ packages: '@types/node@18.19.130': resolution: {integrity: sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==} - '@types/node@26.6.2': - resolution: {integrity: sha512-X1P21scMv4zGKLYqjdGjaKa7COa0RKVYYZZN/NfvLQ1JegxFhdhpZG/Lyn8AXx6CDUavKAd11v6BvfpkDByK8g==} - '@types/node@26.6.4': resolution: {integrity: sha512-ldVPDCzj7fsaGZrLB0NuHuTvJcsNasysBAqMolr/cgxrLd1xbqxIr3XJiPnHHJUCxj5sNF1vnRj9aWnrVh5Jcg==} @@ -3954,6 +3951,11 @@ packages: resolution: {integrity: sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==} engines: {node: '>=12'} + dotenv@18.0.6: + resolution: {integrity: sha512-ZMVmohV6CvAJtj++pZNyggluUt6hbRdQAxc2+Z635RL6/AG/ruXv5lHnybUFoxMPL/yrTL/tsF4paZu2l7RA6Q==} + engines: {node: '>=12'} + hasBin: true + dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -9556,11 +9558,6 @@ snapshots: dependencies: undici-types: 5.26.5 - '@types/node@26.6.2': - dependencies: - undici-types: 8.9.0 - optional: true - '@types/node@26.6.4': dependencies: undici-types: 8.9.0 @@ -9594,7 +9591,7 @@ snapshots: '@types/set-cookie-parser@2.4.10': dependencies: - '@types/node': 26.6.2 + '@types/node': 26.6.4 optional: true '@types/ssh2-streams@0.1.13': @@ -10653,6 +10650,8 @@ snapshots: dotenv@17.4.2: {} + dotenv@18.0.6: {} + dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 diff --git a/prisma.config.ts b/prisma.config.ts index c1e7e5613..6100aac3c 100644 --- a/prisma.config.ts +++ b/prisma.config.ts @@ -3,8 +3,8 @@ import path from "node:path"; import dotenv from "dotenv"; import { defineConfig } from "prisma/config"; -dotenv.config({ path: path.join(__dirname, ".env") }); -dotenv.config({ path: path.join(__dirname, ".env.local") }); +dotenv.config({ path: path.join(__dirname, ".env"), quiet: true }); +dotenv.config({ path: path.join(__dirname, ".env.local"), quiet: true }); const inContainer = fs.existsSync("/.dockerenv"); const defaultDatabaseUrl = inContainer diff --git a/scripts/__tests__/release-workflows.test.ts b/scripts/__tests__/release-workflows.test.ts index 3686f9bca..79e27408a 100644 --- a/scripts/__tests__/release-workflows.test.ts +++ b/scripts/__tests__/release-workflows.test.ts @@ -249,7 +249,7 @@ describe("release container inputs", () => { expect(dockerfile).toContain( "ln -sfn /opt/prisma-cli/node_modules/.bin/tsx /usr/local/bin/healthlog-tsx", ); - expect(dockerfile).toContain("dotenv@17.4.2"); + expect(dockerfile).toContain("dotenv@18.0.6"); expect(dockerfile).toContain( "ln -sfn /opt/prisma-cli/node_modules/dotenv /app/node_modules/dotenv", );