chore(deps): upgrade all dependencies (2026-07-13) - #132
Draft
devin-ai-integration[bot] wants to merge 20 commits into
Draft
devin-ai-integration[bot] wants to merge 20 commits into
devin-ai-integration[bot] wants to merge 20 commits into
Conversation
Upgrade 15 patch-level deps; remove obsolete react-virtualized patch (fix landed upstream in 9.22.6). Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
Upgrade 19 minor-level deps (cypress 15.0->15.18, prettier, aws-amplify, passport 0.5->0.7, webpack 5.x, @types/*, etc.). Reformat 4 files per prettier 3.9.5. Skipped @types/lodash (4.17 breaks lodash/fp intersectionWith comparator typing). Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
nodemon 2->3, husky 7->9, cross-env 7->10, dotenv 16->17, concurrently 9->10, wait-on 8->9, start-server-and-test 1->3, patch-package 7->8, nyc 15->18. Skipped npm (12 requires Node >=22.22) and @babel/* 8 (requires Node >=22.18); repo targets Node ^20||^22 / .nvmrc 22.13.0. Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
…5->6 ESLint 10 recommended set adds preserve-caught-error; pass cause to preserve the caught error in Query.listBankAccount. Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
Bump jsdom for the vitest jsdom test environment; unit tests remain green. Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
…verage majors clsx 1->2, bcryptjs 2->3 (+@types 3), fuse.js 6->7, uuid 8->14 (+@types 11), @testing-library/jest-dom 5->6, @cypress/code-coverage 3->4. jest-dom v6 dropped the default /matchers export; switch setup-tests.js to a namespace import. Skipped jwks-rsa 4 / express-jwt 8 (removes transitive @types/express-jwt the default-import auth middleware relies on; needs express-jwt named-API migration + untestable IdP auth). Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
…ecode, shortid, detect-port) Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
Resolves numerous axios advisories (SSRF, prototype pollution, credential leakage, ReDoS, DoS). Only usage is axios.create in src/utils/asyncUtils.ts; API compatible. Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
v16 unbundles @testing-library/dom; add it as an explicit devDependency (^10). Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
detect-port 2 is ESM and imports node:util.debuglog; because src/utils/portUtils imports it and is pulled in by frontend XState machines, v2 gets bundled into the vite browser build and breaks 'yarn build' ("debuglog is not exported by __vite-browser-external"). Keeping detect-port 1.x.
Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
v5 removes the default export and renames isNumericString; migrate TransactionCreateStepTwo to the named NumericFormat and valueIsNumericString prop. Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
v7 removed the standalone sanitizeQuery; replace with query().customSanitizer (equivalent behavior). Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
…-file-loader, graphql-tools) 7/8->8/9 Coupled group sharing the graphql peer. Backend boots and loads the schema; build/types/lint/unit green. Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
v3 renames the export to named createProxyMiddleware and replaces the context array with pathFilter globs; migrate src/setupProxy.js and drop the now-obsolete @types/http-proxy-middleware (v3 ships its own types). Verified the proxy forwards POST /graphql to the backend (200). Kept at v3 rather than v4 because v4 is ESM-only and breaks the CJS require in setupProxy under ts-node. Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
Default require export unchanged; proxy/static server boots and serves index.html via history fallback. Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
Supported by the installed @okta/okta-react 6.11 (peer allows ^8). Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
Forms use the compatible string/object/ref/number subset; drop @types/yup (v1 ships its own types). Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
No wildcard/regex routes, so path-to-regexp v8 needs no route changes. @types/express 5 tightens the handler return type to void|Promise<void>; the one 'return res.status().send()' in user-routes is split into a statement + bare return. Backend boots on express 5 and serves /graphql (200). Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
…atic-core (4->5) @types/node tracked to the 22.x line matching the repo's Node 22 target (.nvmrc 22.13.0); latest 26 targets Node 26 and is skipped. @types/express-serve-static-core aligned to 5.x with the express 5 upgrade. Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
Author
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
Author
Frontend recording |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Upgrades outdated npm dependencies across the full-stack app (React frontend + Express/GraphQL backend + Cypress), branched from
develop, following the "Upgrade All Dependencies" playbook. Work is split into logical commits by risk: one patch batch, one minor batch, then majors one-at-a-time / in tightly-coupled groups. Yarn (classic, 1.22.22) is used throughout becauseyarn.lockexists; Node pinned to.nvmrc22.13.0. Each package keeps its existing version-prefix convention (exact stays exact,^stays^).After each accepted change the gate
yarn types && yarn lint && yarn build && yarn test:unit:cipassed (real exit codes, no pipe masking). The full stack was booted with repo scripts and the frontend was manually exercised (login → feed → new-payment flow → bank accounts → notifications → user settings) with a recorded walkthrough; no JS console errors (only vite dev logs + a pre-existing XState 4 deprecation warning).The high-risk majors that require broad refactors or are blocked by the pinned Node/toolchain were attempted and reverted, and are documented below with concrete reasons — nothing was silently skipped.
Validation
yarn types✅yarn lint✅yarn build✅yarn test:unit:ci✅/graphql(200); GraphQL proxy verified.Video demo
Interactive frontend walkthrough (login, feed, payment stepper, bank accounts, notifications, settings): https://app.devin.ai/attachments/26a26b11-26fc-4ac1-81e3-9fa13cd3914d/upgrade_demo.mp4
Upgraded packages
Patch (commit
chore(deps): upgrade patch dependencies)@types/detect-port1.3.2→1.3.5 ·formik2.4.6→2.4.9 ·react-calendar6.0.0→6.0.1 ·react-virtualized9.22.5→9.22.6 ·shortid2.2.16→2.2.17 ·@percy/cypress3.1.6→3.1.9 ·@types/bluebird3.5.36→3.5.42 ·@types/connect-flash0.0.37→0.0.40 ·@types/cors2.8.12→2.8.19 ·@types/json-server0.14.4→0.14.8 ·@types/morgan1.9.3→1.9.10 ·@types/passport1.0.16→1.0.17 ·@types/react-router5.1.18→5.1.20 ·babel-loader10.0.0→10.1.1 ·cors2.8.5→2.8.6 ·graphql-http1.22.0→1.22.4Minor (commit
chore(deps): upgrade minor dependencies)@auth0/auth0-react2.2.4→2.21.0 ·@emotion/styled11.11.0→11.14.1 ·@okta/okta-react6.7.0→6.11.0 ·aws-amplify6.0.16→6.18.0 ·date-fns4.1.0→4.4.0 ·detect-port1.5.1→1.6.1 ·@percy/cli1.27.4→1.32.3 ·@types/connect-history-api-fallback1.3.5→1.5.4 ·@types/express-session1.18.0→1.19.0 ·@types/react-virtualized9.21.21→9.22.3 ·@types/validator13.7.2→13.15.10 ·@types/webpack-env1.16.4→1.18.8 ·cypress15.0.0→15.18.1 ·express-session1.18.0→1.19.0 ·morgan1.10.0→1.11.0 ·passport0.5.0→0.7.0 ·prettier3.0.0→3.9.5 ·typescript-eslint8.46.2→8.63.0Major (accepted — separate commits)
axiosuuid@types/uuid8→11clsxbcryptjs@types/bcryptjs2→3 (backend)fuse.jsreact-number-formatNumberFormat→NumericFormat,isNumericString→valueIsNumericStringinTransactionCreateStepTwo.tsx@testing-library/react@testing-library/dom^10.4.1 peer@testing-library/jest-domimport * as matchersinsrc/setup-tests.js@cypress/code-coveragejsdomexpress@types/express5,@types/express-serve-static-core5; handler return typing fixed inbackend/user-routes.ts(no wildcard routes → no path-to-regexp changes)express-validatorsanitizeQuery→query(...).customSanitizerinbackend/validators.tsgraphqlgraphql-tools8→9,@graphql-tools/load7→8,@graphql-tools/graphql-file-loader7→8http-proxy-middlewarepathFilterinsrc/setupProxy.js(v4 is ESM-only — skipped)connect-history-api-fallback@okta/jwt-verifier@okta/okta-auth-jsyup@types/yup(ships own types)eslint@eslint/js9→10,eslint-plugin-cypress5→6;Error(..,{cause})inQuery.tsforpreserve-caught-errorhuskyconcurrentlycross-envdotenvnodemonnycpatch-packagereact-virtualized+9.22.5.patch)start-server-and-testwait-on@types/node@types/jsonwebtoken@types/jwt-decode@types/shortidSecurity fixes
Source/runtime upgrades that resolve known advisories: axios 0.28→1.18 (SSRF / credential-leak advisories in 0.x), http-proxy-middleware 0.19→3, express 4→5, passport 0.5→0.7, morgan and express-session bumps, graphql 16→17. Note:
yarn auditstill reports transitive advisories concentrated in dev-only tooling (cypress, aws-amplify, webpack) whose fixes require the skipped majors below; no production runtime path is affected by those.Skipped majors (attempted, reverted, documented)
react/react-dom(+@types/react,@types/react-dom)react-router/react-router-dom/history(+@types/*)Switch,Redirect,useHistory,component=,withRouter) across routing + XState machines. Large rewrite.@mui/material/@mui/icons-material/@mui/lab<Grid>usages needitem/xs→sizemigration across a 5→9 multi-major span;@mui/labonly at9.0.0-beta. Large.xstate/@xstate/reactlowdb(+@types/lowdb)FileSyncadapter removed, entire sync lodash-chain API (db.get().push().write(),.value()) replaced by asyncLowacross ~40 call sites inbackend/database.ts.dinero.js(+@types/dinero.js)@dinero.js/currenciesdep; changes money formatting asserted by E2E.@faker-js/fakerscripts/seedDataUtils.ts.typescriptbaseUrl/moduleResolution=node10; needs broader tsconfig migration (7.x also pre-release).vite/@vitejs/plugin-react/vite-plugin-istanbulvitest@babel/core/@babel/preset-env/@babel/plugin-*.nvmrc).npmexpress-jwt/jwks-rsa@types/express-jwtand changes auth-middleware API; needs runtime IdP validation not available here.http-proxy-middlewarev4requireunder ts-node. Accepted v3 instead.detect-portdebuglogthat breaks the Vite browser bundle (imported via frontend port utils). Kept 1.x.@types/lodashTransaction | Like) inscripts/seedDataUtils.ts. Kept 4.14.Notes
cypress.config.ts,vite.cypress.config.ts) and seeds preserved unchanged.@types/yupand@types/http-proxy-middleware(v1 / v3 ship their own types).Link to Devin session: https://app.devin.ai/sessions/8dc3f03779dd4bc39a6cca1493b5051f
Requested by: @dr-phil
Devin Review