diff --git a/.circleci/config.yml b/.circleci/config.yml index 4a4418c8924..5b00cd69850 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -30,7 +30,6 @@ commands: type: boolean default: false description: 'Set to true if you intend to use any browser (for example with playwright).' - steps: - when: condition: << parameters.browsers >> @@ -46,7 +45,6 @@ commands: name: Install pnpm package manager # See https://stackoverflow.com/a/73411601 command: corepack enable --install-directory ~/bin - - run: name: View install environment command: | @@ -133,7 +131,6 @@ jobs: test_unit: <<: *default-job - steps: - checkout - install_js: @@ -154,7 +151,6 @@ jobs: - image: mcr.microsoft.com/playwright:v1.48.2-focal environment: NODE_ENV: test - steps: - checkout - install_js: @@ -177,7 +173,6 @@ jobs: environment: NODE_ENV: test TOOLPAD_TEST_RETRIES: 1 - steps: - checkout - install_js: @@ -199,6 +194,16 @@ jobs: path: test/test-results destination: playwright-test-results + test_bundle_size_monitor: + <<: *default-job + steps: + - checkout + - install_js + - run: + name: Run danger on PRs + command: pnpm danger ci --fail-on-errors + # TODO test bundle size, similar to https://github.com/mui/base-ui/issues/201 + workflows: pipeline: jobs: @@ -228,3 +233,7 @@ workflows: <<: *default-context requires: - checkout + - test_bundle_size_monitor: + <<: *default-context + requires: + - checkout diff --git a/CHANGELOG.md b/CHANGELOG.md index 145837f87af..eeae1b1239f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -568,7 +568,7 @@ First components in @toolpad/core: [DashboardLayout](https://github.com/mui/tool - Lock file maintenance (#3622) @renovate[bot] - Lock file maintenance Examples (#3624) @renovate[bot] -- Add Next.js app router Toolpad Core playground (#3587) @apedroferreira +- Add Next.js App Router Toolpad Core playground (#3587) @apedroferreira - Isolate api-docs-builder deps @Janpot - isolate react-docgen @Janpot - Update renovate.json @Janpot diff --git a/dangerfile.ts b/dangerfile.ts new file mode 100644 index 00000000000..1e033193330 --- /dev/null +++ b/dangerfile.ts @@ -0,0 +1,21 @@ +// danger has to be the first thing required! +import { danger, markdown } from 'danger'; + +function addDeployPreviewUrls() { + const netlifyPreview = `https://deploy-preview-${danger.github.pr.number}--mui-toolpad-docs.netlify.app/`; + + markdown(` +## Netlify deploy preview + +${netlifyPreview} +`); +} + +async function run() { + addDeployPreviewUrls(); +} + +run().catch((error) => { + console.error(error); + process.exit(1); +}); diff --git a/docs/data/toolpad/core/components/page-container/page-container.md b/docs/data/toolpad/core/components/page-container/page-container.md index 70f3c2a2cf2..105bc9314d6 100644 --- a/docs/data/toolpad/core/components/page-container/page-container.md +++ b/docs/data/toolpad/core/components/page-container/page-container.md @@ -71,7 +71,7 @@ function useDynamicBreadcrumbs(id: string): Breadcrumb[] { } ``` -For example, under the Next.js app router you would be able to obtain breadcrumbs for a dynamic route as follows: +For example, under the Next.js App Router you would be able to obtain breadcrumbs for a dynamic route as follows: ```tsx // ./src/app/example/[id]/page.tsx diff --git a/docs/data/toolpad/core/components/sign-in-page/sign-in-page.md b/docs/data/toolpad/core/components/sign-in-page/sign-in-page.md index cddc44d4daf..2efbf13c51e 100644 --- a/docs/data/toolpad/core/components/sign-in-page/sign-in-page.md +++ b/docs/data/toolpad/core/components/sign-in-page/sign-in-page.md @@ -75,7 +75,7 @@ The `SignInPage` component can be set up to use [Passkeys](https://passkeys.dev) The [Toolpad Core Passkey example app](https://github.com/mui/mui-toolpad/tree/master/examples/core/auth-nextjs-passkey/) comes with a working app using `next-auth/webauthn`, Prisma and PostgreSQL. ::: -{{"component": "modules/components/DocsImage.tsx", "src": "/static/toolpad/docs/core/auth-next-passkey.png", "srcDark": "/static/toolpad/docs/core/auth-next-passkey-dark.png", "alt": "Auth.js Passkeys & Next.js with Toolpad Core sign-in page", "caption": "Auth.js Passkeys & Next.js app router with Toolpad Core Sign-in page", "zoom": true, "aspectRatio": "1.428" }} +{{"component": "modules/components/DocsImage.tsx", "src": "/static/toolpad/docs/core/auth-next-passkey.png", "srcDark": "/static/toolpad/docs/core/auth-next-passkey-dark.png", "alt": "Auth.js Passkeys & Next.js with Toolpad Core sign-in page", "caption": "Auth.js Passkeys & Next.js App Router with Toolpad Core Sign-in page", "zoom": true, "aspectRatio": "1.428" }} ## Credentials @@ -108,9 +108,9 @@ This renders an alert with the `error` string as the message. #### Next.js App Directory and GitHub -The component is composable with any authentication library you might want to use. The following is a `SignInPage` with [Auth.js](https://authjs.dev/) using GitHub, Next.js App router and server actions. +The component is composable with any authentication library you might want to use. The following is a `SignInPage` with [Auth.js](https://authjs.dev/) using GitHub, Next.js App Router and server actions. -{{"component": "modules/components/DocsImage.tsx", "src": "/static/toolpad/docs/core/auth-next.png", "srcDark": "/static/toolpad/docs/core/auth-next-dark.png", "alt": "Auth.js & Next.js with Toolpad Core sign-in page", "caption": "Auth.js & Next.js app router with Toolpad Core Sign-in page", "zoom": true, "indent": 1, "aspectRatio": "1.428" }} +{{"component": "modules/components/DocsImage.tsx", "src": "/static/toolpad/docs/core/auth-next.png", "srcDark": "/static/toolpad/docs/core/auth-next-dark.png", "alt": "Auth.js & Next.js with Toolpad Core sign-in page", "caption": "Auth.js & Next.js App Router with Toolpad Core Sign-in page", "zoom": true, "indent": 1, "aspectRatio": "1.428" }} #### Setting up @@ -230,7 +230,7 @@ Through the `theme` prop in the [AppProvider](https://mui.com/toolpad/core/react {{"demo": "ThemeSignInPage.js", "iframe": true, "height": 700 }} :::info -Find a full-fledged example using the Next.js App router, Auth.js and this theme [here](https://codesandbox.io/s/github/mui/toolpad/tree/master/examples/core/auth-nextjs-themed). +Find a full-fledged example using the Next.js App Router, Auth.js and this theme [here](https://codesandbox.io/p/sandbox/github/mui/toolpad/tree/master/examples/core/auth-nextjs-themed). ::: ### Slots diff --git a/docs/data/toolpad/core/integrations/nextjs-approuter.md b/docs/data/toolpad/core/integrations/nextjs-approuter.md index 46726d69424..8784c51e707 100644 --- a/docs/data/toolpad/core/integrations/nextjs-approuter.md +++ b/docs/data/toolpad/core/integrations/nextjs-approuter.md @@ -57,7 +57,7 @@ See the [MaterialĀ UI Next.js integration docs](https://mui.com/material-ui/inte ::: :::warning -If your app is statically rendered, you must wrap the `AppProvider` in a `Suspense` component when using the app router. See [https://github.com/mui/toolpad/issues/4524](https://github.com/mui/toolpad/issues/4524) for more information. +If your app is statically rendered, you must wrap the `AppProvider` in a `Suspense` component when using the App Router. See [https://github.com/mui/toolpad/issues/4524](https://github.com/mui/toolpad/issues/4524) for more information. ::: ## Create a dashboard layout diff --git a/docs/data/toolpad/core/introduction/examples.md b/docs/data/toolpad/core/introduction/examples.md index 36dd4d14471..975af850692 100644 --- a/docs/data/toolpad/core/introduction/examples.md +++ b/docs/data/toolpad/core/introduction/examples.md @@ -7,12 +7,10 @@ title: Examples

Browse a collection of Toolpad Core examples to help you get started quickly.

- +## Featured examples -## Featured Examples +{{"component": "modules/components/examples/CoreFeaturedExamples.tsx"}} -{{"component": "modules/components/Examples/FeaturedExamples.tsx", "examplesFile": "core-examples.ts"}} +## Other examples -## Other Examples - -{{"component": "modules/components/Examples/ExamplesGrid.tsx", "examplesFile": "core-examples.ts", "reverse": true}} +{{"component": "modules/components/examples/CoreOtherExamples.tsx"}} diff --git a/docs/data/toolpad/studio/getting-started/examples-overview.md b/docs/data/toolpad/studio/getting-started/examples-overview.md index 4f071102e2f..575ca15647c 100644 --- a/docs/data/toolpad/studio/getting-started/examples-overview.md +++ b/docs/data/toolpad/studio/getting-started/examples-overview.md @@ -5,12 +5,10 @@ title: Examples # Overview -

Browse our collection of Toolpad Studio examples that help you familiarise with Toolpad Studio concepts.

- - +

Browse a collection of Toolpad Studio examples that help you familiarise with Toolpad Studio concepts.

