diff --git a/frontend-app/Dockerfile b/frontend-app/Dockerfile index 6db3f75..f42e15d 100644 --- a/frontend-app/Dockerfile +++ b/frontend-app/Dockerfile @@ -1,6 +1,6 @@ # Production Dockerfile for Web Frontend # --- Builder stage --- -FROM node:24-slim AS builder +FROM node:24-slim@sha256:a81a03dd965b4052269a57fac857004022b522a4bf06e7a739e25e18bce45af2 AS builder WORKDIR /opt/relab/frontend-app @@ -16,7 +16,7 @@ COPY . ./ RUN npx expo export -p web -c # --- Production stage --- -FROM node:24-slim +FROM node:24-slim@sha256:a81a03dd965b4052269a57fac857004022b522a4bf06e7a739e25e18bce45af2 # Build arguments ARG WORKDIR=/opt/relab/frontend-app diff --git a/frontend-app/Dockerfile.dev b/frontend-app/Dockerfile.dev index 2b6f109..472167b 100644 --- a/frontend-app/Dockerfile.dev +++ b/frontend-app/Dockerfile.dev @@ -1,6 +1,6 @@ # Development Dockerfile for Web Frontend # Note: This requires mounting the source code as a volume in docker-compose.override.yml -FROM node:24-slim +FROM node:24-slim@sha256:a81a03dd965b4052269a57fac857004022b522a4bf06e7a739e25e18bce45af2 WORKDIR /opt/relab/frontend-app diff --git a/frontend-app/package-lock.json b/frontend-app/package-lock.json index e9e9948..e4f0e23 100644 --- a/frontend-app/package-lock.json +++ b/frontend-app/package-lock.json @@ -46,17 +46,17 @@ "validator": "^13.15.15" }, "devDependencies": { - "@babel/core": "^7.28.4", + "@babel/core": "7.28.5", "@types/react": "19.1.17", - "@types/validator": "^13.15.3", - "eslint": "^9.25.0", - "eslint-config-expo": "~10.0.0", - "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jest": "^29.0.1", - "eslint-plugin-prettier": "^5.5.4", - "eslint-plugin-testing-library": "^7.13.1", - "prettier": "^3.6.2", - "typescript": "~5.9.2" + "@types/validator": "13.15.3", + "eslint": "9.37.0", + "eslint-config-expo": "10.0.0", + "eslint-config-prettier": "10.1.8", + "eslint-plugin-jest": "29.0.1", + "eslint-plugin-prettier": "5.5.4", + "eslint-plugin-testing-library": "7.13.1", + "prettier": "3.6.2", + "typescript": "5.9.3" } }, "node_modules/@0no-co/graphql.web": { @@ -6706,9 +6706,9 @@ } }, "node_modules/eslint-config-expo/node_modules/globals": { - "version": "16.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-16.4.0.tgz", - "integrity": "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==", + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.5.0.tgz", + "integrity": "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==", "dev": true, "license": "MIT", "engines": { diff --git a/frontend-app/package.json b/frontend-app/package.json index dab24f8..b8feb7e 100644 --- a/frontend-app/package.json +++ b/frontend-app/package.json @@ -49,17 +49,17 @@ "validator": "^13.15.15" }, "devDependencies": { - "@babel/core": "^7.28.4", + "@babel/core": "7.28.5", "@types/react": "19.1.17", - "@types/validator": "^13.15.3", - "eslint": "^9.25.0", - "eslint-config-expo": "~10.0.0", - "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jest": "^29.0.1", - "eslint-plugin-prettier": "^5.5.4", - "eslint-plugin-testing-library": "^7.13.1", - "prettier": "^3.6.2", - "typescript": "~5.9.2" + "@types/validator": "13.15.3", + "eslint": "9.37.0", + "eslint-config-expo": "10.0.0", + "eslint-config-prettier": "10.1.8", + "eslint-plugin-jest": "29.0.1", + "eslint-plugin-prettier": "5.5.4", + "eslint-plugin-testing-library": "7.13.1", + "prettier": "3.6.2", + "typescript": "5.9.3" }, "private": true } diff --git a/frontend-web/Dockerfile b/frontend-web/Dockerfile index 9f03d90..b02ea45 100644 --- a/frontend-web/Dockerfile +++ b/frontend-web/Dockerfile @@ -1,6 +1,6 @@ # Production Dockerfile for Web Frontend # --- Builder stage --- -FROM node:24-slim AS builder +FROM node:24-slim@sha256:a81a03dd965b4052269a57fac857004022b522a4bf06e7a739e25e18bce45af2 AS builder WORKDIR /opt/relab/frontend-web @@ -16,7 +16,7 @@ COPY . ./ RUN npx expo export -p web -c # --- Production stage --- -FROM node:24-slim +FROM node:24-slim@sha256:a81a03dd965b4052269a57fac857004022b522a4bf06e7a739e25e18bce45af2 # Build arguments ARG WORKDIR=/opt/relab/frontend-web diff --git a/frontend-web/Dockerfile.dev b/frontend-web/Dockerfile.dev index 5680069..759fe15 100644 --- a/frontend-web/Dockerfile.dev +++ b/frontend-web/Dockerfile.dev @@ -1,6 +1,6 @@ # Development Dockerfile for Web Frontend # Note: This requires mounting the source code as a volume in docker-compose.override.yml -FROM node:24-slim +FROM node:24-slim@sha256:a81a03dd965b4052269a57fac857004022b522a4bf06e7a739e25e18bce45af2 WORKDIR /opt/relab/frontend-web diff --git a/frontend-web/package-lock.json b/frontend-web/package-lock.json index cc8b786..31d4c67 100644 --- a/frontend-web/package-lock.json +++ b/frontend-web/package-lock.json @@ -49,28 +49,28 @@ "zustand": "^5.0.5" }, "devDependencies": { - "@babel/core": "^7.28.4", - "@eslint/js": "^9.29.0", - "@hey-api/openapi-ts": "^0.77.0", - "@testing-library/react-native": "^13.2.0", - "@types/jest": "^29.5.14", + "@babel/core": "7.28.5", + "@eslint/js": "9.37.0", + "@hey-api/openapi-ts": "0.77.0", + "@testing-library/react-native": "13.3.3", + "@types/jest": "29.5.14", "@types/react": "19.0.14", - "@typescript-eslint/parser": "^8.34.1", - "eslint": "^9.29.0", - "eslint-config-expo": "~9.2.0", - "eslint-config-prettier": "^10.1.5", - "eslint-import-resolver-typescript": "^4.4.3", - "eslint-plugin-import": "^2.31.0", - "eslint-plugin-jest": "^29.0.1", - "eslint-plugin-prettier": "^5.4.1", - "eslint-plugin-testing-library": "^7.5.3", - "jest": "~29.7.0", - "jest-expo": "~53.0.7", - "prettier": "^3.5.3", - "react-native-reanimated": "~3.17.4", + "@typescript-eslint/parser": "8.45.0", + "eslint": "9.37.0", + "eslint-config-expo": "9.2.0", + "eslint-config-prettier": "10.1.8", + "eslint-import-resolver-typescript": "4.4.4", + "eslint-plugin-import": "2.32.0", + "eslint-plugin-jest": "29.0.1", + "eslint-plugin-prettier": "5.5.4", + "eslint-plugin-testing-library": "7.11.0", + "jest": "29.7.0", + "jest-expo": "53.0.10", + "prettier": "3.6.2", + "react-native-reanimated": "3.17.5", "react-native-safe-area-context": "5.4.0", - "typescript": "~5.8.3", - "typescript-eslint": "^8.34.1" + "typescript": "5.8.3", + "typescript-eslint": "8.45.0" } }, "node_modules/@0no-co/graphql.web": { @@ -8014,9 +8014,9 @@ } }, "node_modules/eslint-config-expo/node_modules/globals": { - "version": "16.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-16.4.0.tgz", - "integrity": "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==", + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.5.0.tgz", + "integrity": "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==", "dev": true, "license": "MIT", "engines": { @@ -12008,9 +12008,9 @@ "license": "MIT" }, "node_modules/jest-expo/node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, "license": "ISC", "bin": { diff --git a/frontend-web/package.json b/frontend-web/package.json index be22e14..f35fd9c 100644 --- a/frontend-web/package.json +++ b/frontend-web/package.json @@ -62,28 +62,28 @@ "zustand": "^5.0.5" }, "devDependencies": { - "@babel/core": "^7.28.4", - "@eslint/js": "^9.29.0", - "@hey-api/openapi-ts": "^0.77.0", - "@testing-library/react-native": "^13.2.0", - "@types/jest": "^29.5.14", + "@babel/core": "7.28.5", + "@eslint/js": "9.37.0", + "@hey-api/openapi-ts": "0.77.0", + "@testing-library/react-native": "13.3.3", + "@types/jest": "29.5.14", "@types/react": "19.0.14", - "@typescript-eslint/parser": "^8.34.1", - "eslint": "^9.29.0", - "eslint-config-expo": "~9.2.0", - "eslint-config-prettier": "^10.1.5", - "eslint-import-resolver-typescript": "^4.4.3", - "eslint-plugin-import": "^2.31.0", - "eslint-plugin-jest": "^29.0.1", - "eslint-plugin-prettier": "^5.4.1", - "eslint-plugin-testing-library": "^7.5.3", - "jest": "~29.7.0", - "jest-expo": "~53.0.7", - "prettier": "^3.5.3", - "react-native-reanimated": "~3.17.4", + "@typescript-eslint/parser": "8.45.0", + "eslint": "9.37.0", + "eslint-config-expo": "9.2.0", + "eslint-config-prettier": "10.1.8", + "eslint-import-resolver-typescript": "4.4.4", + "eslint-plugin-import": "2.32.0", + "eslint-plugin-jest": "29.0.1", + "eslint-plugin-prettier": "5.5.4", + "eslint-plugin-testing-library": "7.11.0", + "jest": "29.7.0", + "jest-expo": "53.0.10", + "prettier": "3.6.2", + "react-native-reanimated": "3.17.5", "react-native-safe-area-context": "5.4.0", - "typescript": "~5.8.3", - "typescript-eslint": "^8.34.1" + "typescript": "5.8.3", + "typescript-eslint": "8.45.0" }, "private": true, "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"