Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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 package.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
"@types/next": "^9.0.0",
"@types/react": "^18.2.0",
"@types/react-dom": "^18.2.0",
"@typescript-eslint/eslint-plugin": "^7.0.1",
"@typescript-eslint/eslint-plugin": "^8.0.0",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Updating @typescript-eslint/eslint-plugin to v8 creates a peer dependency mismatch with @typescript-eslint/parser, which is transitively pulled in as v7, likely breaking linting.
Severity: HIGH

Suggested Fix

To resolve the conflict, you can either update the eslint-config-mitodl dependency to a version that uses @typescript-eslint/parser@^8.x, or explicitly add @typescript-eslint/parser@^8.56.1 to the project's devDependencies to override the transitive dependency.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: package.json#L70

Potential issue: The update of `@typescript-eslint/eslint-plugin` to version `^8.0.0`
creates a peer dependency mismatch. The new plugin version resolves to `8.56.1`, which
requires `@typescript-eslint/parser` version `^8.56.1`. However, a transitive dependency
from `eslint-config-mitodl` provides `@typescript-eslint/parser` version `^7.0.1`. This
version incompatibility between the plugin and the parser will likely cause runtime
errors during linting, causing commands like `npm run lint` to fail.

Did we get this right? 👍 / 👎 to inform future reviews.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Updating @typescript-eslint/eslint-plugin to v8 creates a peer dependency conflict with the v7 parser required by eslint-config-mitodl, which will likely break the CI linting step.
Severity: HIGH

Suggested Fix

To resolve the conflict, you should explicitly add @typescript-eslint/parser with a version compatible with the new plugin (e.g., ^8.56.1) to the devDependencies in package.json. This will override the transitive dependency from eslint-config-mitodl and satisfy the peer dependency requirement.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: package.json#L70

Potential issue: The pull request updates `@typescript-eslint/eslint-plugin` to version
`^8.0.0`. This new version has a peer dependency requirement for
`@typescript-eslint/parser` version `^8.56.1`. However, another project dependency,
`eslint-config-mitodl`, pins the parser version to `^7.0.1`. This major version mismatch
between the plugin (v8) and the installed parser (v7) will cause the `yarn lint` command
in the CI pipeline to fail due to API incompatibilities or peer dependency errors,
breaking the build.

"eslint": "8.57.1",
"eslint-config-mitodl": "^2.0.0",
"eslint-plugin-react": "^7.37.1",
Expand Down
243 changes: 200 additions & 43 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -530,7 +530,7 @@ __metadata:
languageName: node
linkType: hard

"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0":
"@eslint-community/eslint-utils@npm:^4.2.0":
version: 4.9.0
resolution: "@eslint-community/eslint-utils@npm:4.9.0"
dependencies:
Expand All @@ -541,7 +541,25 @@ __metadata:
languageName: node
linkType: hard

"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.6.1":
"@eslint-community/eslint-utils@npm:^4.9.1":
version: 4.10.1
resolution: "@eslint-community/eslint-utils@npm:4.10.1"
dependencies:
eslint-visitor-keys: "npm:^3.4.3"
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
checksum: 10/61059b9f0192df5a86c441c03e0eedbda8c3810bb788775839afe4c5ec6bbdaa6433ac18001046b319390552435da3f6b8f5e18cca255993b3df37fe97a42b90
languageName: node
linkType: hard

"@eslint-community/regexpp@npm:^4.12.2":
version: 4.12.2
resolution: "@eslint-community/regexpp@npm:4.12.2"
checksum: 10/049b280fddf71dd325514e0a520024969431dc3a8b02fa77476e6820e9122f28ab4c9168c11821f91a27982d2453bcd7a66193356ea84e84fb7c8d793be1ba0c
languageName: node
linkType: hard

