diff --git a/apps/nextjs-app/package.json b/apps/nextjs-app/package.json index b1dad19eb36..84672586d26 100644 --- a/apps/nextjs-app/package.json +++ b/apps/nextjs-app/package.json @@ -103,7 +103,6 @@ "symlink-dir": "5.0.1", "sync-directory": "5.1.7", "tailwindcss": "3.1.8", - "ts-jest": "29.0.1", "typescript": "4.8.3", "vite": "3.1.0", "vite-plugin-svgr": "2.2.1", @@ -112,6 +111,7 @@ }, "dependencies": { "@babel/core": "7.19.0", + "@belgattitude/http-exception": "1.0.0", "@emotion/cache": "11.10.3", "@emotion/react": "11.10.4", "@emotion/server": "11.10.0", @@ -125,7 +125,7 @@ "@sentry/react": "7.12.1", "@soluble/cache-interop": "0.11.1", "@soluble/cache-ioredis": "0.12.1", - "@tsed/exceptions": "6.132.0", + "@tanstack/react-query": "4.3.4", "@your-org/api-gateway": "workspace:^", "@your-org/common-i18n": "workspace:^", "@your-org/core-lib": "workspace:^", @@ -145,12 +145,11 @@ "next-i18next": "12.0.1", "next-secure-headers": "2.2.0", "next-seo": "5.5.0", - "next-transpile-modules": "9.0.0", + "next-transpile-modules": "patch:next-transpile-modules@npm%3A9.0.0#~/.yarn/patches/next-transpile-modules-npm-9.0.0-f224c724ec.patch", "picocolors": "1.0.0", "react": "18.2.0", "react-dom": "18.2.0", "react-i18next": "11.18.6", - "react-query": "4.0.0-beta.23", "rooks": "7.1.2", "sharp": "0.31.0", "superjson": "1.9.1", diff --git a/apps/nextjs-app/src/AppProviders.tsx b/apps/nextjs-app/src/AppProviders.tsx index cbff86df47d..94d387cc446 100644 --- a/apps/nextjs-app/src/AppProviders.tsx +++ b/apps/nextjs-app/src/AppProviders.tsx @@ -1,8 +1,8 @@ import type { EmotionCache } from '@emotion/react'; import { ThemeProvider as MuiThemeProvider } from '@mui/material'; +import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import type { FC, ReactNode } from 'react'; -import { QueryClient, QueryClientProvider } from 'react-query'; import { muiTheme } from '@/themes/mui/mui.theme'; const queryClient = new QueryClient({ diff --git a/apps/nextjs-app/src/backend/api/rest/post-repository.ssr.ts b/apps/nextjs-app/src/backend/api/rest/post-repository.ssr.ts index 89b8b5eb9cb..b18d0ce430b 100644 --- a/apps/nextjs-app/src/backend/api/rest/post-repository.ssr.ts +++ b/apps/nextjs-app/src/backend/api/rest/post-repository.ssr.ts @@ -1,4 +1,7 @@ -import { InternalServerError, NotFound } from '@tsed/exceptions'; +import { + HttpInternalServerError, + HttpNotFound, +} from '@belgattitude/http-exception'; import type { UnPromisify } from '@your-org/core-lib'; import { Asserts } from '@your-org/core-lib'; import type { PrismaClientDbMain } from '@your-org/db-main-prisma'; @@ -21,11 +24,14 @@ export class PostRepositorySsr { }); Asserts.isPresent( post, - () => new NotFound(`Post ${postId} can't be found`) + () => new HttpNotFound(`Post ${postId} can't be found`) ); return post; } catch (e) { - throw new InternalServerError(`Post ${postId} can't be retrieved`, e); + throw new HttpInternalServerError({ + message: `Post ${postId} can't be retrieved`, + cause: e instanceof Error ? e : undefined, + }); } }; @@ -55,7 +61,10 @@ export class PostRepositorySsr { orderBy: { publishedAt: 'desc' }, }); } catch (e) { - throw new InternalServerError(`Posts can't be retrieved`, e); + throw new HttpInternalServerError({ + message: `Posts can't be retrieved`, + cause: e instanceof Error ? e : undefined, + }); } }; } diff --git a/apps/nextjs-app/src/backend/features/poem/SearchPoems/SearchPoemsQuery.ts b/apps/nextjs-app/src/backend/features/poem/SearchPoems/SearchPoemsQuery.ts index 7c45fc7d3b9..942a61b2393 100644 --- a/apps/nextjs-app/src/backend/features/poem/SearchPoems/SearchPoemsQuery.ts +++ b/apps/nextjs-app/src/backend/features/poem/SearchPoems/SearchPoemsQuery.ts @@ -1,4 +1,4 @@ -import { InternalServerError } from '@tsed/exceptions'; +import { HttpInternalServerError } from '@belgattitude/http-exception'; import type { UnPromisify } from '@your-org/core-lib'; import type { PrismaClientDbMain } from '@your-org/db-main-prisma'; import type { SearchPoemsParams } from './SearchPoems.types'; @@ -43,7 +43,10 @@ export class SearchPoemsQuery { orderBy: { author: 'desc' }, }); } catch (e) { - throw new InternalServerError(`Poems can't be retrieved`, e); + throw new HttpInternalServerError({ + message: `Poems can't be retrieved`, + cause: e instanceof Error ? e : undefined, + }); } }; } diff --git a/apps/nextjs-app/src/features/demo/blocks/poetry/PoetryBlock.tsx b/apps/nextjs-app/src/features/demo/blocks/poetry/PoetryBlock.tsx index 4dcaf0adc08..d36020c00ce 100644 --- a/apps/nextjs-app/src/features/demo/blocks/poetry/PoetryBlock.tsx +++ b/apps/nextjs-app/src/features/demo/blocks/poetry/PoetryBlock.tsx @@ -1,5 +1,5 @@ +import { useQuery } from '@tanstack/react-query'; import type { FC } from 'react'; -import { useQuery } from 'react-query'; import { fetchPoemsWithKy } from '../../api/fetch-poems-ky.api'; import { PoemGrid } from '../../components/PoemGrid'; diff --git a/apps/nextjs-app/src/pages/api/rest/poem/index.ts b/apps/nextjs-app/src/pages/api/rest/poem/index.ts index 4d187496b45..a7da9d0c1dd 100644 --- a/apps/nextjs-app/src/pages/api/rest/poem/index.ts +++ b/apps/nextjs-app/src/pages/api/rest/poem/index.ts @@ -1,4 +1,4 @@ -import { MethodNotAllowed } from '@tsed/exceptions'; +import { HttpMethodNotAllowed } from '@belgattitude/http-exception'; import { JsonApiResponseFactory } from '@your-org/core-lib/api/json-api'; import { JsonApiErrorFactory } from '@your-org/core-lib/api/json-api/json-api-error.factory'; import type { NextApiRequest, NextApiResponse } from 'next'; @@ -32,11 +32,11 @@ export default async function handleListPoems( } } else { return res - .status(MethodNotAllowed.STATUS) + .status(HttpMethodNotAllowed.STATUS) .json( JsonApiResponseFactory.fromError( `The HTTP ${req.method} method is not supported at this route.`, - MethodNotAllowed.STATUS + HttpMethodNotAllowed.STATUS ) ); } diff --git a/apps/nextjs-app/src/pages/api/rest/post/[id].ts b/apps/nextjs-app/src/pages/api/rest/post/[id].ts index 33ec10d7c3e..b0e17f8d213 100644 --- a/apps/nextjs-app/src/pages/api/rest/post/[id].ts +++ b/apps/nextjs-app/src/pages/api/rest/post/[id].ts @@ -1,4 +1,7 @@ -import { BadRequest, MethodNotAllowed } from '@tsed/exceptions'; +import { + HttpBadRequest, + HttpMethodNotAllowed, +} from '@belgattitude/http-exception'; import { Asserts } from '@your-org/core-lib'; import { JsonApiResponseFactory } from '@your-org/core-lib/api/json-api'; import { JsonApiErrorFactory } from '@your-org/core-lib/api/json-api/json-api-error.factory'; @@ -17,7 +20,7 @@ export default async function handleGetPost( const postRepo = new PostRepositorySsr(prismaClient); try { - Asserts.safeInteger(postId, () => new BadRequest('Wrong param id')); + Asserts.safeInteger(postId, () => new HttpBadRequest('Wrong param id')); return res.json( JsonApiResponseFactory.fromSuccess(await postRepo.getPost(postId)) @@ -30,11 +33,11 @@ export default async function handleGetPost( } } else { return res - .status(MethodNotAllowed.STATUS) + .status(HttpMethodNotAllowed.STATUS) .json( JsonApiResponseFactory.fromError( `The HTTP ${req.method} method is not supported at this route.`, - MethodNotAllowed.STATUS + HttpMethodNotAllowed.STATUS ) ); } diff --git a/apps/nextjs-app/src/pages/api/rest/post/index.ts b/apps/nextjs-app/src/pages/api/rest/post/index.ts index 89fee06eee5..04d4b8660e1 100644 --- a/apps/nextjs-app/src/pages/api/rest/post/index.ts +++ b/apps/nextjs-app/src/pages/api/rest/post/index.ts @@ -1,4 +1,4 @@ -import { MethodNotAllowed } from '@tsed/exceptions'; +import { HttpMethodNotAllowed } from '@belgattitude/http-exception'; import { JsonApiResponseFactory } from '@your-org/core-lib/api/json-api'; import { JsonApiErrorFactory } from '@your-org/core-lib/api/json-api/json-api-error.factory'; import type { NextApiRequest, NextApiResponse } from 'next'; @@ -27,11 +27,11 @@ export default async function handleListPosts( } } else { return res - .status(MethodNotAllowed.STATUS) + .status(HttpMethodNotAllowed.STATUS) .json( JsonApiResponseFactory.fromError( `The HTTP ${req.method} method is not supported at this route.`, - MethodNotAllowed.STATUS + HttpMethodNotAllowed.STATUS ) ); } diff --git a/apps/nextjs-app/src/pages/home.tsx b/apps/nextjs-app/src/pages/home.tsx index f7d7466bb42..93a1c504346 100644 --- a/apps/nextjs-app/src/pages/home.tsx +++ b/apps/nextjs-app/src/pages/home.tsx @@ -1,5 +1,4 @@ -import { BadRequest } from '@tsed/exceptions'; - +import { HttpBadRequest } from '@belgattitude/http-exception'; import type { GetServerSideProps, InferGetServerSidePropsType } from 'next'; import { serverSideTranslations } from 'next-i18next/serverSideTranslations'; import { homeConfig } from '@/features/home/home.config'; @@ -20,7 +19,7 @@ export const getServerSideProps: GetServerSideProps = async ( ) => { const { locale } = context; if (locale === undefined) { - throw new BadRequest('locale is missing'); + throw new HttpBadRequest('locale is missing'); } const { i18nNamespaces } = homeConfig; return { diff --git a/apps/nextjs-app/src/pages/index.tsx b/apps/nextjs-app/src/pages/index.tsx index 755dd335f97..7da5e6b60d3 100644 --- a/apps/nextjs-app/src/pages/index.tsx +++ b/apps/nextjs-app/src/pages/index.tsx @@ -1,4 +1,4 @@ -import { BadRequest } from '@tsed/exceptions'; +import { HttpBadRequest } from '@belgattitude/http-exception'; import type { GetStaticProps, InferGetStaticPropsType } from 'next'; import { serverSideTranslations } from 'next-i18next/serverSideTranslations'; import { demoConfig } from '@/features/demo/demo.config'; @@ -17,7 +17,7 @@ export default function DemoRoute( export const getStaticProps: GetStaticProps = async (context) => { const { locale } = context; if (locale === undefined) { - throw new BadRequest('locale is missing'); + throw new HttpBadRequest('locale is missing'); } const { i18nNamespaces } = demoConfig; return { diff --git a/packages/core-lib/package.json b/packages/core-lib/package.json index b28925616d4..a22b99eafa4 100644 --- a/packages/core-lib/package.json +++ b/packages/core-lib/package.json @@ -32,7 +32,7 @@ "fix-all-files": "eslint . --ext .ts,.tsx,.js,.jsx,.cjs,.mjs --fix" }, "dependencies": { - "@tsed/exceptions": "^6.100.3", + "@belgattitude/http-exception": "^1.0.0", "dequal": "^2.0.0" }, "peerDependencies": { diff --git a/packages/core-lib/src/api/json-api/json-api-error.factory.ts b/packages/core-lib/src/api/json-api/json-api-error.factory.ts index 5e696d769d3..414f8d55236 100644 --- a/packages/core-lib/src/api/json-api/json-api-error.factory.ts +++ b/packages/core-lib/src/api/json-api/json-api-error.factory.ts @@ -1,4 +1,5 @@ -import type { Exception } from '@tsed/exceptions'; +import type { HttpException } from '@belgattitude/http-exception'; +import { isHttpException } from '@belgattitude/http-exception'; import type { JsonApiError } from './json-api-response.types'; export class JsonApiErrorFactory { @@ -10,25 +11,33 @@ export class JsonApiErrorFactory { typeof error === 'string' || error instanceof Error ? error : `Unknown error (type of catched variable: ${typeof error}`; - return JsonApiErrorFactory.fromTsedException(e, defaultHttpStatus); + return JsonApiErrorFactory.fromHttpException(e, defaultHttpStatus); }; - static fromTsedException = ( - exception: Exception | Error | string, + static fromHttpException = ( + exception: HttpException | Error | string, /** fallback http status if it can't be inferred from exception */ defaultHttpStatus = 500 ): JsonApiError => { - let title: string, status: number; if (typeof exception === 'string') { - title = exception; - status = defaultHttpStatus; - } else { - title = exception.message; - status = 'status' in exception ? exception.status : defaultHttpStatus; + return { + title: exception, + status: defaultHttpStatus, + }; } + if (isHttpException(exception)) { + return { + title: exception.message, + status: exception.statusCode, + }; + } + const { message, status, statusCode } = { + ...{ status: null, statusCode: null }, + ...exception, + }; return { - title, - status, + title: message, + status: status ?? statusCode ?? defaultHttpStatus, }; }; } diff --git a/yarn.lock b/yarn.lock index 5c36688b7cc..cee90ea4d8b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1745,7 +1745,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.10.4, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.14.5, @babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.17.2, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.17.9, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.18.9, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.5.0, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.6.2, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": +"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.10.4, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.14.5, @babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.17.2, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.18.9, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.5.0, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": version: 7.18.9 resolution: "@babel/runtime@npm:7.18.9" dependencies: @@ -1808,6 +1808,13 @@ __metadata: languageName: node linkType: hard +"@belgattitude/http-exception@npm:1.0.0, @belgattitude/http-exception@npm:^1.0.0": + version: 1.0.0 + resolution: "@belgattitude/http-exception@npm:1.0.0" + checksum: 85bb202005dd75668d6eee2e1b64e9d1b05e877a77064ee28051f8b8e0d8dcd14825d72202658e9206d1ec707d5c8b6f5709840f03c50699078b3b179dd94be6 + languageName: node + linkType: hard + "@changesets/apply-release-plan@npm:^6.1.0": version: 6.1.0 resolution: "@changesets/apply-release-plan@npm:6.1.0" @@ -6933,6 +6940,32 @@ __metadata: languageName: node linkType: hard +"@tanstack/query-core@npm:4.3.4": + version: 4.3.4 + resolution: "@tanstack/query-core@npm:4.3.4" + checksum: b34d753043e80df5bac4672f21cfc1dcdc1b66793868d5c07ad1d7adebc2fd3f519d2489db32bc53f2302033aa90195ec1d031c3d769f08fee75555e90b4f14e + languageName: node + linkType: hard + +"@tanstack/react-query@npm:4.3.4": + version: 4.3.4 + resolution: "@tanstack/react-query@npm:4.3.4" + dependencies: + "@tanstack/query-core": "npm:4.3.4" + use-sync-external-store: "npm:^1.2.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-native: "*" + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + checksum: 9e4deb4f0b0ab71ffbbe552464522692ed5a575e55926f4d662a1c51ea677e5758ee70778f748cb517300bf4947aa7f94e746aeebf4cb21cdb8f67c575338893 + languageName: node + linkType: hard + "@testing-library/dom@npm:8.17.1, @testing-library/dom@npm:^8.11.1, @testing-library/dom@npm:^8.5.0": version: 8.17.1 resolution: "@testing-library/dom@npm:8.17.1" @@ -7072,17 +7105,6 @@ __metadata: languageName: node linkType: hard -"@tsed/exceptions@npm:6.132.0, @tsed/exceptions@npm:^6.100.3": - version: 6.132.0 - resolution: "@tsed/exceptions@npm:6.132.0" - dependencies: - change-case: "npm:4.1.2" - statuses: "npm:>=2.0.1" - tslib: "npm:2.4.0" - checksum: 18d28f18ca2d1b46bf8fb40f9ed4563718c10094af8304b84baf878d386ed1e03a0cfcdf8e930bf88335a570b9528d7c88432fd728460f028ca3841205d8c880 - languageName: node - linkType: hard - "@types/acorn@npm:^4.0.0": version: 4.0.6 resolution: "@types/acorn@npm:4.0.6" @@ -7699,13 +7721,6 @@ __metadata: languageName: node linkType: hard -"@types/use-sync-external-store@npm:^0.0.3": - version: 0.0.3 - resolution: "@types/use-sync-external-store@npm:0.0.3" - checksum: 803c4a8f739c2131e0fc8f73db317513627d7d14532bf674273048ccbf875603a06957a0bca4a154faa59ba4979c08afde38bc8c2e7d2c3e21bf8c57a4be229d - languageName: node - linkType: hard - "@types/webpack-env@npm:^1.16.0": version: 1.16.3 resolution: "@types/webpack-env@npm:1.16.3" @@ -8514,9 +8529,9 @@ __metadata: version: 0.0.0-use.local resolution: "@your-org/core-lib@workspace:packages/core-lib" dependencies: + "@belgattitude/http-exception": "npm:^1.0.0" "@testing-library/react": "npm:13.4.0" "@testing-library/react-hooks": "npm:8.0.1" - "@tsed/exceptions": "npm:^6.100.3" "@types/jest": "npm:29.0.2" "@types/node": "npm:18.7.18" "@types/react": "npm:18.0.20" @@ -10057,7 +10072,7 @@ __metadata: languageName: node linkType: hard -"big-integer@npm:^1.6.16, big-integer@npm:^1.6.7": +"big-integer@npm:^1.6.7": version: 1.6.51 resolution: "big-integer@npm:1.6.51" checksum: fc20ceb6b15f635783e09b596749323850a39565b5c0a73831bd1f32270aa4103ef025e1ca7887333e9ba50625328f8c415e56f17131f6d6e737d2dcc4c4ee53 @@ -10224,22 +10239,6 @@ __metadata: languageName: node linkType: hard -"broadcast-channel@npm:^3.4.1": - version: 3.7.0 - resolution: "broadcast-channel@npm:3.7.0" - dependencies: - "@babel/runtime": "npm:^7.7.2" - detect-node: "npm:^2.1.0" - js-sha3: "npm:0.8.0" - microseconds: "npm:0.2.0" - nano-time: "npm:1.0.0" - oblivious-set: "npm:1.0.0" - rimraf: "npm:3.0.2" - unload: "npm:2.2.0" - checksum: 8f497033e92a0185222f97b6e9fcd692872d96057682def16e559c28f88b731be8417a385936f6f560ec4a7ccbcba5a764dea6cd566cb1c41550de27347c3dd6 - languageName: node - linkType: hard - "brorand@npm:^1.0.1, brorand@npm:^1.1.0": version: 1.1.0 resolution: "brorand@npm:1.1.0" @@ -12556,13 +12555,6 @@ __metadata: languageName: node linkType: hard -"detect-node@npm:^2.0.4, detect-node@npm:^2.1.0": - version: 2.1.0 - resolution: "detect-node@npm:2.1.0" - checksum: 044e6455adc3b343ff4b8815d17a76914a1d3bc399709f8e8b249f8593111b6befc3d684358f8256e9a787e209f16bab60e9d01595e47b1d236efd4833147f5c - languageName: node - linkType: hard - "detect-package-manager@npm:^2.0.1": version: 2.0.1 resolution: "detect-package-manager@npm:2.0.1" @@ -18615,13 +18607,6 @@ __metadata: languageName: node linkType: hard -"js-sha3@npm:0.8.0": - version: 0.8.0 - resolution: "js-sha3@npm:0.8.0" - checksum: f7ae73fb14080ea094e95c7401eea57468bde1df93441052b3e9823af1f7a61e814b0f61610212249b8499adedbe92199cbb467cfca799b5003d17701427c994 - languageName: node - linkType: hard - "js-string-escape@npm:^1.0.1": version: 1.0.1 resolution: "js-string-escape@npm:1.0.1" @@ -19769,16 +19754,6 @@ __metadata: languageName: node linkType: hard -"match-sorter@npm:^6.0.2": - version: 6.3.1 - resolution: "match-sorter@npm:6.3.1" - dependencies: - "@babel/runtime": "npm:^7.12.5" - remove-accents: "npm:0.4.2" - checksum: b92c428f596aaab610315c0ce8a367ef6d1f1f485ee5c1eae5530aa27c43fd9520216cb9de66d4c5e868a8fa83d764a4b628389b2fce7769580279e32be13c48 - languageName: node - linkType: hard - "mathml-tag-names@npm:^2.1.3": version: 2.1.3 resolution: "mathml-tag-names@npm:2.1.3" @@ -20623,13 +20598,6 @@ __metadata: languageName: node linkType: hard -"microseconds@npm:0.2.0": - version: 0.2.0 - resolution: "microseconds@npm:0.2.0" - checksum: a97c7411ba50fcfae42f0283984dff0465658b10de1152fae1bc298d7ff67815a90c342d3f27a94d7b54e63a49351b0ddf1071492f03548461096ff9e7841ca8 - languageName: node - linkType: hard - "miller-rabin@npm:^4.0.0": version: 4.0.1 resolution: "miller-rabin@npm:4.0.1" @@ -21024,15 +20992,6 @@ __metadata: languageName: node linkType: hard -"nano-time@npm:1.0.0": - version: 1.0.0 - resolution: "nano-time@npm:1.0.0" - dependencies: - big-integer: "npm:^1.6.16" - checksum: 0e60cc74b1d3cd44e5e0ac9e61731235a446fff9f143b61b6f16854920d4d5a9b9125a7d4b3e1ba5fe2b767314cfc827d487ba42de19308136f1aa574ba0bab2 - languageName: node - linkType: hard - "nanoid@npm:^3.1.32, nanoid@npm:^3.3.1, nanoid@npm:^3.3.4": version: 3.3.4 resolution: "nanoid@npm:3.3.4" @@ -21184,6 +21143,16 @@ __metadata: languageName: node linkType: hard +"next-transpile-modules@patch:next-transpile-modules@npm%3A9.0.0#~/.yarn/patches/next-transpile-modules-npm-9.0.0-f224c724ec.patch": + version: 9.0.0 + resolution: "next-transpile-modules@patch:next-transpile-modules@npm%3A9.0.0#~/.yarn/patches/next-transpile-modules-npm-9.0.0-f224c724ec.patch::version=9.0.0&hash=5e03e6" + dependencies: + enhanced-resolve: "npm:^5.7.0" + escalade: "npm:^3.1.1" + checksum: 2890c8b2fe834a7fa29d6729aab999c639bdf307d768bc21a49566b5a8add1336679317f98b3d99fdcbb3e8bc89bef89d3432c53bf0a71cff89de47223b2d45c + languageName: node + linkType: hard + "next@npm:12.3.0": version: 12.3.0 resolution: "next@npm:12.3.0" @@ -21258,6 +21227,7 @@ __metadata: resolution: "nextjs-app@workspace:apps/nextjs-app" dependencies: "@babel/core": "npm:7.19.0" + "@belgattitude/http-exception": "npm:1.0.0" "@emotion/babel-plugin": "npm:11.10.2" "@emotion/cache": "npm:11.10.3" "@emotion/react": "npm:11.10.4" @@ -21281,12 +21251,12 @@ __metadata: "@tailwindcss/forms": "npm:0.5.3" "@tailwindcss/line-clamp": "npm:0.4.2" "@tailwindcss/typography": "npm:0.5.7" + "@tanstack/react-query": "npm:4.3.4" "@testing-library/dom": "npm:8.17.1" "@testing-library/jest-dom": "npm:5.16.5" "@testing-library/react": "npm:13.4.0" "@testing-library/react-hooks": "npm:8.0.1" "@testing-library/user-event": "npm:14.4.3" - "@tsed/exceptions": "npm:6.132.0" "@types/cors": "npm:2.8.12" "@types/node": "npm:18.7.18" "@types/react": "npm:18.0.20" @@ -21333,7 +21303,7 @@ __metadata: next-i18next: "npm:12.0.1" next-secure-headers: "npm:2.2.0" next-seo: "npm:5.5.0" - next-transpile-modules: "npm:9.0.0" + next-transpile-modules: "patch:next-transpile-modules@npm%3A9.0.0#~/.yarn/patches/next-transpile-modules-npm-9.0.0-f224c724ec.patch" npm-run-all: "npm:4.1.5" picocolors: "npm:1.0.0" postcss: "npm:8.4.16" @@ -21343,7 +21313,6 @@ __metadata: react: "npm:18.2.0" react-dom: "npm:18.2.0" react-i18next: "npm:11.18.6" - react-query: "npm:4.0.0-beta.23" rimraf: "npm:3.0.2" rooks: "npm:7.1.2" sass: "npm:1.54.9" @@ -21353,7 +21322,6 @@ __metadata: symlink-dir: "npm:5.0.1" sync-directory: "npm:5.1.7" tailwindcss: "npm:3.1.8" - ts-jest: "npm:29.0.1" type-fest: "npm:2.19.0" typescript: "npm:4.8.3" vite: "npm:3.1.0" @@ -21859,13 +21827,6 @@ __metadata: languageName: node linkType: hard -"oblivious-set@npm:1.0.0": - version: 1.0.0 - resolution: "oblivious-set@npm:1.0.0" - checksum: c11326abff30e397909a957145422ebf40286dd8e9a19981ed3e0b0df076526abab3c2bdbce463a56e0fc6b53d0b60d579daff463e5ea81ab0c1a91a29425f7b - languageName: node - linkType: hard - "oidc-token-hash@npm:^5.0.1": version: 5.0.1 resolution: "oidc-token-hash@npm:5.0.1" @@ -24421,26 +24382,6 @@ __metadata: languageName: node linkType: hard -"react-query@npm:4.0.0-beta.23": - version: 4.0.0-beta.23 - resolution: "react-query@npm:4.0.0-beta.23" - dependencies: - "@babel/runtime": "npm:^7.17.9" - "@types/use-sync-external-store": "npm:^0.0.3" - broadcast-channel: "npm:^3.4.1" - match-sorter: "npm:^6.0.2" - use-sync-external-store: "npm:^1.1.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react-dom: - optional: true - react-native: - optional: true - checksum: 4de020a7d011180b565bc14cc8abfc80443fc54284529699fd2260d2cfd8c0fe7f288c91adba8af9af40ab8b254059100a657a55efb78590c5c60a5b3b758974 - languageName: node - linkType: hard - "react-refresh@npm:^0.11.0": version: 0.11.0 resolution: "react-refresh@npm:0.11.0" @@ -25063,13 +25004,6 @@ __metadata: languageName: node linkType: hard -"remove-accents@npm:0.4.2": - version: 0.4.2 - resolution: "remove-accents@npm:0.4.2" - checksum: f62db7cfe2fb82ccf1b908a3b809efd1b62a16717d499f5cf12904a5b34b6721c0044df7166171595c3e7109a6ba50ed13e457d88fc312d346fcf7adc2e9c92c - languageName: node - linkType: hard - "remove-trailing-separator@npm:^1.0.1": version: 1.1.0 resolution: "remove-trailing-separator@npm:1.1.0" @@ -26487,7 +26421,7 @@ __metadata: languageName: node linkType: hard -"statuses@npm:2.0.1, statuses@npm:>=2.0.1": +"statuses@npm:2.0.1": version: 2.0.1 resolution: "statuses@npm:2.0.1" checksum: a7e9d41901245a442e77b339f715d77ac113c03ab9434d9f81ae45d75ed3437d9824e601ae1a834ad3e471ae3fc78d3c00decec5e826c91552a58d4c38833ecf @@ -28603,16 +28537,6 @@ __metadata: languageName: node linkType: hard -"unload@npm:2.2.0": - version: 2.2.0 - resolution: "unload@npm:2.2.0" - dependencies: - "@babel/runtime": "npm:^7.6.2" - detect-node: "npm:^2.0.4" - checksum: 8a37c69bd0caf66474c6b4838745528ac332b4fb3f5ee89b3bba225d4ab81f99f1c61250f545ab9064e68bc1787108cb2bfb88225a46d94ea52283d9fe153f8a - languageName: node - linkType: hard - "unpipe@npm:1.0.0, unpipe@npm:~1.0.0": version: 1.0.0 resolution: "unpipe@npm:1.0.0" @@ -28728,7 +28652,7 @@ __metadata: languageName: node linkType: hard -"use-sync-external-store@npm:1.2.0, use-sync-external-store@npm:^1.1.0": +"use-sync-external-store@npm:1.2.0, use-sync-external-store@npm:^1.2.0": version: 1.2.0 resolution: "use-sync-external-store@npm:1.2.0" peerDependencies: