Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
bcb5644
chore(deps): upgrade patch dependencies
devin-ai-integration[bot] Jul 13, 2026
d37f5a3
chore(deps): upgrade minor dependencies
devin-ai-integration[bot] Jul 13, 2026
9aee39d
chore(deps): upgrade dev-tooling major dependencies
devin-ai-integration[bot] Jul 13, 2026
6185361
chore(deps): upgrade eslint 9->10, @eslint/js, eslint-plugin-cypress …
devin-ai-integration[bot] Jul 13, 2026
ddfb36e
chore(deps): upgrade jsdom 22->29
devin-ai-integration[bot] Jul 13, 2026
b407a3c
chore(deps): upgrade clsx, bcryptjs, fuse.js, uuid, jest-dom, code-co…
devin-ai-integration[bot] Jul 13, 2026
3f8e7be
chore(deps): upgrade detect-port 1->2 and @types (jsonwebtoken, jwt-d…
devin-ai-integration[bot] Jul 13, 2026
e925ac3
chore(deps): upgrade axios 0.28.1 -> 1.18.1
devin-ai-integration[bot] Jul 13, 2026
f88cc69
chore(deps): upgrade @testing-library/react 14->16
devin-ai-integration[bot] Jul 13, 2026
f9acc5d
chore(deps): revert detect-port to 1.x (skip major)
devin-ai-integration[bot] Jul 13, 2026
c403005
chore(deps): upgrade react-number-format 4->5
devin-ai-integration[bot] Jul 13, 2026
cea4377
chore(deps): upgrade express-validator 6->7
devin-ai-integration[bot] Jul 13, 2026
fcae63d
chore(deps): upgrade graphql 16->17 and @graphql-tools (load, graphql…
devin-ai-integration[bot] Jul 13, 2026
7fc8b87
chore(deps): upgrade http-proxy-middleware 0.19->3
devin-ai-integration[bot] Jul 13, 2026
a7dd90a
chore(deps): upgrade connect-history-api-fallback 1->2
devin-ai-integration[bot] Jul 13, 2026
b538495
chore(deps): upgrade @okta/jwt-verifier 3->4
devin-ai-integration[bot] Jul 13, 2026
c200225
chore(deps): upgrade @okta/okta-auth-js 7->8
devin-ai-integration[bot] Jul 13, 2026
882c404
chore(deps): upgrade yup 0.32->1
devin-ai-integration[bot] Jul 13, 2026
8099659
chore(deps): upgrade express 4->5 (+@types/express 5)
devin-ai-integration[bot] Jul 13, 2026
8350843
chore(deps): upgrade @types/node (20->22) and @types/express-serve-st…
devin-ai-integration[bot] Jul 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion backend/graphql/resolvers/Query.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ const Query = {
/* istanbul ignore next */
} catch (err: any) {
/* istanbul ignore next */
throw new Error(err);
throw new Error(err, { cause: err });
}
},
};
Expand Down
3 changes: 2 additions & 1 deletion backend/user-routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,10 @@ router.get(
// Permission: account owner
/* istanbul ignore next */
if (!isEqual(userId, req.user?.id)) {
return res.status(401).send({
res.status(401).send({
error: "Unauthorized",
});
return;
}

const user = getUserById(userId);
Expand Down
6 changes: 3 additions & 3 deletions backend/validators.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { body, check, oneOf, query, sanitizeQuery } from "express-validator";
import { body, check, oneOf, query } from "express-validator";
import { isValid } from "shortid";
import {
TransactionStatus,
Expand Down Expand Up @@ -50,7 +50,7 @@ export const isUserValidator = [
.isIn(["public", "private", "contacts"]),
];

export const sanitizeTransactionStatus = sanitizeQuery("status").customSanitizer((value) => {
export const sanitizeTransactionStatus = query("status").customSanitizer((value) => {
/* istanbul ignore if*/
if (includes(value, TransactionStatusValues)) {
return value;
Expand All @@ -59,7 +59,7 @@ export const sanitizeTransactionStatus = sanitizeQuery("status").customSanitizer
});

// default request status to undefined if not provided
export const sanitizeRequestStatus = sanitizeQuery("requestStatus").customSanitizer((value) => {
export const sanitizeRequestStatus = query("requestStatus").customSanitizer((value) => {
/* istanbul ignore if*/
if (includes(value, RequestStatusValues)) {
return value;
Expand Down
153 changes: 76 additions & 77 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,132 +12,131 @@
"url": "https://github.com/cypress-io/cypress-realworld-app/issues"
},
"dependencies": {
"@auth0/auth0-react": "2.2.4",
"@auth0/auth0-react": "2.21.0",
"@babel/core": "^7.28.0",
"@babel/plugin-syntax-flow": "^7.14.5",
"@babel/plugin-transform-react-jsx": "^7.14.9",
"@emotion/react": "^11.11.4",
"@emotion/styled": "^11.11.0",
"@graphql-tools/graphql-file-loader": "7.5.17",
"@graphql-tools/load": "7.8.14",
"@emotion/styled": "^11.14.1",
"@graphql-tools/graphql-file-loader": "8.1.16",
"@graphql-tools/load": "8.1.13",
"@matheusluizn/react-google-login": "^5.1.6",
"@mui/icons-material": "^5.15.12",
"@mui/lab": "^5.0.0-alpha.167",
"@mui/material": "^5.15.12",
"@okta/jwt-verifier": "^3.0.1",
"@okta/okta-auth-js": "^7.3.0",
"@okta/okta-react": "^6.7.0",
"@types/detect-port": "^1.3.2",
"@okta/jwt-verifier": "^4.0.2",
"@okta/okta-auth-js": "^8.0.1",
"@okta/okta-react": "^6.11.0",
"@types/detect-port": "^1.3.5",
"@xstate/react": "3.2.2",
"aws-amplify": "^6.0.16",
"axios": "0.28.1",
"clsx": "1.2.1",
"date-fns": "4.1.0",
"aws-amplify": "^6.18.0",
"axios": "1.18.1",
"clsx": "2.1.1",
"date-fns": "4.4.0",
"date-fns-tz": "^3.2.0",
"detect-port": "^1.5.1",
"detect-port": "^1.6.1",
"dinero.js": "1.9.1",
"formik": "2.4.6",
"formik": "2.4.9",
"history": "4.10.1",
"postinstall-postinstall": "^2.1.0",
"react": "18.2.0",
"react-calendar": "^6.0.0",
"react-calendar": "^6.0.1",
"react-dom": "18.2.0",
"react-number-format": "4.9.4",
"react-number-format": "5.4.5",
"react-router": "5.3.4",
"react-router-dom": "5.3.4",
"react-virtualized": "9.22.5",
"shortid": "2.2.16",
"uuid": "8.3.2",
"react-virtualized": "9.22.6",
"shortid": "2.2.17",
"uuid": "14.0.1",
"webpack": "5",
"xstate": "4.38.3",
"yup": "0.32.11"
"yup": "1.7.1"
},
"devDependencies": {
"@babel/plugin-proposal-private-property-in-object": "7.21.11",
"@babel/preset-env": "^7.28.0",
"@cypress/code-coverage": "^3.14.5",
"@cypress/code-coverage": "^4.0.3",
"@cypress/instrument-cra": "1.4.0",
"@eslint/js": "^9.38.0",
"@eslint/js": "^10.0.1",
"@faker-js/faker": "6.1.2",
"@percy/cli": "^1.27.4",
"@percy/cypress": "3.1.6",
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^14.0.0",
"@types/bcryptjs": "2.4.2",
"@types/bluebird": "3.5.36",
"@types/connect-flash": "0.0.37",
"@types/connect-history-api-fallback": "1.3.5",
"@types/cors": "2.8.12",
"@percy/cli": "^1.32.3",
"@percy/cypress": "3.1.9",
"@testing-library/dom": "^10.4.1",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.2",
"@types/bcryptjs": "3.0.0",
"@types/bluebird": "3.5.42",
"@types/connect-flash": "0.0.40",
"@types/connect-history-api-fallback": "1.5.4",
"@types/cors": "2.8.19",
"@types/dinero.js": "1.9.0",
"@types/express": "4.17.21",
"@types/express": "5.0.6",
"@types/express-paginate": "1.0.4",
"@types/express-serve-static-core": "4.17.2",
"@types/express-session": "1.18.0",
"@types/http-proxy-middleware": "0.19.3",
"@types/json-server": "0.14.4",
"@types/jsonwebtoken": "8.5.8",
"@types/jwt-decode": "2.2.1",
"@types/express-serve-static-core": "5.1.2",
"@types/express-session": "1.19.0",
"@types/json-server": "0.14.8",
"@types/jsonwebtoken": "9.0.10",
"@types/jwt-decode": "3.1.0",
"@types/lodash": "4.14.181",
"@types/lowdb": "1.0.11",
"@types/morgan": "1.9.3",
"@types/node": "^20.11.25",
"@types/passport": "1.0.16",
"@types/morgan": "1.9.10",
"@types/node": "^22.20.1",
"@types/passport": "1.0.17",
"@types/react": "^18.2.14",
"@types/react-dom": "^18.2.6",
"@types/react-router": "5.1.18",
"@types/react-router": "5.1.20",
"@types/react-router-dom": "5.3.3",
"@types/react-virtualized": "9.21.21",
"@types/shortid": "0.0.29",
"@types/uuid": "8.3.4",
"@types/validator": "13.7.2",
"@types/webpack-env": "1.16.4",
"@types/yup": "0.29.13",
"@types/react-virtualized": "9.22.3",
"@types/shortid": "2.2.0",
"@types/uuid": "11.0.0",
"@types/validator": "13.15.10",
"@types/webpack-env": "1.18.8",
"@vitejs/plugin-react": "^5.0.1",
"babel-loader": "^10.0.0",
"bcryptjs": "2.4.3",
"concurrently": "9.1.2",
"connect-history-api-fallback": "1.6.0",
"cors": "2.8.5",
"cross-env": "7.0.3",
"cypress": "15.0.0",
"dotenv": "16.0.0",
"eslint": "^9.38.0",
"eslint-plugin-cypress": "^5.2.0",
"express": "4.20.0",
"babel-loader": "^10.1.1",
"bcryptjs": "3.0.3",
"concurrently": "10.0.3",
"connect-history-api-fallback": "2.0.0",
"cors": "2.8.6",
"cross-env": "10.1.0",
"cypress": "15.18.1",
"dotenv": "17.4.2",
"eslint": "^10.7.0",
"eslint-plugin-cypress": "^6.4.2",
"express": "5.2.1",
"express-jwt": "6.1.2",
"express-paginate": "1.0.2",
"express-session": "1.18.0",
"express-validator": "6.15.0",
"fuse.js": "6.5.3",
"graphql": "16.8.1",
"graphql-http": "^1.22.0",
"express-session": "1.19.0",
"express-validator": "7.3.2",
"fuse.js": "7.4.2",
"graphql": "17.0.2",
"graphql-http": "^1.22.4",
"graphql-playground-middleware-express": "^1.7.23",
"graphql-tools": "8.2.7",
"http-proxy-middleware": "0.19.1",
"husky": "7.0.4",
"graphql-tools": "9.0.31",
"http-proxy-middleware": "3.0.5",
"husky": "9.1.7",
"istanbul-lib-coverage": "3.2.2",
"jsdom": "^22.1.0",
"jsdom": "^29.1.1",
"json": "11.0.0",
"jwks-rsa": "2.0.5",
"lowdb": "1.0.0",
"morgan": "1.10.0",
"morgan": "1.11.0",
"ncp": "2.0.0",
"nodemon": "2.0.22",
"nodemon": "3.1.14",
"npm": "^9.8.0",
"nyc": "15.1.0",
"passport": "0.5.0",
"nyc": "18.0.0",
"passport": "0.7.0",
"passport-local": "1.0.0",
"patch-package": "^7.0.0",
"prettier": "^3.0.0",
"start-server-and-test": "1.14.0",
"patch-package": "^8.0.1",
"prettier": "^3.9.5",
"start-server-and-test": "3.0.11",
"ts-node": "10.9.2",
"typescript": "5.8.3",
"typescript-eslint": "^8.46.2",
"typescript-eslint": "^8.63.0",
"vite": "^7.1.3",
"vite-plugin-eslint": "^1.8.1",
"vite-plugin-istanbul": "^4.1.0",
"vitest": "^3.2.4",
"wait-on": "^8.0.3"
"wait-on": "^9.0.10"
},
"scripts": {
"dev": "cross-env NODE_ENV=development concurrently yarn:start:react yarn:start:api:watch",
Expand Down
12 changes: 0 additions & 12 deletions patches/react-virtualized+9.22.5.patch

This file was deleted.

4 changes: 2 additions & 2 deletions scripts/seedDataUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -148,8 +148,8 @@ export const createContact = (userId: User["id"], contactUserId: User["id"]) =>
});

// returns a random user other than the one passed in
export const getOtherRandomUser = curry(
(seedUsers: User[], userId: User["id"]): User => flow(reject(["id", userId]), sample)(seedUsers)
export const getOtherRandomUser = curry((seedUsers: User[], userId: User["id"]): User =>
flow(reject(["id", userId]), sample)(seedUsers)
);

export const randomContactsForUser = curry((seedUsers: User[], user: User) =>
Expand Down
6 changes: 3 additions & 3 deletions src/components/TransactionCreateStepTwo.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React, { useState } from "react";
import { styled } from "@mui/material/styles";
import NumberFormat from "react-number-format";
import { NumericFormat } from "react-number-format";
import { Formik, Form, Field, FieldProps } from "formik";
import { string, object, number } from "yup";
import { Paper, Typography, Button, Grid, Container, Avatar, Box, TextField } from "@mui/material";
Expand Down Expand Up @@ -47,7 +47,7 @@ function NumberFormatCustom(props: NumberFormatCustomProps) {
const { inputRef, onChange, ...other } = props;

return (
<NumberFormat
<NumericFormat
{...other}
getInputRef={inputRef}
onValueChange={(values) => {
Expand All @@ -59,7 +59,7 @@ function NumberFormatCustom(props: NumberFormatCustomProps) {
});
}}
thousandSeparator
isNumericString
valueIsNumericString
prefix="$"
/>
);
Expand Down
4 changes: 1 addition & 3 deletions src/machines/createTransactionMachine.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,7 @@ const transactionDataMachine = dataMachine("transactionData").withConfig({
});

export type CreateTransactionMachineEvents =
| { type: "SET_USERS" }
| { type: "CREATE" }
| { type: "RESET" };
{ type: "SET_USERS" } | { type: "CREATE" } | { type: "RESET" };

export interface CreateTransactionMachineContext {
sender: User;
Expand Down
6 changes: 1 addition & 5 deletions src/machines/transactionFiltersMachine.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,7 @@ type AmountFilterEvent = {
type DateResetEvent = { type: "DATE_RESET" };
type AmountResetEvent = { type: "AMOUNT_RESET" };
type FilterEvents =
| { type: "NONE" }
| DateFilterEvent
| AmountFilterEvent
| DateResetEvent
| AmountResetEvent;
{ type: "NONE" } | DateFilterEvent | AmountFilterEvent | DateResetEvent | AmountResetEvent;

export interface FilterContext {}

Expand Down
8 changes: 2 additions & 6 deletions src/models/notification.ts
Original file line number Diff line number Diff line change
Expand Up @@ -66,11 +66,7 @@ export interface CommentNotificationPayload extends NotificationPayloadBase {
export type NotificationType = PaymentNotification | LikeNotification | CommentNotification;

export type NotificationPayloadType =
| PaymentNotificationPayload
| LikeNotificationPayload
| CommentNotificationPayload;
PaymentNotificationPayload | LikeNotificationPayload | CommentNotificationPayload;

export type NotificationResponseItem =
| PaymentNotificationResponseItem
| LikeNotificationResponseItem
| CommentNotificationResponseItem;
PaymentNotificationResponseItem | LikeNotificationResponseItem | CommentNotificationResponseItem;
2 changes: 1 addition & 1 deletion src/setup-tests.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { expect, afterEach } from "vitest";
import { cleanup } from "@testing-library/react";
import matchers from "@testing-library/jest-dom/matchers";
import * as matchers from "@testing-library/jest-dom/matchers";

// extends Vitest's expect method with methods from react-testing-library
expect.extend(matchers);
Expand Down
6 changes: 3 additions & 3 deletions src/setupProxy.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
const createProxyMiddleware = require("http-proxy-middleware");
const { createProxyMiddleware } = require("http-proxy-middleware");
require("dotenv").config();

module.exports = function (app) {
app.use(
createProxyMiddleware(["/login", "/callback", "/logout", "/checkAuth", "graphql"], {
createProxyMiddleware({
pathFilter: ["/login", "/callback", "/logout", "/checkAuth", "/graphql"],
target: `http://localhost:${process.env.BACKEND_PORT}`,
changeOrigin: true,
logLevel: "debug",
})
);
};
Loading