"@eslint-community/regexpp@npm:^4.6.1":
version: 4.12.1
resolution: "@eslint-community/regexpp@npm:4.12.1"
checksum: 10/c08f1dd7dd18fbb60bdd0d85820656d1374dd898af9be7f82cb00451313402a22d5e30569c150315b4385907cdbca78c22389b2a72ab78883b3173be317620cc
Expand Down Expand Up @@ -1236,7 +1254,7 @@ __metadata:
"@types/next": "npm:^9.0.0"
"@types/react": "npm:^18.2.0"
"@types/react-dom": "npm:^18.2.0"
"@typescript-eslint/eslint-plugin": "npm:^7.0.1"
"@typescript-eslint/eslint-plugin": "npm:^8.0.0"
axios: "npm:^1.6.7"
eslint: "npm:8.57.1"
eslint-config-mitodl: "npm:^2.0.0"
Expand Down Expand Up @@ -1982,26 +2000,23 @@ __metadata:
languageName: node
linkType: hard

"@typescript-eslint/eslint-plugin@npm:^7.0.1":
version: 7.18.0
resolution: "@typescript-eslint/eslint-plugin@npm:7.18.0"
"@typescript-eslint/eslint-plugin@npm:^8.0.0":
version: 8.66.0
resolution: "@typescript-eslint/eslint-plugin@npm:8.66.0"
dependencies:
"@eslint-community/regexpp": "npm:^4.10.0"
"@typescript-eslint/scope-manager": "npm:7.18.0"
"@typescript-eslint/type-utils": "npm:7.18.0"
"@typescript-eslint/utils": "npm:7.18.0"
"@typescript-eslint/visitor-keys": "npm:7.18.0"
graphemer: "npm:^1.4.0"
ignore: "npm:^5.3.1"
"@eslint-community/regexpp": "npm:^4.12.2"
"@typescript-eslint/scope-manager": "npm:8.66.0"
"@typescript-eslint/type-utils": "npm:8.66.0"
"@typescript-eslint/utils": "npm:8.66.0"
"@typescript-eslint/visitor-keys": "npm:8.66.0"
ignore: "npm:^7.0.5"
natural-compare: "npm:^1.4.0"
ts-api-utils: "npm:^1.3.0"
ts-api-utils: "npm:^2.5.0"
peerDependencies:
"@typescript-eslint/parser": ^7.0.0
eslint: ^8.56.0
peerDependenciesMeta:
typescript:
optional: true
checksum: 10/6ee4c61f145dc05f0a567b8ac01b5399ef9c75f58bc6e9a3ffca8927b15e2be2d4c3fd32a2c1a7041cc0848fdeadac30d9cb0d3bcd3835d301847a88ffd19c4d
"@typescript-eslint/parser": ^8.66.0
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: ">=4.8.4 <6.1.0"
checksum: 10/bb144ff0c27592b6a53d964fe1e2145dd0737f5fe50fe7dcd88217ca5ac4e470d7965d97745a63de16252ac2880d00732a472b9cec14d7d6929ebda97e7bcbb1
languageName: node
linkType: hard

Expand Down Expand Up @@ -2041,6 +2056,19 @@ __metadata:
languageName: node
linkType: hard

"@typescript-eslint/project-service@npm:8.66.0":
version: 8.66.0
resolution: "@typescript-eslint/project-service@npm:8.66.0"
dependencies:
"@typescript-eslint/tsconfig-utils": "npm:^8.66.0"
"@typescript-eslint/types": "npm:^8.66.0"
debug: "npm:^4.4.3"
peerDependencies:
typescript: ">=4.8.4 <6.1.0"
checksum: 10/e8a71f69ee7f4bd9ca1c6a0a5110361b9927d17df2f41cdf6d042203b49aabfbddece79dec7882fde8dc016b6278671a2ba3f7bf08e5ae241582627b68be3a8b
languageName: node
linkType: hard

"@typescript-eslint/scope-manager@npm:6.21.0":
version: 6.21.0
resolution: "@typescript-eslint/scope-manager@npm:6.21.0"
Expand All @@ -2061,20 +2089,38 @@ __metadata:
languageName: node
linkType: hard

"@typescript-eslint/type-utils@npm:7.18.0":
version: 7.18.0
resolution: "@typescript-eslint/type-utils@npm:7.18.0"
"@typescript-eslint/scope-manager@npm:8.66.0":
version: 8.66.0
resolution: "@typescript-eslint/scope-manager@npm:8.66.0"
dependencies:
"@typescript-eslint/typescript-estree": "npm:7.18.0"
"@typescript-eslint/utils": "npm:7.18.0"
debug: "npm:^4.3.4"
ts-api-utils: "npm:^1.3.0"
"@typescript-eslint/types": "npm:8.66.0"
"@typescript-eslint/visitor-keys": "npm:8.66.0"
checksum: 10/f2024cd2819dc3b967f32089ea1a0b9099acabf12860699432f0ba802d75b01ed35ea488a50576cae544813d5cbe9bd9ee5815bc4f11cefc89fe2fb24559238f
languageName: node
linkType: hard

"@typescript-eslint/tsconfig-utils@npm:8.66.0, @typescript-eslint/tsconfig-utils@npm:^8.66.0":
version: 8.66.0
resolution: "@typescript-eslint/tsconfig-utils@npm:8.66.0"
peerDependencies:
eslint: ^8.56.0
peerDependenciesMeta:
typescript:
optional: true
checksum: 10/bcc7958a4ecdddad8c92e17265175773e7dddf416a654c1a391e69cb16e43960b39d37b6ffa349941bf3635e050f0ca7cd8f56ec9dd774168f2bbe7afedc9676
typescript: ">=4.8.4 <6.1.0"
checksum: 10/271b28660edc9e6272ae07a91f8da2c69e8a6b009e8588f1009c485c11fe4e66e09356d50dbeabf8e6a44c95c8adeb630f1b6089bdd68aec2512d0036cef7704
languageName: node
linkType: hard

"@typescript-eslint/type-utils@npm:8.66.0":
version: 8.66.0
resolution: "@typescript-eslint/type-utils@npm:8.66.0"
dependencies:
"@typescript-eslint/types": "npm:8.66.0"
"@typescript-eslint/typescript-estree": "npm:8.66.0"
"@typescript-eslint/utils": "npm:8.66.0"
debug: "npm:^4.4.3"
ts-api-utils: "npm:^2.5.0"
peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: ">=4.8.4 <6.1.0"
checksum: 10/6d3c55a591b96cbac4ac845ad1d281bac54df12a631ca550370d266aed30760fa9d498e44b938e454941930e3decda820c6e544e0748254c5089425d120e1ed1
languageName: node
linkType: hard

Expand All @@ -2092,6 +2138,13 @@ __metadata:
languageName: node
linkType: hard

"@typescript-eslint/types@npm:8.66.0, @typescript-eslint/types@npm:^8.66.0":
version: 8.66.0
resolution: "@typescript-eslint/types@npm:8.66.0"
checksum: 10/de1ea79e7056c11e38e4001a899b88511793a0aa1702508af42ee179bc7303bed2eb02f177a7ae438f20eab00aee9407c7e842bec6fc5b7bb1fdcab4a7cd5c4b
languageName: node
linkType: hard

"@typescript-eslint/typescript-estree@npm:6.21.0":
version: 6.21.0
resolution: "@typescript-eslint/typescript-estree@npm:6.21.0"
Expand Down Expand Up @@ -2130,17 +2183,37 @@ __metadata:
languageName: node
linkType: hard

"@typescript-eslint/utils@npm:7.18.0":
version: 7.18.0
resolution: "@typescript-eslint/utils@npm:7.18.0"
"@typescript-eslint/typescript-estree@npm:8.66.0":
version: 8.66.0
resolution: "@typescript-eslint/typescript-estree@npm:8.66.0"
dependencies:
"@eslint-community/eslint-utils": "npm:^4.4.0"
"@typescript-eslint/scope-manager": "npm:7.18.0"
"@typescript-eslint/types": "npm:7.18.0"
"@typescript-eslint/typescript-estree": "npm:7.18.0"
"@typescript-eslint/project-service": "npm:8.66.0"
"@typescript-eslint/tsconfig-utils": "npm:8.66.0"
"@typescript-eslint/types": "npm:8.66.0"
"@typescript-eslint/visitor-keys": "npm:8.66.0"
debug: "npm:^4.4.3"
minimatch: "npm:^10.2.2"
semver: "npm:^7.7.3"
tinyglobby: "npm:^0.2.15"
ts-api-utils: "npm:^2.5.0"
peerDependencies:
eslint: ^8.56.0
checksum: 10/f43fedb4f4d2e3836bdf137889449063a55c0ece74fdb283929cd376197b992313be8ef4df920c1c801b5c3076b92964c84c6c3b9b749d263b648d0011f5926e
typescript: ">=4.8.4 <6.1.0"
checksum: 10/0834efcdd4468c0dd954089daf26b40175e204402bd4075b06cd910786bb6de7a15aec4e79e40f0980f39fce5bfd9c871ec8fcc6871a8895a34a273bb187fd26
languageName: node
linkType: hard

"@typescript-eslint/utils@npm:8.66.0":
version: 8.66.0
resolution: "@typescript-eslint/utils@npm:8.66.0"
dependencies:
"@eslint-community/eslint-utils": "npm:^4.9.1"
"@typescript-eslint/scope-manager": "npm:8.66.0"
"@typescript-eslint/types": "npm:8.66.0"
"@typescript-eslint/typescript-estree": "npm:8.66.0"
peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: ">=4.8.4 <6.1.0"
checksum: 10/e7a24ee0f35d58b4392daa03fb1ea37ab7e4519949a034be89151df1b0e9fc416831f50cb69f54150272e252cba350964632ee9bfbdb7e62ac599cc731de56e1
languageName: node
linkType: hard

Expand All @@ -2164,6 +2237,16 @@ __metadata:
languageName: node
linkType: hard

"@typescript-eslint/visitor-keys@npm:8.66.0":
version: 8.66.0
resolution: "@typescript-eslint/visitor-keys@npm:8.66.0"
dependencies:
"@typescript-eslint/types": "npm:8.66.0"
eslint-visitor-keys: "npm:^5.0.0"
checksum: 10/d47e936b10ec94a96f69f77a62463f4634fe72d12d42dd302d7777f7b98689468e0b67c538a52232b723695208f1b3fdeae5745eb3e71a70a90818fdd827a0bc
languageName: node
linkType: hard

"@ungap/structured-clone@npm:^1.2.0":
version: 1.3.0
resolution: "@ungap/structured-clone@npm:1.3.0"
Expand Down Expand Up @@ -2589,6 +2672,13 @@ __metadata:
languageName: node
linkType: hard

"balanced-match@npm:^4.0.2":
version: 4.0.4
resolution: "balanced-match@npm:4.0.4"
checksum: 10/fb07bb66a0959c2843fc055838047e2a95ccebb837c519614afb067ebfdf2fa967ca8d712c35ced07f2cd26fc6f07964230b094891315ad74f11eba3d53178a0
languageName: node
linkType: hard

"baseline-browser-mapping@npm:^2.8.3":
version: 2.8.7
resolution: "baseline-browser-mapping@npm:2.8.7"
Expand Down Expand Up @@ -2624,6 +2714,15 @@ __metadata:
languageName: node
linkType: hard

"brace-expansion@npm:^5.0.8":
version: 5.0.9
resolution: "brace-expansion@npm:5.0.9"
dependencies:
balanced-match: "npm:^4.0.2"
checksum: 10/d8683d612919212c7cf298861acd1c15101e7e2ad186e7ae9747390e5b3fc9e9b55ce71107570d32985784d9d88fbbe438d725863aed7b0f3d08d5f080535eec
languageName: node
linkType: hard

"braces@npm:^3.0.3":
version: 3.0.3
resolution: "braces@npm:3.0.3"
Expand Down Expand Up @@ -3017,7 +3116,7 @@ __metadata:
languageName: node
linkType: hard

"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4":
"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.4.3":
version: 4.4.3
resolution: "debug@npm:4.4.3"
dependencies:
Expand Down Expand Up @@ -3549,6 +3648,13 @@ __metadata:
languageName: node
linkType: hard

"eslint-visitor-keys@npm:^5.0.0":
version: 5.0.1
resolution: "eslint-visitor-keys@npm:5.0.1"
checksum: 10/f9cc1a57b75e0ef949545cac33d01e8367e302de4c1483266ed4d8646ee5c306376660196bbb38b004e767b7043d1e661cb4336b49eff634a1bbe75c1db709ec
languageName: node
linkType: hard

"eslint@npm:8.57.1, eslint@npm:^8.51.0, eslint@npm:^8.57.1":
version: 8.57.1
resolution: "eslint@npm:8.57.1"
Expand Down Expand Up @@ -4268,13 +4374,20 @@ __metadata:
languageName: node
linkType: hard

"ignore@npm:^5.2.0, ignore@npm:^5.2.4, ignore@npm:^5.3.1":
"ignore@npm:^5.2.0, ignore@npm:^5.2.4":
version: 5.3.2
resolution: "ignore@npm:5.3.2"
checksum: 10/cceb6a457000f8f6a50e1196429750d782afce5680dd878aa4221bd79972d68b3a55b4b1458fc682be978f4d3c6a249046aa0880637367216444ab7b014cfc98
languageName: node
linkType: hard

"ignore@npm:^7.0.5":
version: 7.0.6
resolution: "ignore@npm:7.0.6"
checksum: 10/8fdf3739b032de26f0a022471ec198be4529c605b7c2a551e6ece52d1be5eb22b920bff17d044d710512103f62bbf64ac4a53186b2323729e6e352b91df9c6ae
languageName: node
linkType: hard

"import-fresh@npm:^3.2.1":
version: 3.3.1
resolution: "import-fresh@npm:3.3.1"
Expand Down Expand Up @@ -5587,6 +5700,15 @@ __metadata:
languageName: node
linkType: hard

"minimatch@npm:^10.2.2":
version: 10.2.6
resolution: "minimatch@npm:10.2.6"
dependencies:
brace-expansion: "npm:^5.0.8"
checksum: 10/a5e43f7c57d6061a77da320b42aa35ffff826030cf67c83c0eee47a26ede4d66486935881492b968c609bf27a7d48cc4b9f54b2806643cd8fb792fcf9240cc1b
languageName: node
linkType: hard

"minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2":
version: 3.1.2
resolution: "minimatch@npm:3.1.2"
Expand Down Expand Up @@ -6170,6 +6292,13 @@ __metadata:
languageName: node
linkType: hard

"picomatch@npm:^4.0.4":
version: 4.0.5
resolution: "picomatch@npm:4.0.5"
checksum: 10/8bad770af9dcdb7f94ad1a893adcbe08a97d75a18872f8fed37161d3124217471c402b3929f051532f795f4ff2e53dcebb1644df4c1a5f3a9c476fef3b9f8c51
languageName: node
linkType: hard

"pirates@npm:^4.0.4":
version: 4.0.7
resolution: "pirates@npm:4.0.7"
Expand Down Expand Up @@ -6677,6 +6806,15 @@ __metadata:
languageName: node
linkType: hard

"semver@npm:^7.7.3":
version: 7.8.5
resolution: "semver@npm:7.8.5"
bin:
semver: bin/semver.js
checksum: 10/9b01d2ff11e6e4a4539b7ca3c5f280c8704cb397a28504469f2ed4f00ad2194748d756647362a9712fff30984d15772ab7f083108c2fb508e2096ae9e708f22c
languageName: node
linkType: hard

"set-function-length@npm:^1.2.2":
version: 1.2.2
resolution: "set-function-length@npm:1.2.2"
Expand Down Expand Up @@ -7246,6 +7384,16 @@ __metadata:
languageName: node
linkType: hard

"tinyglobby@npm:^0.2.15":
version: 0.2.17
resolution: "tinyglobby@npm:0.2.17"
dependencies:
fdir: "npm:^6.5.0"
picomatch: "npm:^4.0.4"
checksum: 10/f85e8a217d675c3f78d5f0ad25ea4557e7e023ed13ddc2b014da10bd0312eea53a34cd52356af07ccdff777f1243012547656282a4ca70936f68bf5065fbaa71
languageName: node
linkType: hard

"tmpl@npm:1.0.5":
version: 1.0.5
resolution: "tmpl@npm:1.0.5"
Expand Down Expand Up @@ -7292,6 +7440,15 @@ __metadata:
languageName: node
linkType: hard

"ts-api-utils@npm:^2.5.0":
version: 2.5.0
resolution: "ts-api-utils@npm:2.5.0"
peerDependencies:
typescript: ">=4.8.4"
checksum: 10/d5f1936f5618c6ab6942a97b78802217540ced00e7501862ae1f578d9a3aa189fc06050e64cb8951d21f7088e5fd35f53d2bf0d0370a883861c7b05e993ebc44
languageName: node
linkType: hard

"ts-node@npm:^10.9.2":
version: 10.9.2
resolution: "ts-node@npm:10.9.2"
Expand Down
Loading