From e44785cf0b67a8f6b2b3b8fbd595e8819feef750 Mon Sep 17 00:00:00 2001 From: Alexis Le Boucher Date: Tue, 17 Oct 2023 11:41:03 +0200 Subject: [PATCH] Upgraded packages and improved code --- @types/express/index.d.ts | 13 ++- README.md | 4 +- __tests__/e2e/auth.test.ts | 10 +- __tests__/utils/testsHelpers.ts | 7 +- __tests__/utils/userHelpers.ts | 2 +- package.json | 14 +-- src/controllers/auth/index.ts | 1 - src/controllers/users/index.ts | 1 - src/types/express/index.ts | 8 -- yarn.lock | 157 +++++++++++++++++--------------- 10 files changed, 114 insertions(+), 103 deletions(-) delete mode 100644 src/types/express/index.ts diff --git a/@types/express/index.d.ts b/@types/express/index.d.ts index 3aa2c42..235a753 100644 --- a/@types/express/index.d.ts +++ b/@types/express/index.d.ts @@ -1,7 +1,18 @@ -import { User } from "../../src/entities/user"; +import type { Request } from 'express'; + +import type { User } from '../../src/entities/user'; declare module 'express-serve-static-core' { interface Request { user?: User; } +} + +declare global { + /** + * Interface used to type request body. + */ + interface TypedRequestBody extends Request { + body: Partial; // Use Partial to set all properties optional because we cannot be sure the client will send all required properties + } } \ No newline at end of file diff --git a/README.md b/README.md index 55ab5ac..6e3e1fe 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,8 @@ End-to-end tests are already implemented. The code coverage is 100%. Packages are frequently upgraded. You can easily see the packages version status [here](https://docs.google.com/spreadsheets/d/1vIeh02Y_SNqVuoQYIxjEXZTnDHQHr5ctQAk2EgS84KQ/edit?usp=share_link). +⭐ If you like it, please leave a star. it helps me a lot! ⭐ + --- ## Features @@ -381,7 +383,7 @@ const res = await request(server).get('/api/auth/authenticated'); ``` To test a route as an authenticated user, use the `createAuthenticatedAgent` function: ```typescript -const agent = await createAuthenticatedAgent(server); +const { agent } = await createAuthenticatedAgent(server); const res = await agent.get('/api/auth/authenticated'); ``` Agents allow maintaining a session between multiple requests. diff --git a/__tests__/e2e/auth.test.ts b/__tests__/e2e/auth.test.ts index 1b2dba8..03ee53a 100644 --- a/__tests__/e2e/auth.test.ts +++ b/__tests__/e2e/auth.test.ts @@ -89,7 +89,7 @@ describe('Auth routes', () => { test('Throw an error if authenticated user tries to login', async () => { const username = 'fakeUser'; const password = 'fakeUserPwd'; - const agent = await createAuthenticatedAgent(server, { username, password }); + const { agent } = await createAuthenticatedAgent(server, { username, password }); const res = await agent.post('/api/auth/login').send({ login: username, password }); expect(res.statusCode).toEqual(403); @@ -129,7 +129,7 @@ describe('Auth routes', () => { }); test('Send "You are authenticated" for authenticated user', async () => { - const agent = await createAuthenticatedAgent(server); + const { agent } = await createAuthenticatedAgent(server); const res = await agent.get('/api/auth/authenticated'); @@ -146,7 +146,7 @@ describe('Auth routes', () => { test('Authenticated user is considered as non authenticated if user has been deleted', async () => { const username = 'fakeUser'; - const agent = await createAuthenticatedAgent(server, { username }); + const { agent } = await createAuthenticatedAgent(server, { username }); const repo = AppDataSource.getRepository(User); await repo.delete({ username }); @@ -158,7 +158,7 @@ describe('Auth routes', () => { }); test('Logout user', async () => { - const agent = await createAuthenticatedAgent(server); + const { agent } = await createAuthenticatedAgent(server); const res = await agent.post('/api/auth/logout'); @@ -176,7 +176,7 @@ describe('Auth routes', () => { const serverFailingLogout = await createTestServer(7778, true, { logout: (cb) => { cb('Error'); }, }); - const agent = await createAuthenticatedAgent(serverFailingLogout); + const { agent } = await createAuthenticatedAgent(serverFailingLogout); const res = await agent.post('/api/auth/logout'); try { diff --git a/__tests__/utils/testsHelpers.ts b/__tests__/utils/testsHelpers.ts index 18d5352..a2aaa02 100644 --- a/__tests__/utils/testsHelpers.ts +++ b/__tests__/utils/testsHelpers.ts @@ -65,8 +65,9 @@ export const clearDatabase = async () => { * @returns The created agent. */ export const createAuthenticatedAgent = async (server: Server, testUser?: TestUserProps) => { - const agent = request.agent(server); + const userAgent = request.agent(server); const user = await createTestUser(testUser); - await agent.post('/api/auth/login').send({ login: user.username, password: testUser?.password || 'password' }); - return agent; + await userAgent.post('/api/auth/login').send({ login: user.username, password: testUser?.password || 'password' }); + + return { agent: userAgent, user }; }; \ No newline at end of file diff --git a/__tests__/utils/userHelpers.ts b/__tests__/utils/userHelpers.ts index 2b9e458..7d41a95 100644 --- a/__tests__/utils/userHelpers.ts +++ b/__tests__/utils/userHelpers.ts @@ -10,7 +10,7 @@ export interface TestUserProps { /** * Create a user in database. * @param testUser - User informations. Optional. - * @returns + * @returns The created user */ export const createTestUser = async (testUser?: TestUserProps) => { const userRepo = AppDataSource.getRepository(User); diff --git a/package.json b/package.json index 6b6c2e6..78438dc 100644 --- a/package.json +++ b/package.json @@ -28,19 +28,19 @@ "@types/bcryptjs": "^2.4.4", "@types/connect-pg-simple": "^7.0.1", "@types/cors": "^2.8.14", - "@types/express": "^4.17.18", + "@types/express": "^4.17.19", "@types/express-session": "^1.17.8", "@types/http-errors": "^2.0.2", "@types/jest": "^29.5.5", "@types/morgan": "^1.9.6", - "@types/node": "^20.8.0", + "@types/node": "^20.8.6", "@types/passport": "^1.0.13", "@types/passport-local": "^1.0.36", - "@types/supertest": "^2.0.13", - "@types/validator": "^13.11.2", - "@typescript-eslint/eslint-plugin": "^6.7.3", - "@typescript-eslint/parser": "^6.7.3", - "eslint": "^8.50.0", + "@types/supertest": "^2.0.14", + "@types/validator": "^13.11.3", + "@typescript-eslint/eslint-plugin": "^6.8.0", + "@typescript-eslint/parser": "^6.8.0", + "eslint": "^8.51.0", "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-eslint-comments": "^3.2.0", "eslint-plugin-import": "^2.28.1", diff --git a/src/controllers/auth/index.ts b/src/controllers/auth/index.ts index 00412a2..0f3c248 100644 --- a/src/controllers/auth/index.ts +++ b/src/controllers/auth/index.ts @@ -3,7 +3,6 @@ import type { HttpError } from 'http-errors'; import createHttpError from 'http-errors'; import passport from 'passport'; -import type { TypedRequestBody } from '../../types/express'; import type { AuthLoginBody, AuthLoginResponse } from '../../types/routes/auth'; import type { User } from '../../entities/user'; import { validateLoginBody } from './validators'; diff --git a/src/controllers/users/index.ts b/src/controllers/users/index.ts index b9aeb81..90f5668 100644 --- a/src/controllers/users/index.ts +++ b/src/controllers/users/index.ts @@ -3,7 +3,6 @@ import createHttpError from 'http-errors'; import { AppDataSource } from '../../data-source'; import { User } from '../../entities/user'; -import type { TypedRequestBody } from '../../types/express'; import type { UsersCreateBody } from '../../types/routes/users'; import { validateCreateBody } from './validators'; diff --git a/src/types/express/index.ts b/src/types/express/index.ts deleted file mode 100644 index f074757..0000000 --- a/src/types/express/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type { Request } from 'express'; - -/** - * Interface used to type request body. - */ -export interface TypedRequestBody extends Request { - body: Partial; // Use Partial to set all properties optional because we cannot be sure the client will send all required properties -} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 842bb93..cfd09a9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -352,10 +352,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.50.0": - version "8.50.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.50.0.tgz#9e93b850f0f3fa35f5fa59adfd03adae8488e484" - integrity sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ== +"@eslint/js@8.51.0": + version "8.51.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.51.0.tgz#6d419c240cfb2b66da37df230f7e7eef801c32fa" + integrity sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg== "@humanwhocodes/config-array@^0.11.11": version "0.11.11" @@ -843,10 +843,10 @@ "@types/qs" "*" "@types/serve-static" "*" -"@types/express@^4.17.18": - version "4.17.18" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.18.tgz#efabf5c4495c1880df1bdffee604b143b29c4a95" - integrity sha512-Sxv8BSLLgsBYmcnGdGjjEjqET2U+AKAdCRODmMiq02FgjwuV75Ut85DRpvFjyw/Mk0vgUOliGRU0UUmuuZHByQ== +"@types/express@^4.17.19": + version "4.17.19" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.19.tgz#6ff9b4851fda132c5d3dcd2f89fdb6a7a0031ced" + integrity sha512-UtOfBtzN9OvpZPPbnnYunfjM7XCI4jyk1NvnFhTVz5krYAnW4o5DCoIekvms+8ApqhB4+9wSge1kBijdfTSmfg== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^4.17.33" @@ -919,10 +919,12 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.14.6.tgz#ae1973dd2b1eeb1825695bb11ebfb746d27e3e93" integrity sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA== -"@types/node@^20.8.0": - version "20.8.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.8.0.tgz#10ddf0119cf20028781c06d7115562934e53f745" - integrity sha512-LzcWltT83s1bthcvjBmiBvGJiiUe84NWRHkw+ZV6Fr41z2FbIzvc815dk2nQ3RAKMuN2fkenM/z3Xv2QzEpYxQ== +"@types/node@^20.8.6": + version "20.8.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.8.6.tgz#0dbd4ebcc82ad0128df05d0e6f57e05359ee47fa" + integrity sha512-eWO4K2Ji70QzKUqRy6oyJWUeB7+g2cRagT3T/nxYibYcT4y2BDL8lqolRXjTHmkZCdJfIPaY73KbJAZmcryxTQ== + dependencies: + undici-types "~5.25.1" "@types/passport-local@^1.0.36": version "1.0.36" @@ -1009,17 +1011,17 @@ "@types/cookiejar" "*" "@types/node" "*" -"@types/supertest@^2.0.13": - version "2.0.13" - resolved "https://registry.yarnpkg.com/@types/supertest/-/supertest-2.0.13.tgz#797b3df9abb9a09c4c740c9c615d618c7921ad41" - integrity sha512-Vc/5/pRwSC055fU7Wu8erTj4gLpID9SdG2zRMuqaHLni3GTsrJ8gyB6MbFZZGLW6vQaGPhiUWRB6uWglv87MEg== +"@types/supertest@^2.0.14": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@types/supertest/-/supertest-2.0.14.tgz#e8fb6f6feed58a0dd5c2036227865dfa6ff7411d" + integrity sha512-Q900DeeHNFF3ZYYepf/EyJfZDA2JrnWLaSQ0YNV7+2GTo8IlJzauEnDGhya+hauncpBYTYGpVHwGdssJeAQ7eA== dependencies: "@types/superagent" "*" -"@types/validator@^13.11.2": - version "13.11.2" - resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.11.2.tgz#a2502325a3c0bd29f36dbac3b763223edd801e17" - integrity sha512-nIKVVQKT6kGKysnNt+xLobr+pFJNssJRi2s034wgWeFBUx01fI8BeHTW2TcRp7VcFu9QCYG8IlChTuovcm0oKQ== +"@types/validator@^13.11.3": + version "13.11.3" + resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.11.3.tgz#6afba392782b44dd6cfeb390cc06c45833066ad9" + integrity sha512-jxjhh33aTYDHnrV1vZ3AvWQHfrGx2f5UxKjaP13l5q04fG+/hCKKm0MfodIoCqxevhbcfBb6ZjynyHuQ/jueGQ== "@types/yargs-parser@*": version "21.0.0" @@ -1033,16 +1035,16 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^6.7.3": - version "6.7.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.3.tgz#d98046e9f7102d49a93d944d413c6055c47fafd7" - integrity sha512-vntq452UHNltxsaaN+L9WyuMch8bMd9CqJ3zhzTPXXidwbf5mqqKCVXEuvRZUqLJSTLeWE65lQwyXsRGnXkCTA== +"@typescript-eslint/eslint-plugin@^6.8.0": + version "6.8.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.8.0.tgz#06abe4265e7c82f20ade2dcc0e3403c32d4f148b" + integrity sha512-GosF4238Tkes2SHPQ1i8f6rMtG6zlKwMEB0abqSJ3Npvos+doIlc/ATG+vX1G9coDF3Ex78zM3heXHLyWEwLUw== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.7.3" - "@typescript-eslint/type-utils" "6.7.3" - "@typescript-eslint/utils" "6.7.3" - "@typescript-eslint/visitor-keys" "6.7.3" + "@typescript-eslint/scope-manager" "6.8.0" + "@typescript-eslint/type-utils" "6.8.0" + "@typescript-eslint/utils" "6.8.0" + "@typescript-eslint/visitor-keys" "6.8.0" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -1050,72 +1052,72 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^6.7.3": - version "6.7.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.7.3.tgz#aaf40092a32877439e5957e18f2d6a91c82cc2fd" - integrity sha512-TlutE+iep2o7R8Lf+yoer3zU6/0EAUc8QIBB3GYBc1KGz4c4TRm83xwXUZVPlZ6YCLss4r77jbu6j3sendJoiQ== +"@typescript-eslint/parser@^6.8.0": + version "6.8.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.8.0.tgz#bb2a969d583db242f1ee64467542f8b05c2e28cb" + integrity sha512-5tNs6Bw0j6BdWuP8Fx+VH4G9fEPDxnVI7yH1IAPkQH5RUtvKwRoqdecAPdQXv4rSOADAaz1LFBZvZG7VbXivSg== dependencies: - "@typescript-eslint/scope-manager" "6.7.3" - "@typescript-eslint/types" "6.7.3" - "@typescript-eslint/typescript-estree" "6.7.3" - "@typescript-eslint/visitor-keys" "6.7.3" + "@typescript-eslint/scope-manager" "6.8.0" + "@typescript-eslint/types" "6.8.0" + "@typescript-eslint/typescript-estree" "6.8.0" + "@typescript-eslint/visitor-keys" "6.8.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.7.3": - version "6.7.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.7.3.tgz#07e5709c9bdae3eaf216947433ef97b3b8b7d755" - integrity sha512-wOlo0QnEou9cHO2TdkJmzF7DFGvAKEnB82PuPNHpT8ZKKaZu6Bm63ugOTn9fXNJtvuDPanBc78lGUGGytJoVzQ== +"@typescript-eslint/scope-manager@6.8.0": + version "6.8.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.8.0.tgz#5cac7977385cde068ab30686889dd59879811efd" + integrity sha512-xe0HNBVwCph7rak+ZHcFD6A+q50SMsFwcmfdjs9Kz4qDh5hWhaPhFjRs/SODEhroBI5Ruyvyz9LfwUJ624O40g== dependencies: - "@typescript-eslint/types" "6.7.3" - "@typescript-eslint/visitor-keys" "6.7.3" + "@typescript-eslint/types" "6.8.0" + "@typescript-eslint/visitor-keys" "6.8.0" -"@typescript-eslint/type-utils@6.7.3": - version "6.7.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.7.3.tgz#c2c165c135dda68a5e70074ade183f5ad68f3400" - integrity sha512-Fc68K0aTDrKIBvLnKTZ5Pf3MXK495YErrbHb1R6aTpfK5OdSFj0rVN7ib6Tx6ePrZ2gsjLqr0s98NG7l96KSQw== +"@typescript-eslint/type-utils@6.8.0": + version "6.8.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.8.0.tgz#50365e44918ca0fd159844b5d6ea96789731e11f" + integrity sha512-RYOJdlkTJIXW7GSldUIHqc/Hkto8E+fZN96dMIFhuTJcQwdRoGN2rEWA8U6oXbLo0qufH7NPElUb+MceHtz54g== dependencies: - "@typescript-eslint/typescript-estree" "6.7.3" - "@typescript-eslint/utils" "6.7.3" + "@typescript-eslint/typescript-estree" "6.8.0" + "@typescript-eslint/utils" "6.8.0" debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/types@6.7.3": - version "6.7.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.7.3.tgz#0402b5628a63f24f2dc9d4a678e9a92cc50ea3e9" - integrity sha512-4g+de6roB2NFcfkZb439tigpAMnvEIg3rIjWQ+EM7IBaYt/CdJt6em9BJ4h4UpdgaBWdmx2iWsafHTrqmgIPNw== +"@typescript-eslint/types@6.8.0": + version "6.8.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.8.0.tgz#1ab5d4fe1d613e3f65f6684026ade6b94f7e3ded" + integrity sha512-p5qOxSum7W3k+llc7owEStXlGmSl8FcGvhYt8Vjy7FqEnmkCVlM3P57XQEGj58oqaBWDQXbJDZxwUWMS/EAPNQ== -"@typescript-eslint/typescript-estree@6.7.3": - version "6.7.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.3.tgz#ec5bb7ab4d3566818abaf0e4a8fa1958561b7279" - integrity sha512-YLQ3tJoS4VxLFYHTw21oe1/vIZPRqAO91z6Uv0Ss2BKm/Ag7/RVQBcXTGcXhgJMdA4U+HrKuY5gWlJlvoaKZ5g== +"@typescript-eslint/typescript-estree@6.8.0": + version "6.8.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.8.0.tgz#9565f15e0cd12f55cf5aa0dfb130a6cb0d436ba1" + integrity sha512-ISgV0lQ8XgW+mvv5My/+iTUdRmGspducmQcDw5JxznasXNnZn3SKNrTRuMsEXv+V/O+Lw9AGcQCfVaOPCAk/Zg== dependencies: - "@typescript-eslint/types" "6.7.3" - "@typescript-eslint/visitor-keys" "6.7.3" + "@typescript-eslint/types" "6.8.0" + "@typescript-eslint/visitor-keys" "6.8.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.7.3": - version "6.7.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.7.3.tgz#96c655816c373135b07282d67407cb577f62e143" - integrity sha512-vzLkVder21GpWRrmSR9JxGZ5+ibIUSudXlW52qeKpzUEQhRSmyZiVDDj3crAth7+5tmN1ulvgKaCU2f/bPRCzg== +"@typescript-eslint/utils@6.8.0": + version "6.8.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.8.0.tgz#d42939c2074c6b59844d0982ce26a51d136c4029" + integrity sha512-dKs1itdE2qFG4jr0dlYLQVppqTE+Itt7GmIf/vX6CSvsW+3ov8PbWauVKyyfNngokhIO9sKZeRGCUo1+N7U98Q== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.7.3" - "@typescript-eslint/types" "6.7.3" - "@typescript-eslint/typescript-estree" "6.7.3" + "@typescript-eslint/scope-manager" "6.8.0" + "@typescript-eslint/types" "6.8.0" + "@typescript-eslint/typescript-estree" "6.8.0" semver "^7.5.4" -"@typescript-eslint/visitor-keys@6.7.3": - version "6.7.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.3.tgz#83809631ca12909bd2083558d2f93f5747deebb2" - integrity sha512-HEVXkU9IB+nk9o63CeICMHxFWbHWr3E1mpilIQBe9+7L/lH97rleFLVtYsfnWB+JVMaiFnEaxvknvmIzX+CqVg== +"@typescript-eslint/visitor-keys@6.8.0": + version "6.8.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.8.0.tgz#cffebed56ae99c45eba901c378a6447b06be58b8" + integrity sha512-oqAnbA7c+pgOhW2OhGvxm0t1BULX5peQI/rLsNDpGM78EebV3C9IGbX5HNZabuZ6UQrYveCLjKo8Iy/lLlBkkg== dependencies: - "@typescript-eslint/types" "6.7.3" + "@typescript-eslint/types" "6.8.0" eslint-visitor-keys "^3.4.1" abbrev@1: @@ -2118,15 +2120,15 @@ eslint-visitor-keys@^3.4.3: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@^8.50.0: - version "8.50.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.50.0.tgz#2ae6015fee0240fcd3f83e1e25df0287f487d6b2" - integrity sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg== +eslint@^8.51.0: + version "8.51.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.51.0.tgz#4a82dae60d209ac89a5cff1604fea978ba4950f3" + integrity sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" "@eslint/eslintrc" "^2.1.2" - "@eslint/js" "8.50.0" + "@eslint/js" "8.51.0" "@humanwhocodes/config-array" "^0.11.11" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -4836,6 +4838,11 @@ undefsafe@^2.0.5: resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== +undici-types@~5.25.1: + version "5.25.3" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.25.3.tgz#e044115914c85f0bcbb229f346ab739f064998c3" + integrity sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA== + unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"