From a0999c104e36f3161a0edde55dfa1493ad1ae670 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 18 Dec 2024 13:41:13 +0000 Subject: [PATCH 1/2] build(release v1.19.0): See CHANGE_LOG.md --- CHANGE_LOG.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CHANGE_LOG.md b/CHANGE_LOG.md index d76cf4c3..e7fb418c 100644 --- a/CHANGE_LOG.md +++ b/CHANGE_LOG.md @@ -1,3 +1,15 @@ +# [1.19.0](https://github.com/oaknational/oak-ai-lesson-assistant/compare/v1.18.2...v1.19.0) (2024-12-18) + + +### Bug Fixes + +* sonar duplication ([#397](https://github.com/oaknational/oak-ai-lesson-assistant/issues/397)) ([dea3106](https://github.com/oaknational/oak-ai-lesson-assistant/commit/dea3106d249119169e515d7ccebc827f324bdbf3)) + + +### Features + +* soft delete ([#383](https://github.com/oaknational/oak-ai-lesson-assistant/issues/383)) ([9dee4ad](https://github.com/oaknational/oak-ai-lesson-assistant/commit/9dee4adb840a0a5d96e43f02349ad04597862539)) + ## [1.18.2](https://github.com/oaknational/oak-ai-lesson-assistant/compare/v1.18.1...v1.18.2) (2024-12-17) ## [1.18.1](https://github.com/oaknational/oak-ai-lesson-assistant/compare/v1.18.0...v1.18.1) (2024-12-16) From 2f255b3656c4c1c53bafa3b1bed1b795c70a84c6 Mon Sep 17 00:00:00 2001 From: Joe Baker Date: Thu, 19 Dec 2024 08:43:55 +0000 Subject: [PATCH 2/2] feat: react scan (#445) --- apps/nextjs/package.json | 1 + apps/nextjs/src/app/aila/page-contents.tsx | 5 + apps/nextjs/src/app/layout.tsx | 13 + apps/nextjs/src/hooks/useReactScan.ts | 149 +++ .../tests-e2e/tests/chat-performance.test.ts | 66 ++ package.json | 5 +- packages/logger/index.ts | 13 +- pnpm-lock.yaml | 1032 +++++++++++------ 8 files changed, 940 insertions(+), 344 deletions(-) create mode 100644 apps/nextjs/src/hooks/useReactScan.ts create mode 100644 apps/nextjs/tests-e2e/tests/chat-performance.test.ts diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index a6a7f072..d54f726c 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -106,6 +106,7 @@ "react-hot-toast": "^2.4.1", "react-intersection-observer": "^9.6.0", "react-markdown": "^9.0.0", + "react-scan": "^0.0.43", "react-syntax-highlighter": "^15.5.0", "react-textarea-autosize": "^8.5.3", "remark-gfm": "^4.0.0", diff --git a/apps/nextjs/src/app/aila/page-contents.tsx b/apps/nextjs/src/app/aila/page-contents.tsx index 8dce45b3..4800a2fe 100644 --- a/apps/nextjs/src/app/aila/page-contents.tsx +++ b/apps/nextjs/src/app/aila/page-contents.tsx @@ -2,12 +2,17 @@ import React from "react"; +import { useReactScan } from "hooks/useReactScan"; + import { Chat } from "@/components/AppComponents/Chat/Chat/chat"; +import LessonPlanDisplay from "@/components/AppComponents/Chat/chat-lessonPlanDisplay"; import Layout from "@/components/AppComponents/Layout"; import { ChatProvider } from "@/components/ContextProviders/ChatProvider"; import LessonPlanTrackingProvider from "@/lib/analytics/lessonPlanTrackingContext"; const ChatPageContents = ({ id }: { readonly id: string }) => { + useReactScan({ component: LessonPlanDisplay, interval: 10000 }); + return ( diff --git a/apps/nextjs/src/app/layout.tsx b/apps/nextjs/src/app/layout.tsx index d476bfad..8083c33e 100644 --- a/apps/nextjs/src/app/layout.tsx +++ b/apps/nextjs/src/app/layout.tsx @@ -1,5 +1,6 @@ import React from "react"; import { Toaster } from "react-hot-toast"; +import { Monitoring } from "react-scan/dist/core/monitor/params/next"; import { ClerkProvider } from "@clerk/nextjs"; import "@fontsource/lexend"; @@ -38,6 +39,11 @@ const provided_vercel_url = const vercel_url = `https://${provided_vercel_url}`; +const reactScanApiKey = process.env.NEXT_PUBLIC_REACT_SCAN_KEY; +const addReactScanMonitor = + process.env.NEXT_PUBLIC_RENDER_MONITOR === "true" && + reactScanApiKey !== undefined; + const lexend = Lexend({ subsets: ["latin"], display: "swap", @@ -74,6 +80,7 @@ export default async function RootLayout({ children, }: Readonly) { const nonce = headers().get("x-nonce"); + if (!nonce) { // Our middleware path matching excludes static paths like /_next/static/... // If a static path becomes a 404, CSP headers aren't set @@ -93,6 +100,12 @@ export default async function RootLayout({ GeistMono.variable, )} > + {addReactScanMonitor && ( + + )} ( + report: RenderData, + component: React.ComponentType, +) => { + return transformReport([component?.name, report]); +}; + +const getSortedAndFilteredReports = (reports: Map) => { + const reportsArray = Array.from(reports.entries()) + .filter(([componentName]) => { + // Exclude styled components and other library-generated components + const isCustomComponent = + // Check if name exists and doesn't start with known library prefixes + componentName && + !componentName.startsWith("Styled") && + !componentName.includes("styled") && + !componentName.startsWith("_") && + !componentName.includes("$") && + componentName !== "div" && + componentName !== "span"; + + return isCustomComponent; + }) + .map(transformReport); + + const sortedReports = reportsArray.toSorted( + (a, b) => b.renderCount - a.renderCount, + ); + return sortedReports; +}; + +function getWindowPropertyName(component: React.ComponentType): string { + return `reactScan${component.displayName ?? component.name ?? "UnknownComponent"}`; +} + +function setWindowObjectForPlaywright( + component: React.ComponentType | undefined, + report: sortedReport, +) { + if (component) { + const windowPropertyName = getWindowPropertyName(component); + window[windowPropertyName] = report; + } +} + +function transformReport([componentName, report]: [ + string | undefined, + RenderData, +]) { + return { + name: componentName, + renderCount: report.renders.length, + totalRenderTime: report.time, + }; +} + +interface RenderData { + count: number; + time: number; + renders: Array; + displayName: string | null; + type: React.ComponentType | null; +} + +type sortedReport = { + name: string | undefined; + renderCount: number; + totalRenderTime: number; +}; + +// Enable React Scan for performance monitoring - use with dev:react-scan +// Pass in component to get report for specific component +// Pass in interval to get reports at regular intervals +// - useReactScan({ component: LessonPlanDisplay, interval: 10000 }); +// When a component is passed it will be added to window object for Playwright testing + +export const useReactScan = ({ + component, + interval, +}: { + component?: React.ComponentType; + interval?: number; +}) => { + useEffect(() => { + if (isRenderScanEnabled) { + try { + log.info("Initializing React Scan..."); + if (typeof window !== "undefined") { + scan({ + enabled: true, + log: true, + report: true, + renderCountThreshold: 0, + showToolbar: true, + }); + } + log.info("React Scan initialized successfully"); + } catch (error) { + log.error("React Scan initialization error:", error); + } + + const getRenderReport = () => { + try { + log.info("Attempting to get render reports..."); + + const report = component ? getReport(component) : getReport(); + + if (report instanceof Map) { + const allComponentReport = getSortedAndFilteredReports(report); + log.table(allComponentReport); + } else if (report !== null && component) { + const singleComponentReport = getSingleReport(report, component); + setWindowObjectForPlaywright(component, singleComponentReport); + log.info("Single Report:,", singleComponentReport); + } + } catch (error) { + log.error("Performance Monitoring Error:", error); + } + }; + // If interval is provided, get reports at regular intervals + if (interval) { + const performanceInterval = setInterval(getRenderReport, interval); + + return () => clearInterval(performanceInterval); + } else { + getRenderReport(); + } + } + }, [component, interval]); +}; diff --git a/apps/nextjs/tests-e2e/tests/chat-performance.test.ts b/apps/nextjs/tests-e2e/tests/chat-performance.test.ts new file mode 100644 index 00000000..ed4be11e --- /dev/null +++ b/apps/nextjs/tests-e2e/tests/chat-performance.test.ts @@ -0,0 +1,66 @@ +import { expect, test, type Page } from "@playwright/test"; + +import { TEST_BASE_URL } from "../config/config"; +import { prepareUser } from "../helpers/auth"; +import { cspSafeWaitForFunction } from "../helpers/auth/clerkHelpers"; +import { bypassVercelProtection } from "../helpers/vercel"; +import { isFinished } from "./aila-chat/helpers"; + +declare global { + interface Window { + reactScanLessonPlanDisplay: { renderCount: number }; + NEXT_PUBLIC_ENABLE_RENDER_SCAN?: string; + } +} + +test.describe("Component renders during lesson chat", () => { + test.beforeEach(async ({ page }) => { + await page.addInitScript(() => { + window.NEXT_PUBLIC_ENABLE_RENDER_SCAN = "true"; + }); + await test.step("Setup", async () => { + await bypassVercelProtection(page); + const login = await prepareUser(page, "typical"); + + await page.goto(`${TEST_BASE_URL}/aila/${login.chatId}`); + await isFinished(page); + }); + }); + + // this is disabled because react scan is not currently working in preview deplyments. + test.skip("There are no unnecessary rerenders across left and right side of chat", async ({ + page, + }) => { + await test.step("Chat box keyboard input does not create rerenders in lesson plan", async () => { + await verifyChatInputRenders(page); + }); + }); + + async function verifyChatInputRenders(page: Page) { + await page.waitForTimeout(10000); + + await cspSafeWaitForFunction( + page, + () => + window.reactScanLessonPlanDisplay && + typeof window.reactScanLessonPlanDisplay.renderCount === "number", + ); + + const textbox = page.getByTestId("chat-input"); + const message = "Create a KS1 lesson on the end of Roman Britain"; + const initialRenderAmount: number = await page.evaluate( + () => window.reactScanLessonPlanDisplay.renderCount, + ); + await page.keyboard.type(message); + await expect(textbox).toContainText(message); + await page.waitForTimeout(10000); + const finalRenderAmount: number = await page.evaluate( + () => window.reactScanLessonPlanDisplay.renderCount, + ); + + expect(initialRenderAmount).toBeLessThan(20); + // We should expect the render count to be the same because we are only + // interacting with the left side of the chat. This should be fixed and updated + expect(finalRenderAmount).toBeLessThan(400); + } +}); diff --git a/package.json b/package.json index f023c4fd..8f4d8a85 100644 --- a/package.json +++ b/package.json @@ -17,9 +17,9 @@ "db-push": "turbo db-push", "db-push-force": "turbo db-push-force", "db-seed": "turbo db-seed", - "deps": "NODE_OPTIONS=\"--max-old-space-size=8192\" dependency-cruiser --progress --max-depth 10 --output-type err --config .dependency-cruiser.cjs apps packages", - "deps:graph": "NODE_OPTIONS=\"--max-old-space-size=8192\" dependency-cruiser --progress --max-depth 10 --config .dependency-cruiser.cjs --output-type dot apps packages | dot -T svg > dependency-graph.svg", "dev": "FORCE_COLOR=1 turbo dev --parallel --ui=stream --log-prefix=none --filter=!@oakai/db", + "dev:react-scan": "NEXT_PUBLIC_ENABLE_RENDER_SCAN=true pnpm dev", + "dev:react-scan-monitor-cloud": "NEXT_PUBLIC_RENDER_MONITOR=true pnpm dev", "doppler:pull:dev": "doppler secrets download --config dev --no-file --format env > .env", "doppler:pull:stg": "doppler secrets download --config stg --no-file --format env > .env", "doppler:run:stg": "doppler run -c stg --silent", @@ -57,7 +57,6 @@ "@semantic-release/git": "^10.0.1", "@types/jest": "^29.5.14", "autoprefixer": "^10.4.16", - "dependency-cruiser": "^16.7.0", "husky": "^8.0.3", "lint-staged": "^15.2.0", "next": "14.2.18", diff --git a/packages/logger/index.ts b/packages/logger/index.ts index 11f7d85f..c8f0a22c 100644 --- a/packages/logger/index.ts +++ b/packages/logger/index.ts @@ -31,7 +31,6 @@ type ChildKey = | "aila:stream" | "aila:rag" | "aila:testing" - | "aila:chat" | "aila:experimental-patches" | "analytics" | "app" @@ -39,6 +38,7 @@ type ChildKey = | "chat" | "cloudinary" | "consent" + | "cron" | "db" | "demo" | "exports" @@ -64,8 +64,8 @@ type ChildKey = | "transcripts" | "trpc" | "ui" - | "webhooks" - | "cron"; + | "ui:performance" + | "webhooks"; const errorLogger = typeof window === "undefined" @@ -88,10 +88,17 @@ const errorLogger = */ export function aiLogger(childKey: ChildKey) { const debugLogger = debugBase.extend(childKey); + + const tableLogger = (tabularData: unknown[], columns?: string[]) => { + if (typeof console !== "undefined" && console.table) { + console.table(tabularData, columns); + } + }; return { info: debugLogger, warn: debugLogger, error: errorLogger.bind(structuredLogger), + table: tableLogger, }; } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 77b25dee..8d636241 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -41,9 +41,6 @@ importers: autoprefixer: specifier: ^10.4.16 version: 10.4.17(postcss@8.4.35) - dependency-cruiser: - specifier: ^16.7.0 - version: 16.7.0 husky: specifier: ^8.0.3 version: 8.0.3 @@ -52,7 +49,7 @@ importers: version: 15.2.2 next: specifier: 14.2.18 - version: 14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@18.2.0)(react@18.2.0) + version: 14.2.18(react-dom@18.2.0)(react@18.2.0) postcss: specifier: ^8.4.32 version: 8.4.35 @@ -262,7 +259,7 @@ importers: version: 2.0.0 next: specifier: 14.2.18 - version: 14.2.18(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.2.0)(react@18.2.0) + version: 14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.2.0)(react@18.2.0) object-hash: specifier: ^3.0.0 version: 3.0.0 @@ -305,6 +302,9 @@ importers: react-markdown: specifier: ^9.0.0 version: 9.0.0(@types/react@18.2.57)(react@18.2.0) + react-scan: + specifier: ^0.0.43 + version: 0.0.43(next@14.2.18)(react-dom@18.2.0)(react@18.2.0) react-syntax-highlighter: specifier: ^15.5.0 version: 15.5.0(react@18.2.0) @@ -458,7 +458,7 @@ importers: version: 3.4.1(ts-node@10.9.2) ts-jest: specifier: ^29.2.5 - version: 29.2.5(@babel/core@7.24.5)(esbuild@0.21.5)(jest@29.7.0)(typescript@5.7.2) + version: 29.2.5(@babel/core@7.26.0)(esbuild@0.21.5)(jest@29.7.0)(typescript@5.7.2) typescript: specifier: 5.7.2 version: 5.7.2 @@ -555,7 +555,7 @@ importers: version: 0.11.0(@pollyjs/core@6.0.6) ts-jest: specifier: ^29.2.5 - version: 29.2.5(@babel/core@7.26.0)(jest@29.7.0)(typescript@5.7.2) + version: 29.2.5(@babel/core@7.26.0)(esbuild@0.21.5)(jest@29.7.0)(typescript@5.7.2) typescript: specifier: 5.7.2 version: 5.7.2 @@ -588,7 +588,7 @@ importers: version: 1.41.1 next: specifier: 14.2.18 - version: 14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@18.2.0)(react@18.2.0) + version: 14.2.18(react-dom@18.2.0)(react@18.2.0) remeda: specifier: ^1.29.0 version: 1.29.0 @@ -892,7 +892,7 @@ importers: version: 0.11.0(@pollyjs/core@6.0.6) ts-jest: specifier: ^29.2.5 - version: 29.2.5(@babel/core@7.26.0)(jest@29.7.0)(typescript@5.7.2) + version: 29.2.5(@babel/core@7.26.0)(esbuild@0.21.5)(jest@29.7.0)(typescript@5.7.2) packages/logger: dependencies: @@ -1105,13 +1105,13 @@ packages: peerDependencies: graphql: '*' dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.26.0 '@babel/generator': 7.26.2 '@babel/parser': 7.26.2 '@babel/runtime': 7.24.5 '@babel/traverse': 7.25.9(supports-color@5.5.0) '@babel/types': 7.26.0 - babel-preset-fbjs: 3.4.0(@babel/core@7.24.5) + babel-preset-fbjs: 3.4.0(@babel/core@7.26.0) chalk: 4.1.2 fb-watchman: 2.0.2 fbjs: 3.0.5 @@ -1162,6 +1162,7 @@ packages: /@babel/compat-data@7.25.2: resolution: {integrity: sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==} engines: {node: '>=6.9.0'} + dev: true /@babel/compat-data@7.26.2: resolution: {integrity: sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==} @@ -1188,6 +1189,7 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: true /@babel/core@7.26.0: resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} @@ -1273,6 +1275,7 @@ packages: browserslist: 4.23.3 lru-cache: 5.1.1 semver: 6.3.1 + dev: true /@babel/helper-compilation-targets@7.25.9: resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} @@ -1302,6 +1305,24 @@ packages: - supports-color dev: true + /@babel/helper-create-class-features-plugin@7.25.0(@babel/core@7.26.0): + resolution: {integrity: sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-member-expression-to-functions': 7.24.8 + '@babel/helper-optimise-call-expression': 7.24.7 + '@babel/helper-replace-supers': 7.25.0(@babel/core@7.26.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/traverse': 7.25.9(supports-color@5.5.0) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/helper-create-regexp-features-plugin@7.25.2(@babel/core@7.24.5): resolution: {integrity: sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==} engines: {node: '>=6.9.0'} @@ -1320,7 +1341,7 @@ packages: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-plugin-utils': 7.24.8 debug: 4.3.7(supports-color@5.5.0) lodash.debounce: 4.0.8 @@ -1367,6 +1388,7 @@ packages: '@babel/types': 7.26.0 transitivePeerDependencies: - supports-color + dev: true /@babel/helper-module-imports@7.25.9(supports-color@5.5.0): resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} @@ -1390,6 +1412,21 @@ packages: '@babel/traverse': 7.25.9(supports-color@5.5.0) transitivePeerDependencies: - supports-color + dev: true + + /@babel/helper-module-transforms@7.26.0(@babel/core@7.24.5): + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-module-imports': 7.25.9(supports-color@5.5.0) + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.25.9(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + dev: true /@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0): resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} @@ -1454,6 +1491,20 @@ packages: - supports-color dev: true + /@babel/helper-replace-supers@7.25.0(@babel/core@7.26.0): + resolution: {integrity: sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-member-expression-to-functions': 7.24.8 + '@babel/helper-optimise-call-expression': 7.24.7 + '@babel/traverse': 7.25.9(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + dev: true + /@babel/helper-simple-access@7.24.7: resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} @@ -1462,6 +1513,7 @@ packages: '@babel/types': 7.26.0 transitivePeerDependencies: - supports-color + dev: true /@babel/helper-skip-transparent-expression-wrappers@7.24.7: resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} @@ -1483,6 +1535,7 @@ packages: /@babel/helper-string-parser@7.24.8: resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} engines: {node: '>=6.9.0'} + dev: true /@babel/helper-string-parser@7.25.9: resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} @@ -1491,6 +1544,7 @@ packages: /@babel/helper-validator-identifier@7.24.7: resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} + dev: true /@babel/helper-validator-identifier@7.25.9: resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} @@ -1499,6 +1553,7 @@ packages: /@babel/helper-validator-option@7.24.8: resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} engines: {node: '>=6.9.0'} + dev: true /@babel/helper-validator-option@7.25.9: resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} @@ -1524,6 +1579,7 @@ packages: '@babel/types': 7.26.0 transitivePeerDependencies: - supports-color + dev: true /@babel/helpers@7.26.0: resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} @@ -1556,6 +1612,7 @@ packages: hasBin: true dependencies: '@babel/types': 7.26.0 + dev: true /@babel/parser@7.26.2: resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} @@ -1624,33 +1681,33 @@ packages: - supports-color dev: true - /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.24.5): + /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.26.0): resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.24.5) + '@babel/core': 7.26.0 + '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.24.5): + /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.26.0): resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.25.2 - '@babel/core': 7.24.5 - '@babel/helper-compilation-targets': 7.25.2 + '@babel/compat-data': 7.26.2 + '@babel/core': 7.26.0 + '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.26.0) dev: true /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.5): @@ -1671,6 +1728,15 @@ packages: '@babel/helper-plugin-utils': 7.24.7 dev: true + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.0): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.7 + dev: true + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.5): resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: @@ -1680,6 +1746,15 @@ packages: '@babel/helper-plugin-utils': 7.24.8 dev: true + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.0): + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.5): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: @@ -1689,6 +1764,15 @@ packages: '@babel/helper-plugin-utils': 7.24.7 dev: true + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.0): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.7 + dev: true + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.5): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} @@ -1717,13 +1801,13 @@ packages: '@babel/helper-plugin-utils': 7.24.8 dev: true - /@babel/plugin-syntax-flow@7.24.7(@babel/core@7.24.5): + /@babel/plugin-syntax-flow@7.24.7(@babel/core@7.26.0): resolution: {integrity: sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.24.8 dev: true @@ -1737,6 +1821,16 @@ packages: '@babel/helper-plugin-utils': 7.24.8 dev: true + /@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.26.0): + resolution: {integrity: sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + /@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.24.5): resolution: {integrity: sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==} engines: {node: '>=6.9.0'} @@ -1756,6 +1850,15 @@ packages: '@babel/helper-plugin-utils': 7.24.7 dev: true + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.0): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.7 + dev: true + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.5): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: @@ -1765,6 +1868,15 @@ packages: '@babel/helper-plugin-utils': 7.24.7 dev: true + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.0): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.7 + dev: true + /@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.5): resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} engines: {node: '>=6.9.0'} @@ -1775,13 +1887,23 @@ packages: '@babel/helper-plugin-utils': 7.24.7 dev: true - /@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.24.5): + /@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.26.0): + resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.7 + dev: true + + /@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0): resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 dev: false @@ -1794,6 +1916,15 @@ packages: '@babel/helper-plugin-utils': 7.24.7 dev: true + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.0): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.7 + dev: true + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.5): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: @@ -1803,6 +1934,15 @@ packages: '@babel/helper-plugin-utils': 7.24.7 dev: true + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.0): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.7 + dev: true + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.5): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: @@ -1812,6 +1952,15 @@ packages: '@babel/helper-plugin-utils': 7.24.7 dev: true + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.0): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.7 + dev: true + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.5): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: @@ -1821,6 +1970,15 @@ packages: '@babel/helper-plugin-utils': 7.24.7 dev: true + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.0): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.7 + dev: true + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.5): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: @@ -1830,6 +1988,15 @@ packages: '@babel/helper-plugin-utils': 7.24.7 dev: true + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.0): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.7 + dev: true + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.5): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: @@ -1839,6 +2006,15 @@ packages: '@babel/helper-plugin-utils': 7.24.7 dev: true + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.0): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.7 + dev: true + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.5): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} @@ -1859,6 +2035,16 @@ packages: '@babel/helper-plugin-utils': 7.24.7 dev: true + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.0): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.7 + dev: true + /@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.24.5): resolution: {integrity: sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==} engines: {node: '>=6.9.0'} @@ -1869,6 +2055,16 @@ packages: '@babel/helper-plugin-utils': 7.24.7 dev: true + /@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.26.0): + resolution: {integrity: sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.7 + dev: true + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.5): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} @@ -1890,6 +2086,16 @@ packages: '@babel/helper-plugin-utils': 7.24.8 dev: true + /@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.26.0): + resolution: {integrity: sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + /@babel/plugin-transform-async-generator-functions@7.25.0(@babel/core@7.24.5): resolution: {integrity: sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==} engines: {node: '>=6.9.0'} @@ -1929,6 +2135,16 @@ packages: '@babel/helper-plugin-utils': 7.24.8 dev: true + /@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.26.0): + resolution: {integrity: sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + /@babel/plugin-transform-block-scoping@7.25.0(@babel/core@7.24.5): resolution: {integrity: sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==} engines: {node: '>=6.9.0'} @@ -1939,6 +2155,16 @@ packages: '@babel/helper-plugin-utils': 7.24.8 dev: true + /@babel/plugin-transform-block-scoping@7.25.0(@babel/core@7.26.0): + resolution: {integrity: sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + /@babel/plugin-transform-class-properties@7.24.7(@babel/core@7.24.5): resolution: {integrity: sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==} engines: {node: '>=6.9.0'} @@ -1974,7 +2200,7 @@ packages: dependencies: '@babel/core': 7.24.5 '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-replace-supers': 7.25.0(@babel/core@7.24.5) '@babel/traverse': 7.25.9(supports-color@5.5.0) @@ -1983,6 +2209,23 @@ packages: - supports-color dev: true + /@babel/plugin-transform-classes@7.25.0(@babel/core@7.26.0): + resolution: {integrity: sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-replace-supers': 7.25.0(@babel/core@7.26.0) + '@babel/traverse': 7.25.9(supports-color@5.5.0) + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.24.5): resolution: {integrity: sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==} engines: {node: '>=6.9.0'} @@ -1991,7 +2234,18 @@ packages: dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.24.8 - '@babel/template': 7.25.0 + '@babel/template': 7.25.9 + dev: true + + /@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.26.0): + resolution: {integrity: sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/template': 7.25.9 dev: true /@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.24.5): @@ -2004,6 +2258,16 @@ packages: '@babel/helper-plugin-utils': 7.24.8 dev: true + /@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.26.0): + resolution: {integrity: sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + /@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.24.5): resolution: {integrity: sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==} engines: {node: '>=6.9.0'} @@ -2071,15 +2335,15 @@ packages: '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.5) dev: true - /@babel/plugin-transform-flow-strip-types@7.25.2(@babel/core@7.24.5): + /@babel/plugin-transform-flow-strip-types@7.25.2(@babel/core@7.26.0): resolution: {integrity: sha512-InBZ0O8tew5V0K6cHcQ+wgxlrjOw1W4wDXLkOTjLRD8GYhTSkxTVBtdy3MMtvYBrbAWa1Qm3hNoTc1620Yj+Mg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.24.5) + '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.26.0) dev: true /@babel/plugin-transform-for-of@7.24.7(@babel/core@7.24.5): @@ -2095,6 +2359,19 @@ packages: - supports-color dev: true + /@babel/plugin-transform-for-of@7.24.7(@babel/core@7.26.0): + resolution: {integrity: sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-function-name@7.25.1(@babel/core@7.24.5): resolution: {integrity: sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==} engines: {node: '>=6.9.0'} @@ -2102,7 +2379,21 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/traverse': 7.25.9(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-function-name@7.25.1(@babel/core@7.26.0): + resolution: {integrity: sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-plugin-utils': 7.24.8 '@babel/traverse': 7.25.9(supports-color@5.5.0) transitivePeerDependencies: @@ -2130,6 +2421,16 @@ packages: '@babel/helper-plugin-utils': 7.24.8 dev: true + /@babel/plugin-transform-literals@7.25.2(@babel/core@7.26.0): + resolution: {integrity: sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + /@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.24.5): resolution: {integrity: sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==} engines: {node: '>=6.9.0'} @@ -2151,6 +2452,16 @@ packages: '@babel/helper-plugin-utils': 7.24.8 dev: true + /@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.26.0): + resolution: {integrity: sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + /@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.24.5): resolution: {integrity: sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==} engines: {node: '>=6.9.0'} @@ -2158,7 +2469,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.24.5) + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.24.5) '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color @@ -2171,7 +2482,21 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.24.5) + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-simple-access': 7.24.7 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.26.0): + resolution: {integrity: sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-simple-access': 7.24.7 transitivePeerDependencies: @@ -2185,7 +2510,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.24.5) + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.24.5) '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-validator-identifier': 7.25.9 '@babel/traverse': 7.25.9(supports-color@5.5.0) @@ -2200,7 +2525,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.24.5) + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.24.5) '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color @@ -2275,6 +2600,19 @@ packages: - supports-color dev: true + /@babel/plugin-transform-object-super@7.24.7(@babel/core@7.26.0): + resolution: {integrity: sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-replace-supers': 7.25.0(@babel/core@7.26.0) + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.24.5): resolution: {integrity: sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==} engines: {node: '>=6.9.0'} @@ -2310,6 +2648,16 @@ packages: '@babel/helper-plugin-utils': 7.24.8 dev: true + /@babel/plugin-transform-parameters@7.24.7(@babel/core@7.26.0): + resolution: {integrity: sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + /@babel/plugin-transform-private-methods@7.24.7(@babel/core@7.24.5): resolution: {integrity: sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==} engines: {node: '>=6.9.0'} @@ -2348,6 +2696,16 @@ packages: '@babel/helper-plugin-utils': 7.24.8 dev: true + /@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.26.0): + resolution: {integrity: sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + /@babel/plugin-transform-react-display-name@7.24.7(@babel/core@7.24.5): resolution: {integrity: sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==} engines: {node: '>=6.9.0'} @@ -2358,6 +2716,16 @@ packages: '@babel/helper-plugin-utils': 7.24.8 dev: true + /@babel/plugin-transform-react-display-name@7.24.7(@babel/core@7.26.0): + resolution: {integrity: sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + /@babel/plugin-transform-react-jsx-development@7.24.7(@babel/core@7.24.5): resolution: {integrity: sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==} engines: {node: '>=6.9.0'} @@ -2386,6 +2754,22 @@ packages: - supports-color dev: true + /@babel/plugin-transform-react-jsx@7.25.2(@babel/core@7.26.0): + resolution: {integrity: sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.26.0) + '@babel/types': 7.26.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-react-pure-annotations@7.24.7(@babel/core@7.24.5): resolution: {integrity: sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==} engines: {node: '>=6.9.0'} @@ -2445,6 +2829,16 @@ packages: '@babel/helper-plugin-utils': 7.24.8 dev: true + /@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.26.0): + resolution: {integrity: sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + /@babel/plugin-transform-spread@7.24.7(@babel/core@7.24.5): resolution: {integrity: sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==} engines: {node: '>=6.9.0'} @@ -2458,6 +2852,19 @@ packages: - supports-color dev: true + /@babel/plugin-transform-spread@7.24.7(@babel/core@7.26.0): + resolution: {integrity: sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.24.5): resolution: {integrity: sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==} engines: {node: '>=6.9.0'} @@ -2478,6 +2885,16 @@ packages: '@babel/helper-plugin-utils': 7.24.8 dev: true + /@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.26.0): + resolution: {integrity: sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + /@babel/plugin-transform-typeof-symbol@7.24.8(@babel/core@7.24.5): resolution: {integrity: sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==} engines: {node: '>=6.9.0'} @@ -2723,6 +3140,7 @@ packages: '@babel/code-frame': 7.24.7 '@babel/parser': 7.25.3 '@babel/types': 7.25.2 + dev: true /@babel/template@7.25.9: resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} @@ -2779,6 +3197,7 @@ packages: '@babel/helper-string-parser': 7.24.8 '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 + dev: true /@babel/types@7.26.0: resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} @@ -2825,6 +3244,21 @@ packages: - react dev: true + /@clack/core@0.3.5: + resolution: {integrity: sha512-5cfhQNH+1VQ2xLQlmzXMqUoiaH0lRBq9/CLW9lTyMbuKLC3+xEK01tHVvyut++mLOn5urSHmkm6I0Lg9MaJSTQ==} + dependencies: + picocolors: 1.1.1 + sisteransi: 1.0.5 + dev: false + + /@clack/prompts@0.8.2: + resolution: {integrity: sha512-6b9Ab2UiZwJYA9iMyboYyW9yJvAO9V753ZhS+DHKEjZRKAxPPOb7MXXu84lsPFG+vZt6FRFniZ8rXi+zCIw4yQ==} + dependencies: + '@clack/core': 0.3.5 + picocolors: 1.1.1 + sisteransi: 1.0.5 + dev: false + /@clerk/backend@1.13.6(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-aHQZk/qDk4KEJFlEKB27mxm5rhThPJ+hu/cAmvZumrW/XMile44DhGqltV93qq1AiCl9eEprlSOr5KAfXRIAzg==} engines: {node: '>=18.17.0'} @@ -2880,7 +3314,7 @@ packages: '@clerk/shared': 2.9.0(react-dom@18.2.0)(react@18.2.0) '@clerk/types': 4.25.0 crypto-js: 4.2.0 - next: 14.2.18(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.2.0)(react@18.2.0) + next: 14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) server-only: 0.0.1 @@ -3439,13 +3873,6 @@ packages: '@floating-ui/utils': 0.2.8 dev: false - /@floating-ui/dom@1.5.1: - resolution: {integrity: sha512-KwvVcPSXg6mQygvA1TjbN/gh///36kKtllIF8SUm0qpFj8+rvYrpvlYdL1JoA71SHpDqgSSdGOSoQ0Mp3uY5aw==} - dependencies: - '@floating-ui/core': 1.6.8 - '@floating-ui/utils': 0.1.1 - dev: false - /@floating-ui/dom@1.6.12: resolution: {integrity: sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==} dependencies: @@ -3459,7 +3886,7 @@ packages: react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: - '@floating-ui/dom': 1.5.1 + '@floating-ui/dom': 1.6.12 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -3475,10 +3902,6 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@floating-ui/utils@0.1.1: - resolution: {integrity: sha512-m0G6wlnhm/AX0H12IOWtK8gASEMffnX08RtKkCgTdHb9JpHKGloI7icFfLg9ZmQeavcvR0PKmzxClyuFPSjKWw==} - dev: false - /@floating-ui/utils@0.2.8: resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==} dev: false @@ -3831,7 +4254,7 @@ packages: '@repeaterjs/repeater': 3.0.6 dataloader: 2.2.2 graphql: 16.9.0 - tslib: 2.7.0 + tslib: 2.8.1 dev: true /@graphql-tools/documents@1.0.1(graphql@16.9.0): @@ -3856,7 +4279,7 @@ packages: graphql: 16.9.0 graphql-ws: 5.16.0(graphql@16.9.0) isomorphic-ws: 5.0.0(ws@8.18.0) - tslib: 2.7.0 + tslib: 2.8.1 ws: 8.18.0 transitivePeerDependencies: - bufferutil @@ -3875,7 +4298,7 @@ packages: extract-files: 11.0.0 graphql: 16.9.0 meros: 1.3.0(@types/node@20.17.9) - tslib: 2.7.0 + tslib: 2.8.1 value-or-promise: 1.0.12 transitivePeerDependencies: - '@types/node' @@ -3891,7 +4314,7 @@ packages: '@types/ws': 8.5.12 graphql: 16.9.0 isomorphic-ws: 5.0.0(ws@8.18.0) - tslib: 2.7.0 + tslib: 2.8.1 ws: 8.18.0 transitivePeerDependencies: - bufferutil @@ -3969,9 +4392,9 @@ packages: peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.26.0 '@babel/parser': 7.26.2 - '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.24.5) + '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.26.0) '@babel/traverse': 7.25.9(supports-color@5.5.0) '@babel/types': 7.26.0 '@graphql-tools/utils': 10.5.4(graphql@16.9.0) @@ -4027,7 +4450,7 @@ packages: dependencies: '@graphql-tools/utils': 10.5.4(graphql@16.9.0) graphql: 16.9.0 - tslib: 2.7.0 + tslib: 2.8.1 dev: true /@graphql-tools/optimize@2.0.0(graphql@16.9.0): @@ -4037,7 +4460,7 @@ packages: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: graphql: 16.9.0 - tslib: 2.7.0 + tslib: 2.8.1 dev: true /@graphql-tools/prisma-loader@8.0.4(@types/node@20.17.9)(graphql@16.9.0): @@ -4080,7 +4503,7 @@ packages: '@ardatan/relay-compiler': 12.0.0(graphql@16.9.0) '@graphql-tools/utils': 10.5.4(graphql@16.9.0) graphql: 16.9.0 - tslib: 2.7.0 + tslib: 2.8.1 transitivePeerDependencies: - encoding - supports-color @@ -4095,7 +4518,7 @@ packages: '@graphql-tools/merge': 9.0.7(graphql@16.9.0) '@graphql-tools/utils': 10.5.4(graphql@16.9.0) graphql: 16.9.0 - tslib: 2.7.0 + tslib: 2.8.1 value-or-promise: 1.0.12 dev: true @@ -4149,7 +4572,7 @@ packages: '@graphql-tools/schema': 10.0.6(graphql@16.9.0) '@graphql-tools/utils': 10.5.4(graphql@16.9.0) graphql: 16.9.0 - tslib: 2.7.0 + tslib: 2.8.1 value-or-promise: 1.0.12 dev: true @@ -4644,7 +5067,7 @@ packages: resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.26.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 babel-plugin-istanbul: 6.1.1 @@ -5252,11 +5675,11 @@ packages: react-dom: ^18.2.0 styled-components: ^5.3.11 dependencies: - next: 14.2.18(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.2.0)(react@18.2.0) + next: 14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.2.0)(react@18.2.0) next-cloudinary: 5.20.0(next@14.2.18)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - styled-components: 5.3.11(@babel/core@7.24.5)(react-dom@18.2.0)(react-is@18.3.1)(react@18.2.0) + styled-components: 5.3.11(@babel/core@7.26.0)(react-dom@18.2.0)(react-is@18.3.1)(react@18.2.0) dev: false /@oaknational/oak-consent-client@2.1.0(react-dom@18.2.0)(react@18.2.0)(zod@3.23.8): @@ -5927,7 +6350,7 @@ packages: '@peculiar/asn1-schema': 2.3.13 '@peculiar/json-schema': 1.1.12 pvtsutils: 1.3.5 - tslib: 2.7.0 + tslib: 2.8.1 webcrypto-core: 1.8.0 dev: true @@ -6123,6 +6546,19 @@ packages: engines: {node: ^14.13.1 || >=16.0.0 || >=18.0.0} dev: false + /@preact/signals-core@1.8.0: + resolution: {integrity: sha512-OBvUsRZqNmjzCZXWLxkZfhcgT+Fk8DDcT/8vD6a1xhDemodyy87UJRJfASMuSD8FaAIeGgGm85ydXhm7lr4fyA==} + dev: false + + /@preact/signals@1.3.1(preact@10.25.1): + resolution: {integrity: sha512-nNvSF2O7RDzxp1Rm7SkA5QhN1a2kN8pGE8J5o6UjgDof0F0Vlg6d6HUUVxxqZ1uJrN9xnH2DpL6rpII3Es0SsQ==} + peerDependencies: + preact: 10.x + dependencies: + '@preact/signals-core': 1.8.0 + preact: 10.25.1 + dev: false + /@prisma/client@5.16.1(prisma@5.16.1): resolution: {integrity: sha512-wM9SKQjF0qLxdnOZIVAIMKiz6Hu7vDt4FFAih85K1dk/Rr2mdahy6d3QP41K62N9O0DJJA//gUDA3Mp49xsKIg==} engines: {node: '>=16.13'} @@ -7771,6 +8207,20 @@ packages: rollup: 3.29.5 dev: false + /@rollup/pluginutils@5.1.3: + resolution: {integrity: sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.6 + estree-walker: 2.0.2 + picomatch: 4.0.2 + dev: false + /@rtsao/scc@1.1.0: resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} dev: true @@ -8028,7 +8478,7 @@ packages: resolution: {integrity: sha512-DeoUl0WffcqZZRl5Wy9aHvX4WfZbbWt0QbJ7NJrcEViq+dRAI2FQTYECFLwdZi5Gtb3oyqZICO+P7k8wDnzsjQ==} engines: {node: '>= 14'} dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.26.0 '@sentry/babel-plugin-component-annotate': 2.22.3 '@sentry/cli': 2.38.0 dotenv: 16.4.5 @@ -8244,7 +8694,7 @@ packages: '@sentry/vercel-edge': 8.35.0 '@sentry/webpack-plugin': 2.22.3(webpack@5.96.1) chalk: 3.0.0 - next: 14.2.18(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.2.0)(react@18.2.0) + next: 14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.2.0)(react@18.2.0) resolve: 1.22.8 rollup: 3.29.5 stacktrace-parser: 0.1.10 @@ -8823,7 +9273,7 @@ packages: find-up: 5.0.0 image-size: 1.0.2 loader-utils: 3.3.1 - next: 14.2.18(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.2.0)(react@18.2.0) + next: 14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.2.0)(react@18.2.0) node-polyfill-webpack-plugin: 2.0.1(webpack@5.96.1) pnp-webpack-plugin: 1.7.0(typescript@5.7.2) postcss: 8.4.38 @@ -9161,7 +9611,7 @@ packages: '@trpc/client': 10.45.2(@trpc/server@10.45.2) '@trpc/react-query': 10.45.2(@tanstack/react-query@4.19.1)(@trpc/client@10.45.2)(@trpc/server@10.45.2)(react-dom@18.2.0)(react@18.2.0) '@trpc/server': 10.45.2 - next: 14.2.18(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.2.0)(react@18.2.0) + next: 14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -10151,7 +10601,7 @@ packages: busboy: 1.6.0 fast-querystring: 1.1.2 fast-url-parser: 1.1.3 - tslib: 2.7.0 + tslib: 2.8.1 dev: true /@whatwg-node/node-fetch@0.5.26: @@ -10210,23 +10660,13 @@ packages: dependencies: acorn: 8.14.0 - /acorn-jsx-walk@2.0.0: - resolution: {integrity: sha512-uuo6iJj4D4ygkdzd6jPtcxs8vZgDX9YFIkqczGImoypX2fQ4dVImmu3UzA4ynixCIMTrEOWW+95M2HuBaCEOVA==} - dev: false - /acorn-jsx@5.3.2(acorn@8.14.0): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.14.0 - - /acorn-loose@8.4.0: - resolution: {integrity: sha512-M0EUka6rb+QC4l9Z3T0nJEzNOO7JcoJlYMrBlyBCiFSXRyxjLKayd4TbQs2FDRWQU1h9FR7QVNHt+PEaoNL5rQ==} - engines: {node: '>=0.4.0'} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: 8.14.0 - dev: false + dev: true /acorn-typescript@1.4.13(acorn@8.14.0): resolution: {integrity: sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==} @@ -10240,13 +10680,6 @@ packages: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} engines: {node: '>=0.4.0'} - /acorn-walk@8.3.4: - resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} - engines: {node: '>=0.4.0'} - dependencies: - acorn: 8.14.0 - dev: false - /acorn@8.11.3: resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} @@ -10407,6 +10840,7 @@ packages: fast-uri: 3.0.1 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 + dev: true /american-british-english-translator@0.2.1: resolution: {integrity: sha512-G+RQd2Hn4cfsVrA0QRGOZYp4LgU5SIMTNBOWXI2FKMFljixGbMcO7oAXjwRZfzJ0iJJbAeLEGNwpTH4xSbQpLA==} @@ -10857,17 +11291,17 @@ packages: resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} dev: false - /babel-jest@29.7.0(@babel/core@7.24.5): + /babel-jest@29.7.0(@babel/core@7.26.0): resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.26.0 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.24.5) + babel-preset-jest: 29.6.3(@babel/core@7.26.0) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -10947,17 +11381,17 @@ packages: - supports-color dev: true - /babel-plugin-styled-components@2.1.4(@babel/core@7.24.5)(styled-components@5.3.11)(supports-color@5.5.0): + /babel-plugin-styled-components@2.1.4(@babel/core@7.26.0)(styled-components@5.3.11)(supports-color@5.5.0): resolution: {integrity: sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==} peerDependencies: styled-components: '>= 2' dependencies: '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-module-imports': 7.25.9(supports-color@5.5.0) - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.24.5) + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) lodash: 4.17.21 picomatch: 2.3.1 - styled-components: 5.3.11(@babel/core@7.24.5)(react-dom@18.2.0)(react-is@18.3.1)(react@18.2.0) + styled-components: 5.3.11(@babel/core@7.26.0)(react-dom@18.2.0)(react-is@18.3.1)(react@18.2.0) transitivePeerDependencies: - '@babel/core' - supports-color @@ -10967,72 +11401,72 @@ packages: resolution: {integrity: sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==} dev: true - /babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.5): + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.26.0): resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.5 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.5) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.5) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.5) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.5) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.5) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.5) - dev: true - - /babel-preset-fbjs@3.4.0(@babel/core@7.24.5): + '@babel/core': 7.26.0 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.0) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.0) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.0) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.0) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.0) + dev: true + + /babel-preset-fbjs@3.4.0(@babel/core@7.26.0): resolution: {integrity: sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.5 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.5) - '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.24.5) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.5) - '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.24.5) - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.5) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.24.5) - '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.24.5) - '@babel/plugin-transform-block-scoping': 7.25.0(@babel/core@7.24.5) - '@babel/plugin-transform-classes': 7.25.0(@babel/core@7.24.5) - '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.24.5) - '@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.24.5) - '@babel/plugin-transform-flow-strip-types': 7.25.2(@babel/core@7.24.5) - '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.24.5) - '@babel/plugin-transform-function-name': 7.25.1(@babel/core@7.24.5) - '@babel/plugin-transform-literals': 7.25.2(@babel/core@7.24.5) - '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.24.5) - '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.24.5) - '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.24.5) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.5) - '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.24.5) - '@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.24.5) - '@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.24.5) - '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.24.5) - '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.24.5) - '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.24.5) + '@babel/core': 7.26.0 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.26.0) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.26.0) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.0) + '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.26.0) + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.26.0) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.26.0) + '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.26.0) + '@babel/plugin-transform-block-scoping': 7.25.0(@babel/core@7.26.0) + '@babel/plugin-transform-classes': 7.25.0(@babel/core@7.26.0) + '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.26.0) + '@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.26.0) + '@babel/plugin-transform-flow-strip-types': 7.25.2(@babel/core@7.26.0) + '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.26.0) + '@babel/plugin-transform-function-name': 7.25.1(@babel/core@7.26.0) + '@babel/plugin-transform-literals': 7.25.2(@babel/core@7.26.0) + '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.26.0) + '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.26.0) + '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.26.0) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.26.0) + '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.26.0) + '@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.26.0) + '@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.26.0) + '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.26.0) + '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.26.0) + '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.26.0) babel-plugin-syntax-trailing-function-commas: 7.0.0-beta.0 transitivePeerDependencies: - supports-color dev: true - /babel-preset-jest@29.6.3(@babel/core@7.24.5): + /babel-preset-jest@29.6.3(@babel/core@7.26.0): resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.26.0 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.5) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.26.0) dev: true /babel-runtime@6.26.0: @@ -11105,6 +11539,10 @@ packages: resolution: {integrity: sha512-nbE1WxOTTrUWIfsfZ4aHGYu5DOuNkbxGokjV6Z2kxfJK3uaAb8zNK1muzOeipoLHZjInT4Br88BHpzevc681xA==} dev: false + /bippy@0.0.10: + resolution: {integrity: sha512-2E8U2h/3ZltRwxfVkT1c2DqWUjgIGFRg8cD1qQDJ0m7YOJCpxqI87s+vaaEzvIxRw4MJOUVJ3OZ6K904UNX+iw==} + dev: false + /bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} dependencies: @@ -11285,6 +11723,7 @@ packages: electron-to-chromium: 1.5.4 node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) + dev: true /browserslist@4.24.2: resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} @@ -11966,11 +12405,6 @@ packages: engines: {node: '>=18'} dev: false - /commander@12.1.0: - resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} - engines: {node: '>=18'} - dev: false - /commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -12345,7 +12779,7 @@ packages: resolution: {integrity: sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==} engines: {node: '>=16.0.0'} dependencies: - tslib: 2.7.0 + tslib: 2.8.1 dev: true /cross-spawn@5.1.0: @@ -12853,35 +13287,6 @@ packages: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} - /dependency-cruiser@16.7.0: - resolution: {integrity: sha512-522LLjHINl9r0RIZ8/6s6TqIHTuEJG3XDU2WPSm9dG0rvLUYVyQwE9ID31tDFs4OOyEhdOPaqAaAG1jRv/Zwbg==} - engines: {node: ^18.17||>=20} - hasBin: true - dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) - acorn-jsx-walk: 2.0.0 - acorn-loose: 8.4.0 - acorn-walk: 8.3.4 - ajv: 8.17.1 - commander: 12.1.0 - enhanced-resolve: 5.17.1 - ignore: 6.0.2 - interpret: 3.1.1 - is-installed-globally: 1.0.0 - json5: 2.2.3 - memoize: 10.0.0 - picocolors: 1.1.1 - picomatch: 4.0.2 - prompts: 2.4.2 - rechoir: 0.8.0 - safe-regex: 2.1.1 - semver: 7.6.3 - teamcity-service-messages: 0.1.14 - tsconfig-paths-webpack-plugin: 4.2.0 - watskeburt: 4.2.2 - dev: false - /dependency-graph@0.11.0: resolution: {integrity: sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==} engines: {node: '>= 0.6.0'} @@ -13184,6 +13589,7 @@ packages: /electron-to-chromium@1.5.4: resolution: {integrity: sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA==} + dev: true /electron-to-chromium@1.5.68: resolution: {integrity: sha512-FgMdJlma0OzUYlbrtZ4AeXjKxKPk6KT8WOP8BjcqxWtlg8qyJQjRzPJzUtUn5GBg1oQ26hFs7HOOHJMYiJRnvQ==} @@ -13526,6 +13932,7 @@ packages: /escalade@3.1.2: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} + dev: true /escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} @@ -13955,7 +14362,6 @@ packages: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: '@types/estree': 1.0.6 - dev: true /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} @@ -14201,6 +14607,7 @@ packages: /fast-uri@3.0.1: resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==} + dev: true /fast-url-parser@1.1.3: resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} @@ -14644,7 +15051,7 @@ packages: peerDependencies: next: '>=13.2.0 <15' dependencies: - next: 14.2.18(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.2.0)(react@18.2.0) + next: 14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.2.0)(react@18.2.0) dev: false /gensync@1.0.0-beta.2: @@ -14822,13 +15229,6 @@ packages: minipass: 4.2.8 path-scurry: 1.11.1 - /global-directory@4.0.1: - resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} - engines: {node: '>=18'} - dependencies: - ini: 4.1.1 - dev: false - /global-dirs@3.0.1: resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} engines: {node: '>=10'} @@ -15512,11 +15912,6 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - /ignore@6.0.2: - resolution: {integrity: sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==} - engines: {node: '>= 4'} - dev: false - /image-size@1.0.2: resolution: {integrity: sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==} engines: {node: '>=14.0.0'} @@ -15617,11 +16012,6 @@ packages: engines: {node: '>=10'} dev: true - /ini@4.1.1: - resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: false - /inline-style-parser@0.1.1: resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} dev: false @@ -15741,11 +16131,6 @@ packages: hasown: 2.0.2 side-channel: 1.0.4 - /interpret@3.1.1: - resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} - engines: {node: '>=10.13.0'} - dev: false - /into-stream@7.0.0: resolution: {integrity: sha512-2dYz766i9HprMBasCMvHMuazJ7u4WzhJwo5kb3iPSiW/iRYV6uPari3zHoqZlnuaR7V1bEiNMxikhp37rdBXbw==} engines: {node: '>=12'} @@ -15987,14 +16372,6 @@ packages: is-path-inside: 3.0.3 dev: true - /is-installed-globally@1.0.0: - resolution: {integrity: sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==} - engines: {node: '>=18'} - dependencies: - global-directory: 4.0.1 - is-path-inside: 4.0.0 - dev: false - /is-interactive@1.0.0: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} @@ -16066,11 +16443,6 @@ packages: engines: {node: '>=8'} dev: true - /is-path-inside@4.0.0: - resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} - engines: {node: '>=12'} - dev: false - /is-plain-obj@1.1.0: resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} engines: {node: '>=0.10.0'} @@ -16291,7 +16663,7 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.26.0 '@babel/parser': 7.26.2 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 @@ -16304,7 +16676,7 @@ packages: resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==} engines: {node: '>=10'} dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.26.0 '@babel/parser': 7.26.2 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 @@ -16462,11 +16834,11 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.26.0 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 '@types/node': 20.17.9 - babel-jest: 29.7.0(@babel/core@7.24.5) + babel-jest: 29.7.0(@babel/core@7.26.0) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -16719,15 +17091,15 @@ packages: resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.26.0 '@babel/generator': 7.26.2 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.5) - '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.5) + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.26.0) + '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.26.0) '@babel/types': 7.26.0 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.5) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.26.0) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -16982,6 +17354,7 @@ packages: /json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: true /json-schema@0.4.0: resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} @@ -17130,6 +17503,12 @@ packages: /kleur@3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} + dev: true + + /kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + dev: false /koalas@1.0.2: resolution: {integrity: sha512-RYhBbYaTTTHId3l6fnMZc3eGQNW6FVCqMG6AMwA5I1Mafr6AflaXeoi6x3xQuATRotGYRLk6+1ELZH4dstFNOA==} @@ -18149,13 +18528,6 @@ packages: fs-monkey: 1.0.6 dev: true - /memoize@10.0.0: - resolution: {integrity: sha512-H6cBLgsi6vMWOcCpvVCdFFnl3kerEXbrYh9q+lY6VXvQSmM6CkmV08VOwT+WE2tzIEqRPFfAq3fm4v/UIW6mSA==} - engines: {node: '>=18'} - dependencies: - mimic-function: 5.0.1 - dev: false - /memoizerific@1.11.3: resolution: {integrity: sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==} dependencies: @@ -18512,11 +18884,6 @@ packages: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} - /mimic-function@5.0.1: - resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} - engines: {node: '>=18'} - dev: false - /mimic-response@3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} @@ -18672,6 +19039,11 @@ packages: - supports-color dev: true + /mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + dev: false + /ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} dev: true @@ -18810,11 +19182,11 @@ packages: dependencies: '@cloudinary-util/url-loader': 4.2.0 '@cloudinary-util/util': 2.4.0 - next: 14.2.18(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.2.0)(react@18.2.0) + next: 14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 dev: false - /next@14.2.18(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.2.0)(react@18.2.0): + /next@14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-H9qbjDuGivUDEnK6wa+p2XKO+iMzgVgyr9Zp/4Iv29lKa+DYaxJGjOeEA+5VOvJh/M7HLiskehInSa0cWxVXUw==} engines: {node: '>=18.17.0'} hasBin: true @@ -18842,7 +19214,7 @@ packages: postcss: 8.4.31 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - styled-jsx: 5.1.1(@babel/core@7.24.5)(react@18.2.0) + styled-jsx: 5.1.1(@babel/core@7.26.0)(react@18.2.0) optionalDependencies: '@next/swc-darwin-arm64': 14.2.18 '@next/swc-darwin-x64': 14.2.18 @@ -18857,7 +19229,7 @@ packages: - '@babel/core' - babel-plugin-macros - /next@14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@18.2.0)(react@18.2.0): + /next@14.2.18(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-H9qbjDuGivUDEnK6wa+p2XKO+iMzgVgyr9Zp/4Iv29lKa+DYaxJGjOeEA+5VOvJh/M7HLiskehInSa0cWxVXUw==} engines: {node: '>=18.17.0'} hasBin: true @@ -18876,7 +19248,6 @@ packages: optional: true dependencies: '@next/env': 14.2.18 - '@opentelemetry/api': 1.9.0 '@swc/helpers': 0.5.5 busboy: 1.6.0 caniuse-lite: 1.0.30001685 @@ -20037,6 +20408,12 @@ packages: engines: {node: '>=18'} hasBin: true + /playwright-core@1.49.1: + resolution: {integrity: sha512-BzmpVcs4kE2CH15rWfzpjzVGhWERJfmnXmniSyKeRZUs9Ws65m+RGIi7mjJK/euCegfn3i7jvqWeWyHe9y3Vgg==} + engines: {node: '>=18'} + hasBin: true + dev: false + /playwright@1.47.2: resolution: {integrity: sha512-nx1cLMmQWqmA3UsnjaaokyoUpdVaaDhJhMoxX2qj3McpjnsqFHs516QAKYhqHAgOP+oCFTEOCOAaD1RgD/RQfA==} engines: {node: '>=18'} @@ -20046,6 +20423,16 @@ packages: optionalDependencies: fsevents: 2.3.2 + /playwright@1.49.1: + resolution: {integrity: sha512-VYL8zLoNTBxVOrJBbDuRgDWa3i+mfQgDTrL8Ah9QXZ7ax4Dsj0MSq5bYgytRnDVVe+njoKnfsYkH3HzqVj5UZA==} + engines: {node: '>=18'} + hasBin: true + dependencies: + playwright-core: 1.49.1 + optionalDependencies: + fsevents: 2.3.2 + dev: false + /pnp-webpack-plugin@1.7.0(typescript@5.7.2): resolution: {integrity: sha512-2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg==} engines: {node: '>=6'} @@ -20296,6 +20683,10 @@ packages: resolution: {integrity: sha512-S1d1ernz3KQ+Y2awUxKakpfOg2CEmJmwOP+6igPx6dgr6pgDvenqYviyokWso2rhHvGtTlWWnJDa7RaPbQerTg==} dev: false + /preact@10.25.1: + resolution: {integrity: sha512-frxeZV2vhQSohQwJ7FvlqC40ze89+8friponWUFeVEkaCfhC6Eu4V0iND5C9CXz8JLndV07QRDeXzH1+Anz5Og==} + dev: false + /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -20455,6 +20846,7 @@ packages: dependencies: kleur: 3.0.3 sisteransi: 1.0.5 + dev: true /prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} @@ -20691,7 +21083,7 @@ packages: resolution: {integrity: sha512-i8aF1nyKInZnANZ4uZrH49qn1paRgBZ7wZiCNBMnenlPzEv0mRl+ShpTVEI6wZNl8sSc79xZkivtgLKQArcanQ==} engines: {node: '>=16.14.0'} dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.26.0 '@babel/traverse': 7.25.9(supports-color@5.5.0) '@babel/types': 7.26.0 '@types/babel__core': 7.20.5 @@ -20822,6 +21214,51 @@ packages: use-sidecar: 1.1.2(@types/react@18.2.57)(react@18.2.0) dev: false + /react-scan@0.0.43(next@14.2.18)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-HL4pbOApez7SMbN0pxXQM/1Eb17jFg8hm7NcDJK+HJCkkFrOQ4qiuK/3VH4GbF2nqKwf8bC7SijUD2/dg4ebEA==} + hasBin: true + peerDependencies: + '@remix-run/react': '>=1.0.0' + next: '>=13.0.0' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-router: ^5.0.0 || ^6.0.0 + react-router-dom: ^5.0.0 || ^6.0.0 + peerDependenciesMeta: + '@remix-run/react': + optional: true + next: + optional: true + react-router: + optional: true + react-router-dom: + optional: true + dependencies: + '@babel/core': 7.26.0 + '@babel/generator': 7.26.2 + '@babel/types': 7.26.0 + '@clack/core': 0.3.5 + '@clack/prompts': 0.8.2 + '@preact/signals': 1.3.1(preact@10.25.1) + '@rollup/pluginutils': 5.1.3 + '@types/node': 20.17.9 + bippy: 0.0.10 + estree-walker: 3.0.3 + kleur: 4.1.5 + mri: 1.2.0 + next: 14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.2.0)(react@18.2.0) + playwright: 1.49.1 + preact: 10.25.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + tsx: 4.16.0 + optionalDependencies: + unplugin: 2.1.0 + transitivePeerDependencies: + - rollup + - supports-color + dev: false + /react-style-singleton@2.2.1(@types/react@18.2.57)(react@18.2.0): resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} engines: {node: '>=10'} @@ -20998,13 +21435,6 @@ packages: tiny-invariant: 1.3.3 tslib: 2.8.1 - /rechoir@0.8.0: - resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} - engines: {node: '>= 10.13.0'} - dependencies: - resolve: 1.22.8 - dev: false - /redent@3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} @@ -21071,11 +21501,6 @@ packages: resolution: {integrity: sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==} dev: true - /regexp-tree@0.1.27: - resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} - hasBin: true - dev: false - /regexp.prototype.flags@1.5.2: resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} engines: {node: '>= 0.4'} @@ -21206,6 +21631,7 @@ packages: /require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + dev: true /require-in-the-middle@7.3.0: resolution: {integrity: sha512-nQFEv9gRw6SJAwWD2LrL0NmQvAcO7FBwJbwmr2ttPAacfy0xuiOjE5zt+zM4xDyuyvUaxBi/9gb2SoCyNEVJcw==} @@ -21442,12 +21868,6 @@ packages: is-regex: 1.1.4 dev: true - /safe-regex@2.1.1: - resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==} - dependencies: - regexp-tree: 0.1.27 - dev: false - /safe-stable-stringify@2.4.3: resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} engines: {node: '>=10'} @@ -22443,7 +22863,7 @@ packages: inline-style-parser: 0.1.1 dev: false - /styled-components@5.3.11(@babel/core@7.24.5)(react-dom@18.2.0)(react-is@18.3.1)(react@18.2.0): + /styled-components@5.3.11(@babel/core@7.26.0)(react-dom@18.2.0)(react-is@18.3.1)(react@18.2.0): resolution: {integrity: sha512-uuzIIfnVkagcVHv9nE0VPlHPSCmXIUGKfJ42LNjxCCTDTL5sgnJ8Z7GZBq0EnLYGln77tPpEpExt2+qa+cZqSw==} engines: {node: '>=10'} peerDependencies: @@ -22456,7 +22876,7 @@ packages: '@emotion/is-prop-valid': 1.3.1 '@emotion/stylis': 0.8.5 '@emotion/unitless': 0.7.5 - babel-plugin-styled-components: 2.1.4(@babel/core@7.24.5)(styled-components@5.3.11)(supports-color@5.5.0) + babel-plugin-styled-components: 2.1.4(@babel/core@7.26.0)(styled-components@5.3.11)(supports-color@5.5.0) css-to-react-native: 3.2.0 hoist-non-react-statics: 3.3.2 react: 18.2.0 @@ -22468,23 +22888,6 @@ packages: - '@babel/core' dev: false - /styled-jsx@5.1.1(@babel/core@7.24.5)(react@18.2.0): - resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} - engines: {node: '>= 12.0.0'} - peerDependencies: - '@babel/core': '*' - babel-plugin-macros: '*' - react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' - peerDependenciesMeta: - '@babel/core': - optional: true - babel-plugin-macros: - optional: true - dependencies: - '@babel/core': 7.24.5 - client-only: 0.0.1 - react: 18.2.0 - /styled-jsx@5.1.1(@babel/core@7.26.0)(react@18.2.0): resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} engines: {node: '>= 12.0.0'} @@ -22501,7 +22904,6 @@ packages: '@babel/core': 7.26.0 client-only: 0.0.1 react: 18.2.0 - dev: false /styled-jsx@5.1.6(@babel/core@7.24.5)(react@18.2.0): resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} @@ -22734,10 +23136,6 @@ packages: yallist: 4.0.0 dev: true - /teamcity-service-messages@0.1.14: - resolution: {integrity: sha512-29aQwaHqm8RMX74u2o/h1KbMLP89FjNiMxD9wbF2BbWOnbM+q+d1sCEC+MqCc4QW3NJykn77OMpTFw/xTHIc0w==} - dev: false - /teeny-request@9.0.0: resolution: {integrity: sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==} engines: {node: '>=14'} @@ -22944,6 +23342,7 @@ packages: /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} + dev: true /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} @@ -23029,46 +23428,7 @@ packages: /ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - /ts-jest@29.2.5(@babel/core@7.24.5)(esbuild@0.21.5)(jest@29.7.0)(typescript@5.7.2): - resolution: {integrity: sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==} - engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/transform': ^29.0.0 - '@jest/types': ^29.0.0 - babel-jest: ^29.0.0 - esbuild: '*' - jest: ^29.0.0 - typescript: '>=4.3 <6' - peerDependenciesMeta: - '@babel/core': - optional: true - '@jest/transform': - optional: true - '@jest/types': - optional: true - babel-jest: - optional: true - esbuild: - optional: true - dependencies: - '@babel/core': 7.24.5 - bs-logger: 0.2.6 - ejs: 3.1.10 - esbuild: 0.21.5 - fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2) - jest-util: 29.7.0 - json5: 2.2.3 - lodash.memoize: 4.1.2 - make-error: 1.3.6 - semver: 7.6.3 - typescript: 5.7.2 - yargs-parser: 21.1.1 - dev: true - - /ts-jest@29.2.5(@babel/core@7.26.0)(jest@29.7.0)(typescript@5.7.2): + /ts-jest@29.2.5(@babel/core@7.26.0)(esbuild@0.21.5)(jest@29.7.0)(typescript@5.7.2): resolution: {integrity: sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==} engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} hasBin: true @@ -23095,6 +23455,7 @@ packages: '@babel/core': 7.26.0 bs-logger: 0.2.6 ejs: 3.1.10 + esbuild: 0.21.5 fast-json-stable-stringify: 2.1.0 jest: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2) jest-util: 29.7.0 @@ -23177,16 +23538,6 @@ packages: tsconfig-paths: 4.2.0 dev: true - /tsconfig-paths-webpack-plugin@4.2.0: - resolution: {integrity: sha512-zbem3rfRS8BgeNK50Zz5SIQgXzLafiHjOwUAvk/38/o1jHn/V5QAgVUcz884or7WYcPaH3N2CIfUc2u0ul7UcA==} - engines: {node: '>=10.13.0'} - dependencies: - chalk: 4.1.2 - enhanced-resolve: 5.17.1 - tapable: 2.2.1 - tsconfig-paths: 4.2.0 - dev: false - /tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} dependencies: @@ -23203,6 +23554,7 @@ packages: json5: 2.2.3 minimist: 1.2.8 strip-bom: 3.0.0 + dev: true /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} @@ -23674,6 +24026,16 @@ packages: webpack-virtual-modules: 0.6.2 dev: true + /unplugin@2.1.0: + resolution: {integrity: sha512-us4j03/499KhbGP8BU7Hrzrgseo+KdfJYWcbcajCOqsAyb8Gk0Yn2kiUIcZISYCb1JFaZfIuG3b42HmguVOKCQ==} + engines: {node: '>=18.12.0'} + requiresBuild: true + dependencies: + acorn: 8.14.0 + webpack-virtual-modules: 0.6.2 + dev: false + optional: true + /untildify@4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} @@ -23702,6 +24064,7 @@ packages: browserslist: 4.23.3 escalade: 3.1.2 picocolors: 1.1.1 + dev: true /update-browserslist-db@1.1.1(browserslist@4.24.2): resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} @@ -24010,12 +24373,6 @@ packages: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 - /watskeburt@4.2.2: - resolution: {integrity: sha512-AOCg1UYxWpiHW1tUwqpJau8vzarZYTtzl2uu99UptBmbzx6kOzCGMfRLF6KIRX4PYekmryn89MzxlRNkL66YyA==} - engines: {node: ^18||>=20} - hasBin: true - dev: false - /wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} dependencies: @@ -24092,7 +24449,6 @@ packages: /webpack-virtual-modules@0.6.2: resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} - dev: true /webpack@5.93.0(esbuild@0.21.5): resolution: {integrity: sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==}