From 0d9bbded892474208bdc16b7f5ea108bb03863cc Mon Sep 17 00:00:00 2001 From: "Kaloyan D. Bozhkov" Date: Tue, 11 Jun 2024 14:55:24 +0300 Subject: [PATCH 1/8] setup trpc, WIP feed feature --- bun.lockb | Bin 0 -> 153431 bytes package.json | 10 +- pages/_app.tsx | 15 +- pages/api/trpc/[trpc].ts | 15 + pages/feed.tsx | 49 +- src/server/context.ts | 18 + src/server/index.ts | 10 + src/server/routers/feed/feed.router.ts | 8 + src/server/routers/feed/getAllPosts.ts | 16 + src/server/trpc.ts | 38 + src/utils/trpcNext.ts | 50 + src/utils/trpcSS.ts | 12 + yarn.lock | 2562 ------------------------ 13 files changed, 234 insertions(+), 2569 deletions(-) create mode 100755 bun.lockb create mode 100644 pages/api/trpc/[trpc].ts create mode 100644 src/server/context.ts create mode 100644 src/server/index.ts create mode 100644 src/server/routers/feed/feed.router.ts create mode 100644 src/server/routers/feed/getAllPosts.ts create mode 100644 src/server/trpc.ts create mode 100644 src/utils/trpcNext.ts create mode 100644 src/utils/trpcSS.ts delete mode 100644 yarn.lock diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..1a4e2baee42e859297dfb68f81ee93e5163bb59a GIT binary patch literal 153431 zcmeFad0dTK`v<(MEi#nmG$|F)93hnk4GN{Xl+r{c%~6IVq>LG&2q{g{V2TC}5;7*y zpv;mA$&d_rugkvIIs2UVci5Zv^Zxa$&slxXuWMavxYvE}{XFDk)gr<|)ja(I z)qDb%%Xmfv4u`A~5ahLVv0s3X%Hp8VWgg)w%hiW-(rC1Xy;r||sSsc9+rIXyEnnM( z8^QE%>N7<|<-@LToMjpN;Iad@qS4lH`~cc82K zMxhw;f1%m^jiHY)9762~L3}A3ke<~pIq+t@EzZ`%#FML8ngF;n&A_XNFyk2OB z*VCYk{pkZ72k7PN5wH~W&Px7eS7mX4#}eZAai~YTw?GvAkd|iHn*@3|J}01zcoYz? z>qBSIuQ8OpR2U5G50?z1-wM!wkc_zoWgMqOSsHCTU?r4MCm5Up*J9iNFKlkN%MBRZvEI#{iMH2@uC6dlJJx zcR-BePN+v*r^J{SYp8Z)eg;83_B)KK_X-G$M1TCDjB%Z>!qCqL#QyTAGTMKFGWul% zi1AJY4(fyg0yQSwH#8_>i7(AfjiK|D!tv^i>!$&cmqp<`?L<%r7jwL6gybE^sk! zGbsQ4rZUEV$TWt3-hdbf|FEDyEokEeW%L8~Q5;H|?Q{nJM**(4LwPh@4+`}1fg){1 zs7G*c6phvh^{8`4o6-MiU=Zz21jIP_1uhQoTjCpD2kkHpmf#1D@4x4X7SzL3kCCKs zs2+_5Q!^$55ZCoBUB-t3o~cFAa!s zSnLrN9s>HIJ`rJli=$|kvlxEy88hPO0*Ld4mum0r7y2Wx5`yeZ|ELv7^PPN6G{;3k5l%N0kPfLc~m_h>Lkx+*nJO({fBdb z3fyviEv*>WH(N6LBWT08-zHG)TA_^l$x>T}A6uY3`r`s+jJE|K_Q#OAehb>8y%oU6 z{_KJFINugQ8RKS7;WX;H6d-KrF+%_`e!b8h?L7wM1B7`W>a)ZrvL4E4hpewsC}aHZ zI5Fx~of-W;4)tg+9T4Yx1l7(5a5R*i0dYO)1M&fC0^<5!;lij_gfj9308#%7#0CBC z0mSxiTp9YUP{#h%0;0b~6s7^9oghG5PmX}tFIkuuynt}u!{MX3K^fyT2T%}DkGk#= z>7(KWD?*JbivprQ6FnIIYy(99YheE2I4i*-L;kyzBC@nC`Rz)cSOw+ImZHU&gK)BrIaKCr$6!=ViJzmb<6^dy5f`{ehll%k(+*JW{lip#91T1| zmjru+hWX&S#QR!l0AoJ-gawECz&@h6j8XQ0AO?b-hyM>*T12Ryihmf5790^6eqlb5 zxG|rHO$qfALmBZ6_6YY?flg~f`yX+oa0mE^Wd*9N3NgmG1^6t-?$G3+jMw=olmNu_ z=R9x0tgjBxawXrc!6lX1;s( zxPxt;W-Z<0S?G}XqWQs?#EW~@)xB@gw{bhz6n47p=(onoxh=U-W;UGCv*TzM%Gpl4 z6_nDvw4YUqF4-1wXX{Sin8LMdI|X>&B)5F&zcl>S(~XI}IoC~>Uzcl&6*<9kN148x zt9xVmdk@+nry2J+YrLe_Y1|DLQrhh_d6(D9>Vs)(IJ0`MF7`dARFLy-lg<7Ub*>&a zulCFxwod78M(FLOCtbr5W)Ggulwa*`HCBGyg?n437kx{-T$j?ny>!%z{TXTeJ5tPi z`y`I3sd4Py=XTBGeNFArx8E*h23oC{bXe-7&11mmCzVy5x>*t@4Tiog-FfIM%J!o0_vjc%es0>3+G$>Fuw@PYVwZ zHgk*qdN|QA@%+)yijS8o)bzH}SX#>}Mti9J4`P`bM zZB>%tzdRyp&_!yt{uZ7Di%0bbQm%@JEIT)%a&7Y0$A$~sr+glH-ZANfTR~e{k8GH- zxUZIbmYVXbq?Px_j=t`t5~Z^_y-ibgpt}8KM|_)VQu4>Zy|F^Wv*aw!e1G)7^^tvL z$b|bnYb}I2=C97 zhREv~jNqGo+v!-n`TN7q9~9^DdD ^?dSdcNZKsB~R8V{qx4}^4%k4#*Bzn&}=PU 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 new QueryClient()); + + // @TODO add top level error boundary wrapper + // @TODO add session provider etc... return ( - + + + ); } -export default MyApp; +export default trpc.withTRPC(App); diff --git a/pages/api/trpc/[trpc].ts b/pages/api/trpc/[trpc].ts new file mode 100644 index 0000000..fd25ae8 --- /dev/null +++ b/pages/api/trpc/[trpc].ts @@ -0,0 +1,15 @@ +import { createContext } from "../../../src/server/context"; +import appRouter from "./../../../src/server/index"; +import * as trpcNext from "@trpc/server/adapters/next"; + +export default trpcNext.createNextApiHandler({ + router: appRouter, + createContext, +}); + +// @TODO could add public-facing APIs via https://github.com/jlalmes/trpc-openapi +// also trpc-panel to test procedures + +//@TODO could also add trpc dev tools + +// @TODO could also add NextAuth or Clerk to provide a user's feed based on their user ID diff --git a/pages/feed.tsx b/pages/feed.tsx index ee5a271..74a79c7 100644 --- a/pages/feed.tsx +++ b/pages/feed.tsx @@ -1,7 +1,50 @@ -import type { NextPage } from "next"; +import { trpc } from "../src/utils/trpcNext"; +import trpcSS from "../src/utils/trpcSS"; +import { InferGetServerSidePropsType } from "next"; -const Feed: NextPage = () => { - return
; +const Feed = ({ + initialPosts, +}: InferGetServerSidePropsType) => { + // @TODO after loading initial posts - add pagination & load more as user infinitely scrolls + // const hello = trpc.feedRouter.getAllPosts.useQuery(undefined, { + // initialData: initialPosts, + // }); + + return ( + // @TODO add a layout/template component that will strucutre the page +
+

Feed page

+
+ {/* @TODO Move to own components (I like the ATOMIC design patterns, so this would be an organism composed of molecules which themselves would be made of atoms) */} +
+ {initialPosts.length + ? initialPosts.map((p) => ( +
+

{p.title}

+

{p.body}

+ +
+ )) + : "No posts"} +
+
+
+ ); +}; + +// handle SEO with SSR preloading html to crawl/index on +export const getServerSideProps = async () => { + // @TODO use ctx req session to get user id from cookie or wherever and filter posts based on that, if present - otherwise show generic + // @TODO limit to x initial posts to avoid excess data transfers + const initialPosts = await trpcSS.feedRouter.getAllPosts.fetch(); + + return { + props: { + initialPosts, + }, + }; }; export default Feed; diff --git a/src/server/context.ts b/src/server/context.ts new file mode 100644 index 0000000..bf868c5 --- /dev/null +++ b/src/server/context.ts @@ -0,0 +1,18 @@ +import type * as trpcNext from "@trpc/server/adapters/next"; + +// @TODO add session if any auth, add prisma or any other common functionalities for our procedures +interface CreateContextOptions { + // session: Session | null +} + +export async function createContextInner(_opts: CreateContextOptions) { + return {}; +} + +export type Context = Awaited>; + +export async function createContext( + opts: trpcNext.CreateNextContextOptions +): Promise { + return await createContextInner({}); +} diff --git a/src/server/index.ts b/src/server/index.ts new file mode 100644 index 0000000..122bce6 --- /dev/null +++ b/src/server/index.ts @@ -0,0 +1,10 @@ +import feedRouter from "./routers/feed/feed.router"; +import { router } from "./trpc"; + +const appRouter = router({ + feedRouter, +}); + +export type AppRouter = typeof appRouter; + +export default appRouter; diff --git a/src/server/routers/feed/feed.router.ts b/src/server/routers/feed/feed.router.ts new file mode 100644 index 0000000..ae88bb0 --- /dev/null +++ b/src/server/routers/feed/feed.router.ts @@ -0,0 +1,8 @@ +import { router } from "../../trpc"; +import { getAllPosts } from "./getAllPosts"; + +const feedRouter = router({ + getAllPosts, +}); + +export default feedRouter; diff --git a/src/server/routers/feed/getAllPosts.ts b/src/server/routers/feed/getAllPosts.ts new file mode 100644 index 0000000..20ebdc4 --- /dev/null +++ b/src/server/routers/feed/getAllPosts.ts @@ -0,0 +1,16 @@ +import axios from "axios"; +import { publicProcedure } from "../../trpc"; + +interface Post { + userId: number; + id: number; + title: string; + body: string; +} + +export const getAllPosts = publicProcedure.query(async () => { + const { data } = await axios.get( + "https://jsonplaceholder.typicode.com/posts" + ); + return data as Post[]; +}); diff --git a/src/server/trpc.ts b/src/server/trpc.ts new file mode 100644 index 0000000..b6ce0ab --- /dev/null +++ b/src/server/trpc.ts @@ -0,0 +1,38 @@ +import { initTRPC } from "@trpc/server"; +import SuperJSON from "superjson"; + +const t = initTRPC.create({ + transformer: SuperJSON, +}); + +export const router = t.router; + +// guests allowed +export const publicProcedure = t.procedure; + +//@TODO could also add admin or user procedures + +// e.g.: +// export const userProcedure = t.procedure.use(({ ctx, next }) => { +// if (!ctx.session?.user) throw new TRPCError({ code: "UNAUTHORIZED" }); + +// return next({ +// ctx: { +// // infers the `session` as non-nullable +// session: { ...ctx.session, user: ctx.session.user }, +// }, +// }); +// }); + +// export const adminProcedure = t.procedure.use(({ ctx, next }) => { +// if (!ctx.session?.user) throw new TRPCError({ code: "UNAUTHORIZED" }); + +// adminCheck(ctx.session); + +// return next({ +// ctx: { +// // infers the `session` as non-nullable +// session: { ...ctx.session, user: ctx.session.user }, +// }, +// }); +// }); diff --git a/src/utils/trpcNext.ts b/src/utils/trpcNext.ts new file mode 100644 index 0000000..ddd5a8b --- /dev/null +++ b/src/utils/trpcNext.ts @@ -0,0 +1,50 @@ +import { createTRPCNext } from "@trpc/next"; +import { httpBatchLink } from "@trpc/client"; +import { AppRouter } from "../server"; +import SuperJSON from "superjson"; + +function getBaseUrl() { + if (typeof window !== "undefined") + // browser should use relative path + return ""; + + if (process.env.VERCEL_URL) + // reference for vercel.com + return `https://${process.env.VERCEL_URL}`; + + if (process.env.RENDER_INTERNAL_HOSTNAME) + // reference for render.com + return `http://${process.env.RENDER_INTERNAL_HOSTNAME}:${process.env.PORT}`; + + // assume localhost + return `http://localhost:${process.env.PORT ?? 3000}`; +} + +export const trpc = createTRPCNext({ + config(opts) { + return { + links: [ + httpBatchLink({ + transformer: SuperJSON, + /** + * If you want to use SSR, you need to use the server's full URL + * @link https://trpc.io/docs/v11/ssr + **/ + url: `${getBaseUrl()}/api/trpc`, + + // You can pass any HTTP headers you wish here + async headers() { + return { + // authorization: getAuthCookie(), + }; + }, + }), + ], + }; + }, + /** + * @link https://trpc.io/docs/v11/ssr + **/ + ssr: false, + transformer: SuperJSON, +}); diff --git a/src/utils/trpcSS.ts b/src/utils/trpcSS.ts new file mode 100644 index 0000000..f413653 --- /dev/null +++ b/src/utils/trpcSS.ts @@ -0,0 +1,12 @@ +import { createServerSideHelpers } from "@trpc/react-query/server"; +import superjson from "superjson"; +import { createContextInner } from "../server/context"; +import appRouter from "../server"; + +const trpcSS = createServerSideHelpers({ + router: appRouter, + ctx: createContextInner({}), + transformer: superjson, +}); + +export default trpcSS; diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index a855a9a..0000000 --- a/yarn.lock +++ /dev/null @@ -1,2562 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/code-frame@^7.0.0": - version "7.24.2" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.2.tgz#718b4b19841809a58b29b68cde80bc5e1aa6d9ae" - integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ== - dependencies: - "@babel/highlight" "^7.24.2" - picocolors "^1.0.0" - -"@babel/helper-module-imports@^7.16.7": - version "7.24.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz#6ac476e6d168c7c23ff3ba3cf4f7841d46ac8128" - integrity sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg== - dependencies: - "@babel/types" "^7.24.0" - -"@babel/helper-string-parser@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz#f99c36d3593db9540705d0739a1f10b5e20c696e" - integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ== - -"@babel/helper-validator-identifier@^7.24.5": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz#918b1a7fa23056603506370089bd990d8720db62" - integrity sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA== - -"@babel/highlight@^7.24.2": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.5.tgz#bc0613f98e1dd0720e99b2a9ee3760194a704b6e" - integrity sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw== - dependencies: - "@babel/helper-validator-identifier" "^7.24.5" - chalk "^2.4.2" - js-tokens "^4.0.0" - picocolors "^1.0.0" - -"@babel/runtime-corejs3@^7.10.2": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.24.5.tgz#d2a5f46a088caf8f3899ad095054f83b0a686194" - integrity sha512-GWO0mgzNMLWaSYM4z4NVIuY0Cd1fl8cPnuetuddu5w/qGuvt5Y7oUi/kvvQGK9xgOkFJDQX2heIvTRn/OQ1XTg== - dependencies: - core-js-pure "^3.30.2" - regenerator-runtime "^0.14.0" - -"@babel/runtime@^7.10.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.18.3", "@babel/runtime@^7.23.9", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.5.tgz#230946857c053a36ccc66e1dd03b17dd0c4ed02c" - integrity sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g== - dependencies: - regenerator-runtime "^0.14.0" - -"@babel/types@^7.24.0": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.5.tgz#7661930afc638a5383eb0c4aee59b74f38db84d7" - integrity sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ== - dependencies: - "@babel/helper-string-parser" "^7.24.1" - "@babel/helper-validator-identifier" "^7.24.5" - to-fast-properties "^2.0.0" - -"@emotion/babel-plugin@^11.11.0": - version "11.11.0" - resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz#c2d872b6a7767a9d176d007f5b31f7d504bb5d6c" - integrity sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ== - dependencies: - "@babel/helper-module-imports" "^7.16.7" - "@babel/runtime" "^7.18.3" - "@emotion/hash" "^0.9.1" - "@emotion/memoize" "^0.8.1" - "@emotion/serialize" "^1.1.2" - babel-plugin-macros "^3.1.0" - convert-source-map "^1.5.0" - escape-string-regexp "^4.0.0" - find-root "^1.1.0" - source-map "^0.5.7" - stylis "4.2.0" - -"@emotion/cache@^11.11.0", "@emotion/cache@^11.9.3": - version "11.11.0" - resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.11.0.tgz#809b33ee6b1cb1a625fef7a45bc568ccd9b8f3ff" - integrity sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ== - dependencies: - "@emotion/memoize" "^0.8.1" - "@emotion/sheet" "^1.2.2" - "@emotion/utils" "^1.2.1" - "@emotion/weak-memoize" "^0.3.1" - stylis "4.2.0" - -"@emotion/hash@^0.9.1": - version "0.9.1" - resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.1.tgz#4ffb0055f7ef676ebc3a5a91fb621393294e2f43" - integrity sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ== - -"@emotion/is-prop-valid@^1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz#d4175076679c6a26faa92b03bb786f9e52612337" - integrity sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw== - dependencies: - "@emotion/memoize" "^0.8.1" - -"@emotion/memoize@^0.8.1": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17" - integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA== - -"@emotion/react@^11.9.3": - version "11.11.4" - resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.11.4.tgz#3a829cac25c1f00e126408fab7f891f00ecc3c1d" - integrity sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw== - dependencies: - "@babel/runtime" "^7.18.3" - "@emotion/babel-plugin" "^11.11.0" - "@emotion/cache" "^11.11.0" - "@emotion/serialize" "^1.1.3" - "@emotion/use-insertion-effect-with-fallbacks" "^1.0.1" - "@emotion/utils" "^1.2.1" - "@emotion/weak-memoize" "^0.3.1" - hoist-non-react-statics "^3.3.1" - -"@emotion/serialize@^1.1.2", "@emotion/serialize@^1.1.3", "@emotion/serialize@^1.1.4": - version "1.1.4" - resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.4.tgz#fc8f6d80c492cfa08801d544a05331d1cc7cd451" - integrity sha512-RIN04MBT8g+FnDwgvIUi8czvr1LU1alUMI05LekWB5DGyTm8cCBMCRpq3GqaiyEDRptEXOyXnvZ58GZYu4kBxQ== - dependencies: - "@emotion/hash" "^0.9.1" - "@emotion/memoize" "^0.8.1" - "@emotion/unitless" "^0.8.1" - "@emotion/utils" "^1.2.1" - csstype "^3.0.2" - -"@emotion/server@^11.4.0": - version "11.11.0" - resolved "https://registry.yarnpkg.com/@emotion/server/-/server-11.11.0.tgz#35537176a2a5ed8aed7801f254828e636ec3bd6e" - integrity sha512-6q89fj2z8VBTx9w93kJ5n51hsmtYuFPtZgnc1L8VzRx9ti4EU6EyvF6Nn1H1x3vcCQCF7u2dB2lY4AYJwUW4PA== - dependencies: - "@emotion/utils" "^1.2.1" - html-tokenize "^2.0.0" - multipipe "^1.0.2" - through "^2.3.8" - -"@emotion/sheet@^1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.2.2.tgz#d58e788ee27267a14342303e1abb3d508b6d0fec" - integrity sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA== - -"@emotion/styled@^11.9.3": - version "11.11.5" - resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.11.5.tgz#0c5c8febef9d86e8a926e663b2e5488705545dfb" - integrity sha512-/ZjjnaNKvuMPxcIiUkf/9SHoG4Q196DRl1w82hQ3WCsjo1IUR8uaGWrC6a87CrYAW0Kb/pK7hk8BnLgLRi9KoQ== - dependencies: - "@babel/runtime" "^7.18.3" - "@emotion/babel-plugin" "^11.11.0" - "@emotion/is-prop-valid" "^1.2.2" - "@emotion/serialize" "^1.1.4" - "@emotion/use-insertion-effect-with-fallbacks" "^1.0.1" - "@emotion/utils" "^1.2.1" - -"@emotion/unitless@^0.8.1": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3" - integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ== - -"@emotion/use-insertion-effect-with-fallbacks@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz#08de79f54eb3406f9daaf77c76e35313da963963" - integrity sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw== - -"@emotion/utils@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.2.1.tgz#bbab58465738d31ae4cb3dbb6fc00a5991f755e4" - integrity sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg== - -"@emotion/weak-memoize@^0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz#d0fce5d07b0620caa282b5131c297bb60f9d87e6" - integrity sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww== - -"@eslint/eslintrc@^1.2.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e" - integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.4.0" - globals "^13.19.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@floating-ui/core@^1.0.0": - version "1.6.1" - resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.6.1.tgz#a4e6fef1b069cda533cbc7a4998c083a37f37573" - integrity sha512-42UH54oPZHPdRHdw6BgoBD6cg/eVTmVrFcgeRDM3jbO7uxSoipVcmcIGFcA5jmOHO5apcyvBhkSKES3fQJnu7A== - dependencies: - "@floating-ui/utils" "^0.2.0" - -"@floating-ui/dom@^1.0.0": - version "1.6.5" - resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.5.tgz#323f065c003f1d3ecf0ff16d2c2c4d38979f4cb9" - integrity sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw== - dependencies: - "@floating-ui/core" "^1.0.0" - "@floating-ui/utils" "^0.2.0" - -"@floating-ui/react-dom@^2.0.8": - version "2.0.9" - resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.0.9.tgz#264ba8b061000baa132b5910f0427a6acf7ad7ce" - integrity sha512-q0umO0+LQK4+p6aGyvzASqKbKOJcAHJ7ycE9CuUvfx3s9zTHWmGJTPOIlM/hmSBfUfg/XfY5YhLBLR/LHwShQQ== - dependencies: - "@floating-ui/dom" "^1.0.0" - -"@floating-ui/utils@^0.2.0": - version "0.2.2" - resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.2.tgz#d8bae93ac8b815b2bd7a98078cf91e2724ef11e5" - integrity sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw== - -"@fontsource/roboto@^4.5.7": - version "4.5.8" - resolved "https://registry.yarnpkg.com/@fontsource/roboto/-/roboto-4.5.8.tgz#56347764786079838faf43f0eeda22dd7328437f" - integrity sha512-CnD7zLItIzt86q4Sj3kZUiLcBk1dSk81qcqgMGaZe7SQ1P8hFNxhMl5AZthK1zrDM5m74VVhaOpuMGIL4gagaA== - -"@humanwhocodes/config-array@^0.9.2": - version "0.9.5" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7" - integrity sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw== - dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" - minimatch "^3.0.4" - -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== - -"@mui/base@5.0.0-beta.40": - version "5.0.0-beta.40" - resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-beta.40.tgz#1f8a782f1fbf3f84a961e954c8176b187de3dae2" - integrity sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ== - dependencies: - "@babel/runtime" "^7.23.9" - "@floating-ui/react-dom" "^2.0.8" - "@mui/types" "^7.2.14" - "@mui/utils" "^5.15.14" - "@popperjs/core" "^2.11.8" - clsx "^2.1.0" - prop-types "^15.8.1" - -"@mui/core-downloads-tracker@^5.15.17": - version "5.15.17" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.17.tgz#ce8f3dff6ec11c8294d346997f6065eb23fa99be" - integrity sha512-DVAejDQkjNnIac7MfP8sLzuo7fyrBPxNdXe+6bYqOqg1z2OPTlfFAejSNzWe7UenRMuFu9/AyFXj/X2vN2w6dA== - -"@mui/material@^5.8.7": - version "5.15.17" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.15.17.tgz#1e30bacc940573813cc418aebd4484708a407ba6" - integrity sha512-ru/MLvTkCh0AZXmqwIpqGTOoVBS/sX48zArXq/DvktxXZx4fskiRA2PEc7Rk5ZlFiZhKh4moL4an+l8zZwq49Q== - dependencies: - "@babel/runtime" "^7.23.9" - "@mui/base" "5.0.0-beta.40" - "@mui/core-downloads-tracker" "^5.15.17" - "@mui/system" "^5.15.15" - "@mui/types" "^7.2.14" - "@mui/utils" "^5.15.14" - "@types/react-transition-group" "^4.4.10" - clsx "^2.1.0" - csstype "^3.1.3" - prop-types "^15.8.1" - react-is "^18.2.0" - react-transition-group "^4.4.5" - -"@mui/private-theming@^5.15.14": - version "5.15.14" - resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.15.14.tgz#edd9a82948ed01586a01c842eb89f0e3f68970ee" - integrity sha512-UH0EiZckOWcxiXLX3Jbb0K7rC8mxTr9L9l6QhOZxYc4r8FHUkefltV9VDGLrzCaWh30SQiJvAEd7djX3XXY6Xw== - dependencies: - "@babel/runtime" "^7.23.9" - "@mui/utils" "^5.15.14" - prop-types "^15.8.1" - -"@mui/styled-engine@^5.15.14": - version "5.15.14" - resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.15.14.tgz#168b154c4327fa4ccc1933a498331d53f61c0de2" - integrity sha512-RILkuVD8gY6PvjZjqnWhz8fu68dVkqhM5+jYWfB5yhlSQKg+2rHkmEwm75XIeAqI3qwOndK6zELK5H6Zxn4NHw== - dependencies: - "@babel/runtime" "^7.23.9" - "@emotion/cache" "^11.11.0" - csstype "^3.1.3" - prop-types "^15.8.1" - -"@mui/system@^5.15.15": - version "5.15.15" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.15.15.tgz#658771b200ce3c4a0f28e58169f02e5e718d1c53" - integrity sha512-aulox6N1dnu5PABsfxVGOZffDVmlxPOVgj56HrUnJE8MCSh8lOvvkd47cebIVQQYAjpwieXQXiDPj5pwM40jTQ== - dependencies: - "@babel/runtime" "^7.23.9" - "@mui/private-theming" "^5.15.14" - "@mui/styled-engine" "^5.15.14" - "@mui/types" "^7.2.14" - "@mui/utils" "^5.15.14" - clsx "^2.1.0" - csstype "^3.1.3" - prop-types "^15.8.1" - -"@mui/types@^7.2.14": - version "7.2.14" - resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.14.tgz#8a02ac129b70f3d82f2f9b76ded2c8d48e3fc8c9" - integrity sha512-MZsBZ4q4HfzBsywtXgM1Ksj6HDThtiwmOKUXH1pKYISI9gAVXCNHNpo7TlGoGrBaYWZTdNoirIN7JsQcQUjmQQ== - -"@mui/utils@^5.15.14": - version "5.15.14" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.15.14.tgz#e414d7efd5db00bfdc875273a40c0a89112ade3a" - integrity sha512-0lF/7Hh/ezDv5X7Pry6enMsbYyGKjADzvHyo3Qrc/SSlTsQ1VkbDMbH0m2t3OR5iIVLwMoxwM7yGd+6FCMtTFA== - dependencies: - "@babel/runtime" "^7.23.9" - "@types/prop-types" "^15.7.11" - prop-types "^15.8.1" - react-is "^18.2.0" - -"@next/env@12.1.4": - version "12.1.4" - resolved "https://registry.yarnpkg.com/@next/env/-/env-12.1.4.tgz#5af629b43075281ecd7f87938802b7cf5b67e94b" - integrity sha512-7gQwotJDKnfMxxXd8xJ2vsX5AzyDxO3zou0+QOXX8/unypA6icw5+wf6A62yKZ6qQ4UZHHxS68pb6UV+wNneXg== - -"@next/eslint-plugin-next@12.1.4": - version "12.1.4" - resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-12.1.4.tgz#9c52637af8eecab24dac3f2e5098376f6fc2dff4" - integrity sha512-BRy565KVK6Cdy8LHaHTiwctLqBu/RT84RLpESug70BDJzBlV8QBvODyx/j7wGhvYqp9kvstM05lyb6JaTkSCcQ== - dependencies: - glob "7.1.7" - -"@next/swc-android-arm-eabi@12.1.4": - version "12.1.4" - resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.1.4.tgz#c3dae178b7c15ad627d2e9b8dfb38caecb5c4ac7" - integrity sha512-FJg/6a3s2YrUaqZ+/DJZzeZqfxbbWrynQMT1C5wlIEq9aDLXCFpPM/PiOyJh0ahxc0XPmi6uo38Poq+GJTuKWw== - -"@next/swc-android-arm64@12.1.4": - version "12.1.4" - resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.1.4.tgz#f320d60639e19ecffa1f9034829f2d95502a9a51" - integrity sha512-LXraazvQQFBgxIg3Htny6G5V5he9EK7oS4jWtMdTGIikmD/OGByOv8ZjLuVLZLtVm3UIvaAiGtlQSLecxJoJDw== - -"@next/swc-darwin-arm64@12.1.4": - version "12.1.4" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.4.tgz#fd578278312613eddcf3aee26910100509941b63" - integrity sha512-SSST/dBymecllZxcqTCcSTCu5o1NKk9I+xcvhn/O9nH6GWjgvGgGkNqLbCarCa0jJ1ukvlBA138FagyrmZ/4rQ== - -"@next/swc-darwin-x64@12.1.4": - version "12.1.4" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.4.tgz#ace5f80d8c8348efe194f6d7074c6213c52b3944" - integrity sha512-p1lwdX0TVjaoDXQVuAkjtxVBbCL/urgxiMCBwuPDO7TikpXtSRivi+mIzBj5q7ypgICFmIAOW3TyupXeoPRAnA== - -"@next/swc-linux-arm-gnueabihf@12.1.4": - version "12.1.4" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.4.tgz#2bf2c83863635f19c71c226a2df936e001cce29c" - integrity sha512-67PZlgkCn3TDxacdVft0xqDCL7Io1/C4xbAs0+oSQ0xzp6OzN2RNpuKjHJrJgKd0DsE1XZ9sCP27Qv0591yfyg== - -"@next/swc-linux-arm64-gnu@12.1.4": - version "12.1.4" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.4.tgz#d577190f641c9b4b463719dd6b8953b6ba9be8d9" - integrity sha512-OnOWixhhw7aU22TQdQLYrgpgFq0oA1wGgnjAiHJ+St7MLj82KTDyM9UcymAMbGYy6nG/TFOOHdTmRMtCRNOw0g== - -"@next/swc-linux-arm64-musl@12.1.4": - version "12.1.4" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.4.tgz#e70ffe70393d8f9242deecdb282ce5a8fd588b14" - integrity sha512-UoRMzPZnsAavdWtVylYxH8DNC7Uy0i6RrvNwT4PyQVdfANBn2omsUkcH5lgS2O7oaz0nAYLk1vqyZDO7+tJotA== - -"@next/swc-linux-x64-gnu@12.1.4": - version "12.1.4" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.4.tgz#91498a130387fb1961902f2bee55863f8e910cff" - integrity sha512-nM+MA/frxlTLUKLJKorctdI20/ugfHRjVEEkcLp/58LGG7slNaP1E5d5dRA1yX6ISjPcQAkywas5VlGCg+uTvA== - -"@next/swc-linux-x64-musl@12.1.4": - version "12.1.4" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.4.tgz#78057b03c148c121553d41521ad38f6c732762ff" - integrity sha512-GoRHxkuW4u4yKw734B9SzxJwVdyEJosaZ62P7ifOwcujTxhgBt3y76V2nNUrsSuopcKI2ZTDjaa+2wd5zyeXbA== - -"@next/swc-win32-arm64-msvc@12.1.4": - version "12.1.4" - resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.4.tgz#05bbaabacac23b8edf6caa99eb86b17550a09051" - integrity sha512-6TQkQze0ievXwHJcVUrIULwCYVe3ccX6T0JgZ1SiMeXpHxISN7VJF/O8uSCw1JvXZYZ6ud0CJ7nfC5HXivgfPg== - -"@next/swc-win32-ia32-msvc@12.1.4": - version "12.1.4" - resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.4.tgz#8fd2fb48f04a2802e51fc320878bf6b411c1c866" - integrity sha512-CsbX/IXuZ5VSmWCpSetG2HD6VO5FTsO39WNp2IR2Ut/uom9XtLDJAZqjQEnbUTLGHuwDKFjrIO3LkhtROXLE/g== - -"@next/swc-win32-x64-msvc@12.1.4": - version "12.1.4" - resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.4.tgz#a72ed44c9b1f850986a30fe36c59e01f8a79b5f3" - integrity sha512-JtYuWzKXKLDMgE/xTcFtCm1MiCIRaAc5XYZfYX3n/ZWSI1SJS/GMm+Su0SAHJgRFavJh6U/p998YwO/iGTIgqQ== - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@popperjs/core@^2.11.8": - version "2.11.8" - resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" - integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== - -"@rushstack/eslint-patch@1.0.8": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.0.8.tgz#be3e914e84eacf16dbebd311c0d0b44aa1174c64" - integrity sha512-ZK5v4bJwgXldAUA8r3q9YKfCwOqoHTK/ZqRjSeRXQrBXWouoPnS4MQtgC4AXGiiBuUu5wxrRgTlv0ktmM4P1Aw== - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== - -"@types/node@17.0.23": - version "17.0.23" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.23.tgz#3b41a6e643589ac6442bdbd7a4a3ded62f33f7da" - integrity sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw== - -"@types/parse-json@^4.0.0": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" - integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== - -"@types/prop-types@*", "@types/prop-types@^15.7.11": - version "15.7.12" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.12.tgz#12bb1e2be27293c1406acb6af1c3f3a1481d98c6" - integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q== - -"@types/react-dom@18.0.0": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.0.tgz#b13f8d098e4b0c45df4f1ed123833143b0c71141" - integrity sha512-49897Y0UiCGmxZqpC8Blrf6meL8QUla6eb+BBhn69dTXlmuOlzkfr7HHY/O8J25e1lTUMs+YYxSlVDAaGHCOLg== - dependencies: - "@types/react" "*" - -"@types/react-transition-group@^4.4.10": - version "4.4.10" - resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.10.tgz#6ee71127bdab1f18f11ad8fb3322c6da27c327ac" - integrity sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q== - dependencies: - "@types/react" "*" - -"@types/react@*": - version "18.3.1" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.1.tgz#fed43985caa834a2084d002e4771e15dfcbdbe8e" - integrity sha512-V0kuGBX3+prX+DQ/7r2qsv1NsdfnCLnTgnRJ1pYnxykBhGMz+qj+box5lq7XsO5mtZsBqpjwwTu/7wszPfMBcw== - dependencies: - "@types/prop-types" "*" - csstype "^3.0.2" - -"@types/react@18.0.1": - version "18.0.1" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.1.tgz#1b2e02fb7613212518733946e49fb963dfc66e19" - integrity sha512-VnWlrVgG0dYt+NqlfMI0yUYb8Rdl4XUROyH+c6gq/iFCiZ805Vi//26UW38DHnxQkbDhnrIWTBiy6oKZqL11cw== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - -"@types/scheduler@*": - version "0.23.0" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.23.0.tgz#0a6655b3e2708eaabca00b7372fafd7a792a7b09" - integrity sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw== - -"@typescript-eslint/parser@5.10.1": - version "5.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.10.1.tgz#4ce9633cc33fc70bc13786cb793c1a76fe5ad6bd" - integrity sha512-GReo3tjNBwR5RnRO0K2wDIDN31cM3MmDtgyQ85oAxAmC5K3j/g85IjP+cDfcqDsDDBf1HNKQAD0WqOYL8jXqUA== - dependencies: - "@typescript-eslint/scope-manager" "5.10.1" - "@typescript-eslint/types" "5.10.1" - "@typescript-eslint/typescript-estree" "5.10.1" - debug "^4.3.2" - -"@typescript-eslint/scope-manager@5.10.1": - version "5.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.10.1.tgz#f0539c73804d2423506db2475352a4dec36cd809" - integrity sha512-Lyvi559Gvpn94k7+ElXNMEnXu/iundV5uFmCUNnftbFrUbAJ1WBoaGgkbOBm07jVZa682oaBU37ao/NGGX4ZDg== - dependencies: - "@typescript-eslint/types" "5.10.1" - "@typescript-eslint/visitor-keys" "5.10.1" - -"@typescript-eslint/types@5.10.1": - version "5.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.10.1.tgz#dca9bd4cb8c067fc85304a31f38ec4766ba2d1ea" - integrity sha512-ZvxQ2QMy49bIIBpTqFiOenucqUyjTQ0WNLhBM6X1fh1NNlYAC6Kxsx8bRTY3jdYsYg44a0Z/uEgQkohbR0H87Q== - -"@typescript-eslint/typescript-estree@5.10.1": - version "5.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.10.1.tgz#b268e67be0553f8790ba3fe87113282977adda15" - integrity sha512-PwIGnH7jIueXv4opcwEbVGDATjGPO1dx9RkUl5LlHDSe+FXxPwFL5W/qYd5/NHr7f6lo/vvTrAzd0KlQtRusJQ== - dependencies: - "@typescript-eslint/types" "5.10.1" - "@typescript-eslint/visitor-keys" "5.10.1" - debug "^4.3.2" - globby "^11.0.4" - is-glob "^4.0.3" - semver "^7.3.5" - tsutils "^3.21.0" - -"@typescript-eslint/visitor-keys@5.10.1": - version "5.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.10.1.tgz#29102de692f59d7d34ecc457ed59ab5fc558010b" - integrity sha512-NjQ0Xinhy9IL979tpoTRuLKxMc0zJC7QVSdeerXs2/QvOy2yRkzX5dRb10X5woNUdJgU8G3nYRDlI33sq1K4YQ== - dependencies: - "@typescript-eslint/types" "5.10.1" - eslint-visitor-keys "^3.0.0" - -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn@^8.9.0: - version "8.11.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" - integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== - -ajv@^6.10.0, ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -aria-query@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" - integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== - dependencies: - "@babel/runtime" "^7.10.2" - "@babel/runtime-corejs3" "^7.10.2" - -array-buffer-byte-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" - integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== - dependencies: - call-bind "^1.0.5" - is-array-buffer "^3.0.4" - -array-includes@^3.1.4, array-includes@^3.1.6: - version "3.1.8" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" - integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - es-object-atoms "^1.0.0" - get-intrinsic "^1.2.4" - is-string "^1.0.7" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array.prototype.flat@^1.2.5, array.prototype.flat@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" - integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - -array.prototype.flatmap@^1.2.5: - version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" - integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - -arraybuffer.prototype.slice@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" - integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== - dependencies: - array-buffer-byte-length "^1.0.1" - call-bind "^1.0.5" - define-properties "^1.2.1" - es-abstract "^1.22.3" - es-errors "^1.2.1" - get-intrinsic "^1.2.3" - is-array-buffer "^3.0.4" - is-shared-array-buffer "^1.0.2" - -ast-types-flow@^0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" - integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== - -available-typed-arrays@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" - integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== - dependencies: - possible-typed-array-names "^1.0.0" - -axe-core@^4.3.5: - version "4.9.1" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.9.1.tgz#fcd0f4496dad09e0c899b44f6c4bb7848da912ae" - integrity sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw== - -axobject-query@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" - integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== - -babel-plugin-macros@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" - integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg== - dependencies: - "@babel/runtime" "^7.12.5" - cosmiconfig "^7.0.0" - resolve "^1.19.0" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -buffer-from@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-0.1.2.tgz#15f4b9bcef012044df31142c14333caf6e0260d0" - integrity sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg== - -call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" - integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== - dependencies: - es-define-property "^1.0.0" - es-errors "^1.3.0" - function-bind "^1.1.2" - get-intrinsic "^1.2.4" - set-function-length "^1.2.1" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -caniuse-lite@^1.0.30001283: - version "1.0.30001616" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001616.tgz#4342712750d35f71ebba9fcac65e2cf8870013c3" - integrity sha512-RHVYKov7IcdNjVHJFNY/78RdG4oGVjbayxv8u5IO74Wv7Hlq4PnJE6mo/OjFijjVFNy5ijnCt6H3IIo4t+wfEw== - -chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -clsx@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" - integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -convert-source-map@^1.5.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== - -core-js-pure@^3.30.2: - version "3.37.0" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.37.0.tgz#ce99fb4a7cec023fdbbe5b5bd1f06bbcba83316e" - integrity sha512-d3BrpyFr5eD4KcbRvQ3FTUx/KWmaDesr7+a3+1+P46IUnNoEt+oiLijPINZMEon7w9oGkIINWxrBAU9DEciwFQ== - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -cosmiconfig@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" - integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.2.1" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.10.0" - -cross-spawn@^7.0.2: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -csstype@^3.0.2, csstype@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" - integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== - -damerau-levenshtein@^1.0.7: - version "1.0.8" - resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" - integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== - -data-view-buffer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" - integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== - dependencies: - call-bind "^1.0.6" - es-errors "^1.3.0" - is-data-view "^1.0.1" - -data-view-byte-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" - integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== - dependencies: - call-bind "^1.0.7" - es-errors "^1.3.0" - is-data-view "^1.0.1" - -data-view-byte-offset@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" - integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== - dependencies: - call-bind "^1.0.6" - es-errors "^1.3.0" - is-data-view "^1.0.1" - -debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debug@^4.1.1, debug@^4.3.2: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -define-data-property@^1.0.1, define-data-property@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" - integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== - dependencies: - es-define-property "^1.0.0" - es-errors "^1.3.0" - gopd "^1.0.1" - -define-properties@^1.2.0, define-properties@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" - integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== - dependencies: - define-data-property "^1.0.1" - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -dom-helpers@^5.0.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" - integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== - dependencies: - "@babel/runtime" "^7.8.7" - csstype "^3.0.2" - -duplexer2@^0.1.2: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - integrity sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA== - dependencies: - readable-stream "^2.0.2" - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2: - version "1.23.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" - integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== - dependencies: - array-buffer-byte-length "^1.0.1" - arraybuffer.prototype.slice "^1.0.3" - available-typed-arrays "^1.0.7" - call-bind "^1.0.7" - data-view-buffer "^1.0.1" - data-view-byte-length "^1.0.1" - data-view-byte-offset "^1.0.0" - es-define-property "^1.0.0" - es-errors "^1.3.0" - es-object-atoms "^1.0.0" - es-set-tostringtag "^2.0.3" - es-to-primitive "^1.2.1" - function.prototype.name "^1.1.6" - get-intrinsic "^1.2.4" - get-symbol-description "^1.0.2" - globalthis "^1.0.3" - gopd "^1.0.1" - has-property-descriptors "^1.0.2" - has-proto "^1.0.3" - has-symbols "^1.0.3" - hasown "^2.0.2" - internal-slot "^1.0.7" - is-array-buffer "^3.0.4" - is-callable "^1.2.7" - is-data-view "^1.0.1" - is-negative-zero "^2.0.3" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.3" - is-string "^1.0.7" - is-typed-array "^1.1.13" - is-weakref "^1.0.2" - object-inspect "^1.13.1" - object-keys "^1.1.1" - object.assign "^4.1.5" - regexp.prototype.flags "^1.5.2" - safe-array-concat "^1.1.2" - safe-regex-test "^1.0.3" - string.prototype.trim "^1.2.9" - string.prototype.trimend "^1.0.8" - string.prototype.trimstart "^1.0.8" - typed-array-buffer "^1.0.2" - typed-array-byte-length "^1.0.1" - typed-array-byte-offset "^1.0.2" - typed-array-length "^1.0.6" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.15" - -es-define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" - integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== - dependencies: - get-intrinsic "^1.2.4" - -es-errors@^1.2.1, es-errors@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" - integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== - -es-object-atoms@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" - integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== - dependencies: - es-errors "^1.3.0" - -es-set-tostringtag@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" - integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== - dependencies: - get-intrinsic "^1.2.4" - has-tostringtag "^1.0.2" - hasown "^2.0.1" - -es-shim-unscopables@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" - integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== - dependencies: - hasown "^2.0.0" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eslint-config-next@12.1.4: - version "12.1.4" - resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-12.1.4.tgz#939ea2ff33034763300bf1e62482cea91212d274" - integrity sha512-Uj0jrVjoQbg9qerxRjSHoOOv3PEzoZxpb8G9LYct25fsflP8xIiUq0l4WEu2KSB5owuLv5hie7wSMqPEsHj+bQ== - dependencies: - "@next/eslint-plugin-next" "12.1.4" - "@rushstack/eslint-patch" "1.0.8" - "@typescript-eslint/parser" "5.10.1" - eslint-import-resolver-node "0.3.4" - eslint-import-resolver-typescript "2.4.0" - eslint-plugin-import "2.25.2" - eslint-plugin-jsx-a11y "6.5.1" - eslint-plugin-react "7.29.1" - eslint-plugin-react-hooks "4.3.0" - -eslint-import-resolver-node@0.3.4: - version "0.3.4" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" - integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== - dependencies: - debug "^2.6.9" - resolve "^1.13.1" - -eslint-import-resolver-node@^0.3.6: - version "0.3.9" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" - integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== - dependencies: - debug "^3.2.7" - is-core-module "^2.13.0" - resolve "^1.22.4" - -eslint-import-resolver-typescript@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.4.0.tgz#ec1e7063ebe807f0362a7320543aaed6fe1100e1" - integrity sha512-useJKURidCcldRLCNKWemr1fFQL1SzB3G4a0li6lFGvlc5xGe1hY343bvG07cbpCzPuM/lK19FIJB3XGFSkplA== - dependencies: - debug "^4.1.1" - glob "^7.1.6" - is-glob "^4.0.1" - resolve "^1.17.0" - tsconfig-paths "^3.9.0" - -eslint-module-utils@^2.7.0: - version "2.8.1" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz#52f2404300c3bd33deece9d7372fb337cc1d7c34" - integrity sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q== - dependencies: - debug "^3.2.7" - -eslint-plugin-import@2.25.2: - version "2.25.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.2.tgz#b3b9160efddb702fc1636659e71ba1d10adbe9e9" - integrity sha512-qCwQr9TYfoBHOFcVGKY9C9unq05uOxxdklmBXLVvcwo68y5Hta6/GzCZEMx2zQiu0woKNEER0LE7ZgaOfBU14g== - dependencies: - array-includes "^3.1.4" - array.prototype.flat "^1.2.5" - debug "^2.6.9" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.0" - has "^1.0.3" - is-core-module "^2.7.0" - is-glob "^4.0.3" - minimatch "^3.0.4" - object.values "^1.1.5" - resolve "^1.20.0" - tsconfig-paths "^3.11.0" - -eslint-plugin-jsx-a11y@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz#cdbf2df901040ca140b6ec14715c988889c2a6d8" - integrity sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g== - dependencies: - "@babel/runtime" "^7.16.3" - aria-query "^4.2.2" - array-includes "^3.1.4" - ast-types-flow "^0.0.7" - axe-core "^4.3.5" - axobject-query "^2.2.0" - damerau-levenshtein "^1.0.7" - emoji-regex "^9.2.2" - has "^1.0.3" - jsx-ast-utils "^3.2.1" - language-tags "^1.0.5" - minimatch "^3.0.4" - -eslint-plugin-react-hooks@4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz#318dbf312e06fab1c835a4abef00121751ac1172" - integrity sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA== - -eslint-plugin-react@7.29.1: - version "7.29.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.29.1.tgz#6c40bc83142bb63d132a1b3565e2ea655411f800" - integrity sha512-WtzRpHMhsOX05ZrkyaaqmLl2uXGqmYooCfBxftJKlkYdsltiufGgfU7uuoHwR2lBam2Kh/EIVID4aU9e3kbCMA== - dependencies: - array-includes "^3.1.4" - array.prototype.flatmap "^1.2.5" - doctrine "^2.1.0" - estraverse "^5.3.0" - jsx-ast-utils "^2.4.1 || ^3.0.0" - minimatch "^3.1.2" - object.entries "^1.1.5" - object.fromentries "^2.0.5" - object.hasown "^1.1.0" - object.values "^1.1.5" - prop-types "^15.8.1" - resolve "^2.0.0-next.3" - semver "^6.3.0" - string.prototype.matchall "^4.0.6" - -eslint-scope@^7.1.1: - version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: - version "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.13.0: - version "8.13.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.13.0.tgz#6fcea43b6811e655410f5626cfcf328016badcd7" - integrity sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ== - dependencies: - "@eslint/eslintrc" "^1.2.1" - "@humanwhocodes/config-array" "^0.9.2" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.1.1" - eslint-utils "^3.0.0" - eslint-visitor-keys "^3.3.0" - espree "^9.3.1" - esquery "^1.4.0" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^6.0.1" - globals "^13.6.0" - ignore "^5.2.0" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.0.4" - natural-compare "^1.4.0" - optionator "^0.9.1" - regexpp "^3.2.0" - strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" - -espree@^9.3.1, espree@^9.4.0: - version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" - integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== - dependencies: - acorn "^8.9.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" - -esquery@^1.4.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-glob@^3.2.9: - version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fastq@^1.6.0: - version "1.17.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" - integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== - dependencies: - reusify "^1.0.4" - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -find-root@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" - integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== - -flat-cache@^3.0.4: - version "3.2.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" - integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== - dependencies: - flatted "^3.2.9" - keyv "^4.5.3" - rimraf "^3.0.2" - -flatted@^3.2.9: - version "3.3.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" - integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -function.prototype.name@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" - integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - functions-have-names "^1.2.3" - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== - -functions-have-names@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" - integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== - dependencies: - es-errors "^1.3.0" - function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - -get-symbol-description@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" - integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== - dependencies: - call-bind "^1.0.5" - es-errors "^1.3.0" - get-intrinsic "^1.2.4" - -glob-parent@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob@7.1.7: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.1.3, glob@^7.1.6: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^13.19.0, globals@^13.6.0: - version "13.24.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" - integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== - dependencies: - type-fest "^0.20.2" - -globalthis@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" - integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== - dependencies: - define-properties "^1.2.1" - gopd "^1.0.1" - -globby@^11.0.4: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" - integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== - dependencies: - es-define-property "^1.0.0" - -has-proto@^1.0.1, has-proto@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" - integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== - -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" - integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== - dependencies: - has-symbols "^1.0.3" - -has@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" - integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== - -hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== - dependencies: - function-bind "^1.1.2" - -hoist-non-react-statics@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" - integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== - dependencies: - react-is "^16.7.0" - -html-tokenize@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/html-tokenize/-/html-tokenize-2.0.1.tgz#c3b2ea6e2837d4f8c06693393e9d2a12c960be5f" - integrity sha512-QY6S+hZ0f5m1WT8WffYN+Hg+xm/w5I8XeUcAq/ZYP5wVC8xbKi4Whhru3FtrAebD5EhBW8rmFzkDI6eCAuFe2w== - dependencies: - buffer-from "~0.1.1" - inherits "~2.0.1" - minimist "~1.2.5" - readable-stream "~1.0.27-1" - through2 "~0.4.1" - -ignore@^5.2.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" - integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== - -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -internal-slot@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" - integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== - dependencies: - es-errors "^1.3.0" - hasown "^2.0.0" - side-channel "^1.0.4" - -is-array-buffer@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" - integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-core-module@^2.13.0, is-core-module@^2.7.0: - version "2.13.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" - integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== - dependencies: - hasown "^2.0.0" - -is-data-view@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" - integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== - dependencies: - is-typed-array "^1.1.13" - -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-negative-zero@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" - integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" - integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== - dependencies: - call-bind "^1.0.7" - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typed-array@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" - integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== - dependencies: - which-typed-array "^1.1.14" - -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== - -isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -json5@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== - dependencies: - minimist "^1.2.0" - -"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.2.1: - version "3.3.5" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a" - integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== - dependencies: - array-includes "^3.1.6" - array.prototype.flat "^1.3.1" - object.assign "^4.1.4" - object.values "^1.1.6" - -keyv@^4.5.3: - version "4.5.4" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" - integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== - dependencies: - json-buffer "3.0.1" - -language-subtag-registry@^0.3.20: - version "0.3.22" - resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" - integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== - -language-tags@^1.0.5: - version "1.0.9" - resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.9.tgz#1ffdcd0ec0fafb4b1be7f8b11f306ad0f9c08777" - integrity sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA== - dependencies: - language-subtag-registry "^0.3.20" - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -loose-envify@^1.1.0, loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.0, minimist@^1.2.6, minimist@~1.2.5: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -multipipe@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-1.0.2.tgz#cc13efd833c9cda99f224f868461b8e1a3fd939d" - integrity sha512-6uiC9OvY71vzSGX8lZvSqscE7ft9nPupJ8fMjrCNRAUy2LREUW42UL+V/NTrogr6rFgRydUrCX4ZitfpSNkSCQ== - dependencies: - duplexer2 "^0.1.2" - object-assign "^4.1.0" - -nanoid@^3.1.30: - version "3.3.7" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" - integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -next@12.1.4: - version "12.1.4" - resolved "https://registry.yarnpkg.com/next/-/next-12.1.4.tgz#597a9bdec7aec778b442c4f6d41afd2c64a54b23" - integrity sha512-DA4g97BM4Z0nKtDvCTm58RxdvoQyYzeg0AeVbh0N4Y/D8ELrNu47lQeEgRGF8hV4eQ+Sal90zxrJQQG/mPQ8CQ== - dependencies: - "@next/env" "12.1.4" - caniuse-lite "^1.0.30001283" - postcss "8.4.5" - styled-jsx "5.0.1" - optionalDependencies: - "@next/swc-android-arm-eabi" "12.1.4" - "@next/swc-android-arm64" "12.1.4" - "@next/swc-darwin-arm64" "12.1.4" - "@next/swc-darwin-x64" "12.1.4" - "@next/swc-linux-arm-gnueabihf" "12.1.4" - "@next/swc-linux-arm64-gnu" "12.1.4" - "@next/swc-linux-arm64-musl" "12.1.4" - "@next/swc-linux-x64-gnu" "12.1.4" - "@next/swc-linux-x64-musl" "12.1.4" - "@next/swc-win32-arm64-msvc" "12.1.4" - "@next/swc-win32-ia32-msvc" "12.1.4" - "@next/swc-win32-x64-msvc" "12.1.4" - -object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-inspect@^1.13.1: - version "1.13.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" - integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-keys@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" - integrity sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw== - -object.assign@^4.1.4, object.assign@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" - integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== - dependencies: - call-bind "^1.0.5" - define-properties "^1.2.1" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -object.entries@^1.1.5: - version "1.1.8" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.8.tgz#bffe6f282e01f4d17807204a24f8edd823599c41" - integrity sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - -object.fromentries@^2.0.5: - version "2.0.8" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65" - integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - es-object-atoms "^1.0.0" - -object.hasown@^1.1.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.4.tgz#e270ae377e4c120cdcb7656ce66884a6218283dc" - integrity sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg== - dependencies: - define-properties "^1.2.1" - es-abstract "^1.23.2" - es-object-atoms "^1.0.0" - -object.values@^1.1.5, object.values@^1.1.6: - version "1.2.0" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" - integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -optionator@^0.9.1: - version "0.9.4" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" - integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.5" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -possible-typed-array-names@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" - integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== - -postcss@8.4.5: - version "8.4.5" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.5.tgz#bae665764dfd4c6fcc24dc0fdf7e7aa00cc77f95" - integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg== - dependencies: - nanoid "^3.1.30" - picocolors "^1.0.0" - source-map-js "^1.0.1" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -prop-types@^15.6.2, prop-types@^15.8.1: - version "15.8.1" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" - integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.13.1" - -punycode@^2.1.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" - integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -react-dom@18.0.0: - version "18.0.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.0.0.tgz#26b88534f8f1dbb80853e1eabe752f24100d8023" - integrity sha512-XqX7uzmFo0pUceWFCt7Gff6IyIMzFUn7QMZrbrQfGxtaxXZIcGQzoNpRLE3fQLnS4XzLLPMZX2T9TRcSrasicw== - dependencies: - loose-envify "^1.1.0" - scheduler "^0.21.0" - -react-is@^16.13.1, react-is@^16.7.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -react-is@^18.2.0: - version "18.3.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" - integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== - -react-transition-group@^4.4.5: - version "4.4.5" - resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" - integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g== - dependencies: - "@babel/runtime" "^7.5.5" - dom-helpers "^5.0.1" - loose-envify "^1.4.0" - prop-types "^15.6.2" - -react@18.0.0: - version "18.0.0" - resolved "https://registry.yarnpkg.com/react/-/react-18.0.0.tgz#b468736d1f4a5891f38585ba8e8fb29f91c3cb96" - integrity sha512-x+VL6wbT4JRVPm7EGxXhZ8w8LTROaxPXOqhlGyVSrv0sB1jkyFGgXxJ8LVoPRLvPR6/CIZGFmfzqUa2NYeMr2A== - dependencies: - loose-envify "^1.1.0" - -readable-stream@^2.0.2: - version "2.3.8" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@~1.0.17, readable-stream@~1.0.27-1: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -regenerator-runtime@^0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" - integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== - -regexp.prototype.flags@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" - integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== - dependencies: - call-bind "^1.0.6" - define-properties "^1.2.1" - es-errors "^1.3.0" - set-function-name "^2.0.1" - -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve@^1.13.1, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.4: - version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resolve@^2.0.0-next.3: - version "2.0.0-next.5" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c" - integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -safe-array-concat@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" - integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== - dependencies: - call-bind "^1.0.7" - get-intrinsic "^1.2.4" - has-symbols "^1.0.3" - isarray "^2.0.5" - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-regex-test@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" - integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== - dependencies: - call-bind "^1.0.6" - es-errors "^1.3.0" - is-regex "^1.1.4" - -scheduler@^0.21.0: - version "0.21.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.21.0.tgz#6fd2532ff5a6d877b6edb12f00d8ab7e8f308820" - integrity sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ== - dependencies: - loose-envify "^1.1.0" - -semver@^6.3.0: - version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^7.3.5: - version "7.6.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.1.tgz#60bfe090bf907a25aa8119a72b9f90ef7ca281b2" - integrity sha512-f/vbBsu+fOiYt+lmwZV0rVwJScl46HppnOA1ZvIuBWKOTlllpyJ3bfVax76/OrhCH38dyxoDIA8K7uB963IYgA== - -set-function-length@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" - integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== - dependencies: - define-data-property "^1.1.4" - es-errors "^1.3.0" - function-bind "^1.1.2" - get-intrinsic "^1.2.4" - gopd "^1.0.1" - has-property-descriptors "^1.0.2" - -set-function-name@^2.0.1, set-function-name@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" - integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== - dependencies: - define-data-property "^1.1.4" - es-errors "^1.3.0" - functions-have-names "^1.2.3" - has-property-descriptors "^1.0.2" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -side-channel@^1.0.4, side-channel@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" - integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== - dependencies: - call-bind "^1.0.7" - es-errors "^1.3.0" - get-intrinsic "^1.2.4" - object-inspect "^1.13.1" - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -source-map-js@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" - integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== - -source-map@^0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== - -string.prototype.matchall@^4.0.6: - version "4.0.11" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz#1092a72c59268d2abaad76582dccc687c0297e0a" - integrity sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - es-errors "^1.3.0" - es-object-atoms "^1.0.0" - get-intrinsic "^1.2.4" - gopd "^1.0.1" - has-symbols "^1.0.3" - internal-slot "^1.0.7" - regexp.prototype.flags "^1.5.2" - set-function-name "^2.0.2" - side-channel "^1.0.6" - -string.prototype.trim@^1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" - integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.0" - es-object-atoms "^1.0.0" - -string.prototype.trimend@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" - integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - -string.prototype.trimstart@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" - integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== - -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -styled-jsx@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.1.tgz#78fecbbad2bf95ce6cd981a08918ce4696f5fc80" - integrity sha512-+PIZ/6Uk40mphiQJJI1202b+/dYeTVd9ZnMPR80pgiWbjIwvN2zIp4r9et0BgqBuShh48I0gttPlAXA7WVvBxw== - -stylis@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51" - integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw== - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - -through2@~0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/through2/-/through2-0.4.2.tgz#dbf5866031151ec8352bb6c4db64a2292a840b9b" - integrity sha512-45Llu+EwHKtAZYTPPVn3XZHBgakWMN3rokhEv5hu596XP+cNgplMg+Gj+1nmAvj+L0K7+N49zBKx5rah5u0QIQ== - dependencies: - readable-stream "~1.0.17" - xtend "~2.1.1" - -through@^2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -tsconfig-paths@^3.11.0, tsconfig-paths@^3.9.0: - version "3.15.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" - integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.2" - minimist "^1.2.6" - strip-bom "^3.0.0" - -tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -typed-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" - integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== - dependencies: - call-bind "^1.0.7" - es-errors "^1.3.0" - is-typed-array "^1.1.13" - -typed-array-byte-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" - integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== - dependencies: - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" - has-proto "^1.0.3" - is-typed-array "^1.1.13" - -typed-array-byte-offset@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063" - integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== - dependencies: - available-typed-arrays "^1.0.7" - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" - has-proto "^1.0.3" - is-typed-array "^1.1.13" - -typed-array-length@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3" - integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== - dependencies: - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" - has-proto "^1.0.3" - is-typed-array "^1.1.13" - possible-typed-array-names "^1.0.0" - -typescript@4.6.3: - version "4.6.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.3.tgz#eefeafa6afdd31d725584c67a0eaba80f6fc6c6c" - integrity sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw== - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -v8-compile-cache@^2.0.3: - version "2.4.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz#cdada8bec61e15865f05d097c5f4fd30e94dc128" - integrity sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw== - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-typed-array@^1.1.14, which-typed-array@^1.1.15: - version "1.1.15" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" - integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== - dependencies: - available-typed-arrays "^1.0.7" - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.2" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -word-wrap@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" - integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -xtend@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" - integrity sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ== - dependencies: - object-keys "~0.4.0" - -yaml@^1.10.0: - version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== From 6fc8b3fc5b341fd5cee42cd7bba1846069513636 Mon Sep 17 00:00:00 2001 From: "Kaloyan D. Bozhkov" Date: Tue, 11 Jun 2024 15:00:53 +0300 Subject: [PATCH 2/8] add meta tags --- pages/_document.tsx | 45 +++++++++++++++++++++++++++++++++++++++++++ pages/feed.tsx | 46 +++++++++++++++++++++++++------------------- public/favicon.ico | Bin 0 -> 102947 bytes 3 files changed, 71 insertions(+), 20 deletions(-) create mode 100644 pages/_document.tsx create mode 100644 public/favicon.ico diff --git a/pages/_document.tsx b/pages/_document.tsx new file mode 100644 index 0000000..1b9be92 --- /dev/null +++ b/pages/_document.tsx @@ -0,0 +1,45 @@ +import { Head, Html, Main, NextScript } from "next/document"; + +export default function Document() { + return ( + + + {/* @TODO handle multiple sizes icons for tablet/mobile/shortcuts etc.. */} + + {/* @TODO quick meta tags from ChatGPT, will have to analyse and remove some, ensure assets & links are good */} + + + + + + + + + + + + +
+ + + + ); +} diff --git a/pages/feed.tsx b/pages/feed.tsx index 74a79c7..ccd3b72 100644 --- a/pages/feed.tsx +++ b/pages/feed.tsx @@ -1,3 +1,4 @@ +import Head from "next/head"; import { trpc } from "../src/utils/trpcNext"; import trpcSS from "../src/utils/trpcSS"; import { InferGetServerSidePropsType } from "next"; @@ -11,26 +12,31 @@ const Feed = ({ // }); return ( - // @TODO add a layout/template component that will strucutre the page -
-

Feed page

-
- {/* @TODO Move to own components (I like the ATOMIC design patterns, so this would be an organism composed of molecules which themselves would be made of atoms) */} -
- {initialPosts.length - ? initialPosts.map((p) => ( -
-

{p.title}

-

{p.body}

- -
- )) - : "No posts"} -
-
-
+ <> + + Feed Page + + {/* @TODO add a layout/template component that will strucutre the page */} +
+

Feed page

+
+ {/* @TODO Move to own components (I like the ATOMIC design patterns, so this would be an organism composed of molecules which themselves would be made of atoms) */} +
+ {initialPosts.length + ? initialPosts.map((p) => ( +
+

{p.title}

+

{p.body}

+ +
+ )) + : "No posts"} +
+
+
+ ); }; diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..987512aff75fc600044dd3f208b026e31f676c6a GIT binary patch literal 102947 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 Date: Tue, 11 Jun 2024 15:05:25 +0300 Subject: [PATCH 3/8] add mui comps --- pages/feed.tsx | 60 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 40 insertions(+), 20 deletions(-) diff --git a/pages/feed.tsx b/pages/feed.tsx index ccd3b72..35584b3 100644 --- a/pages/feed.tsx +++ b/pages/feed.tsx @@ -1,7 +1,7 @@ import Head from "next/head"; -import { trpc } from "../src/utils/trpcNext"; import trpcSS from "../src/utils/trpcSS"; import { InferGetServerSidePropsType } from "next"; +import { Box, Button, Container, Typography } from "@mui/material"; const Feed = ({ initialPosts, @@ -17,25 +17,45 @@ const Feed = ({ Feed Page {/* @TODO add a layout/template component that will strucutre the page */} -
-

Feed page

-
- {/* @TODO Move to own components (I like the ATOMIC design patterns, so this would be an organism composed of molecules which themselves would be made of atoms) */} -
- {initialPosts.length - ? initialPosts.map((p) => ( -
-

{p.title}

-

{p.body}

- -
- )) - : "No posts"} -
-
-
+ {/* @TODO Move to own components (I like the ATOMIC design patterns, so this would be an organism composed of molecules which themselves would be made of atoms) */} + + + Feed Page + + + {initialPosts.length ? ( + initialPosts.map((post) => ( + + + {post.title} + + + {post.body} + + + + )) + ) : ( + + No posts available + + )} + + ); }; From c005ed123326296711e114befa0b7f25035eafbe Mon Sep 17 00:00:00 2001 From: "Kaloyan D. Bozhkov" Date: Tue, 11 Jun 2024 15:24:31 +0300 Subject: [PATCH 4/8] refactor into components --- bun.lockb | Bin 153431 -> 153431 bytes pages/feed.tsx | 29 +------- .../molecules/Comments.molecule.tsx | 40 +++++++++++ src/components/organisms/Post.organism.tsx | 63 ++++++++++++++++++ src/server/routers/feed/getAllPosts.ts | 26 +++++++- 5 files changed, 130 insertions(+), 28 deletions(-) create mode 100644 src/components/molecules/Comments.molecule.tsx create mode 100644 src/components/organisms/Post.organism.tsx diff --git a/bun.lockb b/bun.lockb index 1a4e2baee42e859297dfb68f81ee93e5163bb59a..035faa1f8adf452cda1c6d8fc9a85317d62fe343 100755 GIT binary patch delta 43 zcmcbM delta 49 zcmcbqj?=W69X7*7n;cEdJF)h C6%Nk; diff --git a/pages/feed.tsx b/pages/feed.tsx index 35584b3..b103a39 100644 --- a/pages/feed.tsx +++ b/pages/feed.tsx @@ -2,6 +2,7 @@ import Head from "next/head"; import trpcSS from "../src/utils/trpcSS"; import { InferGetServerSidePropsType } from "next"; import { Box, Button, Container, Typography } from "@mui/material"; +import Post from "../src/components/organisms/Post.organism"; const Feed = ({ initialPosts, @@ -17,38 +18,14 @@ const Feed = ({ Feed Page {/* @TODO add a layout/template component that will strucutre the page */} - {/* @TODO Move to own components (I like the ATOMIC design patterns, so this would be an organism composed of molecules which themselves would be made of atoms) */} + {/* @TODO Move to own components (I like the react ATOMIC design pattern. Based on its principles this would be an organism composed of molecules which themselves would be made of atoms) */} Feed Page {initialPosts.length ? ( - initialPosts.map((post) => ( - - - {post.title} - - - {post.body} - - - - )) + initialPosts.map((post) => ) ) : ( No posts available diff --git a/src/components/molecules/Comments.molecule.tsx b/src/components/molecules/Comments.molecule.tsx new file mode 100644 index 0000000..0a68c78 --- /dev/null +++ b/src/components/molecules/Comments.molecule.tsx @@ -0,0 +1,40 @@ +import { Paper, Typography } from "@mui/material"; + +const Comments = ({ + className = "", + comments, + onClose, +}: { + className?: string; + comments: { id: string; email: string; name: string; body: string }[]; + onClose?: () => void; +}) => { + return ( + // @TODO add tailwind, tailwind-merge & extend this +
+ {comments.map((c) => ( + + + {c.body} + +
+ + Author + + + {c.name} - {c.email} + +
+
+ ))} +
+ ); +}; + +export default Comments; diff --git a/src/components/organisms/Post.organism.tsx b/src/components/organisms/Post.organism.tsx new file mode 100644 index 0000000..f6d1a31 --- /dev/null +++ b/src/components/organisms/Post.organism.tsx @@ -0,0 +1,63 @@ +import { useState } from "react"; +import Comment from "../molecules/Comments.molecule"; +import Comments from "../molecules/Comments.molecule"; +import { Box, Button, Typography } from "@mui/material"; + +interface IPost { + id: number; + title: string; + body: string; + comments: { + name: string; + email: string; + body: string; + id: number; + }[]; +} + +const Post = ({ className, post }: { className?: string; post: IPost }) => { + const [expandedComment, setExpandedComment] = useState(false); + const commentsArea = (() => { + if (expandedComment) return ; + + if (post.comments.length) + return ( + + ); + + return ( + + No comments yet + + ); + })(); + return ( + + + {post.title} + + + {post.body} + + {commentsArea} + + ); +}; + +export default Post; diff --git a/src/server/routers/feed/getAllPosts.ts b/src/server/routers/feed/getAllPosts.ts index 20ebdc4..cc38fc2 100644 --- a/src/server/routers/feed/getAllPosts.ts +++ b/src/server/routers/feed/getAllPosts.ts @@ -8,9 +8,31 @@ interface Post { body: string; } +interface Comment { + postId: number; + id: number; + name: string; + email: string; + body: string; +} + export const getAllPosts = publicProcedure.query(async () => { - const { data } = await axios.get( + const { data: postsData } = await axios.get( "https://jsonplaceholder.typicode.com/posts" ); - return data as Post[]; + + const commentsPromises = postsData.map(async (post: Post) => { + const { data: comments } = await axios.get( + `https://jsonplaceholder.typicode.com/posts/${post.id}/comments` + ); + return { + ...post, + comments, + }; + }); + + // Wait for all comments to be fetched + const data = await Promise.all(commentsPromises); + + return data; }); From c6e84a688201348981c46a4b5475a412c051af07 Mon Sep 17 00:00:00 2001 From: "Kaloyan D. Bozhkov" Date: Tue, 11 Jun 2024 15:26:23 +0300 Subject: [PATCH 5/8] finalize: add close comments btn --- src/components/molecules/Comments.molecule.tsx | 12 +++++++++++- src/components/organisms/Post.organism.tsx | 8 +++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/components/molecules/Comments.molecule.tsx b/src/components/molecules/Comments.molecule.tsx index 0a68c78..3cd8494 100644 --- a/src/components/molecules/Comments.molecule.tsx +++ b/src/components/molecules/Comments.molecule.tsx @@ -1,4 +1,4 @@ -import { Paper, Typography } from "@mui/material"; +import { Button, Paper, Typography } from "@mui/material"; const Comments = ({ className = "", @@ -33,6 +33,16 @@ const Comments = ({ ))} + {onClose && ( + + )} ); }; diff --git a/src/components/organisms/Post.organism.tsx b/src/components/organisms/Post.organism.tsx index f6d1a31..1c4962a 100644 --- a/src/components/organisms/Post.organism.tsx +++ b/src/components/organisms/Post.organism.tsx @@ -18,7 +18,13 @@ interface IPost { const Post = ({ className, post }: { className?: string; post: IPost }) => { const [expandedComment, setExpandedComment] = useState(false); const commentsArea = (() => { - if (expandedComment) return ; + if (expandedComment) + return ( + setExpandedComment(false)} + /> + ); if (post.comments.length) return ( From 271ad9ec7ba6298e61ad1987d9b2db4495bfcc43 Mon Sep 17 00:00:00 2001 From: "Kaloyan D. Bozhkov" Date: Tue, 11 Jun 2024 15:44:51 +0300 Subject: [PATCH 6/8] finalizing --- next.config.js | 7 +- pages/feed.tsx | 37 +++++-- pages/vault.tsx | 122 +++++++++++++++++++++ src/components/organisms/Post.organism.tsx | 1 - src/server/index.ts | 2 + src/server/routers/feed/feed.router.ts | 1 + src/server/routers/vault/getPhotos.ts | 25 +++++ src/server/routers/vault/vault.router.ts | 9 ++ 8 files changed, 190 insertions(+), 14 deletions(-) create mode 100644 pages/vault.tsx create mode 100644 src/server/routers/vault/getPhotos.ts create mode 100644 src/server/routers/vault/vault.router.ts diff --git a/next.config.js b/next.config.js index a843cbe..524113e 100644 --- a/next.config.js +++ b/next.config.js @@ -1,6 +1,9 @@ /** @type {import('next').NextConfig} */ const nextConfig = { reactStrictMode: true, -} + images: { + domains: ["via.placeholder.com"], + }, +}; -module.exports = nextConfig +module.exports = nextConfig; diff --git a/pages/feed.tsx b/pages/feed.tsx index b103a39..aaa458b 100644 --- a/pages/feed.tsx +++ b/pages/feed.tsx @@ -1,10 +1,10 @@ import Head from "next/head"; import trpcSS from "../src/utils/trpcSS"; import { InferGetServerSidePropsType } from "next"; -import { Box, Button, Container, Typography } from "@mui/material"; +import { Box, Container, Typography } from "@mui/material"; import Post from "../src/components/organisms/Post.organism"; -const Feed = ({ +const FeedPage = ({ initialPosts, }: InferGetServerSidePropsType) => { // @TODO after loading initial posts - add pagination & load more as user infinitely scrolls @@ -12,10 +12,14 @@ const Feed = ({ // initialData: initialPosts, // }); + // -> If we dont care about SEO indexing feed page, can load data on client after showing skeleto loader + return ( <> Feed Page + + {/* more tags */} {/* @TODO add a layout/template component that will strucutre the page */} {/* @TODO Move to own components (I like the react ATOMIC design pattern. Based on its principles this would be an organism composed of molecules which themselves would be made of atoms) */} @@ -39,15 +43,26 @@ const Feed = ({ // handle SEO with SSR preloading html to crawl/index on export const getServerSideProps = async () => { - // @TODO use ctx req session to get user id from cookie or wherever and filter posts based on that, if present - otherwise show generic - // @TODO limit to x initial posts to avoid excess data transfers - const initialPosts = await trpcSS.feedRouter.getAllPosts.fetch(); + try { + // @TODO use ctx req session to get user id from cookie or wherever and filter posts based on that, if present - otherwise show generic + // @TODO limit to x initial posts to avoid excess data transfers + const initialPosts = await trpcSS.feedRouter.getAllPosts.fetch(); - return { - props: { - initialPosts, - }, - }; + return { + props: { + initialPosts, + }, + }; + } catch (err) { + // @TODO DataDog logger/Sentry or whatever + // @TODo move top level to all trpc procedure error scenarios + console.warn(err); + return { + props: { + initialPosts: [], + }, + }; + } }; -export default Feed; +export default FeedPage; diff --git a/pages/vault.tsx b/pages/vault.tsx new file mode 100644 index 0000000..93f3428 --- /dev/null +++ b/pages/vault.tsx @@ -0,0 +1,122 @@ +import Head from "next/head"; +import trpcSS from "../src/utils/trpcSS"; +import { InferGetServerSidePropsType } from "next"; +import { Box, Container, Grid, Modal, Typography } from "@mui/material"; +import Post from "../src/components/organisms/Post.organism"; +import { useState } from "react"; +import Image from "next/image"; + +const VaultPage = ({ + initialPhotos, +}: InferGetServerSidePropsType) => { + const [selectedPhoto, setSelectedPhoto] = useState< + (typeof initialPhotos)[number] | null + >(null); + + const handleOpen = (photo: NonNullable) => + setSelectedPhoto(photo); + + const handleClose = () => setSelectedPhoto(null); + + return ( + <> + + Vault Page + + {/* more tags */} + + + + Vault + + {/* @TODO move to own organism for handling img gallery */} + + {/* @TODO veritaulize list to improve performance */} + {initialPhotos.length ? ( + initialPhotos.slice(0, 20).map((photo) => ( + handleOpen(photo)} + > + {/* add add loading animation via img background */} + {photo.title} + + )) + ) : ( + + No photos + + )} + + {/* @TODO move to own organism & move top level for handling common modals */} + + + {selectedPhoto && ( + <> + {selectedPhoto.title} + + {selectedPhoto.title} + + + )} + + + + + ); +}; + +export const getServerSideProps = async () => { + // @TODO use ctx req session to get user id from cookie or wherever and filter posts based on that, if present - otherwise show generic + // @TODO limit to x initial photos to avoid excess data transfers + try { + const initialPhotos = await trpcSS.vaultRouter.getPhotos.fetch(); + + return { + props: { + initialPhotos, + }, + }; + } catch (err) { + // @TODO DataDog logger/Sentry or whatever + // @TODo move top level to all trpc procedure error scenarios + console.warn(err); + return { + props: { + initialPhotos: [], + }, + }; + } +}; + +export default VaultPage; diff --git a/src/components/organisms/Post.organism.tsx b/src/components/organisms/Post.organism.tsx index 1c4962a..72bbc7b 100644 --- a/src/components/organisms/Post.organism.tsx +++ b/src/components/organisms/Post.organism.tsx @@ -1,5 +1,4 @@ import { useState } from "react"; -import Comment from "../molecules/Comments.molecule"; import Comments from "../molecules/Comments.molecule"; import { Box, Button, Typography } from "@mui/material"; diff --git a/src/server/index.ts b/src/server/index.ts index 122bce6..2d74df8 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -1,8 +1,10 @@ import feedRouter from "./routers/feed/feed.router"; +import vaultRouter from "./routers/vault/vault.router"; import { router } from "./trpc"; const appRouter = router({ feedRouter, + vaultRouter, }); export type AppRouter = typeof appRouter; diff --git a/src/server/routers/feed/feed.router.ts b/src/server/routers/feed/feed.router.ts index ae88bb0..ef72f6c 100644 --- a/src/server/routers/feed/feed.router.ts +++ b/src/server/routers/feed/feed.router.ts @@ -3,6 +3,7 @@ import { getAllPosts } from "./getAllPosts"; const feedRouter = router({ getAllPosts, + // @TODO keep adding procedures here }); export default feedRouter; diff --git a/src/server/routers/vault/getPhotos.ts b/src/server/routers/vault/getPhotos.ts new file mode 100644 index 0000000..76fe77a --- /dev/null +++ b/src/server/routers/vault/getPhotos.ts @@ -0,0 +1,25 @@ +import axios from "axios"; + +import { z } from "zod"; +import { publicProcedure } from "../../trpc"; +import { TRPCError } from "@trpc/server"; + +interface Photo { + albumId: number; + id: number; + title: string; + url: string; + thumbnailUrl: string; +} + +export const getPhotos = publicProcedure + // @TODO can use zod for payload parsing eg: + // .input(z.object({ skip: z.number(), take: z.number() })) + // Can use context for neat access to session, roles or ORM + .query(async (/* { ctx: { prisma }, input: { prompt } } */) => { + const { data } = await axios.get( + "https://jsonplaceholder.typicode.com/photos" + ); + + return data; + }); diff --git a/src/server/routers/vault/vault.router.ts b/src/server/routers/vault/vault.router.ts new file mode 100644 index 0000000..484cf89 --- /dev/null +++ b/src/server/routers/vault/vault.router.ts @@ -0,0 +1,9 @@ +import { router } from "../../trpc"; +import { getPhotos } from "./getPhotos"; + +const vaultRouter = router({ + getPhotos, + // @TODO keep adding procedures here +}); + +export default vaultRouter; From 06435e7a0345d9e7b7e1086549ac7ef9655962c4 Mon Sep 17 00:00:00 2001 From: "Kaloyan D. Bozhkov" Date: Tue, 11 Jun 2024 15:49:39 +0300 Subject: [PATCH 7/8] documentation: add comments --- src/server/routers/feed/getAllPosts.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/server/routers/feed/getAllPosts.ts b/src/server/routers/feed/getAllPosts.ts index cc38fc2..854d369 100644 --- a/src/server/routers/feed/getAllPosts.ts +++ b/src/server/routers/feed/getAllPosts.ts @@ -21,6 +21,8 @@ export const getAllPosts = publicProcedure.query(async () => { "https://jsonplaceholder.typicode.com/posts" ); + // @TODO look into better approach as for each post we're doing a new API call -> N+1 problem + // Could be worth rethinking the UX to avoid doing this, or better looking into the BE and figuring out a better way to do this const commentsPromises = postsData.map(async (post: Post) => { const { data: comments } = await axios.get( `https://jsonplaceholder.typicode.com/posts/${post.id}/comments` @@ -31,7 +33,6 @@ export const getAllPosts = publicProcedure.query(async () => { }; }); - // Wait for all comments to be fetched const data = await Promise.all(commentsPromises); return data; From b0808556c1d141ff98fca4b348d0d0233e0ee9bd Mon Sep 17 00:00:00 2001 From: "Kaloyan D. Bozhkov" Date: Tue, 11 Jun 2024 15:57:15 +0300 Subject: [PATCH 8/8] update: add txt to readme --- README.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/README.md b/README.md index 7f31e0b..d82b67e 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,29 @@ +# TODO + +totally skipped: + +- tests (unit/integ/e2e) + +could expand with: + +- auth +- prisma +- better SEO, analytics etc.. Could use next-seo for sitemaps and more +- actual FE work (quality mobile responsive designs) +- vault page can be restructured into better components + +for quality teamwork & efficacy at least: + +- prettier, ideally with improts sorting +- eslint +- dev QOL improvements e.g. absolute imports (tsconfig), + +no design system? + +- tailwind, tailwind-merge etc.. + +... much more ... + # Fanvue's Fullstack challenge Setup the project: