diff --git a/interface/package.json b/interface/package.json index 66d86b1e0..14781a828 100644 --- a/interface/package.json +++ b/interface/package.json @@ -19,7 +19,7 @@ "typesafe-i18n": "typesafe-i18n --no-watch", "build-webUI": "typesafe-i18n --no-watch && vite build && node progmem-generator.js", "format": "prettier -l -w '**/*.{ts,tsx,js,css,json,md}'", - "lint": "typesafe-i18n --no-watch && eslint . --fix", + "lint": "eslint . --fix", "standalone-devcontainer": "concurrently -c \"auto\" \"typesafe-i18n\" \"pnpm:mock-rest\" \"vite --host\"" }, "dependencies": { @@ -51,12 +51,12 @@ "concurrently": "^10.0.3", "eslint": "^10.6.0", "eslint-config-prettier": "^10.1.8", - "prettier": "^3.9.4", + "prettier": "^3.9.5", "rollup-plugin-visualizer": "^7.0.1", "terser": "^5.49.0", "typescript-eslint": "^8.63.0", "vite": "^8.1.4", "vite-plugin-imagemin": "^0.6.1" }, - "packageManager": "pnpm@11.11.0" + "packageManager": "pnpm@11.11.0+sha512.4463f65fd80ed80d69bc1d4bf163ee94f605c7380fc318bb5b2ebe15f8cd12d49c51a4d59e951b401e764d3b6ca751cbf51bc50ed7001a6bcb4935e684c34882" } diff --git a/interface/pnpm-lock.yaml b/interface/pnpm-lock.yaml index 4c2f9a44a..c30291262 100644 --- a/interface/pnpm-lock.yaml +++ b/interface/pnpm-lock.yaml @@ -4,6 +4,9 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + browserslist: 4.28.5 + importers: .: @@ -68,7 +71,7 @@ importers: version: 2.10.5(@babel/core@7.29.7)(preact@10.29.7)(vite@8.1.4(@types/node@26.1.1)(terser@5.49.0)) '@trivago/prettier-plugin-sort-imports': specifier: ^6.0.2 - version: 6.0.2(prettier@3.9.4) + version: 6.0.2(prettier@3.9.5) '@types/node': specifier: ^26.1.1 version: 26.1.1 @@ -88,8 +91,8 @@ importers: specifier: ^10.1.8 version: 10.1.8(eslint@10.6.0) prettier: - specifier: ^3.9.4 - version: 3.9.4 + specifier: ^3.9.5 + version: 3.9.5 rollup-plugin-visualizer: specifier: ^7.0.1 version: 7.0.1(rolldown@1.1.5) @@ -946,8 +949,8 @@ packages: resolution: {integrity: sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==} engines: {node: '>=0.10.0'} - caniuse-lite@1.0.30001803: - resolution: {integrity: sha512-g/uHREV2ZpK9qMalCsWaxmA6ol+DX8GYhuf3T40RKoP+oL7vhRJh8LNt73PCjpnR6l14FzfPrB5Yux4PKm2meg==} + caniuse-lite@1.0.30001800: + resolution: {integrity: sha512-MMHtuAz9Ys840zAY5F4k6fV5GaivZ9sPk+nz0mY+GYVzRBnYkN0mpqkSR92oWRQ19yQWo4HvBV/FnC16AJX8MA==} caw@2.0.1: resolution: {integrity: sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==} @@ -2391,8 +2394,8 @@ packages: resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} engines: {node: '>=4'} - prettier@3.9.4: - resolution: {integrity: sha512-yWG/o/4oJfo036EKAfK6ACAoDOfHeRHx4tuxkfBZiauURiaSmYwlpOr5LQqKtIkRD2z1PLteme2WoxEnj4tHTg==} + prettier@3.9.5: + resolution: {integrity: sha512-/FVl766LpUfB5vXgCYOYa0MeV/441Ia99AeICQIQFTY/Nw0roZwULcXpku5i1/m5kt/baz+s4Zogspd839HSMg==} engines: {node: '>=14'} hasBin: true @@ -2847,7 +2850,7 @@ packages: resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} hasBin: true peerDependencies: - browserslist: '>= 4.21.0' + browserslist: 4.28.5 uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -3530,7 +3533,7 @@ snapshots: react-virtualized-auto-sizer: 1.0.26(react-dom@19.2.7(react@19.2.7))(react@19.2.7) react-window: 1.8.11(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@trivago/prettier-plugin-sort-imports@6.0.2(prettier@3.9.4)': + '@trivago/prettier-plugin-sort-imports@6.0.2(prettier@3.9.5)': dependencies: '@babel/generator': 7.29.7 '@babel/parser': 7.29.7 @@ -3540,7 +3543,7 @@ snapshots: lodash-es: 4.18.1 minimatch: 9.0.9 parse-imports-exports: 0.2.4 - prettier: 3.9.4 + prettier: 3.9.5 transitivePeerDependencies: - supports-color @@ -3842,9 +3845,9 @@ snapshots: browserslist@4.28.5: dependencies: baseline-browser-mapping: 2.10.42 - caniuse-lite: 1.0.30001803 + caniuse-lite: 1.0.30001800 electron-to-chromium: 1.5.389 - node-releases: 2.0.51 + node-releases: 2.0.50 update-browserslist-db: 1.2.3(browserslist@4.28.5) buffer-alloc-unsafe@1.1.0: {} @@ -3905,7 +3908,7 @@ snapshots: camelcase@2.1.1: {} - caniuse-lite@1.0.30001803: {} + caniuse-lite@1.0.30001800: {} caw@2.0.1: dependencies: @@ -5336,7 +5339,7 @@ snapshots: prepend-http@2.0.0: {} - prettier@3.9.4: {} + prettier@3.9.5: {} process-nextick-args@2.0.1: {} diff --git a/interface/pnpm-workspace.yaml b/interface/pnpm-workspace.yaml index cbe59f5a8..027ef8abe 100644 --- a/interface/pnpm-workspace.yaml +++ b/interface/pnpm-workspace.yaml @@ -10,3 +10,13 @@ minimumReleaseAgeExclude: - '@types/node@25.9.2' - '@types/react@19.2.17' - react-router@8.0.1 +overrides: + # pin browserslist to one exact version so `pnpm update` can't re-resolve it to a + # newer release it then fails to link (spurious "Failed to create bin ... ENOENT") + browserslist: 4.28.5 +updateConfig: + # typesafe-i18n / typescript-eslint rely on the classic compiler API that the + # native TS 7 rewrite removes. TS 6.x still has it, so stay on 6.x by excluding + # typescript from `pnpm update --latest` (which would otherwise jump it to 7). + ignoreDependencies: + - typescript diff --git a/mock-api/package.json b/mock-api/package.json index c19003735..af4021420 100644 --- a/mock-api/package.json +++ b/mock-api/package.json @@ -13,7 +13,7 @@ "@trivago/prettier-plugin-sort-imports": "^6.0.2", "formidable": "^3.5.4", "itty-router": "^5.0.24", - "prettier": "^3.9.4" + "prettier": "^3.9.5" }, - "packageManager": "pnpm@11.11.0" + "packageManager": "pnpm@11.11.0+sha512.4463f65fd80ed80d69bc1d4bf163ee94f605c7380fc318bb5b2ebe15f8cd12d49c51a4d59e951b401e764d3b6ca751cbf51bc50ed7001a6bcb4935e684c34882" } diff --git a/mock-api/pnpm-lock.yaml b/mock-api/pnpm-lock.yaml index 8691da014..16d26fc40 100644 --- a/mock-api/pnpm-lock.yaml +++ b/mock-api/pnpm-lock.yaml @@ -13,7 +13,7 @@ importers: version: 3.1.3 '@trivago/prettier-plugin-sort-imports': specifier: ^6.0.2 - version: 6.0.2(prettier@3.9.4) + version: 6.0.2(prettier@3.9.5) formidable: specifier: ^3.5.4 version: 3.5.4 @@ -21,8 +21,8 @@ importers: specifier: ^5.0.24 version: 5.0.24 prettier: - specifier: ^3.9.4 - version: 3.9.4 + specifier: ^3.9.5 + version: 3.9.5 packages: @@ -167,8 +167,8 @@ packages: picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - prettier@3.9.4: - resolution: {integrity: sha512-yWG/o/4oJfo036EKAfK6ACAoDOfHeRHx4tuxkfBZiauURiaSmYwlpOr5LQqKtIkRD2z1PLteme2WoxEnj4tHTg==} + prettier@3.9.5: + resolution: {integrity: sha512-/FVl766LpUfB5vXgCYOYa0MeV/441Ia99AeICQIQFTY/Nw0roZwULcXpku5i1/m5kt/baz+s4Zogspd839HSMg==} engines: {node: '>=14'} hasBin: true @@ -246,7 +246,7 @@ snapshots: dependencies: '@noble/hashes': 1.8.0 - '@trivago/prettier-plugin-sort-imports@6.0.2(prettier@3.9.4)': + '@trivago/prettier-plugin-sort-imports@6.0.2(prettier@3.9.5)': dependencies: '@babel/generator': 7.29.7 '@babel/parser': 7.29.7 @@ -256,7 +256,7 @@ snapshots: lodash-es: 4.18.1 minimatch: 9.0.9 parse-imports-exports: 0.2.4 - prettier: 3.9.4 + prettier: 3.9.5 transitivePeerDependencies: - supports-color @@ -311,6 +311,6 @@ snapshots: picocolors@1.1.1: {} - prettier@3.9.4: {} + prettier@3.9.5: {} wrappy@1.0.2: {} diff --git a/scripts/update_all.sh b/scripts/update_all.sh index f6f34cb4a..9bb491ac5 100644 --- a/scripts/update_all.sh +++ b/scripts/update_all.sh @@ -3,25 +3,25 @@ # run from root folder, like `sh ./scripts/update_all.sh` # as well as GNUMake (make) and python3 +# abort on first error so a failed lint/build isn't silently swallowed +set -e + cd interface rm -rf node_modules corepack use pnpm@latest -pnpm update --latest +pnpm update pnpm install pnpm format pnpm lint +pnpm build-webUI cd ../mock-api rm -rf node_modules corepack use pnpm@latest -pnpm update --latest +pnpm update pnpm install pnpm format -cd .. -cd interface -pnpm build-webUI - cd .. npx cspell "**"