From aacac99a4027b0c7dbbd382967d9b2ea4b8d1a8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bryan=20M=C3=BCller?= Date: Mon, 1 Jan 2024 20:31:49 -0600 Subject: [PATCH] initial work on either --- .idea/prettier.xml | 7 + apps/docs/.eslintrc.js | 9 - apps/docs/README.md | 28 - apps/docs/app/favicon.ico | Bin 8267 -> 0 bytes apps/docs/app/globals.css | 50 - apps/docs/app/layout.tsx | 22 - apps/docs/app/page.module.css | 335 ----- apps/docs/app/page.tsx | 144 -- apps/docs/next-env.d.ts | 5 - apps/docs/next.config.js | 4 - apps/docs/package.json | 28 - apps/docs/public/circles.svg | 17 - apps/docs/public/next.svg | 1 - apps/docs/public/turborepo.svg | 32 - apps/docs/public/vercel.svg | 1 - apps/docs/tsconfig.json | 18 - apps/web/.eslintrc.js | 9 - apps/web/README.md | 28 - apps/web/app/favicon.ico | Bin 8267 -> 0 bytes apps/web/app/globals.css | 50 - apps/web/app/layout.tsx | 22 - apps/web/app/page.module.css | 335 ----- apps/web/app/page.tsx | 144 -- apps/web/next-env.d.ts | 5 - apps/web/next.config.js | 4 - apps/web/package.json | 28 - apps/web/public/circles.svg | 17 - apps/web/public/next.svg | 1 - apps/web/public/turborepo.svg | 32 - apps/web/public/vercel.svg | 1 - apps/web/tsconfig.json | 18 - packages/either/package.json | 28 + packages/either/src/either.ts | 37 + packages/either/src/fns.ts | 287 ++++ packages/either/src/index.ts | 1 + packages/either/src/test/either.spec.ts | 69 + packages/either/src/test/fns.spec.ts | 148 ++ packages/either/src/types.ts | 37 + packages/either/src/util.ts | 39 + packages/either/tsconfig.json | 10 + packages/either/vite.config.js | 17 + packages/eslint-config/next.js | 35 - packages/eslint-config/package.json | 1 - packages/typescript-config/nextjs.json | 13 - packages/typescript-config/ts-lib.json | 13 + packages/ui/package.json | 4 +- pnpm-lock.yaml | 1800 +++++++++++++++++------ turbo.json | 3 +- 48 files changed, 2065 insertions(+), 1872 deletions(-) create mode 100644 .idea/prettier.xml delete mode 100644 apps/docs/.eslintrc.js delete mode 100644 apps/docs/README.md delete mode 100644 apps/docs/app/favicon.ico delete mode 100644 apps/docs/app/globals.css delete mode 100644 apps/docs/app/layout.tsx delete mode 100644 apps/docs/app/page.module.css delete mode 100644 apps/docs/app/page.tsx delete mode 100644 apps/docs/next-env.d.ts delete mode 100644 apps/docs/next.config.js delete mode 100644 apps/docs/package.json delete mode 100644 apps/docs/public/circles.svg delete mode 100644 apps/docs/public/next.svg delete mode 100644 apps/docs/public/turborepo.svg delete mode 100644 apps/docs/public/vercel.svg delete mode 100644 apps/docs/tsconfig.json delete mode 100644 apps/web/.eslintrc.js delete mode 100644 apps/web/README.md delete mode 100644 apps/web/app/favicon.ico delete mode 100644 apps/web/app/globals.css delete mode 100644 apps/web/app/layout.tsx delete mode 100644 apps/web/app/page.module.css delete mode 100644 apps/web/app/page.tsx delete mode 100644 apps/web/next-env.d.ts delete mode 100644 apps/web/next.config.js delete mode 100644 apps/web/package.json delete mode 100644 apps/web/public/circles.svg delete mode 100644 apps/web/public/next.svg delete mode 100644 apps/web/public/turborepo.svg delete mode 100644 apps/web/public/vercel.svg delete mode 100644 apps/web/tsconfig.json create mode 100644 packages/either/package.json create mode 100644 packages/either/src/either.ts create mode 100644 packages/either/src/fns.ts create mode 100644 packages/either/src/index.ts create mode 100644 packages/either/src/test/either.spec.ts create mode 100644 packages/either/src/test/fns.spec.ts create mode 100644 packages/either/src/types.ts create mode 100644 packages/either/src/util.ts create mode 100644 packages/either/tsconfig.json create mode 100644 packages/either/vite.config.js delete mode 100644 packages/eslint-config/next.js delete mode 100644 packages/typescript-config/nextjs.json create mode 100644 packages/typescript-config/ts-lib.json diff --git a/.idea/prettier.xml b/.idea/prettier.xml new file mode 100644 index 0000000..0c83ac4 --- /dev/null +++ b/.idea/prettier.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/apps/docs/.eslintrc.js b/apps/docs/.eslintrc.js deleted file mode 100644 index 7d644a4..0000000 --- a/apps/docs/.eslintrc.js +++ /dev/null @@ -1,9 +0,0 @@ -/** @type {import("eslint").Linter.Config} */ -module.exports = { - root: true, - extends: ["@repo/eslint-config/next.js"], - parser: "@typescript-eslint/parser", - parserOptions: { - project: true, - }, -}; diff --git a/apps/docs/README.md b/apps/docs/README.md deleted file mode 100644 index d364535..0000000 --- a/apps/docs/README.md +++ /dev/null @@ -1,28 +0,0 @@ -## Getting Started - -First, run the development server: - -```bash -yarn dev -``` - -Open [http://localhost:3001](http://localhost:3001) with your browser to see the result. - -You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. - -To create [API routes](https://nextjs.org/docs/app/building-your-application/routing/router-handlers) add an `api/` directory to the `app/` directory with a `route.ts` file. For individual endpoints, create a subfolder in the `api` directory, like `api/hello/route.ts` would map to [http://localhost:3001/api/hello](http://localhost:3001/api/hello). - -## Learn More - -To learn more about Next.js, take a look at the following resources: - -- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. -- [Learn Next.js](https://nextjs.org/learn/foundations/about-nextjs) - an interactive Next.js tutorial. - -You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! - -## Deploy on Vercel - -The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_source=github.com&utm_medium=referral&utm_campaign=turborepo-readme) from the creators of Next.js. - -Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. diff --git a/apps/docs/app/favicon.ico b/apps/docs/app/favicon.ico deleted file mode 100644 index 3f804c026c253d52f61b6f70ec351d1044e6bd8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8267 zcma)hcQjmI)b^b*7~SY4LI%-BkKUOPCHjn#MD!ZHcS9r@Eus^hh~7oiC_w~4)Tlua zqW2m;zkj~9zCXV8zU!`Y_PYB#&wkFi>#no*IXhBU`ym-I6EOe)Wa?^2{af4dUxO0d z_WE;9gtrD_r=+C>05x$WR~GoU?`&3T`dR=Ga327$5dd&;>%y)BfVU6;{51yv=`;YK zcgt+nlf4}vu+)5r1aAI&a@&d$Z#_hAY9^ilK#usYfzC5_C~uvFUg}yX!Zl)AN`QD? ztH=}p?$)X!mC$}O+gbi;G!sp)f9)O(0<}1%-(vmC#01n;dhERn?&>4Rf@PMDZZSO? zH~K1D??;yT?$O*Ymc@9Bp#|JO8t>bqkp;!wX-HH&r|KNNqVdF!lvyKcZDsQagKV$1EaO>G5b~z{lm=@dy$&R=zMh z$~8;>m{`9UYHRNqtrEIcfH!g!G7_&7)}AYiwGg*jjjhkXeDedLsazlaYV&bda z!kW-UlG`Oz>JSA)xE3IC^@=>QT+)3)yJP7U@qbWLP8^{qW1_A44v1p|#K|5f`uysi z*44qcK=Yv>KpS@8T=vjmJkP=CKKbp^qLMcWLRWFX;y}k!rel4V@f`=FUe0F#?JFfd z41^%9qiC>5&sVcWM1XmqK+v1=*=SsHnofW|qwlM8(FeHj2#ptgSPgRDCdmx+H-n z!gy#1U%256Ke}>>Whht4X$BLi{PH-Pi&&0pBebGnI?vMD*l@)SMeyFV$Ok$$9rK%! z=lN)*h95?5LZ@0#0c->5TC6Wi{2dY?lt20}u?=Wunp&rfFra*c7f|#xZIvCd0#6h}_^^5&RT5KWKWh@1Zd>KLQiPlEtP!{wfoLI^)@EiqLGwx*tT>x8(9a z1B7$K;*Ax|DXZCq7=EU7eE!T;t-f>mINXhs6~s!7^nU_E5IiHe#%~29sN7qF?8mjR zd||&6wwNM*#3ZK^rI=6(0))kmWYvV#3e~JaN#?mNmSjS#evmXgS)OHX-5m}&=$B*e zCtTyEIr&>pc=Whi0SzQ35X6oRFgHt>_qd8->zhEBH{)8LOiqMPFY+#?Asqz~cs^F; ztyyaR_+`tHF{Mn4&mnlL+@rtj2>Yl8Nyo4<$bQ_JxXHtUIYsj{CJBmtal#^JktKXe z5N4Y^6UZcSO7saP-V+dlH9khlBQ}U*FKiZfB4*A-d%smB{LKvV1JNjA0>NBVq*oQA zl{&C;AcW#60^alRT}E++feLl!sDO5DM@UTK*Tmg?KoBci>`1^s@&L#vG|dq)Mpcg; zZsw<|PC4-NKaF+s81xQev7zrBh`@qrduJK}RHmn$dxVQ#Fq5a_Cb0pqz26L*g$%DeqhvF^ zUi*Q7(q~PU2X}-OaX35?F{`Z7t8Z$x7W%3*FywdzqJ4%GVctj_~ z2w|fsrpjQ#C4QKRD;1#cHm=$>={Z;T?In=GEB^bT<9o+Fhbd0f8s0IymivG)@rWRT zwHuu?!EI*Qig;9tC*H@Xi21~E=2w4@A_O{E@MrbeRe|0Yo{k*LQXOB8Nt?+4CpS@S zDLKJi$VHK9DzPQL+k2cW&Bl7<%xk7K@cs%+_r#)AHXiv!qWCt{DRB1-#r2yb@Q&Vu zUi=$*Q+Wb%yoKmO@vcJkm!@;(klfNhDr0?@Y#&qJB1LFqLATN~P$s z;i*4!jO*iF#9K_P=c9@b#uli=Nu$<4r?(oEQ!vf!WdU|cY43|I5_VXJ=Nc#X7M9LP^t%sfHUufWA@EL5HOH_}JWceG^FVMy z4LqW8S9LMs$L!E{4}=iMw(4r5DpH$7u2k<26?BHybziE%hsFGpCX|i7%>uSDd)}(H z_$#1nQ}Ho}LCR|83$OyOho4x2Zz(c8QNWF$QF{~3VqJp&4ndgSb zfm^7Mf%e)Z-@g_+S|lE@EzeqiUA?>2d=DcCgs1lM8*ramnb+fDsN<2o9?175$PltE zt?DDqchcs{>w1i~l!)}F!nm>thwkQ5Iz<6PyR%rgVG;AHe0DxbRb)2k1e~pzcSeo* zxL12GxoWx)`9PKWjyQ-U^v+^rpj}NZ%bNnsx*x&z)Hw<~^5D-H zFZ9QVzMgAYQa}DqOJAdjuC+D0Z?D6fW8gKk)DtEmaiz3C=c3MNkGoSLB2Zcdxo~ft zUSirRA0|zL`^&yODqH-@e!&q|YzvBcR9*fJzU;%#ObtJf$ln@kVSkW-?6tkIM7!Sy zTlg9!S80G&JUq4&b=_S-3K}inQ6iBm3xo}N{H@uk@%1yG0bb6 zEX4y(^jydiE!>!(38th_ITmY*ZheeTxv=DN=1sLmCVZe7F5B&17n)WV^K1m&8jH~dKv!1Xyqo3>nRhqB+y=Z# z^I4G05_K$A5Je43Bl9ItQwB5#_E$ejm57f|`*24+6ZViHctvZOy?p9L{Ju37z}8s*RY+kGst5xt)_qAj)c{ ztAz^*zFdoi=D+t}I*So^e7kmqCNsq6jm}aBn8jEt)V%A2Zbkz_k0YSn-$`|2HFG&g z7nh-@Sxi#wO{Z1@AAEm;RBc}BF(Z8K+m9SfuW4%T{9Vc)o#4iDJYri=Z;2P)^BJ6~ zBGYW){ize)xr2mgE1MY>0LnQJY-%--b6=ZvayYJ1NaQm`c=;X^HsZmM!|qS9jx>sX ztrrKz$v${i@JLq>zJjiXrjN}m=-CITqba(P$t>K6dN)wk_w~QUu8_ox$>r|-fUR2@0Gw=r8*Q57O8pb3JTC+KrtN!V< zSUGOi<^)?@Csm7`5z~`VSP(AGL;BSrn0bbu@HI<$B2gCl?;C*0Gb;YRYSM{4bIX8Eck6yYCRKp;gOU1b`Fd)EmS6N>mRXrXVsJyEg zyM8j=@H8ax903rNIV!-^EgK?fF%|eHTDiq; zhp^|LBrGQvJh@dMxJ2LjgH*-*Eb;`Z6qWgfh4XG9nOzPD@MHOzAs%7;V5OnO3mJ@X zsZ70q|7>iueu_%Ic9%hlAn=`rl-9T$D)N20I!!Rzjrn=4Xu=yACiV%=|h%K$<_;!9qEige-fVkcBBDrq zo5r_3pYI0l!xg>Hqs9VdgiU^xXd8^ZYgdLGj=5A8r^fF2XU!p6sKNp_w@_c<=|7-dm*(T90b^9~S| z20-@aBch&Yt4;RHG1Ki>qZM3<7fvmaiZ6*e`bm1S_0=H8kqKmb0=J|v5{&mQWPmSy zE_(Nvh)#-coS^t+@Zt8^ZE{{cB(5|EHQ$Jt;^|Z^5`|fh-=$ePnpG3fvL|!PD3y*x zQPVdi)rdy^I;i7^!H1_UvYZ1`;ox$2y49{oz$1j1v!s?9=G106yGu_R#t+{GpSJwP zL5~RU8cuvBN?~Nge5WMs{%s31#SX(wkr(Wz?}F5)VPzvSw+#wi z56a0PcrixmL05?Z%cKIa8G-HUK_Z5HqNge%+9E8|H#=uNs#T2oB%s<+tTkb{~-{(F~5C0n3s>K%m;2Tg7hF^N| zw)AdAsf|so-o#^!92#Rs{PuA8k_uC-^Fu^%&y4%EHnTv&{obNaV zFZHG?cvMDlPqr(X%9_Pk)6e%H{2M=}Ql)Zg@_E4IzP`wKOh zqj9_`D6LZ;qI6POX6*=#R#Q4myb#T19EYEv`1H%tj+K{_#HrJ4WJno>svX{6zJDp~ z{44TOu-;K%Y@6bZNLi-#p7n8K0X_q@_!%fEg)i38x!UK``IQ_oQ#0e%#V*9s^^Mh@ z%2Tj$?GxuIY+ReV%pI>3c=QUVnTP85v?tiplYsx`P3?}Wz2Ey@2GQ@uCoVF%SvbWl z*UqdBPkBpPETZYqJ3_{?@#v33NgJ;|3-VgkoIgE@I@oCO5iHW$XK(EZzk-%3$}s2`Xu3Se#7>{UY|FyZXhf0&dKlUFQBUWm{r3Z&`~bzTplvlsoZQi@>8^I^{x^S-iHTC^^^dbESmHI;`+*MtV^Sp*dsU@VDxr}wE!hycaQIN3mL*MuUlFm$3_kHK#DB(>-hQRL(K8sDO}`=lHOnLm+L4xJKQua&fjKrqLa4^IEZ&SqZkU3+o{L_cU#v#i`;B%~on35{~c2{UkJ&XmO&L z_MdTGS>l{9uvT~ZWY6YCpgX!46>k(qg55^0jOY{I&>l;KPDBOw7LzB>9ei-BF0D;b zAu;Yrckq2$Dhgo9FI-&Zx8>>kSanP5ZHDDmLiPDH*q=9NaSaqzAj%d>%{biJ?hrX8 zDo^oq;m9SlkZZ}Fd9N(U#4?;lZ)A}nE~vjV3N>WHgAmrT{<~9Vq2_)b+iB{zm+Q^n zaUkpG*Ti1+8$5Q?1~`is03TQdiB)uYOUhu+nOwpts*P_KKkEOZ|squgjI;hjc5%@?|a6 zbJON+&BZR7l#7l+Lfog9K)7*s+c(xYb)q}I@}Lwd>t~_(ep08GUEGzCdJYVex^*_Y z{9J6K=BVbERrB*W#rVU@rls6p&0D)3#S9?DjMU{b!q6uvVb^J#TA$RE<2gKp{{@1A zq4{4cC}Bl#ME7pH=dl}yXC!T%<~99z8WKAvyWi`|nuC@p(A5J2BcS77@jY6hh~+a6 zg3u?~N`vXOXFhi4MZB>aggSF#d;`|aLwx*dN}H8E9Uu*>AV5;sI!wP6^eZ3Fu4kOcMn zF*$=5;`zJJcXTIps8|}rA$B&E@@Z%7G3|LBu|(DT^93zUp$c5|!&hQQ&L2)F%kDU! zUX`iEdB6DaHUWCw@WF)QO3PrCJfv6z#36UfZMpvLTm#p6%ud0Uei`^VU@V*?Rh?MG zcQ>jYOEfWt9hi3`KR7FLg%UJ3MggfSB%Lg(Y-*_S*F--HkSMfe||GReVjAz zJg7SFTr~y}WqZEviXteD2N@O`wRp@jC1Kt|%Y`MJYxkpsxpbtO@*AW{;`xAMR}g>I;-S zevuN6a0p%v|+ z7wRU1fwxl`@|GKKRdnTE({!<<3CJf+T)YfZ_1*`(1tpQ(fFD>9`|77|^wYO8+d zJKA9z`Vu~bR{Q_TgTzx%d0PwG-p45yWg8|7Q_HfA%32S$Sv7YrzUIvV&A<97Cx$7d7%j=f)}5>dy^T`8%P)e+|W0FRulA{kcsKXYW3dn)ufAZfVfyKEqPB&^_-<@Pz-FV6dc#X+KB zuRi0IciB5H@S}0g_x*%lJe|~rI@mf~|`1ZJ)W9)H6h$|8O=;ry4-V%0dw%8h2R6a%S` zC>JseFEK#uAanaK!M;ztdPjd- zief6z_rk@vN6Ozl$w=i4m(aaipVm@)(3v^^!r4OSZYv6mm+dOj0G$gK<+z<6ip$4#cq5E6cGm!&n>ckCu%gV&aC1e@FL5YDd^^V`?7 zur>2_32@(NQG#pADO_0E@m64+q39!2`FVzLGh2b!;l<5A$M$T&+lm)eJZdZzk76|h z7^&C{d@C#y#)2JXwPvf9>ar~kAzv9&o*HNR7WGk(!D>PE$h0io7v)`&w#BSw`-91f z{y1>sRg~|8)Bi;w`2RwL_iyeg`kt*Gm-OEjv^l*{#$MJIUN+KJ9yYfI5D^j);TIO- z7ZFAai%Sa$Nec_{-S$F4gY9KT{|~|0)!M<<|Nl>DTc+N;B{2S{VBl)&S&z+)#7up*&mr`AlQ!J}qFVjq05#$&HTvkm+l@9Q4yzSB)OfK|)Y a5CHzt!@LfZ#gcC&0Cki$vQpVR{Qm$*Br?$e diff --git a/apps/docs/app/globals.css b/apps/docs/app/globals.css deleted file mode 100644 index 8eee6cb..0000000 --- a/apps/docs/app/globals.css +++ /dev/null @@ -1,50 +0,0 @@ -:root { - --max-width: 1100px; - --border-radius: 12px; - --font-mono: ui-monospace, Menlo, Monaco, "Cascadia Mono", "Segoe UI Mono", - "Roboto Mono", "Oxygen Mono", "Ubuntu Monospace", "Source Code Pro", - "Fira Mono", "Droid Sans Mono", "Courier New", monospace; - - --foreground-rgb: 255, 255, 255; - --background-start-rgb: 0, 0, 0; - --background-end-rgb: 0, 0, 0; - - --callout-rgb: 20, 20, 20; - --callout-border-rgb: 108, 108, 108; - --card-rgb: 100, 100, 100; - --card-border-rgb: 200, 200, 200; - - --glow-conic: conic-gradient( - from 180deg at 50% 50%, - #2a8af6 0deg, - #a853ba 180deg, - #e92a67 360deg - ); -} - -* { - box-sizing: border-box; - padding: 0; - margin: 0; -} - -html, -body { - max-width: 100vw; - overflow-x: hidden; -} - -body { - color: rgb(var(--foreground-rgb)); - background: linear-gradient( - to bottom, - transparent, - rgb(var(--background-end-rgb)) - ) - rgb(var(--background-start-rgb)); -} - -a { - color: inherit; - text-decoration: none; -} diff --git a/apps/docs/app/layout.tsx b/apps/docs/app/layout.tsx deleted file mode 100644 index 5f90d11..0000000 --- a/apps/docs/app/layout.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import "./globals.css"; -import type { Metadata } from "next"; -import { Inter } from "next/font/google"; - -const inter = Inter({ subsets: ["latin"] }); - -export const metadata: Metadata = { - title: "Create Turborepo", - description: "Generated by create turbo", -}; - -export default function RootLayout({ - children, -}: { - children: React.ReactNode; -}): JSX.Element { - return ( - - {children} - - ); -} diff --git a/apps/docs/app/page.module.css b/apps/docs/app/page.module.css deleted file mode 100644 index 98481c6..0000000 --- a/apps/docs/app/page.module.css +++ /dev/null @@ -1,335 +0,0 @@ -.main { - display: flex; - flex-direction: column; - justify-content: space-between; - align-items: center; - padding: 6rem; - min-height: 100vh; -} - -.vercelLogo { - filter: invert(1); -} - -.description { - display: inherit; - justify-content: inherit; - align-items: inherit; - font-size: 0.85rem; - max-width: var(--max-width); - width: 100%; - z-index: 2; - font-family: var(--font-mono); -} - -.description a { - display: flex; - justify-content: center; - align-items: center; - gap: 0.5rem; -} - -.description p { - position: relative; - margin: 0; - padding: 1rem; - background-color: rgba(var(--callout-rgb), 0.5); - border: 1px solid rgba(var(--callout-border-rgb), 0.3); - border-radius: var(--border-radius); -} - -.code { - font-weight: 700; - font-family: var(--font-mono); -} - -.hero { - display: flex; - position: relative; - place-items: center; -} - -.heroContent { - display: flex; - position: relative; - z-index: 0; - padding-bottom: 4rem; - flex-direction: column; - gap: 2rem; - justify-content: space-between; - align-items: center; - width: auto; - font-family: system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, - "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", - "Segoe UI Symbol", "Noto Color Emoji"; - padding-top: 48px; - - @media (min-width: 768px) { - padding-top: 4rem; - padding-bottom: 6rem; - } - @media (min-width: 1024px) { - padding-top: 5rem; - padding-bottom: 8rem; - } -} - -.logos { - display: flex; - z-index: 50; - justify-content: center; - align-items: center; - width: 100%; -} - -.grid { - display: grid; - grid-template-columns: repeat(4, minmax(25%, auto)); - max-width: 100%; - width: var(--max-width); -} - -.card { - padding: 1rem 1.2rem; - border-radius: var(--border-radius); - background: rgba(var(--card-rgb), 0); - border: 1px solid rgba(var(--card-border-rgb), 0); - transition: background 200ms, border 200ms; -} - -.card span { - display: inline-block; - transition: transform 200ms; -} - -.card h2 { - font-weight: 600; - margin-bottom: 0.7rem; -} - -.card p { - margin: 0; - opacity: 0.6; - font-size: 0.9rem; - line-height: 1.5; - max-width: 30ch; -} - -@media (prefers-reduced-motion) { - .card:hover span { - transform: none; - } -} - -/* Mobile */ -@media (max-width: 700px) { - .content { - padding: 4rem; - } - - .grid { - grid-template-columns: 1fr; - margin-bottom: 120px; - max-width: 320px; - text-align: center; - } - - .card { - padding: 1rem 2.5rem; - } - - .card h2 { - margin-bottom: 0.5rem; - } - - .center { - padding: 8rem 0 6rem; - } - - .center::before { - transform: none; - height: 300px; - } - - .description { - font-size: 0.8rem; - } - - .description a { - padding: 1rem; - } - - .description p, - .description div { - display: flex; - justify-content: center; - position: fixed; - width: 100%; - } - - .description p { - align-items: center; - inset: 0 0 auto; - padding: 2rem 1rem 1.4rem; - border-radius: 0; - border: none; - border-bottom: 1px solid rgba(var(--callout-border-rgb), 0.25); - background: linear-gradient( - to bottom, - rgba(var(--background-start-rgb), 1), - rgba(var(--callout-rgb), 0.5) - ); - background-clip: padding-box; - backdrop-filter: blur(24px); - } - - .description div { - align-items: flex-end; - pointer-events: none; - inset: auto 0 0; - padding: 2rem; - height: 200px; - background: linear-gradient( - to bottom, - transparent 0%, - rgb(var(--background-end-rgb)) 40% - ); - z-index: 1; - } -} - -/* Enable hover only on non-touch devices */ -@media (hover: hover) and (pointer: fine) { - .card:hover { - background: rgba(var(--card-rgb), 0.1); - border: 1px solid rgba(var(--card-border-rgb), 0.15); - } - - .card:hover span { - transform: translateX(4px); - } -} - -.circles { - position: absolute; - min-width: 614px; - min-height: 614px; - pointer-events: none; -} - -.logo { - z-index: 50; - width: 120px; - height: 120px; -} - -.logoGradientContainer { - display: flex; - position: absolute; - z-index: 50; - justify-content: center; - align-items: center; - width: 16rem; - height: 16rem; -} - -.turborepoWordmarkContainer { - display: flex; - z-index: 50; - padding-left: 1.5rem; - padding-right: 1.5rem; - flex-direction: column; - gap: 1.25rem; - justify-content: center; - align-items: center; - text-align: center; - - @media (min-width: 1024px) { - gap: 1.5rem; - } -} - -.turborepoWordmark { - width: 160px; - fill: white; - - @media (min-width: 768px) { - width: 200px; - } -} - -.code { - font-family: Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", - monospace; - font-weight: 700; -} - -/* Tablet and Smaller Desktop */ -@media (min-width: 701px) and (max-width: 1120px) { - .grid { - grid-template-columns: repeat(2, 50%); - } -} - -/* Gradients */ -.gradient { - position: absolute; - mix-blend-mode: normal; - will-change: filter; - pointer-events: none; -} - -.gradientSmall { - filter: blur(32px); -} - -.gradientLarge { - filter: blur(75px); -} - -.glowConic { - background-image: var(--glow-conic); -} - -.logoGradient { - opacity: 0.9; - width: 120px; - height: 120px; -} - -.backgroundGradient { - top: -500px; - width: 1000px; - height: 1000px; - opacity: 0.15; -} - -.button { - background-color: #ffffff; - border-radius: 8px; - border-style: none; - box-sizing: border-box; - color: #000000; - cursor: pointer; - display: inline-block; - font-size: 16px; - height: 40px; - line-height: 20px; - list-style: none; - margin: 0; - outline: none; - padding: 10px 16px; - position: relative; - text-align: center; - text-decoration: none; - transition: color 100ms; - vertical-align: baseline; - user-select: none; - -webkit-user-select: none; - touch-action: manipulation; -} - -.button:hover, -.button:focus { - background-color: #e5e4e2; -} diff --git a/apps/docs/app/page.tsx b/apps/docs/app/page.tsx deleted file mode 100644 index 1ac152f..0000000 --- a/apps/docs/app/page.tsx +++ /dev/null @@ -1,144 +0,0 @@ -import Image from "next/image"; -import { Card } from "@repo/ui/card"; -import { Code } from "@repo/ui/code"; -import styles from "./page.module.css"; -import { Button } from "@repo/ui/button"; - -function Gradient({ - conic, - className, - small, -}: { - small?: boolean; - conic?: boolean; - className?: string; -}): JSX.Element { - return ( - - ); -} - -const LINKS = [ - { - title: "Docs", - href: "https://turbo.build/repo/docs", - description: "Find in-depth information about Turborepo features and API.", - }, - { - title: "Learn", - href: "https://turbo.build/repo/docs/handbook", - description: "Learn more about monorepos with our handbook.", - }, - { - title: "Templates", - href: "https://turbo.build/repo/docs/getting-started/from-example", - description: "Choose from over 15 examples and deploy with a single click.", - }, - { - title: "Deploy", - href: "https://vercel.com/new", - description: - " Instantly deploy your Turborepo to a shareable URL with Vercel.", - }, -]; - -export default function Page(): JSX.Element { - return ( -
-
-

- examples/basic  - docs -

- -
- - - -
-
-
-
- Turborepo -
-
- -
- -
- -
-
- -
- - Turborepo logo - - - - - - - - - - -
-
-
- -
- {LINKS.map(({ title, href, description }) => ( - - {description} - - ))} -
-
- ); -} diff --git a/apps/docs/next-env.d.ts b/apps/docs/next-env.d.ts deleted file mode 100644 index 4f11a03..0000000 --- a/apps/docs/next-env.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -/// -/// - -// NOTE: This file should not be edited -// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/apps/docs/next.config.js b/apps/docs/next.config.js deleted file mode 100644 index a5b0aec..0000000 --- a/apps/docs/next.config.js +++ /dev/null @@ -1,4 +0,0 @@ -/** @type {import('next').NextConfig} */ -module.exports = { - transpilePackages: ["@repo/ui"], -}; diff --git a/apps/docs/package.json b/apps/docs/package.json deleted file mode 100644 index 8fb157e..0000000 --- a/apps/docs/package.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "docs", - "version": "1.0.0", - "private": true, - "scripts": { - "dev": "next dev --port 3001", - "build": "next build", - "start": "next start", - "lint": "eslint . --max-warnings 0" - }, - "dependencies": { - "@repo/ui": "workspace:*", - "next": "^14.0.3", - "react": "^18.2.0", - "react-dom": "^18.2.0" - }, - "devDependencies": { - "@next/eslint-plugin-next": "^14.0.2", - "@repo/eslint-config": "workspace:*", - "@repo/typescript-config": "workspace:*", - "@types/eslint": "^8.44.7", - "@types/node": "^17.0.12", - "@types/react": "^18.0.22", - "@types/react-dom": "^18.0.7", - "eslint": "^8.53.0", - "typescript": "^5.2.2" - } -} diff --git a/apps/docs/public/circles.svg b/apps/docs/public/circles.svg deleted file mode 100644 index 6533be5..0000000 --- a/apps/docs/public/circles.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/public/next.svg b/apps/docs/public/next.svg deleted file mode 100644 index 5174b28..0000000 --- a/apps/docs/public/next.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/docs/public/turborepo.svg b/apps/docs/public/turborepo.svg deleted file mode 100644 index 2f9aa1f..0000000 --- a/apps/docs/public/turborepo.svg +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/apps/docs/public/vercel.svg b/apps/docs/public/vercel.svg deleted file mode 100644 index d2f8422..0000000 --- a/apps/docs/public/vercel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/docs/tsconfig.json b/apps/docs/tsconfig.json deleted file mode 100644 index 24e7548..0000000 --- a/apps/docs/tsconfig.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "extends": "@repo/typescript-config/nextjs.json", - "compilerOptions": { - "plugins": [ - { - "name": "next" - } - ] - }, - "include": [ - "next-env.d.ts", - "next.config.js", - "**/*.ts", - "**/*.tsx", - ".next/types/**/*.ts" - ], - "exclude": ["node_modules"] -} diff --git a/apps/web/.eslintrc.js b/apps/web/.eslintrc.js deleted file mode 100644 index 7d644a4..0000000 --- a/apps/web/.eslintrc.js +++ /dev/null @@ -1,9 +0,0 @@ -/** @type {import("eslint").Linter.Config} */ -module.exports = { - root: true, - extends: ["@repo/eslint-config/next.js"], - parser: "@typescript-eslint/parser", - parserOptions: { - project: true, - }, -}; diff --git a/apps/web/README.md b/apps/web/README.md deleted file mode 100644 index 3d7b63a..0000000 --- a/apps/web/README.md +++ /dev/null @@ -1,28 +0,0 @@ -## Getting Started - -First, run the development server: - -```bash -yarn dev -``` - -Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. - -You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. - -To create [API routes](https://nextjs.org/docs/app/building-your-application/routing/router-handlers) add an `api/` directory to the `app/` directory with a `route.ts` file. For individual endpoints, create a subfolder in the `api` directory, like `api/hello/route.ts` would map to [http://localhost:3000/api/hello](http://localhost:3000/api/hello). - -## Learn More - -To learn more about Next.js, take a look at the following resources: - -- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. -- [Learn Next.js](https://nextjs.org/learn/foundations/about-nextjs) - an interactive Next.js tutorial. - -You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! - -## Deploy on Vercel - -The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_source=github.com&utm_medium=referral&utm_campaign=turborepo-readme) from the creators of Next.js. - -Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. diff --git a/apps/web/app/favicon.ico b/apps/web/app/favicon.ico deleted file mode 100644 index 3f804c026c253d52f61b6f70ec351d1044e6bd8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8267 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 a5CHzt!@LfZ#gcC&0Cki$vQpVR{Qm$*Br?$e diff --git a/apps/web/app/globals.css b/apps/web/app/globals.css deleted file mode 100644 index 8eee6cb..0000000 --- a/apps/web/app/globals.css +++ /dev/null @@ -1,50 +0,0 @@ -:root { - --max-width: 1100px; - --border-radius: 12px; - --font-mono: ui-monospace, Menlo, Monaco, "Cascadia Mono", "Segoe UI Mono", - "Roboto Mono", "Oxygen Mono", "Ubuntu Monospace", "Source Code Pro", - "Fira Mono", "Droid Sans Mono", "Courier New", monospace; - - --foreground-rgb: 255, 255, 255; - --background-start-rgb: 0, 0, 0; - --background-end-rgb: 0, 0, 0; - - --callout-rgb: 20, 20, 20; - --callout-border-rgb: 108, 108, 108; - --card-rgb: 100, 100, 100; - --card-border-rgb: 200, 200, 200; - - --glow-conic: conic-gradient( - from 180deg at 50% 50%, - #2a8af6 0deg, - #a853ba 180deg, - #e92a67 360deg - ); -} - -* { - box-sizing: border-box; - padding: 0; - margin: 0; -} - -html, -body { - max-width: 100vw; - overflow-x: hidden; -} - -body { - color: rgb(var(--foreground-rgb)); - background: linear-gradient( - to bottom, - transparent, - rgb(var(--background-end-rgb)) - ) - rgb(var(--background-start-rgb)); -} - -a { - color: inherit; - text-decoration: none; -} diff --git a/apps/web/app/layout.tsx b/apps/web/app/layout.tsx deleted file mode 100644 index 5f90d11..0000000 --- a/apps/web/app/layout.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import "./globals.css"; -import type { Metadata } from "next"; -import { Inter } from "next/font/google"; - -const inter = Inter({ subsets: ["latin"] }); - -export const metadata: Metadata = { - title: "Create Turborepo", - description: "Generated by create turbo", -}; - -export default function RootLayout({ - children, -}: { - children: React.ReactNode; -}): JSX.Element { - return ( - - {children} - - ); -} diff --git a/apps/web/app/page.module.css b/apps/web/app/page.module.css deleted file mode 100644 index 98481c6..0000000 --- a/apps/web/app/page.module.css +++ /dev/null @@ -1,335 +0,0 @@ -.main { - display: flex; - flex-direction: column; - justify-content: space-between; - align-items: center; - padding: 6rem; - min-height: 100vh; -} - -.vercelLogo { - filter: invert(1); -} - -.description { - display: inherit; - justify-content: inherit; - align-items: inherit; - font-size: 0.85rem; - max-width: var(--max-width); - width: 100%; - z-index: 2; - font-family: var(--font-mono); -} - -.description a { - display: flex; - justify-content: center; - align-items: center; - gap: 0.5rem; -} - -.description p { - position: relative; - margin: 0; - padding: 1rem; - background-color: rgba(var(--callout-rgb), 0.5); - border: 1px solid rgba(var(--callout-border-rgb), 0.3); - border-radius: var(--border-radius); -} - -.code { - font-weight: 700; - font-family: var(--font-mono); -} - -.hero { - display: flex; - position: relative; - place-items: center; -} - -.heroContent { - display: flex; - position: relative; - z-index: 0; - padding-bottom: 4rem; - flex-direction: column; - gap: 2rem; - justify-content: space-between; - align-items: center; - width: auto; - font-family: system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, - "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", - "Segoe UI Symbol", "Noto Color Emoji"; - padding-top: 48px; - - @media (min-width: 768px) { - padding-top: 4rem; - padding-bottom: 6rem; - } - @media (min-width: 1024px) { - padding-top: 5rem; - padding-bottom: 8rem; - } -} - -.logos { - display: flex; - z-index: 50; - justify-content: center; - align-items: center; - width: 100%; -} - -.grid { - display: grid; - grid-template-columns: repeat(4, minmax(25%, auto)); - max-width: 100%; - width: var(--max-width); -} - -.card { - padding: 1rem 1.2rem; - border-radius: var(--border-radius); - background: rgba(var(--card-rgb), 0); - border: 1px solid rgba(var(--card-border-rgb), 0); - transition: background 200ms, border 200ms; -} - -.card span { - display: inline-block; - transition: transform 200ms; -} - -.card h2 { - font-weight: 600; - margin-bottom: 0.7rem; -} - -.card p { - margin: 0; - opacity: 0.6; - font-size: 0.9rem; - line-height: 1.5; - max-width: 30ch; -} - -@media (prefers-reduced-motion) { - .card:hover span { - transform: none; - } -} - -/* Mobile */ -@media (max-width: 700px) { - .content { - padding: 4rem; - } - - .grid { - grid-template-columns: 1fr; - margin-bottom: 120px; - max-width: 320px; - text-align: center; - } - - .card { - padding: 1rem 2.5rem; - } - - .card h2 { - margin-bottom: 0.5rem; - } - - .center { - padding: 8rem 0 6rem; - } - - .center::before { - transform: none; - height: 300px; - } - - .description { - font-size: 0.8rem; - } - - .description a { - padding: 1rem; - } - - .description p, - .description div { - display: flex; - justify-content: center; - position: fixed; - width: 100%; - } - - .description p { - align-items: center; - inset: 0 0 auto; - padding: 2rem 1rem 1.4rem; - border-radius: 0; - border: none; - border-bottom: 1px solid rgba(var(--callout-border-rgb), 0.25); - background: linear-gradient( - to bottom, - rgba(var(--background-start-rgb), 1), - rgba(var(--callout-rgb), 0.5) - ); - background-clip: padding-box; - backdrop-filter: blur(24px); - } - - .description div { - align-items: flex-end; - pointer-events: none; - inset: auto 0 0; - padding: 2rem; - height: 200px; - background: linear-gradient( - to bottom, - transparent 0%, - rgb(var(--background-end-rgb)) 40% - ); - z-index: 1; - } -} - -/* Enable hover only on non-touch devices */ -@media (hover: hover) and (pointer: fine) { - .card:hover { - background: rgba(var(--card-rgb), 0.1); - border: 1px solid rgba(var(--card-border-rgb), 0.15); - } - - .card:hover span { - transform: translateX(4px); - } -} - -.circles { - position: absolute; - min-width: 614px; - min-height: 614px; - pointer-events: none; -} - -.logo { - z-index: 50; - width: 120px; - height: 120px; -} - -.logoGradientContainer { - display: flex; - position: absolute; - z-index: 50; - justify-content: center; - align-items: center; - width: 16rem; - height: 16rem; -} - -.turborepoWordmarkContainer { - display: flex; - z-index: 50; - padding-left: 1.5rem; - padding-right: 1.5rem; - flex-direction: column; - gap: 1.25rem; - justify-content: center; - align-items: center; - text-align: center; - - @media (min-width: 1024px) { - gap: 1.5rem; - } -} - -.turborepoWordmark { - width: 160px; - fill: white; - - @media (min-width: 768px) { - width: 200px; - } -} - -.code { - font-family: Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", - monospace; - font-weight: 700; -} - -/* Tablet and Smaller Desktop */ -@media (min-width: 701px) and (max-width: 1120px) { - .grid { - grid-template-columns: repeat(2, 50%); - } -} - -/* Gradients */ -.gradient { - position: absolute; - mix-blend-mode: normal; - will-change: filter; - pointer-events: none; -} - -.gradientSmall { - filter: blur(32px); -} - -.gradientLarge { - filter: blur(75px); -} - -.glowConic { - background-image: var(--glow-conic); -} - -.logoGradient { - opacity: 0.9; - width: 120px; - height: 120px; -} - -.backgroundGradient { - top: -500px; - width: 1000px; - height: 1000px; - opacity: 0.15; -} - -.button { - background-color: #ffffff; - border-radius: 8px; - border-style: none; - box-sizing: border-box; - color: #000000; - cursor: pointer; - display: inline-block; - font-size: 16px; - height: 40px; - line-height: 20px; - list-style: none; - margin: 0; - outline: none; - padding: 10px 16px; - position: relative; - text-align: center; - text-decoration: none; - transition: color 100ms; - vertical-align: baseline; - user-select: none; - -webkit-user-select: none; - touch-action: manipulation; -} - -.button:hover, -.button:focus { - background-color: #e5e4e2; -} diff --git a/apps/web/app/page.tsx b/apps/web/app/page.tsx deleted file mode 100644 index e26bf72..0000000 --- a/apps/web/app/page.tsx +++ /dev/null @@ -1,144 +0,0 @@ -import Image from "next/image"; -import { Card } from "@repo/ui/card"; -import { Code } from "@repo/ui/code"; -import styles from "./page.module.css"; -import { Button } from "@repo/ui/button"; - -function Gradient({ - conic, - className, - small, -}: { - small?: boolean; - conic?: boolean; - className?: string; -}): JSX.Element { - return ( - - ); -} - -const LINKS = [ - { - title: "Docs", - href: "https://turbo.build/repo/docs", - description: "Find in-depth information about Turborepo features and API.", - }, - { - title: "Learn", - href: "https://turbo.build/repo/docs/handbook", - description: "Learn more about monorepos with our handbook.", - }, - { - title: "Templates", - href: "https://turbo.build/repo/docs/getting-started/from-example", - description: "Choose from over 15 examples and deploy with a single click.", - }, - { - title: "Deploy", - href: "https://vercel.com/new", - description: - " Instantly deploy your Turborepo to a shareable URL with Vercel.", - }, -]; - -export default function Page(): JSX.Element { - return ( -
-
-

- examples/basic  - web -

- -
- - - -
-
-
-
- -
-
- -
- -
- Turborepo -
-
- -
- - Turborepo logo - - - - - - - - - - -
-
-
- -
- {LINKS.map(({ title, href, description }) => ( - - {description} - - ))} -
-
- ); -} diff --git a/apps/web/next-env.d.ts b/apps/web/next-env.d.ts deleted file mode 100644 index 4f11a03..0000000 --- a/apps/web/next-env.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -/// -/// - -// NOTE: This file should not be edited -// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/apps/web/next.config.js b/apps/web/next.config.js deleted file mode 100644 index a5b0aec..0000000 --- a/apps/web/next.config.js +++ /dev/null @@ -1,4 +0,0 @@ -/** @type {import('next').NextConfig} */ -module.exports = { - transpilePackages: ["@repo/ui"], -}; diff --git a/apps/web/package.json b/apps/web/package.json deleted file mode 100644 index 190d333..0000000 --- a/apps/web/package.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "web", - "version": "1.0.0", - "private": true, - "scripts": { - "dev": "next dev", - "build": "next build", - "start": "next start", - "lint": "eslint . --max-warnings 0" - }, - "dependencies": { - "@repo/ui": "workspace:*", - "next": "^14.0.3", - "react": "^18.2.0", - "react-dom": "^18.2.0" - }, - "devDependencies": { - "@next/eslint-plugin-next": "^14.0.2", - "@repo/eslint-config": "workspace:*", - "@repo/typescript-config": "workspace:*", - "@types/eslint": "^8.44.7", - "@types/node": "^17.0.12", - "@types/react": "^18.0.22", - "@types/react-dom": "^18.0.7", - "eslint": "^8.53.0", - "typescript": "^5.2.2" - } -} diff --git a/apps/web/public/circles.svg b/apps/web/public/circles.svg deleted file mode 100644 index 6533be5..0000000 --- a/apps/web/public/circles.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/web/public/next.svg b/apps/web/public/next.svg deleted file mode 100644 index 5174b28..0000000 --- a/apps/web/public/next.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/web/public/turborepo.svg b/apps/web/public/turborepo.svg deleted file mode 100644 index 2f9aa1f..0000000 --- a/apps/web/public/turborepo.svg +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/apps/web/public/vercel.svg b/apps/web/public/vercel.svg deleted file mode 100644 index d2f8422..0000000 --- a/apps/web/public/vercel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/web/tsconfig.json b/apps/web/tsconfig.json deleted file mode 100644 index 24e7548..0000000 --- a/apps/web/tsconfig.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "extends": "@repo/typescript-config/nextjs.json", - "compilerOptions": { - "plugins": [ - { - "name": "next" - } - ] - }, - "include": [ - "next-env.d.ts", - "next.config.js", - "**/*.ts", - "**/*.tsx", - ".next/types/**/*.ts" - ], - "exclude": ["node_modules"] -} diff --git a/packages/either/package.json b/packages/either/package.json new file mode 100644 index 0000000..fd2dd7f --- /dev/null +++ b/packages/either/package.json @@ -0,0 +1,28 @@ +{ + "name": "@mando75/either", + "version": "1.0.0", + "scripts": { + "build": "vite build", + "dev": "vite", + "test": "vitest run" + }, + "type": "module", + "exports": { + ".": "./dist/index.js" + }, + "dependencies": { + }, + "devDependencies": { + "@repo/eslint-config": "workspace:*", + "@repo/typescript-config": "workspace:*", + "@types/eslint": "^8.56.0", + "@vitest/coverage-v8": "^1.1.1", + "eslint": "^8.56.0", + "prettier": "^3.1.1", + "pretty-quick": "^3.1.3", + "typescript": "^5.3.3", + "vite": "^5.0.10", + "vite-plugin-dts": "^3.7.0", + "vitest": "^1.1.1" + } +} diff --git a/packages/either/src/either.ts b/packages/either/src/either.ts new file mode 100644 index 0000000..b20f400 --- /dev/null +++ b/packages/either/src/either.ts @@ -0,0 +1,37 @@ +import { Either } from "./types.js"; +import { left, right } from "./util.js"; + +function runSafe(fn: () => TRight): Either { + try { + return right(fn()); + } catch (error) { + return left(error); + } +} + +async function runSafeAsync( + fn: () => Promise, +): Promise> { + try { + return right(await fn()); + } catch (error) { + return left(error); + } +} + +function fromNullable( + value: TRight | null | undefined, + leftValue: TLeft, +): Either { + return value === null || value === undefined ? left(leftValue) : right(value); +} + +const either = { + left, + right, + runSafe, + runSafeAsync, + fromNullable, +}; + +export { either as Either }; diff --git a/packages/either/src/fns.ts b/packages/either/src/fns.ts new file mode 100644 index 0000000..78028c1 --- /dev/null +++ b/packages/either/src/fns.ts @@ -0,0 +1,287 @@ +import { Either, IEither, Left, Right } from "./types.js"; +import { left, right } from "./util.js"; + +/** + * Throws a runtime error if invalid either is provided + * @param value + */ +function isValid(value: IEither): boolean { + if (value.right && value.left) { + throw new Error( + `Either is invalid. Received both left and right values: ${JSON.stringify( + value, + )}`, + ); + } + return value.left !== undefined || value.right !== undefined; +} + +/** + * Returns whether the value is a Right via a type guard + * @param value + */ +function isRight( + value: IEither, +): value is Right { + return isValid(value) && value.right !== undefined; +} + +/** + * Returns whether the value is a Left via a type guard + * @param value + */ +function isLeft( + value: IEither, +): value is Left { + return isValid(value) && value.left !== undefined; +} + +type MapFn = (value: TRight) => U; +type MapperFn = (fn: MapFn) => Either; + +/** + * Generator for map function + * @param either + */ +export function fnMap( + either: IEither, +): MapperFn { + return (fn: MapFn) => { + if (isRight(either)) { + return right(fn(either.right)); + } + return left(either.left); + }; +} + +type FlatMapFn = (value: TRight) => Either; +type FlatMapperFn = ( + fn: FlatMapFn, +) => Either; + +/** + * Generator for flatMap function + * @param either + */ +export function fnFlatMap( + either: IEither, +): FlatMapperFn { + return (fn: FlatMapFn) => { + if (isRight(either)) { + return fn(either.right); + } + return left(either.left); + }; +} + +type MapLeftFn = (value: TLeft) => U; +type MapperLeftFn = ( + fn: MapLeftFn, +) => Either; + +/** + * Generator for mapLeft function + * @param either + */ +export function fnMapLeft( + either: IEither, +): MapperLeftFn { + return (fn: MapLeftFn) => { + if (isLeft(either)) { + return left(fn(either.left)); + } + return right(either.right); + }; +} + +type FlatMapLeftFn = (value: TLeft) => Either; +type FlatMapperLeftFn = ( + fn: FlatMapLeftFn, +) => Either; + +/** + * Generator for flatMapLeft function + * @param either + */ +export function fnFlatMapLeft( + either: IEither, +): FlatMapperLeftFn { + return (fn: FlatMapLeftFn) => { + if (isLeft(either)) { + return fn(either.left); + } + return right(either.right); + }; +} + +/** + * generator for getOrElse function + */ +export function fnGetOrElse(either: IEither) { + return (defaultValue: TRight) => { + if (isRight(either)) { + return either.right; + } + return defaultValue; + }; +} + +/** + * generator for getOrElseGet function + */ +export function fnGetOrElseGet(either: IEither) { + return (fn: () => TRight) => { + if (isRight(either)) { + return either.right; + } + return fn(); + }; +} + +/** + * generator for getOrThrow function + */ +export function fnGetOrThrow(either: IEither) { + return (error: Error) => { + if (isRight(either)) { + return either.right; + } + throw error; + }; +} + +/** + * generator for getOrUndefined function + */ +export function fnGetOrUndefined( + either: IEither, +) { + return () => { + if (isRight(either)) { + return either.right; + } + return undefined; + }; +} + +/** + * generator for getOrNull function + */ +export function fnGetOrNull(either: IEither) { + return () => { + if (isRight(either)) { + return either.right; + } + return null; + }; +} + +/** + * generator for getLeftOrElse function + */ +export function fnGetLeftOrElse(either: IEither) { + return (defaultValue: TLeft) => { + if (isLeft(either)) { + return either.left; + } + return defaultValue; + }; +} + +/** + * generator for getLeftOrElseGet function + */ +export function fnGetLeftOrElseGet( + either: IEither, +) { + return (fn: () => TLeft) => { + if (isLeft(either)) { + return either.left; + } + return fn(); + }; +} + +/** + * generator for getLeftOrThrow function + */ +export function fnGetLeftOrThrow( + either: IEither, +) { + return (error: Error) => { + if (isLeft(either)) { + return either.left; + } + throw error; + }; +} + +/** + * generator for getLeftOrUndefined function + */ +export function fnGetLeftOrUndefined( + either: IEither, +) { + return () => { + if (isLeft(either)) { + return either.left; + } + return undefined; + }; +} + +/** + * generator for getLeftOrNull function + */ +export function fnGetLeftOrNull(either: IEither) { + return () => { + if (isLeft(either)) { + return either.left; + } + return null; + }; +} + +/** + * generator for isLeft function + */ +export function fnIsLeft(either: IEither) { + return () => { + return isLeft(either); + }; +} + +/** + * generator for isRight function + */ +export function fnIsRight(either: IEither) { + return () => { + return isRight(either); + }; +} + +/** + * generator for contains function + * @param either + */ +export function fnContains(either: IEither) { + return (value: TRight) => { + if (isRight(either)) { + return either.right === value; + } + return false; + }; +} + +/** + * generator for containsLeft function + * @param either + */ +export function fnContainsLeft(either: IEither) { + return (value: TLeft) => { + if (isLeft(either)) { + return either.left === value; + } + return false; + }; +} diff --git a/packages/either/src/index.ts b/packages/either/src/index.ts new file mode 100644 index 0000000..cf9a8d4 --- /dev/null +++ b/packages/either/src/index.ts @@ -0,0 +1 @@ +export const hello = "hello world" \ No newline at end of file diff --git a/packages/either/src/test/either.spec.ts b/packages/either/src/test/either.spec.ts new file mode 100644 index 0000000..83fd272 --- /dev/null +++ b/packages/either/src/test/either.spec.ts @@ -0,0 +1,69 @@ +import { Either } from "../either.js"; +import { describe, it } from "vitest"; + +describe("Either", () => { + describe("left", () => { + it("should return an Either with a left value", () => { + const leftEither = Either.left("left"); + expect(leftEither.isLeft()).toBeTruthy(); + expect(leftEither.isRight()).toBeFalsy(); + }); + }); + + describe("right", () => { + it("should return an Either with a right value", () => { + const rightEither = Either.right("right"); + expect(rightEither.isLeft()).toBeFalsy(); + expect(rightEither.isRight()).toBeTruthy(); + }); + }); + + describe("runSafe", () => { + it("should return a right either with the result of the function", () => { + const testFn = vi.fn(() => "right"); + const either = Either.runSafe(testFn); + expect(either.isRight()).toBeTruthy(); + expect(either.getOrNull()).toBe("right"); + }); + + it("should return a left either with the result of the function that throws", () => { + const testFn = vi.fn(() => { + throw "left"; + }); + const either = Either.runSafe(testFn); + expect(either.isLeft()).toBeTruthy(); + expect(either.getLeftOrNull()).toBe("left"); + }); + }); + + describe("runSafeAsync", () => { + it("should return a right either with the result of the function", async () => { + const testFn = vi.fn(() => Promise.resolve("right")); + const either = await Either.runSafeAsync(testFn); + expect(either.isRight()).toBeTruthy(); + expect(either.getOrNull()).toBe("right"); + }); + + it("should return a left either with the result of the function that throws", async () => { + const testFn = vi.fn(() => Promise.reject("left")); + const either = await Either.runSafeAsync(testFn); + expect(either.isLeft()).toBeTruthy(); + expect(either.getLeftOrNull()).toBe("left"); + }); + }); + + describe("fromNullable", () => { + it("should return a right either with the value if it is not null or undefined", () => { + const testValue = "right"; + const either = Either.fromNullable(testValue, "left"); + expect(either.isRight()).toBeTruthy(); + expect(either.getOrNull()).toBe(testValue); + }); + + it("should return a left either with the left value if the value is null or undefined", () => { + const either = Either.fromNullable(null, "left"); + expect(either.isLeft()).toBeTruthy(); + expect(either.getLeftOrNull()).toBe("left"); + }); + }); +}); diff --git a/packages/either/src/test/fns.spec.ts b/packages/either/src/test/fns.spec.ts new file mode 100644 index 0000000..4cff856 --- /dev/null +++ b/packages/either/src/test/fns.spec.ts @@ -0,0 +1,148 @@ +import { describe } from "vitest"; +import { Either } from "../either.js"; + +describe("Either Fns", () => { + class TestError extends Error {} + const error = new TestError("test"); + const eitherRight = Either.right("right"); + const eitherLeft = Either.left(error); + + describe("map", () => { + it("should return a right either with the result of the function", () => { + const testFn = vi.fn((value) => `${value} modified`); + const either = eitherRight.map(testFn); + expect(either.isRight()).toBeTruthy(); + expect(either.getOrNull()).toBe("right modified"); + }); + + it("should return a left either with the left value", () => { + const testFn = vi.fn((value) => `${value} modified`); + const either = eitherLeft.map(testFn); + expect(either.isLeft()).toBeTruthy(); + expect(either.getLeftOrNull()).toBe(error); + }); + }); + + describe("flatMap", () => { + it("should return a right either with the result of the function", () => { + const either = eitherRight.flatMap((value) => + Either.right(`${value} modified`), + ); + expect(either.isRight()).toBeTruthy(); + expect(either.getOrNull()).toBe("right modified"); + }); + + it("should return a left either with the left value", () => { + const either = eitherLeft.flatMap((value) => + Either.right(`${value} modified`), + ); + expect(either.isLeft()).toBeTruthy(); + expect(either.getLeftOrNull()).toBe(error); + }); + }); + + describe("mapLeft", () => { + it("should return a right either with the right value", () => { + const testFn = vi.fn((value) => `${value} modified`); + const either = eitherRight.mapLeft(testFn); + expect(either.isRight()).toBeTruthy(); + expect(either.getOrNull()).toBe("right"); + }); + + it("should return a left either with the result of the function", () => { + const testFn = vi.fn((value) => `${value} modified`); + const either = eitherLeft.mapLeft(testFn); + expect(either.isLeft()).toBeTruthy(); + expect(either.getLeftOrNull()).toBe("Error: test modified"); + }); + }); + + describe("flatMapLeft", () => { + it("should return a left either with the result of the function", () => { + const either = eitherLeft.flatMapLeft((value) => + Either.left(`${value} modified`), + ); + expect(either.isLeft()).toBeTruthy(); + expect(either.getLeftOrNull()).toBe("Error: test modified"); + }); + + it("should return a right either with the right value", () => { + const either = eitherRight.flatMapLeft((value) => + Either.left(`${value} modified`), + ); + expect(either.isRight()).toBeTruthy(); + expect(either.getOrNull()).toBe("right"); + }); + }); + + describe("getOrElse", () => { + it("should return the right value", () => { + const either = eitherRight.getOrElse("left"); + expect(either).toBe("right"); + }); + + it("should return the else value if left", () => { + const either = eitherLeft.getOrElse("left"); + expect(either).toBe("left"); + }); + }); + + describe("getOrNull", () => { + it("should return the right value", () => { + const either = eitherRight.getOrNull(); + expect(either).toBe("right"); + }); + + it("should return null if left", () => { + const either = eitherLeft.getOrNull(); + expect(either).toBeNull(); + }); + }); + + describe("getLeftOrNull", () => { + it("should return the left value", () => { + const either = eitherLeft.getLeftOrNull(); + expect(either).toBe(error); + }); + + it("should return null if right", () => { + const either = eitherRight.getLeftOrNull(); + expect(either).toBeNull(); + }); + }); + + describe("getOrUndefined", () => { + it("should return the right value", () => { + const either = eitherRight.getOrUndefined(); + expect(either).toBe("right"); + }); + + it("should return undefined if left", () => { + const either = eitherLeft.getOrUndefined(); + expect(either).toBeUndefined(); + }); + }); + + describe("getLeftOrUndefined", () => { + it("should return the left value", () => { + const either = eitherLeft.getLeftOrUndefined(); + expect(either).toBe(error); + }); + + it("should return undefined if right", () => { + const either = eitherRight.getLeftOrUndefined(); + expect(either).toBeUndefined(); + }); + }); + + describe("getOrThrow", () => { + it("should return the right value", () => { + const either = eitherRight.getOrThrow(error); + expect(either).toBe("right"); + }); + + it("should throw if left", () => { + expect(() => eitherLeft.getOrThrow(error)).toThrowError(error); + }); + }); +}); diff --git a/packages/either/src/types.ts b/packages/either/src/types.ts new file mode 100644 index 0000000..f93b26c --- /dev/null +++ b/packages/either/src/types.ts @@ -0,0 +1,37 @@ +export type Left = { + left: TLeft; + right?: never; +}; + +export type Right = { + right: TRight; + left?: never; +}; + +export type IEither = NonNullable | Right>; + +export type Either = Omit< + IEither & EitherFns, + "left" | "right" +>; + +export interface EitherFns { + map(fn: (value: TRight) => U): Either; + flatMap(fn: (value: TRight) => Either): Either; + mapLeft(fn: (value: TLeft) => U): Either; + flatMapLeft(fn: (value: TLeft) => Either): Either; + getOrElse(defaultValue: TRight): TRight; + getOrElseGet(fn: () => TRight): TRight; + getOrThrow(error: Error): TRight; + getOrUndefined(): TRight | undefined; + getOrNull(): TRight | null; + getLeftOrElse(defaultValue: TLeft): TLeft; + getLeftOrElseGet(fn: () => TLeft): TLeft; + getLeftOrThrow(error: Error): TLeft; + getLeftOrUndefined(): TLeft | undefined; + getLeftOrNull(): TLeft | null; + isLeft(): boolean; + isRight(): boolean; + contains(value: TRight): boolean; + containsLeft(value: TLeft): boolean; +} diff --git a/packages/either/src/util.ts b/packages/either/src/util.ts new file mode 100644 index 0000000..cc5da63 --- /dev/null +++ b/packages/either/src/util.ts @@ -0,0 +1,39 @@ +import { Either, IEither } from "./types.js"; +import * as fn from "./fns.js"; + +function wrapEither( + either: IEither, +): Either { + return { + map: fn.fnMap(either), + flatMap: fn.fnFlatMap(either), + mapLeft: fn.fnMapLeft(either), + flatMapLeft: fn.fnFlatMapLeft(either), + getOrElse: fn.fnGetOrElse(either), + getOrElseGet: fn.fnGetOrElseGet(either), + getOrThrow: fn.fnGetOrThrow(either), + getOrUndefined: fn.fnGetOrUndefined(either), + getOrNull: fn.fnGetOrNull(either), + getLeftOrElse: fn.fnGetLeftOrElse(either), + getLeftOrElseGet: fn.fnGetLeftOrElseGet(either), + getLeftOrThrow: fn.fnGetLeftOrThrow(either), + getLeftOrUndefined: fn.fnGetLeftOrUndefined(either), + getLeftOrNull: fn.fnGetLeftOrNull(either), + isLeft: fn.fnIsLeft(either), + isRight: fn.fnIsRight(either), + contains: fn.fnContains(either), + containsLeft: fn.fnContainsLeft(either), + }; +} + +export function left(value: T): Either { + return wrapEither({ + left: value, + }); +} + +export function right(value: U): Either { + return wrapEither({ + right: value, + }); +} diff --git a/packages/either/tsconfig.json b/packages/either/tsconfig.json new file mode 100644 index 0000000..9275d89 --- /dev/null +++ b/packages/either/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "@repo/typescript-config/ts-lib.json", + "compilerOptions": { + "outDir": "dist", + "types": ["vitest/globals"] + }, + "include": ["src"], + "exclude": ["node_modules", "dist"] + +} \ No newline at end of file diff --git a/packages/either/vite.config.js b/packages/either/vite.config.js new file mode 100644 index 0000000..d53adcf --- /dev/null +++ b/packages/either/vite.config.js @@ -0,0 +1,17 @@ +import { defineConfig } from "vite"; +import dts from "vite-plugin-dts"; + +export default defineConfig({ + plugins: [dts()], + build: { + lib: { + formats: ["es"], + entry: "src/index.ts", + fileName: (format) => `either.${format}.js`, + }, + }, + test: { + testFiles: "**/*.spec.ts", + globals: true, + }, +}); diff --git a/packages/eslint-config/next.js b/packages/eslint-config/next.js deleted file mode 100644 index 6000e54..0000000 --- a/packages/eslint-config/next.js +++ /dev/null @@ -1,35 +0,0 @@ -const { resolve } = require("node:path"); - -const project = resolve(process.cwd(), "tsconfig.json"); - -/** @type {import("eslint").Linter.Config} */ -module.exports = { - extends: [ - "eslint:recommended", - "prettier", - require.resolve("@vercel/style-guide/eslint/next"), - "eslint-config-turbo", - ], - globals: { - React: true, - JSX: true, - }, - env: { - node: true, - browser: true, - }, - plugins: ["only-warn"], - settings: { - "import/resolver": { - typescript: { - project, - }, - }, - }, - ignorePatterns: [ - // Ignore dotfiles - ".*.js", - "node_modules/", - ], - overrides: [{ files: ["*.js?(x)", "*.ts?(x)"] }], -}; diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index 45cf3a8..990df7e 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -4,7 +4,6 @@ "private": true, "files": [ "library.js", - "next.js", "react-internal.js" ], "devDependencies": { diff --git a/packages/typescript-config/nextjs.json b/packages/typescript-config/nextjs.json deleted file mode 100644 index 44f4289..0000000 --- a/packages/typescript-config/nextjs.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "display": "Next.js", - "extends": "./base.json", - "compilerOptions": { - "plugins": [{ "name": "next" }], - "module": "ESNext", - "moduleResolution": "Bundler", - "allowJs": true, - "jsx": "preserve", - "noEmit": true - } -} diff --git a/packages/typescript-config/ts-lib.json b/packages/typescript-config/ts-lib.json new file mode 100644 index 0000000..b5ce847 --- /dev/null +++ b/packages/typescript-config/ts-lib.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "display": "TypeScript Library", + "extends": "./base.json", + "compilerOptions": { + "noEmit": true, + "noUncheckedIndexedAccess": true, + "noImplicitAny": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "useUnknownInCatchVariables": true + } +} \ No newline at end of file diff --git a/packages/ui/package.json b/packages/ui/package.json index 078fe0b..58d8c1f 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -19,8 +19,8 @@ "@types/eslint": "^8.44.7", "@types/react": "^18.2.0", "@types/react-dom": "^18.2.0", - "eslint": "^8.53.0", + "eslint": "^8.56.0", "react": "^18.2.0", - "typescript": "^5.2.2" + "typescript": "^5.3.3" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bac0e57..98402f1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,109 +21,59 @@ importers: specifier: latest version: 1.11.2 - apps/docs: - dependencies: - '@repo/ui': - specifier: workspace:* - version: link:../../packages/ui - next: - specifier: ^14.0.3 - version: 14.0.3(react-dom@18.2.0)(react@18.2.0) - react: - specifier: ^18.2.0 - version: 18.2.0 - react-dom: - specifier: ^18.2.0 - version: 18.2.0(react@18.2.0) + packages/either: devDependencies: - '@next/eslint-plugin-next': - specifier: ^14.0.2 - version: 14.0.2 '@repo/eslint-config': specifier: workspace:* - version: link:../../packages/eslint-config - '@repo/typescript-config': - specifier: workspace:* - version: link:../../packages/typescript-config - '@types/eslint': - specifier: ^8.44.7 - version: 8.44.7 - '@types/node': - specifier: ^17.0.12 - version: 17.0.45 - '@types/react': - specifier: ^18.0.22 - version: 18.2.5 - '@types/react-dom': - specifier: ^18.0.7 - version: 18.2.3 - eslint: - specifier: ^8.53.0 - version: 8.53.0 - typescript: - specifier: ^5.2.2 - version: 5.2.2 - - apps/web: - dependencies: - '@repo/ui': - specifier: workspace:* - version: link:../../packages/ui - next: - specifier: ^14.0.3 - version: 14.0.3(react-dom@18.2.0)(react@18.2.0) - react: - specifier: ^18.2.0 - version: 18.2.0 - react-dom: - specifier: ^18.2.0 - version: 18.2.0(react@18.2.0) - devDependencies: - '@next/eslint-plugin-next': - specifier: ^14.0.2 - version: 14.0.2 - '@repo/eslint-config': - specifier: workspace:* - version: link:../../packages/eslint-config + version: link:../eslint-config '@repo/typescript-config': specifier: workspace:* - version: link:../../packages/typescript-config + version: link:../typescript-config '@types/eslint': - specifier: ^8.44.7 - version: 8.44.7 - '@types/node': - specifier: ^17.0.12 - version: 17.0.45 - '@types/react': - specifier: ^18.0.22 - version: 18.2.5 - '@types/react-dom': - specifier: ^18.0.7 - version: 18.2.3 + specifier: ^8.56.0 + version: 8.56.0 + '@vitest/coverage-v8': + specifier: ^1.1.1 + version: 1.1.1(vitest@1.1.1) eslint: - specifier: ^8.53.0 - version: 8.53.0 + specifier: ^8.56.0 + version: 8.56.0 + prettier: + specifier: ^3.1.1 + version: 3.1.1 + pretty-quick: + specifier: ^3.1.3 + version: 3.1.3(prettier@3.1.1) typescript: - specifier: ^5.2.2 - version: 5.2.2 + specifier: ^5.3.3 + version: 5.3.3 + vite: + specifier: ^5.0.10 + version: 5.0.10 + vite-plugin-dts: + specifier: ^3.7.0 + version: 3.7.0(typescript@5.3.3)(vite@5.0.10) + vitest: + specifier: ^1.1.1 + version: 1.1.1 packages/eslint-config: devDependencies: '@typescript-eslint/eslint-plugin': specifier: ^6.11.0 - version: 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.54.0)(typescript@5.2.2) + version: 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.56.0)(typescript@5.2.2) '@typescript-eslint/parser': specifier: ^6.11.0 - version: 6.11.0(eslint@8.54.0)(typescript@5.2.2) + version: 6.11.0(eslint@8.56.0)(typescript@5.2.2) '@vercel/style-guide': specifier: ^5.1.0 - version: 5.1.0(eslint@8.54.0)(prettier@3.1.0)(typescript@5.2.2) + version: 5.1.0(eslint@8.56.0)(prettier@3.1.0)(typescript@5.2.2) eslint-config-prettier: specifier: ^9.0.0 - version: 9.0.0(eslint@8.54.0) + version: 9.0.0(eslint@8.56.0) eslint-config-turbo: specifier: ^1.10.12 - version: 1.10.12(eslint@8.54.0) + version: 1.10.12(eslint@8.56.0) eslint-plugin-only-warn: specifier: ^1.1.0 version: 1.1.0 @@ -143,7 +93,7 @@ importers: version: link:../typescript-config '@turbo/gen': specifier: ^1.10.12 - version: 1.10.12(@types/node@20.5.2)(typescript@5.2.2) + version: 1.10.12(@types/node@20.5.2)(typescript@5.3.3) '@types/eslint': specifier: ^8.44.7 version: 8.44.7 @@ -157,14 +107,14 @@ importers: specifier: ^18.2.0 version: 18.2.3 eslint: - specifier: ^8.53.0 - version: 8.53.0 + specifier: ^8.56.0 + version: 8.56.0 react: specifier: ^18.2.0 version: 18.2.0 typescript: - specifier: ^5.2.2 - version: 5.2.2 + specifier: ^5.3.3 + version: 5.3.3 packages: @@ -178,7 +128,7 @@ packages: engines: {node: '>=6.0.0'} dependencies: '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.9 + '@jridgewell/trace-mapping': 0.3.20 dev: true /@babel/code-frame@7.22.13: @@ -217,7 +167,7 @@ packages: - supports-color dev: true - /@babel/eslint-parser@7.23.3(@babel/core@7.23.3)(eslint@8.54.0): + /@babel/eslint-parser@7.23.3(@babel/core@7.23.3)(eslint@8.56.0): resolution: {integrity: sha512-9bTuNlyx7oSstodm1cR1bECj4fkiknsDa1YniISkJemMY3DGhJNYBECbe6QD/q54mp2J8VO66jW3/7uP//iFCw==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: @@ -226,7 +176,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.54.0 + eslint: 8.56.0 eslint-visitor-keys: 2.1.0 semver: 6.3.1 dev: true @@ -349,6 +299,14 @@ packages: '@babel/types': 7.23.3 dev: true + /@babel/parser@7.23.6: + resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.3 + dev: true + /@babel/runtime-corejs3@7.22.10: resolution: {integrity: sha512-IcixfV2Jl3UrqZX4c81+7lVg5++2ufYJyAFW3Aux/ZTvY6LVYYhJ9rMgnbX0zGVq6eqfVpnoatTjZdVki/GmWA==} engines: {node: '>=6.9.0'} @@ -400,6 +358,10 @@ packages: to-fast-properties: 2.0.0 dev: true + /@bcoe/v8-coverage@0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + dev: true + /@cspotcode/source-map-support@0.8.1: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -407,23 +369,220 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.53.0): - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 8.53.0 - eslint-visitor-keys: 3.4.3 + /@esbuild/aix-ppc64@0.19.11: + resolution: {integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.19.11: + resolution: {integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.19.11: + resolution: {integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.19.11: + resolution: {integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.19.11: + resolution: {integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.19.11: + resolution: {integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.19.11: + resolution: {integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.19.11: + resolution: {integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.19.11: + resolution: {integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.19.11: + resolution: {integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.19.11: + resolution: {integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.19.11: + resolution: {integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.19.11: + resolution: {integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.19.11: + resolution: {integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.19.11: + resolution: {integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.19.11: + resolution: {integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.19.11: + resolution: {integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.19.11: + resolution: {integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.19.11: + resolution: {integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.19.11: + resolution: {integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.19.11: + resolution: {integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true dev: true + optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.54.0): + /@esbuild/win32-ia32@0.19.11: + resolution: {integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.19.11: + resolution: {integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.54.0 + eslint: 8.56.0 eslint-visitor-keys: 3.4.3 dev: true @@ -432,15 +591,15 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.3: - resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==} + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 espree: 9.6.1 globals: 13.23.0 - ignore: 5.2.4 + ignore: 5.3.0 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -449,13 +608,8 @@ packages: - supports-color dev: true - /@eslint/js@8.53.0: - resolution: {integrity: sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /@eslint/js@8.54.0: - resolution: {integrity: sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==} + /@eslint/js@8.56.0: + resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -479,6 +633,18 @@ packages: resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} dev: true + /@istanbuljs/schema@0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: true + + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.27.8 + dev: true + /@jridgewell/gen-mapping@0.3.3: resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} engines: {node: '>=6.0.0'} @@ -516,6 +682,36 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true + /@microsoft/api-extractor-model@7.28.3: + resolution: {integrity: sha512-wT/kB2oDbdZXITyDh2SQLzaWwTOFbV326fP0pUwNW00WeliARs0qjmXBWmGWardEzp2U3/axkO3Lboqun6vrig==} + dependencies: + '@microsoft/tsdoc': 0.14.2 + '@microsoft/tsdoc-config': 0.16.2 + '@rushstack/node-core-library': 3.62.0 + transitivePeerDependencies: + - '@types/node' + dev: true + + /@microsoft/api-extractor@7.39.0: + resolution: {integrity: sha512-PuXxzadgnvp+wdeZFPonssRAj/EW4Gm4s75TXzPk09h3wJ8RS3x7typf95B4vwZRrPTQBGopdUl+/vHvlPdAcg==} + hasBin: true + dependencies: + '@microsoft/api-extractor-model': 7.28.3 + '@microsoft/tsdoc': 0.14.2 + '@microsoft/tsdoc-config': 0.16.2 + '@rushstack/node-core-library': 3.62.0 + '@rushstack/rig-package': 0.5.1 + '@rushstack/ts-command-line': 4.17.1 + colors: 1.2.5 + lodash: 4.17.21 + resolve: 1.22.8 + semver: 7.5.4 + source-map: 0.6.1 + typescript: 5.3.3 + transitivePeerDependencies: + - '@types/node' + dev: true + /@microsoft/tsdoc-config@0.16.2: resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==} dependencies: @@ -529,145 +725,203 @@ packages: resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} dev: true - /@next/env@14.0.3: - resolution: {integrity: sha512-7xRqh9nMvP5xrW4/+L0jgRRX+HoNRGnfJpD+5Wq6/13j3dsdzxO3BCXn7D3hMqsDb+vjZnJq+vI7+EtgrYZTeA==} - dev: false + /@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1: + resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} + dependencies: + eslint-scope: 5.1.1 + dev: true - /@next/eslint-plugin-next@14.0.2: - resolution: {integrity: sha512-APrYFsXfAhnysycqxHcpg6Y4i7Ukp30GzVSZQRKT3OczbzkqGjt33vNhScmgoOXYBU1CfkwgtXmNxdiwv1jKmg==} + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} dependencies: - glob: 7.1.7 + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 dev: true - /@next/swc-darwin-arm64@14.0.3: - resolution: {integrity: sha512-64JbSvi3nbbcEtyitNn2LEDS/hcleAFpHdykpcnrstITFlzFgB/bW0ER5/SJJwUPj+ZPY+z3e+1jAfcczRLVGw==} - engines: {node: '>= 10'} + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + dev: true + + /@pkgr/utils@2.4.2: + resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dependencies: + cross-spawn: 7.0.3 + fast-glob: 3.3.1 + is-glob: 4.0.3 + open: 9.1.0 + picocolors: 1.0.0 + tslib: 2.6.2 + dev: true + + /@rollup/pluginutils@5.1.0: + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + + /@rollup/rollup-android-arm-eabi@4.9.2: + resolution: {integrity: sha512-RKzxFxBHq9ysZ83fn8Iduv3A283K7zPPYuhL/z9CQuyFrjwpErJx0h4aeb/bnJ+q29GRLgJpY66ceQ/Wcsn3wA==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-android-arm64@4.9.2: + resolution: {integrity: sha512-yZ+MUbnwf3SHNWQKJyWh88ii2HbuHCFQnAYTeeO1Nb8SyEiWASEi5dQUygt3ClHWtA9My9RQAYkjvrsZ0WK8Xg==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-arm64@4.9.2: + resolution: {integrity: sha512-vqJ/pAUh95FLc/G/3+xPqlSBgilPnauVf2EXOQCZzhZJCXDXt/5A8mH/OzU6iWhb3CNk5hPJrh8pqJUPldN5zw==} cpu: [arm64] os: [darwin] requiresBuild: true - dev: false + dev: true optional: true - /@next/swc-darwin-x64@14.0.3: - resolution: {integrity: sha512-RkTf+KbAD0SgYdVn1XzqE/+sIxYGB7NLMZRn9I4Z24afrhUpVJx6L8hsRnIwxz3ERE2NFURNliPjJ2QNfnWicQ==} - engines: {node: '>= 10'} + /@rollup/rollup-darwin-x64@4.9.2: + resolution: {integrity: sha512-otPHsN5LlvedOprd3SdfrRNhOahhVBwJpepVKUN58L0RnC29vOAej1vMEaVU6DadnpjivVsNTM5eNt0CcwTahw==} cpu: [x64] os: [darwin] requiresBuild: true - dev: false + dev: true optional: true - /@next/swc-linux-arm64-gnu@14.0.3: - resolution: {integrity: sha512-3tBWGgz7M9RKLO6sPWC6c4pAw4geujSwQ7q7Si4d6bo0l6cLs4tmO+lnSwFp1Tm3lxwfMk0SgkJT7EdwYSJvcg==} - engines: {node: '>= 10'} + /@rollup/rollup-linux-arm-gnueabihf@4.9.2: + resolution: {integrity: sha512-ewG5yJSp+zYKBYQLbd1CUA7b1lSfIdo9zJShNTyc2ZP1rcPrqyZcNlsHgs7v1zhgfdS+kW0p5frc0aVqhZCiYQ==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.9.2: + resolution: {integrity: sha512-pL6QtV26W52aCWTG1IuFV3FMPL1m4wbsRG+qijIvgFO/VBsiXJjDPE/uiMdHBAO6YcpV4KvpKtd0v3WFbaxBtg==} cpu: [arm64] os: [linux] requiresBuild: true - dev: false + dev: true optional: true - /@next/swc-linux-arm64-musl@14.0.3: - resolution: {integrity: sha512-v0v8Kb8j8T23jvVUWZeA2D8+izWspeyeDGNaT2/mTHWp7+37fiNfL8bmBWiOmeumXkacM/AB0XOUQvEbncSnHA==} - engines: {node: '>= 10'} + /@rollup/rollup-linux-arm64-musl@4.9.2: + resolution: {integrity: sha512-On+cc5EpOaTwPSNetHXBuqylDW+765G/oqB9xGmWU3npEhCh8xu0xqHGUA+4xwZLqBbIZNcBlKSIYfkBm6ko7g==} cpu: [arm64] os: [linux] requiresBuild: true - dev: false + dev: true optional: true - /@next/swc-linux-x64-gnu@14.0.3: - resolution: {integrity: sha512-VM1aE1tJKLBwMGtyBR21yy+STfl0MapMQnNrXkxeyLs0GFv/kZqXS5Jw/TQ3TSUnbv0QPDf/X8sDXuMtSgG6eg==} - engines: {node: '>= 10'} + /@rollup/rollup-linux-riscv64-gnu@4.9.2: + resolution: {integrity: sha512-Wnx/IVMSZ31D/cO9HSsU46FjrPWHqtdF8+0eyZ1zIB5a6hXaZXghUKpRrC4D5DcRTZOjml2oBhXoqfGYyXKipw==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.9.2: + resolution: {integrity: sha512-ym5x1cj4mUAMBummxxRkI4pG5Vht1QMsJexwGP8547TZ0sox9fCLDHw9KCH9c1FO5d9GopvkaJsBIOkTKxksdw==} cpu: [x64] os: [linux] requiresBuild: true - dev: false + dev: true optional: true - /@next/swc-linux-x64-musl@14.0.3: - resolution: {integrity: sha512-64EnmKy18MYFL5CzLaSuUn561hbO1Gk16jM/KHznYP3iCIfF9e3yULtHaMy0D8zbHfxset9LTOv6cuYKJgcOxg==} - engines: {node: '>= 10'} + /@rollup/rollup-linux-x64-musl@4.9.2: + resolution: {integrity: sha512-m0hYELHGXdYx64D6IDDg/1vOJEaiV8f1G/iO+tejvRCJNSwK4jJ15e38JQy5Q6dGkn1M/9KcyEOwqmlZ2kqaZg==} cpu: [x64] os: [linux] requiresBuild: true - dev: false + dev: true optional: true - /@next/swc-win32-arm64-msvc@14.0.3: - resolution: {integrity: sha512-WRDp8QrmsL1bbGtsh5GqQ/KWulmrnMBgbnb+59qNTW1kVi1nG/2ndZLkcbs2GX7NpFLlToLRMWSQXmPzQm4tog==} - engines: {node: '>= 10'} + /@rollup/rollup-win32-arm64-msvc@4.9.2: + resolution: {integrity: sha512-x1CWburlbN5JjG+juenuNa4KdedBdXLjZMp56nHFSHTOsb/MI2DYiGzLtRGHNMyydPGffGId+VgjOMrcltOksA==} cpu: [arm64] os: [win32] requiresBuild: true - dev: false + dev: true optional: true - /@next/swc-win32-ia32-msvc@14.0.3: - resolution: {integrity: sha512-EKffQeqCrj+t6qFFhIFTRoqb2QwX1mU7iTOvMyLbYw3QtqTw9sMwjykyiMlZlrfm2a4fA84+/aeW+PMg1MjuTg==} - engines: {node: '>= 10'} + /@rollup/rollup-win32-ia32-msvc@4.9.2: + resolution: {integrity: sha512-VVzCB5yXR1QlfsH1Xw1zdzQ4Pxuzv+CPr5qpElpKhVxlxD3CRdfubAG9mJROl6/dmj5gVYDDWk8sC+j9BI9/kQ==} cpu: [ia32] os: [win32] requiresBuild: true - dev: false + dev: true optional: true - /@next/swc-win32-x64-msvc@14.0.3: - resolution: {integrity: sha512-ERhKPSJ1vQrPiwrs15Pjz/rvDHZmkmvbf/BjPN/UCOI++ODftT0GtasDPi0j+y6PPJi5HsXw+dpRaXUaw4vjuQ==} - engines: {node: '>= 10'} + /@rollup/rollup-win32-x64-msvc@4.9.2: + resolution: {integrity: sha512-SYRedJi+mweatroB+6TTnJYLts0L0bosg531xnQWtklOI6dezEagx4Q0qDyvRdK+qgdA3YZpjjGuPFtxBmddBA==} cpu: [x64] os: [win32] requiresBuild: true - dev: false - optional: true - - /@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1: - resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} - dependencies: - eslint-scope: 5.1.1 - dev: true - - /@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 dev: true + optional: true - /@nodelib/fs.stat@2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} + /@rushstack/eslint-patch@1.5.1: + resolution: {integrity: sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==} dev: true - /@nodelib/fs.walk@1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} + /@rushstack/node-core-library@3.62.0: + resolution: {integrity: sha512-88aJn2h8UpSvdwuDXBv1/v1heM6GnBf3RjEy6ZPP7UnzHNCqOHA2Ut+ScYUbXcqIdfew9JlTAe3g+cnX9xQ/Aw==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 + colors: 1.2.5 + fs-extra: 7.0.1 + import-lazy: 4.0.0 + jju: 1.4.0 + resolve: 1.22.8 + semver: 7.5.4 + z-schema: 5.0.5 dev: true - /@pkgr/utils@2.4.2: - resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + /@rushstack/rig-package@0.5.1: + resolution: {integrity: sha512-pXRYSe29TjRw7rqxD4WS3HN/sRSbfr+tJs4a9uuaSIBAITbUggygdhuG0VrO0EO+QqH91GhYMN4S6KRtOEmGVA==} dependencies: - cross-spawn: 7.0.3 - fast-glob: 3.3.1 - is-glob: 4.0.3 - open: 9.1.0 - picocolors: 1.0.0 - tslib: 2.6.2 + resolve: 1.22.8 + strip-json-comments: 3.1.1 dev: true - /@rushstack/eslint-patch@1.5.1: - resolution: {integrity: sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==} + /@rushstack/ts-command-line@4.17.1: + resolution: {integrity: sha512-2jweO1O57BYP5qdBGl6apJLB+aRIn5ccIRTPDyULh0KMwVzFqWtw6IZWt1qtUoZD/pD2RNkIOosH6Cq45rIYeg==} + dependencies: + '@types/argparse': 1.0.38 + argparse: 1.0.10 + colors: 1.2.5 + string-argv: 0.3.2 dev: true - /@swc/helpers@0.5.2: - resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} - dependencies: - tslib: 2.6.2 - dev: false + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: true /@tootallnate/quickjs-emscripten@0.23.0: resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} @@ -689,7 +943,7 @@ packages: resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} dev: true - /@turbo/gen@1.10.12(@types/node@20.5.2)(typescript@5.2.2): + /@turbo/gen@1.10.12(@types/node@20.5.2)(typescript@5.3.3): resolution: {integrity: sha512-noop5+3MBFsgPQ7O2vQpS6YYiah+ZrOioa4cDDpZceUVsKVXvUHFmC2nEVyKSJZhO/8SLvbDE/esB/MGw5b2tw==} dependencies: chalk: 2.4.2 @@ -700,7 +954,7 @@ packages: node-plop: 0.26.3 proxy-agent: 6.3.0 semver: 7.5.0 - ts-node: 10.9.1(@types/node@20.5.2)(typescript@5.2.2) + ts-node: 10.9.1(@types/node@20.5.2)(typescript@5.3.3) update-check: 1.5.4 validate-npm-package-name: 5.0.0 transitivePeerDependencies: @@ -711,6 +965,10 @@ packages: - typescript dev: true + /@types/argparse@1.0.38: + resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} + dev: true + /@types/eslint@8.44.7: resolution: {integrity: sha512-f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ==} dependencies: @@ -718,6 +976,13 @@ packages: '@types/json-schema': 7.0.12 dev: true + /@types/eslint@8.56.0: + resolution: {integrity: sha512-FlsN0p4FhuYRjIxpbdXovvHQhtlG05O1GG/RNWvdAxTboR438IOTwmrY/vLA+Xfgg06BTkP045M3vpFwTMv1dg==} + dependencies: + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.12 + dev: true + /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} dev: true @@ -736,6 +1001,10 @@ packages: rxjs: 6.6.7 dev: true + /@types/istanbul-lib-coverage@2.0.6: + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + dev: true + /@types/json-schema@7.0.12: resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} dev: true @@ -744,12 +1013,12 @@ packages: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true - /@types/minimatch@5.1.2: - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + /@types/minimatch@3.0.5: + resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} dev: true - /@types/node@17.0.45: - resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} + /@types/minimatch@5.1.2: + resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} dev: true /@types/node@20.5.2: @@ -792,7 +1061,7 @@ packages: '@types/node': 20.5.2 dev: true - /@typescript-eslint/eslint-plugin@6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.54.0)(typescript@5.2.2): + /@typescript-eslint/eslint-plugin@6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.56.0)(typescript@5.2.2): resolution: {integrity: sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -804,13 +1073,13 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.11.0(eslint@8.54.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.11.0(eslint@8.56.0)(typescript@5.2.2) '@typescript-eslint/scope-manager': 6.11.0 - '@typescript-eslint/type-utils': 6.11.0(eslint@8.54.0)(typescript@5.2.2) - '@typescript-eslint/utils': 6.11.0(eslint@8.54.0)(typescript@5.2.2) + '@typescript-eslint/type-utils': 6.11.0(eslint@8.56.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.11.0(eslint@8.56.0)(typescript@5.2.2) '@typescript-eslint/visitor-keys': 6.11.0 debug: 4.3.4 - eslint: 8.54.0 + eslint: 8.56.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare: 1.4.0 @@ -821,7 +1090,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.11.0(eslint@8.54.0)(typescript@5.2.2): + /@typescript-eslint/parser@6.11.0(eslint@8.56.0)(typescript@5.2.2): resolution: {integrity: sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -836,7 +1105,7 @@ packages: '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2) '@typescript-eslint/visitor-keys': 6.11.0 debug: 4.3.4 - eslint: 8.54.0 + eslint: 8.56.0 typescript: 5.2.2 transitivePeerDependencies: - supports-color @@ -858,7 +1127,7 @@ packages: '@typescript-eslint/visitor-keys': 6.11.0 dev: true - /@typescript-eslint/type-utils@6.11.0(eslint@8.54.0)(typescript@5.2.2): + /@typescript-eslint/type-utils@6.11.0(eslint@8.56.0)(typescript@5.2.2): resolution: {integrity: sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -869,9 +1138,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2) - '@typescript-eslint/utils': 6.11.0(eslint@8.54.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.11.0(eslint@8.56.0)(typescript@5.2.2) debug: 4.3.4 - eslint: 8.54.0 + eslint: 8.56.0 ts-api-utils: 1.0.2(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: @@ -930,19 +1199,19 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.54.0)(typescript@5.2.2): + /@typescript-eslint/utils@5.62.0(eslint@8.56.0)(typescript@5.2.2): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) - eslint: 8.54.0 + eslint: 8.56.0 eslint-scope: 5.1.1 semver: 7.5.4 transitivePeerDependencies: @@ -950,19 +1219,19 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.11.0(eslint@8.54.0)(typescript@5.2.2): + /@typescript-eslint/utils@6.11.0(eslint@8.56.0)(typescript@5.2.2): resolution: {integrity: sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 6.11.0 '@typescript-eslint/types': 6.11.0 '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2) - eslint: 8.54.0 + eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: - supports-color @@ -989,7 +1258,7 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true - /@vercel/style-guide@5.1.0(eslint@8.54.0)(prettier@3.1.0)(typescript@5.2.2): + /@vercel/style-guide@5.1.0(eslint@8.56.0)(prettier@3.1.0)(typescript@5.2.2): resolution: {integrity: sha512-L9lWYePIycm7vIOjDLj+mmMdmmPkW3/brHjgq+nJdvMOrL7Hdk/19w8X583HYSk0vWsq494o5Qkh6x5+uW7ljg==} engines: {node: '>=16'} peerDependencies: @@ -1008,24 +1277,24 @@ packages: optional: true dependencies: '@babel/core': 7.23.3 - '@babel/eslint-parser': 7.23.3(@babel/core@7.23.3)(eslint@8.54.0) + '@babel/eslint-parser': 7.23.3(@babel/core@7.23.3)(eslint@8.56.0) '@rushstack/eslint-patch': 1.5.1 - '@typescript-eslint/eslint-plugin': 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.54.0)(typescript@5.2.2) - '@typescript-eslint/parser': 6.11.0(eslint@8.54.0)(typescript@5.2.2) - eslint: 8.54.0 - eslint-config-prettier: 9.0.0(eslint@8.54.0) + '@typescript-eslint/eslint-plugin': 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.56.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.11.0(eslint@8.56.0)(typescript@5.2.2) + eslint: 8.56.0 + eslint-config-prettier: 9.0.0(eslint@8.56.0) eslint-import-resolver-alias: 1.1.2(eslint-plugin-import@2.29.0) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.11.0)(eslint-plugin-import@2.29.0)(eslint@8.54.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@8.54.0) - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.11.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.54.0) - eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.11.0)(eslint@8.54.0)(typescript@5.2.2) - eslint-plugin-jsx-a11y: 6.8.0(eslint@8.54.0) - eslint-plugin-playwright: 0.16.0(eslint-plugin-jest@27.6.0)(eslint@8.54.0) - eslint-plugin-react: 7.33.2(eslint@8.54.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.54.0) - eslint-plugin-testing-library: 6.1.2(eslint@8.54.0)(typescript@5.2.2) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.11.0)(eslint-plugin-import@2.29.0)(eslint@8.56.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@8.56.0) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.11.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.11.0)(eslint@8.56.0)(typescript@5.2.2) + eslint-plugin-jsx-a11y: 6.8.0(eslint@8.56.0) + eslint-plugin-playwright: 0.16.0(eslint-plugin-jest@27.6.0)(eslint@8.56.0) + eslint-plugin-react: 7.33.2(eslint@8.56.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.56.0) + eslint-plugin-testing-library: 6.1.2(eslint@8.56.0)(typescript@5.2.2) eslint-plugin-tsdoc: 0.2.17 - eslint-plugin-unicorn: 48.0.1(eslint@8.54.0) + eslint-plugin-unicorn: 48.0.1(eslint@8.56.0) prettier: 3.1.0 prettier-plugin-packagejson: 2.4.6(prettier@3.1.0) typescript: 5.2.2 @@ -1036,6 +1305,127 @@ packages: - supports-color dev: true + /@vitest/coverage-v8@1.1.1(vitest@1.1.1): + resolution: {integrity: sha512-TCXSh6sA92t7D5p7HJ64sPCi+szP8E3NiKTsR3YR8vVEVZB9yclQu2btktCthxahKBl7PwheP5OuejYg13xccg==} + peerDependencies: + vitest: ^1.0.0 + dependencies: + '@ampproject/remapping': 2.2.1 + '@bcoe/v8-coverage': 0.2.3 + debug: 4.3.4 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.6 + magic-string: 0.30.5 + magicast: 0.3.2 + picocolors: 1.0.0 + std-env: 3.7.0 + test-exclude: 6.0.0 + v8-to-istanbul: 9.2.0 + vitest: 1.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@vitest/expect@1.1.1: + resolution: {integrity: sha512-Qpw01C2Hyb3085jBkOJLQ7HRX0Ncnh2qV4p+xWmmhcIUlMykUF69zsnZ1vPmAjZpomw9+5tWEGOQ0GTfR8U+kA==} + dependencies: + '@vitest/spy': 1.1.1 + '@vitest/utils': 1.1.1 + chai: 4.3.10 + dev: true + + /@vitest/runner@1.1.1: + resolution: {integrity: sha512-8HokyJo1SnSi3uPFKfWm/Oq1qDwLC4QDcVsqpXIXwsRPAg3gIDh8EbZ1ri8cmQkBxdOu62aOF9B4xcqJhvt4xQ==} + dependencies: + '@vitest/utils': 1.1.1 + p-limit: 5.0.0 + pathe: 1.1.1 + dev: true + + /@vitest/snapshot@1.1.1: + resolution: {integrity: sha512-WnMHjv4VdHLbFGgCdVVvyRkRPnOKN75JJg+LLTdr6ah7YnL75W+7CTIMdzPEPzaDxA8r5yvSVlc1d8lH3yE28w==} + dependencies: + magic-string: 0.30.5 + pathe: 1.1.1 + pretty-format: 29.7.0 + dev: true + + /@vitest/spy@1.1.1: + resolution: {integrity: sha512-hDU2KkOTfFp4WFFPWwHFauddwcKuGQ7gF6Un/ZZkCogoAiTMN7/7YKvUDbywPZZ754iCQGjdUmXN3t4k0jm1IQ==} + dependencies: + tinyspy: 2.2.0 + dev: true + + /@vitest/utils@1.1.1: + resolution: {integrity: sha512-E9LedH093vST/JuBSyHLFMpxJKW3dLhe/flUSPFedoyj4wKiFX7Jm8gYLtOIiin59dgrssfmFv0BJ1u8P/LC/A==} + dependencies: + diff-sequences: 29.6.3 + loupe: 2.3.7 + pretty-format: 29.7.0 + dev: true + + /@volar/language-core@1.11.1: + resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==} + dependencies: + '@volar/source-map': 1.11.1 + dev: true + + /@volar/source-map@1.11.1: + resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==} + dependencies: + muggle-string: 0.3.1 + dev: true + + /@volar/typescript@1.11.1: + resolution: {integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==} + dependencies: + '@volar/language-core': 1.11.1 + path-browserify: 1.0.1 + dev: true + + /@vue/compiler-core@3.4.3: + resolution: {integrity: sha512-u8jzgFg0EDtSrb/hG53Wwh1bAOQFtc1ZCegBpA/glyvTlgHl+tq13o1zvRfLbegYUw/E4mSTGOiCnAJ9SJ+lsg==} + dependencies: + '@babel/parser': 7.23.6 + '@vue/shared': 3.4.3 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.0.2 + dev: true + + /@vue/compiler-dom@3.4.3: + resolution: {integrity: sha512-oGF1E9/htI6JWj/lTJgr6UgxNCtNHbM6xKVreBWeZL9QhRGABRVoWGAzxmtBfSOd+w0Zi5BY0Es/tlJrN6WgEg==} + dependencies: + '@vue/compiler-core': 3.4.3 + '@vue/shared': 3.4.3 + dev: true + + /@vue/language-core@1.8.27(typescript@5.3.3): + resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@volar/language-core': 1.11.1 + '@volar/source-map': 1.11.1 + '@vue/compiler-dom': 3.4.3 + '@vue/shared': 3.4.3 + computeds: 0.0.1 + minimatch: 9.0.3 + muggle-string: 0.3.1 + path-browserify: 1.0.1 + typescript: 5.3.3 + vue-template-compiler: 2.7.16 + dev: true + + /@vue/shared@3.4.3: + resolution: {integrity: sha512-rIwlkkP1n4uKrRzivAKPZIEkHiuwY5mmhMJ2nZKCBLz8lTUlE73rQh4n1OnnMurXt1vcUNyH4ZPfdh8QweTjpQ==} + dev: true + /acorn-jsx@5.3.2(acorn@8.10.0): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -1049,6 +1439,11 @@ packages: engines: {node: '>=0.4.0'} dev: true + /acorn-walk@8.3.1: + resolution: {integrity: sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==} + engines: {node: '>=0.4.0'} + dev: true + /acorn@8.10.0: resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} engines: {node: '>=0.4.0'} @@ -1106,10 +1501,21 @@ packages: color-convert: 2.0.1 dev: true + /ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: true + /arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} dev: true + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: true + /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true @@ -1127,6 +1533,11 @@ packages: is-array-buffer: 3.0.2 dev: true + /array-differ@3.0.0: + resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} + engines: {node: '>=8'} + dev: true + /array-includes@3.1.7: resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} engines: {node: '>= 0.4'} @@ -1197,6 +1608,15 @@ packages: is-shared-array-buffer: 1.0.2 dev: true + /arrify@2.0.1: + resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} + engines: {node: '>=8'} + dev: true + + /assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + dev: true + /ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} dev: true @@ -1318,12 +1738,10 @@ packages: run-applescript: 5.0.0 dev: true - /busboy@1.6.0: - resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} - engines: {node: '>=10.16.0'} - dependencies: - streamsearch: 1.1.0 - dev: false + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + dev: true /call-bind@1.0.5: resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} @@ -1347,6 +1765,20 @@ packages: /caniuse-lite@1.0.30001563: resolution: {integrity: sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw==} + dev: true + + /chai@4.3.10: + resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} + engines: {node: '>=4'} + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.3 + get-func-name: 2.0.2 + loupe: 2.3.7 + pathval: 1.1.1 + type-detect: 4.0.8 + dev: true /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -1357,6 +1789,14 @@ packages: supports-color: 5.5.0 dev: true + /chalk@3.0.0: + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + /chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -1392,6 +1832,12 @@ packages: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: true + /check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + dependencies: + get-func-name: 2.0.2 + dev: true + /ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} @@ -1426,10 +1872,6 @@ packages: engines: {node: '>= 10'} dev: true - /client-only@0.0.1: - resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} - dev: false - /clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} @@ -1456,11 +1898,27 @@ packages: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: true + /colors@1.2.5: + resolution: {integrity: sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==} + engines: {node: '>=0.1.90'} + dev: true + /commander@10.0.1: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} dev: true + /commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + requiresBuild: true + dev: true + optional: true + + /computeds@0.0.1: + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} + dev: true + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true @@ -1507,6 +1965,10 @@ packages: engines: {node: '>= 14'} dev: true + /de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + dev: true + /debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -1530,6 +1992,13 @@ packages: ms: 2.1.2 dev: true + /deep-eql@4.1.3: + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + engines: {node: '>=6'} + dependencies: + type-detect: 4.0.8 + dev: true + /deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} @@ -1624,6 +2093,11 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + /diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} @@ -1673,6 +2147,12 @@ packages: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} dev: true + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + dev: true + /enhanced-resolve@5.15.0: resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} engines: {node: '>=10.13.0'} @@ -1681,6 +2161,11 @@ packages: tapable: 2.2.1 dev: true + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + dev: true + /error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: @@ -1775,6 +2260,37 @@ packages: is-symbol: 1.0.4 dev: true + /esbuild@0.19.11: + resolution: {integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.19.11 + '@esbuild/android-arm': 0.19.11 + '@esbuild/android-arm64': 0.19.11 + '@esbuild/android-x64': 0.19.11 + '@esbuild/darwin-arm64': 0.19.11 + '@esbuild/darwin-x64': 0.19.11 + '@esbuild/freebsd-arm64': 0.19.11 + '@esbuild/freebsd-x64': 0.19.11 + '@esbuild/linux-arm': 0.19.11 + '@esbuild/linux-arm64': 0.19.11 + '@esbuild/linux-ia32': 0.19.11 + '@esbuild/linux-loong64': 0.19.11 + '@esbuild/linux-mips64el': 0.19.11 + '@esbuild/linux-ppc64': 0.19.11 + '@esbuild/linux-riscv64': 0.19.11 + '@esbuild/linux-s390x': 0.19.11 + '@esbuild/linux-x64': 0.19.11 + '@esbuild/netbsd-x64': 0.19.11 + '@esbuild/openbsd-x64': 0.19.11 + '@esbuild/sunos-x64': 0.19.11 + '@esbuild/win32-arm64': 0.19.11 + '@esbuild/win32-ia32': 0.19.11 + '@esbuild/win32-x64': 0.19.11 + dev: true + /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -1801,21 +2317,22 @@ packages: source-map: 0.6.1 dev: true - /eslint-config-prettier@9.0.0(eslint@8.54.0): + /eslint-config-prettier@9.0.0(eslint@8.56.0): resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} + hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.54.0 + eslint: 8.56.0 dev: true - /eslint-config-turbo@1.10.12(eslint@8.54.0): + /eslint-config-turbo@1.10.12(eslint@8.56.0): resolution: {integrity: sha512-z3jfh+D7UGYlzMWGh+Kqz++hf8LOE96q3o5R8X4HTjmxaBWlLAWG+0Ounr38h+JLR2TJno0hU9zfzoPNkR9BdA==} peerDependencies: eslint: '>6.6.0' dependencies: - eslint: 8.54.0 - eslint-plugin-turbo: 1.10.12(eslint@8.54.0) + eslint: 8.56.0 + eslint-plugin-turbo: 1.10.12(eslint@8.56.0) dev: true /eslint-import-resolver-alias@1.1.2(eslint-plugin-import@2.29.0): @@ -1824,7 +2341,7 @@ packages: peerDependencies: eslint-plugin-import: '>=1.4.0' dependencies: - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.11.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.54.0) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.11.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) dev: true /eslint-import-resolver-node@0.3.9: @@ -1837,7 +2354,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.11.0)(eslint-plugin-import@2.29.0)(eslint@8.54.0): + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.11.0)(eslint-plugin-import@2.29.0)(eslint@8.56.0): resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -1846,9 +2363,9 @@ packages: dependencies: debug: 4.3.4 enhanced-resolve: 5.15.0 - eslint: 8.54.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.11.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.54.0) - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.11.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.54.0) + eslint: 8.56.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.11.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.11.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) fast-glob: 3.3.1 get-tsconfig: 4.7.2 is-core-module: 2.12.0 @@ -1860,7 +2377,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.11.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.54.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.11.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -1881,27 +2398,27 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.11.0(eslint@8.54.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.11.0(eslint@8.56.0)(typescript@5.2.2) debug: 3.2.7 - eslint: 8.54.0 + eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.11.0)(eslint-plugin-import@2.29.0)(eslint@8.54.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.11.0)(eslint-plugin-import@2.29.0)(eslint@8.56.0) transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-eslint-comments@3.2.0(eslint@8.54.0): + /eslint-plugin-eslint-comments@3.2.0(eslint@8.56.0): resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} engines: {node: '>=6.5.0'} peerDependencies: eslint: '>=4.19.1' dependencies: escape-string-regexp: 1.0.5 - eslint: 8.54.0 + eslint: 8.56.0 ignore: 5.2.4 dev: true - /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.11.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.54.0): + /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.11.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} engines: {node: '>=4'} peerDependencies: @@ -1911,16 +2428,16 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.11.0(eslint@8.54.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.11.0(eslint@8.56.0)(typescript@5.2.2) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.54.0 + eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.11.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.54.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.11.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -1936,7 +2453,7 @@ packages: - supports-color dev: true - /eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.11.0)(eslint@8.54.0)(typescript@5.2.2): + /eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.11.0)(eslint@8.56.0)(typescript@5.2.2): resolution: {integrity: sha512-MTlusnnDMChbElsszJvrwD1dN3x6nZl//s4JD23BxB6MgR66TZlL064su24xEIS3VACfAoHV1vgyMgPw8nkdng==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -1949,15 +2466,15 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.54.0)(typescript@5.2.2) - '@typescript-eslint/utils': 5.62.0(eslint@8.54.0)(typescript@5.2.2) - eslint: 8.54.0 + '@typescript-eslint/eslint-plugin': 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.56.0)(typescript@5.2.2) + '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.2.2) + eslint: 8.56.0 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jsx-a11y@6.8.0(eslint@8.54.0): + /eslint-plugin-jsx-a11y@6.8.0(eslint@8.56.0): resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} engines: {node: '>=4.0'} peerDependencies: @@ -1973,7 +2490,7 @@ packages: damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 es-iterator-helpers: 1.0.15 - eslint: 8.54.0 + eslint: 8.56.0 hasown: 2.0.0 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -1987,7 +2504,7 @@ packages: engines: {node: '>=6'} dev: true - /eslint-plugin-playwright@0.16.0(eslint-plugin-jest@27.6.0)(eslint@8.54.0): + /eslint-plugin-playwright@0.16.0(eslint-plugin-jest@27.6.0)(eslint@8.56.0): resolution: {integrity: sha512-DcHpF0SLbNeh9MT4pMzUGuUSnJ7q5MWbP8sSEFIMS6j7Ggnduq8ghNlfhURgty4c1YFny7Ge9xYTO1FSAoV2Vw==} peerDependencies: eslint: '>=7' @@ -1996,20 +2513,20 @@ packages: eslint-plugin-jest: optional: true dependencies: - eslint: 8.54.0 - eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.11.0)(eslint@8.54.0)(typescript@5.2.2) + eslint: 8.56.0 + eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.11.0)(eslint@8.56.0)(typescript@5.2.2) dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.54.0): + /eslint-plugin-react-hooks@4.6.0(eslint@8.56.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.54.0 + eslint: 8.56.0 dev: true - /eslint-plugin-react@7.33.2(eslint@8.54.0): + /eslint-plugin-react@7.33.2(eslint@8.56.0): resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} engines: {node: '>=4'} peerDependencies: @@ -2020,7 +2537,7 @@ packages: array.prototype.tosorted: 1.1.2 doctrine: 2.1.0 es-iterator-helpers: 1.0.15 - eslint: 8.54.0 + eslint: 8.56.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 @@ -2034,14 +2551,14 @@ packages: string.prototype.matchall: 4.0.10 dev: true - /eslint-plugin-testing-library@6.1.2(eslint@8.54.0)(typescript@5.2.2): + /eslint-plugin-testing-library@6.1.2(eslint@8.56.0)(typescript@5.2.2): resolution: {integrity: sha512-Ra16FeBlonfbScOIdZEta9o+OxtwDqiUt+4UCpIM42TuatyLdtfU/SbwnIzPcAszrbl58PGwyZ9YGU9dwIo/tA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'} peerDependencies: eslint: ^7.5.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.54.0)(typescript@5.2.2) - eslint: 8.54.0 + '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.2.2) + eslint: 8.56.0 transitivePeerDependencies: - supports-color - typescript @@ -2054,26 +2571,26 @@ packages: '@microsoft/tsdoc-config': 0.16.2 dev: true - /eslint-plugin-turbo@1.10.12(eslint@8.54.0): + /eslint-plugin-turbo@1.10.12(eslint@8.56.0): resolution: {integrity: sha512-uNbdj+ohZaYo4tFJ6dStRXu2FZigwulR1b3URPXe0Q8YaE7thuekKNP+54CHtZPH9Zey9dmDx5btAQl9mfzGOw==} peerDependencies: eslint: '>6.6.0' dependencies: dotenv: 16.0.3 - eslint: 8.54.0 + eslint: 8.56.0 dev: true - /eslint-plugin-unicorn@48.0.1(eslint@8.54.0): + /eslint-plugin-unicorn@48.0.1(eslint@8.56.0): resolution: {integrity: sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==} engines: {node: '>=16'} peerDependencies: eslint: '>=8.44.0' dependencies: '@babel/helper-validator-identifier': 7.22.20 - '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) ci-info: 3.9.0 clean-regexp: 1.0.0 - eslint: 8.54.0 + eslint: 8.56.0 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -2113,61 +2630,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.53.0: - resolution: {integrity: sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) - '@eslint-community/regexpp': 4.10.0 - '@eslint/eslintrc': 2.1.3 - '@eslint/js': 8.53.0 - '@humanwhocodes/config-array': 0.11.13 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.23.0 - graphemer: 1.4.0 - ignore: 5.2.4 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.3 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint@8.54.0: - resolution: {integrity: sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==} + /eslint@8.56.0: + resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@eslint-community/regexpp': 4.10.0 - '@eslint/eslintrc': 2.1.3 - '@eslint/js': 8.54.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.56.0 '@humanwhocodes/config-array': 0.11.13 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -2244,11 +2715,30 @@ packages: engines: {node: '>=4.0'} dev: true + /estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: true + /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} dev: true + /execa@4.1.0: + resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 5.2.0 + human-signals: 1.1.1 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + /execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -2279,6 +2769,21 @@ packages: strip-final-newline: 3.0.0 dev: true + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + dev: true + /external-editor@3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} @@ -2392,6 +2897,15 @@ packages: universalify: 2.0.0 dev: true + /fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: true + /fs-extra@8.1.0: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} engines: {node: '>=6 <7 || >=8'} @@ -2405,6 +2919,14 @@ packages: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + /function-bind@1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} dev: true @@ -2432,6 +2954,10 @@ packages: engines: {node: '>=6.9.0'} dev: true + /get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + dev: true + /get-intrinsic@1.2.2: resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} dependencies: @@ -2446,11 +2972,23 @@ packages: engines: {node: '>=12'} dev: true + /get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + dependencies: + pump: 3.0.0 + dev: true + /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} dev: true + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + dev: true + /get-symbol-description@1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} @@ -2495,21 +3033,6 @@ packages: is-glob: 4.0.3 dev: true - /glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - dev: false - - /glob@7.1.7: - resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: @@ -2585,6 +3108,7 @@ packages: /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: true /graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} @@ -2653,6 +3177,11 @@ packages: function-bind: 1.1.2 dev: true + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: true + /header-case@1.0.1: resolution: {integrity: sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==} dependencies: @@ -2664,6 +3193,10 @@ packages: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: true + /html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + dev: true + /http-proxy-agent@7.0.0: resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==} engines: {node: '>= 14'} @@ -2684,6 +3217,11 @@ packages: - supports-color dev: true + /human-signals@1.1.1: + resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} + engines: {node: '>=8.12.0'} + dev: true + /human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -2694,6 +3232,11 @@ packages: engines: {node: '>=14.18.0'} dev: true + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + dev: true + /iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -2723,6 +3266,11 @@ packages: resolve-from: 4.0.0 dev: true + /import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} + dev: true + /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -3060,6 +3608,39 @@ packages: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true + /istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + dev: true + + /istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + dev: true + + /istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + dependencies: + debug: 4.3.4 + istanbul-lib-coverage: 3.2.2 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-reports@3.1.6: + resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} + engines: {node: '>=8'} + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + dev: true + /iterator.prototype@1.1.2: resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} dependencies: @@ -3076,9 +3657,11 @@ packages: /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: true /js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true dependencies: argparse: 2.0.1 dev: true @@ -3120,6 +3703,10 @@ packages: engines: {node: '>=6'} dev: true + /jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + dev: true + /jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} optionalDependencies: @@ -3144,6 +3731,10 @@ packages: object.values: 1.1.7 dev: true + /kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + dev: true + /language-subtag-registry@0.3.22: resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} dev: true @@ -3167,6 +3758,14 @@ packages: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true + /local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + dependencies: + mlly: 1.4.2 + pkg-types: 1.0.3 + dev: true + /locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -3185,6 +3784,10 @@ packages: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} dev: true + /lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + dev: true + /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true @@ -3205,6 +3808,13 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} dependencies: js-tokens: 4.0.0 + dev: true + + /loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + dependencies: + get-func-name: 2.0.2 + dev: true /lower-case-first@1.0.2: resolution: {integrity: sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==} @@ -3234,6 +3844,28 @@ packages: engines: {node: '>=12'} dev: true + /magic-string@0.30.5: + resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /magicast@0.3.2: + resolution: {integrity: sha512-Fjwkl6a0syt9TFN0JSYpOybxiMCkYNEeOTnOTNRbjphirLakznZXAqrXgj/7GG3D1dvETONNwrBfinvAbpunDg==} + dependencies: + '@babel/parser': 7.23.6 + '@babel/types': 7.23.3 + source-map-js: 1.0.2 + dev: true + + /make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + dependencies: + semver: 7.5.4 + dev: true + /make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} dev: true @@ -3293,10 +3925,39 @@ packages: minimist: 1.2.8 dev: true + /mlly@1.4.2: + resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} + dependencies: + acorn: 8.10.0 + pathe: 1.1.1 + pkg-types: 1.0.3 + ufo: 1.3.2 + dev: true + + /mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + dev: true + /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true + /muggle-string@0.3.1: + resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} + dev: true + + /multimatch@4.0.0: + resolution: {integrity: sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==} + engines: {node: '>=8'} + dependencies: + '@types/minimatch': 3.0.5 + array-differ: 3.0.0 + array-union: 2.1.0 + arrify: 2.0.1 + minimatch: 3.1.2 + dev: true + /mute-stream@0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} dev: true @@ -3304,7 +3965,8 @@ packages: /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - dev: false + hasBin: true + dev: true /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -3319,44 +3981,6 @@ packages: engines: {node: '>= 0.4.0'} dev: true - /next@14.0.3(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-AbYdRNfImBr3XGtvnwOxq8ekVCwbFTv/UJoLwmaX89nk9i051AEY4/HAWzU0YpaTDw8IofUpmuIlvzWF13jxIw==} - engines: {node: '>=18.17.0'} - peerDependencies: - '@opentelemetry/api': ^1.1.0 - react: ^18.2.0 - react-dom: ^18.2.0 - sass: ^1.3.0 - peerDependenciesMeta: - '@opentelemetry/api': - optional: true - sass: - optional: true - dependencies: - '@next/env': 14.0.3 - '@swc/helpers': 0.5.2 - busboy: 1.6.0 - caniuse-lite: 1.0.30001563 - postcss: 8.4.31 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - styled-jsx: 5.1.1(react@18.2.0) - watchpack: 2.4.0 - optionalDependencies: - '@next/swc-darwin-arm64': 14.0.3 - '@next/swc-darwin-x64': 14.0.3 - '@next/swc-linux-arm64-gnu': 14.0.3 - '@next/swc-linux-arm64-musl': 14.0.3 - '@next/swc-linux-x64-gnu': 14.0.3 - '@next/swc-linux-x64-musl': 14.0.3 - '@next/swc-win32-arm64-msvc': 14.0.3 - '@next/swc-win32-ia32-msvc': 14.0.3 - '@next/swc-win32-x64-msvc': 14.0.3 - transitivePeerDependencies: - - '@babel/core' - - babel-plugin-macros - dev: false - /no-case@2.3.2: resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==} dependencies: @@ -3550,6 +4174,13 @@ packages: yocto-queue: 0.1.0 dev: true + /p-limit@5.0.0: + resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + engines: {node: '>=18'} + dependencies: + yocto-queue: 1.0.0 + dev: true + /p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} @@ -3631,6 +4262,10 @@ packages: upper-case-first: 1.1.2 dev: true + /path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + dev: true + /path-case@2.1.1: resolution: {integrity: sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q==} dependencies: @@ -3666,27 +4301,44 @@ packages: engines: {node: '>=8'} dev: true + /pathe@1.1.1: + resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} + dev: true + + /pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + dev: true + /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} dev: true + /pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + dependencies: + jsonc-parser: 3.2.0 + mlly: 1.4.2 + pathe: 1.1.1 + dev: true + /pluralize@8.0.0: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} dev: true - /postcss@8.4.31: - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + /postcss@8.4.32: + resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: false + dev: true /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -3711,6 +4363,37 @@ packages: engines: {node: '>=14'} dev: true + /prettier@3.1.1: + resolution: {integrity: sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==} + engines: {node: '>=14'} + hasBin: true + dev: true + + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.2.0 + dev: true + + /pretty-quick@3.1.3(prettier@3.1.1): + resolution: {integrity: sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA==} + engines: {node: '>=10.13'} + hasBin: true + peerDependencies: + prettier: '>=2.0.0' + dependencies: + chalk: 3.0.0 + execa: 4.1.0 + find-up: 4.1.0 + ignore: 5.3.0 + mri: 1.2.0 + multimatch: 4.0.0 + prettier: 3.1.1 + dev: true + /prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} dependencies: @@ -3739,6 +4422,13 @@ packages: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} dev: true + /pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + /punycode@2.3.0: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} @@ -3757,25 +4447,20 @@ packages: strip-json-comments: 2.0.1 dev: true - /react-dom@18.2.0(react@18.2.0): - resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} - peerDependencies: - react: ^18.2.0 - dependencies: - loose-envify: 1.4.0 - react: 18.2.0 - scheduler: 0.23.0 - dev: false - /react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} dev: true + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + dev: true + /react@18.2.0: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} engines: {node: '>=0.10.0'} dependencies: loose-envify: 1.4.0 + dev: true /read-pkg-up@7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} @@ -3913,6 +4598,27 @@ packages: glob: 7.2.3 dev: true + /rollup@4.9.2: + resolution: {integrity: sha512-66RB8OtFKUTozmVEh3qyNfH+b+z2RXBVloqO2KCC/pjFaGaHtxP9fVfOQKPSGXg2mElmjmxjW/fZ7iKrEpMH5Q==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.9.2 + '@rollup/rollup-android-arm64': 4.9.2 + '@rollup/rollup-darwin-arm64': 4.9.2 + '@rollup/rollup-darwin-x64': 4.9.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.9.2 + '@rollup/rollup-linux-arm64-gnu': 4.9.2 + '@rollup/rollup-linux-arm64-musl': 4.9.2 + '@rollup/rollup-linux-riscv64-gnu': 4.9.2 + '@rollup/rollup-linux-x64-gnu': 4.9.2 + '@rollup/rollup-linux-x64-musl': 4.9.2 + '@rollup/rollup-win32-arm64-msvc': 4.9.2 + '@rollup/rollup-win32-ia32-msvc': 4.9.2 + '@rollup/rollup-win32-x64-msvc': 4.9.2 + fsevents: 2.3.3 + dev: true + /run-applescript@5.0.0: resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} engines: {node: '>=12'} @@ -3970,12 +4676,6 @@ packages: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true - /scheduler@0.23.0: - resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} - dependencies: - loose-envify: 1.4.0 - dev: false - /semver@5.7.2: resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} dev: true @@ -4044,10 +4744,19 @@ packages: object-inspect: 1.13.1 dev: true + /siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + dev: true + /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: true + /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -4107,7 +4816,7 @@ packages: /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} - dev: false + dev: true /source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} @@ -4136,10 +4845,22 @@ packages: resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} dev: true - /streamsearch@1.1.0: - resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} - engines: {node: '>=10.0.0'} - dev: false + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: true + + /stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + dev: true + + /std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + dev: true + + /string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + dev: true /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} @@ -4234,22 +4955,11 @@ packages: engines: {node: '>=8'} dev: true - /styled-jsx@5.1.1(react@18.2.0): - resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} - engines: {node: '>= 12.0.0'} - peerDependencies: - '@babel/core': '*' - babel-plugin-macros: '*' - react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' - peerDependenciesMeta: - '@babel/core': - optional: true - babel-plugin-macros: - optional: true + /strip-literal@1.3.0: + resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} dependencies: - client-only: 0.0.1 - react: 18.2.0 - dev: false + acorn: 8.10.0 + dev: true /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} @@ -4290,6 +5000,15 @@ packages: engines: {node: '>=6'} dev: true + /test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + dev: true + /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true @@ -4298,6 +5017,20 @@ packages: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true + /tinybench@2.5.1: + resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} + dev: true + + /tinypool@0.8.1: + resolution: {integrity: sha512-zBTCK0cCgRROxvs9c0CGK838sPkeokNGdQVUUwHAbynHFlmyJYj825f/oRs528HaIJ97lo0pLIlDUzwN+IorWg==} + engines: {node: '>=14.0.0'} + dev: true + + /tinyspy@2.2.0: + resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} + engines: {node: '>=14.0.0'} + dev: true + /title-case@2.1.1: resolution: {integrity: sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==} dependencies: @@ -4338,8 +5071,9 @@ packages: typescript: 5.2.2 dev: true - /ts-node@10.9.1(@types/node@20.5.2)(typescript@5.2.2): + /ts-node@10.9.1(@types/node@20.5.2)(typescript@5.3.3): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + hasBin: true peerDependencies: '@swc/core': '>=1.2.50' '@swc/wasm': '>=1.2.50' @@ -4363,7 +5097,7 @@ packages: create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.2.2 + typescript: 5.3.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true @@ -4383,6 +5117,7 @@ packages: /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + dev: true /tsutils@3.21.0(typescript@5.2.2): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} @@ -4461,6 +5196,11 @@ packages: prelude-ls: 1.2.1 dev: true + /type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true + /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} @@ -4524,6 +5264,16 @@ packages: engines: {node: '>=14.17'} dev: true + /typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + engines: {node: '>=14.17'} + hasBin: true + dev: true + + /ufo@1.3.2: + resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} + dev: true + /uglify-js@3.17.4: resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} engines: {node: '>=0.8.0'} @@ -4557,6 +5307,7 @@ packages: /update-browserslist-db@1.0.13(browserslist@4.22.1): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: @@ -4596,6 +5347,15 @@ packages: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true + /v8-to-istanbul@9.2.0: + resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} + engines: {node: '>=10.12.0'} + dependencies: + '@jridgewell/trace-mapping': 0.3.20 + '@types/istanbul-lib-coverage': 2.0.6 + convert-source-map: 2.0.0 + dev: true + /validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} dependencies: @@ -4610,13 +5370,165 @@ packages: builtins: 5.0.1 dev: true - /watchpack@2.4.0: - resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} - engines: {node: '>=10.13.0'} + /validator@13.11.0: + resolution: {integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==} + engines: {node: '>= 0.10'} + dev: true + + /vite-node@1.1.1: + resolution: {integrity: sha512-2bGE5w4jvym5v8llF6Gu1oBrmImoNSs4WmRVcavnG2me6+8UQntTqLiAMFyiAobp+ZXhj5ZFhI7SmLiFr/jrow==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true dependencies: - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - dev: false + cac: 6.7.14 + debug: 4.3.4 + pathe: 1.1.1 + picocolors: 1.0.0 + vite: 5.0.10 + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /vite-plugin-dts@3.7.0(typescript@5.3.3)(vite@5.0.10): + resolution: {integrity: sha512-np1uPaYzu98AtPReB8zkMnbjwcNHOABsLhqVOf81b3ol9b5M2wPcAVs8oqPnOpr6Us+7yDXVauwkxsk5+ldmRA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + typescript: '*' + vite: '*' + peerDependenciesMeta: + vite: + optional: true + dependencies: + '@microsoft/api-extractor': 7.39.0 + '@rollup/pluginutils': 5.1.0 + '@vue/language-core': 1.8.27(typescript@5.3.3) + debug: 4.3.4 + kolorist: 1.8.0 + typescript: 5.3.3 + vite: 5.0.10 + vue-tsc: 1.8.27(typescript@5.3.3) + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + dev: true + + /vite@5.0.10: + resolution: {integrity: sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.19.11 + postcss: 8.4.32 + rollup: 4.9.2 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /vitest@1.1.1: + resolution: {integrity: sha512-Ry2qs4UOu/KjpXVfOCfQkTnwSXYGrqTbBZxw6reIYEFjSy1QUARRg5pxiI5BEXy+kBVntxUYNMlq4Co+2vD3fQ==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': ^1.0.0 + '@vitest/ui': ^1.0.0 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@vitest/expect': 1.1.1 + '@vitest/runner': 1.1.1 + '@vitest/snapshot': 1.1.1 + '@vitest/spy': 1.1.1 + '@vitest/utils': 1.1.1 + acorn-walk: 8.3.1 + cac: 6.7.14 + chai: 4.3.10 + debug: 4.3.4 + execa: 8.0.1 + local-pkg: 0.5.0 + magic-string: 0.30.5 + pathe: 1.1.1 + picocolors: 1.0.0 + std-env: 3.7.0 + strip-literal: 1.3.0 + tinybench: 2.5.1 + tinypool: 0.8.1 + vite: 5.0.10 + vite-node: 1.1.1 + why-is-node-running: 2.2.2 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /vue-template-compiler@2.7.16: + resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + dev: true + + /vue-tsc@1.8.27(typescript@5.3.3): + resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} + hasBin: true + peerDependencies: + typescript: '*' + dependencies: + '@volar/typescript': 1.11.1 + '@vue/language-core': 1.8.27(typescript@5.3.3) + semver: 7.5.4 + typescript: 5.3.3 + dev: true /wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} @@ -4679,6 +5591,15 @@ packages: isexe: 2.0.0 dev: true + /why-is-node-running@2.2.2: + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + engines: {node: '>=8'} + hasBin: true + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + dev: true + /wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} dev: true @@ -4713,3 +5634,20 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} dev: true + + /yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + dev: true + + /z-schema@5.0.5: + resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==} + engines: {node: '>=8.0.0'} + hasBin: true + dependencies: + lodash.get: 4.4.2 + lodash.isequal: 4.5.0 + validator: 13.11.0 + optionalDependencies: + commander: 9.5.0 + dev: true diff --git a/turbo.json b/turbo.json index 781f274..a8c74b1 100644 --- a/turbo.json +++ b/turbo.json @@ -3,8 +3,7 @@ "globalDependencies": ["**/.env.*local"], "pipeline": { "build": { - "dependsOn": ["^build"], - "outputs": [".next/**", "!.next/cache/**"] + "dependsOn": ["^build"] }, "lint": { "dependsOn": ["^lint"]