This collection includes apps that showcase connecting to APIs, adding custom components, adding secrets, adding authentication, working with ORMs and more. If you're interested in how we, at MUI, use Toolpad Studio to build internal apps, check out the [blog post](https://mui.com/blog/toolpad-use-cases/). -{{"component": "modules/components/Examples/ExamplesGrid.tsx", "examplesFile": "studio-examples.ts"}} +{{"component": "modules/components/examples/StudioExamples.tsx"}} diff --git a/docs/data/toolpad/studio/how-to-guides/railway-deploy.md b/docs/data/toolpad/studio/how-to-guides/railway-deploy.md index 64d428730af..d13861161cd 100644 --- a/docs/data/toolpad/studio/how-to-guides/railway-deploy.md +++ b/docs/data/toolpad/studio/how-to-guides/railway-deploy.md @@ -6,7 +6,7 @@ This guide walks you through the deployment of a Toolpad Studio app from a GitHu ## Prerequisites -- A [Railway](https://railway.app/) account +- A [Railway](https://railway.com/) account - A [GitHub](https://github.com) account - A GitHub repository containing your Toolpad Studio app. Check out [pushing your Toolpad Studio app to GitHub](/toolpad/studio/how-to-guides/render-deploy/#pushing-your-toolpad-studio-app-to-github) for this step. diff --git a/docs/package.json b/docs/package.json index bb730a927d8..d5f41531ae6 100644 --- a/docs/package.json +++ b/docs/package.json @@ -5,7 +5,7 @@ "author": "MUI Toolpad", "license": "MIT", "scripts": { - "build": "rimraf docs/export && cross-env NODE_ENV=production next build --profile && pnpm build-sw", + "build": "rimraf ./export && cross-env NODE_ENV=production next build --profile && pnpm build-sw", "build:clean": "rimraf .next && pnpm build", "build-sw": "node ./scripts/buildServiceWorker.js", "dev": "next dev --port 3003", @@ -67,7 +67,7 @@ "lodash": "4.17.21", "lz-string": "1.5.0", "markdown-to-jsx": "7.7.0", - "next": "^14.2.20", + "next": "^14.2.21", "nprogress": "0.2.0", "postcss": "8.4.49", "prismjs": "1.29.0", diff --git a/docs/src/modules/components/Examples/core-examples.ts b/docs/src/modules/components/Examples/core-examples.ts deleted file mode 100644 index 54667731313..00000000000 --- a/docs/src/modules/components/Examples/core-examples.ts +++ /dev/null @@ -1,110 +0,0 @@ -export default function examples() { - return [ - { - title: 'Tutorial app', - description: - 'This app shows you to get started with Toolpad Core and use basic layout and navigation features.', - src: '/static/toolpad/docs/core/tutorial-1.png', - href: 'https://mui.com/toolpad/core/introduction/tutorial/', - source: 'https://github.com/mui/toolpad/tree/master/examples/core/tutorial/', - codeSandbox: 'https://codesandbox.io/s/github/mui/toolpad/tree/master/examples/core/tutorial', - stackBlitz: 'https://stackblitz.com/github/mui/toolpad/tree/master/examples/core/tutorial', - }, - { - title: 'Auth.js with Next.js App router', - description: - 'This app shows you to how to get started using Toolpad Core with Auth.js and the Next.js App router', - src: '/static/toolpad/docs/core/auth-next.png', - srcDark: '/static/toolpad/docs/core/auth-next-dark.png', - source: 'https://github.com/mui/toolpad/tree/master/examples/core/auth-nextjs/', - codeSandbox: - 'https://codesandbox.io/s/github/mui/toolpad/tree/master/examples/core/auth-nextjs', - stackblitz: 'https://stackblitz.com/github/mui/toolpad/tree/master/examples/core/auth-nextjs', - }, - { - title: 'Auth.js with Next.js Pages router', - description: - 'This app shows you to how to get started using Toolpad Core with Auth.js and the Next.js Pages router', - src: '/static/toolpad/docs/core/auth-next.png', - srcDark: '/static/toolpad/docs/core/auth-next-dark.png', - source: 'https://github.com/mui/toolpad/tree/master/examples/core/auth-nextjs-pages/', - codeSandbox: - 'https://codesandbox.io/s/github/mui/toolpad/tree/master/examples/core/auth-nextjs-pages', - stackblitz: - 'https://stackblitz.com/github/mui/toolpad/tree/master/examples/core/auth-nextjs-pages', - }, - { - title: 'Auth.js Magic Link with Next.js App router', - description: - 'This app shows you to how to get started using Toolpad Core with Auth.js Magic Links and the Next.js App router', - src: '/static/toolpad/docs/core/auth-next.png', - source: 'https://github.com/mui/toolpad/tree/master/examples/core/auth-nextjs-email', - codeSandbox: - 'https://codesandbox.io/s/github/mui/toolpad/tree/master/examples/core/auth-nextjs-email', - }, - { - title: 'Vite with React Router', - description: - 'This app shows you to how to get started using Toolpad Core with Vite and React Router', - src: '/static/toolpad/docs/core/vite-react-router.png', - source: 'https://github.com/mui/toolpad/tree/master/examples/core/vite/', - codeSandbox: 'https://codesandbox.io/s/github/mui/toolpad/tree/master/examples/core/vite', - stackblitz: 'https://stackblitz.com/github/mui/toolpad/tree/master/examples/core/vite', - }, - { - title: 'Auth.js v4 with Next.js Pages router', - description: - 'This app shows you to how to get started using Toolpad Core with Auth.js v4 and the Next.js Pages router', - src: '/static/toolpad/docs/core/auth-next.png', - srcDark: '/static/toolpad/docs/core/auth-next-dark.png', - source: - 'https://github.com/mui/toolpad/tree/master/examples/core/auth-nextjs-pages-nextauth-4/', - codeSandbox: - 'https://codesandbox.io/s/github/mui/toolpad/tree/master/examples/core/auth-nextjs-pages-nextauth-4', - stackblitz: - 'https://stackblitz.com/github/mui/toolpad/tree/master/examples/core/auth-nextjs-pages-nextauth-4', - }, - { - title: 'Next.js App router with Auth.js Passkey', - description: - 'This app shows you to how to get started using Toolpad Core with Auth.js Passkeys and the Next.js App router', - src: '/static/toolpad/docs/core/auth-next-passkey.png', - srcDark: '/static/toolpad/docs/core/auth-next-passkey-dark.png', - source: 'https://github.com/mui/toolpad/tree/master/examples/core/auth-nextjs-passkey/', - codeSandbox: - 'https://codesandbox.io/s/github/mui/toolpad/tree/master/examples/core/auth-nextjs-passkey', - }, - { - title: 'Vite with React Router and mock authentication', - description: - 'This app shows you to how to get started using Toolpad Core with Vite, React Router and any external authentication provider', - src: '/static/toolpad/docs/core/vite-react-router.png', - source: 'https://github.com/mui/toolpad/tree/master/examples/core/auth-vite', - codeSandbox: - 'https://codesandbox.io/s/github/mui/toolpad/tree/master/examples/core/auth-vite', - }, - { - title: 'Vite with React Router and Firebase Auth', - description: - 'This app shows you to how to get started using Toolpad Core with Vite, React Router, and authentication using Firebase', - src: '/static/toolpad/docs/core/firebase-vite-light.png', - srcDark: '/static/toolpad/docs/core/firebase-vite-dark.png', - source: 'https://github.com/mui/toolpad/tree/master/examples/core/firebase-vite', - codeSandbox: - 'https://codesandbox.io/s/github/mui/toolpad/tree/master/examples/core/firebase-vite', - }, - { - title: 'Functional Dashboard', - description: - 'This example shows you how to get started building a dashboard with Toolpad Core, Next.js app router, Auth.js and Material UI components in a customized theme', - src: '/static/toolpad/docs/core/functional-dashboard.png', - href: 'https://mui.com/toolpad/core/templates/nextjs-dashboard', - srcDark: '/static/toolpad/docs/core/functional-dashboard-dark.png', - source: 'https://github.com/mui/toolpad/tree/master/examples/core/auth-nextjs-themed', - featured: true, - new: true, - codeSandbox: - 'https://codesandbox.io/s/github/mui/toolpad/tree/master/examples/core/auth-nextjs-themed', - }, - ]; -} diff --git a/docs/src/modules/components/Examples/studio-examples.ts b/docs/src/modules/components/Examples/studio-examples.ts deleted file mode 100644 index c889a4dbcd3..00000000000 --- a/docs/src/modules/components/Examples/studio-examples.ts +++ /dev/null @@ -1,118 +0,0 @@ -export default function examples() { - return [ - { - title: 'npm stats', - description: - 'This analytics dashboard shows how to track a KPI from a third-party data source.', - src: '/static/toolpad/docs/studio/examples/npm-stats.png', - href: 'https://mui.com/toolpad/studio/examples/npm-stats/', - source: 'https://github.com/mui/toolpad/tree/master/examples/studio/npm-stats/', - }, - { - title: 'Basic CRUD application', - description: 'An admin application to showcase how CRUD operations work in Toolpad Studio.', - src: '/static/toolpad/docs/studio/examples/basic-crud-app.png', - href: 'https://mui.com/toolpad/studio/examples/basic-crud-app/', - source: 'https://github.com/mui/toolpad/tree/master/examples/studio/basic-crud-app/', - }, - { - title: 'QR Code generator', - description: - 'A basic Toolpad Studio application that can be used to turn any text or URL into a QR code.', - src: '/static/toolpad/docs/studio/examples/qr-generator.png', - href: 'https://mui.com/toolpad/studio/examples/qr-generator/', - source: 'https://github.com/mui/toolpad/tree/master/examples/studio/qr-generator/', - }, - { - title: 'With Prisma', - description: - 'A basic Toolpad Studio application that demonstrates how to integrate with Prisma.', - src: '/static/toolpad/marketing/with-prisma-hero.png', - href: 'https://github.com/mui/toolpad/tree/master/examples/studio/with-prisma/', - source: 'https://github.com/mui/toolpad/tree/master/examples/studio/with-prisma/', - }, - { - title: 'Google Sheet', - description: 'Quickly fetch data from Google Sheets to build a Toolpad Studio app.', - src: '/static/toolpad/marketing/google-sheet.png', - href: 'https://github.com/mui/toolpad/tree/master/examples/studio/google-sheet/', - source: 'https://github.com/mui/toolpad/tree/master/examples/studio/google-sheet/', - }, - { - title: 'Dog app', - description: 'An app that shows dog images based on selected breeds or sub-breeds.', - src: '/static/toolpad/docs/studio/getting-started/first-app/step-13.png', - href: 'https://github.com/mui/toolpad/tree/master/examples/studio/dog-app/', - source: 'https://github.com/mui/toolpad/tree/master/examples/studio/dog-app/', - }, - { - title: 'Customized data grid', - description: - 'A basic Toolpad Studio app that shows how to customize a data grid column using a custom code component.', - src: '/static/toolpad/marketing/custom-datagrid-column.png', - href: 'https://github.com/mui/toolpad/tree/master/examples/studio/custom-datagrid-column', - source: 'https://github.com/mui/toolpad/tree/master/examples/studio/custom-datagrid-column/', - }, - { - title: 'GraphQL app', - description: 'An app that shows latest 100 stargazers info for any GitHub repository.', - src: '/static/toolpad/marketing/graphql.png', - href: 'https://github.com/mui/toolpad/tree/master/examples/studio/graphql/', - source: 'https://github.com/mui/toolpad/tree/master/examples/studio/graphql/', - }, - { - title: 'With WASM', - description: - 'A basic Toolpad Studio application that demonstrates integrating with WASM modules.', - src: '/static/toolpad/marketing/with-wasm.png', - href: 'https://github.com/mui/toolpad/tree/master/examples/studio/with-wasm/', - source: 'https://github.com/mui/toolpad/tree/master/examples/studio/with-wasm/', - }, - { - title: 'Data provider with prisma', - description: - 'A basic Toolpad Studio application that demonstrates how to use data providers with Prisma.', - src: '/static/toolpad/marketing/with-prisma-data-provider.png', - href: 'https://github.com/mui/toolpad/tree/master/examples/studio/with-prisma-data-provider/', - source: - 'https://github.com/mui/toolpad/tree/master/examples/studio/with-prisma-data-provider/', - }, - { - title: 'With Supabase', - description: - 'A Toolpad Studio app that fetches data from Supabase and shows it in a list component.', - src: '/static/toolpad/marketing/supabase.png', - href: 'https://github.com/mui/toolpad/tree/master/examples/studio/supabase/', - source: 'https://github.com/mui/toolpad/tree/master/examples/studio/supabase/', - }, - { - title: 'Stripe invoice downloader', - description: 'A Stripe app to fetch and download invoices.', - src: '/static/toolpad/marketing/stripe-script.png', - href: 'https://github.com/mui/toolpad/tree/master/examples/studio/stripe-script/', - source: 'https://github.com/mui/toolpad/tree/master/examples/studio/stripe-script/', - }, - { - title: 'Charts', - description: - 'A basic Toolpad Studio application that demonstrates how to use chart component.', - src: '/static/toolpad/marketing/charts.png', - href: 'https://github.com/mui/toolpad/tree/master/examples/studio/charts/', - source: 'https://github.com/mui/toolpad/tree/master/examples/studio/charts/', - }, - { - title: 'Google Authentication', - description: 'An app that shows how to set up Google authentication in Toolpad Studio.', - src: '/static/toolpad/marketing/auth-google.png', - href: 'https://github.com/mui/toolpad/tree/master/examples/studio/auth-google/', - source: 'https://github.com/mui/toolpad/tree/master/examples/studio/auth-google/', - }, - { - title: 'Custom server', - description: 'An app that shows how to use Toolpad Studio with a custom server.', - src: '/static/toolpad/marketing/custom-server.png', - href: 'https://github.com/mui/toolpad/tree/master/examples/studio/custom-server/', - source: 'https://github.com/mui/toolpad/tree/master/examples/studio/custom-server/', - }, - ]; -} diff --git a/docs/src/modules/components/Examples/types.ts b/docs/src/modules/components/Examples/types.ts deleted file mode 100644 index 96508d22704..00000000000 --- a/docs/src/modules/components/Examples/types.ts +++ /dev/null @@ -1,12 +0,0 @@ -export interface Example { - title: string; - description: string; - src: string; - srcDark?: string; - href: string; - source: string; - codeSandbox?: string; - stackBlitz?: string; - new?: boolean; - featured?: boolean; -} diff --git a/docs/src/modules/components/examples/CoreFeaturedExamples.tsx b/docs/src/modules/components/examples/CoreFeaturedExamples.tsx new file mode 100644 index 00000000000..67af812cef3 --- /dev/null +++ b/docs/src/modules/components/examples/CoreFeaturedExamples.tsx @@ -0,0 +1,7 @@ +import * as React from 'react'; +import ExamplesFeatured from 'docs-toolpad/src/modules/components/examples/ExamplesFeatured'; +import coreExamples from 'docs-toolpad/src/modules/components/examples/coreExamples'; + +export default function CoreFeaturedExamples() { + return ; +} diff --git a/docs/src/modules/components/examples/CoreOtherExamples.tsx b/docs/src/modules/components/examples/CoreOtherExamples.tsx new file mode 100644 index 00000000000..14a65c35045 --- /dev/null +++ b/docs/src/modules/components/examples/CoreOtherExamples.tsx @@ -0,0 +1,7 @@ +import * as React from 'react'; +import ExamplesGrid from 'docs-toolpad/src/modules/components/examples/ExamplesGrid'; +import coreExamples from 'docs-toolpad/src/modules/components/examples/coreExamples'; + +export default function CoreOtherExamples() { + return ; +} diff --git a/docs/src/modules/components/Examples/FeaturedExamples.tsx b/docs/src/modules/components/examples/ExamplesFeatured.tsx similarity index 77% rename from docs/src/modules/components/Examples/FeaturedExamples.tsx rename to docs/src/modules/components/examples/ExamplesFeatured.tsx index 26c2bd4ec19..9aa7e3ae46f 100644 --- a/docs/src/modules/components/Examples/FeaturedExamples.tsx +++ b/docs/src/modules/components/examples/ExamplesFeatured.tsx @@ -8,7 +8,6 @@ import Button from '@mui/material/Button'; import IconButton from '@mui/material/IconButton'; import Link from '@mui/material/Link'; import Tooltip from '@mui/material/Tooltip'; -import Skeleton from '@mui/material/Skeleton'; import Typography from '@mui/material/Typography'; import SvgIcon from '@mui/material/SvgIcon'; import Visibility from '@mui/icons-material/Visibility'; @@ -16,49 +15,17 @@ import CodeRoundedIcon from '@mui/icons-material/CodeRounded'; import OpenInNewRoundedIcon from '@mui/icons-material/OpenInNewRounded'; import { useTheme } from '@mui/material/styles'; import { sxChip } from 'docs/src/modules/components/AppNavDrawerItem'; -import type { Example } from './types'; +import { Example, versionGitHubLink } from './examplesUtils'; interface FeaturedExamplesProps { - examplesFile: string; + examples: Example[]; } -export default function FeaturedExamples(props: FeaturedExamplesProps) { +export default function ExamplesFeatured(props: FeaturedExamplesProps) { const t = useTranslate(); - const [examples, setExamples] = React.useState([]); - const [loading, setLoading] = React.useState(true); - - React.useEffect(() => { - const importExamples = async () => { - setLoading(true); - let exampleContent = await import(`./${props.examplesFile}`); - exampleContent = exampleContent - .default() - .filter((example: Example) => example.featured === true); - setExamples(exampleContent); - setLoading(false); - }; - importExamples(); - }, [props.examplesFile]); + const examples = props.examples.filter((example: Example) => example.featured === true); const docsTheme = useTheme(); - if (loading) { - return ( - - {[1].map((key) => ( - - - - - - ))} - - ); - } return ( @@ -84,7 +51,7 @@ export default function FeaturedExamples(props: FeaturedExamplesProps) { }} > - {example.stackBlitz ? ( + {example.stackBlitz === true ? ( { - window.open(example.stackBlitz, '_blank', 'noopener,noreferrer'); - }} > @@ -162,17 +130,18 @@ export default function FeaturedExamples(props: FeaturedExamplesProps) { ) : null} - {example.codeSandbox ? ( + {example.codeSandbox === true ? ( { - window.open(example.codeSandbox, '_blank', 'noopener,noreferrer'); - }} > @@ -181,14 +150,19 @@ export default function FeaturedExamples(props: FeaturedExamplesProps) { ) : null} - + - {example.codeSandbox && ( - + {example.stackBlitz === true ? ( + - + - )} - {example.stackBlitz && ( - + ) : null} + {example.codeSandbox === true ? ( + - + - )} + ) : null} @@ -157,5 +146,3 @@ function ExamplesGrid(props: ExamplesGridProps) { ); } - -export default ExamplesGrid; diff --git a/docs/src/modules/components/examples/StudioExamples.tsx b/docs/src/modules/components/examples/StudioExamples.tsx new file mode 100644 index 00000000000..92adacac090 --- /dev/null +++ b/docs/src/modules/components/examples/StudioExamples.tsx @@ -0,0 +1,137 @@ +import * as React from 'react'; +import ExamplesGrid from 'docs-toolpad/src/modules/components/examples/ExamplesGrid'; +import type { Example } from './examplesUtils'; + +const examples = [ + { + title: 'npm stats', + description: + 'This analytics dashboard shows how to track a KPI from a third-party data source.', + src: '/static/toolpad/docs/studio/examples/npm-stats.png', + srcDark: '/static/toolpad/docs/studio/examples/npm-stats.png', // TODO fix + href: 'https://mui.com/toolpad/studio/examples/npm-stats/', + source: 'https://github.com/mui/toolpad/tree/master/examples/studio/npm-stats/', + }, + { + title: 'Basic CRUD application', + description: 'An admin application to showcase how CRUD operations work in Toolpad Studio.', + src: '/static/toolpad/docs/studio/examples/basic-crud-app.png', + srcDark: '/static/toolpad/docs/studio/examples/basic-crud-app.png', // TODO fix + href: 'https://mui.com/toolpad/studio/examples/basic-crud-app/', + source: 'https://github.com/mui/toolpad/tree/master/examples/studio/basic-crud-app/', + }, + { + title: 'QR Code generator', + description: + 'A basic Toolpad Studio application that can be used to turn any text or URL into a QR code.', + src: '/static/toolpad/docs/studio/examples/qr-generator.png', + srcDark: '/static/toolpad/docs/studio/examples/qr-generator.png', // TODO fix + href: 'https://mui.com/toolpad/studio/examples/qr-generator/', + source: 'https://github.com/mui/toolpad/tree/master/examples/studio/qr-generator/', + }, + { + title: 'With Prisma', + description: + 'A basic Toolpad Studio application that demonstrates how to integrate with Prisma.', + src: '/static/toolpad/marketing/with-prisma-hero.png', + srcDark: '/static/toolpad/marketing/with-prisma-hero.png', // TODO fix + href: 'https://github.com/mui/toolpad/tree/master/examples/studio/with-prisma/', + source: 'https://github.com/mui/toolpad/tree/master/examples/studio/with-prisma/', + }, + { + title: 'Google Sheet', + description: 'Quickly fetch data from Google Sheets to build a Toolpad Studio app.', + src: '/static/toolpad/marketing/google-sheet.png', + srcDark: '/static/toolpad/marketing/google-sheet.png', // TODO fix + href: 'https://github.com/mui/toolpad/tree/master/examples/studio/google-sheet/', + source: 'https://github.com/mui/toolpad/tree/master/examples/studio/google-sheet/', + }, + { + title: 'Dog app', + description: 'An app that shows dog images based on selected breeds or sub-breeds.', + src: '/static/toolpad/docs/studio/getting-started/first-app/step-13.png', + srcDark: '/static/toolpad/docs/studio/getting-started/first-app/step-13.png', // TODO fix + href: 'https://github.com/mui/toolpad/tree/master/examples/studio/dog-app/', + source: 'https://github.com/mui/toolpad/tree/master/examples/studio/dog-app/', + }, + { + title: 'Customized data grid', + description: + 'A basic Toolpad Studio app that shows how to customize a data grid column using a custom code component.', + src: '/static/toolpad/marketing/custom-datagrid-column.png', + srcDark: '/static/toolpad/marketing/custom-datagrid-column.png', // TODO fix + href: 'https://github.com/mui/toolpad/tree/master/examples/studio/custom-datagrid-column', + source: 'https://github.com/mui/toolpad/tree/master/examples/studio/custom-datagrid-column/', + }, + { + title: 'GraphQL app', + description: 'An app that shows latest 100 stargazers info for any GitHub repository.', + src: '/static/toolpad/marketing/graphql.png', + srcDark: '/static/toolpad/marketing/graphql.png', // TODO fix + href: 'https://github.com/mui/toolpad/tree/master/examples/studio/graphql/', + source: 'https://github.com/mui/toolpad/tree/master/examples/studio/graphql/', + }, + { + title: 'With WASM', + description: + 'A basic Toolpad Studio application that demonstrates integrating with WASM modules.', + src: '/static/toolpad/marketing/with-wasm.png', + srcDark: '/static/toolpad/marketing/with-wasm.png', // TODO fix + href: 'https://github.com/mui/toolpad/tree/master/examples/studio/with-wasm/', + source: 'https://github.com/mui/toolpad/tree/master/examples/studio/with-wasm/', + }, + { + title: 'Data provider with prisma', + description: + 'A basic Toolpad Studio application that demonstrates how to use data providers with Prisma.', + src: '/static/toolpad/marketing/with-prisma-data-provider.png', + srcDark: '/static/toolpad/marketing/with-prisma-data-provider.png', // TODO fix + href: 'https://github.com/mui/toolpad/tree/master/examples/studio/with-prisma-data-provider/', + source: 'https://github.com/mui/toolpad/tree/master/examples/studio/with-prisma-data-provider/', + }, + { + title: 'With Supabase', + description: + 'A Toolpad Studio app that fetches data from Supabase and shows it in a list component.', + src: '/static/toolpad/marketing/supabase.png', + srcDark: '/static/toolpad/marketing/supabase.png', // TODO fix + href: 'https://github.com/mui/toolpad/tree/master/examples/studio/supabase/', + source: 'https://github.com/mui/toolpad/tree/master/examples/studio/supabase/', + }, + { + title: 'Stripe invoice downloader', + description: 'A Stripe app to fetch and download invoices.', + src: '/static/toolpad/marketing/stripe-script.png', + srcDark: '/static/toolpad/marketing/stripe-script.png', // TODO fix + href: 'https://github.com/mui/toolpad/tree/master/examples/studio/stripe-script/', + source: 'https://github.com/mui/toolpad/tree/master/examples/studio/stripe-script/', + }, + { + title: 'Charts', + description: 'A basic Toolpad Studio application that demonstrates how to use chart component.', + src: '/static/toolpad/marketing/charts.png', + srcDark: '/static/toolpad/marketing/charts.png', // TODO fix + href: 'https://github.com/mui/toolpad/tree/master/examples/studio/charts/', + source: 'https://github.com/mui/toolpad/tree/master/examples/studio/charts/', + }, + { + title: 'Google Authentication', + description: 'An app that shows how to set up Google authentication in Toolpad Studio.', + src: '/static/toolpad/marketing/auth-google.png', + srcDark: '/static/toolpad/marketing/auth-google.png', // TODO fix + href: 'https://github.com/mui/toolpad/tree/master/examples/studio/auth-google/', + source: 'https://github.com/mui/toolpad/tree/master/examples/studio/auth-google/', + }, + { + title: 'Custom server', + description: 'An app that shows how to use Toolpad Studio with a custom server.', + src: '/static/toolpad/marketing/custom-server.png', + srcDark: '/static/toolpad/marketing/custom-server.png', // TODO fix + href: 'https://github.com/mui/toolpad/tree/master/examples/studio/custom-server/', + source: 'https://github.com/mui/toolpad/tree/master/examples/studio/custom-server/', + }, +] satisfies Example[]; + +export default function StudioExamples() { + return ; +} diff --git a/docs/src/modules/components/examples/coreExamples.ts b/docs/src/modules/components/examples/coreExamples.ts new file mode 100644 index 00000000000..71449535b2a --- /dev/null +++ b/docs/src/modules/components/examples/coreExamples.ts @@ -0,0 +1,118 @@ +import type { Example } from './examplesUtils'; + +const coreExamples = [ + { + title: 'Functional dashboard', + description: + 'This example shows you how to get started building a dashboard with Toolpad Core, Next.js App Router, Auth.js and Material UI components in a customized theme.', + src: '/static/toolpad/docs/core/functional-dashboard.png', + href: 'https://mui.com/toolpad/core/templates/nextjs-dashboard/', + srcDark: '/static/toolpad/docs/core/functional-dashboard-dark.png', + source: 'https://github.com/mui/toolpad/tree/master/examples/core/auth-nextjs-themed', + featured: true, + new: true, + codeSandbox: true, + stackBlitz: true, + }, + { + title: 'Vite with React Router and Firebase Auth', + description: + 'This app shows you to how to get started using Toolpad Core with Vite, React Router, and authentication using Firebase.', + src: '/static/toolpad/docs/core/firebase-vite-light.png', + srcDark: '/static/toolpad/docs/core/firebase-vite-dark.png', + source: 'https://github.com/mui/toolpad/tree/master/examples/core/firebase-vite', + // Show nothing + codeSandbox: false, + stackBlitz: false, + }, + { + title: 'Vite with React Router and mock authentication', + description: + 'This app shows you to how to get started using Toolpad Core with Vite, React Router and any external authentication provider.', + src: '/static/toolpad/docs/core/vite-react-router.png', + srcDark: '/static/toolpad/docs/core/vite-react-router.png', // TODO Fix + source: 'https://github.com/mui/toolpad/tree/master/examples/core/auth-vite', + codeSandbox: true, + // Show nothing + stackBlitz: false, + }, + { + title: 'Next.js App Router with Auth.js Passkey', + description: + 'This app shows you to how to get started using Toolpad Core with Auth.js Passkeys and the Next.js App Router.', + src: '/static/toolpad/docs/core/auth-next-passkey.png', + srcDark: '/static/toolpad/docs/core/auth-next-passkey-dark.png', + source: 'https://github.com/mui/toolpad/tree/master/examples/core/auth-nextjs-passkey/', + // Crash with Prisma + codeSandbox: false, + stackBlitz: false, + }, + { + title: 'Auth.js v4 with Next.js Pages Router', + description: + 'This app shows you to how to get started using Toolpad Core with Auth.js v4 and the Next.js Pages router.', + src: '/static/toolpad/docs/core/auth-next.png', + srcDark: '/static/toolpad/docs/core/auth-next-dark.png', + source: + 'https://github.com/mui/toolpad/tree/master/examples/core/auth-nextjs-pages-nextauth-4/', + codeSandbox: true, + // Show nothing + stackBlitz: false, + }, + { + title: 'Vite with React Router', + description: + 'This app shows you to how to get started using Toolpad Core with Vite and React Router.', + src: '/static/toolpad/docs/core/vite-react-router.png', + srcDark: '/static/toolpad/docs/core/vite-react-router.png', // TODO Fix + source: 'https://github.com/mui/toolpad/tree/master/examples/core/vite/', + codeSandbox: true, + // Show nothing + stackBlitz: false, + }, + { + title: 'Auth.js Magic Link with Next.js App Router', + description: + 'This app shows you to how to get started using Toolpad Core with Auth.js Magic Links and the Next.js App Router.', + src: '/static/toolpad/docs/core/auth-next.png', + srcDark: '/static/toolpad/docs/core/auth-next.png', // TODO Fix + source: 'https://github.com/mui/toolpad/tree/master/examples/core/auth-nextjs-email', + // Crash with Prisma + codeSandbox: false, + stackBlitz: false, + }, + { + title: 'Auth.js with Next.js Pages Router', + description: + 'This app shows you to how to get started using Toolpad Core with Auth.js and the Next.js Pages router.', + src: '/static/toolpad/docs/core/auth-next.png', + srcDark: '/static/toolpad/docs/core/auth-next-dark.png', + source: 'https://github.com/mui/toolpad/tree/master/examples/core/auth-nextjs-pages/', + // infinite redirection + codeSandbox: false, + stackBlitz: false, + }, + { + title: 'Auth.js with Next.js App Router', + description: + 'This app shows you to how to get started using Toolpad Core with Auth.js and the Next.js App Router.', + src: '/static/toolpad/docs/core/auth-next.png', + srcDark: '/static/toolpad/docs/core/auth-next-dark.png', + source: 'https://github.com/mui/toolpad/tree/master/examples/core/auth-nextjs/', + codeSandbox: true, + stackBlitz: true, + }, + { + title: 'Tutorial app', + description: + 'This app shows you to get started with Toolpad Core and use basic layout and navigation features.', + src: '/static/toolpad/docs/core/tutorial-1.png', + srcDark: '/static/toolpad/docs/core/tutorial-1.png', // TODO Fix + href: 'https://mui.com/toolpad/core/introduction/tutorial/', + source: 'https://github.com/mui/toolpad/tree/master/examples/core/tutorial/', + codeSandbox: true, + stackBlitz: true, + }, +] satisfies Example[]; + +export default coreExamples; diff --git a/docs/src/modules/components/examples/examplesUtils.ts b/docs/src/modules/components/examples/examplesUtils.ts new file mode 100644 index 00000000000..54404bbcf6a --- /dev/null +++ b/docs/src/modules/components/examples/examplesUtils.ts @@ -0,0 +1,31 @@ +// TODO move to docs-infra as a shared helper +/** + * This function allows to turn link from the docs to GitHub to be closer to permalink. + * Meaning, its purpose is so that we can version the docs while having it continue to work, or + * be able to introduce breaking changes on a next active branch without breaking the docs experience + * for stable version docs users. + */ +export function versionGitHubLink(href: string) { + // Bailed out, not a link that needs to be handled. + if (!href.startsWith(`${process.env.SOURCE_CODE_REPO}/tree/master`)) { + return href; + } + + return href.replace( + `${process.env.SOURCE_CODE_REPO}/tree/master`, + `${process.env.SOURCE_CODE_REPO}/blob/v${process.env.LIB_VERSION}`, + ); +} + +export interface Example { + title: string; + description: string; + src: string; + srcDark: string; + href?: string; + source: string; + codeSandbox?: boolean; + stackBlitz?: boolean; + new?: boolean; + featured?: boolean; +} diff --git a/examples/core/auth-nextjs-email/README.md b/examples/core/auth-nextjs-email/README.md index b31c41650a4..da6cc6f9471 100644 --- a/examples/core/auth-nextjs-email/README.md +++ b/examples/core/auth-nextjs-email/README.md @@ -1,4 +1,4 @@ -# Toolpad Core Next.js App Router app with email provider +# Toolpad Core - Next.js App Router app with email provider This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). diff --git a/examples/core/auth-nextjs-passkey/README.md b/examples/core/auth-nextjs-passkey/README.md index d55433ada12..7bf46b3ea61 100644 --- a/examples/core/auth-nextjs-passkey/README.md +++ b/examples/core/auth-nextjs-passkey/README.md @@ -1,4 +1,4 @@ -# Toolpad Core Playground - Next.js App Router with Passkey +# Toolpad Core - Next.js App Router with Passkey This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). diff --git a/examples/core/auth-nextjs-themed/README.md b/examples/core/auth-nextjs-themed/README.md index baa6adbed70..cb926fe14dc 100644 --- a/examples/core/auth-nextjs-themed/README.md +++ b/examples/core/auth-nextjs-themed/README.md @@ -1,4 +1,4 @@ -# Create Toolpad App +# Toolpad Core - Create Toolpad App This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-toolpad-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). @@ -16,7 +16,7 @@ Open [http://localhost:3000](http://localhost:3000) with your browser to see the ## Run on CodeSandbox -Run this example on CodeSandbox [here](https://codesandbox.io/s/github/mui/toolpad/tree/master/examples/core/auth-nextjs-themed). +Run this example on CodeSandbox [here](https://codesandbox.io/p/sandbox/github/mui/toolpad/tree/master/examples/core/auth-nextjs-themed). ## Clone using `create-toolpad-app` diff --git a/examples/core/auth-vite/README.md b/examples/core/auth-vite/README.md index 77643b462dd..f84b2a951b3 100644 --- a/examples/core/auth-vite/README.md +++ b/examples/core/auth-vite/README.md @@ -1,4 +1,4 @@ -# React + TypeScript + Vite +# Toolpad Core - Vite with React Router and mock authentication This template provides a minimal setup to get React working in Vite with HMR. diff --git a/examples/core/firebase-vite/README.md b/examples/core/firebase-vite/README.md index 72355db4e34..49e6fa69d16 100644 --- a/examples/core/firebase-vite/README.md +++ b/examples/core/firebase-vite/README.md @@ -1,4 +1,4 @@ -# React + TypeScript + Vite +# Toolpad Core - Vite with React Router and Firebase Auth This template provides a minimal setup to get React working in Vite with HMR, and authentication with Firebase. diff --git a/examples/core/vite/README.md b/examples/core/vite/README.md index 5f2dc7485c8..1ef91e1e4f0 100644 --- a/examples/core/vite/README.md +++ b/examples/core/vite/README.md @@ -1,4 +1,4 @@ -# Toolpad Core - Vite & React Router +# Toolpad Core - Vite with React Router This example provides a minimal setup to get Toolpad Core working in Vite with HMR, as well as routing with React Router. diff --git a/package.json b/package.json index dcc79114c93..be2d38330c2 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,7 @@ "@mui/internal-scripts": "1.0.30", "@mui/monorepo": "github:mui/material-ui#3570a80975bbd83bfcd0927c34faaf5fe777b5ff", "@mui/x-charts": "7.22.2", - "@next/eslint-plugin-next": "14.2.20", + "@next/eslint-plugin-next": "14.2.21", "@playwright/test": "1.47.2", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "16.0.1", @@ -71,12 +71,13 @@ "@types/yargs": "17.0.33", "@typescript-eslint/eslint-plugin": "7.18.0", "@typescript-eslint/parser": "7.18.0", - "@vitest/coverage-v8": "2.1.7", + "@vitest/coverage-v8": "2.1.8", "babel-plugin-react-remove-properties": "0.3.0", "babel-plugin-transform-react-remove-prop-types": "0.4.24", "chalk": "5.3.0", "concurrently": "9.1.0", "css-mediaquery": "^0.1.2", + "danger": "^12.3.3", "eslint": "8.57.1", "eslint-config-airbnb": "19.0.4", "eslint-config-airbnb-typescript": "18.0.0", @@ -114,7 +115,7 @@ }, "dependencies": { "@types/lodash": "4.17.13", - "@vitest/browser": "2.1.7", + "@vitest/browser": "2.1.8", "archiver": "7.0.1", "cross-env": "7.0.3", "dotenv-cli": "7.4.4", @@ -125,7 +126,7 @@ "semver": "7.6.3", "tsup": "8.3.5", "tsx": "4.19.2", - "vitest": "2.1.7", + "vitest": "2.1.8", "yargs": "17.7.2", "zod": "3.23.8", "zod-to-json-schema": "3.23.5" diff --git a/packages/create-toolpad-app/src/generateProject.ts b/packages/create-toolpad-app/src/generateProject.ts index 2fa766bdd23..97b71b55b76 100644 --- a/packages/create-toolpad-app/src/generateProject.ts +++ b/packages/create-toolpad-app/src/generateProject.ts @@ -10,7 +10,7 @@ import ordersPage from './templates/ordersPage'; import packageJson from './templates/packageJson'; import indexPage from './templates/indexPage'; -// App router specific files +// App Router specific files import rootLayout from './templates/nextjs-app/rootLayout'; import dashboardLayout from './templates/nextjs-app/dashboardLayout'; @@ -27,11 +27,11 @@ import prisma from './templates/auth/prisma'; import env from './templates/auth/env'; import schemaPrisma from './templates/auth/schemaPrisma'; -// Auth files for app router +// Auth files for App Router import signInPage from './templates/auth/nextjs-app/signInPage'; import signInAction from './templates/auth/nextjs-app/actions'; -// Auth files for pages router +// Auth files for Pages Router import signInPagePagesRouter from './templates/auth/nextjs-pages/signIn'; import { GenerateProjectOptions } from './types'; @@ -72,7 +72,7 @@ export default function generateProject( ['auth.ts', { content: auth(options) }], ['.env.local', { content: envLocal(options) }], ['middleware.ts', { content: middleware }], - // next-auth v5 does not provide an API route, so this file must be in the app router + // next-auth v5 does not provide an API route, so this file must be in the App Router // even if the rest of the app is using pages router // https://authjs.dev/getting-started/installation#configure ['app/api/auth/[...nextAuth]/route.ts', { content: routeHandler }], diff --git a/packages/toolpad-core/package.json b/packages/toolpad-core/package.json index b7a2b2123c4..572ece518dc 100644 --- a/packages/toolpad-core/package.json +++ b/packages/toolpad-core/package.json @@ -72,13 +72,13 @@ "@types/react": "18.3.18", "@types/react-dom": "18.3.1", "@types/sinon": "^17.0.3", - "@vitest/browser": "2.1.7", - "next": "^15.0.4", + "@vitest/browser": "2.1.8", + "next": "^15.1.2", "next-router-mock": "^0.9.13", "playwright": "^1.47.2", "react-router-dom": "6.26.2", "sinon": "^19.0.2", - "vitest": "2.1.7" + "vitest": "2.1.8" }, "peerDependencies": { "@mui/icons-material": "5 - 6", diff --git a/packages/toolpad-utils/package.json b/packages/toolpad-utils/package.json index ece090915c8..d29fd9c8904 100644 --- a/packages/toolpad-utils/package.json +++ b/packages/toolpad-utils/package.json @@ -71,6 +71,6 @@ "@types/react": "18.3.18", "@types/react-is": "18.3.0", "@types/title": "3.4.3", - "vitest": "2.1.7" + "vitest": "2.1.8" } } diff --git a/playground/nextjs-pages/package.json b/playground/nextjs-pages/package.json index 9dcedb29c27..f48669558d0 100644 --- a/playground/nextjs-pages/package.json +++ b/playground/nextjs-pages/package.json @@ -15,8 +15,8 @@ "@toolpad/core": "workspace:*", "@types/react": "18.3.18", "@types/react-dom": "18.3.1", - "eslint-config-next": "15.0.4", - "next": "15.0.4", + "eslint-config-next": "15.1.2", + "next": "15.1.2", "next-auth": "5.0.0-beta.25", "react": "18.3.1", "react-dom": "18.3.1" diff --git a/playground/nextjs/package.json b/playground/nextjs/package.json index 02f1ae24cd1..1a43698a32f 100644 --- a/playground/nextjs/package.json +++ b/playground/nextjs/package.json @@ -16,8 +16,8 @@ "@types/node": "^20.17.6", "@types/react": "18.3.18", "@types/react-dom": "18.3.1", - "eslint-config-next": "15.0.4", - "next": "15.0.4", + "eslint-config-next": "15.1.2", + "next": "15.1.2", "next-auth": "5.0.0-beta.25", "react": "18.3.1", "react-dom": "18.3.1" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c0cf277b1c5..4c072d4075b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,8 +16,8 @@ importers: specifier: 4.17.13 version: 4.17.13 '@vitest/browser': - specifier: 2.1.7 - version: 2.1.7(@types/node@20.17.6)(playwright@1.48.2)(typescript@5.7.2)(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0))(vitest@2.1.7) + specifier: 2.1.8 + version: 2.1.8(@types/node@20.17.6)(playwright@1.48.2)(typescript@5.7.2)(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0))(vitest@2.1.8) archiver: specifier: 7.0.1 version: 7.0.1 @@ -49,8 +49,8 @@ importers: specifier: 4.19.2 version: 4.19.2 vitest: - specifier: 2.1.7 - version: 2.1.7(@types/node@20.17.6)(@vitest/browser@2.1.7)(jsdom@25.0.1)(msw@2.6.5(@types/node@20.17.6)(typescript@5.7.2))(terser@5.36.0) + specifier: 2.1.8 + version: 2.1.8(@types/node@20.17.6)(@vitest/browser@2.1.8)(jsdom@25.0.1)(msw@2.6.5(@types/node@20.17.6)(typescript@5.7.2))(terser@5.36.0) yargs: specifier: 17.7.2 version: 17.7.2 @@ -107,8 +107,8 @@ importers: specifier: 7.22.2 version: 7.22.2(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1))(@mui/material@6.2.1(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mui/system@6.2.1(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@next/eslint-plugin-next': - specifier: 14.2.20 - version: 14.2.20 + specifier: 14.2.21 + version: 14.2.21 '@playwright/test': specifier: 1.47.2 version: 1.47.2 @@ -146,8 +146,8 @@ importers: specifier: 7.18.0 version: 7.18.0(eslint@8.57.1)(typescript@5.7.2) '@vitest/coverage-v8': - specifier: 2.1.7 - version: 2.1.7(@vitest/browser@2.1.7)(vitest@2.1.7) + specifier: 2.1.8 + version: 2.1.8(@vitest/browser@2.1.8)(vitest@2.1.8) babel-plugin-react-remove-properties: specifier: 0.3.0 version: 0.3.0 @@ -163,6 +163,9 @@ importers: css-mediaquery: specifier: ^0.1.2 version: 0.1.2 + danger: + specifier: ^12.3.3 + version: 12.3.3(encoding@0.1.13) eslint: specifier: 8.57.1 version: 8.57.1 @@ -198,7 +201,7 @@ importers: version: 7.37.2(eslint@8.57.1) eslint-plugin-react-compiler: specifier: latest - version: 19.0.0-beta-b2e8e9c-20241220(eslint@8.57.1) + version: 19.0.0-beta-63e3235-20250105(eslint@8.57.1) eslint-plugin-react-hooks: specifier: 5.0.0 version: 5.0.0(eslint@8.57.1) @@ -261,10 +264,10 @@ importers: version: 5.0.0 vitest-dom: specifier: 0.1.1 - version: 0.1.1(vitest@2.1.7) + version: 0.1.1(vitest@2.1.8) vitest-fail-on-console: specifier: 0.7.1 - version: 0.7.1(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0))(vitest@2.1.7) + version: 0.7.1(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0))(vitest@2.1.8) docs: dependencies: @@ -297,7 +300,7 @@ importers: version: 5.0.0-beta.67(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/docs': specifier: 6.2.1 - version: 6.2.1(x43f62rk27uyul4byumexdvu2u) + version: 6.2.1(wopobyujwuhvxg6p5iwz22urga) '@mui/icons-material': specifier: 6.2.1 version: 6.2.1(@mui/material@6.2.1(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.18)(react@18.3.1) @@ -315,7 +318,7 @@ importers: version: 6.2.1(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material-nextjs': specifier: 6.2.1 - version: 6.2.1(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/server@11.11.0)(@types/react@18.3.18)(next@14.2.20(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 6.2.1(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/server@11.11.0)(@types/react@18.3.18)(next@14.2.21(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@mui/styles': specifier: 6.2.1 version: 6.2.1(@types/react@18.3.18)(react@18.3.1) @@ -422,8 +425,8 @@ importers: specifier: 7.7.0 version: 7.7.0(react@18.3.1) next: - specifier: ^14.2.20 - version: 14.2.20(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^14.2.21 + version: 14.2.21(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) nprogress: specifier: 0.2.0 version: 0.2.0 @@ -657,14 +660,14 @@ importers: specifier: ^17.0.3 version: 17.0.3 '@vitest/browser': - specifier: 2.1.7 - version: 2.1.7(@types/node@20.17.6)(playwright@1.48.2)(typescript@5.7.2)(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0))(vitest@2.1.7) + specifier: 2.1.8 + version: 2.1.8(@types/node@20.17.6)(playwright@1.48.2)(typescript@5.7.2)(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0))(vitest@2.1.8) next: - specifier: ^15.0.4 - version: 15.0.4(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^15.1.2 + version: 15.1.2(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-router-mock: specifier: ^0.9.13 - version: 0.9.13(next@15.0.4(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 0.9.13(next@15.1.2(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) playwright: specifier: ^1.47.2 version: 1.48.2 @@ -675,8 +678,8 @@ importers: specifier: ^19.0.2 version: 19.0.2 vitest: - specifier: 2.1.7 - version: 2.1.7(@types/node@20.17.6)(@vitest/browser@2.1.7)(jsdom@25.0.1)(msw@2.6.5(@types/node@20.17.6)(typescript@5.7.2))(terser@5.36.0) + specifier: 2.1.8 + version: 2.1.8(@types/node@20.17.6)(@vitest/browser@2.1.8)(jsdom@25.0.1)(msw@2.6.5(@types/node@20.17.6)(typescript@5.7.2))(terser@5.36.0) publishDirectory: build packages/toolpad-studio: @@ -1196,8 +1199,8 @@ importers: specifier: 3.4.3 version: 3.4.3 vitest: - specifier: 2.1.7 - version: 2.1.7(@types/node@20.17.6)(@vitest/browser@2.1.7)(jsdom@25.0.1)(msw@2.6.5(@types/node@20.17.6)(typescript@5.7.2))(terser@5.36.0) + specifier: 2.1.8 + version: 2.1.8(@types/node@20.17.6)(@vitest/browser@2.1.8)(jsdom@25.0.1)(msw@2.6.5(@types/node@20.17.6)(typescript@5.7.2))(terser@5.36.0) playground/nextjs: devDependencies: @@ -1215,7 +1218,7 @@ importers: version: 6.2.1(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material-nextjs': specifier: 6.2.1 - version: 6.2.1(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/server@11.11.0)(@types/react@18.3.18)(next@15.0.4(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 6.2.1(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/server@11.11.0)(@types/react@18.3.18)(next@15.1.2(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@toolpad/core': specifier: workspace:* version: link:../../packages/toolpad-core/build @@ -1229,14 +1232,14 @@ importers: specifier: 18.3.1 version: 18.3.1 eslint-config-next: - specifier: 15.0.4 - version: 15.0.4(eslint-import-resolver-webpack@0.13.9(eslint-plugin-import@2.31.0)(webpack@5.96.1(esbuild@0.24.2)))(eslint@8.57.1)(typescript@5.7.2) + specifier: 15.1.2 + version: 15.1.2(eslint-import-resolver-webpack@0.13.9(eslint-plugin-import@2.31.0)(webpack@5.96.1(esbuild@0.24.2)))(eslint@8.57.1)(typescript@5.7.2) next: - specifier: 15.0.4 - version: 15.0.4(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 15.1.2 + version: 15.1.2(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-auth: specifier: 5.0.0-beta.25 - version: 5.0.0-beta.25(next@15.0.4(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 5.0.0-beta.25(next@15.1.2(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) react: specifier: 18.3.1 version: 18.3.1 @@ -1260,7 +1263,7 @@ importers: version: 6.2.1(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material-nextjs': specifier: 6.2.1 - version: 6.2.1(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/server@11.11.0)(@types/react@18.3.18)(next@15.0.4(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 6.2.1(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/server@11.11.0)(@types/react@18.3.18)(next@15.1.2(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@toolpad/core': specifier: workspace:* version: link:../../packages/toolpad-core/build @@ -1271,14 +1274,14 @@ importers: specifier: 18.3.1 version: 18.3.1 eslint-config-next: - specifier: 15.0.4 - version: 15.0.4(eslint-import-resolver-webpack@0.13.9(eslint-plugin-import@2.31.0)(webpack@5.96.1(esbuild@0.24.2)))(eslint@8.57.1)(typescript@5.7.2) + specifier: 15.1.2 + version: 15.1.2(eslint-import-resolver-webpack@0.13.9(eslint-plugin-import@2.31.0)(webpack@5.96.1(esbuild@0.24.2)))(eslint@8.57.1)(typescript@5.7.2) next: - specifier: 15.0.4 - version: 15.0.4(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 15.1.2 + version: 15.1.2(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-auth: specifier: 5.0.0-beta.25 - version: 5.0.0-beta.25(next@15.0.4(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 5.0.0-beta.25(next@15.1.2(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) react: specifier: 18.3.1 version: 18.3.1 @@ -1356,7 +1359,7 @@ importers: version: 18.3.1(react@18.3.1) recharts: specifier: alpha - version: 2.13.0-alpha.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 3.0.0-alpha.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react-is@19.0.0)(react@18.3.1)(redux@5.0.1) packages: @@ -2693,6 +2696,18 @@ packages: '@floating-ui/utils@0.2.8': resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==} + '@gitbeaker/core@38.12.1': + resolution: {integrity: sha512-8XMVcBIdVAAoxn7JtqmZ2Ee8f+AZLcCPmqEmPFOXY2jPS84y/DERISg/+sbhhb18iRy+ZsZhpWgQ/r3CkYNJOQ==} + engines: {node: '>=18.0.0'} + + '@gitbeaker/requester-utils@38.12.1': + resolution: {integrity: sha512-Rc/DgngS0YPN+AY1s9UnexKSy4Lh0bkQVAq9p7PRbRpXb33SlTeCg8eg/8+A/mrMcHgYmP0XhH8lkizyA5tBUQ==} + engines: {node: '>=18.0.0'} + + '@gitbeaker/rest@38.12.1': + resolution: {integrity: sha512-9KMSDtJ/sIov+5pcH+CAfiJXSiuYgN0KLKQFg0HHWR2DwcjGYkcbmhoZcWsaOWOqq4kihN1l7wX91UoRxxKKTQ==} + engines: {node: '>=18.0.0'} + '@googleapis/drive@8.14.0': resolution: {integrity: sha512-AOokfpP6pCdcJXWA8khaCEgbGpWYavWTdAAhL4idbbf2VCQcJ2f7vPalAYNu6a4Sfj0Ly4Ehnd1xw9J9TixB1A==} engines: {node: '>=12.0.0'} @@ -3494,116 +3509,116 @@ packages: resolution: {integrity: sha512-q3L9i3HoNfz0SGpTIS4zTcKBbRkxzCRpd169eyiTuk3IwcPC3/85mzLHranlKo2b+HYT0gu37YxGB45aD8A3Tw==} engines: {node: '>=18.0.0'} - '@next/env@14.2.20': - resolution: {integrity: sha512-JfDpuOCB0UBKlEgEy/H6qcBSzHimn/YWjUHzKl1jMeUO+QVRdzmTTl8gFJaNO87c8DXmVKhFCtwxQ9acqB3+Pw==} + '@next/env@14.2.21': + resolution: {integrity: sha512-lXcwcJd5oR01tggjWJ6SrNNYFGuOOMB9c251wUNkjCpkoXOPkDeF/15c3mnVlBqrW4JJXb2kVxDFhC4GduJt2A==} - '@next/env@15.0.4': - resolution: {integrity: sha512-WNRvtgnRVDD4oM8gbUcRc27IAhaL4eXQ/2ovGbgLnPGUvdyDr8UdXP4Q/IBDdAdojnD2eScryIDirv0YUCjUVw==} + '@next/env@15.1.2': + resolution: {integrity: sha512-Hm3jIGsoUl6RLB1vzY+dZeqb+/kWPZ+h34yiWxW0dV87l8Im/eMOwpOA+a0L78U0HM04syEjXuRlCozqpwuojQ==} - '@next/eslint-plugin-next@14.2.20': - resolution: {integrity: sha512-T0JRi706KLbvR1Uc46t56VtawbhR/igdBagzOrA7G+vv4rvjwnlu/Y4/Iq6X9TDVj5UZjyot4lUdkNd3V2kLhw==} + '@next/eslint-plugin-next@14.2.21': + resolution: {integrity: sha512-bxfiExnMkpwo4bBhCqnDhdgFyxSp6Xt6xu4Ne7En6MpgqwiER95Or+q1WDUDX4e888taeIAdPIAVaY+Wv0kiwQ==} - '@next/eslint-plugin-next@15.0.4': - resolution: {integrity: sha512-rbsF17XGzHtR7SDWzWpavSfum3/UdnF8bAaisnKwP//si3KWPTedVUsflAdjyK1zW3rweBjbALfKcavFneLGvg==} + '@next/eslint-plugin-next@15.1.2': + resolution: {integrity: sha512-sgfw3+WdaYOGPKCvM1L+UucBmRfh8V2Ygefp7ELON0+0vY7uohQwXXnVWg3rY7mXDKharQR3o7uedpfvnU2hlQ==} - '@next/swc-darwin-arm64@14.2.20': - resolution: {integrity: sha512-WDfq7bmROa5cIlk6ZNonNdVhKmbCv38XteVFYsxea1vDJt3SnYGgxLGMTXQNfs5OkFvAhmfKKrwe7Y0Hs+rWOg==} + '@next/swc-darwin-arm64@14.2.21': + resolution: {integrity: sha512-HwEjcKsXtvszXz5q5Z7wCtrHeTTDSTgAbocz45PHMUjU3fBYInfvhR+ZhavDRUYLonm53aHZbB09QtJVJj8T7g==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-arm64@15.0.4': - resolution: {integrity: sha512-QecQXPD0yRHxSXWL5Ff80nD+A56sUXZG9koUsjWJwA2Z0ZgVQfuy7gd0/otjxoOovPVHR2eVEvPMHbtZP+pf9w==} + '@next/swc-darwin-arm64@15.1.2': + resolution: {integrity: sha512-b9TN7q+j5/7+rGLhFAVZiKJGIASuo8tWvInGfAd8wsULjB1uNGRCj1z1WZwwPWzVQbIKWFYqc+9L7W09qwt52w==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@14.2.20': - resolution: {integrity: sha512-XIQlC+NAmJPfa2hruLvr1H1QJJeqOTDV+v7tl/jIdoFvqhoihvSNykLU/G6NMgoeo+e/H7p/VeWSOvMUHKtTIg==} + '@next/swc-darwin-x64@14.2.21': + resolution: {integrity: sha512-TSAA2ROgNzm4FhKbTbyJOBrsREOMVdDIltZ6aZiKvCi/v0UwFmwigBGeqXDA97TFMpR3LNNpw52CbVelkoQBxA==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-darwin-x64@15.0.4': - resolution: {integrity: sha512-pb7Bye3y1Og3PlCtnz2oO4z+/b3pH2/HSYkLbL0hbVuTGil7fPen8/3pyyLjdiTLcFJ+ymeU3bck5hd4IPFFCA==} + '@next/swc-darwin-x64@15.1.2': + resolution: {integrity: sha512-caR62jNDUCU+qobStO6YJ05p9E+LR0EoXh1EEmyU69cYydsAy7drMcOlUlRtQihM6K6QfvNwJuLhsHcCzNpqtA==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@14.2.20': - resolution: {integrity: sha512-pnzBrHTPXIMm5QX3QC8XeMkpVuoAYOmyfsO4VlPn+0NrHraNuWjdhe+3xLq01xR++iCvX+uoeZmJDKcOxI201Q==} + '@next/swc-linux-arm64-gnu@14.2.21': + resolution: {integrity: sha512-0Dqjn0pEUz3JG+AImpnMMW/m8hRtl1GQCNbO66V1yp6RswSTiKmnHf3pTX6xMdJYSemf3O4Q9ykiL0jymu0TuA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-gnu@15.0.4': - resolution: {integrity: sha512-12oSaBFjGpB227VHzoXF3gJoK2SlVGmFJMaBJSu5rbpaoT5OjP5OuCLuR9/jnyBF1BAWMs/boa6mLMoJPRriMA==} + '@next/swc-linux-arm64-gnu@15.1.2': + resolution: {integrity: sha512-fHHXBusURjBmN6VBUtu6/5s7cCeEkuGAb/ZZiGHBLVBXMBy4D5QpM8P33Or8JD1nlOjm/ZT9sEE5HouQ0F+hUA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@14.2.20': - resolution: {integrity: sha512-WhJJAFpi6yqmUx1momewSdcm/iRXFQS0HU2qlUGlGE/+98eu7JWLD5AAaP/tkK1mudS/rH2f9E3WCEF2iYDydQ==} + '@next/swc-linux-arm64-musl@14.2.21': + resolution: {integrity: sha512-Ggfw5qnMXldscVntwnjfaQs5GbBbjioV4B4loP+bjqNEb42fzZlAaK+ldL0jm2CTJga9LynBMhekNfV8W4+HBw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@15.0.4': - resolution: {integrity: sha512-QARO88fR/a+wg+OFC3dGytJVVviiYFEyjc/Zzkjn/HevUuJ7qGUUAUYy5PGVWY1YgTzeRYz78akQrVQ8r+sMjw==} + '@next/swc-linux-arm64-musl@15.1.2': + resolution: {integrity: sha512-9CF1Pnivij7+M3G74lxr+e9h6o2YNIe7QtExWq1KUK4hsOLTBv6FJikEwCaC3NeYTflzrm69E5UfwEAbV2U9/g==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@14.2.20': - resolution: {integrity: sha512-ao5HCbw9+iG1Kxm8XsGa3X174Ahn17mSYBQlY6VGsdsYDAbz/ZP13wSLfvlYoIDn1Ger6uYA+yt/3Y9KTIupRg==} + '@next/swc-linux-x64-gnu@14.2.21': + resolution: {integrity: sha512-uokj0lubN1WoSa5KKdThVPRffGyiWlm/vCc/cMkWOQHw69Qt0X1o3b2PyLLx8ANqlefILZh1EdfLRz9gVpG6tg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-gnu@15.0.4': - resolution: {integrity: sha512-Z50b0gvYiUU1vLzfAMiChV8Y+6u/T2mdfpXPHraqpypP7yIT2UV9YBBhcwYkxujmCvGEcRTVWOj3EP7XW/wUnw==} + '@next/swc-linux-x64-gnu@15.1.2': + resolution: {integrity: sha512-tINV7WmcTUf4oM/eN3Yuu/f8jQ5C6AkueZPKeALs/qfdfX57eNv4Ij7rt0SA6iZ8+fMobVfcFVv664Op0caCCg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@14.2.20': - resolution: {integrity: sha512-CXm/kpnltKTT7945np6Td3w7shj/92TMRPyI/VvveFe8+YE+/YOJ5hyAWK5rpx711XO1jBCgXl211TWaxOtkaA==} + '@next/swc-linux-x64-musl@14.2.21': + resolution: {integrity: sha512-iAEBPzWNbciah4+0yI4s7Pce6BIoxTQ0AGCkxn/UBuzJFkYyJt71MadYQkjPqCQCJAFQ26sYh7MOKdU+VQFgPg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@15.0.4': - resolution: {integrity: sha512-7H9C4FAsrTAbA/ENzvFWsVytqRYhaJYKa2B3fyQcv96TkOGVMcvyS6s+sj4jZlacxxTcn7ygaMXUPkEk7b78zw==} + '@next/swc-linux-x64-musl@15.1.2': + resolution: {integrity: sha512-jf2IseC4WRsGkzeUw/cK3wci9pxR53GlLAt30+y+B+2qAQxMw6WAC3QrANIKxkcoPU3JFh/10uFfmoMDF9JXKg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@14.2.20': - resolution: {integrity: sha512-upJn2HGQgKNDbXVfIgmqT2BN8f3z/mX8ddoyi1I565FHbfowVK5pnMEwauvLvaJf4iijvuKq3kw/b6E9oIVRWA==} + '@next/swc-win32-arm64-msvc@14.2.21': + resolution: {integrity: sha512-plykgB3vL2hB4Z32W3ktsfqyuyGAPxqwiyrAi2Mr8LlEUhNn9VgkiAl5hODSBpzIfWweX3er1f5uNpGDygfQVQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-arm64-msvc@15.0.4': - resolution: {integrity: sha512-Z/v3WV5xRaeWlgJzN9r4PydWD8sXV35ywc28W63i37G2jnUgScA4OOgS8hQdiXLxE3gqfSuHTicUhr7931OXPQ==} + '@next/swc-win32-arm64-msvc@15.1.2': + resolution: {integrity: sha512-wvg7MlfnaociP7k8lxLX4s2iBJm4BrNiNFhVUY+Yur5yhAJHfkS8qPPeDEUH8rQiY0PX3u/P7Q/wcg6Mv6GSAA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-ia32-msvc@14.2.20': - resolution: {integrity: sha512-igQW/JWciTGJwj3G1ipalD2V20Xfx3ywQy17IV0ciOUBbFhNfyU1DILWsTi32c8KmqgIDviUEulW/yPb2FF90w==} + '@next/swc-win32-ia32-msvc@14.2.21': + resolution: {integrity: sha512-w5bacz4Vxqrh06BjWgua3Yf7EMDb8iMcVhNrNx8KnJXt8t+Uu0Zg4JHLDL/T7DkTCEEfKXO/Er1fcfWxn2xfPA==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@next/swc-win32-x64-msvc@14.2.20': - resolution: {integrity: sha512-AFmqeLW6LtxeFTuoB+MXFeM5fm5052i3MU6xD0WzJDOwku6SkZaxb1bxjBaRC8uNqTRTSPl0yMFtjNowIVI67w==} + '@next/swc-win32-x64-msvc@14.2.21': + resolution: {integrity: sha512-sT6+llIkzpsexGYZq8cjjthRyRGe5cJVhqh12FmlbxHqna6zsDDK8UNaV7g41T6atFHCJUPeLb3uyAwrBwy0NA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@next/swc-win32-x64-msvc@15.0.4': - resolution: {integrity: sha512-NGLchGruagh8lQpDr98bHLyWJXOBSmkEAfK980OiNBa7vNm6PsNoPvzTfstT78WyOeMRQphEQ455rggd7Eo+Dw==} + '@next/swc-win32-x64-msvc@15.1.2': + resolution: {integrity: sha512-D3cNA8NoT3aWISWmo7HF5Eyko/0OdOO+VagkoJuiTk7pyX3P/b+n8XA/MYvyR+xSVcbKn68B1rY9fgqjNISqzQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -3757,28 +3772,48 @@ packages: cpu: [x64] os: [win32] + '@octokit/auth-token@2.5.0': + resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==} + '@octokit/auth-token@3.0.4': resolution: {integrity: sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==} engines: {node: '>= 14'} + '@octokit/core@3.6.0': + resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==} + '@octokit/core@4.2.4': resolution: {integrity: sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==} engines: {node: '>= 14'} + '@octokit/endpoint@6.0.12': + resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==} + '@octokit/endpoint@7.0.6': resolution: {integrity: sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==} engines: {node: '>= 14'} + '@octokit/graphql@4.8.0': + resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==} + '@octokit/graphql@5.0.6': resolution: {integrity: sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw==} engines: {node: '>= 14'} + '@octokit/openapi-types@12.11.0': + resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==} + '@octokit/openapi-types@18.1.1': resolution: {integrity: sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw==} '@octokit/plugin-enterprise-rest@6.0.1': resolution: {integrity: sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==} + '@octokit/plugin-paginate-rest@2.21.3': + resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==} + peerDependencies: + '@octokit/core': '>=2' + '@octokit/plugin-paginate-rest@6.1.2': resolution: {integrity: sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==} engines: {node: '>= 14'} @@ -3790,20 +3825,34 @@ packages: peerDependencies: '@octokit/core': '>=3' + '@octokit/plugin-rest-endpoint-methods@5.16.2': + resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==} + peerDependencies: + '@octokit/core': '>=3' + '@octokit/plugin-rest-endpoint-methods@7.2.3': resolution: {integrity: sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA==} engines: {node: '>= 14'} peerDependencies: '@octokit/core': '>=3' + '@octokit/request-error@2.1.0': + resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==} + '@octokit/request-error@3.0.3': resolution: {integrity: sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==} engines: {node: '>= 14'} + '@octokit/request@5.6.3': + resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==} + '@octokit/request@6.2.8': resolution: {integrity: sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==} engines: {node: '>= 14'} + '@octokit/rest@18.12.0': + resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==} + '@octokit/rest@19.0.11': resolution: {integrity: sha512-m2a9VhaP5/tUw8FwfnW2ICXlXpLPIqxtg3XcAiGMLj/Xhw3RSBfZ8le/466ktO1Gcjr8oXudGnHhxV1TXJgFxw==} engines: {node: '>= 14'} @@ -3814,6 +3863,9 @@ packages: '@octokit/types@10.0.0': resolution: {integrity: sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==} + '@octokit/types@6.41.0': + resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==} + '@octokit/types@9.3.2': resolution: {integrity: sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==} @@ -3883,6 +3935,17 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@reduxjs/toolkit@2.5.0': + resolution: {integrity: sha512-awNe2oTodsZ6LmRqmkFhtb/KH03hUhxOamEQy411m3Njj3BbFvoBovxo4Q1cBWnV1ErprVj9MlF0UPXkng0eyg==} + peerDependencies: + react: ^16.9.0 || ^17.0.0 || ^18 || ^19 + react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0 + peerDependenciesMeta: + react: + optional: true + react-redux: + optional: true + '@remix-run/router@1.19.2': resolution: {integrity: sha512-baiMx18+IMuD1yyvOGaHM9QrVUPGGG0jC+z+IPHnRJWUAUvaKuWKyE8gjDj2rzv3sz9zOGoRSPgeBVHRhZnBlA==} engines: {node: '>=14.0.0'} @@ -4060,8 +4123,8 @@ packages: '@swc/counter@0.1.3': resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - '@swc/helpers@0.5.13': - resolution: {integrity: sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==} + '@swc/helpers@0.5.15': + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} '@swc/helpers@0.5.5': resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} @@ -4112,6 +4175,10 @@ packages: peerDependencies: '@testing-library/dom': '>=7.21.4' + '@tootallnate/once@2.0.0': + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + '@trendmicro/react-interpolate@0.5.5': resolution: {integrity: sha512-PjkRT3XeK30kGjmSRn//4L106ekZfFkjqQ85G8K1hDdT7aYdng0Hz1MSLJjW9XNiljdTNB8D8Sm4tiBhdz5P3A==} peerDependencies: @@ -4415,6 +4482,9 @@ packages: '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + '@types/use-sync-external-store@0.0.6': + resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==} + '@types/webidl-conversions@7.0.3': resolution: {integrity: sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==} @@ -4542,12 +4612,12 @@ packages: peerDependencies: vite: ^4.2.0 || ^5.0.0 || ^6.0.0 - '@vitest/browser@2.1.7': - resolution: {integrity: sha512-jR5rNWDH8v50tzcwM7R1DGYu/3MNmXFW/BaNJkhkOee3GJ0MfT1KNWNAFWyjSExPUPnFqlijBPWobG3rTLdPeg==} + '@vitest/browser@2.1.8': + resolution: {integrity: sha512-OWVvEJThRgxlNMYNVLEK/9qVkpRcLvyuKLngIV3Hob01P56NjPHprVBYn+rx4xAJudbM9yrCrywPIEuA3Xyo8A==} peerDependencies: playwright: '*' safaridriver: '*' - vitest: 2.1.7 + vitest: 2.1.8 webdriverio: '*' peerDependenciesMeta: playwright: @@ -4557,20 +4627,20 @@ packages: webdriverio: optional: true - '@vitest/coverage-v8@2.1.7': - resolution: {integrity: sha512-deQ4J+yu6nEjmEfcBndbgrRM95IZoRpV1dDVRbZhjUcgYVZz/Wc4YaLiDDt9Sy5qcikrJUZMlrUxDy7dBojebg==} + '@vitest/coverage-v8@2.1.8': + resolution: {integrity: sha512-2Y7BPlKH18mAZYAW1tYByudlCYrQyl5RGvnnDYJKW5tCiO5qg3KSAy3XAxcxKz900a0ZXxWtKrMuZLe3lKBpJw==} peerDependencies: - '@vitest/browser': 2.1.7 - vitest: 2.1.7 + '@vitest/browser': 2.1.8 + vitest: 2.1.8 peerDependenciesMeta: '@vitest/browser': optional: true - '@vitest/expect@2.1.7': - resolution: {integrity: sha512-folWk4qQDEedgUyvaZw94LIJuNLoDtY+rhKhhNy0csdwifn/pQz8EWVRnyrW3j0wMpy+xwJT8WiwiYxk+i+s7w==} + '@vitest/expect@2.1.8': + resolution: {integrity: sha512-8ytZ/fFHq2g4PJVAtDX57mayemKgDR6X3Oa2Foro+EygiOJHUXhCqBAAKQYYajZpFoIfvBCF1j6R6IYRSIUFuw==} - '@vitest/mocker@2.1.7': - resolution: {integrity: sha512-nKMTnuJrarFH+7llWxeLmYRldIwTY3OM1DzdytHj0f2+fah6Cyk4XbswhjOiTCnAvXsZAEoo1OaD6rneSSU+3Q==} + '@vitest/mocker@2.1.8': + resolution: {integrity: sha512-7guJ/47I6uqfttp33mgo6ga5Gr1VnL58rcqYKyShoRK9ebu8T5Rs6HN3s1NABiBeVTdWNrwUMcHH54uXZBN4zA==} peerDependencies: msw: ^2.4.9 vite: ^5.0.0 @@ -4580,20 +4650,20 @@ packages: vite: optional: true - '@vitest/pretty-format@2.1.7': - resolution: {integrity: sha512-HoqRIyfQlXPrRDB43h0lC8eHPUDPwFweMaD6t+psOvwClCC+oZZim6wPMjuoMnRdiFxXqbybg/QbuewgTwK1vA==} + '@vitest/pretty-format@2.1.8': + resolution: {integrity: sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==} - '@vitest/runner@2.1.7': - resolution: {integrity: sha512-MrDNpXUIXksR57qipYh068SOX4N1hVw6oVILlTlfeTyA1rp0asuljyp15IZwKqhjpWLObFj+tiNrOM4R8UnSqg==} + '@vitest/runner@2.1.8': + resolution: {integrity: sha512-17ub8vQstRnRlIU5k50bG+QOMLHRhYPAna5tw8tYbj+jzjcspnwnwtPtiOlkuKC4+ixDPTuLZiqiWWQ2PSXHVg==} - '@vitest/snapshot@2.1.7': - resolution: {integrity: sha512-OioIxV/xS393DKdlkRNhmtY0K37qVdCv8w1M2SlLTBSX+fNK6zgcd01VlT1nXdbKVDaB8Zb6BOfQYYoGeGTEGg==} + '@vitest/snapshot@2.1.8': + resolution: {integrity: sha512-20T7xRFbmnkfcmgVEz+z3AU/3b0cEzZOt/zmnvZEctg64/QZbSDJEVm9fLnnlSi74KibmRsO9/Qabi+t0vCRPg==} - '@vitest/spy@2.1.7': - resolution: {integrity: sha512-e5pzIaIC0LBrb/j1FaF7HXlPJLGtltiAkwXTMqNEHALJc7USSLEwziJ+aIWTmjsWNg89zazg37h7oZITnublsQ==} + '@vitest/spy@2.1.8': + resolution: {integrity: sha512-5swjf2q95gXeYPevtW0BLk6H8+bPlMb4Vw/9Em4hFxDcaOxS+e0LOX4yqNxoHzMR2akEB2xfpnWUzkZokmgWDg==} - '@vitest/utils@2.1.7': - resolution: {integrity: sha512-7gUdvIzCCuIrMZu0WHTvDJo8C1NsUtOqmwmcS3bRHUcfHemj29wmkzLVNuWQD7WHoBD/+I7WIgrnzt7kxR54ow==} + '@vitest/utils@2.1.8': + resolution: {integrity: sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA==} '@webassemblyjs/ast@1.12.1': resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} @@ -4701,6 +4771,10 @@ packages: resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} engines: {node: '>= 10.0.0'} + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + agent-base@7.1.1: resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} engines: {node: '>= 14'} @@ -4744,6 +4818,10 @@ packages: resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -4885,6 +4963,9 @@ packages: resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} engines: {node: '>=4'} + async-retry@1.2.3: + resolution: {integrity: sha512-tfDb02Th6CE6pJUF2gjW5ZVjsgwlucVXOEQMvEX9JgSJMs9gAX+Nz3xRuJBKuUYjTSYORqvDBORdAQ3LU59g7Q==} + async@3.2.6: resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} @@ -5119,6 +5200,10 @@ packages: chainsaw@0.1.0: resolution: {integrity: sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==} + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + chalk@3.0.0: resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} engines: {node: '>=8'} @@ -5238,10 +5323,16 @@ packages: resolution: {integrity: sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -5256,6 +5347,10 @@ packages: resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} engines: {node: '>=12.5.0'} + colors@1.4.0: + resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} + engines: {node: '>=0.1.90'} + columnify@1.6.0: resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==} engines: {node: '>=8.0.0'} @@ -5564,6 +5659,11 @@ packages: damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + danger@12.3.3: + resolution: {integrity: sha512-nZKzpgXN21rr4dwa6bFhM7G2JEa79dZRJiT3RVRSyi4yk1/hgZ2f8HDGoa7tMladTmu8WjJFyE3LpBIihh+aDw==} + engines: {node: '>=18'} + hasBin: true + dargs@7.0.0: resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} engines: {node: '>=8'} @@ -5980,8 +6080,8 @@ packages: eslint-plugin-react: ^7.28.0 eslint-plugin-react-hooks: ^4.3.0 - eslint-config-next@15.0.4: - resolution: {integrity: sha512-97mLaAhbJKVQYXUBBrenRtEUAA6bNDPxWfaFEd6mEhKfpajP4wJrW4l7BUlHuYWxR8oQa9W014qBJpumpJQwWA==} + eslint-config-next@15.1.2: + resolution: {integrity: sha512-PrMm1/4zWSJ689wd/ypWIR5ZF1uvmp3EkgpgBV1Yu6PhEobBjXMGgT8bVNelwl17LXojO8D5ePFRiI4qXjsPRA==} peerDependencies: eslint: ^7.23.0 || ^8.0.0 || ^9.0.0 typescript: '>=3.3.1' @@ -6072,8 +6172,8 @@ packages: peerDependencies: eslint: '>=7.0.0' - eslint-plugin-react-compiler@19.0.0-beta-b2e8e9c-20241220: - resolution: {integrity: sha512-STVaOQyivSBv0un6/ujYOPntKcCaD0qXIG8siBEs9QcWmQ7q3J3ozuAE86SlSc7ElIZgPoL9HoSN3EONS47nqQ==} + eslint-plugin-react-compiler@19.0.0-beta-63e3235-20250105: + resolution: {integrity: sha512-Smts5x+u+rRopr0926jCXFPkS8D8hFJexDvTW41V0Xu/xHgd4pnGWiJQRBsvTEARzOdJ6NdlmYs4n+O4Thn2iA==} engines: {node: ^14.17.0 || ^16.0.0 || >= 18.0.0} peerDependencies: eslint: '>=7' @@ -6208,6 +6308,10 @@ packages: resolution: {integrity: sha512-EHlpxMCpHWSAh1dgS6bVeoLAXGnJNdR93aabr4QCGbzOM73o5XmRfM/e5FUqsw3aagP8S8XEWUWFAxnRBnAF0Q==} engines: {node: ^18.19.0 || >=20.5.0} + expand-tilde@2.0.2: + resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} + engines: {node: '>=0.10.0'} + expect-type@1.1.0: resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==} engines: {node: '>=12.0.0'} @@ -6223,6 +6327,10 @@ packages: resolution: {integrity: sha512-ORF7g6qGnD+YtUG9yx4DFoqCShNMmUKiXuT5oWMHiOvt/4WFbHC6yCwQMTSBMno7AqntNCAzzcnnjowRkTL9eQ==} engines: {node: '>= 18'} + extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} @@ -6427,6 +6535,10 @@ packages: fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + fs-exists-sync@0.1.0: + resolution: {integrity: sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg==} + engines: {node: '>=0.10.0'} + fs-extra@11.2.0: resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} engines: {node: '>=14.14'} @@ -6513,6 +6625,10 @@ packages: resolution: {integrity: sha512-QB9NKEeDg3xxVwCCwJQ9+xycaz6pBB6iQ76wiWMl1927n0Kir6alPiP+yuiICLLU4jpMe08dXfpebuQppFA2zw==} engines: {node: '>=16'} + get-stdin@6.0.0: + resolution: {integrity: sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==} + engines: {node: '>=4'} + get-stream@6.0.0: resolution: {integrity: sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==} engines: {node: '>=10'} @@ -6536,6 +6652,10 @@ packages: get-tsconfig@4.8.1: resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} + git-config-path@1.0.1: + resolution: {integrity: sha512-KcJ2dlrrP5DbBnYIZ2nlikALfRhKzNSX0stvv3ImJ+fvC4hXKoV+U+74SV0upg+jlQZbrtQzc0bu6/Zh+7aQbg==} + engines: {node: '>=0.10.0'} + git-raw-commits@3.0.0: resolution: {integrity: sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw==} engines: {node: '>=14'} @@ -6668,6 +6788,14 @@ packages: has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + has-flag@2.0.0: + resolution: {integrity: sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==} + engines: {node: '>=0.10.0'} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} @@ -6746,6 +6874,10 @@ packages: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} + http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + http-proxy-agent@7.0.2: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} @@ -6762,6 +6894,10 @@ packages: resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} engines: {node: '>=8.0.0'} + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + https-proxy-agent@7.0.5: resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} engines: {node: '>= 14'} @@ -6778,6 +6914,10 @@ packages: resolution: {integrity: sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==} engines: {node: '>=18.18.0'} + hyperlinker@1.0.0: + resolution: {integrity: sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ==} + engines: {node: '>=4'} + hyphenate-style-name@1.1.0: resolution: {integrity: sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==} @@ -6807,6 +6947,9 @@ packages: immediate@3.0.6: resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + immer@10.1.1: + resolution: {integrity: sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==} + immer@9.0.21: resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} @@ -6937,6 +7080,10 @@ packages: is-electron@2.2.2: resolution: {integrity: sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg==} + is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -7272,6 +7419,10 @@ packages: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} + jsonpointer@5.0.1: + resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} + engines: {node: '>=0.10.0'} + jsonwebtoken@9.0.2: resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} engines: {node: '>=12', npm: '>=6'} @@ -7472,6 +7623,9 @@ packages: lodash.escaperegexp@4.1.2: resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} + lodash.find@4.6.0: + resolution: {integrity: sha512-yaRZoAV3Xq28F1iafWN1+a0rflOej93l1DQUejs3SZ41h2O9UJBoS9aueGjPDgAl4B6tPC0NuuchLKaDQQ3Isg==} + lodash.flatten@4.4.0: resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} @@ -7505,6 +7659,9 @@ packages: lodash.isnumber@3.0.3: resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} + lodash.isobject@3.0.2: + resolution: {integrity: sha512-3/Qptq2vr7WeJbB4KHUSKlq8Pl7ASXi3UG6CMbBm8WRtXi8+GHm7mKaU3urfpSEzWe2wCIChs6/sdocUsTKJiA==} + lodash.isplainobject@4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} @@ -7517,6 +7674,15 @@ packages: lodash.kebabcase@4.1.1: resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} + lodash.keys@4.2.0: + resolution: {integrity: sha512-J79MkJcp7Df5mizHiVNpjoHXLi4HLjh9VLS/M7lQSGoQ+0oQ+lWEigREkqKyizPB1IawvQLLKY8mzEcm1tkyxQ==} + + lodash.mapvalues@4.6.0: + resolution: {integrity: sha512-JPFqXFeZQ7BfS00H58kClY7SPVeHertPE0lNuCyZ26/XlN8TvakYD7b9bGyNmXbT/D3BbtPAAmq90gPWqLkxlQ==} + + lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} @@ -7676,6 +7842,9 @@ packages: resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} engines: {node: '>= 0.8'} + memfs-or-file-map-to-github-branch@1.2.1: + resolution: {integrity: sha512-I/hQzJ2a/pCGR8fkSQ9l5Yx+FQ4e7X6blNHyWBm2ojeFLT3GVzGkTj7xnyWpdclrr7Nq4dmx3xrvu70m3ypzAQ==} + memfs@3.5.3: resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} engines: {node: '>= 4.0.0'} @@ -8027,8 +8196,8 @@ packages: next: '>=10.0.0' react: '>=17.0.0' - next@14.2.20: - resolution: {integrity: sha512-yPvIiWsiyVYqJlSQxwmzMIReXn5HxFNq4+tlVQ812N1FbvhmE+fDpIAD7bcS2mGYQwPJ5vAsQouyme2eKsxaug==} + next@14.2.21: + resolution: {integrity: sha512-rZmLwucLHr3/zfDMYbJXbw0ZeoBpirxkXuvsJbk7UPorvPYZhP7vq7aHbKnU7dQNCYIimRrbB2pp3xmf+wsYUg==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: @@ -8045,16 +8214,16 @@ packages: sass: optional: true - next@15.0.4: - resolution: {integrity: sha512-nuy8FH6M1FG0lktGotamQDCXhh5hZ19Vo0ht1AOIQWrYJLP598TIUagKtvJrfJ5AGwB/WmDqkKaKhMpVifvGPA==} + next@15.1.2: + resolution: {integrity: sha512-nLJDV7peNy+0oHlmY2JZjzMfJ8Aj0/dd3jCwSZS8ZiO5nkQfcZRqDrRN3U5rJtqVTQneIOGZzb6LCNrk7trMCQ==} engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 '@playwright/test': ^1.41.2 babel-plugin-react-compiler: '*' - react: ^18.2.0 || 19.0.0-rc-66855b96-20241106 || ^19.0.0 - react-dom: ^18.2.0 || 19.0.0-rc-66855b96-20241106 || ^19.0.0 + react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 sass: ^1.3.0 peerDependenciesMeta: '@opentelemetry/api': @@ -8069,6 +8238,9 @@ packages: nise@6.1.1: resolution: {integrity: sha512-aMSAzLVY7LyeM60gvBS423nBmIPP+Wy7St7hsb+8/fc1HmeoHJfLO8CKse4u3BtOZvQLJghYPI2i/1WZrEj5/g==} + node-cleanup@2.1.2: + resolution: {integrity: sha512-qN8v/s2PAJwGUtr1/hYTpNKlD6Y9rc4p8KSmJXyGdYGZsDGKXrGThikLFP9OCHFeLeEpQzPwiAtdIvBLqm//Hw==} + node-dir@0.1.17: resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} engines: {node: '>= 0.10.5'} @@ -8306,6 +8478,9 @@ packages: outvariant@1.4.3: resolution: {integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==} + override-require@1.1.1: + resolution: {integrity: sha512-eoJ9YWxFcXbrn2U8FKT6RV+/Kj7fiGAB1VvHzbYKt8xM5ZuKZgCGvnHzDxmreEjcBH28ejg5MiOH4iyY1mQnkg==} + p-event@5.0.1: resolution: {integrity: sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -8429,6 +8604,18 @@ packages: resolution: {integrity: sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + parse-diff@0.7.1: + resolution: {integrity: sha512-1j3l8IKcy4yRK2W4o9EYvJLSzpAVwz4DXqCewYyx2vEwk2gcf3DBPqc8Fj4XV3K33OYJ08A8fWwyu/ykD/HUSg==} + + parse-git-config@2.0.3: + resolution: {integrity: sha512-Js7ueMZOVSZ3tP8C7E3KZiHv6QQl7lnJ+OkbxoaFazzSa2KyEHqApfGbU3XboUgUnq4ZuUmskUpYKTNx01fm5A==} + engines: {node: '>=6'} + + parse-github-url@1.0.3: + resolution: {integrity: sha512-tfalY5/4SqGaV/GIGzWyHnFjlpTPTNpENR9Ea2lLldSJ8EWXMsvacWucqY3m3I4YPtas15IxTLQVQ5NSYXPrww==} + engines: {node: '>= 0.10'} + hasBin: true + parse-json@4.0.0: resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} engines: {node: '>=4'} @@ -8437,6 +8624,9 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} + parse-link-header@2.0.0: + resolution: {integrity: sha512-xjU87V0VyHZybn2RrCX5TIFGxTVZE6zqqZWMPlIKiSKuWh/X5WZdt+w1Ki1nXB+8L/KtL+nZ4iq+sfI6MrhhMw==} + parse-ms@4.0.0: resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} engines: {node: '>=18'} @@ -8601,6 +8791,9 @@ packages: resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} engines: {node: '>=10'} + pinpoint@1.1.0: + resolution: {integrity: sha512-+04FTD9x7Cls2rihLlo57QDCcHoLBGn5Dk51SwtFBWkUWLxZaBXyNVpCw1S+atvE7GmnFjeaRZ0WLq3UYuqAdg==} + pirates@4.0.6: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} @@ -8775,6 +8968,10 @@ packages: peerDependencies: prettier: ^3.0.0 + prettyjson@1.2.5: + resolution: {integrity: sha512-rksPWtoZb2ZpT5OVgtmy0KHVM+Dca3iVwWY9ifwhcexfjebtgjg3wmrUt9PvJ59XIYBcknQeYHD8IAnVlh9lAw==} + hasBin: true + prismjs@1.29.0: resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} engines: {node: '>=6'} @@ -8951,6 +9148,18 @@ packages: react-is@19.0.0: resolution: {integrity: sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g==} + react-redux@9.2.0: + resolution: {integrity: sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==} + peerDependencies: + '@types/react': ^18.2.25 || ^19 + react: ^18.0 || ^19 + redux: ^5.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + redux: + optional: true + react-refresh@0.14.2: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} @@ -9076,19 +9285,21 @@ packages: resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} engines: {node: '>= 14.16.0'} + readline-sync@1.4.10: + resolution: {integrity: sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==} + engines: {node: '>= 0.8.0'} + recast@0.23.9: resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==} engines: {node: '>= 4'} - recharts-scale@0.4.5: - resolution: {integrity: sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==} - - recharts@2.13.0-alpha.5: - resolution: {integrity: sha512-mm8ORfDusDhyWlrY/2NntUAsNeYukteplvRqKGkBEmqNPwqYq9GoEzaVsVDYj8bjGSKJynWGhjEO1NFcntl29g==} - engines: {node: '>=14'} + recharts@3.0.0-alpha.0: + resolution: {integrity: sha512-phxJucbwKseB0fwvu2JDhFsXValIcTe5PdzJEOZH2e+mL6zAAWMMZjp4MN8yrHMsfSiK2T63xQLp5HL6HQC3pA==} + engines: {node: '>=18'} peerDependencies: - react: ^16.0.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-is: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 recursive-readdir@2.2.3: resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} @@ -9102,6 +9313,14 @@ packages: resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} engines: {node: '>=12'} + redux-thunk@3.1.0: + resolution: {integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==} + peerDependencies: + redux: ^5.0.0 + + redux@5.0.1: + resolution: {integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==} + reflect.getprototypeof@1.0.6: resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} engines: {node: '>= 0.4'} @@ -9116,6 +9335,9 @@ packages: regenerator-runtime@0.12.1: resolution: {integrity: sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==} + regenerator-runtime@0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} @@ -9706,6 +9928,10 @@ packages: resolution: {integrity: sha512-W3n+NJ7TFjaLle8ihIIvsr/bbuKpnxeatsyjmhy7iSkom+/cshaHziCQAWXrHGWJVQSQFDOuES6C3nSEvcbrQg==} engines: {node: '>=16'} + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -9714,6 +9940,10 @@ packages: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} + supports-hyperlinks@1.0.1: + resolution: {integrity: sha512-HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw==} + engines: {node: '>=4'} + supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -10164,6 +10394,11 @@ packages: urlpattern-polyfill@8.0.2: resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} + use-sync-external-store@1.4.0: + resolution: {integrity: sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -10212,12 +10447,12 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - victory-vendor@36.9.2: - resolution: {integrity: sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==} + victory-vendor@37.3.5: + resolution: {integrity: sha512-+K2VBMmB7peKG3Gjp79XjgsbfsYgD0eZRSmKz7p5a4V0NhYq43eM/b0gpSLq+Dhwag96QaWsU75/6bFVBjVE7A==} - vite-node@2.1.7: - resolution: {integrity: sha512-b/5MxSWd0ftWt1B1LHfzCw0ASzaxHztUwP0rcsBhkDSGy9ZDEDieSIjFG3I78nI9dUN0eSeD6LtuKPZGjwwpZQ==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + vite-node@2.1.8: + resolution: {integrity: sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true vite@5.4.11: @@ -10262,15 +10497,15 @@ packages: vite: '>=4.5.2' vitest: '>=0.26.2' - vitest@2.1.7: - resolution: {integrity: sha512-wzJ7Wri44ufkzTZbI1lHsdHfiGdFRmnJ9qIudDQ6tknjJeHhF5QgNSSjk7KRZUU535qEiEXFJ7tSHqyzyIv0jQ==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + vitest@2.1.8: + resolution: {integrity: sha512-1vBKTZskHw/aosXqQUlVWWlGUxSJR8YtiyZDJAFeW2kPAeX6S3Sool0mjspO+kXLuxVWlEDDowBAeqeAQefqLQ==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^20.17.6 - '@vitest/browser': 2.1.7 - '@vitest/ui': 2.1.7 + '@vitest/browser': 2.1.8 + '@vitest/ui': 2.1.8 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -10452,6 +10687,9 @@ packages: utf-8-validate: optional: true + xcase@2.0.1: + resolution: {integrity: sha512-UmFXIPU+9Eg3E9m/728Bii0lAIuoc+6nbrNUKaRPJOFp91ih44qqGlWtxMB6kXFrRD6po+86ksHM5XHCfk6iPw==} + xml-name-validator@5.0.0: resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} engines: {node: '>=18'} @@ -11950,6 +12188,22 @@ snapshots: '@floating-ui/utils@0.2.8': {} + '@gitbeaker/core@38.12.1': + dependencies: + '@gitbeaker/requester-utils': 38.12.1 + qs: 6.13.0 + xcase: 2.0.1 + + '@gitbeaker/requester-utils@38.12.1': + dependencies: + qs: 6.13.0 + xcase: 2.0.1 + + '@gitbeaker/rest@38.12.1': + dependencies: + '@gitbeaker/core': 38.12.1 + '@gitbeaker/requester-utils': 38.12.1 + '@googleapis/drive@8.14.0(encoding@0.1.13)': dependencies: googleapis-common: 7.2.0(encoding@0.1.13) @@ -12340,7 +12594,7 @@ snapshots: '@mui/core-downloads-tracker@6.2.1': {} - '@mui/docs@6.2.1(x43f62rk27uyul4byumexdvu2u)': + '@mui/docs@6.2.1(wopobyujwuhvxg6p5iwz22urga)': dependencies: '@babel/runtime': 7.26.0 '@mui/base': 5.0.0-beta.67(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -12352,7 +12606,7 @@ snapshots: clipboard-copy: 4.0.1 clsx: 2.1.1 csstype: 3.1.3 - next: 14.2.20(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.21(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) nprogress: 0.2.0 prop-types: 15.8.1 react: 18.3.1 @@ -12433,22 +12687,22 @@ snapshots: '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1) '@types/react': 18.3.18 - '@mui/material-nextjs@6.2.1(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/server@11.11.0)(@types/react@18.3.18)(next@14.2.20(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': + '@mui/material-nextjs@6.2.1(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/server@11.11.0)(@types/react@18.3.18)(next@14.2.21(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 '@emotion/react': 11.14.0(@types/react@18.3.18)(react@18.3.1) - next: 14.2.20(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.21(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 optionalDependencies: '@emotion/cache': 11.14.0 '@emotion/server': 11.11.0 '@types/react': 18.3.18 - '@mui/material-nextjs@6.2.1(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/server@11.11.0)(@types/react@18.3.18)(next@15.0.4(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': + '@mui/material-nextjs@6.2.1(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/server@11.11.0)(@types/react@18.3.18)(next@15.1.2(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 '@emotion/react': 11.14.0(@types/react@18.3.18)(react@18.3.1) - next: 15.0.4(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 15.1.2(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 optionalDependencies: '@emotion/cache': 11.14.0 @@ -12878,67 +13132,67 @@ snapshots: '@netlify/node-cookies': 0.1.0 urlpattern-polyfill: 8.0.2 - '@next/env@14.2.20': {} + '@next/env@14.2.21': {} - '@next/env@15.0.4': {} + '@next/env@15.1.2': {} - '@next/eslint-plugin-next@14.2.20': + '@next/eslint-plugin-next@14.2.21': dependencies: glob: 10.3.10 - '@next/eslint-plugin-next@15.0.4': + '@next/eslint-plugin-next@15.1.2': dependencies: fast-glob: 3.3.1 - '@next/swc-darwin-arm64@14.2.20': + '@next/swc-darwin-arm64@14.2.21': optional: true - '@next/swc-darwin-arm64@15.0.4': + '@next/swc-darwin-arm64@15.1.2': optional: true - '@next/swc-darwin-x64@14.2.20': + '@next/swc-darwin-x64@14.2.21': optional: true - '@next/swc-darwin-x64@15.0.4': + '@next/swc-darwin-x64@15.1.2': optional: true - '@next/swc-linux-arm64-gnu@14.2.20': + '@next/swc-linux-arm64-gnu@14.2.21': optional: true - '@next/swc-linux-arm64-gnu@15.0.4': + '@next/swc-linux-arm64-gnu@15.1.2': optional: true - '@next/swc-linux-arm64-musl@14.2.20': + '@next/swc-linux-arm64-musl@14.2.21': optional: true - '@next/swc-linux-arm64-musl@15.0.4': + '@next/swc-linux-arm64-musl@15.1.2': optional: true - '@next/swc-linux-x64-gnu@14.2.20': + '@next/swc-linux-x64-gnu@14.2.21': optional: true - '@next/swc-linux-x64-gnu@15.0.4': + '@next/swc-linux-x64-gnu@15.1.2': optional: true - '@next/swc-linux-x64-musl@14.2.20': + '@next/swc-linux-x64-musl@14.2.21': optional: true - '@next/swc-linux-x64-musl@15.0.4': + '@next/swc-linux-x64-musl@15.1.2': optional: true - '@next/swc-win32-arm64-msvc@14.2.20': + '@next/swc-win32-arm64-msvc@14.2.21': optional: true - '@next/swc-win32-arm64-msvc@15.0.4': + '@next/swc-win32-arm64-msvc@15.1.2': optional: true - '@next/swc-win32-ia32-msvc@14.2.20': + '@next/swc-win32-ia32-msvc@14.2.21': optional: true - '@next/swc-win32-x64-msvc@14.2.20': + '@next/swc-win32-x64-msvc@14.2.21': optional: true - '@next/swc-win32-x64-msvc@15.0.4': + '@next/swc-win32-x64-msvc@15.1.2': optional: true '@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3': @@ -13146,8 +13400,24 @@ snapshots: '@nx/nx-win32-x64-msvc@19.8.9': optional: true + '@octokit/auth-token@2.5.0': + dependencies: + '@octokit/types': 6.41.0 + '@octokit/auth-token@3.0.4': {} + '@octokit/core@3.6.0(encoding@0.1.13)': + dependencies: + '@octokit/auth-token': 2.5.0 + '@octokit/graphql': 4.8.0(encoding@0.1.13) + '@octokit/request': 5.6.3(encoding@0.1.13) + '@octokit/request-error': 2.1.0 + '@octokit/types': 6.41.0 + before-after-hook: 2.2.3 + universal-user-agent: 6.0.1 + transitivePeerDependencies: + - encoding + '@octokit/core@4.2.4(encoding@0.1.13)': dependencies: '@octokit/auth-token': 3.0.4 @@ -13160,12 +13430,26 @@ snapshots: transitivePeerDependencies: - encoding + '@octokit/endpoint@6.0.12': + dependencies: + '@octokit/types': 6.41.0 + is-plain-object: 5.0.0 + universal-user-agent: 6.0.1 + '@octokit/endpoint@7.0.6': dependencies: '@octokit/types': 9.3.2 is-plain-object: 5.0.0 universal-user-agent: 6.0.1 + '@octokit/graphql@4.8.0(encoding@0.1.13)': + dependencies: + '@octokit/request': 5.6.3(encoding@0.1.13) + '@octokit/types': 6.41.0 + universal-user-agent: 6.0.1 + transitivePeerDependencies: + - encoding + '@octokit/graphql@5.0.6(encoding@0.1.13)': dependencies: '@octokit/request': 6.2.8(encoding@0.1.13) @@ -13174,31 +13458,65 @@ snapshots: transitivePeerDependencies: - encoding + '@octokit/openapi-types@12.11.0': {} + '@octokit/openapi-types@18.1.1': {} '@octokit/plugin-enterprise-rest@6.0.1': {} + '@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0(encoding@0.1.13))': + dependencies: + '@octokit/core': 3.6.0(encoding@0.1.13) + '@octokit/types': 6.41.0 + '@octokit/plugin-paginate-rest@6.1.2(@octokit/core@4.2.4(encoding@0.1.13))': dependencies: '@octokit/core': 4.2.4(encoding@0.1.13) '@octokit/tsconfig': 1.0.2 '@octokit/types': 9.3.2 + '@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0(encoding@0.1.13))': + dependencies: + '@octokit/core': 3.6.0(encoding@0.1.13) + '@octokit/plugin-request-log@1.0.4(@octokit/core@4.2.4(encoding@0.1.13))': dependencies: '@octokit/core': 4.2.4(encoding@0.1.13) + '@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0(encoding@0.1.13))': + dependencies: + '@octokit/core': 3.6.0(encoding@0.1.13) + '@octokit/types': 6.41.0 + deprecation: 2.3.1 + '@octokit/plugin-rest-endpoint-methods@7.2.3(@octokit/core@4.2.4(encoding@0.1.13))': dependencies: '@octokit/core': 4.2.4(encoding@0.1.13) '@octokit/types': 10.0.0 + '@octokit/request-error@2.1.0': + dependencies: + '@octokit/types': 6.41.0 + deprecation: 2.3.1 + once: 1.4.0 + '@octokit/request-error@3.0.3': dependencies: '@octokit/types': 9.3.2 deprecation: 2.3.1 once: 1.4.0 + '@octokit/request@5.6.3(encoding@0.1.13)': + dependencies: + '@octokit/endpoint': 6.0.12 + '@octokit/request-error': 2.1.0 + '@octokit/types': 6.41.0 + is-plain-object: 5.0.0 + node-fetch: 2.7.0(encoding@0.1.13) + universal-user-agent: 6.0.1 + transitivePeerDependencies: + - encoding + '@octokit/request@6.2.8(encoding@0.1.13)': dependencies: '@octokit/endpoint': 7.0.6 @@ -13210,6 +13528,15 @@ snapshots: transitivePeerDependencies: - encoding + '@octokit/rest@18.12.0(encoding@0.1.13)': + dependencies: + '@octokit/core': 3.6.0(encoding@0.1.13) + '@octokit/plugin-paginate-rest': 2.21.3(@octokit/core@3.6.0(encoding@0.1.13)) + '@octokit/plugin-request-log': 1.0.4(@octokit/core@3.6.0(encoding@0.1.13)) + '@octokit/plugin-rest-endpoint-methods': 5.16.2(@octokit/core@3.6.0(encoding@0.1.13)) + transitivePeerDependencies: + - encoding + '@octokit/rest@19.0.11(encoding@0.1.13)': dependencies: '@octokit/core': 4.2.4(encoding@0.1.13) @@ -13225,6 +13552,10 @@ snapshots: dependencies: '@octokit/openapi-types': 18.1.1 + '@octokit/types@6.41.0': + dependencies: + '@octokit/openapi-types': 12.11.0 + '@octokit/types@9.3.2': dependencies: '@octokit/openapi-types': 18.1.1 @@ -13295,6 +13626,16 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@reduxjs/toolkit@2.5.0(react-redux@9.2.0(@types/react@18.3.18)(react@18.3.1)(redux@5.0.1))(react@18.3.1)': + dependencies: + immer: 10.1.1 + redux: 5.0.1 + redux-thunk: 3.1.0(redux@5.0.1) + reselect: 5.1.1 + optionalDependencies: + react: 18.3.1 + react-redux: 9.2.0(@types/react@18.3.18)(react@18.3.1)(redux@5.0.1) + '@remix-run/router@1.19.2': {} '@rollup/rollup-android-arm-eabi@4.24.3': @@ -13478,7 +13819,7 @@ snapshots: '@swc/counter@0.1.3': {} - '@swc/helpers@0.5.13': + '@swc/helpers@0.5.15': dependencies: tslib: 2.8.1 @@ -13537,6 +13878,8 @@ snapshots: dependencies: '@testing-library/dom': 10.4.0 + '@tootallnate/once@2.0.0': {} + '@trendmicro/react-interpolate@0.5.5(react@18.3.1)': dependencies: lodash.omit: 4.5.0 @@ -13883,6 +14226,8 @@ snapshots: '@types/unist@3.0.3': {} + '@types/use-sync-external-store@0.0.6': {} + '@types/webidl-conversions@7.0.3': {} '@types/webpack-dev-server@3.11.6': @@ -14069,17 +14414,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/browser@2.1.7(@types/node@20.17.6)(playwright@1.48.2)(typescript@5.7.2)(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0))(vitest@2.1.7)': + '@vitest/browser@2.1.8(@types/node@20.17.6)(playwright@1.48.2)(typescript@5.7.2)(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0))(vitest@2.1.8)': dependencies: '@testing-library/dom': 10.4.0 '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) - '@vitest/mocker': 2.1.7(msw@2.6.5(@types/node@20.17.6)(typescript@5.7.2))(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0)) - '@vitest/utils': 2.1.7 + '@vitest/mocker': 2.1.8(msw@2.6.5(@types/node@20.17.6)(typescript@5.7.2))(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0)) + '@vitest/utils': 2.1.8 magic-string: 0.30.12 msw: 2.6.5(@types/node@20.17.6)(typescript@5.7.2) sirv: 3.0.0 tinyrainbow: 1.2.0 - vitest: 2.1.7(@types/node@20.17.6)(@vitest/browser@2.1.7)(jsdom@25.0.1)(msw@2.6.5(@types/node@20.17.6)(typescript@5.7.2))(terser@5.36.0) + vitest: 2.1.8(@types/node@20.17.6)(@vitest/browser@2.1.8)(jsdom@25.0.1)(msw@2.6.5(@types/node@20.17.6)(typescript@5.7.2))(terser@5.36.0) ws: 8.18.0 optionalDependencies: playwright: 1.48.2 @@ -14090,7 +14435,7 @@ snapshots: - utf-8-validate - vite - '@vitest/coverage-v8@2.1.7(@vitest/browser@2.1.7)(vitest@2.1.7)': + '@vitest/coverage-v8@2.1.8(@vitest/browser@2.1.8)(vitest@2.1.8)': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -14104,50 +14449,50 @@ snapshots: std-env: 3.8.0 test-exclude: 7.0.1 tinyrainbow: 1.2.0 - vitest: 2.1.7(@types/node@20.17.6)(@vitest/browser@2.1.7)(jsdom@25.0.1)(msw@2.6.5(@types/node@20.17.6)(typescript@5.7.2))(terser@5.36.0) + vitest: 2.1.8(@types/node@20.17.6)(@vitest/browser@2.1.8)(jsdom@25.0.1)(msw@2.6.5(@types/node@20.17.6)(typescript@5.7.2))(terser@5.36.0) optionalDependencies: - '@vitest/browser': 2.1.7(@types/node@20.17.6)(playwright@1.48.2)(typescript@5.7.2)(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0))(vitest@2.1.7) + '@vitest/browser': 2.1.8(@types/node@20.17.6)(playwright@1.48.2)(typescript@5.7.2)(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0))(vitest@2.1.8) transitivePeerDependencies: - supports-color - '@vitest/expect@2.1.7': + '@vitest/expect@2.1.8': dependencies: - '@vitest/spy': 2.1.7 - '@vitest/utils': 2.1.7 + '@vitest/spy': 2.1.8 + '@vitest/utils': 2.1.8 chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.7(msw@2.6.5(@types/node@20.17.6)(typescript@5.7.2))(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0))': + '@vitest/mocker@2.1.8(msw@2.6.5(@types/node@20.17.6)(typescript@5.7.2))(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0))': dependencies: - '@vitest/spy': 2.1.7 + '@vitest/spy': 2.1.8 estree-walker: 3.0.3 magic-string: 0.30.12 optionalDependencies: msw: 2.6.5(@types/node@20.17.6)(typescript@5.7.2) vite: 5.4.11(@types/node@20.17.6)(terser@5.36.0) - '@vitest/pretty-format@2.1.7': + '@vitest/pretty-format@2.1.8': dependencies: tinyrainbow: 1.2.0 - '@vitest/runner@2.1.7': + '@vitest/runner@2.1.8': dependencies: - '@vitest/utils': 2.1.7 + '@vitest/utils': 2.1.8 pathe: 1.1.2 - '@vitest/snapshot@2.1.7': + '@vitest/snapshot@2.1.8': dependencies: - '@vitest/pretty-format': 2.1.7 + '@vitest/pretty-format': 2.1.8 magic-string: 0.30.12 pathe: 1.1.2 - '@vitest/spy@2.1.7': + '@vitest/spy@2.1.8': dependencies: tinyspy: 3.0.2 - '@vitest/utils@2.1.7': + '@vitest/utils@2.1.8': dependencies: - '@vitest/pretty-format': 2.1.7 + '@vitest/pretty-format': 2.1.8 loupe: 3.1.2 tinyrainbow: 1.2.0 @@ -14279,6 +14624,12 @@ snapshots: address@1.2.2: {} + agent-base@6.0.2: + dependencies: + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + agent-base@7.1.1: dependencies: debug: 4.3.7 @@ -14339,6 +14690,10 @@ snapshots: ansi-regex@6.1.0: {} + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 @@ -14531,6 +14886,10 @@ snapshots: dependencies: tslib: 2.8.1 + async-retry@1.2.3: + dependencies: + retry: 0.12.0 + async@3.2.6: {} asynckit@0.4.0: {} @@ -14825,6 +15184,12 @@ snapshots: dependencies: traverse: 0.3.9 + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + chalk@3.0.0: dependencies: ansi-styles: 4.3.0 @@ -14930,10 +15295,16 @@ snapshots: cmd-shim@6.0.3: {} + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + color-convert@2.0.1: dependencies: color-name: 1.1.4 + color-name@1.1.3: {} + color-name@1.1.4: {} color-string@1.9.1: @@ -14948,6 +15319,8 @@ snapshots: color-convert: 2.0.1 color-string: 1.9.1 + colors@1.4.0: {} + columnify@1.6.0: dependencies: strip-ansi: 6.0.1 @@ -15283,6 +15656,49 @@ snapshots: damerau-levenshtein@1.0.8: {} + danger@12.3.3(encoding@0.1.13): + dependencies: + '@gitbeaker/rest': 38.12.1 + '@octokit/rest': 18.12.0(encoding@0.1.13) + async-retry: 1.2.3 + chalk: 2.4.2 + commander: 2.20.3 + core-js: 3.39.0 + debug: 4.3.7 + fast-json-patch: 3.1.1 + get-stdin: 6.0.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + hyperlinker: 1.0.0 + json5: 2.2.3 + jsonpointer: 5.0.1 + jsonwebtoken: 9.0.2 + lodash.find: 4.6.0 + lodash.includes: 4.3.0 + lodash.isobject: 3.0.2 + lodash.keys: 4.2.0 + lodash.mapvalues: 4.6.0 + lodash.memoize: 4.1.2 + memfs-or-file-map-to-github-branch: 1.2.1(encoding@0.1.13) + micromatch: 4.0.8 + node-cleanup: 2.1.2 + node-fetch: 2.7.0(encoding@0.1.13) + override-require: 1.1.1 + p-limit: 2.3.0 + parse-diff: 0.7.1 + parse-git-config: 2.0.3 + parse-github-url: 1.0.3 + parse-link-header: 2.0.0 + pinpoint: 1.1.0 + prettyjson: 1.2.5 + readline-sync: 1.4.10 + regenerator-runtime: 0.13.11 + require-from-string: 2.0.2 + supports-hyperlinks: 1.0.1 + transitivePeerDependencies: + - encoding + - supports-color + dargs@7.0.0: {} data-urls@5.0.0: @@ -15766,9 +16182,9 @@ snapshots: object.assign: 4.1.5 object.entries: 1.1.8 - eslint-config-next@15.0.4(eslint-import-resolver-webpack@0.13.9(eslint-plugin-import@2.31.0)(webpack@5.96.1(esbuild@0.24.2)))(eslint@8.57.1)(typescript@5.7.2): + eslint-config-next@15.1.2(eslint-import-resolver-webpack@0.13.9(eslint-plugin-import@2.31.0)(webpack@5.96.1(esbuild@0.24.2)))(eslint@8.57.1)(typescript@5.7.2): dependencies: - '@next/eslint-plugin-next': 15.0.4 + '@next/eslint-plugin-next': 15.1.2 '@rushstack/eslint-patch': 1.10.4 '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2) '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.7.2) @@ -15915,7 +16331,7 @@ snapshots: globals: 13.24.0 rambda: 7.5.0 - eslint-plugin-react-compiler@19.0.0-beta-b2e8e9c-20241220(eslint@8.57.1): + eslint-plugin-react-compiler@19.0.0-beta-63e3235-20250105(eslint@8.57.1): dependencies: '@babel/core': 7.26.0 '@babel/parser': 7.26.2 @@ -16163,6 +16579,10 @@ snapshots: strip-final-newline: 4.0.0 yoctocolors: 2.1.1 + expand-tilde@2.0.2: + dependencies: + homedir-polyfill: 1.0.3 + expect-type@1.1.0: {} exponential-backoff@3.1.1: {} @@ -16240,6 +16660,10 @@ snapshots: transitivePeerDependencies: - supports-color + extend-shallow@2.0.1: + dependencies: + is-extendable: 0.1.1 + extend@3.0.2: {} external-editor@3.1.0: @@ -16461,6 +16885,8 @@ snapshots: fs-constants@1.0.0: {} + fs-exists-sync@0.1.0: {} + fs-extra@11.2.0: dependencies: graceful-fs: 4.2.11 @@ -16558,6 +16984,8 @@ snapshots: get-port@7.1.0: {} + get-stdin@6.0.0: {} + get-stream@6.0.0: {} get-stream@6.0.1: {} @@ -16579,6 +17007,12 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 + git-config-path@1.0.1: + dependencies: + extend-shallow: 2.0.1 + fs-exists-sync: 0.1.0 + homedir-polyfill: 1.0.3 + git-raw-commits@3.0.0: dependencies: dargs: 7.0.0 @@ -16768,6 +17202,10 @@ snapshots: has-bigints@1.0.2: {} + has-flag@2.0.0: {} + + has-flag@3.0.0: {} + has-flag@4.0.0: {} has-property-descriptors@1.0.2: @@ -16845,6 +17283,14 @@ snapshots: statuses: 2.0.1 toidentifier: 1.0.1 + http-proxy-agent@5.0.0: + dependencies: + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.1 @@ -16881,6 +17327,13 @@ snapshots: transitivePeerDependencies: - debug + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + https-proxy-agent@7.0.5: dependencies: agent-base: 7.1.1 @@ -16894,6 +17347,8 @@ snapshots: human-signals@8.0.0: {} + hyperlinker@1.0.0: {} + hyphenate-style-name@1.1.0: {} iconv-lite@0.4.24: @@ -16918,6 +17373,8 @@ snapshots: immediate@3.0.6: {} + immer@10.1.1: {} + immer@9.0.21: {} import-fresh@3.3.0: @@ -17052,6 +17509,8 @@ snapshots: is-electron@2.2.2: {} + is-extendable@0.1.1: {} + is-extglob@2.1.1: {} is-finalizationregistry@1.0.2: @@ -17354,6 +17813,8 @@ snapshots: jsonparse@1.3.1: {} + jsonpointer@5.0.1: {} + jsonwebtoken@9.0.2: dependencies: jws: 3.2.2 @@ -17681,6 +18142,8 @@ snapshots: lodash.escaperegexp@4.1.2: {} + lodash.find@4.6.0: {} + lodash.flatten@4.4.0: {} lodash.get@4.4.2: {} @@ -17703,6 +18166,8 @@ snapshots: lodash.isnumber@3.0.3: {} + lodash.isobject@3.0.2: {} + lodash.isplainobject@4.0.6: {} lodash.isstring@4.0.1: {} @@ -17711,6 +18176,12 @@ snapshots: lodash.kebabcase@4.1.1: {} + lodash.keys@4.2.0: {} + + lodash.mapvalues@4.6.0: {} + + lodash.memoize@4.1.2: {} + lodash.merge@4.6.2: {} lodash.omit@4.5.0: {} @@ -17887,6 +18358,12 @@ snapshots: media-typer@1.1.0: {} + memfs-or-file-map-to-github-branch@1.2.1(encoding@0.1.13): + dependencies: + '@octokit/rest': 18.12.0(encoding@0.1.13) + transitivePeerDependencies: + - encoding + memfs@3.5.3: dependencies: fs-monkey: 1.0.6 @@ -18267,20 +18744,20 @@ snapshots: nested-error-stacks@2.1.1: {} - next-auth@5.0.0-beta.25(next@15.0.4(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): + next-auth@5.0.0-beta.25(next@15.1.2(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): dependencies: '@auth/core': 0.37.2 - next: 15.0.4(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 15.1.2(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 - next-router-mock@0.9.13(next@15.0.4(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): + next-router-mock@0.9.13(next@15.1.2(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): dependencies: - next: 15.0.4(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 15.1.2(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 - next@14.2.20(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next@14.2.21(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@next/env': 14.2.20 + '@next/env': 14.2.21 '@swc/helpers': 0.5.5 busboy: 1.6.0 caniuse-lite: 1.0.30001676 @@ -18290,25 +18767,25 @@ snapshots: react-dom: 18.3.1(react@18.3.1) styled-jsx: 5.1.1(@babel/core@7.26.0)(babel-plugin-macros@3.1.0)(react@18.3.1) optionalDependencies: - '@next/swc-darwin-arm64': 14.2.20 - '@next/swc-darwin-x64': 14.2.20 - '@next/swc-linux-arm64-gnu': 14.2.20 - '@next/swc-linux-arm64-musl': 14.2.20 - '@next/swc-linux-x64-gnu': 14.2.20 - '@next/swc-linux-x64-musl': 14.2.20 - '@next/swc-win32-arm64-msvc': 14.2.20 - '@next/swc-win32-ia32-msvc': 14.2.20 - '@next/swc-win32-x64-msvc': 14.2.20 + '@next/swc-darwin-arm64': 14.2.21 + '@next/swc-darwin-x64': 14.2.21 + '@next/swc-linux-arm64-gnu': 14.2.21 + '@next/swc-linux-arm64-musl': 14.2.21 + '@next/swc-linux-x64-gnu': 14.2.21 + '@next/swc-linux-x64-musl': 14.2.21 + '@next/swc-win32-arm64-msvc': 14.2.21 + '@next/swc-win32-ia32-msvc': 14.2.21 + '@next/swc-win32-x64-msvc': 14.2.21 '@playwright/test': 1.47.2 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - next@15.0.4(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next@15.1.2(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@next/env': 15.0.4 + '@next/env': 15.1.2 '@swc/counter': 0.1.3 - '@swc/helpers': 0.5.13 + '@swc/helpers': 0.5.15 busboy: 1.6.0 caniuse-lite: 1.0.30001676 postcss: 8.4.31 @@ -18316,14 +18793,14 @@ snapshots: react-dom: 18.3.1(react@18.3.1) styled-jsx: 5.1.6(@babel/core@7.26.0)(babel-plugin-macros@3.1.0)(react@18.3.1) optionalDependencies: - '@next/swc-darwin-arm64': 15.0.4 - '@next/swc-darwin-x64': 15.0.4 - '@next/swc-linux-arm64-gnu': 15.0.4 - '@next/swc-linux-arm64-musl': 15.0.4 - '@next/swc-linux-x64-gnu': 15.0.4 - '@next/swc-linux-x64-musl': 15.0.4 - '@next/swc-win32-arm64-msvc': 15.0.4 - '@next/swc-win32-x64-msvc': 15.0.4 + '@next/swc-darwin-arm64': 15.1.2 + '@next/swc-darwin-x64': 15.1.2 + '@next/swc-linux-arm64-gnu': 15.1.2 + '@next/swc-linux-arm64-musl': 15.1.2 + '@next/swc-linux-x64-gnu': 15.1.2 + '@next/swc-linux-x64-musl': 15.1.2 + '@next/swc-win32-arm64-msvc': 15.1.2 + '@next/swc-win32-x64-msvc': 15.1.2 '@playwright/test': 1.47.2 sharp: 0.33.5 transitivePeerDependencies: @@ -18338,6 +18815,8 @@ snapshots: just-extend: 6.2.0 path-to-regexp: 8.2.0 + node-cleanup@2.1.2: {} + node-dir@0.1.17: dependencies: minimatch: 3.1.2 @@ -18663,6 +19142,8 @@ snapshots: outvariant@1.4.3: {} + override-require@1.1.1: {} + p-event@5.0.1: dependencies: p-timeout: 5.1.0 @@ -18793,6 +19274,16 @@ snapshots: just-diff: 6.0.2 just-diff-apply: 5.5.0 + parse-diff@0.7.1: {} + + parse-git-config@2.0.3: + dependencies: + expand-tilde: 2.0.2 + git-config-path: 1.0.1 + ini: 1.3.8 + + parse-github-url@1.0.3: {} + parse-json@4.0.0: dependencies: error-ex: 1.3.2 @@ -18805,6 +19296,10 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + parse-link-header@2.0.0: + dependencies: + xtend: 4.0.2 + parse-ms@4.0.0: {} parse-passwd@1.0.0: {} @@ -18936,6 +19431,8 @@ snapshots: pify@5.0.0: {} + pinpoint@1.1.0: {} + pirates@4.0.6: {} piscina@4.7.0: @@ -19079,6 +19576,11 @@ snapshots: prettier: 3.4.1 tslib: 2.8.1 + prettyjson@1.2.5: + dependencies: + colors: 1.4.0 + minimist: 1.2.8 + prismjs@1.29.0: {} proc-log@4.2.0: {} @@ -19277,6 +19779,15 @@ snapshots: react-is@19.0.0: {} + react-redux@9.2.0(@types/react@18.3.18)(react@18.3.1)(redux@5.0.1): + dependencies: + '@types/use-sync-external-store': 0.0.6 + react: 18.3.1 + use-sync-external-store: 1.4.0(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + redux: 5.0.1 + react-refresh@0.14.2: {} react-resizable-panels@2.1.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1): @@ -19434,6 +19945,8 @@ snapshots: readdirp@4.0.2: {} + readline-sync@1.4.10: {} + recast@0.23.9: dependencies: ast-types: 0.16.1 @@ -19442,22 +19955,25 @@ snapshots: tiny-invariant: 1.3.3 tslib: 2.8.1 - recharts-scale@0.4.5: - dependencies: - decimal.js-light: 2.5.1 - - recharts@2.13.0-alpha.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + recharts@3.0.0-alpha.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react-is@19.0.0)(react@18.3.1)(redux@5.0.1): dependencies: + '@reduxjs/toolkit': 2.5.0(react-redux@9.2.0(@types/react@18.3.18)(react@18.3.1)(redux@5.0.1))(react@18.3.1) clsx: 2.1.1 - eventemitter3: 4.0.7 + decimal.js-light: 2.5.1 + eventemitter3: 5.0.1 + immer: 10.1.1 lodash: 4.17.21 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-is: 18.3.1 + react-is: 19.0.0 + react-redux: 9.2.0(@types/react@18.3.18)(react@18.3.1)(redux@5.0.1) react-smooth: 4.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - recharts-scale: 0.4.5 tiny-invariant: 1.3.3 - victory-vendor: 36.9.2 + use-sync-external-store: 1.4.0(react@18.3.1) + victory-vendor: 37.3.5 + transitivePeerDependencies: + - '@types/react' + - redux recursive-readdir@2.2.3: dependencies: @@ -19473,6 +19989,12 @@ snapshots: indent-string: 5.0.0 strip-indent: 4.0.0 + redux-thunk@3.1.0(redux@5.0.1): + dependencies: + redux: 5.0.1 + + redux@5.0.1: {} + reflect.getprototypeof@1.0.6: dependencies: call-bind: 1.0.7 @@ -19491,6 +20013,8 @@ snapshots: regenerator-runtime@0.12.1: {} + regenerator-runtime@0.13.11: {} + regenerator-runtime@0.14.1: {} regenerator-transform@0.15.2: @@ -20191,6 +20715,10 @@ snapshots: dependencies: copy-anything: 3.0.5 + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -20199,6 +20727,11 @@ snapshots: dependencies: has-flag: 4.0.0 + supports-hyperlinks@1.0.1: + dependencies: + has-flag: 2.0.0 + supports-color: 5.5.0 + supports-preserve-symlinks-flag@1.0.0: {} symbol-tree@3.2.4: {} @@ -20652,6 +21185,10 @@ snapshots: urlpattern-polyfill@8.0.2: {} + use-sync-external-store@1.4.0(react@18.3.1): + dependencies: + react: 18.3.1 + util-deprecate@1.0.2: {} utils-merge@1.0.1: {} @@ -20693,7 +21230,7 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - victory-vendor@36.9.2: + victory-vendor@37.3.5: dependencies: '@types/d3-array': 3.2.1 '@types/d3-ease': 3.0.2 @@ -20710,7 +21247,7 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - vite-node@2.1.7(@types/node@20.17.6)(terser@5.36.0): + vite-node@2.1.8(@types/node@20.17.6)(terser@5.36.0): dependencies: cac: 6.7.14 debug: 4.3.7 @@ -20738,7 +21275,7 @@ snapshots: fsevents: 2.3.3 terser: 5.36.0 - vitest-dom@0.1.1(vitest@2.1.7): + vitest-dom@0.1.1(vitest@2.1.8): dependencies: aria-query: 5.3.2 chalk: 5.3.0 @@ -20746,23 +21283,23 @@ snapshots: dom-accessibility-api: 0.6.3 lodash-es: 4.17.21 redent: 4.0.0 - vitest: 2.1.7(@types/node@20.17.6)(@vitest/browser@2.1.7)(jsdom@25.0.1)(msw@2.6.5(@types/node@20.17.6)(typescript@5.7.2))(terser@5.36.0) + vitest: 2.1.8(@types/node@20.17.6)(@vitest/browser@2.1.8)(jsdom@25.0.1)(msw@2.6.5(@types/node@20.17.6)(typescript@5.7.2))(terser@5.36.0) - vitest-fail-on-console@0.7.1(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0))(vitest@2.1.7): + vitest-fail-on-console@0.7.1(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0))(vitest@2.1.8): dependencies: chalk: 5.3.0 vite: 5.4.11(@types/node@20.17.6)(terser@5.36.0) - vitest: 2.1.7(@types/node@20.17.6)(@vitest/browser@2.1.7)(jsdom@25.0.1)(msw@2.6.5(@types/node@20.17.6)(typescript@5.7.2))(terser@5.36.0) + vitest: 2.1.8(@types/node@20.17.6)(@vitest/browser@2.1.8)(jsdom@25.0.1)(msw@2.6.5(@types/node@20.17.6)(typescript@5.7.2))(terser@5.36.0) - vitest@2.1.7(@types/node@20.17.6)(@vitest/browser@2.1.7)(jsdom@25.0.1)(msw@2.6.5(@types/node@20.17.6)(typescript@5.7.2))(terser@5.36.0): + vitest@2.1.8(@types/node@20.17.6)(@vitest/browser@2.1.8)(jsdom@25.0.1)(msw@2.6.5(@types/node@20.17.6)(typescript@5.7.2))(terser@5.36.0): dependencies: - '@vitest/expect': 2.1.7 - '@vitest/mocker': 2.1.7(msw@2.6.5(@types/node@20.17.6)(typescript@5.7.2))(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0)) - '@vitest/pretty-format': 2.1.7 - '@vitest/runner': 2.1.7 - '@vitest/snapshot': 2.1.7 - '@vitest/spy': 2.1.7 - '@vitest/utils': 2.1.7 + '@vitest/expect': 2.1.8 + '@vitest/mocker': 2.1.8(msw@2.6.5(@types/node@20.17.6)(typescript@5.7.2))(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0)) + '@vitest/pretty-format': 2.1.8 + '@vitest/runner': 2.1.8 + '@vitest/snapshot': 2.1.8 + '@vitest/spy': 2.1.8 + '@vitest/utils': 2.1.8 chai: 5.1.2 debug: 4.3.7 expect-type: 1.1.0 @@ -20774,11 +21311,11 @@ snapshots: tinypool: 1.0.1 tinyrainbow: 1.2.0 vite: 5.4.11(@types/node@20.17.6)(terser@5.36.0) - vite-node: 2.1.7(@types/node@20.17.6)(terser@5.36.0) + vite-node: 2.1.8(@types/node@20.17.6)(terser@5.36.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.17.6 - '@vitest/browser': 2.1.7(@types/node@20.17.6)(playwright@1.48.2)(typescript@5.7.2)(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0))(vitest@2.1.7) + '@vitest/browser': 2.1.8(@types/node@20.17.6)(playwright@1.48.2)(typescript@5.7.2)(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0))(vitest@2.1.8) jsdom: 25.0.1 transitivePeerDependencies: - less @@ -21003,6 +21540,8 @@ snapshots: ws@8.18.0: {} + xcase@2.0.1: {} + xml-name-validator@5.0.0: {} xmlchars@2.2.0: {}