diff --git a/.github/workflows/publish-snapshot.yml b/.github/workflows/publish-snapshot.yml index 2b9b15ea..fe6575e1 100644 --- a/.github/workflows/publish-snapshot.yml +++ b/.github/workflows/publish-snapshot.yml @@ -9,7 +9,7 @@ jobs: - name: Checkout code uses: actions/checkout@v2 - - run: corepack enable + - run: npm install -g corepack@latest && corepack enable - uses: actions/setup-node@v4 with: node-version: 20 diff --git a/apps/site/.env.example b/apps/site/.env.example index 71272a7e..3d7dacfa 100644 --- a/apps/site/.env.example +++ b/apps/site/.env.example @@ -1,3 +1,4 @@ DOCSEARCH_APP_ID=RETR9S9VHS DOCSEARCH_API_KEY=326c1723a310dfe29004b47608709907 DOCSEARCH_INDEX_NAME=tailwindui-protocol +GITHUB_TOKEN=foo diff --git a/apps/site/.gitignore b/apps/site/.gitignore index 4b6044de..077123d3 100644 --- a/apps/site/.gitignore +++ b/apps/site/.gitignore @@ -39,5 +39,5 @@ node_modules /public/build .env /.wrangler - +.react-router/ .dev.vars diff --git a/apps/site/app/components/Button.tsx b/apps/site/app/components/Button.tsx index cdca49ae..3ba19e05 100644 --- a/apps/site/app/components/Button.tsx +++ b/apps/site/app/components/Button.tsx @@ -1,4 +1,4 @@ -import { Link } from "@remix-run/react"; +import { Link } from "react-router"; import clsx from "clsx"; const styles = { diff --git a/apps/site/app/components/Layout.tsx b/apps/site/app/components/Layout.tsx index 54d9cab5..b78566f4 100644 --- a/apps/site/app/components/Layout.tsx +++ b/apps/site/app/components/Layout.tsx @@ -1,5 +1,5 @@ import { useCallback, useEffect, useState } from "react"; -import { Link, useLocation } from "@remix-run/react"; +import { Link, useLocation } from "react-router"; import clsx from "clsx"; import { Hero } from "~/components/Hero"; diff --git a/apps/site/app/components/MobileNavigation.tsx b/apps/site/app/components/MobileNavigation.tsx index 2e043527..eed503fb 100644 --- a/apps/site/app/components/MobileNavigation.tsx +++ b/apps/site/app/components/MobileNavigation.tsx @@ -1,5 +1,5 @@ import { useEffect, useState } from "react"; -import { Link, useNavigation } from "@remix-run/react"; +import { Link, useNavigation } from "react-router"; import { Dialog } from "@headlessui/react"; import { Logomark } from "~/components/Logo"; diff --git a/apps/site/app/components/Navigation.tsx b/apps/site/app/components/Navigation.tsx index 3cc14d5e..3beed018 100644 --- a/apps/site/app/components/Navigation.tsx +++ b/apps/site/app/components/Navigation.tsx @@ -1,4 +1,4 @@ -import { Link, useLocation } from "@remix-run/react"; +import { Link, useLocation } from "react-router"; import clsx from "clsx"; import { Manifest } from "~/docs.server"; diff --git a/apps/site/app/components/QuickLinks.jsx b/apps/site/app/components/QuickLinks.jsx index 55858dfe..63533dc1 100644 --- a/apps/site/app/components/QuickLinks.jsx +++ b/apps/site/app/components/QuickLinks.jsx @@ -1,4 +1,4 @@ -import { Link } from "@remix-run/react"; +import { Link } from "react-router"; import { Icon } from "./Icon"; diff --git a/apps/site/app/components/Search.tsx b/apps/site/app/components/Search.tsx index ac0956d8..b6b4aa2e 100644 --- a/apps/site/app/components/Search.tsx +++ b/apps/site/app/components/Search.tsx @@ -1,6 +1,6 @@ import { useCallback, useEffect, useState } from "react"; import { createPortal } from "react-dom"; -import { Link, useNavigate } from "@remix-run/react"; +import { Link, useNavigate } from "react-router"; import { DocSearchModal, useDocSearchKeyboardEvents } from "@docsearch/react"; function Hit({ hit, children }: { hit: any; children: any }) { diff --git a/apps/site/app/entry.server.tsx b/apps/site/app/entry.server.tsx new file mode 100644 index 00000000..89d682ad --- /dev/null +++ b/apps/site/app/entry.server.tsx @@ -0,0 +1,51 @@ +/** + * By default, Remix will handle generating the HTTP Response for you. + * You are free to delete this file if you'd like to, but if you ever want it revealed again, you can run `npx remix reveal` ✨ + * For more information, see https://remix.run/file-conventions/entry.server + */ + +import { isbot } from "isbot"; +import { renderToReadableStream } from "react-dom/server"; +import { + type AppLoadContext, + type EntryContext, + ServerRouter, +} from "react-router"; + +export default async function handleRequest( + request: Request, + responseStatusCode: number, + responseHeaders: Headers, + routerContext: EntryContext +) { + let shellRendered = false; + const userAgent = request.headers.get("user-agent"); + + const body = await renderToReadableStream( + , + { + onError(error: unknown) { + responseStatusCode = 500; + // Log streaming rendering errors from inside the shell. Don't log + // errors encountered during initial shell rendering since they'll + // reject and get logged in handleDocumentRequest. + if (shellRendered) { + console.error(error); + } + }, + } + ); + shellRendered = true; + + // Ensure requests from bots and SPA Mode renders wait for all content to load before responding + // https://react.dev/reference/react-dom/server/renderToPipeableStream#waiting-for-all-content-to-load-for-crawlers-and-static-generation + if ((userAgent && isbot(userAgent)) || routerContext.isSpaMode) { + await body.allReady; + } + + responseHeaders.set("Content-Type", "text/html"); + return new Response(body, { + headers: responseHeaders, + status: responseStatusCode, + }); +} diff --git a/apps/site/app/root.tsx b/apps/site/app/root.tsx index 31dfb615..77f8ebc4 100644 --- a/apps/site/app/root.tsx +++ b/apps/site/app/root.tsx @@ -1,21 +1,19 @@ import { - json, type LinksFunction, type MetaFunction, - type LoaderFunctionArgs, -} from "@remix-run/cloudflare"; -import { Links, Meta, Outlet, Scripts, ScrollRestoration, useLoaderData, -} from "@remix-run/react"; +} from "react-router"; import "@docsearch/css"; import "focus-visible"; import "./styles/tailwind.css"; +import type { Route } from "./routes/+types/_index"; + export const meta: MetaFunction = () => [ { title: "Superflare", "twitter:title": "Superflare" }, { viewport: "width=device-width,initial-scale=1" }, @@ -45,14 +43,14 @@ export const links: LinksFunction = () => [ }, ]; -export async function loader({ context: { cloudflare } }: LoaderFunctionArgs) { - return json({ +export async function loader({ context: { cloudflare } }: Route.LoaderArgs) { + return { ENV: { DOCSEARCH_APP_ID: cloudflare.env.DOCSEARCH_APP_ID, DOCSEARCH_API_KEY: cloudflare.env.DOCSEARCH_API_KEY, DOCSEARCH_INDEX_NAME: cloudflare.env.DOCSEARCH_INDEX_NAME, }, - }); + }; } const themeScript = ` diff --git a/apps/site/app/routes.ts b/apps/site/app/routes.ts new file mode 100644 index 00000000..4c05936c --- /dev/null +++ b/apps/site/app/routes.ts @@ -0,0 +1,4 @@ +import { type RouteConfig } from "@react-router/dev/routes"; +import { flatRoutes } from "@react-router/fs-routes"; + +export default flatRoutes() satisfies RouteConfig; diff --git a/apps/site/app/routes/$.tsx b/apps/site/app/routes/$.tsx index 412e2e37..e3dc734c 100644 --- a/apps/site/app/routes/$.tsx +++ b/apps/site/app/routes/$.tsx @@ -1,4 +1,4 @@ -import { MetaFunction } from "@remix-run/react/dist/routeModules"; +import { type MetaFunction } from "react-router"; import { loader as indexLoader } from "./_index"; @@ -7,9 +7,7 @@ export { default } from "./_index"; export const loader = indexLoader; export const meta: MetaFunction = ({ data }) => [ - { - title: data?.title ? `${data.title} - Superflare` : "Superflare", - }, + { title: data?.title ? `${data.title} - Superflare` : "Superflare" }, { "twitter:title": data?.title ? `${data.title} - Superflare` : "Superflare", }, diff --git a/apps/site/app/routes/_index.tsx b/apps/site/app/routes/_index.tsx index 6be01456..2f3ce377 100644 --- a/apps/site/app/routes/_index.tsx +++ b/apps/site/app/routes/_index.tsx @@ -1,18 +1,16 @@ -import { - json, - type LoaderFunctionArgs, - type MetaFunction, -} from "@remix-run/cloudflare"; -import { useLoaderData } from "@remix-run/react"; +import { type MetaFunction } from "react-router"; +import { useLoaderData } from "react-router"; import { Layout } from "~/components/Layout"; import { getManifest, getMarkdownForPath, parseMarkdoc } from "~/docs.server"; import { renderMarkdoc } from "~/markdoc"; +import type { Route } from "./+types/_index"; + export async function loader({ params, context: { cloudflare }, -}: LoaderFunctionArgs) { - const path = params["*"] ?? ("index" as string); +}: Route.LoaderArgs) { + const path = params["*"] ?? "index"; const useGitHub = process.env.NODE_ENV === "production"; const markdown = await getMarkdownForPath( @@ -34,7 +32,7 @@ export async function loader({ const { content, title, tableOfContents, description } = parseMarkdoc(markdown); - return json({ content, title, tableOfContents, manifest, description }); + return { content, title, tableOfContents, manifest, description }; } export const meta: MetaFunction = ({ data }) => [ diff --git a/apps/site/load-context.ts b/apps/site/load-context.ts index 23889d2d..c8314b57 100644 --- a/apps/site/load-context.ts +++ b/apps/site/load-context.ts @@ -7,8 +7,10 @@ type Cloudflare = Omit, "dispose" | "caches"> & { caches: CacheStorage; }; -declare module "@remix-run/cloudflare" { +declare module "react-router" { interface AppLoadContext { cloudflare: Cloudflare; } } + +export {}; // necessary for TS to treat this as a module diff --git a/apps/site/package.json b/apps/site/package.json index 67a71605..c21fb27a 100644 --- a/apps/site/package.json +++ b/apps/site/package.json @@ -4,14 +4,14 @@ "type": "module", "private": true, "scripts": { - "build": "remix vite:build", + "build": "react-router build", "deploy": "wrangler deploy", - "dev:remix": "remix vite:dev", + "dev:remix": "react-router dev", "dev:docs": "node ./scripts/serve-local-docs.mjs", "dev": "concurrently \"npm:dev:*\"", "start": "wrangler dev", - "typegen": "wrangler types", - "typecheck": "tsc" + "typegen": "wrangler types && react-router typegen", + "typecheck": "react-router typegen && tsc" }, "browserslist": "defaults, not ie <= 11", "dependencies": { @@ -19,8 +19,8 @@ "@docsearch/react": "^3.8.0", "@headlessui/react": "^2.1.2", "@markdoc/markdoc": "0.4.0", - "@remix-run/cloudflare": "^2.12.1", - "@remix-run/react": "^2.12.1", + "@react-router/cloudflare": "^7.0.0", + "@react-router/fs-routes": "^7.0.0", "@sindresorhus/slugify": "^2.1.1", "@tailwindcss/typography": "^0.5.8", "autoprefixer": "^10.4.19", @@ -33,13 +33,13 @@ "prism-react-renderer": "^2.3.1", "react": "18.2.0", "react-dom": "18.2.0", + "react-router": "^7.0.0", "tailwindcss": "^3.4.4", "tiny-invariant": "^1.3.1" }, "devDependencies": { - "@cloudflare/workers-types": "^4.20241011.0", - "@remix-run/dev": "^2.12.1", - "@remix-run/eslint-config": "^2.12.1", + "@cloudflare/workers-types": "^4.20250109.0", + "@react-router/dev": "^7.0.0", "@types/js-yaml": "^4.0.5", "@types/react": "^18.0.28", "@types/react-dom": "^18.0.11", diff --git a/apps/site/react-router.config.ts b/apps/site/react-router.config.ts new file mode 100644 index 00000000..04e55c93 --- /dev/null +++ b/apps/site/react-router.config.ts @@ -0,0 +1,3 @@ +import { type Config } from "@react-router/dev/config"; + +export default { ssr: true } satisfies Config; diff --git a/apps/site/tsconfig.json b/apps/site/tsconfig.json index 42d66e8c..92137b02 100644 --- a/apps/site/tsconfig.json +++ b/apps/site/tsconfig.json @@ -1,8 +1,18 @@ { - "include": ["worker-configuration.d.ts", "**/*.ts", "**/*.tsx"], + "include": [ + "worker-configuration.d.ts", + "**/*.ts", + "**/*.tsx", + ".react-router/types/**/*" + ], "compilerOptions": { "lib": ["DOM", "DOM.Iterable", "ES2022"], - "types": ["@remix-run/cloudflare", "vite/client"], + "types": [ + "@cloudflare/workers-types", + "@react-router/cloudflare", + "vite/client" + ], + "rootDirs": [".", "./.react-router/types"], "isolatedModules": true, "esModuleInterop": true, "jsx": "react-jsx", @@ -18,7 +28,7 @@ "~/*": ["./app/*"] }, - // Remix takes care of building everything in `remix build`. + // React router takes care of building everything in `react-router build`. "noEmit": true } } diff --git a/apps/site/types/build.d.ts b/apps/site/types/build.d.ts deleted file mode 100644 index 7744b692..00000000 --- a/apps/site/types/build.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { type ServerBuild } from "@remix-run/cloudflare"; - -export const assets: ServerBuild["assets"]; -export const assetsBuildDirectory: ServerBuild["assetsBuildDirectory"]; -export const entry: ServerBuild["entry"]; -export const future: ServerBuild["future"]; -export const publicPath: ServerBuild["publicPath"]; -export const routes: ServerBuild["routes"]; diff --git a/apps/site/vite.config.ts b/apps/site/vite.config.ts index eaa5f35a..c3611714 100644 --- a/apps/site/vite.config.ts +++ b/apps/site/vite.config.ts @@ -1,23 +1,10 @@ +import { reactRouter } from "@react-router/dev/vite"; +import { cloudflareDevProxy } from "@react-router/dev/vite/cloudflare"; import { defineConfig } from "vite"; -import { - vitePlugin as remix, - cloudflareDevProxyVitePlugin, -} from "@remix-run/dev"; import tsconfigPaths from "vite-tsconfig-paths"; export default defineConfig({ - plugins: [ - cloudflareDevProxyVitePlugin(), - remix({ - future: { - v3_fetcherPersist: true, - v3_lazyRouteDiscovery: true, - v3_relativeSplatPath: true, - v3_throwAbortReason: true, - }, - }), - tsconfigPaths(), - ], + plugins: [cloudflareDevProxy(), reactRouter(), tsconfigPaths()], ssr: { noExternal: ["@docsearch/react", "@markdoc/markdoc"], resolve: { diff --git a/apps/site/worker-configuration.d.ts b/apps/site/worker-configuration.d.ts index dbd8675b..ec78ae4b 100644 --- a/apps/site/worker-configuration.d.ts +++ b/apps/site/worker-configuration.d.ts @@ -4,4 +4,5 @@ interface Env { DOCSEARCH_APP_ID: string; DOCSEARCH_API_KEY: string; DOCSEARCH_INDEX_NAME: string; + GITHUB_TOKEN: string; } diff --git a/apps/site/worker.ts b/apps/site/worker.ts index 8d1620cf..fda4c088 100644 --- a/apps/site/worker.ts +++ b/apps/site/worker.ts @@ -1,10 +1,10 @@ -import { createRequestHandler, type ServerBuild } from "@remix-run/cloudflare"; +import { createRequestHandler, type ServerBuild } from "react-router"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore This file won’t exist if it hasn’t yet been built import * as build from "./build/server"; // eslint-disable-line import/no-unresolved // eslint-disable-next-line @typescript-eslint/no-explicit-any -const handleRemixRequest = createRequestHandler(build as any as ServerBuild); +const handleRequest = createRequestHandler(build as any as ServerBuild); export default { async fetch(request, env, ctx) { @@ -15,7 +15,7 @@ export default { // `getPlatformProxy` used during development via Remix's // `cloudflareDevProxyVitePlugin`: // https://developers.cloudflare.com/workers/wrangler/api/#getplatformproxy - cf: request.cf, + cf: request.cf!, ctx: { passThroughOnException: ctx.passThroughOnException.bind(ctx), waitUntil: ctx.waitUntil.bind(ctx), @@ -24,7 +24,7 @@ export default { env, }, }; - return await handleRemixRequest(request, loadContext); + return await handleRequest(request, loadContext); } catch (error) { console.log(error); return new Response("An unexpected error occurred", { status: 500 }); diff --git a/examples/remix-cms/.eslintrc.js b/examples/remix-cms/.eslintrc.js index 2061cd22..d92655b4 100644 --- a/examples/remix-cms/.eslintrc.js +++ b/examples/remix-cms/.eslintrc.js @@ -1,4 +1,4 @@ /** @type {import('eslint').Linter.Config} */ module.exports = { - extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], + extends: [], }; diff --git a/examples/remix-cms/.gitignore b/examples/remix-cms/.gitignore index d520faff..de346a68 100644 --- a/examples/remix-cms/.gitignore +++ b/examples/remix-cms/.gitignore @@ -7,3 +7,4 @@ node_modules .env /.wrangler superflare.env.d.ts +.react-router/ diff --git a/examples/remix-cms/app/components/admin/Button.tsx b/examples/remix-cms/app/components/admin/Button.tsx index 1ec2de05..f59fd853 100644 --- a/examples/remix-cms/app/components/admin/Button.tsx +++ b/examples/remix-cms/app/components/admin/Button.tsx @@ -1,4 +1,4 @@ -import { Link } from "@remix-run/react"; +import { Link } from "react-router"; import clsx from "clsx"; export function Button({ diff --git a/examples/remix-cms/app/entry.client.tsx b/examples/remix-cms/app/entry.client.tsx deleted file mode 100644 index 94d5dc0d..00000000 --- a/examples/remix-cms/app/entry.client.tsx +++ /dev/null @@ -1,18 +0,0 @@ -/** - * By default, Remix will handle hydrating your app on the client for you. - * You are free to delete this file if you'd like to, but if you ever want it revealed again, you can run `npx remix reveal` ✨ - * For more information, see https://remix.run/file-conventions/entry.client - */ - -import { RemixBrowser } from "@remix-run/react"; -import { startTransition, StrictMode } from "react"; -import { hydrateRoot } from "react-dom/client"; - -startTransition(() => { - hydrateRoot( - document, - - - - ); -}); diff --git a/examples/remix-cms/app/entry.server.tsx b/examples/remix-cms/app/entry.server.tsx index d3c0bbbd..3acd2d67 100644 --- a/examples/remix-cms/app/entry.server.tsx +++ b/examples/remix-cms/app/entry.server.tsx @@ -1,34 +1,41 @@ import { renderToReadableStream } from "react-dom/server"; -import { type EntryContext } from "@remix-run/cloudflare"; -import { RemixServer } from "@remix-run/react"; +import { type EntryContext, ServerRouter } from "react-router"; import { isbot } from "isbot"; export default async function handleRequest( request: Request, responseStatusCode: number, responseHeaders: Headers, - remixContext: EntryContext + routerContext: EntryContext ) { + let shellRendered = false; + const userAgent = request.headers.get("user-agent"); + const body = await renderToReadableStream( - , + , { onError(error: unknown) { responseStatusCode = 500; - // Log streaming rendering errors from inside the shell - console.error(error); + // Log streaming rendering errors from inside the shell. Don't log + // errors encountered during initial shell rendering since they'll + // reject and get logged in handleDocumentRequest. + if (shellRendered) { + console.error(error); + } }, - signal: request.signal, } ); + shellRendered = true; - if (isbot(request.headers.get("user-agent") || "")) { + // Ensure requests from bots and SPA Mode renders wait for all content to load before responding + // https://react.dev/reference/react-dom/server/renderToPipeableStream#waiting-for-all-content-to-load-for-crawlers-and-static-generation + if ((userAgent && isbot(userAgent)) || routerContext.isSpaMode) { await body.allReady; } responseHeaders.set("Content-Type", "text/html"); - return new Response(body, { - status: responseStatusCode, headers: responseHeaders, + status: responseStatusCode, }); } diff --git a/examples/remix-cms/app/models/Article.ts b/examples/remix-cms/app/models/Article.ts index 943c80ed..74fdc7fa 100644 --- a/examples/remix-cms/app/models/Article.ts +++ b/examples/remix-cms/app/models/Article.ts @@ -2,7 +2,7 @@ import { Model } from "superflare"; import { User } from "./User"; export class Article extends Model { - user!: User | Promise; + user!: User; $user() { return this.belongsTo(User); } diff --git a/examples/remix-cms/app/models/User.ts b/examples/remix-cms/app/models/User.ts index 95a280e9..859ec91a 100644 --- a/examples/remix-cms/app/models/User.ts +++ b/examples/remix-cms/app/models/User.ts @@ -6,6 +6,7 @@ export class User extends Model { return rest; } } + Model.register(User); export interface User extends UserRow {} diff --git a/examples/remix-cms/app/root.tsx b/examples/remix-cms/app/root.tsx index 02259e80..82507d34 100644 --- a/examples/remix-cms/app/root.tsx +++ b/examples/remix-cms/app/root.tsx @@ -1,11 +1,12 @@ -import type { LinksFunction, MetaFunction } from "@remix-run/cloudflare"; import { + type LinksFunction, + type MetaFunction, Links, Meta, Outlet, Scripts, ScrollRestoration, -} from "@remix-run/react"; +} from "react-router"; import "./tailwind.css"; import "./styles/syntax.css"; diff --git a/examples/remix-cms/app/routes.ts b/examples/remix-cms/app/routes.ts new file mode 100644 index 00000000..4c05936c --- /dev/null +++ b/examples/remix-cms/app/routes.ts @@ -0,0 +1,4 @@ +import { type RouteConfig } from "@react-router/dev/routes"; +import { flatRoutes } from "@react-router/fs-routes"; + +export default flatRoutes() satisfies RouteConfig; diff --git a/examples/remix-cms/app/routes/index.tsx b/examples/remix-cms/app/routes/_index.tsx similarity index 100% rename from examples/remix-cms/app/routes/index.tsx rename to examples/remix-cms/app/routes/_index.tsx diff --git a/examples/remix-cms/app/routes/admin/index.tsx b/examples/remix-cms/app/routes/admin._index.tsx similarity index 100% rename from examples/remix-cms/app/routes/admin/index.tsx rename to examples/remix-cms/app/routes/admin._index.tsx diff --git a/examples/remix-cms/app/routes/admin/articles.$slug.tsx b/examples/remix-cms/app/routes/admin.articles.$slug._index.tsx similarity index 78% rename from examples/remix-cms/app/routes/admin/articles.$slug.tsx rename to examples/remix-cms/app/routes/admin.articles.$slug._index.tsx index f7732034..d5b7cea4 100644 --- a/examples/remix-cms/app/routes/admin/articles.$slug.tsx +++ b/examples/remix-cms/app/routes/admin.articles.$slug._index.tsx @@ -1,17 +1,18 @@ import { EyeIcon } from "@heroicons/react/24/outline"; -import { json, type LoaderFunctionArgs } from "@remix-run/cloudflare"; -import { useLoaderData, useRevalidator } from "@remix-run/react"; +import { useLoaderData, useRevalidator } from "react-router"; import invariant from "tiny-invariant"; import { Button, SecondaryButton } from "~/components/admin/Button"; import { Page } from "~/components/admin/Page"; import { SayHelloJob } from "~/jobs/SayHelloJob"; import { Article } from "~/models/Article"; import { useChannel } from "~/utils/use-channel"; -import { ArticleForm } from "./components/article-form"; +import { ArticleForm } from "./admin/components/article-form"; -export { action } from "./components/article-form"; +import type { Route } from "./+types/admin.articles.$slug._index"; -export async function loader({ params }: LoaderFunctionArgs) { +export { action } from "./admin/components/article-form"; + +export async function loader({ params }: Route.LoaderArgs) { const { slug } = params; invariant(typeof slug === "string", "Missing slug"); @@ -21,10 +22,10 @@ export async function loader({ params }: LoaderFunctionArgs) { if (!article) { throw new Response("Not found", { status: 404 }); } - + console.log(article.user.name); SayHelloJob.dispatch(article); - return json({ article }); + return { article }; } export default function NewArticle() { diff --git a/examples/remix-cms/app/routes/admin/articles.$slug.preview.tsx b/examples/remix-cms/app/routes/admin.articles.$slug.preview.tsx similarity index 84% rename from examples/remix-cms/app/routes/admin/articles.$slug.preview.tsx rename to examples/remix-cms/app/routes/admin.articles.$slug.preview.tsx index b4edd183..b7fa53b4 100644 --- a/examples/remix-cms/app/routes/admin/articles.$slug.preview.tsx +++ b/examples/remix-cms/app/routes/admin.articles.$slug.preview.tsx @@ -1,6 +1,5 @@ import { PencilSquareIcon } from "@heroicons/react/24/outline"; -import { json, type LoaderFunctionArgs } from "@remix-run/cloudflare"; -import { useLoaderData } from "@remix-run/react"; +import { useLoaderData } from "react-router"; import invariant from "tiny-invariant"; import { SecondaryButton } from "~/components/admin/Button"; @@ -8,7 +7,9 @@ import { Page } from "~/components/admin/Page"; import { Article } from "~/models/Article"; import { convertToHtml } from "~/utils/markdown.server"; -export async function loader({ params }: LoaderFunctionArgs) { +import type { Route } from "./+types/admin.articles.$slug.preview"; + +export async function loader({ params }: Route.LoaderArgs) { const { slug } = params; invariant(typeof slug === "string", "Missing slug"); @@ -19,10 +20,10 @@ export async function loader({ params }: LoaderFunctionArgs) { throw new Response("Not found", { status: 404 }); } - return json({ + return { article, html: await convertToHtml(article.content ?? ""), - }); + }; } export default function NewArticle() { diff --git a/examples/remix-cms/app/routes/admin/articles.tsx b/examples/remix-cms/app/routes/admin.articles._index.tsx similarity index 96% rename from examples/remix-cms/app/routes/admin/articles.tsx rename to examples/remix-cms/app/routes/admin.articles._index.tsx index 91c6ae79..f6db27d8 100644 --- a/examples/remix-cms/app/routes/admin/articles.tsx +++ b/examples/remix-cms/app/routes/admin.articles._index.tsx @@ -1,5 +1,4 @@ -import { json } from "@remix-run/cloudflare"; -import { Link, useLoaderData } from "@remix-run/react"; +import { Link, useLoaderData } from "react-router"; import { Button } from "~/components/admin/Button"; import { Page } from "~/components/admin/Page"; import { Article } from "~/models/Article"; @@ -8,7 +7,7 @@ import { useChannel } from "~/utils/use-channel"; export async function loader() { const articles = await Article.with("user").orderBy("createdAt", "desc"); - return json({ articles }); + return { articles }; } export default function Articles() { diff --git a/examples/remix-cms/app/routes/admin/articles.new.tsx b/examples/remix-cms/app/routes/admin.articles.new.tsx similarity index 74% rename from examples/remix-cms/app/routes/admin/articles.new.tsx rename to examples/remix-cms/app/routes/admin.articles.new.tsx index 9757d7a7..d8cd1608 100644 --- a/examples/remix-cms/app/routes/admin/articles.new.tsx +++ b/examples/remix-cms/app/routes/admin.articles.new.tsx @@ -1,8 +1,8 @@ import { Button } from "~/components/admin/Button"; import { Page } from "~/components/admin/Page"; -import { ArticleForm } from "./components/article-form"; +import { ArticleForm } from "./admin/components/article-form"; -export { action } from "./components/article-form"; +export { action } from "./admin/components/article-form"; export default function NewArticle() { return ( diff --git a/examples/remix-cms/app/routes/admin/profile.tsx b/examples/remix-cms/app/routes/admin.profile.tsx similarity index 80% rename from examples/remix-cms/app/routes/admin/profile.tsx rename to examples/remix-cms/app/routes/admin.profile.tsx index c902e6fe..c73da397 100644 --- a/examples/remix-cms/app/routes/admin/profile.tsx +++ b/examples/remix-cms/app/routes/admin.profile.tsx @@ -1,6 +1,6 @@ -import { Form } from "@remix-run/react"; +import { Form } from "react-router"; import { Page } from "~/components/admin/Page"; -import { useAdmin } from "../auth/hooks"; +import { useAdmin } from "./auth/hooks"; export default function Profile() { const adminData = useAdmin(); diff --git a/examples/remix-cms/app/routes/admin.tsx b/examples/remix-cms/app/routes/admin.tsx index 593cf6d8..0c010920 100644 --- a/examples/remix-cms/app/routes/admin.tsx +++ b/examples/remix-cms/app/routes/admin.tsx @@ -12,19 +12,18 @@ import { XMarkIcon, } from "@heroicons/react/24/outline"; import clsx from "clsx"; -import { Link, NavLink, Outlet, useLoaderData } from "@remix-run/react"; +import { Link, NavLink, Outlet, redirect, useLoaderData } from "react-router"; import { Toast } from "~/components/Toast"; -import { json, type LoaderFunctionArgs, redirect } from "@remix-run/cloudflare"; import { User } from "~/models/User"; +import type { Route } from "./+types/admin"; + const navigation = [ { name: "Dashboard", href: "/admin", icon: HomeIcon, end: true }, { name: "Articles", href: "./articles", icon: FolderIcon }, ]; -export async function loader({ - context: { auth, session }, -}: LoaderFunctionArgs) { +export async function loader({ context: { auth, session } }: Route.LoaderArgs) { if (!(await auth.check(User))) { return redirect("/auth/login"); } @@ -33,10 +32,7 @@ export async function loader({ const user = await auth.user(User); - return json({ - flash, - user, - }); + return { flash, user }; } export default function AdminLayout() { diff --git a/examples/remix-cms/app/routes/admin/upload.$.ts b/examples/remix-cms/app/routes/admin.upload.$.ts similarity index 59% rename from examples/remix-cms/app/routes/admin/upload.$.ts rename to examples/remix-cms/app/routes/admin.upload.$.ts index 66a572e1..ce872f47 100644 --- a/examples/remix-cms/app/routes/admin/upload.$.ts +++ b/examples/remix-cms/app/routes/admin.upload.$.ts @@ -1,7 +1,8 @@ -import { json, type ActionFunctionArgs } from "@remix-run/cloudflare"; import { parseMultipartFormData, storage } from "superflare"; -export async function action({ request }: ActionFunctionArgs) { +import type { Route } from "./+types/admin.upload.$"; + +export async function action({ request }: Route.ActionArgs) { const formData = await parseMultipartFormData( request, async ({ stream, filename }) => { @@ -13,7 +14,5 @@ export async function action({ request }: ActionFunctionArgs) { } ); - return json({ - url: storage().url(formData.get("file") as string), - }); + return { url: storage().url(formData.get("file") as string) }; } diff --git a/examples/remix-cms/app/routes/admin/components/article-form.tsx b/examples/remix-cms/app/routes/admin/components/article-form.tsx index 19fde31d..3e077d85 100644 --- a/examples/remix-cms/app/routes/admin/components/article-form.tsx +++ b/examples/remix-cms/app/routes/admin/components/article-form.tsx @@ -1,10 +1,4 @@ -import { - json, - redirect, - type SerializeFrom, - type ActionFunctionArgs, -} from "@remix-run/cloudflare"; -import { Form, useActionData } from "@remix-run/react"; +import { Form, redirect, useActionData } from "react-router"; import { Article } from "~/models/Article"; import invariant from "tiny-invariant"; import { FormField } from "~/components/Form"; @@ -12,6 +6,8 @@ import MarkdownComposer from "~/components/admin/MarkdownComposer"; import { User } from "~/models/User"; import { ArticleUpdated } from "~/events/ArticleUpdated"; +import type { Route } from "../../+types/admin.articles.$slug._index"; + interface ActionData { title: string | null; content: string | null; @@ -29,12 +25,12 @@ const enum Intent { Update = "update", } -const badResponse = (data: ActionData) => json(data, { status: 422 }); +const badResponse = (data: ActionData) => Response.json(data, { status: 422 }); export async function action({ request, context: { auth, session }, -}: ActionFunctionArgs) { +}: Route.ActionArgs) { const body = new URLSearchParams(await request.text()); const title = body.get("title"); const content = body.get("content"); @@ -110,7 +106,7 @@ export function ArticleForm({ article, id, }: { - article?: SerializeFrom
; + article?: Article; id?: string; }) { const actionData = useActionData(); diff --git a/examples/remix-cms/app/routes/auth/login.tsx b/examples/remix-cms/app/routes/auth.login.tsx similarity index 82% rename from examples/remix-cms/app/routes/auth/login.tsx rename to examples/remix-cms/app/routes/auth.login.tsx index bb3b5124..8db8b42a 100644 --- a/examples/remix-cms/app/routes/auth/login.tsx +++ b/examples/remix-cms/app/routes/auth.login.tsx @@ -1,13 +1,11 @@ -import { Form, Link, useActionData } from "@remix-run/react"; -import { json, redirect, type ActionFunctionArgs } from "@remix-run/cloudflare"; +import { Form, Link, redirect, useActionData } from "react-router"; import { Button } from "~/components/admin/Button"; import { FormField } from "~/components/Form"; import { User } from "~/models/User"; -export async function action({ - request, - context: { auth }, -}: ActionFunctionArgs) { +import type { Route } from "./+types/auth.login"; + +export async function action({ request, context: { auth } }: Route.ActionArgs) { if (await auth.check(User)) { return redirect("/admin"); } @@ -26,11 +24,11 @@ export async function action({ return redirect("/admin"); } - return json({ error: "Invalid credentials" }, { status: 400 }); + return Response.json({ error: "Invalid credentials" }, { status: 400 }); } export default function Login() { - const actionData = useActionData(); + const actionData = useActionData<{ error: string }>(); return ( <> diff --git a/examples/remix-cms/app/routes/auth.logout.ts b/examples/remix-cms/app/routes/auth.logout.ts new file mode 100644 index 00000000..3877f409 --- /dev/null +++ b/examples/remix-cms/app/routes/auth.logout.ts @@ -0,0 +1,9 @@ +import { redirect } from "react-router"; + +import type { Route } from "./+types/auth.logout"; + +export async function action({ context: { auth } }: Route.ActionArgs) { + auth.logout(); + + return redirect("/"); +} diff --git a/examples/remix-cms/app/routes/auth/register.tsx b/examples/remix-cms/app/routes/auth.register.tsx similarity index 81% rename from examples/remix-cms/app/routes/auth/register.tsx rename to examples/remix-cms/app/routes/auth.register.tsx index 3ccc8ebc..fa949eed 100644 --- a/examples/remix-cms/app/routes/auth/register.tsx +++ b/examples/remix-cms/app/routes/auth.register.tsx @@ -1,14 +1,12 @@ -import { Form, Link, useActionData } from "@remix-run/react"; -import { json, redirect, type ActionFunctionArgs } from "@remix-run/cloudflare"; +import { Form, Link, redirect, useActionData } from "react-router"; import { Button } from "~/components/admin/Button"; import { FormField } from "~/components/Form"; import { User } from "~/models/User"; import { hash } from "superflare"; -export async function action({ - request, - context: { auth }, -}: ActionFunctionArgs) { +import type { Route } from "./+types/auth.register"; + +export async function action({ request, context: { auth } }: Route.ActionArgs) { if (await auth.check(User)) { return redirect("/admin"); } @@ -19,7 +17,7 @@ export async function action({ const name = formData.get("name") as string; if (await User.where("email", email).count()) { - return json({ error: "Email already exists" }, { status: 400 }); + return Response.json({ error: "Email already exists" }, { status: 400 }); } const user = await User.create({ @@ -34,7 +32,7 @@ export async function action({ } export default function Register() { - const actionData = useActionData(); + const actionData = useActionData<{ error: string }>(); return (
diff --git a/examples/remix-cms/app/routes/auth.tsx b/examples/remix-cms/app/routes/auth.tsx index 819198a0..9460bf4a 100644 --- a/examples/remix-cms/app/routes/auth.tsx +++ b/examples/remix-cms/app/routes/auth.tsx @@ -1,4 +1,4 @@ -import { Outlet } from "@remix-run/react"; +import { Outlet } from "react-router"; export default function Auth() { return ( diff --git a/examples/remix-cms/app/routes/auth/hooks.ts b/examples/remix-cms/app/routes/auth/hooks.ts index 0eb28b39..a1541c74 100644 --- a/examples/remix-cms/app/routes/auth/hooks.ts +++ b/examples/remix-cms/app/routes/auth/hooks.ts @@ -1,4 +1,4 @@ -import { useRouteLoaderData } from "@remix-run/react"; +import { useRouteLoaderData } from "react-router"; import { loader as adminLoader } from "../admin"; diff --git a/examples/remix-cms/app/routes/auth/logout.ts b/examples/remix-cms/app/routes/auth/logout.ts deleted file mode 100644 index 5c9f9005..00000000 --- a/examples/remix-cms/app/routes/auth/logout.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { type ActionFunctionArgs, redirect } from "@remix-run/cloudflare"; - -export async function action({ context: { auth } }: ActionFunctionArgs) { - auth.logout(); - - return redirect("/"); -} diff --git a/examples/remix-cms/app/routes/channel.$channelName.ts b/examples/remix-cms/app/routes/channel.$channelName.ts index 7f407f37..46bd3af7 100644 --- a/examples/remix-cms/app/routes/channel.$channelName.ts +++ b/examples/remix-cms/app/routes/channel.$channelName.ts @@ -1,10 +1,11 @@ -import type { LoaderFunctionArgs } from "@remix-run/cloudflare"; import { handleWebSockets } from "superflare"; import { User } from "~/models/User"; +import type { Route } from "./+types/channel.$channelName"; + export async function loader({ request, context: { auth, session }, -}: LoaderFunctionArgs) { +}: Route.LoaderArgs) { return handleWebSockets(request, { auth, session, userModel: User }); } diff --git a/examples/remix-cms/app/routes/storage.$.tsx b/examples/remix-cms/app/routes/storage.$.tsx index b4f2489a..49f3bc64 100644 --- a/examples/remix-cms/app/routes/storage.$.tsx +++ b/examples/remix-cms/app/routes/storage.$.tsx @@ -1,7 +1,8 @@ -import { type LoaderFunctionArgs } from "@remix-run/cloudflare"; import { servePublicPathFromStorage } from "superflare"; -export async function loader({ request }: LoaderFunctionArgs) { +import type { Route } from "./+types/storage.$"; + +export async function loader({ request }: Route.LoaderArgs) { const { pathname } = new URL(request.url); return servePublicPathFromStorage(pathname); } diff --git a/examples/remix-cms/functions/[[remix]].ts b/examples/remix-cms/functions/[[remix]].ts index 72a84613..62f85df7 100644 --- a/examples/remix-cms/functions/[[remix]].ts +++ b/examples/remix-cms/functions/[[remix]].ts @@ -1,50 +1,33 @@ -import { - createRequestHandler, - createCookieSessionStorage, -} from "@remix-run/cloudflare"; -import { handleFetch, SuperflareAuth } from "superflare"; -import getConfig from "../superflare.config"; +import { createRequestHandler, createCookieSessionStorage } from "react-router"; +import { handleFetch } from "@superflare/remix"; +import config from "../superflare.config"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore This file won’t exist if it hasn’t yet been built import * as build from "../build/server"; // eslint-disable-line import/no-unresolved -let remixHandler: ReturnType; +let handleRequest: ReturnType; -export const onRequest: PagesFunction = async (ctx) => { - if (!remixHandler) { - remixHandler = createRequestHandler( +export const onRequest: PagesFunction = async ( + context +) => { + if (!handleRequest) { + handleRequest = createRequestHandler( build as any, - ctx.env.CF_PAGES ? "production" : "development" + context.env.CF_PAGES ? "production" : "development" ); } - const sessionStorage = createCookieSessionStorage({ - cookie: { - httpOnly: true, - path: "/", - secure: /^(http|ws)s:\/\//.test(ctx.request.url), - secrets: [ctx.env.APP_KEY], - }, - }); + const ctx = { + passThroughOnException: context.passThroughOnException.bind(context), + props: {}, + waitUntil: context.waitUntil.bind(context), + }; - const session = await sessionStorage.getSession( - ctx.request.headers.get("Cookie") - ); - - return handleFetch( - { - config: getConfig({ - request: ctx.request, - env: ctx.env, - ctx, - }), - getSessionCookie: () => sessionStorage.commitSession(session), - }, - () => - remixHandler(ctx.request, { - auth: new SuperflareAuth(session), - session, - env: ctx.env, - }) + return handleFetch( + context.request, + context.env, + ctx, + config, + handleRequest ); }; diff --git a/examples/remix-cms/load-context.ts b/examples/remix-cms/load-context.ts index 1df09185..816f3f41 100644 --- a/examples/remix-cms/load-context.ts +++ b/examples/remix-cms/load-context.ts @@ -1,7 +1,9 @@ import { type Cloudflare } from "@superflare/remix"; -declare module "@remix-run/cloudflare" { +declare module "react-router" { interface AppLoadContext { cloudflare: Cloudflare; } } + +export {}; // necessary for TS to treat this as a module diff --git a/examples/remix-cms/package.json b/examples/remix-cms/package.json index ccf06027..b898df31 100644 --- a/examples/remix-cms/package.json +++ b/examples/remix-cms/package.json @@ -1,18 +1,18 @@ { "name": "remix-cms", "version": "1.0.0", - "description": "An example Superflare app powered by Remix", + "description": "An example Superflare app powered by React Router v7", "type": "module", "private": true, "sideEffects": false, "scripts": { - "build": "remix vite:build", + "build": "react-router build", "deploy": "wrangler deploy", "dev": "superflare dev", "start": "wrangler dev", "migrate": "superflare migrate", - "typegen": "wrangler types", - "typecheck": "tsc" + "typegen": "superflare migrate && wrangler types && react-router typegen", + "typecheck": "react-router typegen && tsc" }, "keywords": [], "author": "Josh Larson ", @@ -20,9 +20,8 @@ "dependencies": { "@headlessui/react": "^1.7.13", "@heroicons/react": "^2.0.16", - "@remix-run/cloudflare": "^2.12.1", - "@remix-run/react": "^2.12.1", - "@remix-run/v1-route-convention": "^0.1.4", + "@react-router/cloudflare": "^7.0.0", + "@react-router/fs-routes": "^7.0.0", "@superflare/remix": "workspace:*", "@tailwindcss/forms": "^0.5.3", "clsx": "^1.2.1", @@ -31,15 +30,15 @@ "marked": "^4.2.12", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-router": "^7.0.0", "superflare": "workspace:*", "textarea-markdown-editor": "^1.0.4", "tiny-invariant": "^1.3.1" }, "devDependencies": { - "@cloudflare/workers-types": "^4.20241011.0", + "@cloudflare/workers-types": "^4.20250109.0", "@faker-js/faker": "^7.6.0", - "@remix-run/dev": "^2.12.1", - "@remix-run/eslint-config": "^2.12.1", + "@react-router/dev": "^7.0.0", "@tailwindcss/typography": "^0.5.9", "@types/marked": "^4.0.8", "@types/react": "^18.0.28", diff --git a/examples/remix-cms/react-router.config.ts b/examples/remix-cms/react-router.config.ts new file mode 100644 index 00000000..04e55c93 --- /dev/null +++ b/examples/remix-cms/react-router.config.ts @@ -0,0 +1,3 @@ +import { type Config } from "@react-router/dev/config"; + +export default { ssr: true } satisfies Config; diff --git a/examples/remix-cms/tsconfig.json b/examples/remix-cms/tsconfig.json index 42d66e8c..92137b02 100644 --- a/examples/remix-cms/tsconfig.json +++ b/examples/remix-cms/tsconfig.json @@ -1,8 +1,18 @@ { - "include": ["worker-configuration.d.ts", "**/*.ts", "**/*.tsx"], + "include": [ + "worker-configuration.d.ts", + "**/*.ts", + "**/*.tsx", + ".react-router/types/**/*" + ], "compilerOptions": { "lib": ["DOM", "DOM.Iterable", "ES2022"], - "types": ["@remix-run/cloudflare", "vite/client"], + "types": [ + "@cloudflare/workers-types", + "@react-router/cloudflare", + "vite/client" + ], + "rootDirs": [".", "./.react-router/types"], "isolatedModules": true, "esModuleInterop": true, "jsx": "react-jsx", @@ -18,7 +28,7 @@ "~/*": ["./app/*"] }, - // Remix takes care of building everything in `remix build`. + // React router takes care of building everything in `react-router build`. "noEmit": true } } diff --git a/examples/remix-cms/types/build.d.ts b/examples/remix-cms/types/build.d.ts deleted file mode 100644 index 7744b692..00000000 --- a/examples/remix-cms/types/build.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { type ServerBuild } from "@remix-run/cloudflare"; - -export const assets: ServerBuild["assets"]; -export const assetsBuildDirectory: ServerBuild["assetsBuildDirectory"]; -export const entry: ServerBuild["entry"]; -export const future: ServerBuild["future"]; -export const publicPath: ServerBuild["publicPath"]; -export const routes: ServerBuild["routes"]; diff --git a/examples/remix-cms/vite.config.ts b/examples/remix-cms/vite.config.ts index eee688b5..62ea0fb9 100644 --- a/examples/remix-cms/vite.config.ts +++ b/examples/remix-cms/vite.config.ts @@ -1,30 +1,12 @@ import { defineConfig } from "vite"; -import { vitePlugin as remix } from "@remix-run/dev"; -import { createRoutesFromFolders } from "@remix-run/v1-route-convention"; +import { reactRouter } from "@react-router/dev/vite"; import { superflareDevProxyVitePlugin } from "@superflare/remix/dev"; import tsconfigPaths from "vite-tsconfig-paths"; export default defineConfig({ plugins: [ superflareDevProxyVitePlugin(), - remix({ - future: { - v3_fetcherPersist: true, - v3_lazyRouteDiscovery: true, - v3_relativeSplatPath: true, - v3_throwAbortReason: true, - }, - // Tell Remix to ignore everything in the routes directory. - // We’ll let createRoutesFromFolders take care of that. - ignoredRouteFiles: ["**/*"], - routes: async (defineRoutes) => { - // createRoutesFromFolders will create routes for all files in the - // routes directory using the same default conventions as Remix v1. - return createRoutesFromFolders(defineRoutes, { - ignoredFilePatterns: ["**/.*"], - }); - }, - }), + reactRouter(), tsconfigPaths(), ], ssr: { diff --git a/examples/remix-cms/worker.ts b/examples/remix-cms/worker.ts index 2767adf6..60f5c7bd 100644 --- a/examples/remix-cms/worker.ts +++ b/examples/remix-cms/worker.ts @@ -1,4 +1,4 @@ -import { createRequestHandler, type ServerBuild } from "@remix-run/cloudflare"; +import { createRequestHandler, type ServerBuild } from "react-router"; import { handleFetch } from "@superflare/remix"; import { handleQueue, handleScheduled } from "superflare"; import config from "./superflare.config"; diff --git a/packages/superflare-remix/dev.ts b/packages/superflare-remix/dev.ts index eee2f24d..e4bc517c 100644 --- a/packages/superflare-remix/dev.ts +++ b/packages/superflare-remix/dev.ts @@ -1,12 +1,6 @@ -import { cloudflareDevProxyVitePlugin } from "@remix-run/dev"; -import { - fromNodeRequest, - toNodeRequest, -} from "@remix-run/dev/dist/vite/node-adapter.js"; -import { - createRequestHandler, - type ServerBuild, -} from "@remix-run/server-runtime"; +import { createRequest, sendResponse } from "@mjackson/node-fetch-server"; +import { cloudflareDevProxy } from "@react-router/dev/vite/cloudflare"; +import { createRequestHandler, type ServerBuild } from "react-router"; import { type Plugin, type ViteDevServer } from "vite"; import { type GetPlatformProxyOptions } from "wrangler"; import { type Cloudflare, getLoadContext } from "./load-context"; @@ -41,7 +35,7 @@ export function superflareDevProxyVitePlugin( options: GetPlatformProxyOptions = {} ): Plugin { const ctx = new ExecutionContext(); - const remixVitePlugin = cloudflareDevProxyVitePlugin(options); + const remixVitePlugin = cloudflareDevProxy(options); return { ...remixVitePlugin, @@ -61,11 +55,11 @@ export function superflareDevProxyVitePlugin( // the same instance of the Config singleton class as in app code. const superflare = await server.ssrLoadModule("superflare"); const build = (await server.ssrLoadModule( - "virtual:remix/server-build" + "virtual:react-router/server-build" )) as ServerBuild; const handler = createRequestHandler(build, "development"); - const request = fromNodeRequest(nodeReq, nodeRes); + const request = createRequest(nodeReq, nodeRes); const loadContext = await getLoadContext({ context, request, @@ -86,7 +80,7 @@ export function superflareDevProxyVitePlugin( await loadContext.getSessionCookie() ); } - await toNodeRequest(response, nodeRes); + await sendResponse(nodeRes, response); } catch (error) { next(error); } diff --git a/packages/superflare-remix/index.ts b/packages/superflare-remix/index.ts index 63ac8f42..492c778b 100644 --- a/packages/superflare-remix/index.ts +++ b/packages/superflare-remix/index.ts @@ -1,4 +1,4 @@ -import { type AppLoadContext } from "@remix-run/cloudflare"; +import { type AppLoadContext } from "react-router"; import { type DefineConfigReturn, handleFetch as superflareHandleFetch, @@ -10,7 +10,7 @@ import { type Cloudflare, getLoadContext } from "./load-context"; export { type Cloudflare, getLoadContext } from "./load-context"; -declare module "@remix-run/cloudflare" { +declare module "react-router" { interface AppLoadContext { auth: InstanceType; session: InstanceType; @@ -39,7 +39,7 @@ export async function handleFetch( // `getPlatformProxy` used during development via Remix's // `cloudflareDevProxyVitePlugin`: // https://developers.cloudflare.com/workers/wrangler/api/#getplatformproxy - cloudflare: { caches, ctx, env, cf: request.cf }, + cloudflare: { caches, ctx, env, cf: request.cf as Cloudflare["cf"] }, }, SuperflareAuth, SuperflareSession, diff --git a/packages/superflare-remix/load-context.ts b/packages/superflare-remix/load-context.ts index ffad56d8..3b0c9d20 100644 --- a/packages/superflare-remix/load-context.ts +++ b/packages/superflare-remix/load-context.ts @@ -1,7 +1,4 @@ -import { - type AppLoadContext, - createCookieSessionStorage, -} from "@remix-run/cloudflare"; +import { type AppLoadContext, createCookieSessionStorage } from "react-router"; import type { SuperflareAuth, SuperflareSession } from "superflare"; import { type PlatformProxy } from "wrangler"; @@ -9,10 +6,9 @@ import { type PlatformProxy } from "wrangler"; // https://github.com/cloudflare/workers-sdk/blob/main/packages/wrangler/src/api/integrations/platform/caches.ts export type Cloudflare = Omit< PlatformProxy, - "dispose" | "caches" | "cf" + "dispose" | "caches" > & { caches: CacheStorage; - cf: Request["cf"]; }; // Shared implementation compatible with Vite, Wrangler, and Workers diff --git a/packages/superflare-remix/package.json b/packages/superflare-remix/package.json index 7712a057..5e964e30 100644 --- a/packages/superflare-remix/package.json +++ b/packages/superflare-remix/package.json @@ -37,23 +37,22 @@ "author": "Josh Larson ", "license": "MIT", "devDependencies": { - "@cloudflare/workers-types": "^4.20241011.0", - "@remix-run/cloudflare": "^2.12.1", - "@remix-run/dev": "^2.12.1", - "@remix-run/server-runtime": "^2.12.1", + "@cloudflare/workers-types": "^4.20250109.0", + "@react-router/dev": "^7", + "react-router": "^7", "tsconfig": "workspace:*", - "tsup": "^6.6.3", + "tsup": "^8.3.5", "typescript": "^5", "vite": "^5", "wrangler": "^3.91.0" }, "peerDependencies": { - "@remix-run/cloudflare": "^2.12.1", - "@remix-run/dev": "^2.12.1", - "@remix-run/server-runtime": "^2.12.1", + "@react-router/dev": "^7", + "react-router": "^7", "wrangler": "^3.91.0" }, "dependencies": { + "@mjackson/node-fetch-server": "^0.6.1", "superflare": "workspace:*" } } diff --git a/packages/superflare-remix/tsconfig.json b/packages/superflare-remix/tsconfig.json index 810acf2d..7cc32b9a 100644 --- a/packages/superflare-remix/tsconfig.json +++ b/packages/superflare-remix/tsconfig.json @@ -4,7 +4,8 @@ "exclude": ["node_modules", "dist"], "compilerOptions": { "lib": ["DOM", "DOM.Iterable", "ES2019"], - "module": "commonjs", + "module": "ESNext", + "moduleResolution": "bundler", "experimentalDecorators": true, "isolatedModules": false, "rootDir": ".", diff --git a/packages/superflare/cli/db/seed.ts b/packages/superflare/cli/db/seed.ts index ac986a34..35056c4d 100644 --- a/packages/superflare/cli/db/seed.ts +++ b/packages/superflare/cli/db/seed.ts @@ -36,7 +36,6 @@ export async function seedDb(dbName: string, seedPath: string) { if (!d1Database) { throw new Error(`Database ${dbName} not found`); } - // TODO: Find out why errors in the seeder are not bubbled to this try/catch if (seedModule.default) { await seedModule.default(d1Database); logger.info(`Seeding complete!`); diff --git a/packages/superflare/cli/dev.ts b/packages/superflare/cli/dev.ts index 889af630..afc43c6e 100644 --- a/packages/superflare/cli/dev.ts +++ b/packages/superflare/cli/dev.ts @@ -90,7 +90,7 @@ export async function devHandler( env: process.env, }); - spawn("remix", ["vite:dev"], { + spawn("react-router", ["dev"], { stdio: "inherit", shell: true, env: process.env, diff --git a/packages/superflare/docs/database/getting-started.md b/packages/superflare/docs/database/getting-started.md index 1d75a9bf..68f4d946 100644 --- a/packages/superflare/docs/database/getting-started.md +++ b/packages/superflare/docs/database/getting-started.md @@ -58,7 +58,7 @@ However, we cannot simply send the entire data model over the wire from the serv Instead, modern frameworks will serialize the output sent (from "loaders" in Remix, or passed as props from server components to client components in Next.js). -Superflare makes it obvious how to serialize your models as JSON by providing the standard `toJSON()` method by on new models. +Superflare makes it obvious how to serialize your models as JSON by providing the standard `toJSON()` method on new models. By default, this method will return all of the model's attributes, in addition to any relations that are loaded on the instance either manually or by using eager-loading. diff --git a/packages/superflare/docs/database/relationships.md b/packages/superflare/docs/database/relationships.md index 768ee497..18335b4b 100644 --- a/packages/superflare/docs/database/relationships.md +++ b/packages/superflare/docs/database/relationships.md @@ -18,7 +18,7 @@ import { Model } from "superflare"; import { Profile } from "./Profile"; export class User extends Model { - profile!: Profile | Promise; + profile!: Profile; $profile() { return this.hasOne(Profile); } @@ -46,7 +46,7 @@ To define the inverse relationship, use the `belongsTo` method: import { Model } from "superflare"; export class Profile extends Model { - user!: User | Promise; + user!: User; $user() { return this.belongsTo(User); } @@ -71,7 +71,7 @@ To define a one-to-many relationship, use the `hasMany` method: import { Model } from "superflare"; export class User extends Model { - posts!: Post[] | Promise; + posts!: Post[]; $posts() { return this.hasMany(Post); } @@ -96,7 +96,7 @@ To define the inverse relationship, use the `belongsTo` method: import { Model } from "superflare"; export class Post extends Model { - user!: User | Promise; + user!: User; $user() { return this.belongsTo(User); } @@ -144,7 +144,7 @@ To define a many-to-many relationship, use the `belongsToMany` method: import { Model } from "superflare"; export class Post extends Model { - tags!: Tag[] | Promise; + tags!: Tag[]; $tags() { return this.belongsToMany(Tag); } @@ -163,7 +163,7 @@ for (const tag of tags) { } ``` -When invoking the `$tags()` method or awaiting the `tags` property, Superflare will check an intermediate table, often referred to as a "join table," for rows which have a `postId` that matches the `id` of the `Post` model. It will return all `Tag` models which have a `id` that matches the `tagId` of the join table rows. +When invoking the `$tags()` method or awaiting the `tags` property, Superflare will check an intermediate table, often referred to as a "join table", for rows which have a `postId` that matches the `id` of the `Post` model. It will return all `Tag` models which have a `id` that matches the `tagId` of the join table rows. To define the inverse relationship, use the `belongsToMany` method again: @@ -171,7 +171,7 @@ To define the inverse relationship, use the `belongsToMany` method again: import { Model } from "superflare"; export class Tag extends Model { - posts!: Post[] | Promise; + posts!: Post[]; $posts() { return this.belongsToMany(Post); } @@ -202,7 +202,6 @@ If you don't eager load the related models, the related data will not be availab ```tsx import { User } from "~/models/User"; -import { json } from "@remix-run/cloudflare"; export async function loader() { // ❌ The profile relation will not be loaded @@ -211,7 +210,7 @@ export async function loader() { // ✅ This will load the profile relation for the view const user = await User.with("profile").find(1); - return json({ user }); + return { user }; } export default function UserView() { diff --git a/packages/superflare/docs/file-storage.md b/packages/superflare/docs/file-storage.md index 301dd16a..e50b96e5 100644 --- a/packages/superflare/docs/file-storage.md +++ b/packages/superflare/docs/file-storage.md @@ -140,10 +140,11 @@ You can import this utility in a route handler and pass it the current pathname ```ts // app/routes/storage.$.ts -import { type LoaderFunctionArgs } from "@remix-run/cloudflare"; import { servePublicPathFromStorage } from "superflare"; -export async function loader({ request }: LoaderFunctionArgs) { +import type { Route } from './+types/storage.$'; + +export async function loader({ request }: Route.LoaderArgs) { const { pathname } = new URL(request.url); return servePublicPathFromStorage(pathname); } diff --git a/packages/superflare/docs/getting-started.md b/packages/superflare/docs/getting-started.md index 9266c82a..ad952c40 100644 --- a/packages/superflare/docs/getting-started.md +++ b/packages/superflare/docs/getting-started.md @@ -32,7 +32,7 @@ npm install @superflare/remix Then, in your `worker.ts` file, import the `handleFetch` function from `@superflare/remix`, and import your local `superflare.config.ts` as `config`. Superflare handles building and providing the load context, so you’ll be able to delete a lot of the code required with the [default Remix adapter](https://github.com/remix-run/remix/blob/main/templates/cloudflare-workers/server.ts): ```ts -import { createRequestHandler, type ServerBuild } from "@remix-run/cloudflare"; +import { createRequestHandler, type ServerBuild } from "react-router"; import { handleFetch } from "@superflare/remix"; import config from "./superflare.config"; import * as build from "./build/server"; @@ -83,12 +83,12 @@ export default { } satisfies ExportedHandler; ``` -For local development, Remix uses Vite’s dev server with a [Cloudflare Proxy Vite plugin](https://remix.run/docs/en/main/guides/vite#cloudflare-proxy) that invokes [`getPlatformProxy`](https://developers.cloudflare.com/workers/wrangler/api/#getplatformproxy) to provide [bindings](https://developers.cloudflare.com/workers/wrangler/api/#supported-bindings) to your application from outside of the deployed `workersd` environment. Superflare has an additional entry point, `@superflare/remix/dev`, that exports `superflareDevProxyVitePlugin`, which adds Superflare support and can be used in place of Remix’s proxy plugin in your Vite config: +For local development, React Router uses Vite’s dev server with a [Cloudflare Proxy Vite plugin](https://github.com/remix-run/react-router/blob/main/packages/react-router-dev/vite/cloudflare-dev-proxy.ts#L32-L37) that invokes [`getPlatformProxy`](https://developers.cloudflare.com/workers/wrangler/api/#getplatformproxy) to provide [bindings](https://developers.cloudflare.com/workers/wrangler/api/#supported-bindings) to your application from outside of the deployed `workersd` environment. Superflare has an additional entry point, `@superflare/remix/dev`, that exports `superflareDevProxyVitePlugin`, which adds Superflare support and can be used in place of React Router’s proxy plugin in your Vite config: ```ts // vite.config.ts -import { vitePlugin as remix } from "@remix-run/dev"; +import { reactRouter } from "@react-router/dev/vite""; import { superflareDevProxyVitePlugin } from "@superflare/remix/dev"; import { defineConfig } from "vite"; import tsconfigPaths from "vite-tsconfig-paths"; @@ -96,7 +96,7 @@ import tsconfigPaths from "vite-tsconfig-paths"; export default defineConfig({ plugins: [ superflareDevProxyVitePlugin(), - remix(), + reactRouter(), tsconfigPaths(), ], ssr: { @@ -114,7 +114,7 @@ export default defineConfig({ **Do not** use `build: { minify: true }` in your Vite config. This will mangle the variable names of the `workerd` (SSR) build and change the names of your [models](/models), which will in turn break the mapping between those models and their corresponding DB tables. Vite’s [default minify behavior](https://vite.dev/config/build-options.html#build-minify) is to minify the client build and leave the SSR build untouched, which is what we want. {% /callout %} -The Superflare Remix integration creates a [cookie-based session storage](https://remix.run/docs/en/main/utils/sessions#createcookiesessionstorage) and injects `auth`, `session`, and `cloudflare` objects into your load context (the `AppContext` type), which is provided to your loaders and actions. The `cloudflare` object matches the return value of [Wrangler’s `getPlatformProxy`](https://developers.cloudflare.com/workers/wrangler/api/#getplatformproxy). +The Superflare React Router integration creates a [cookie-based session storage](https://reactrouter.com/explanation/sessions-and-cookies) and injects `auth`, `session`, and `cloudflare` objects into your load context (the `AppContext` type), which is provided to your loaders and actions. The `cloudflare` object matches the return value of [Wrangler’s `getPlatformProxy`](https://developers.cloudflare.com/workers/wrangler/api/#getplatformproxy). {% callout title="Cookie Monster" %} Superflare automatically commits your session data to the outgoing response's `set-cookie` header, so you don't need to worry about that like you do in a standard Remix app. diff --git a/packages/superflare/docs/index.md b/packages/superflare/docs/index.md index 74b355cb..8445a5eb 100644 --- a/packages/superflare/docs/index.md +++ b/packages/superflare/docs/index.md @@ -5,7 +5,7 @@ description: A new way to build full-stack applications on Cloudflare Workers [Superflare](https://superflare.dev) is an experimental full-stack toolkit for Cloudflare Workers. It features a relational ORM for [D1 databases](/models), utilities for [R2 storage](/file-storage), and lots more. -Superflare is _not_ a full-stack framework. In fact, Superflare works best when combined with [Remix](https://remix.run), [Next.js](https://nextjs.org) (soon!) or [Nuxt.js](https://nuxtjs.com) (soon!). +Superflare is _not_ a full-stack framework. In fact, Superflare works best when combined with [React Router](https://reactrouter.com)/[Remix](https://remix.run), [Next.js](https://nextjs.org) (soon!) or [Nuxt.js](https://nuxtjs.com) (soon!). Check out various Superflare [example apps](https://github.com/jplhomer/superflare/tree/main/examples/) to get a feel for what you can build next, or [get started](/getting-started) with a new Superflare application. diff --git a/packages/superflare/docs/reference/cli.md b/packages/superflare/docs/reference/cli.md index 5dd548b3..40bbaa9f 100644 --- a/packages/superflare/docs/reference/cli.md +++ b/packages/superflare/docs/reference/cli.md @@ -49,7 +49,7 @@ npx wrangler d1 migrations apply DB --remote ## `superflare dev` -The `dev` command starts a local development server for your Superflare app. It’s a wrapper around two commands: `remix vite:dev` (starts the main Vite dev server) and `wrangler dev --no-bundle` (enables working with [Durable Object bindings](https://developers.cloudflare.com/workers/wrangler/api/#supported-bindings)). You can use it directly or put it in your `package.json`’s scripts: `"dev": "superflare dev"`. +The `dev` command starts a local development server for your Superflare app. It’s a wrapper around two commands: `react-router dev` (starts the main Vite dev server) and `wrangler dev --no-bundle` (enables working with [Durable Object bindings](https://developers.cloudflare.com/workers/wrangler/api/#supported-bindings)). You can use it directly or put it in your `package.json`’s scripts: `"dev": "superflare dev"`. ## `superflare generate` diff --git a/packages/superflare/docs/security/authentication.md b/packages/superflare/docs/security/authentication.md index 5a9f72cd..d17d0f46 100644 --- a/packages/superflare/docs/security/authentication.md +++ b/packages/superflare/docs/security/authentication.md @@ -26,7 +26,7 @@ If you've created a Superflare app with `npx superflare new`, you should already ## Register and Login pages -The [Superflare Remix template](https://github.com/jplhomer/superflare/tree/main/templates/remix) provides basic `/register` and `/login` routes and forms for you to use. You can use these as-is, or you can copy the code and modify it to your liking. +The [Superflare React Router template](https://github.com/jplhomer/superflare/tree/main/templates/remix) provides basic `/register` and `/login` routes and forms for you to use. You can use these as-is, or you can copy the code and modify it to your liking. ## Protecting routes @@ -34,7 +34,7 @@ You can protect routes by using the `SuperflareAuth` instance from your app’s ```ts // routes/my-secret-route.tsx -export async function loader({ context: { auth } }: LoaderFunctionArgs) { +export async function loader({ context: { auth } }: Route.LoaderArgs) { // If the user is not logged in, redirect them to the login page if (!(await auth.check(User))) { return redirect("/login"); @@ -43,7 +43,7 @@ export async function loader({ context: { auth } }: LoaderFunctionArgs) { const user = await auth.user(User); // If the user is logged in, show them the secret page - return json({ message: `You're logged in, ${user.name}!` }); + return { message: `You're logged in, ${user.name}!` }; } ``` @@ -53,7 +53,7 @@ To log out, you can use the `SuperflareAuth` instance's `logout()` method: ```ts // routes/logout.tsx -export async function action({ context: { auth } }: LoaderFunctionArgs) { +export async function action({ context: { auth } }: Route.LoaderArgs) { auth.logout(); return redirect("/login"); diff --git a/packages/superflare/docs/sessions.md b/packages/superflare/docs/sessions.md index 0fa43068..378c1d7b 100644 --- a/packages/superflare/docs/sessions.md +++ b/packages/superflare/docs/sessions.md @@ -9,7 +9,7 @@ The `SuperflareSession` instance keeps track of any changes to the session, and ## Creating sessions -_The following instructions assume you are using Remix. They will be updated when Superflare supports other frameworks._ +_The following instructions assume you are using React Router. They will be updated when Superflare supports other frameworks._ The `@superflare/remix` package exports `handleFetch`, which takes care of session creation and makes the session available on your Remix `AppContext` in deployed workers. There is an additional entry point, `@superflare/remix/dev`, that exports `superflareDevProxyVitePlugin` to provide the same automatic session handling in local dev when using the Vite dev server. See the [Getting Started](/getting-started) guide for details. @@ -27,7 +27,7 @@ export async function action({ context: { session } }) { export async function loader({ context: { session } }) { const theme = session.get("theme"); - return json({ theme }); + return { theme }; } ``` @@ -41,7 +41,7 @@ To do this, you can use the `flash` method: export async function loader({ context: { session } }) { session.flash("success", "Your form was submitted successfully!"); - return json({ success: true }); + return { success: true }; } ``` @@ -51,7 +51,7 @@ Then, you can read the flash message in your action using the `getFlash` method: export async function action({ context: { session } }) { const success = session.getFlash("success"); - return json({ success }); + return { success }; } ``` diff --git a/packages/superflare/index.types.ts b/packages/superflare/index.types.ts index 88720139..171d38b0 100644 --- a/packages/superflare/index.types.ts +++ b/packages/superflare/index.types.ts @@ -69,18 +69,12 @@ export interface HasMany[]> * Shape of the model constructor (static properties). */ export interface BaseModel { - find(this: T, ids: number[]): Promise[]>; + find(this: T, ids: number[]): QueryBuilder; find( this: T, id: number - ): Promise>; - first(this: T): Promise>; - orderBy( - this: T, - field: string, - direction?: "asc" | "desc" - ): QueryBuilder; - all(this: T): Promise[]>; + ): QueryBuilder, true>; + all(this: T): QueryBuilder; where( this: T, field: string, @@ -101,12 +95,21 @@ export interface BaseModel { this: T, relationName: string | string[] ): QueryBuilder; + orderBy( + this: T, + field: string, + direction?: "asc" | "desc" + ): QueryBuilder; + query(this: T): QueryBuilder; + // Changes return type to single instance: + first(this: T): QueryBuilder, true>; + count(this: T): Promise; + create( this: T, attributes: any ): Promise>; - count(this: T): Promise; - query(this: T): QueryBuilder; + register(model: any): void; tableName: string; @@ -115,20 +118,46 @@ export interface BaseModel { new (attributes?: any): ModelInstance; } -interface QueryBuilder> { - count(this: T): Promise; - find(this: T, id: number): Promise; - find(this: T, ids: number[]): Promise; +// Helper type to extract the JSON return type from a model instance +type JSONReturnType = I extends ModelInstance + ? ReturnType + : never; + +// Helper type to determine if the query will return a single item or array +type QueryResult = IsSingle extends true ? I : I[]; + +interface QueryBuilder< + M extends BaseModel, + I = InstanceType, + IsSingle extends boolean = false +> { + find(this: T, id: number): QueryBuilder; + find(this: T, ids: number[]): this; where(this: T, field: string, value: any): this; where(this: T, field: string, operator: string, value?: any): this; whereIn(this: T, field: string, values: (string | number)[]): this; with(this: T, relationName: string | string[]): this; limit(this: T, limit: number): this; - get(): Promise; - first(): Promise; orderBy(this: T, field: string, direction?: "asc" | "desc"): this; - then(onfulfilled?: (value: R[]) => R[] | PromiseLike): Promise; - catch(onrejected?: (reason: any) => any): Promise; + // Changes return type to single instance: + first(): QueryBuilder; + + // Promise-returning methods with specific return types + count(this: T): Promise; + get(): Promise>; + toJSON(): Promise< + IsSingle extends true ? JSONReturnType : JSONReturnType[] + >; + + // Promise compatibility + then>( + onfulfilled?: ( + value: QueryResult + ) => Result | PromiseLike + ): Promise; + catch>( + onrejected?: ((reason: any) => Result | PromiseLike) | null + ): Promise; } declare const Model: BaseModel; diff --git a/packages/superflare/package.json b/packages/superflare/package.json index c82b2c05..6a0d28ec 100644 --- a/packages/superflare/package.json +++ b/packages/superflare/package.json @@ -44,8 +44,8 @@ "bcryptjs": "^2.4.3", "chalk": "^4.1.2", "cli-table3": "^0.6.3", - "esbuild": "^0.17.10", - "esbuild-register": "^3.4.2", + "esbuild": "^0.24.2", + "esbuild-register": "^3.6.0", "gunzip-maybe": "^1.4.2", "npx-import": "^1.1.4", "pluralize": "^8.0.0", @@ -55,7 +55,7 @@ "yargs": "^17.6.2" }, "devDependencies": { - "@cloudflare/workers-types": "^4.20241011.0", + "@cloudflare/workers-types": "^4.20250109.0", "@miniflare/core": "^2.14.2", "@miniflare/d1": "^2.14.2", "@miniflare/shared": "^2.14.2", @@ -67,7 +67,7 @@ "@types/yargs": "^17.0.20", "better-sqlite3": "^11.5.0", "tsconfig": "workspace:*", - "tsup": "^6.6.3", + "tsup": "^8.3.5", "typescript": "^5", "vitest": "^0.28.3" } diff --git a/packages/superflare/src/model.ts b/packages/superflare/src/model.ts index 67f645c5..de94d278 100644 --- a/packages/superflare/src/model.ts +++ b/packages/superflare/src/model.ts @@ -34,7 +34,7 @@ export class Model { return new Proxy(this, { get(target, prop) { - if (prop in target) { + if (target[prop as keyof Model] !== undefined) { return target[prop as keyof Model]; } @@ -46,7 +46,7 @@ export class Model { return target.attributes[prop]; } - // If trying to access a relation property, and it hasn't be set yet, call the relation function. + // If trying to access a relation property that hasn't been set yet, call the relation function. if (typeof prop === "string" && target[`$${prop}` as keyof Model]) { return target[`$${prop}` as keyof Model](); } @@ -59,6 +59,10 @@ export class Model { target.attributes[prop] = value; return true; }, + + ownKeys(target) { + return Object.keys(target.toJSON()); + }, }); } @@ -220,8 +224,8 @@ export class Model { const value = this.relations[key]; acc[key] = value instanceof Array - ? value.map((model) => model.serialize()) - : value.serialize(); + ? value.map((model) => model.toJSON()) + : value.toJSON(); return acc; }, {} as Record); } diff --git a/packages/superflare/src/query-builder.ts b/packages/superflare/src/query-builder.ts index 3f9b78e1..88125916 100644 --- a/packages/superflare/src/query-builder.ts +++ b/packages/superflare/src/query-builder.ts @@ -10,6 +10,7 @@ export class QueryBuilder { private $eagerLoad: string[] = []; private $limit: number | null = null; private $single: boolean = false; + private $serialize: boolean = false; private $modelClass: any; private $afterHooks: ((results: any) => void)[] = []; @@ -69,6 +70,9 @@ export class QueryBuilder { results = await this.eagerLoadRelations(results); + results = this.$serialize + ? results.map((result: typeof this.$modelClass) => result.toJSON()) + : results; let result = this.$single ? results[0] ?? null : results; this.runCallbacks(result); @@ -139,6 +143,11 @@ export class QueryBuilder { return this.limit(1); } + toJSON(): this { + this.$serialize = true; + return this; + } + async insert(attributes: Record): Promise { try { const results = await this.connection() diff --git a/packages/superflare/src/seeder.ts b/packages/superflare/src/seeder.ts index 0faa55c1..54bf1dd6 100644 --- a/packages/superflare/src/seeder.ts +++ b/packages/superflare/src/seeder.ts @@ -3,6 +3,6 @@ import { setConfig } from "./config"; export function seed(callback: () => void) { return (database: D1Database) => { setConfig({ database: { default: database } }); - callback(); + return callback(); }; } diff --git a/packages/superflare/tests/d1-types.test.ts b/packages/superflare/tests/d1-types.test.ts index 725c37d5..ccee50e6 100644 --- a/packages/superflare/tests/d1-types.test.ts +++ b/packages/superflare/tests/d1-types.test.ts @@ -146,7 +146,7 @@ describe("syncSuperflareTypes", () => { const types = await generateTypesFromSqlite(db); const results = syncSuperflareTypes(tmpDir, modelsDir, types); - // Expect `user.ts` to not exist + // Expect `User.ts` to not exist expect(fs.existsSync(path.join(tmpDir, "User.ts"))).toBe(false); expect(fs.readFileSync(path.join(modelsDir, "Post.ts"), "utf8")).toBe( @@ -173,7 +173,7 @@ describe("syncSuperflareTypes", () => { createIfNotFound: true, }); - // Expect `user.ts` to have been created + // Expect `User.ts` to have been created expect(fs.existsSync(path.join(modelsDir, "User.ts"))).toBe(true); expect(fs.readFileSync(path.join(modelsDir, "User.ts"), "utf8")).toBe( "import { Model } from 'superflare';\n\n" + diff --git a/packages/superflare/tests/model/belongs-to.test.ts b/packages/superflare/tests/model/belongs-to.test.ts index 864992d4..aad56d9a 100644 --- a/packages/superflare/tests/model/belongs-to.test.ts +++ b/packages/superflare/tests/model/belongs-to.test.ts @@ -14,7 +14,7 @@ class Post extends ModelConstructor { updatedAt!: string; userId!: number; - user!: User | Promise; + user!: User; $user() { return this.belongsTo(User); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 390e43c0..e01f950a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -42,12 +42,12 @@ importers: '@markdoc/markdoc': specifier: 0.4.0 version: 0.4.0(@types/react@18.3.3)(react@18.2.0) - '@remix-run/cloudflare': - specifier: ^2.12.1 - version: 2.14.0(@cloudflare/workers-types@4.20241018.0)(typescript@5.5.3) - '@remix-run/react': - specifier: ^2.12.1 - version: 2.14.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.3) + '@react-router/cloudflare': + specifier: ^7.0.0 + version: 7.1.2(@cloudflare/workers-types@4.20250109.0)(react-router@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(tsup@8.3.5(jiti@1.21.6)(postcss@8.4.39)(typescript@5.7.3)(yaml@2.4.5))(typescript@5.7.3) + '@react-router/fs-routes': + specifier: ^7.0.0 + version: 7.1.2(@react-router/dev@7.1.2(@types/node@18.19.39)(react-router@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.7.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.103.2(@cloudflare/workers-types@4.20250109.0)))(typescript@5.7.3) '@sindresorhus/slugify': specifier: ^2.1.1 version: 2.2.1 @@ -65,7 +65,7 @@ importers: version: 5.2.0 isbot: specifier: latest - version: 5.1.17 + version: 5.1.22 js-yaml: specifier: ^4.1.0 version: 4.1.0 @@ -84,6 +84,9 @@ importers: react-dom: specifier: 18.2.0 version: 18.2.0(react@18.2.0) + react-router: + specifier: ^7.0.0 + version: 7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) tailwindcss: specifier: ^3.4.4 version: 3.4.4 @@ -92,14 +95,11 @@ importers: version: 1.3.3 devDependencies: '@cloudflare/workers-types': - specifier: ^4.20241011.0 - version: 4.20241018.0 - '@remix-run/dev': - specifier: ^2.12.1 - version: 2.14.0(@remix-run/react@2.14.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.3))(@types/node@18.19.39)(typescript@5.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20241018.0)) - '@remix-run/eslint-config': - specifier: ^2.12.1 - version: 2.14.0(eslint@8.26.0)(react@18.2.0)(typescript@5.5.3) + specifier: ^4.20250109.0 + version: 4.20250109.0 + '@react-router/dev': + specifier: ^7.0.0 + version: 7.1.2(@types/node@18.19.39)(react-router@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.7.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.103.2(@cloudflare/workers-types@4.20250109.0)) '@types/js-yaml': specifier: ^4.0.5 version: 4.0.9 @@ -129,16 +129,16 @@ importers: version: link:../../packages/tsconfig typescript: specifier: ^5 - version: 5.5.3 + version: 5.7.3 vite: specifier: ^5.3.4 version: 5.3.4(@types/node@18.19.39) vite-tsconfig-paths: specifier: ^4.3.2 - version: 4.3.2(typescript@5.5.3)(vite@5.3.4(@types/node@18.19.39)) + version: 4.3.2(typescript@5.7.3)(vite@5.3.4(@types/node@18.19.39)) wrangler: specifier: ^3.91.0 - version: 3.96.0(@cloudflare/workers-types@4.20241018.0) + version: 3.103.2(@cloudflare/workers-types@4.20250109.0) examples/remix-cms: dependencies: @@ -148,15 +148,12 @@ importers: '@heroicons/react': specifier: ^2.0.16 version: 2.1.5(react@18.2.0) - '@remix-run/cloudflare': - specifier: ^2.12.1 - version: 2.14.0(@cloudflare/workers-types@4.20241018.0)(typescript@5.5.3) - '@remix-run/react': - specifier: ^2.12.1 - version: 2.14.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.3) - '@remix-run/v1-route-convention': - specifier: ^0.1.4 - version: 0.1.4(@remix-run/dev@2.14.0(@remix-run/react@2.14.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.3))(@types/node@18.19.39)(typescript@5.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20241018.0))) + '@react-router/cloudflare': + specifier: ^7.0.0 + version: 7.1.2(@cloudflare/workers-types@4.20250109.0)(react-router@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(tsup@8.3.5(jiti@1.21.6)(postcss@8.4.39)(typescript@5.7.3)(yaml@2.4.5))(typescript@5.7.3) + '@react-router/fs-routes': + specifier: ^7.0.0 + version: 7.1.2(@react-router/dev@7.1.2(@types/node@18.19.39)(react-router@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.7.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.103.2(@cloudflare/workers-types@4.20250109.0)))(typescript@5.7.3) '@superflare/remix': specifier: workspace:* version: link:../../packages/superflare-remix @@ -181,6 +178,9 @@ importers: react-dom: specifier: ^18.2.0 version: 18.2.0(react@18.2.0) + react-router: + specifier: ^7.0.0 + version: 7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) superflare: specifier: workspace:* version: link:../../packages/superflare @@ -192,17 +192,14 @@ importers: version: 1.3.3 devDependencies: '@cloudflare/workers-types': - specifier: ^4.20241011.0 - version: 4.20241018.0 + specifier: ^4.20250109.0 + version: 4.20250109.0 '@faker-js/faker': specifier: ^7.6.0 version: 7.6.0 - '@remix-run/dev': - specifier: ^2.12.1 - version: 2.14.0(@remix-run/react@2.14.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.3))(@types/node@18.19.39)(typescript@5.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20241018.0)) - '@remix-run/eslint-config': - specifier: ^2.12.1 - version: 2.14.0(eslint@8.57.0)(react@18.2.0)(typescript@5.5.3) + '@react-router/dev': + specifier: ^7.0.0 + version: 7.1.2(@types/node@18.19.39)(react-router@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.7.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.103.2(@cloudflare/workers-types@4.20250109.0)) '@tailwindcss/typography': specifier: ^0.5.9 version: 0.5.13(tailwindcss@3.4.4) @@ -232,16 +229,16 @@ importers: version: link:../../packages/tsconfig typescript: specifier: ^5 - version: 5.5.3 + version: 5.7.3 vite: specifier: ^5.3.4 version: 5.3.4(@types/node@18.19.39) vite-tsconfig-paths: specifier: ^4.3.2 - version: 4.3.2(typescript@5.5.3)(vite@5.3.4(@types/node@18.19.39)) + version: 4.3.2(typescript@5.7.3)(vite@5.3.4(@types/node@18.19.39)) wrangler: specifier: ^3.91.0 - version: 3.96.0(@cloudflare/workers-types@4.20241018.0) + version: 3.103.2(@cloudflare/workers-types@4.20250109.0) packages/eslint-config-custom: dependencies: @@ -253,14 +250,14 @@ importers: version: 8.10.0(eslint@7.32.0) eslint-config-turbo: specifier: latest - version: 2.3.0(eslint@7.32.0) + version: 2.4.0(eslint@7.32.0)(turbo@2.2.3) eslint-plugin-react: specifier: 7.31.8 version: 7.31.8(eslint@7.32.0) devDependencies: typescript: specifier: ^5 - version: 5.5.3 + version: 5.7.3 packages/superflare: dependencies: @@ -280,11 +277,11 @@ importers: specifier: ^0.6.3 version: 0.6.5 esbuild: - specifier: ^0.17.10 - version: 0.17.19 + specifier: ^0.24.2 + version: 0.24.2 esbuild-register: - specifier: ^3.4.2 - version: 3.5.0(esbuild@0.17.19) + specifier: ^3.6.0 + version: 3.6.0(esbuild@0.24.2) gunzip-maybe: specifier: ^1.4.2 version: 1.4.2 @@ -302,14 +299,14 @@ importers: version: 1.3.3 wrangler: specifier: ^3.91.0 - version: 3.96.0(@cloudflare/workers-types@4.20241018.0) + version: 3.103.2(@cloudflare/workers-types@4.20250109.0) yargs: specifier: ^17.6.2 version: 17.7.2 devDependencies: '@cloudflare/workers-types': - specifier: ^4.20241011.0 - version: 4.20241018.0 + specifier: ^4.20250109.0 + version: 4.20250109.0 '@miniflare/core': specifier: ^2.14.2 version: 2.14.2 @@ -344,59 +341,59 @@ importers: specifier: workspace:* version: link:../tsconfig tsup: - specifier: ^6.6.3 - version: 6.7.0(postcss@8.4.39)(typescript@5.5.3) + specifier: ^8.3.5 + version: 8.3.5(jiti@1.21.6)(postcss@8.4.39)(typescript@5.7.3)(yaml@2.4.5) typescript: specifier: ^5 - version: 5.5.3 + version: 5.7.3 vitest: specifier: ^0.28.3 version: 0.28.5 packages/superflare-remix: dependencies: + '@mjackson/node-fetch-server': + specifier: ^0.6.1 + version: 0.6.1 superflare: specifier: workspace:* version: link:../superflare devDependencies: '@cloudflare/workers-types': - specifier: ^4.20241011.0 - version: 4.20241018.0 - '@remix-run/cloudflare': - specifier: ^2.12.1 - version: 2.14.0(@cloudflare/workers-types@4.20241018.0)(typescript@5.5.3) - '@remix-run/dev': - specifier: ^2.12.1 - version: 2.14.0(@remix-run/react@2.14.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.3))(@types/node@18.19.39)(typescript@5.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20241018.0)) - '@remix-run/server-runtime': - specifier: ^2.12.1 - version: 2.14.0(typescript@5.5.3) + specifier: ^4.20250109.0 + version: 4.20250109.0 + '@react-router/dev': + specifier: ^7 + version: 7.1.2(@types/node@18.19.39)(react-router@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.7.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.103.2(@cloudflare/workers-types@4.20250109.0)) + react-router: + specifier: ^7 + version: 7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) tsconfig: specifier: workspace:* version: link:../tsconfig tsup: - specifier: ^6.6.3 - version: 6.7.0(postcss@8.4.39)(typescript@5.5.3) + specifier: ^8.3.5 + version: 8.3.5(jiti@1.21.6)(postcss@8.4.39)(typescript@5.7.3)(yaml@2.4.5) typescript: specifier: ^5 - version: 5.5.3 + version: 5.7.3 vite: specifier: ^5 version: 5.3.4(@types/node@18.19.39) wrangler: specifier: ^3.91.0 - version: 3.96.0(@cloudflare/workers-types@4.20241018.0) + version: 3.103.2(@cloudflare/workers-types@4.20250109.0) packages/tsconfig: {} templates/remix: dependencies: - '@remix-run/cloudflare': - specifier: ^2.12.1 - version: 2.14.0(@cloudflare/workers-types@4.20241018.0)(typescript@5.5.3) - '@remix-run/react': - specifier: ^2.12.1 - version: 2.14.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.3) + '@react-router/cloudflare': + specifier: ^7.0.0 + version: 7.1.2(@cloudflare/workers-types@4.20250109.0)(react-router@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(tsup@8.3.5(jiti@1.21.6)(postcss@8.4.39)(typescript@5.7.3)(yaml@2.4.5))(typescript@5.7.3) + '@react-router/fs-routes': + specifier: ^7.0.0 + version: 7.1.2(@react-router/dev@7.1.2(@types/node@18.19.39)(react-router@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.7.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.103.2(@cloudflare/workers-types@4.20250109.0)))(typescript@5.7.3) '@superflare/remix': specifier: workspace:* version: link:../../packages/superflare-remix @@ -409,6 +406,9 @@ importers: react-dom: specifier: ^18.2.0 version: 18.2.0(react@18.2.0) + react-router: + specifier: ^7.0.0 + version: 7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) superflare: specifier: workspace:* version: link:../../packages/superflare @@ -417,11 +417,11 @@ importers: version: 1.3.3 devDependencies: '@cloudflare/workers-types': - specifier: ^4.20241011.0 - version: 4.20241018.0 - '@remix-run/dev': - specifier: ^2.12.1 - version: 2.14.0(@remix-run/react@2.14.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.3))(@types/node@18.19.39)(typescript@5.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20241018.0)) + specifier: ^4.20250109.0 + version: 4.20250109.0 + '@react-router/dev': + specifier: ^7.0.0 + version: 7.1.2(@types/node@18.19.39)(react-router@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.7.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.103.2(@cloudflare/workers-types@4.20250109.0)) '@types/react': specifier: ^18.0.28 version: 18.3.3 @@ -430,16 +430,16 @@ importers: version: 18.3.0 typescript: specifier: ^5 - version: 5.5.3 + version: 5.7.3 vite: specifier: ^5.3.4 version: 5.3.4(@types/node@18.19.39) vite-tsconfig-paths: specifier: ^4.3.2 - version: 4.3.2(typescript@5.5.3)(vite@5.3.4(@types/node@18.19.39)) + version: 4.3.2(typescript@5.7.3)(vite@5.3.4(@types/node@18.19.39)) wrangler: specifier: ^3.91.0 - version: 3.96.0(@cloudflare/workers-types@4.20241018.0) + version: 3.103.2(@cloudflare/workers-types@4.20250109.0) packages: @@ -538,13 +538,6 @@ packages: resolution: {integrity: sha512-6AWcmZC/MZCO0yKys4uhg5NlxL0ESF3K6IAaoQ+xSXvPyPyxNWRafP+GDbI88Oh68O7QkJgmEtedWPM9U0pZNg==} engines: {node: '>=6.9.0'} - '@babel/eslint-parser@7.24.8': - resolution: {integrity: sha512-nYAikI4XTGokU2QX7Jx+v4rxZKhKivaQaREZjuW3mrJrbdWJ5yUfohnoUULge+zEEaKjPYNxhoRgUKktjXtbwA==} - engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} - peerDependencies: - '@babel/core': ^7.11.0 - eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 - '@babel/generator@7.24.8': resolution: {integrity: sha512-47DG+6F5SzOi0uEvK4wMShmn5yY0mVjVJoWTphdY2B4Rx9wHgjK7Yhtr0ru6nE+sn0v38mzrWOlah0p/YlHHOQ==} engines: {node: '>=6.9.0'} @@ -664,42 +657,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-display-name@7.24.7': - resolution: {integrity: sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx-development@7.24.7': - resolution: {integrity: sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx@7.24.7': - resolution: {integrity: sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-pure-annotations@7.24.7': - resolution: {integrity: sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typescript@7.24.8': resolution: {integrity: sha512-CgFgtN61BbdOGCP4fLaAMOPkzWUh6yQZNMr5YSt8uz2cZSSiQONCQFWqsE4NeVfOIhqDOlS9CR3WD91FzMeB2Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/preset-react@7.24.7': - resolution: {integrity: sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/preset-typescript@7.24.7': resolution: {integrity: sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==} engines: {node: '>=6.9.0'} @@ -791,45 +754,42 @@ packages: bundledDependencies: - is-unicode-supported - '@cloudflare/kv-asset-handler@0.1.3': - resolution: {integrity: sha512-FNcunDuTmEfQTLRLtA6zz+buIXUHj1soPvSWzzQFBC+n2lsy+CGf/NIrR3SEPCmsVNQj70/Jx2lViCpq+09YpQ==} - '@cloudflare/kv-asset-handler@0.3.4': resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==} engines: {node: '>=16.13'} - '@cloudflare/workerd-darwin-64@1.20241205.0': - resolution: {integrity: sha512-TArEZkSZkHJyEwnlWWkSpCI99cF6lJ14OVeEoI9Um/+cD9CKZLM9vCmsLeKglKheJ0KcdCnkA+DbeD15t3VaWg==} + '@cloudflare/workerd-darwin-64@1.20241230.0': + resolution: {integrity: sha512-BZHLg4bbhNQoaY1Uan81O3FV/zcmWueC55juhnaI7NAobiQth9RppadPNpxNAmS9fK2mR5z8xrwMQSQrHmztyQ==} engines: {node: '>=16'} cpu: [x64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20241205.0': - resolution: {integrity: sha512-u5eqKa9QRdA8MugfgCoD+ADDjY6EpKbv3hSYJETmmUh17l7WXjWBzv4pUvOKIX67C0UzMUy4jZYwC53MymhX3w==} + '@cloudflare/workerd-darwin-arm64@1.20241230.0': + resolution: {integrity: sha512-lllxycj7EzYoJ0VOJh8M3palUgoonVrILnzGrgsworgWlIpgjfXGS7b41tEGCw6AxSxL9prmTIGtfSPUvn/rjg==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] - '@cloudflare/workerd-linux-64@1.20241205.0': - resolution: {integrity: sha512-OYA7S5zpumMamWEW+IhhBU6YojIEocyE5X/YFPiTOCrDE3dsfr9t6oqNE7hxGm1VAAu+Irtl+a/5LwmBOU681w==} + '@cloudflare/workerd-linux-64@1.20241230.0': + resolution: {integrity: sha512-Y3mHcW0KghOmWdNZyHYpEOG4Ba/ga8tht5vj1a+WXfagEjMO8Y98XhZUlCaYa9yB7Wh5jVcK5LM2jlO/BLgqpA==} engines: {node: '>=16'} cpu: [x64] os: [linux] - '@cloudflare/workerd-linux-arm64@1.20241205.0': - resolution: {integrity: sha512-qAzecONjFJGIAVJZKExQ5dlbic0f3d4A+GdKa+H6SoUJtPaWiE3K6WuePo4JOT7W3/Zfh25McmX+MmpMUUcM5Q==} + '@cloudflare/workerd-linux-arm64@1.20241230.0': + resolution: {integrity: sha512-IAjhsWPlHzhhkJ6I49sDG6XfMnhPvv0szKGXxTWQK/IWMrbGdHm4RSfNKBSoLQm67jGMIzbmcrX9UIkms27Y1g==} engines: {node: '>=16'} cpu: [arm64] os: [linux] - '@cloudflare/workerd-windows-64@1.20241205.0': - resolution: {integrity: sha512-BEab+HiUgCdl6GXAT7EI2yaRtDPiRJlB94XLvRvXi1ZcmQqsrq6awGo6apctFo4WUL29V7c09LxmN4HQ3X2Tvg==} + '@cloudflare/workerd-windows-64@1.20241230.0': + resolution: {integrity: sha512-y5SPIk9iOb2gz+yWtHxoeMnjPnkYQswiCJ480oHC6zexnJLlKTpcmBCjDH1nWCT4pQi8F25gaH8thgElf4NvXQ==} engines: {node: '>=16'} cpu: [x64] os: [win32] - '@cloudflare/workers-types@4.20241018.0': - resolution: {integrity: sha512-gGWumpaaqnjN/G6SI7CZQ13G4SpIUV+EM8QqvuN2D3cGDF6mKIm+ov7H4x7V/c+AdY90v0FCc8B5nmEEt90MvQ==} + '@cloudflare/workers-types@4.20250109.0': + resolution: {integrity: sha512-Y1zgSaEOOevl9ORpzgMcm4j535p3nK2lrblHHvYM2yxR50SBKGh+wvkRFAIxWRfjUGZEU+Fp6923EGioDBbobA==} '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} @@ -859,9 +819,6 @@ packages: search-insights: optional: true - '@emotion/hash@0.9.1': - resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==} - '@esbuild-plugins/node-globals-polyfill@0.2.3': resolution: {integrity: sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==} peerDependencies: @@ -878,18 +835,18 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.24.2': + resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.17.19': resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} engines: {node: '>=12'} cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.17.6': - resolution: {integrity: sha512-YnYSCceN/dUzUr5kdtUzB+wZprCafuD89Hs0Aqv9QSdwhYQybhXTaSTcrl6X/aWThn1a/j0eEpUBGOE7269REg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.18.20': resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} engines: {node: '>=12'} @@ -902,14 +859,14 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm@0.17.19': - resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} - engines: {node: '>=12'} - cpu: [arm] + '@esbuild/android-arm64@0.24.2': + resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} + engines: {node: '>=18'} + cpu: [arm64] os: [android] - '@esbuild/android-arm@0.17.6': - resolution: {integrity: sha512-bSC9YVUjADDy1gae8RrioINU6e1lCkg3VGVwm0QQ2E1CWcC4gnMce9+B6RpxuSsrsXsk1yojn7sp1fnG8erE2g==} + '@esbuild/android-arm@0.17.19': + resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -926,14 +883,14 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-x64@0.17.19': - resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} - engines: {node: '>=12'} - cpu: [x64] + '@esbuild/android-arm@0.24.2': + resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} + engines: {node: '>=18'} + cpu: [arm] os: [android] - '@esbuild/android-x64@0.17.6': - resolution: {integrity: sha512-MVcYcgSO7pfu/x34uX9u2QIZHmXAB7dEiLQC5bBl5Ryqtpj9lT2sg3gNDEsrPEmimSJW2FXIaxqSQ501YLDsZQ==} + '@esbuild/android-x64@0.17.19': + resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -950,18 +907,18 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.24.2': + resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.17.19': resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.17.6': - resolution: {integrity: sha512-bsDRvlbKMQMt6Wl08nHtFz++yoZHsyTOxnjfB2Q95gato+Yi4WnRl13oC2/PJJA9yLCoRv9gqT/EYX0/zDsyMA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.18.20': resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} engines: {node: '>=12'} @@ -974,14 +931,14 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.17.19': - resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} - engines: {node: '>=12'} - cpu: [x64] + '@esbuild/darwin-arm64@0.24.2': + resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} + engines: {node: '>=18'} + cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.17.6': - resolution: {integrity: sha512-xh2A5oPrYRfMFz74QXIQTQo8uA+hYzGWJFoeTE8EvoZGHb+idyV4ATaukaUvnnxJiauhs/fPx3vYhU4wiGfosg==} + '@esbuild/darwin-x64@0.17.19': + resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -998,18 +955,18 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.24.2': + resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.17.19': resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.17.6': - resolution: {integrity: sha512-EnUwjRc1inT4ccZh4pB3v1cIhohE2S4YXlt1OvI7sw/+pD+dIE4smwekZlEPIwY6PhU6oDWwITrQQm5S2/iZgg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.18.20': resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} engines: {node: '>=12'} @@ -1022,14 +979,14 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.17.19': - resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} - engines: {node: '>=12'} - cpu: [x64] + '@esbuild/freebsd-arm64@0.24.2': + resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} + engines: {node: '>=18'} + cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.17.6': - resolution: {integrity: sha512-Uh3HLWGzH6FwpviUcLMKPCbZUAFzv67Wj5MTwK6jn89b576SR2IbEp+tqUHTr8DIl0iDmBAf51MVaP7pw6PY5Q==} + '@esbuild/freebsd-x64@0.17.19': + resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -1046,18 +1003,18 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.24.2': + resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.17.19': resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} engines: {node: '>=12'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.17.6': - resolution: {integrity: sha512-bUR58IFOMJX523aDVozswnlp5yry7+0cRLCXDsxnUeQYJik1DukMY+apBsLOZJblpH+K7ox7YrKrHmJoWqVR9w==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.18.20': resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} engines: {node: '>=12'} @@ -1070,14 +1027,14 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.17.19': - resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} - engines: {node: '>=12'} - cpu: [arm] + '@esbuild/linux-arm64@0.24.2': + resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} + engines: {node: '>=18'} + cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.17.6': - resolution: {integrity: sha512-7YdGiurNt7lqO0Bf/U9/arrPWPqdPqcV6JCZda4LZgEn+PTQ5SMEI4MGR52Bfn3+d6bNEGcWFzlIxiQdS48YUw==} + '@esbuild/linux-arm@0.17.19': + resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -1094,14 +1051,14 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.17.19': - resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} - engines: {node: '>=12'} - cpu: [ia32] + '@esbuild/linux-arm@0.24.2': + resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} + engines: {node: '>=18'} + cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.17.6': - resolution: {integrity: sha512-ujp8uoQCM9FRcbDfkqECoARsLnLfCUhKARTP56TFPog8ie9JG83D5GVKjQ6yVrEVdMie1djH86fm98eY3quQkQ==} + '@esbuild/linux-ia32@0.17.19': + resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -1118,14 +1075,14 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.17.19': - resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} - engines: {node: '>=12'} - cpu: [loong64] + '@esbuild/linux-ia32@0.24.2': + resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} + engines: {node: '>=18'} + cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.17.6': - resolution: {integrity: sha512-y2NX1+X/Nt+izj9bLoiaYB9YXT/LoaQFYvCkVD77G/4F+/yuVXYCWz4SE9yr5CBMbOxOfBcy/xFL4LlOeNlzYQ==} + '@esbuild/linux-loong64@0.17.19': + resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -1142,14 +1099,14 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.17.19': - resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} - engines: {node: '>=12'} - cpu: [mips64el] + '@esbuild/linux-loong64@0.24.2': + resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} + engines: {node: '>=18'} + cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.17.6': - resolution: {integrity: sha512-09AXKB1HDOzXD+j3FdXCiL/MWmZP0Ex9eR8DLMBVcHorrWJxWmY8Nms2Nm41iRM64WVx7bA/JVHMv081iP2kUA==} + '@esbuild/linux-mips64el@0.17.19': + resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -1166,14 +1123,14 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.17.19': - resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} - engines: {node: '>=12'} - cpu: [ppc64] + '@esbuild/linux-mips64el@0.24.2': + resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} + engines: {node: '>=18'} + cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.17.6': - resolution: {integrity: sha512-AmLhMzkM8JuqTIOhxnX4ubh0XWJIznEynRnZAVdA2mMKE6FAfwT2TWKTwdqMG+qEaeyDPtfNoZRpJbD4ZBv0Tg==} + '@esbuild/linux-ppc64@0.17.19': + resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -1190,14 +1147,14 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.17.19': - resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} - engines: {node: '>=12'} - cpu: [riscv64] + '@esbuild/linux-ppc64@0.24.2': + resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} + engines: {node: '>=18'} + cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.17.6': - resolution: {integrity: sha512-Y4Ri62PfavhLQhFbqucysHOmRamlTVK10zPWlqjNbj2XMea+BOs4w6ASKwQwAiqf9ZqcY9Ab7NOU4wIgpxwoSQ==} + '@esbuild/linux-riscv64@0.17.19': + resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -1214,14 +1171,14 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.17.19': - resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} - engines: {node: '>=12'} - cpu: [s390x] + '@esbuild/linux-riscv64@0.24.2': + resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} + engines: {node: '>=18'} + cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.17.6': - resolution: {integrity: sha512-SPUiz4fDbnNEm3JSdUW8pBJ/vkop3M1YwZAVwvdwlFLoJwKEZ9L98l3tzeyMzq27CyepDQ3Qgoba44StgbiN5Q==} + '@esbuild/linux-s390x@0.17.19': + resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -1238,14 +1195,14 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.17.19': - resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} - engines: {node: '>=12'} - cpu: [x64] + '@esbuild/linux-s390x@0.24.2': + resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} + engines: {node: '>=18'} + cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.17.6': - resolution: {integrity: sha512-a3yHLmOodHrzuNgdpB7peFGPx1iJ2x6m+uDvhP2CKdr2CwOaqEFMeSqYAHU7hG+RjCq8r2NFujcd/YsEsFgTGw==} + '@esbuild/linux-x64@0.17.19': + resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -1262,14 +1219,20 @@ packages: cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.17.19': - resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} - engines: {node: '>=12'} + '@esbuild/linux-x64@0.24.2': + resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} + engines: {node: '>=18'} cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.24.2': + resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} + engines: {node: '>=18'} + cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.17.6': - resolution: {integrity: sha512-EanJqcU/4uZIBreTrnbnre2DXgXSa+Gjap7ifRfllpmyAU7YMvaXmljdArptTHmjrkkKm9BK6GH5D5Yo+p6y5A==} + '@esbuild/netbsd-x64@0.17.19': + resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -1286,14 +1249,20 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/openbsd-x64@0.17.19': - resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} - engines: {node: '>=12'} + '@esbuild/netbsd-x64@0.24.2': + resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} + engines: {node: '>=18'} cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.24.2': + resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} + engines: {node: '>=18'} + cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.17.6': - resolution: {integrity: sha512-xaxeSunhQRsTNGFanoOkkLtnmMn5QbA0qBhNet/XLVsc+OVkpIWPHcr3zTW2gxVU5YOHFbIHR9ODuaUdNza2Vw==} + '@esbuild/openbsd-x64@0.17.19': + resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -1310,14 +1279,14 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.17.19': - resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} - engines: {node: '>=12'} + '@esbuild/openbsd-x64@0.24.2': + resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} + engines: {node: '>=18'} cpu: [x64] - os: [sunos] + os: [openbsd] - '@esbuild/sunos-x64@0.17.6': - resolution: {integrity: sha512-gnMnMPg5pfMkZvhHee21KbKdc6W3GR8/JuE0Da1kjwpK6oiFU3nqfHuVPgUX2rsOx9N2SadSQTIYV1CIjYG+xw==} + '@esbuild/sunos-x64@0.17.19': + resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -1334,18 +1303,18 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.24.2': + resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.17.19': resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} engines: {node: '>=12'} cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.17.6': - resolution: {integrity: sha512-G95n7vP1UnGJPsVdKXllAJPtqjMvFYbN20e8RK8LVLhlTiSOH1sd7+Gt7rm70xiG+I5tM58nYgwWrLs6I1jHqg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.18.20': resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} engines: {node: '>=12'} @@ -1358,14 +1327,14 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.17.19': - resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} - engines: {node: '>=12'} - cpu: [ia32] + '@esbuild/win32-arm64@0.24.2': + resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} + engines: {node: '>=18'} + cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.17.6': - resolution: {integrity: sha512-96yEFzLhq5bv9jJo5JhTs1gI+1cKQ83cUpyxHuGqXVwQtY5Eq54ZEsKs8veKtiKwlrNimtckHEkj4mRh4pPjsg==} + '@esbuild/win32-ia32@0.17.19': + resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -1382,14 +1351,14 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.17.19': - resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} - engines: {node: '>=12'} - cpu: [x64] + '@esbuild/win32-ia32@0.24.2': + resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} + engines: {node: '>=18'} + cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.17.6': - resolution: {integrity: sha512-n6d8MOyUrNp6G4VSpRcgjs5xj4A91svJSaiwLIDWVWEsZtpN5FA9NlBbZHDmAJc2e8e6SF4tkBD3HAvPF+7igA==} + '@esbuild/win32-x64@0.17.19': + resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -1406,6 +1375,12 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.24.2': + resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1530,9 +1505,6 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@jspm/core@2.0.1': - resolution: {integrity: sha512-Lg3PnLp0QXpxwLIAuuJboLeRaIhrgJjeuh797QADg3xz8wGLugQOS5DpsE8A6i6Adgzf+bacllkKZG3J0tGfDw==} - '@manypkg/find-root@1.1.0': resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} @@ -1551,9 +1523,6 @@ packages: react: optional: true - '@mdx-js/mdx@2.3.0': - resolution: {integrity: sha512-jLuwRlz8DQfQNiUCJR50Y09CGPq3fLtmtUQfVrj79E0JWu3dvsVcxVIcfhR5h0iXu+/z++zDrYeiJqifRynJkA==} - '@miniflare/core@2.14.2': resolution: {integrity: sha512-n/smm5ZTg7ilGM4fxO7Gxhbe573oc8Za06M3b2fO+lPWqF6NJcEKdCC+sJntVFbn3Cbbd2G1ChISmugPfmlCkQ==} engines: {node: '>=16.13'} @@ -1574,8 +1543,11 @@ packages: resolution: {integrity: sha512-/TL0np4uYDl+6MdseDApZmDdlJ6Y7AY5iDY0TvUQJG9nyBoCjX6w0Zn4SiKDwO6660rPtSqZ5c7HzbPhGb5vsA==} engines: {node: '>=16.13'} - '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': - resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} + '@mjackson/node-fetch-server@0.2.0': + resolution: {integrity: sha512-EMlH1e30yzmTpGLQjlFmaDAjyOeZhng1/XCd7DExR8PNAnG/G1tyruZxEoUe11ClnwGhGrtsdnyyUx1frSzjng==} + + '@mjackson/node-fetch-server@0.6.1': + resolution: {integrity: sha512-9ZJnk/DJjt805uv5PPv11haJIW+HHf3YEEyVXv+8iLQxLD/iXA68FH220XoiTPBC4gCg5q+IMadDw8qPqlA5wg==} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -1589,10 +1561,6 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@npmcli/fs@3.1.1': - resolution: {integrity: sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - '@npmcli/git@4.1.0': resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -1630,194 +1598,240 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - '@react-stately/utils@3.10.2': - resolution: {integrity: sha512-fh6OTQtbeQC0ywp6LJuuKs6tKIgFvt/DlIZEcIpGho6/oZG229UnIk6TUekwxnDbumuYyan6D9EgUtEMmT8UIg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - - '@react-types/shared@3.24.1': - resolution: {integrity: sha512-AUQeGYEm/zDTN6zLzdXolDxz3Jk5dDL7f506F07U8tBwxNNI3WRdhU84G0/AaFikOZzDXhOZDr3MhQMzyE7Ydw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - - '@remix-run/cloudflare@2.14.0': - resolution: {integrity: sha512-X+G5FgCV9vwAtZLivPswimxIpurulZUV4VkIf6Fz3YJorvFd2vJZpzzSZvCNBpJz4sV/NmPGSZ6ZbzJWY1uLTQ==} - engines: {node: '>=18.0.0'} + '@react-router/cloudflare@7.1.2': + resolution: {integrity: sha512-EIhp4YNuiaV480VhujJEmsb41ovkCn5dxfCQOPBDLBZGtReAlYEvIbbsMw3jspxKW4O4ekbH2RZCmTxt8r46tA==} + engines: {node: '>=20.0.0'} peerDependencies: '@cloudflare/workers-types': ^4.0.0 + react-router: ^7.1.2 + tsup: ^8.3.0 typescript: ^5.1.0 peerDependenciesMeta: typescript: optional: true - '@remix-run/dev@2.14.0': - resolution: {integrity: sha512-WMun4fy0ANh92WecufUNb3IV/R02uyfBslM7g7nCO1/lzDII+XmfEkZY5CWPaLmnkoAc1DR2G60+eTHRo480Ug==} - engines: {node: '>=18.0.0'} + '@react-router/dev@7.1.2': + resolution: {integrity: sha512-iQ9t0SPEn8CopPOavVlThVG4GySqcQpsFyiyYJWtxzNCUY5wvhtEgSNIzIAD3o9Dv5X3IDfUQY6TvIzVrvFohw==} + engines: {node: '>=20.0.0'} hasBin: true peerDependencies: - '@remix-run/react': ^2.14.0 - '@remix-run/serve': ^2.14.0 + '@react-router/serve': ^7.1.2 + react-router: ^7.1.2 typescript: ^5.1.0 - vite: ^5.1.0 + vite: ^5.1.0 || ^6.0.0 wrangler: ^3.28.2 peerDependenciesMeta: - '@remix-run/serve': + '@react-router/serve': optional: true typescript: optional: true - vite: - optional: true wrangler: optional: true - '@remix-run/eslint-config@2.14.0': - resolution: {integrity: sha512-/wBt/AVgBMNw8HWifSha/7dwaGudmyWo7FB7M+LKloZPZc+XR60cMqKSXJeWwJTo+pic++4V1GhQnKc+Cx3GyA==} - engines: {node: '>=18.0.0'} - deprecated: Will no longer be maintained in React Router v7 - peerDependencies: - eslint: ^8.0.0 - react: ^18.0.0 - typescript: ^5.1.0 - peerDependenciesMeta: - typescript: - optional: true - - '@remix-run/node@2.14.0': - resolution: {integrity: sha512-ou16LMJYv0ElIToZ6dDqaLjv1T3iBEwuJTBahveEA8NkkACIWODJ2fgUYf1UKLMKHVdHjNImLzS37HdSZY0Q6g==} - engines: {node: '>=18.0.0'} + '@react-router/fs-routes@7.1.2': + resolution: {integrity: sha512-r/XGzr9MnYfWBTHxRJlVcIlQriu8U8lyeLvoPlJlX+nDJZC7v816E6ePCnwdi9nU/IXbx6CHXnyYJl6lvWTcWQ==} + engines: {node: '>=20.0.0'} peerDependencies: + '@react-router/dev': ^7.1.2 typescript: ^5.1.0 peerDependenciesMeta: typescript: optional: true - '@remix-run/react@2.14.0': - resolution: {integrity: sha512-uQcy5gxazHtpislgonx2dwRuR/CbvYUeguQxDgawd+dAyoglK2rFx58+F6Kj0Vjw6v/iuvxibA/lEAiAaB4ZmQ==} - engines: {node: '>=18.0.0'} + '@react-router/node@7.1.2': + resolution: {integrity: sha512-PYLP0Vg0iE4w8iIHsusjMZx6h2PH2D4xSWQ550bgeW6Gj0JE6haB2HcaThvUyhBnnxZqNOPH335dvn+r76N5gQ==} + engines: {node: '>=20.0.0'} peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 + react-router: 7.1.2 typescript: ^5.1.0 peerDependenciesMeta: typescript: optional: true - '@remix-run/router@1.21.0': - resolution: {integrity: sha512-xfSkCAchbdG5PnbrKqFWwia4Bi61nH+wm8wLEqfHDyp7Y3dZzgqS2itV8i4gAq9pC2HsTpwyBC6Ds8VHZ96JlA==} - engines: {node: '>=14.0.0'} - - '@remix-run/server-runtime@2.14.0': - resolution: {integrity: sha512-9Th9UzDaoFFBD7zA5mRI1KT8JktFLN4ij9jPygrKBhG/kYmNIvhcMtq9VyjcbMvFK5natTyhOhrrKRIHtijD4w==} - engines: {node: '>=18.0.0'} + '@react-stately/utils@3.10.2': + resolution: {integrity: sha512-fh6OTQtbeQC0ywp6LJuuKs6tKIgFvt/DlIZEcIpGho6/oZG229UnIk6TUekwxnDbumuYyan6D9EgUtEMmT8UIg==} peerDependencies: - typescript: ^5.1.0 - peerDependenciesMeta: - typescript: - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - '@remix-run/v1-route-convention@0.1.4': - resolution: {integrity: sha512-fVTr9YlNLWfaiM/6Y56sOtcY8x1bBJQHY0sDWO5+Z/vjJ2Ni7fe2fwrzs1jUFciMPXqBQdFGePnkuiYLz3cuUA==} + '@react-types/shared@3.24.1': + resolution: {integrity: sha512-AUQeGYEm/zDTN6zLzdXolDxz3Jk5dDL7f506F07U8tBwxNNI3WRdhU84G0/AaFikOZzDXhOZDr3MhQMzyE7Ydw==} peerDependencies: - '@remix-run/dev': ^1.15.0 || ^2.0.0 - - '@remix-run/web-blob@3.1.0': - resolution: {integrity: sha512-owGzFLbqPH9PlKb8KvpNJ0NO74HWE2euAn61eEiyCXX/oteoVzTVSN8mpLgDjaxBf2btj5/nUllSUgpyd6IH6g==} - - '@remix-run/web-fetch@4.4.2': - resolution: {integrity: sha512-jgKfzA713/4kAW/oZ4bC3MoLWyjModOVDjFPNseVqcJKSafgIscrYL9G50SurEYLswPuoU3HzSbO0jQCMYWHhA==} - engines: {node: ^10.17 || >=12.3} - - '@remix-run/web-file@3.1.0': - resolution: {integrity: sha512-dW2MNGwoiEYhlspOAXFBasmLeYshyAyhIdrlXBi06Duex5tDr3ut2LFKVj7tyHLmn8nnNwFf1BjNbkQpygC2aQ==} - - '@remix-run/web-form-data@3.1.0': - resolution: {integrity: sha512-NdeohLMdrb+pHxMQ/Geuzdp0eqPbea+Ieo8M8Jx2lGC6TBHsgHzYcBvr0LyPdPVycNRDEpWpiDdCOdCryo3f9A==} - - '@remix-run/web-stream@1.1.0': - resolution: {integrity: sha512-KRJtwrjRV5Bb+pM7zxcTJkhIqWWSy+MYsIxHK+0m5atcznsf15YwUBWHWulZerV2+vvHH1Lp1DD7pw6qKW8SgA==} + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 '@rollup/rollup-android-arm-eabi@4.18.1': resolution: {integrity: sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==} cpu: [arm] os: [android] + '@rollup/rollup-android-arm-eabi@4.30.1': + resolution: {integrity: sha512-pSWY+EVt3rJ9fQ3IqlrEUtXh3cGqGtPDH1FQlNZehO2yYxCHEX1SPsz1M//NXwYfbTlcKr9WObLnJX9FsS9K1Q==} + cpu: [arm] + os: [android] + '@rollup/rollup-android-arm64@4.18.1': resolution: {integrity: sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg==} cpu: [arm64] os: [android] + '@rollup/rollup-android-arm64@4.30.1': + resolution: {integrity: sha512-/NA2qXxE3D/BRjOJM8wQblmArQq1YoBVJjrjoTSBS09jgUisq7bqxNHJ8kjCHeV21W/9WDGwJEWSN0KQ2mtD/w==} + cpu: [arm64] + os: [android] + '@rollup/rollup-darwin-arm64@4.18.1': resolution: {integrity: sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.18.1': - resolution: {integrity: sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==} + '@rollup/rollup-darwin-arm64@4.30.1': + resolution: {integrity: sha512-r7FQIXD7gB0WJ5mokTUgUWPl0eYIH0wnxqeSAhuIwvnnpjdVB8cRRClyKLQr7lgzjctkbp5KmswWszlwYln03Q==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.18.1': + resolution: {integrity: sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.30.1': + resolution: {integrity: sha512-x78BavIwSH6sqfP2xeI1hd1GpHL8J4W2BXcVM/5KYKoAD3nNsfitQhvWSw+TFtQTLZ9OmlF+FEInEHyubut2OA==} cpu: [x64] os: [darwin] + '@rollup/rollup-freebsd-arm64@4.30.1': + resolution: {integrity: sha512-HYTlUAjbO1z8ywxsDFWADfTRfTIIy/oUlfIDmlHYmjUP2QRDTzBuWXc9O4CXM+bo9qfiCclmHk1x4ogBjOUpUQ==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.30.1': + resolution: {integrity: sha512-1MEdGqogQLccphhX5myCJqeGNYTNcmTyaic9S7CG3JhwuIByJ7J05vGbZxsizQthP1xpVx7kd3o31eOogfEirw==} + cpu: [x64] + os: [freebsd] + '@rollup/rollup-linux-arm-gnueabihf@4.18.1': resolution: {integrity: sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g==} cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-gnueabihf@4.30.1': + resolution: {integrity: sha512-PaMRNBSqCx7K3Wc9QZkFx5+CX27WFpAMxJNiYGAXfmMIKC7jstlr32UhTgK6T07OtqR+wYlWm9IxzennjnvdJg==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.18.1': resolution: {integrity: sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ==} cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.30.1': + resolution: {integrity: sha512-B8Rcyj9AV7ZlEFqvB5BubG5iO6ANDsRKlhIxySXcF1axXYUyqwBok+XZPgIYGBgs7LDXfWfifxhw0Ik57T0Yug==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.18.1': resolution: {integrity: sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.30.1': + resolution: {integrity: sha512-hqVyueGxAj3cBKrAI4aFHLV+h0Lv5VgWZs9CUGqr1z0fZtlADVV1YPOij6AhcK5An33EXaxnDLmJdQikcn5NEw==} + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-arm64-musl@4.18.1': resolution: {integrity: sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-musl@4.30.1': + resolution: {integrity: sha512-i4Ab2vnvS1AE1PyOIGp2kXni69gU2DAUVt6FSXeIqUCPIR3ZlheMW3oP2JkukDfu3PsexYRbOiJrY+yVNSk9oA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loongarch64-gnu@4.30.1': + resolution: {integrity: sha512-fARcF5g296snX0oLGkVxPmysetwUk2zmHcca+e9ObOovBR++9ZPOhqFUM61UUZ2EYpXVPN1redgqVoBB34nTpQ==} + cpu: [loong64] + os: [linux] + '@rollup/rollup-linux-powerpc64le-gnu@4.18.1': resolution: {integrity: sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ==} cpu: [ppc64] os: [linux] + '@rollup/rollup-linux-powerpc64le-gnu@4.30.1': + resolution: {integrity: sha512-GLrZraoO3wVT4uFXh67ElpwQY0DIygxdv0BNW9Hkm3X34wu+BkqrDrkcsIapAY+N2ATEbvak0XQ9gxZtCIA5Rw==} + cpu: [ppc64] + os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.18.1': resolution: {integrity: sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg==} cpu: [riscv64] os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.30.1': + resolution: {integrity: sha512-0WKLaAUUHKBtll0wvOmh6yh3S0wSU9+yas923JIChfxOaaBarmb/lBKPF0w/+jTVozFnOXJeRGZ8NvOxvk/jcw==} + cpu: [riscv64] + os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.18.1': resolution: {integrity: sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg==} cpu: [s390x] os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.30.1': + resolution: {integrity: sha512-GWFs97Ruxo5Bt+cvVTQkOJ6TIx0xJDD/bMAOXWJg8TCSTEK8RnFeOeiFTxKniTc4vMIaWvCplMAFBt9miGxgkA==} + cpu: [s390x] + os: [linux] + '@rollup/rollup-linux-x64-gnu@4.18.1': resolution: {integrity: sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==} cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-gnu@4.30.1': + resolution: {integrity: sha512-UtgGb7QGgXDIO+tqqJ5oZRGHsDLO8SlpE4MhqpY9Llpzi5rJMvrK6ZGhsRCST2abZdBqIBeXW6WPD5fGK5SDwg==} + cpu: [x64] + os: [linux] + '@rollup/rollup-linux-x64-musl@4.18.1': resolution: {integrity: sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==} cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-musl@4.30.1': + resolution: {integrity: sha512-V9U8Ey2UqmQsBT+xTOeMzPzwDzyXmnAoO4edZhL7INkwQcaW1Ckv3WJX3qrrp/VHaDkEWIBWhRwP47r8cdrOow==} + cpu: [x64] + os: [linux] + '@rollup/rollup-win32-arm64-msvc@4.18.1': resolution: {integrity: sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g==} cpu: [arm64] os: [win32] + '@rollup/rollup-win32-arm64-msvc@4.30.1': + resolution: {integrity: sha512-WabtHWiPaFF47W3PkHnjbmWawnX/aE57K47ZDT1BXTS5GgrBUEpvOzq0FI0V/UYzQJgdb8XlhVNH8/fwV8xDjw==} + cpu: [arm64] + os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.18.1': resolution: {integrity: sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg==} cpu: [ia32] os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.30.1': + resolution: {integrity: sha512-pxHAU+Zv39hLUTdQQHUVHf4P+0C47y/ZloorHpzs2SXMRqeAWmGghzAhfOlzFHHwjvgokdFAhC4V+6kC1lRRfw==} + cpu: [ia32] + os: [win32] + '@rollup/rollup-win32-x64-msvc@4.18.1': resolution: {integrity: sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==} cpu: [x64] os: [win32] - '@rushstack/eslint-patch@1.10.3': - resolution: {integrity: sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==} + '@rollup/rollup-win32-x64-msvc@4.30.1': + resolution: {integrity: sha512-D6qjsXGcvhTjv0kI4fU8tUuBDF/Ueee4SVX79VfNDXZa64TfCW1Slkb6Z7O1p7vflqZjcmOVdZlqf8gvJxc6og==} + cpu: [x64] + os: [win32] '@sindresorhus/slugify@2.2.1': resolution: {integrity: sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==} @@ -1849,16 +1863,6 @@ packages: '@tanstack/virtual-core@3.8.3': resolution: {integrity: sha512-vd2A2TnM5lbnWZnHi9B+L2gPtkSeOtJOAw358JqokIH1+v2J7vUAzFVPwB/wrye12RFOurffXu33plm4uQ+JBQ==} - '@testing-library/dom@8.20.1': - resolution: {integrity: sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==} - engines: {node: '>=12'} - - '@types/acorn@4.0.6': - resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} - - '@types/aria-query@5.0.4': - resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} - '@types/bcryptjs@2.4.6': resolution: {integrity: sha512-9xlo6R2qDs5uixm0bcIqCeMCE6HiQsIyel9KQySStiyqNl2tnj2mP3DX1Nf56MD6KMenNNlBBsy3LJ7gUEQPXQ==} @@ -1874,30 +1878,18 @@ packages: '@types/cookie@0.6.0': resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} - '@types/debug@4.1.12': - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - - '@types/estree-jsx@1.0.5': - resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} - '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/gunzip-maybe@1.4.2': resolution: {integrity: sha512-2uqXZg1jTCKE1Pjbab8qb74+f2+i9h/jz8rQ+jRR+zaNJF75zWwrpbX8/TjF4m56m3KFOg9umHdCJ074KwiVxg==} - '@types/hast@2.3.10': - resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==} - '@types/js-yaml@4.0.9': resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - '@types/json5@0.0.29': - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/linkify-it@5.0.0': resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} @@ -1907,21 +1899,9 @@ packages: '@types/marked@4.3.2': resolution: {integrity: sha512-a79Yc3TOk6dGdituy8hmTTJXjOkZ7zsFYV10L337ttq/rec8lRMDBpV7fL3uLx6TgbFCa5DU/h8FmIBQPSbU0w==} - '@types/mdast@3.0.15': - resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} - '@types/mdurl@2.0.0': resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} - '@types/mdx@2.0.13': - resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} - - '@types/ms@0.7.34': - resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - - '@types/node-forge@1.3.11': - resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} - '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} @@ -1952,88 +1932,15 @@ packages: '@types/tar-stream@3.1.3': resolution: {integrity: sha512-Zbnx4wpkWBMBSu5CytMbrT5ZpMiF55qgM+EpHzR4yIDu7mv52cej8hTkOc6K+LzpkOAbxwn/m7j3iO+/l42YkQ==} - '@types/unist@2.0.10': - resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} - '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} '@types/yargs@17.0.32': resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} - '@typescript-eslint/eslint-plugin@5.62.0': - resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@5.62.0': - resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/scope-manager@5.62.0': - resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@typescript-eslint/type-utils@5.62.0': - resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '*' - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/types@5.62.0': - resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@typescript-eslint/typescript-estree@5.62.0': - resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/utils@5.62.0': - resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - - '@typescript-eslint/visitor-keys@5.62.0': - resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@vanilla-extract/babel-plugin-debug-ids@1.0.6': - resolution: {integrity: sha512-C188vUEYmw41yxg3QooTs8r1IdbDQQ2mH7L5RkORBnHx74QlmsNfqVmKwAVTgrlYt8JoRaWMtPfGm/Ql0BNQrA==} - - '@vanilla-extract/css@1.15.3': - resolution: {integrity: sha512-mxoskDAxdQAspbkmQRxBvolUi1u1jnyy9WZGm+GeH8V2wwhEvndzl1QoK7w8JfA0WFevTxbev5d+i+xACZlPhA==} - - '@vanilla-extract/integration@6.5.0': - resolution: {integrity: sha512-E2YcfO8vA+vs+ua+gpvy1HRqvgWbI+MTlUpxA8FvatOvybuNcWAY0CKwQ/Gpj7rswYKtC6C7+xw33emM6/ImdQ==} - - '@vanilla-extract/private@1.0.5': - resolution: {integrity: sha512-6YXeOEKYTA3UV+RC8DeAjFk+/okoNz/h88R+McnzA2zpaVqTR/Ep+vszkWYlGBcMNO7vEkqbq5nT/JMMvhi+tw==} - '@vitest/expect@0.28.5': resolution: {integrity: sha512-gqTZwoUTwepwGIatnw4UKpQfnoyV0Z9Czn9+Lo2/jLIt4/AXLTn+oVZxlQ7Ng8bzcNkR+3DqLJ08kNr8jRmdNQ==} @@ -2049,17 +1956,6 @@ packages: '@web3-storage/multipart-parser@1.0.0': resolution: {integrity: sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==} - '@zxing/text-encoding@0.9.0': - resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==} - - abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -2079,9 +1975,10 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + engines: {node: '>=0.4.0'} + hasBin: true ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -2137,16 +2034,10 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-query@5.1.3: - resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} - array-buffer-byte-length@1.0.1: resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} engines: {node: '>= 0.4'} - array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - array-includes@3.1.8: resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} engines: {node: '>= 0.4'} @@ -2155,14 +2046,6 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - array.prototype.findlast@1.2.5: - resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} - engines: {node: '>= 0.4'} - - array.prototype.findlastindex@1.2.5: - resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} - engines: {node: '>= 0.4'} - array.prototype.flat@1.3.2: resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} @@ -2171,13 +2054,6 @@ packages: resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} engines: {node: '>= 0.4'} - array.prototype.toreversed@1.1.2: - resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} - - array.prototype.tosorted@1.1.4: - resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} - engines: {node: '>= 0.4'} - arraybuffer.prototype.slice@1.0.3: resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} engines: {node: '>= 0.4'} @@ -2188,17 +2064,10 @@ packages: assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} - ast-types-flow@0.0.8: - resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} - astring@1.8.6: - resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} - hasBin: true - autoprefixer@10.4.19: resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} engines: {node: ^10 || ^12 || >=14} @@ -2210,15 +2079,8 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - axe-core@4.9.1: - resolution: {integrity: sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==} - engines: {node: '>=4'} - - axobject-query@3.1.1: - resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==} - - bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + babel-dead-code-elimination@1.0.8: + resolution: {integrity: sha512-og6HQERk0Cmm+nTT4Od2wbPtgABXFMPaHACjbKLulZIFMkYyXZLkUGuAxdgpMJBrxyt/XFpSz++lNzjbcMnPkQ==} balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -2249,10 +2111,6 @@ packages: blake3-wasm@2.1.5: resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} - body-parser@1.20.3: - resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -2280,28 +2138,20 @@ packages: builtins@5.1.0: resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} - bundle-require@4.2.1: - resolution: {integrity: sha512-7Q/6vkyYAwOmQNRw75x+4yRtZCZJXUDmHHlFdkiV0wgv/reNjtJwpu1jPJ0w2kbEpIM0uoKI3S4/f39dU7AjSA==} + bundle-require@5.1.0: + resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} peerDependencies: - esbuild: '>=0.17' + esbuild: '>=0.18' busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} - bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} - cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} - cacache@17.1.4: - resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} @@ -2320,9 +2170,6 @@ packages: capnp-ts@0.7.0: resolution: {integrity: sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==} - ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - chai@4.4.1: resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} engines: {node: '>=4'} @@ -2335,18 +2182,6 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - character-entities-html4@2.1.0: - resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} - - character-entities-legacy@3.0.0: - resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - - character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - - character-reference-invalid@2.0.1: - resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} - chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} @@ -2364,26 +2199,10 @@ packages: chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} - ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} - clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} - - cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - - cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} - cli-table3@0.6.5: resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} engines: {node: 10.* || >= 12.*} @@ -2399,10 +2218,6 @@ packages: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} - clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - clsx@1.2.1: resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} engines: {node: '>=6'} @@ -2424,9 +2239,6 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - comma-separated-tokens@2.0.3: - resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} @@ -2442,35 +2254,23 @@ packages: confbox@0.1.7: resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} - content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} - content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} + consola@3.4.0: + resolution: {integrity: sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==} + engines: {node: ^14.18.0 || >=16.10.0} convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - - cookie-signature@1.2.1: - resolution: {integrity: sha512-78KWk9T26NhzXtuL26cIJ8/qNHANyJ/ZYrmEXFzUmhZdjpBv+DlWlOANRTGBt48YcyslsLrj0bMLFTmXvLRCOw==} - engines: {node: '>=6.6.0'} - cookie@0.5.0: resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} engines: {node: '>= 0.6'} - cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} - engines: {node: '>= 0.6'} - - cookie@0.7.1: - resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} - engines: {node: '>= 0.6'} + cookie@1.0.2: + resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} + engines: {node: '>=18'} core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -2482,10 +2282,6 @@ packages: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} - css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} - cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} @@ -2494,16 +2290,9 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - damerau-levenshtein@1.0.8: - resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} - data-uri-to-buffer@2.0.2: resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} - data-uri-to-buffer@3.0.1: - resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==} - engines: {node: '>= 6'} - data-view-buffer@1.0.1: resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} engines: {node: '>= 0.4'} @@ -2520,27 +2309,17 @@ packages: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} - date-fns@4.1.0: - resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} - - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + debug@4.3.5: + resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + engines: {node: '>=6.0'} peerDependencies: supports-color: '*' peerDependenciesMeta: supports-color: optional: true - debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -2548,9 +2327,6 @@ packages: supports-color: optional: true - decode-named-character-reference@1.0.2: - resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} - decompress-response@6.0.0: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} @@ -2567,10 +2343,6 @@ packages: resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} engines: {node: '>=6'} - deep-equal@2.2.3: - resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} - engines: {node: '>= 0.4'} - deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} @@ -2578,16 +2350,6 @@ packages: deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - deep-object-diff@1.1.9: - resolution: {integrity: sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==} - - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - - defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -2599,18 +2361,6 @@ packages: defu@6.1.4: resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - - destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - detect-indent@6.1.0: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} @@ -2641,9 +2391,6 @@ packages: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} - dom-accessibility-api@0.5.16: - resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} - dotenv@10.0.0: resolution: {integrity: sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==} engines: {node: '>=10'} @@ -2652,19 +2399,12 @@ packages: resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} engines: {node: '>=12'} - dotenv@16.4.5: - resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} - engines: {node: '>=12'} - duplexify@3.7.1: resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.4.827: resolution: {integrity: sha512-VY+J0e4SFcNfQy19MEoMdaIcZLmDCprqvBtkii1WTCTQHpRvf5N8+3kTYCgL/PcntvwQvmMJWTuDPsq+IlhWKQ==} @@ -2674,21 +2414,9 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - - encodeurl@2.0.0: - resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} - engines: {node: '>= 0.8'} - end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - enhanced-resolve@5.17.0: - resolution: {integrity: sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==} - engines: {node: '>=10.13.0'} - enquirer@2.4.1: resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} engines: {node: '>=8.6'} @@ -2708,13 +2436,6 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-get-iterator@1.1.3: - resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} - - es-iterator-helpers@1.0.19: - resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} - engines: {node: '>= 0.4'} - es-module-lexer@1.5.4: resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} @@ -2733,14 +2454,8 @@ packages: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} - esbuild-plugins-node-modules-polyfill@1.6.4: - resolution: {integrity: sha512-x3MCOvZrKDGAfqAYS/pZUUSwiN+XH7x84A+Prup0CZBJKuGfuGkTAC4g01D6JPs/GCM9wzZVfd8bmiy+cP/iXA==} - engines: {node: '>=14.0.0'} - peerDependencies: - esbuild: ^0.14.0 || ^0.15.0 || ^0.16.0 || ^0.17.0 || ^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 - - esbuild-register@3.5.0: - resolution: {integrity: sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==} + esbuild-register@3.6.0: + resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} peerDependencies: esbuild: '>=0.12 <1' @@ -2749,11 +2464,6 @@ packages: engines: {node: '>=12'} hasBin: true - esbuild@0.17.6: - resolution: {integrity: sha512-TKFRp9TxrJDdRWfSsSERKEovm6v30iHnrjlcGhLBOtReE28Yp1VSBRfO3GTaOFMoxsNerx4TjrhzSuma9ha83Q==} - engines: {node: '>=12'} - hasBin: true - esbuild@0.18.20: resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} engines: {node: '>=12'} @@ -2764,13 +2474,15 @@ packages: engines: {node: '>=12'} hasBin: true + esbuild@0.24.2: + resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} + engines: {node: '>=18'} + hasBin: true + escalade@3.1.2: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} @@ -2789,97 +2501,11 @@ packages: peerDependencies: eslint: '>=7.0.0' - eslint-config-turbo@2.3.0: - resolution: {integrity: sha512-Nm9WZgNoUIJw4bpYQugGCDjzYy1TlUD4sQ/nGblL+HdNqJWCj5NqXbJ1k+TBfYedhr65dlGoAFPYUOfjUOmKVg==} + eslint-config-turbo@2.4.0: + resolution: {integrity: sha512-AiRdy83iwyG4+iMSxXQGUbEClxkGxSlXYH8E2a+0972ao75OWnlDBiiuLMOzDpJubR+QVGC4zonn29AIFCSbFw==} peerDependencies: eslint: '>6.6.0' - - eslint-import-resolver-node@0.3.7: - resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} - - eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - - eslint-import-resolver-typescript@3.6.1: - resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' - - eslint-module-utils@2.8.1: - resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - - eslint-plugin-es@3.0.1: - resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} - engines: {node: '>=8.10.0'} - peerDependencies: - eslint: '>=4.19.1' - - eslint-plugin-import@2.29.1: - resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - - eslint-plugin-jest-dom@4.0.3: - resolution: {integrity: sha512-9j+n8uj0+V0tmsoS7bYC7fLhQmIvjRqRYEcbDSi+TKPsTThLLXCyj5swMSSf/hTleeMktACnn+HFqXBr5gbcbA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6', yarn: '>=1'} - peerDependencies: - eslint: ^6.8.0 || ^7.0.0 || ^8.0.0 - - eslint-plugin-jest@26.9.0: - resolution: {integrity: sha512-TWJxWGp1J628gxh2KhaH1H1paEdgE2J61BBF1I59c6xWeL5+D1BzMxGDN/nXAfX+aSkR5u80K+XhskK6Gwq9ng==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/eslint-plugin': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - jest: '*' - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true - jest: - optional: true - - eslint-plugin-jsx-a11y@6.9.0: - resolution: {integrity: sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==} - engines: {node: '>=4.0'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - - eslint-plugin-node@11.1.0: - resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} - engines: {node: '>=8.10.0'} - peerDependencies: - eslint: '>=5.16.0' - - eslint-plugin-react-hooks@4.6.2: - resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + turbo: '>2.0.0' eslint-plugin-react@7.31.8: resolution: {integrity: sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw==} @@ -2887,22 +2513,11 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - eslint-plugin-react@7.34.4: - resolution: {integrity: sha512-Np+jo9bUwJNxCsT12pXtrGhJgT3T44T1sHhn1Ssr42XFn8TES0267wPGo5nNrMHi8qkyimDAX2BUmkf9pSaVzA==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - - eslint-plugin-testing-library@5.11.1: - resolution: {integrity: sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'} - peerDependencies: - eslint: ^7.5.0 || ^8.0.0 - - eslint-plugin-turbo@2.3.0: - resolution: {integrity: sha512-2iVUoIhrjp6kI8p0J4NewKPpXaKrHvL4K4eRnNXbqZvP/7xsm4Of+33B3b7m7OsS0UgX8HHOjlB9bEjigKMkMA==} + eslint-plugin-turbo@2.4.0: + resolution: {integrity: sha512-qCgoRi/OTc1VMxab7+sdKiV1xlkY4qjK9sM+kS7+WogrB1DxLguJSQXvk4HA13SD5VmJsq+8FYOw5q4EUk6Ixg==} peerDependencies: eslint: '>6.6.0' + turbo: '>2.0.0' eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} @@ -2981,53 +2596,12 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} - estree-util-attach-comments@2.1.1: - resolution: {integrity: sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w==} - - estree-util-build-jsx@2.2.2: - resolution: {integrity: sha512-m56vOXcOBuaF+Igpb9OPAy7f9w9OIkb5yhjsZuaPm7HoGi4oTOQi0h2+yZ+AtKklYFZ+rPC4n0wYCJCEU1ONqg==} + estree-walker@0.6.1: + resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} - estree-util-is-identifier-name@1.1.0: - resolution: {integrity: sha512-OVJZ3fGGt9By77Ix9NhaRbzfbDV/2rx9EP7YIDJTmsZSEc5kYn2vWcNccYyahJL2uAQZK2a5Or2i0wtIKTPoRQ==} - - estree-util-is-identifier-name@2.1.0: - resolution: {integrity: sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==} - - estree-util-to-js@1.2.0: - resolution: {integrity: sha512-IzU74r1PK5IMMGZXUVZbmiu4A1uhiPgW5hm1GjcOfr4ZzHaMPpLNJjR7HjXiIOzi25nZDrgFTobHTkV5Q6ITjA==} - - estree-util-value-to-estree@1.3.0: - resolution: {integrity: sha512-Y+ughcF9jSUJvncXwqRageavjrNPAI+1M/L3BI3PyLp1nmgYTGUXU6t5z1Y7OWuThoDdhPME07bQU+d5LxdJqw==} - engines: {node: '>=12.0.0'} - - estree-util-visit@1.2.1: - resolution: {integrity: sha512-xbgqcrkIVbIG+lI/gzbvd9SGTJL4zqJKBFttUl5pP27KhAjtMKbX/mQXJ7qgyXpMgVy/zvpm0xoQQaGL8OloOw==} - - estree-walker@0.6.1: - resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} - - estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - - eval@0.1.8: - resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==} - engines: {node: '>= 0.8'} - - event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} - - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} execa@6.1.0: resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} @@ -3041,13 +2615,6 @@ packages: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} - express@4.21.1: - resolution: {integrity: sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==} - engines: {node: '>= 0.10.0'} - - extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - extendable-error@0.1.7: resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} @@ -3074,8 +2641,13 @@ packages: fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - fault@2.0.1: - resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} + fdir@6.4.3: + resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} @@ -3088,10 +2660,6 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - finalhandler@1.3.1: - resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} - engines: {node: '>= 0.8'} - find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -3120,21 +2688,9 @@ packages: resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} engines: {node: '>=14'} - format@0.2.2: - resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} - engines: {node: '>=0.4.x'} - - forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} - fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} - fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} @@ -3150,14 +2706,6 @@ packages: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} engines: {node: '>=6 <7 || >=8'} - fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} - - fs-minipass@3.0.3: - resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -3179,9 +2727,6 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - generic-names@4.0.0: - resolution: {integrity: sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==} - gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -3197,10 +2742,6 @@ packages: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} - get-port@5.1.1: - resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} - engines: {node: '>=8'} - get-source@2.0.12: resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} @@ -3212,9 +2753,6 @@ packages: resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} - get-tsconfig@4.7.5: - resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} - github-from-package@0.0.0: resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} @@ -3302,12 +2840,6 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} - hast-util-to-estree@2.3.3: - resolution: {integrity: sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ==} - - hast-util-whitespace@2.0.1: - resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} - highlight.js@11.10.0: resolution: {integrity: sha512-SYVnVFswQER+zu1laSya563s+F8VDGt7o35d4utbamowvUNLLMovFqwCLSocpZTz3MgaSRA1IbqRWZv97dtErQ==} engines: {node: '>=12.0.0'} @@ -3316,17 +2848,9 @@ packages: resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} - human-id@1.0.2: resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - human-signals@3.0.1: resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} engines: {node: '>=12.20.0'} @@ -3335,12 +2859,6 @@ packages: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} - icss-utils@5.1.0: - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -3360,10 +2878,6 @@ packages: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} - indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. @@ -3374,35 +2888,14 @@ packages: ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - inline-style-parser@0.1.1: - resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} - internal-slot@1.0.7: resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} - ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} - - is-alphabetical@2.0.1: - resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} - - is-alphanumerical@2.0.1: - resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} - - is-arguments@1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} - engines: {node: '>= 0.4'} - is-array-buffer@3.0.4: resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} engines: {node: '>= 0.4'} - is-async-function@2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} - engines: {node: '>= 0.4'} - is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} @@ -3414,10 +2907,6 @@ packages: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} - is-buffer@2.0.5: - resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} - engines: {node: '>=4'} - is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} @@ -3434,9 +2923,6 @@ packages: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} - is-decimal@2.0.1: - resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} - is-deflate@1.0.0: resolution: {integrity: sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ==} @@ -3444,9 +2930,6 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - is-finalizationregistry@1.0.2: - resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} - is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -3455,10 +2938,6 @@ packages: resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} engines: {node: '>=12'} - is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} - engines: {node: '>= 0.4'} - is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -3467,17 +2946,6 @@ packages: resolution: {integrity: sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==} engines: {node: '>=0.10.0'} - is-hexadecimal@2.0.1: - resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - - is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - - is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - is-negative-zero@2.0.3: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} @@ -3494,33 +2962,14 @@ packages: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} - is-plain-obj@3.0.0: - resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} - engines: {node: '>=10'} - - is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} - - is-reference@3.0.2: - resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} - is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} - is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - is-shared-array-buffer@1.0.3: resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} engines: {node: '>= 0.4'} - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3541,21 +2990,9 @@ packages: resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} - is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - - is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} - is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - is-weakset@2.0.3: - resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} - engines: {node: '>= 0.4'} - is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} @@ -3570,25 +3007,16 @@ packages: resolution: {integrity: sha512-4X8KZHyaIqXOqEv1qfZOqshMX3r7Q/VtMEMzuGPZljDMEIGpX7bcGODR9gZztXdcPBEJpNioQXXBJun+xi2G5g==} engines: {node: '>=18'} - isbot@5.1.17: - resolution: {integrity: sha512-/wch8pRKZE+aoVhRX/hYPY1C7dMCeeMyhkQLNLNlYAbGQn9bkvMB8fOUXNnk5I0m4vDYbBJ9ciVtkr9zfBJ7qA==} + isbot@5.1.22: + resolution: {integrity: sha512-RqCFY3cJy3c2y1I+rMn81cfzAR4XJwfPBC+M8kffUjbPzxApzyyv7Tbm1C/gXXq2dSCuD238pKFEWlQMTWsTFw==} engines: {node: '>=18'} isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - iterator.prototype@1.1.2: - resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} - - itty-time@1.0.6: - resolution: {integrity: sha512-+P8IZaLLBtFv8hCkIjcymZOp4UJ+xW6bSlQsXGqrkmJh7vSiMFSlNne0mCYagEE0N7HDNR5jJBRxwN0oYv61Rw==} - jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - javascript-stringify@2.1.0: - resolution: {integrity: sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==} - jiti@1.21.6: resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true @@ -3637,10 +3065,6 @@ packages: json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} @@ -3663,13 +3087,6 @@ packages: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} - language-subtag-registry@0.3.23: - resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} - - language-tags@1.0.9: - resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} - engines: {node: '>=0.10'} - levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -3693,18 +3110,10 @@ packages: resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} engines: {node: '>=6'} - loader-utils@3.3.1: - resolution: {integrity: sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==} - engines: {node: '>= 12.13.0'} - local-pkg@0.4.3: resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} engines: {node: '>=14'} - local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} - engines: {node: '>=14'} - locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -3713,15 +3122,9 @@ packages: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} - lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - lodash.castarray@4.4.0: resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} - lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - lodash.isplainobject@4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} @@ -3740,13 +3143,6 @@ packages: lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - - longest-streak@3.1.0: - resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -3767,65 +3163,14 @@ packages: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} - lz-string@1.5.0: - resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} - hasBin: true - magic-string@0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - markdown-extensions@1.1.1: - resolution: {integrity: sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==} - engines: {node: '>=0.10.0'} - marked@4.3.0: resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==} engines: {node: '>= 12'} hasBin: true - mdast-util-definitions@5.1.2: - resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==} - - mdast-util-from-markdown@1.3.1: - resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} - - mdast-util-frontmatter@1.0.1: - resolution: {integrity: sha512-JjA2OjxRqAa8wEG8hloD0uTU0kdn8kbtOWpPP94NBkfAlbxn4S8gCGf/9DwFtEeGPXrDcNXdiDjVaRdUFqYokw==} - - mdast-util-mdx-expression@1.3.2: - resolution: {integrity: sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==} - - mdast-util-mdx-jsx@2.1.4: - resolution: {integrity: sha512-DtMn9CmVhVzZx3f+optVDF8yFgQVt7FghCRNdlIaS3X5Bnym3hZwPbg/XW86vdpKjlc1PVj26SpnLGeJBXD3JA==} - - mdast-util-mdx@2.0.1: - resolution: {integrity: sha512-38w5y+r8nyKlGvNjSEqWrhG0w5PmnRA+wnBvm+ulYCct7nsGYhFVb0lljS9bQav4psDAS1eGkP2LMVcZBi/aqw==} - - mdast-util-mdxjs-esm@1.3.1: - resolution: {integrity: sha512-SXqglS0HrEvSdUEfoXFtcg7DRl7S2cwOXc7jkuusG472Mmjag34DUDeOJUZtl+BVnyeO1frIgVpHlNRWc2gk/w==} - - mdast-util-phrasing@3.0.1: - resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==} - - mdast-util-to-hast@12.3.0: - resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==} - - mdast-util-to-markdown@1.5.0: - resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} - - mdast-util-to-string@3.2.0: - resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} - - media-query-parser@2.0.2: - resolution: {integrity: sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==} - - media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} - - merge-descriptors@1.0.3: - resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} - merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -3833,128 +3178,15 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} - - micromark-core-commonmark@1.1.0: - resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==} - - micromark-extension-frontmatter@1.1.1: - resolution: {integrity: sha512-m2UH9a7n3W8VAH9JO9y01APpPKmNNNs71P0RbknEmYSaZU5Ghogv38BYO94AI5Xw6OYfxZRdHZZ2nYjs/Z+SZQ==} - - micromark-extension-mdx-expression@1.0.8: - resolution: {integrity: sha512-zZpeQtc5wfWKdzDsHRBY003H2Smg+PUi2REhqgIhdzAa5xonhP03FcXxqFSerFiNUr5AWmHpaNPQTBVOS4lrXw==} - - micromark-extension-mdx-jsx@1.0.5: - resolution: {integrity: sha512-gPH+9ZdmDflbu19Xkb8+gheqEDqkSpdCEubQyxuz/Hn8DOXiXvrXeikOoBA71+e8Pfi0/UYmU3wW3H58kr7akA==} - - micromark-extension-mdx-md@1.0.1: - resolution: {integrity: sha512-7MSuj2S7xjOQXAjjkbjBsHkMtb+mDGVW6uI2dBL9snOBCbZmoNgDAeZ0nSn9j3T42UE/g2xVNMn18PJxZvkBEA==} - - micromark-extension-mdxjs-esm@1.0.5: - resolution: {integrity: sha512-xNRBw4aoURcyz/S69B19WnZAkWJMxHMT5hE36GtDAyhoyn/8TuAeqjFJQlwk+MKQsUD7b3l7kFX+vlfVWgcX1w==} - - micromark-extension-mdxjs@1.0.1: - resolution: {integrity: sha512-7YA7hF6i5eKOfFUzZ+0z6avRG52GpWR8DL+kN47y3f2KhxbBZMhmxe7auOeaTBrW2DenbbZTf1ea9tA2hDpC2Q==} - - micromark-factory-destination@1.1.0: - resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==} - - micromark-factory-label@1.1.0: - resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==} - - micromark-factory-mdx-expression@1.0.9: - resolution: {integrity: sha512-jGIWzSmNfdnkJq05c7b0+Wv0Kfz3NJ3N4cBjnbO4zjXIlxJr+f8lk+5ZmwFvqdAbUy2q6B5rCY//g0QAAaXDWA==} - - micromark-factory-space@1.1.0: - resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} - - micromark-factory-title@1.1.0: - resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==} - - micromark-factory-whitespace@1.1.0: - resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==} - - micromark-util-character@1.2.0: - resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} - - micromark-util-chunked@1.1.0: - resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==} - - micromark-util-classify-character@1.1.0: - resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==} - - micromark-util-combine-extensions@1.1.0: - resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==} - - micromark-util-decode-numeric-character-reference@1.1.0: - resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==} - - micromark-util-decode-string@1.1.0: - resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==} - - micromark-util-encode@1.1.0: - resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==} - - micromark-util-events-to-acorn@1.2.3: - resolution: {integrity: sha512-ij4X7Wuc4fED6UoLWkmo0xJQhsktfNh1J0m8g4PbIMPlx+ek/4YdW5mvbye8z/aZvAPUoxgXHrwVlXAPKMRp1w==} - - micromark-util-html-tag-name@1.2.0: - resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==} - - micromark-util-normalize-identifier@1.1.0: - resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==} - - micromark-util-resolve-all@1.1.0: - resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==} - - micromark-util-sanitize-uri@1.2.0: - resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==} - - micromark-util-subtokenize@1.1.0: - resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==} - - micromark-util-symbol@1.1.0: - resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} - - micromark-util-types@1.1.0: - resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} - - micromark@3.2.0: - resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} - micromatch@4.0.7: resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} engines: {node: '>=8.6'} - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - - mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - - mime@2.6.0: - resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} - engines: {node: '>=4.0.0'} - hasBin: true - mime@3.0.0: resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} engines: {node: '>=10.0.0'} hasBin: true - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} @@ -3967,18 +3199,14 @@ packages: resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} hasBin: true - miniflare@3.20241205.0: - resolution: {integrity: sha512-Z0cTtIf6ZrcAJ3SrOI9EUM3s4dkGhNeU6Ubl8sroYhsPVD+rtz3m5+p6McHFWCkcMff1o60X5XEKVTmkz0gbpA==} + miniflare@3.20241230.2: + resolution: {integrity: sha512-gFC3IaUKrLGdtA6y6PLpC/QE5YAjB5ITCfBZHkosRyFZ9ApaCHKcHRvrEFMc/R19QxxtHD+G3tExEHp7MmtsYQ==} engines: {node: '>=16.13'} hasBin: true minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - minimatch@7.4.6: - resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} - engines: {node: '>=10'} - minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} @@ -3986,47 +3214,18 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - minipass-collect@1.0.2: - resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} - engines: {node: '>= 8'} - - minipass-flush@1.0.5: - resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} - engines: {node: '>= 8'} - - minipass-pipeline@1.2.4: - resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} - engines: {node: '>=8'} - - minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} - - minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} - mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} - mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - mlly@1.7.1: resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} - modern-ahocorasick@1.0.1: - resolution: {integrity: sha512-yoe+JbhTClckZ67b2itRtistFKf8yPYelHLc7e5xAwtNAXxM6wJTUx2C7QeVSJFDzKT7bCIFyBVybPMKvmB9AA==} + mlly@1.7.4: + resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} mousetrap@1.6.5: resolution: {integrity: sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==} @@ -4035,13 +3234,6 @@ packages: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} - mrmime@1.0.1: - resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} - engines: {node: '>=10'} - - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} @@ -4063,24 +3255,13 @@ packages: napi-build-utils@1.0.2: resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} - natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - node-abi@3.71.0: resolution: {integrity: sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==} engines: {node: '>=10'} - node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} - engines: {node: '>= 6.13.0'} - node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} @@ -4112,10 +3293,6 @@ packages: resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - npm-run-path@5.3.0: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -4135,10 +3312,6 @@ packages: resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} engines: {node: '>= 0.4'} - object-is@1.1.6: - resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} - engines: {node: '>= 0.4'} - object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} @@ -4155,10 +3328,6 @@ packages: resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} engines: {node: '>= 0.4'} - object.groupby@1.0.3: - resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} - engines: {node: '>= 0.4'} - object.hasown@1.1.4: resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} engines: {node: '>= 0.4'} @@ -4170,17 +3339,9 @@ packages: ohash@1.1.4: resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} - on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - onetime@6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} @@ -4189,10 +3350,6 @@ packages: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} - ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} @@ -4200,9 +3357,6 @@ packages: outdent@0.5.0: resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} - outdent@0.8.0: - resolution: {integrity: sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A==} - p-filter@2.1.0: resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} engines: {node: '>=8'} @@ -4231,10 +3385,6 @@ packages: resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} engines: {node: '>=6'} - p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} - p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} @@ -4249,20 +3399,9 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - parse-entities@4.0.1: - resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} - - parse-ms@2.1.0: - resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} - engines: {node: '>=6'} - parse-package-name@1.0.0: resolution: {integrity: sha512-kBeTUtcj+SkyfaW4+KBe0HtsloBJ/mKTPoxpVdA57GZiPerREsUWJOhVj9anXweFiJkm5y8FG1sxFZkZ0SN6wg==} - parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -4286,9 +3425,6 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - path-to-regexp@0.1.10: - resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==} - path-to-regexp@6.3.0: resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} @@ -4299,26 +3435,28 @@ packages: pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + pathe@2.0.2: + resolution: {integrity: sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==} + pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} peek-stream@1.1.3: resolution: {integrity: sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==} - periscopic@3.1.0: - resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} - picocolors@1.0.1: resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - pidtree@0.6.0: - resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} - engines: {node: '>=0.10'} - hasBin: true + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} @@ -4339,6 +3477,9 @@ packages: pkg-types@1.1.3: resolution: {integrity: sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==} + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + pluralize@8.0.0: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} @@ -4347,12 +3488,6 @@ packages: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} - postcss-discard-duplicates@5.1.0: - resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - postcss-focus-visible@6.0.4: resolution: {integrity: sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==} engines: {node: ^12 || ^14 || >=16} @@ -4377,9 +3512,9 @@ packages: peerDependencies: postcss: ^8.4.21 - postcss-load-config@3.1.4: - resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} - engines: {node: '>= 10'} + postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} peerDependencies: postcss: '>=8.0.9' ts-node: '>=9.0.0' @@ -4389,46 +3524,23 @@ packages: ts-node: optional: true - postcss-load-config@4.0.2: - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} - engines: {node: '>= 14'} + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} peerDependencies: + jiti: '>=1.21.0' postcss: '>=8.0.9' - ts-node: '>=9.0.0' + tsx: ^4.8.1 + yaml: ^2.4.2 peerDependenciesMeta: + jiti: + optional: true postcss: optional: true - ts-node: + tsx: + optional: true + yaml: optional: true - - postcss-modules-extract-imports@3.1.0: - resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-local-by-default@4.0.5: - resolution: {integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-scope@3.2.0: - resolution: {integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-values@4.0.0: - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules@6.0.0: - resolution: {integrity: sha512-7DGfnlyi/ju82BRzTIjWS5C4Tafmzl3R79YP/PASiocj+aa6yYphHhhKUOEoXQToId5rgyFgJ88+ccOUydjBXQ==} - peerDependencies: - postcss: ^8.0.0 postcss-nested@6.0.1: resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} @@ -4479,10 +3591,6 @@ packages: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - pretty-ms@7.0.1: - resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} - engines: {node: '>=10'} - printable-characters@1.0.42: resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} @@ -4517,13 +3625,6 @@ packages: prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - property-information@6.5.0: - resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} - - proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} - pseudomap@1.0.2: resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} @@ -4540,21 +3641,9 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - qs@6.13.0: - resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} - engines: {node: '>=0.6'} - queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} - - raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} - engines: {node: '>= 0.8'} - rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true @@ -4574,18 +3663,15 @@ packages: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} - react-router-dom@6.28.0: - resolution: {integrity: sha512-kQ7Unsl5YdyOltsPGl31zOjLrDv+m2VcIEcIHqYYD3Lp0UppLjrzcfJqDJwXxFw3TH/yvapbnUvPlAj7Kx5nbg==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - - react-router@6.28.0: - resolution: {integrity: sha512-HrYdIFqdrnhDw0PqG/AKjAqEqM7AvxCz0DQ4h2W8k6nqmc5uRBYDag0SBxx9iYz5G8gnuNVLzUe13wl9eAsXXg==} - engines: {node: '>=14.0.0'} + react-router@7.1.2: + resolution: {integrity: sha512-KeallSO30KLpIe/ZZqfk6pCJ1c+5JhMxl3SCS3Zx1LgaGuQbgLDmjuNi6KZ5LnAV9sWjbmBWGRw8Um/Pw6BExg==} + engines: {node: '>=20.0.0'} peerDependencies: - react: '>=16.8' + react: '>=18' + react-dom: '>=18' + peerDependenciesMeta: + react-dom: + optional: true react@18.2.0: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} @@ -4613,10 +3699,6 @@ packages: resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} engines: {node: '>= 14.16.0'} - reflect.getprototypeof@1.0.6: - resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} - engines: {node: '>= 0.4'} - regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} @@ -4628,22 +3710,6 @@ packages: resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} engines: {node: '>=8'} - remark-frontmatter@4.0.1: - resolution: {integrity: sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==} - - remark-mdx-frontmatter@1.1.1: - resolution: {integrity: sha512-7teX9DW4tI2WZkXS4DBxneYSY7NHiXl4AKdWDO9LXVweULlCT8OPWsOjLEnMIXViN1j+QcY8mfbq3k0EK6x3uA==} - engines: {node: '>=12.2.0'} - - remark-mdx@2.3.0: - resolution: {integrity: sha512-g53hMkpM0I98MU266IzDFMrTD980gNF3BJnkyFcmN+dD873mQeD5rdMO3Y2X+x8umQfbSE0PcoEDl7ledSA+2g==} - - remark-parse@10.0.2: - resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==} - - remark-rehype@10.1.0: - resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} - require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -4652,13 +3718,6 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} - require-like@0.1.2: - resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==} - - requireindex@1.2.0: - resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==} - engines: {node: '>=0.10.5'} - resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -4667,13 +3726,6 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} - resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - - resolve.exports@2.0.2: - resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} - engines: {node: '>=10'} - resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true @@ -4682,10 +3734,6 @@ packages: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true - restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - retry@0.12.0: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} engines: {node: '>= 4'} @@ -4719,16 +3767,17 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + rollup@4.30.1: + resolution: {integrity: sha512-mlJ4glW020fPuLi7DkM/lN97mYEZGWeqBnrljzN0gs7GLctqX3lNWxKQ7Gl712UAX+6fog/L3jh4gb7R6aVi3w==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - sade@1.8.1: - resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} - engines: {node: '>=6'} - safe-array-concat@1.1.2: resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} @@ -4752,10 +3801,6 @@ packages: search-insights@2.15.0: resolution: {integrity: sha512-ch2sPCUDD4sbPQdknVl9ALSi9H7VyoeVbsxznYz6QV55jJ8CI3EtwpO1i84keN4+hF5IeHWIeGvc08530JkVXQ==} - selfsigned@2.4.1: - resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} - engines: {node: '>=10'} - semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -4765,17 +3810,12 @@ packages: engines: {node: '>=10'} hasBin: true - send@0.19.0: - resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} - engines: {node: '>= 0.8.0'} - - serve-static@1.16.2: - resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} - engines: {node: '>= 0.8.0'} - set-cookie-parser@2.6.0: resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} + set-cookie-parser@2.7.1: + resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==} + set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -4784,9 +3824,6 @@ packages: resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} engines: {node: '>= 0.4'} - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - shebang-command@1.2.0: resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} engines: {node: '>=0.10.0'} @@ -4852,10 +3889,6 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} - source-map@0.8.0-beta.0: resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} engines: {node: '>= 8'} @@ -4864,9 +3897,6 @@ packages: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} deprecated: Please use @jridgewell/sourcemap-codec instead - space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - spawn-command@0.0.2: resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==} @@ -4888,27 +3918,15 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - ssri@10.0.6: - resolution: {integrity: sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} stacktracey@2.1.8: resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} - statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - std-env@3.7.0: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - stop-iteration-iterator@1.0.0: - resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} - engines: {node: '>= 0.4'} - stoppable@1.1.0: resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==} engines: {node: '>=4', npm: '>=6'} @@ -4923,9 +3941,6 @@ packages: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} - string-hash@1.1.3: - resolution: {integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==} - string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -4934,16 +3949,10 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} - string.prototype.includes@2.0.0: - resolution: {integrity: sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==} - string.prototype.matchall@4.0.11: resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} engines: {node: '>= 0.4'} - string.prototype.repeat@1.0.0: - resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} - string.prototype.trim@1.2.9: resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} engines: {node: '>= 0.4'} @@ -4961,9 +3970,6 @@ packages: string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - stringify-entities@4.0.4: - resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} - strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -4976,10 +3982,6 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - strip-final-newline@3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} @@ -4995,9 +3997,6 @@ packages: strip-literal@1.3.0: resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} - style-to-object@0.4.4: - resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} - sucrase@3.35.0: resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} engines: {node: '>=16 || 14 >=14.17'} @@ -5031,10 +4030,6 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} - tar-fs@2.1.1: resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} @@ -5042,10 +4037,6 @@ packages: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} - tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} - engines: {node: '>=10'} - term-size@2.2.1: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} engines: {node: '>=8'} @@ -5075,6 +4066,13 @@ packages: tinybench@2.8.0: resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + + tinyglobby@0.2.10: + resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} + engines: {node: '>=12.0.0'} + tinypool@0.3.1: resolution: {integrity: sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ==} engines: {node: '>=14.0.0'} @@ -5095,13 +4093,6 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - - toml@3.0.0: - resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==} - tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} @@ -5109,12 +4100,6 @@ packages: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true - trim-lines@3.0.1: - resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - - trough@2.2.0: - resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} @@ -5128,28 +4113,21 @@ packages: typescript: optional: true - tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} - - tsconfig-paths@4.2.0: - resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} - engines: {node: '>=6'} - - tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - tslib@2.6.3: resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} - tsup@6.7.0: - resolution: {integrity: sha512-L3o8hGkaHnu5TdJns+mCqFsDBo83bJ44rlK7e6VdanIvpea4ArPcU3swWGsLVbXak1PqQx/V+SSmFPujBK+zEQ==} - engines: {node: '>=14.18'} + tsup@8.3.5: + resolution: {integrity: sha512-Tunf6r6m6tnZsG9GYWndg0z8dEV7fD733VBFzFJ5Vcm1FtlXB8xBD/rtrBi2a3YKEV7hHtxiZtW5EAVADoe1pA==} + engines: {node: '>=18'} hasBin: true peerDependencies: + '@microsoft/api-extractor': ^7.36.0 '@swc/core': ^1 postcss: ^8.4.12 - typescript: '>=4.1.0' + typescript: '>=4.5.0' peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true '@swc/core': optional: true postcss: @@ -5157,12 +4135,6 @@ packages: typescript: optional: true - tsutils@3.21.0: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} @@ -5215,10 +4187,6 @@ packages: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} - type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} - typed-array-buffer@1.0.2: resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} engines: {node: '>= 0.4'} @@ -5235,8 +4203,8 @@ packages: resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} - typescript@5.5.3: - resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==} + typescript@5.7.3: + resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} engines: {node: '>=14.17'} hasBin: true @@ -5261,43 +4229,8 @@ packages: resolution: {integrity: sha512-JfjKqIauur3Q6biAtHJ564e3bWa8VvT+7cSiOJHFbX4Erv6CLGDpg8z+Fmg/1OI/47RA+GI2QZaF48SSaLvyBA==} engines: {node: '>=18.17'} - unenv-nightly@2.0.0-20241204-140205-a5d5190: - resolution: {integrity: sha512-jpmAytLeiiW01pl5bhVn9wYJ4vtiLdhGe10oXlJBuQEX8mxjxO8BlEXGHU4vr4yEikjFP1wsomTHt/CLU8kUwg==} - - unified@10.1.2: - resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} - - unique-filename@3.0.0: - resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - unique-slug@4.0.0: - resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - unist-util-generated@2.0.1: - resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==} - - unist-util-is@5.2.1: - resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} - - unist-util-position-from-estree@1.1.2: - resolution: {integrity: sha512-poZa0eXpS+/XpoQwGwl79UUdea4ol2ZuCYguVaJS4qzIOMDzbqz8a3erUCOmubSZkaOuGamb3tX790iwOIROww==} - - unist-util-position@4.0.4: - resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==} - - unist-util-remove-position@4.0.2: - resolution: {integrity: sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ==} - - unist-util-stringify-position@3.0.3: - resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} - - unist-util-visit-parents@5.1.3: - resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} - - unist-util-visit@4.1.2: - resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} + unenv-nightly@2.0.0-20250109-100802-88ad671: + resolution: {integrity: sha512-Uij6gODNNNNsNBoDlnaMvZI99I6YlVJLRfYH8AOLMlbFrW7k2w872v9VLuIdch2vF8QBeSC4EftIh5sG4ibzdA==} universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} @@ -5307,10 +4240,6 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - update-browserslist-db@1.1.0: resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} hasBin: true @@ -5326,18 +4255,6 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - util@0.12.5: - resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} - - utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - - uvu@0.5.6: - resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} - engines: {node: '>=8'} - hasBin: true - v8-compile-cache@2.4.0: resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} @@ -5360,24 +4277,14 @@ packages: resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} - - vfile-message@3.1.4: - resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} - - vfile@5.3.7: - resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} - vite-node@0.28.5: resolution: {integrity: sha512-LmXb9saMGlrMZbXTvOveJKwMTBTNUH66c8rJnQ0ZPNX+myPEol64+szRzXtV5ORb0Hb/91yq+/D3oERoyAt6LA==} engines: {node: '>=v14.16.0'} hasBin: true - vite-node@1.6.0: - resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} - engines: {node: ^18.0.0 || >=20.0.0} + vite-node@3.0.0-beta.2: + resolution: {integrity: sha512-ofTf6cfRdL30Wbl9n/BX81EyIR5s4PReLmSurrxQ+koLaWUNOEo8E0lCM53OJkb8vpa2URM2nSrxZsIFyvY1rg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true vite-tsconfig-paths@4.3.2: @@ -5466,16 +4373,6 @@ packages: jsdom: optional: true - wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - - web-encoding@1.1.5: - resolution: {integrity: sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==} - - web-streams-polyfill@3.3.3: - resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} - engines: {node: '>= 8'} - webidl-conversions@4.0.2: resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} @@ -5485,14 +4382,6 @@ packages: which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - which-builtin-type@1.1.3: - resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} - engines: {node: '>= 0.4'} - - which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} - which-pm@2.2.0: resolution: {integrity: sha512-MOiaDbA5ZZgUjkeMWM5EkJp4loW5ZRoa5bc3/aeMox/PJelMhE6t7S/mLuiY43DBupyxH+S0U1bTui9kWUlmsw==} engines: {node: '>=8.15'} @@ -5524,17 +4413,17 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - workerd@1.20241205.0: - resolution: {integrity: sha512-vso/2n0c5SdBDWiD+Sx5gM7unA6SiZXRVUHDqH1euoP/9mFVHZF8icoYsNLB87b/TX8zNgpae+I5N/xFpd9v0g==} + workerd@1.20241230.0: + resolution: {integrity: sha512-EgixXP0JGXGq6J9lz17TKIZtfNDUvJNG+cl9paPMfZuYWT920fFpBx+K04YmnbQRLnglsivF1GT9pxh1yrlWhg==} engines: {node: '>=16'} hasBin: true - wrangler@3.96.0: - resolution: {integrity: sha512-KjbHTUnwTa5eKl3hzv2h6nHBfAsbUkdurL7f6Y288/Bdn6tcEis13jLVR/nw/eWa3tNCBG1xOMZJboUyzWcC1g==} + wrangler@3.103.2: + resolution: {integrity: sha512-eYcnubPhPBU1QMZYTam+vfCLpaQx+x1EWA6nFbLhid1eqNDAk1dNwNlbo+ZryrOHDEX3XlOxn2Z3Fx8vVv3hKw==} engines: {node: '>=16.17.0'} hasBin: true peerDependencies: - '@cloudflare/workers-types': ^4.20241205.0 + '@cloudflare/workers-types': ^4.20241230.0 peerDependenciesMeta: '@cloudflare/workers-types': optional: true @@ -5550,18 +4439,6 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - ws@7.5.10: - resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - ws@8.18.0: resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} engines: {node: '>=10.0.0'} @@ -5578,9 +4455,6 @@ packages: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} - xxhash-wasm@1.0.2: - resolution: {integrity: sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==} - y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -5591,13 +4465,6 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - - yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - yaml@2.4.5: resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} engines: {node: '>= 14'} @@ -5625,9 +4492,6 @@ packages: zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} - zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - snapshots: '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.14.2)(algoliasearch@5.14.2)(search-insights@2.15.0)': @@ -5773,22 +4637,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/eslint-parser@7.24.8(@babel/core@7.24.8)(eslint@8.26.0)': - dependencies: - '@babel/core': 7.24.8 - '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.26.0 - eslint-visitor-keys: 2.1.0 - semver: 6.3.1 - - '@babel/eslint-parser@7.24.8(@babel/core@7.24.8)(eslint@8.57.0)': - dependencies: - '@babel/core': 7.24.8 - '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.57.0 - eslint-visitor-keys: 2.1.0 - semver: 6.3.1 - '@babel/generator@7.24.8': dependencies: '@babel/types': 7.24.8 @@ -5940,35 +4788,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-display-name@7.24.7(@babel/core@7.24.8)': - dependencies: - '@babel/core': 7.24.8 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-react-jsx-development@7.24.7(@babel/core@7.24.8)': - dependencies: - '@babel/core': 7.24.8 - '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.8) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-react-jsx@7.24.7(@babel/core@7.24.8)': - dependencies: - '@babel/core': 7.24.8 - '@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.24.8) - '@babel/types': 7.24.8 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-react-pure-annotations@7.24.7(@babel/core@7.24.8)': - dependencies: - '@babel/core': 7.24.8 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-typescript@7.24.8(@babel/core@7.24.8)': dependencies: '@babel/core': 7.24.8 @@ -5979,18 +4798,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/preset-react@7.24.7(@babel/core@7.24.8)': - dependencies: - '@babel/core': 7.24.8 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-option': 7.24.8 - '@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-react-jsx-development': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-react-pure-annotations': 7.24.7(@babel/core@7.24.8) - transitivePeerDependencies: - - supports-color - '@babel/preset-typescript@7.24.7(@babel/core@7.24.8)': dependencies: '@babel/core': 7.24.8 @@ -6206,30 +5013,26 @@ snapshots: picocolors: 1.0.1 sisteransi: 1.0.5 - '@cloudflare/kv-asset-handler@0.1.3': - dependencies: - mime: 2.6.0 - '@cloudflare/kv-asset-handler@0.3.4': dependencies: mime: 3.0.0 - '@cloudflare/workerd-darwin-64@1.20241205.0': + '@cloudflare/workerd-darwin-64@1.20241230.0': optional: true - '@cloudflare/workerd-darwin-arm64@1.20241205.0': + '@cloudflare/workerd-darwin-arm64@1.20241230.0': optional: true - '@cloudflare/workerd-linux-64@1.20241205.0': + '@cloudflare/workerd-linux-64@1.20241230.0': optional: true - '@cloudflare/workerd-linux-arm64@1.20241205.0': + '@cloudflare/workerd-linux-arm64@1.20241230.0': optional: true - '@cloudflare/workerd-windows-64@1.20241205.0': + '@cloudflare/workerd-windows-64@1.20241230.0': optional: true - '@cloudflare/workers-types@4.20241018.0': {} + '@cloudflare/workers-types@4.20250109.0': {} '@colors/colors@1.5.0': optional: true @@ -6254,8 +5057,6 @@ snapshots: transitivePeerDependencies: - '@algolia/client-search' - '@emotion/hash@0.9.1': {} - '@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.17.19)': dependencies: esbuild: 0.17.19 @@ -6269,10 +5070,10 @@ snapshots: '@esbuild/aix-ppc64@0.21.5': optional: true - '@esbuild/android-arm64@0.17.19': + '@esbuild/aix-ppc64@0.24.2': optional: true - '@esbuild/android-arm64@0.17.6': + '@esbuild/android-arm64@0.17.19': optional: true '@esbuild/android-arm64@0.18.20': @@ -6281,10 +5082,10 @@ snapshots: '@esbuild/android-arm64@0.21.5': optional: true - '@esbuild/android-arm@0.17.19': + '@esbuild/android-arm64@0.24.2': optional: true - '@esbuild/android-arm@0.17.6': + '@esbuild/android-arm@0.17.19': optional: true '@esbuild/android-arm@0.18.20': @@ -6293,10 +5094,10 @@ snapshots: '@esbuild/android-arm@0.21.5': optional: true - '@esbuild/android-x64@0.17.19': + '@esbuild/android-arm@0.24.2': optional: true - '@esbuild/android-x64@0.17.6': + '@esbuild/android-x64@0.17.19': optional: true '@esbuild/android-x64@0.18.20': @@ -6305,10 +5106,10 @@ snapshots: '@esbuild/android-x64@0.21.5': optional: true - '@esbuild/darwin-arm64@0.17.19': + '@esbuild/android-x64@0.24.2': optional: true - '@esbuild/darwin-arm64@0.17.6': + '@esbuild/darwin-arm64@0.17.19': optional: true '@esbuild/darwin-arm64@0.18.20': @@ -6317,10 +5118,10 @@ snapshots: '@esbuild/darwin-arm64@0.21.5': optional: true - '@esbuild/darwin-x64@0.17.19': + '@esbuild/darwin-arm64@0.24.2': optional: true - '@esbuild/darwin-x64@0.17.6': + '@esbuild/darwin-x64@0.17.19': optional: true '@esbuild/darwin-x64@0.18.20': @@ -6329,10 +5130,10 @@ snapshots: '@esbuild/darwin-x64@0.21.5': optional: true - '@esbuild/freebsd-arm64@0.17.19': + '@esbuild/darwin-x64@0.24.2': optional: true - '@esbuild/freebsd-arm64@0.17.6': + '@esbuild/freebsd-arm64@0.17.19': optional: true '@esbuild/freebsd-arm64@0.18.20': @@ -6341,10 +5142,10 @@ snapshots: '@esbuild/freebsd-arm64@0.21.5': optional: true - '@esbuild/freebsd-x64@0.17.19': + '@esbuild/freebsd-arm64@0.24.2': optional: true - '@esbuild/freebsd-x64@0.17.6': + '@esbuild/freebsd-x64@0.17.19': optional: true '@esbuild/freebsd-x64@0.18.20': @@ -6353,10 +5154,10 @@ snapshots: '@esbuild/freebsd-x64@0.21.5': optional: true - '@esbuild/linux-arm64@0.17.19': + '@esbuild/freebsd-x64@0.24.2': optional: true - '@esbuild/linux-arm64@0.17.6': + '@esbuild/linux-arm64@0.17.19': optional: true '@esbuild/linux-arm64@0.18.20': @@ -6365,10 +5166,10 @@ snapshots: '@esbuild/linux-arm64@0.21.5': optional: true - '@esbuild/linux-arm@0.17.19': + '@esbuild/linux-arm64@0.24.2': optional: true - '@esbuild/linux-arm@0.17.6': + '@esbuild/linux-arm@0.17.19': optional: true '@esbuild/linux-arm@0.18.20': @@ -6377,10 +5178,10 @@ snapshots: '@esbuild/linux-arm@0.21.5': optional: true - '@esbuild/linux-ia32@0.17.19': + '@esbuild/linux-arm@0.24.2': optional: true - '@esbuild/linux-ia32@0.17.6': + '@esbuild/linux-ia32@0.17.19': optional: true '@esbuild/linux-ia32@0.18.20': @@ -6389,10 +5190,10 @@ snapshots: '@esbuild/linux-ia32@0.21.5': optional: true - '@esbuild/linux-loong64@0.17.19': + '@esbuild/linux-ia32@0.24.2': optional: true - '@esbuild/linux-loong64@0.17.6': + '@esbuild/linux-loong64@0.17.19': optional: true '@esbuild/linux-loong64@0.18.20': @@ -6401,10 +5202,10 @@ snapshots: '@esbuild/linux-loong64@0.21.5': optional: true - '@esbuild/linux-mips64el@0.17.19': + '@esbuild/linux-loong64@0.24.2': optional: true - '@esbuild/linux-mips64el@0.17.6': + '@esbuild/linux-mips64el@0.17.19': optional: true '@esbuild/linux-mips64el@0.18.20': @@ -6413,10 +5214,10 @@ snapshots: '@esbuild/linux-mips64el@0.21.5': optional: true - '@esbuild/linux-ppc64@0.17.19': + '@esbuild/linux-mips64el@0.24.2': optional: true - '@esbuild/linux-ppc64@0.17.6': + '@esbuild/linux-ppc64@0.17.19': optional: true '@esbuild/linux-ppc64@0.18.20': @@ -6425,10 +5226,10 @@ snapshots: '@esbuild/linux-ppc64@0.21.5': optional: true - '@esbuild/linux-riscv64@0.17.19': + '@esbuild/linux-ppc64@0.24.2': optional: true - '@esbuild/linux-riscv64@0.17.6': + '@esbuild/linux-riscv64@0.17.19': optional: true '@esbuild/linux-riscv64@0.18.20': @@ -6437,10 +5238,10 @@ snapshots: '@esbuild/linux-riscv64@0.21.5': optional: true - '@esbuild/linux-s390x@0.17.19': + '@esbuild/linux-riscv64@0.24.2': optional: true - '@esbuild/linux-s390x@0.17.6': + '@esbuild/linux-s390x@0.17.19': optional: true '@esbuild/linux-s390x@0.18.20': @@ -6449,10 +5250,10 @@ snapshots: '@esbuild/linux-s390x@0.21.5': optional: true - '@esbuild/linux-x64@0.17.19': + '@esbuild/linux-s390x@0.24.2': optional: true - '@esbuild/linux-x64@0.17.6': + '@esbuild/linux-x64@0.17.19': optional: true '@esbuild/linux-x64@0.18.20': @@ -6461,10 +5262,13 @@ snapshots: '@esbuild/linux-x64@0.21.5': optional: true - '@esbuild/netbsd-x64@0.17.19': + '@esbuild/linux-x64@0.24.2': + optional: true + + '@esbuild/netbsd-arm64@0.24.2': optional: true - '@esbuild/netbsd-x64@0.17.6': + '@esbuild/netbsd-x64@0.17.19': optional: true '@esbuild/netbsd-x64@0.18.20': @@ -6473,10 +5277,13 @@ snapshots: '@esbuild/netbsd-x64@0.21.5': optional: true - '@esbuild/openbsd-x64@0.17.19': + '@esbuild/netbsd-x64@0.24.2': + optional: true + + '@esbuild/openbsd-arm64@0.24.2': optional: true - '@esbuild/openbsd-x64@0.17.6': + '@esbuild/openbsd-x64@0.17.19': optional: true '@esbuild/openbsd-x64@0.18.20': @@ -6485,10 +5292,10 @@ snapshots: '@esbuild/openbsd-x64@0.21.5': optional: true - '@esbuild/sunos-x64@0.17.19': + '@esbuild/openbsd-x64@0.24.2': optional: true - '@esbuild/sunos-x64@0.17.6': + '@esbuild/sunos-x64@0.17.19': optional: true '@esbuild/sunos-x64@0.18.20': @@ -6497,10 +5304,10 @@ snapshots: '@esbuild/sunos-x64@0.21.5': optional: true - '@esbuild/win32-arm64@0.17.19': + '@esbuild/sunos-x64@0.24.2': optional: true - '@esbuild/win32-arm64@0.17.6': + '@esbuild/win32-arm64@0.17.19': optional: true '@esbuild/win32-arm64@0.18.20': @@ -6509,10 +5316,10 @@ snapshots: '@esbuild/win32-arm64@0.21.5': optional: true - '@esbuild/win32-ia32@0.17.19': + '@esbuild/win32-arm64@0.24.2': optional: true - '@esbuild/win32-ia32@0.17.6': + '@esbuild/win32-ia32@0.17.19': optional: true '@esbuild/win32-ia32@0.18.20': @@ -6521,10 +5328,10 @@ snapshots: '@esbuild/win32-ia32@0.21.5': optional: true - '@esbuild/win32-x64@0.17.19': + '@esbuild/win32-ia32@0.24.2': optional: true - '@esbuild/win32-x64@0.17.6': + '@esbuild/win32-x64@0.17.19': optional: true '@esbuild/win32-x64@0.18.20': @@ -6533,10 +5340,8 @@ snapshots: '@esbuild/win32-x64@0.21.5': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.26.0)': - dependencies: - eslint: 8.26.0 - eslint-visitor-keys: 3.4.3 + '@esbuild/win32-x64@0.24.2': + optional: true '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': dependencies: @@ -6548,7 +5353,7 @@ snapshots: '@eslint/eslintrc@0.4.3': dependencies: ajv: 6.12.6 - debug: 4.3.5 + debug: 4.4.0 espree: 7.3.1 globals: 13.24.0 ignore: 4.0.6 @@ -6576,7 +5381,7 @@ snapshots: '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.3.5 + debug: 4.4.0 espree: 9.6.1 globals: 13.24.0 ignore: 5.3.1 @@ -6649,7 +5454,7 @@ snapshots: '@humanwhocodes/config-array@0.5.0': dependencies: '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.5 + debug: 4.4.0 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -6693,8 +5498,6 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@jspm/core@2.0.1': {} - '@manypkg/find-root@1.1.0': dependencies: '@babel/runtime': 7.24.8 @@ -6717,28 +5520,6 @@ snapshots: '@types/react': 18.3.3 react: 18.2.0 - '@mdx-js/mdx@2.3.0': - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/mdx': 2.0.13 - estree-util-build-jsx: 2.2.2 - estree-util-is-identifier-name: 2.1.0 - estree-util-to-js: 1.2.0 - estree-walker: 3.0.3 - hast-util-to-estree: 2.3.3 - markdown-extensions: 1.1.1 - periscopic: 3.1.0 - remark-mdx: 2.3.0 - remark-parse: 10.0.2 - remark-rehype: 10.1.0 - unified: 10.1.2 - unist-util-position-from-estree: 1.1.2 - unist-util-stringify-position: 3.0.3 - unist-util-visit: 4.1.2 - vfile: 5.3.7 - transitivePeerDependencies: - - supports-color - '@miniflare/core@2.14.2': dependencies: '@iarna/toml': 2.2.5 @@ -6772,9 +5553,9 @@ snapshots: dependencies: '@miniflare/shared': 2.14.2 - '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': - dependencies: - eslint-scope: 5.1.1 + '@mjackson/node-fetch-server@0.2.0': {} + + '@mjackson/node-fetch-server@0.6.1': {} '@nodelib/fs.scandir@2.1.5': dependencies: @@ -6788,10 +5569,6 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - '@npmcli/fs@3.1.1': - dependencies: - semver: 7.6.2 - '@npmcli/git@4.1.0': dependencies: '@npmcli/promise-spawn': 6.0.2 @@ -6855,24 +5632,15 @@ snapshots: clsx: 2.1.1 react: 18.2.0 - '@react-stately/utils@3.10.2(react@18.2.0)': - dependencies: - '@swc/helpers': 0.5.12 - react: 18.2.0 - - '@react-types/shared@3.24.1(react@18.2.0)': - dependencies: - react: 18.2.0 - - '@remix-run/cloudflare@2.14.0(@cloudflare/workers-types@4.20241018.0)(typescript@5.5.3)': + '@react-router/cloudflare@7.1.2(@cloudflare/workers-types@4.20250109.0)(react-router@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(tsup@8.3.5(jiti@1.21.6)(postcss@8.4.39)(typescript@5.7.3)(yaml@2.4.5))(typescript@5.7.3)': dependencies: - '@cloudflare/kv-asset-handler': 0.1.3 - '@cloudflare/workers-types': 4.20241018.0 - '@remix-run/server-runtime': 2.14.0(typescript@5.5.3) + '@cloudflare/workers-types': 4.20250109.0 + react-router: 7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + tsup: 8.3.5(jiti@1.21.6)(postcss@8.4.39)(typescript@5.7.3)(yaml@2.4.5) optionalDependencies: - typescript: 5.5.3 + typescript: 5.7.3 - '@remix-run/dev@2.14.0(@remix-run/react@2.14.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.3))(@types/node@18.19.39)(typescript@5.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20241018.0))': + '@react-router/dev@7.1.2(@types/node@18.19.39)(react-router@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.7.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.103.2(@cloudflare/workers-types@4.20250109.0))': dependencies: '@babel/core': 7.24.8 '@babel/generator': 7.24.8 @@ -6882,63 +5650,36 @@ snapshots: '@babel/preset-typescript': 7.24.7(@babel/core@7.24.8) '@babel/traverse': 7.24.8 '@babel/types': 7.24.8 - '@mdx-js/mdx': 2.3.0 '@npmcli/package-json': 4.0.1 - '@remix-run/node': 2.14.0(typescript@5.5.3) - '@remix-run/react': 2.14.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.3) - '@remix-run/router': 1.21.0 - '@remix-run/server-runtime': 2.14.0(typescript@5.5.3) - '@types/mdx': 2.0.13 - '@vanilla-extract/integration': 6.5.0(@types/node@18.19.39) + '@react-router/node': 7.1.2(react-router@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.7.3) arg: 5.0.2 - cacache: 17.1.4 - chalk: 4.1.2 - chokidar: 3.6.0 - cross-spawn: 7.0.3 - dotenv: 16.4.5 + babel-dead-code-elimination: 1.0.8 + chokidar: 4.0.2 + dedent: 1.5.3 es-module-lexer: 1.5.4 - esbuild: 0.17.6 - esbuild-plugins-node-modules-polyfill: 1.6.4(esbuild@0.17.6) - execa: 5.1.1 exit-hook: 2.2.1 - express: 4.21.1 fs-extra: 10.1.0 - get-port: 5.1.1 gunzip-maybe: 1.4.2 jsesc: 3.0.2 - json5: 2.2.3 lodash: 4.17.21 - lodash.debounce: 4.0.8 - minimatch: 9.0.5 - ora: 5.4.1 - picocolors: 1.0.1 + pathe: 1.1.2 + picocolors: 1.1.1 picomatch: 2.3.1 - pidtree: 0.6.0 - postcss: 8.4.39 - postcss-discard-duplicates: 5.1.0(postcss@8.4.39) - postcss-load-config: 4.0.2(postcss@8.4.39) - postcss-modules: 6.0.0(postcss@8.4.39) prettier: 2.8.8 - pretty-ms: 7.0.1 react-refresh: 0.14.2 - remark-frontmatter: 4.0.1 - remark-mdx-frontmatter: 1.1.1 + react-router: 7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) semver: 7.6.2 set-cookie-parser: 2.6.0 - tar-fs: 2.1.1 - tsconfig-paths: 4.2.0 - valibot: 0.41.0(typescript@5.5.3) - vite-node: 1.6.0(@types/node@18.19.39) - ws: 7.5.10 - optionalDependencies: - typescript: 5.5.3 + valibot: 0.41.0(typescript@5.7.3) vite: 5.3.4(@types/node@18.19.39) - wrangler: 3.96.0(@cloudflare/workers-types@4.20241018.0) + vite-node: 3.0.0-beta.2(@types/node@18.19.39) + optionalDependencies: + typescript: 5.7.3 + wrangler: 3.103.2(@cloudflare/workers-types@4.20250109.0) transitivePeerDependencies: - '@types/node' - babel-plugin-macros - bluebird - - bufferutil - less - lightningcss - sass @@ -6946,183 +5687,137 @@ snapshots: - sugarss - supports-color - terser - - ts-node - - utf-8-validate - - '@remix-run/eslint-config@2.14.0(eslint@8.26.0)(react@18.2.0)(typescript@5.5.3)': - dependencies: - '@babel/core': 7.24.8 - '@babel/eslint-parser': 7.24.8(@babel/core@7.24.8)(eslint@8.26.0) - '@babel/preset-react': 7.24.7(@babel/core@7.24.8) - '@rushstack/eslint-patch': 1.10.3 - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.26.0)(typescript@5.5.3))(eslint@8.26.0)(typescript@5.5.3) - '@typescript-eslint/parser': 5.62.0(eslint@8.26.0)(typescript@5.5.3) - eslint: 8.26.0 - eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.26.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.29.1)(eslint@8.26.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.26.0)(typescript@5.5.3))(eslint@8.26.0) - eslint-plugin-jest: 26.9.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.26.0)(typescript@5.5.3))(eslint@8.26.0)(typescript@5.5.3))(eslint@8.26.0)(typescript@5.5.3) - eslint-plugin-jest-dom: 4.0.3(eslint@8.26.0) - eslint-plugin-jsx-a11y: 6.9.0(eslint@8.26.0) - eslint-plugin-node: 11.1.0(eslint@8.26.0) - eslint-plugin-react: 7.34.4(eslint@8.26.0) - eslint-plugin-react-hooks: 4.6.2(eslint@8.26.0) - eslint-plugin-testing-library: 5.11.1(eslint@8.26.0)(typescript@5.5.3) - react: 18.2.0 - optionalDependencies: - typescript: 5.5.3 - transitivePeerDependencies: - - eslint-import-resolver-webpack - - jest - - supports-color - '@remix-run/eslint-config@2.14.0(eslint@8.57.0)(react@18.2.0)(typescript@5.5.3)': + '@react-router/fs-routes@7.1.2(@react-router/dev@7.1.2(@types/node@18.19.39)(react-router@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.7.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.103.2(@cloudflare/workers-types@4.20250109.0)))(typescript@5.7.3)': dependencies: - '@babel/core': 7.24.8 - '@babel/eslint-parser': 7.24.8(@babel/core@7.24.8)(eslint@8.57.0) - '@babel/preset-react': 7.24.7(@babel/core@7.24.8) - '@rushstack/eslint-patch': 1.10.3 - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3) - '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.5.3) - eslint: 8.57.0 - eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.29.1)(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) - eslint-plugin-jest: 26.9.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3) - eslint-plugin-jest-dom: 4.0.3(eslint@8.57.0) - eslint-plugin-jsx-a11y: 6.9.0(eslint@8.57.0) - eslint-plugin-node: 11.1.0(eslint@8.57.0) - eslint-plugin-react: 7.34.4(eslint@8.57.0) - eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) - eslint-plugin-testing-library: 5.11.1(eslint@8.57.0)(typescript@5.5.3) - react: 18.2.0 + '@react-router/dev': 7.1.2(@types/node@18.19.39)(react-router@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.7.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.103.2(@cloudflare/workers-types@4.20250109.0)) + minimatch: 9.0.5 optionalDependencies: - typescript: 5.5.3 - transitivePeerDependencies: - - eslint-import-resolver-webpack - - jest - - supports-color + typescript: 5.7.3 - '@remix-run/node@2.14.0(typescript@5.5.3)': + '@react-router/node@7.1.2(react-router@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.7.3)': dependencies: - '@remix-run/server-runtime': 2.14.0(typescript@5.5.3) - '@remix-run/web-fetch': 4.4.2 - '@web3-storage/multipart-parser': 1.0.0 - cookie-signature: 1.2.1 + '@mjackson/node-fetch-server': 0.2.0 + react-router: 7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) source-map-support: 0.5.21 stream-slice: 0.1.2 undici: 6.19.2 optionalDependencies: - typescript: 5.5.3 + typescript: 5.7.3 - '@remix-run/react@2.14.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.3)': + '@react-stately/utils@3.10.2(react@18.2.0)': dependencies: - '@remix-run/router': 1.21.0 - '@remix-run/server-runtime': 2.14.0(typescript@5.5.3) + '@swc/helpers': 0.5.12 react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-router: 6.28.0(react@18.2.0) - react-router-dom: 6.28.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - turbo-stream: 2.4.0 - optionalDependencies: - typescript: 5.5.3 - '@remix-run/router@1.21.0': {} - - '@remix-run/server-runtime@2.14.0(typescript@5.5.3)': + '@react-types/shared@3.24.1(react@18.2.0)': dependencies: - '@remix-run/router': 1.21.0 - '@types/cookie': 0.6.0 - '@web3-storage/multipart-parser': 1.0.0 - cookie: 0.6.0 - set-cookie-parser: 2.6.0 - source-map: 0.7.4 - turbo-stream: 2.4.0 - optionalDependencies: - typescript: 5.5.3 + react: 18.2.0 - '@remix-run/v1-route-convention@0.1.4(@remix-run/dev@2.14.0(@remix-run/react@2.14.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.3))(@types/node@18.19.39)(typescript@5.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20241018.0)))': - dependencies: - '@remix-run/dev': 2.14.0(@remix-run/react@2.14.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.3))(@types/node@18.19.39)(typescript@5.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20241018.0)) - minimatch: 7.4.6 + '@rollup/rollup-android-arm-eabi@4.18.1': + optional: true - '@remix-run/web-blob@3.1.0': - dependencies: - '@remix-run/web-stream': 1.1.0 - web-encoding: 1.1.5 + '@rollup/rollup-android-arm-eabi@4.30.1': + optional: true - '@remix-run/web-fetch@4.4.2': - dependencies: - '@remix-run/web-blob': 3.1.0 - '@remix-run/web-file': 3.1.0 - '@remix-run/web-form-data': 3.1.0 - '@remix-run/web-stream': 1.1.0 - '@web3-storage/multipart-parser': 1.0.0 - abort-controller: 3.0.0 - data-uri-to-buffer: 3.0.1 - mrmime: 1.0.1 + '@rollup/rollup-android-arm64@4.18.1': + optional: true - '@remix-run/web-file@3.1.0': - dependencies: - '@remix-run/web-blob': 3.1.0 + '@rollup/rollup-android-arm64@4.30.1': + optional: true - '@remix-run/web-form-data@3.1.0': - dependencies: - web-encoding: 1.1.5 + '@rollup/rollup-darwin-arm64@4.18.1': + optional: true - '@remix-run/web-stream@1.1.0': - dependencies: - web-streams-polyfill: 3.3.3 + '@rollup/rollup-darwin-arm64@4.30.1': + optional: true - '@rollup/rollup-android-arm-eabi@4.18.1': + '@rollup/rollup-darwin-x64@4.18.1': optional: true - '@rollup/rollup-android-arm64@4.18.1': + '@rollup/rollup-darwin-x64@4.30.1': optional: true - '@rollup/rollup-darwin-arm64@4.18.1': + '@rollup/rollup-freebsd-arm64@4.30.1': optional: true - '@rollup/rollup-darwin-x64@4.18.1': + '@rollup/rollup-freebsd-x64@4.30.1': optional: true '@rollup/rollup-linux-arm-gnueabihf@4.18.1': optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.30.1': + optional: true + '@rollup/rollup-linux-arm-musleabihf@4.18.1': optional: true + '@rollup/rollup-linux-arm-musleabihf@4.30.1': + optional: true + '@rollup/rollup-linux-arm64-gnu@4.18.1': optional: true + '@rollup/rollup-linux-arm64-gnu@4.30.1': + optional: true + '@rollup/rollup-linux-arm64-musl@4.18.1': optional: true + '@rollup/rollup-linux-arm64-musl@4.30.1': + optional: true + + '@rollup/rollup-linux-loongarch64-gnu@4.30.1': + optional: true + '@rollup/rollup-linux-powerpc64le-gnu@4.18.1': optional: true + '@rollup/rollup-linux-powerpc64le-gnu@4.30.1': + optional: true + '@rollup/rollup-linux-riscv64-gnu@4.18.1': optional: true + '@rollup/rollup-linux-riscv64-gnu@4.30.1': + optional: true + '@rollup/rollup-linux-s390x-gnu@4.18.1': optional: true + '@rollup/rollup-linux-s390x-gnu@4.30.1': + optional: true + '@rollup/rollup-linux-x64-gnu@4.18.1': optional: true + '@rollup/rollup-linux-x64-gnu@4.30.1': + optional: true + '@rollup/rollup-linux-x64-musl@4.18.1': optional: true + '@rollup/rollup-linux-x64-musl@4.30.1': + optional: true + '@rollup/rollup-win32-arm64-msvc@4.18.1': optional: true + '@rollup/rollup-win32-arm64-msvc@4.30.1': + optional: true + '@rollup/rollup-win32-ia32-msvc@4.18.1': optional: true + '@rollup/rollup-win32-ia32-msvc@4.30.1': + optional: true + '@rollup/rollup-win32-x64-msvc@4.18.1': optional: true - '@rushstack/eslint-patch@1.10.3': {} + '@rollup/rollup-win32-x64-msvc@4.30.1': + optional: true '@sindresorhus/slugify@2.2.1': dependencies: @@ -7158,23 +5853,6 @@ snapshots: '@tanstack/virtual-core@3.8.3': {} - '@testing-library/dom@8.20.1': - dependencies: - '@babel/code-frame': 7.24.7 - '@babel/runtime': 7.24.8 - '@types/aria-query': 5.0.4 - aria-query: 5.1.3 - chalk: 4.1.2 - dom-accessibility-api: 0.5.16 - lz-string: 1.5.0 - pretty-format: 27.5.1 - - '@types/acorn@4.0.6': - dependencies: - '@types/estree': 1.0.5 - - '@types/aria-query@5.0.4': {} - '@types/bcryptjs@2.4.6': {} '@types/better-sqlite3@7.6.11': @@ -7189,30 +5867,16 @@ snapshots: '@types/cookie@0.6.0': {} - '@types/debug@4.1.12': - dependencies: - '@types/ms': 0.7.34 - - '@types/estree-jsx@1.0.5': - dependencies: - '@types/estree': 1.0.5 - '@types/estree@1.0.5': {} + '@types/estree@1.0.6': {} + '@types/gunzip-maybe@1.4.2': dependencies: '@types/node': 18.19.39 - '@types/hast@2.3.10': - dependencies: - '@types/unist': 2.0.10 - '@types/js-yaml@4.0.9': {} - '@types/json-schema@7.0.15': {} - - '@types/json5@0.0.29': {} - '@types/linkify-it@5.0.0': optional: true @@ -7224,21 +5888,9 @@ snapshots: '@types/marked@4.3.2': {} - '@types/mdast@3.0.15': - dependencies: - '@types/unist': 2.0.10 - '@types/mdurl@2.0.0': optional: true - '@types/mdx@2.0.13': {} - - '@types/ms@0.7.34': {} - - '@types/node-forge@1.3.11': - dependencies: - '@types/node': 18.19.39 - '@types/node@12.20.55': {} '@types/node@18.19.39': @@ -7271,208 +5923,14 @@ snapshots: dependencies: '@types/node': 18.19.39 - '@types/unist@2.0.10': {} - '@types/yargs-parser@21.0.3': {} '@types/yargs@17.0.32': dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.26.0)(typescript@5.5.3))(eslint@8.26.0)(typescript@5.5.3)': - dependencies: - '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 5.62.0(eslint@8.26.0)(typescript@5.5.3) - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.26.0)(typescript@5.5.3) - '@typescript-eslint/utils': 5.62.0(eslint@8.26.0)(typescript@5.5.3) - debug: 4.3.5 - eslint: 8.26.0 - graphemer: 1.4.0 - ignore: 5.3.1 - natural-compare-lite: 1.4.0 - semver: 7.6.2 - tsutils: 3.21.0(typescript@5.5.3) - optionalDependencies: - typescript: 5.5.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3)': - dependencies: - '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.5.3) - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.0)(typescript@5.5.3) - '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.5.3) - debug: 4.3.5 - eslint: 8.57.0 - graphemer: 1.4.0 - ignore: 5.3.1 - natural-compare-lite: 1.4.0 - semver: 7.6.2 - tsutils: 3.21.0(typescript@5.5.3) - optionalDependencies: - typescript: 5.5.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@5.62.0(eslint@8.26.0)(typescript@5.5.3)': - dependencies: - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.5.3) - debug: 4.3.5 - eslint: 8.26.0 - optionalDependencies: - typescript: 5.5.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.3)': - dependencies: - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.5.3) - debug: 4.3.5 - eslint: 8.57.0 - optionalDependencies: - typescript: 5.5.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@5.62.0': - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - - '@typescript-eslint/type-utils@5.62.0(eslint@8.26.0)(typescript@5.5.3)': - dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.5.3) - '@typescript-eslint/utils': 5.62.0(eslint@8.26.0)(typescript@5.5.3) - debug: 4.3.5 - eslint: 8.26.0 - tsutils: 3.21.0(typescript@5.5.3) - optionalDependencies: - typescript: 5.5.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/type-utils@5.62.0(eslint@8.57.0)(typescript@5.5.3)': - dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.5.3) - '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.5.3) - debug: 4.3.5 - eslint: 8.57.0 - tsutils: 3.21.0(typescript@5.5.3) - optionalDependencies: - typescript: 5.5.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@5.62.0': {} - - '@typescript-eslint/typescript-estree@5.62.0(typescript@5.5.3)': - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.5 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.6.2 - tsutils: 3.21.0(typescript@5.5.3) - optionalDependencies: - typescript: 5.5.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@5.62.0(eslint@8.26.0)(typescript@5.5.3)': - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.26.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.5.3) - eslint: 8.26.0 - eslint-scope: 5.1.1 - semver: 7.6.2 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.5.3)': - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.5.3) - eslint: 8.57.0 - eslint-scope: 5.1.1 - semver: 7.6.2 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/visitor-keys@5.62.0': - dependencies: - '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.3 - '@ungap/structured-clone@1.2.0': {} - '@vanilla-extract/babel-plugin-debug-ids@1.0.6': - dependencies: - '@babel/core': 7.24.8 - transitivePeerDependencies: - - supports-color - - '@vanilla-extract/css@1.15.3': - dependencies: - '@emotion/hash': 0.9.1 - '@vanilla-extract/private': 1.0.5 - css-what: 6.1.0 - cssesc: 3.0.0 - csstype: 3.1.3 - dedent: 1.5.3 - deep-object-diff: 1.1.9 - deepmerge: 4.3.1 - media-query-parser: 2.0.2 - modern-ahocorasick: 1.0.1 - picocolors: 1.0.1 - transitivePeerDependencies: - - babel-plugin-macros - - '@vanilla-extract/integration@6.5.0(@types/node@18.19.39)': - dependencies: - '@babel/core': 7.24.8 - '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.8) - '@vanilla-extract/babel-plugin-debug-ids': 1.0.6 - '@vanilla-extract/css': 1.15.3 - esbuild: 0.17.19 - eval: 0.1.8 - find-up: 5.0.0 - javascript-stringify: 2.1.0 - lodash: 4.17.21 - mlly: 1.7.1 - outdent: 0.8.0 - vite: 5.3.4(@types/node@18.19.39) - vite-node: 1.6.0(@types/node@18.19.39) - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - '@vanilla-extract/private@1.0.5': {} - '@vitest/expect@0.28.5': dependencies: '@vitest/spy': 0.28.5 @@ -7499,18 +5957,6 @@ snapshots: '@web3-storage/multipart-parser@1.0.0': {} - '@zxing/text-encoding@0.9.0': - optional: true - - abort-controller@3.0.0: - dependencies: - event-target-shim: 5.0.1 - - accepts@1.3.8: - dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 - acorn-jsx@5.3.2(acorn@7.4.1): dependencies: acorn: 7.4.1 @@ -7527,10 +5973,7 @@ snapshots: acorn@8.12.1: {} - aggregate-error@3.1.0: - dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 + acorn@8.14.0: {} ajv@6.12.6: dependencies: @@ -7595,17 +6038,11 @@ snapshots: argparse@2.0.1: {} - aria-query@5.1.3: - dependencies: - deep-equal: 2.2.3 - array-buffer-byte-length@1.0.1: dependencies: call-bind: 1.0.7 is-array-buffer: 3.0.4 - array-flatten@1.1.1: {} - array-includes@3.1.8: dependencies: call-bind: 1.0.7 @@ -7617,24 +6054,6 @@ snapshots: array-union@2.1.0: {} - array.prototype.findlast@1.2.5: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-shim-unscopables: 1.0.2 - - array.prototype.findlastindex@1.2.5: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-shim-unscopables: 1.0.2 - array.prototype.flat@1.3.2: dependencies: call-bind: 1.0.7 @@ -7649,21 +6068,6 @@ snapshots: es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 - array.prototype.toreversed@1.1.2: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-shim-unscopables: 1.0.2 - - array.prototype.tosorted@1.1.4: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - es-shim-unscopables: 1.0.2 - arraybuffer.prototype.slice@1.0.3: dependencies: array-buffer-byte-length: 1.0.1 @@ -7681,12 +6085,8 @@ snapshots: assertion-error@1.1.0: {} - ast-types-flow@0.0.8: {} - astral-regex@2.0.0: {} - astring@1.8.6: {} - autoprefixer@10.4.19(postcss@8.4.39): dependencies: browserslist: 4.23.2 @@ -7701,13 +6101,14 @@ snapshots: dependencies: possible-typed-array-names: 1.0.0 - axe-core@4.9.1: {} - - axobject-query@3.1.1: + babel-dead-code-elimination@1.0.8: dependencies: - deep-equal: 2.2.3 - - bail@2.0.2: {} + '@babel/core': 7.24.8 + '@babel/parser': 7.24.8 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.8 + transitivePeerDependencies: + - supports-color balanced-match@1.0.2: {} @@ -7738,23 +6139,6 @@ snapshots: blake3-wasm@2.1.5: {} - body-parser@1.20.3: - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.13.0 - raw-body: 2.5.2 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 @@ -7790,34 +6174,17 @@ snapshots: dependencies: semver: 7.6.2 - bundle-require@4.2.1(esbuild@0.17.19): + bundle-require@5.1.0(esbuild@0.24.2): dependencies: - esbuild: 0.17.19 + esbuild: 0.24.2 load-tsconfig: 0.2.5 busboy@1.6.0: dependencies: streamsearch: 1.1.0 - bytes@3.1.2: {} - cac@6.7.14: {} - cacache@17.1.4: - dependencies: - '@npmcli/fs': 3.1.1 - fs-minipass: 3.0.3 - glob: 10.4.5 - lru-cache: 7.18.3 - minipass: 7.1.2 - minipass-collect: 1.0.2 - minipass-flush: 1.0.5 - minipass-pipeline: 1.2.4 - p-map: 4.0.0 - ssri: 10.0.6 - tar: 6.2.1 - unique-filename: 3.0.0 - call-bind@1.0.7: dependencies: es-define-property: 1.0.0 @@ -7834,13 +6201,11 @@ snapshots: capnp-ts@0.7.0: dependencies: - debug: 4.3.5 + debug: 4.4.0 tslib: 2.6.3 transitivePeerDependencies: - supports-color - ccount@2.0.1: {} - chai@4.4.1: dependencies: assertion-error: 1.1.0 @@ -7862,14 +6227,6 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - character-entities-html4@2.1.0: {} - - character-entities-legacy@3.0.0: {} - - character-entities@2.0.2: {} - - character-reference-invalid@2.0.1: {} - chardet@0.7.0: {} check-error@1.0.3: @@ -7894,18 +6251,8 @@ snapshots: chownr@1.1.4: {} - chownr@2.0.0: {} - ci-info@3.9.0: {} - clean-stack@2.2.0: {} - - cli-cursor@3.1.0: - dependencies: - restore-cursor: 3.1.0 - - cli-spinners@2.9.2: {} - cli-table3@0.6.5: dependencies: string-width: 4.2.3 @@ -7925,8 +6272,6 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - clone@1.0.4: {} - clsx@1.2.1: {} clsx@2.1.1: {} @@ -7943,8 +6288,6 @@ snapshots: color-name@1.1.4: {} - comma-separated-tokens@2.0.3: {} - commander@4.1.1: {} concat-map@0.0.1: {} @@ -7963,23 +6306,15 @@ snapshots: confbox@0.1.7: {} - content-disposition@0.5.4: - dependencies: - safe-buffer: 5.2.1 + confbox@0.1.8: {} - content-type@1.0.5: {} + consola@3.4.0: {} convert-source-map@2.0.0: {} - cookie-signature@1.0.6: {} - - cookie-signature@1.2.1: {} - cookie@0.5.0: {} - cookie@0.6.0: {} - - cookie@0.7.1: {} + cookie@1.0.2: {} core-util-is@1.0.3: {} @@ -7995,18 +6330,12 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - css-what@6.1.0: {} - cssesc@3.0.0: {} csstype@3.1.3: {} - damerau-levenshtein@1.0.8: {} - data-uri-to-buffer@2.0.2: {} - data-uri-to-buffer@3.0.1: {} - data-view-buffer@1.0.1: dependencies: call-bind: 1.0.7 @@ -8029,23 +6358,13 @@ snapshots: dependencies: '@babel/runtime': 7.24.8 - date-fns@4.1.0: {} - - debug@2.6.9: - dependencies: - ms: 2.0.0 - - debug@3.2.7: - dependencies: - ms: 2.1.3 - debug@4.3.5: dependencies: ms: 2.1.2 - decode-named-character-reference@1.0.2: + debug@4.4.0: dependencies: - character-entities: 2.0.2 + ms: 2.1.3 decompress-response@6.0.0: dependencies: @@ -8057,39 +6376,10 @@ snapshots: dependencies: type-detect: 4.0.8 - deep-equal@2.2.3: - dependencies: - array-buffer-byte-length: 1.0.1 - call-bind: 1.0.7 - es-get-iterator: 1.1.3 - get-intrinsic: 1.2.4 - is-arguments: 1.1.1 - is-array-buffer: 3.0.4 - is-date-object: 1.0.5 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.3 - isarray: 2.0.5 - object-is: 1.1.6 - object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 - side-channel: 1.0.6 - which-boxed-primitive: 1.0.2 - which-collection: 1.0.2 - which-typed-array: 1.1.15 - deep-extend@0.6.0: {} deep-is@0.1.4: {} - deep-object-diff@1.1.9: {} - - deepmerge@4.3.1: {} - - defaults@1.0.4: - dependencies: - clone: 1.0.4 - define-data-property@1.1.4: dependencies: es-define-property: 1.0.0 @@ -8104,12 +6394,6 @@ snapshots: defu@6.1.4: {} - depd@2.0.0: {} - - dequal@2.0.3: {} - - destroy@1.2.0: {} - detect-indent@6.1.0: {} detect-libc@2.0.3: {} @@ -8132,14 +6416,10 @@ snapshots: dependencies: esutils: 2.0.3 - dom-accessibility-api@0.5.16: {} - dotenv@10.0.0: {} dotenv@16.0.3: {} - dotenv@16.4.5: {} - duplexify@3.7.1: dependencies: end-of-stream: 1.4.4 @@ -8149,27 +6429,16 @@ snapshots: eastasianwidth@0.2.0: {} - ee-first@1.1.1: {} - electron-to-chromium@1.4.827: {} emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} - encodeurl@1.0.2: {} - - encodeurl@2.0.0: {} - end-of-stream@1.4.4: dependencies: once: 1.4.0 - enhanced-resolve@5.17.0: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.2.1 - enquirer@2.4.1: dependencies: ansi-colors: 4.1.3 @@ -8232,35 +6501,6 @@ snapshots: es-errors@1.3.0: {} - es-get-iterator@1.1.3: - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 - is-arguments: 1.1.1 - is-map: 2.0.3 - is-set: 2.0.3 - is-string: 1.0.7 - isarray: 2.0.5 - stop-iteration-iterator: 1.0.0 - - es-iterator-helpers@1.0.19: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - es-set-tostringtag: 2.0.3 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - globalthis: 1.0.4 - has-property-descriptors: 1.0.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - internal-slot: 1.0.7 - iterator.prototype: 1.1.2 - safe-array-concat: 1.1.2 - es-module-lexer@1.5.4: {} es-object-atoms@1.0.0: @@ -8283,17 +6523,10 @@ snapshots: is-date-object: 1.0.5 is-symbol: 1.0.4 - esbuild-plugins-node-modules-polyfill@1.6.4(esbuild@0.17.6): - dependencies: - '@jspm/core': 2.0.1 - esbuild: 0.17.6 - local-pkg: 0.5.0 - resolve.exports: 2.0.2 - - esbuild-register@3.5.0(esbuild@0.17.19): + esbuild-register@3.6.0(esbuild@0.24.2): dependencies: - debug: 4.3.5 - esbuild: 0.17.19 + debug: 4.4.0 + esbuild: 0.24.2 transitivePeerDependencies: - supports-color @@ -8322,31 +6555,6 @@ snapshots: '@esbuild/win32-ia32': 0.17.19 '@esbuild/win32-x64': 0.17.19 - esbuild@0.17.6: - optionalDependencies: - '@esbuild/android-arm': 0.17.6 - '@esbuild/android-arm64': 0.17.6 - '@esbuild/android-x64': 0.17.6 - '@esbuild/darwin-arm64': 0.17.6 - '@esbuild/darwin-x64': 0.17.6 - '@esbuild/freebsd-arm64': 0.17.6 - '@esbuild/freebsd-x64': 0.17.6 - '@esbuild/linux-arm': 0.17.6 - '@esbuild/linux-arm64': 0.17.6 - '@esbuild/linux-ia32': 0.17.6 - '@esbuild/linux-loong64': 0.17.6 - '@esbuild/linux-mips64el': 0.17.6 - '@esbuild/linux-ppc64': 0.17.6 - '@esbuild/linux-riscv64': 0.17.6 - '@esbuild/linux-s390x': 0.17.6 - '@esbuild/linux-x64': 0.17.6 - '@esbuild/netbsd-x64': 0.17.6 - '@esbuild/openbsd-x64': 0.17.6 - '@esbuild/sunos-x64': 0.17.6 - '@esbuild/win32-arm64': 0.17.6 - '@esbuild/win32-ia32': 0.17.6 - '@esbuild/win32-x64': 0.17.6 - esbuild@0.18.20: optionalDependencies: '@esbuild/android-arm': 0.18.20 @@ -8398,9 +6606,35 @@ snapshots: '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 - escalade@3.1.2: {} + esbuild@0.24.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.24.2 + '@esbuild/android-arm': 0.24.2 + '@esbuild/android-arm64': 0.24.2 + '@esbuild/android-x64': 0.24.2 + '@esbuild/darwin-arm64': 0.24.2 + '@esbuild/darwin-x64': 0.24.2 + '@esbuild/freebsd-arm64': 0.24.2 + '@esbuild/freebsd-x64': 0.24.2 + '@esbuild/linux-arm': 0.24.2 + '@esbuild/linux-arm64': 0.24.2 + '@esbuild/linux-ia32': 0.24.2 + '@esbuild/linux-loong64': 0.24.2 + '@esbuild/linux-mips64el': 0.24.2 + '@esbuild/linux-ppc64': 0.24.2 + '@esbuild/linux-riscv64': 0.24.2 + '@esbuild/linux-s390x': 0.24.2 + '@esbuild/linux-x64': 0.24.2 + '@esbuild/netbsd-arm64': 0.24.2 + '@esbuild/netbsd-x64': 0.24.2 + '@esbuild/openbsd-arm64': 0.24.2 + '@esbuild/openbsd-x64': 0.24.2 + '@esbuild/sunos-x64': 0.24.2 + '@esbuild/win32-arm64': 0.24.2 + '@esbuild/win32-ia32': 0.24.2 + '@esbuild/win32-x64': 0.24.2 - escape-html@1.0.3: {} + escalade@3.1.2: {} escape-string-regexp@1.0.5: {} @@ -8412,272 +6646,11 @@ snapshots: dependencies: eslint: 7.32.0 - eslint-config-turbo@2.3.0(eslint@7.32.0): + eslint-config-turbo@2.4.0(eslint@7.32.0)(turbo@2.2.3): dependencies: eslint: 7.32.0 - eslint-plugin-turbo: 2.3.0(eslint@7.32.0) - - eslint-import-resolver-node@0.3.7: - dependencies: - debug: 3.2.7 - is-core-module: 2.14.0 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - - eslint-import-resolver-node@0.3.9: - dependencies: - debug: 3.2.7 - is-core-module: 2.14.0 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.26.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.29.1)(eslint@8.26.0): - dependencies: - debug: 4.3.5 - enhanced-resolve: 5.17.0 - eslint: 8.26.0 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@5.62.0(eslint@8.26.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.26.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.26.0)(typescript@5.5.3))(eslint@8.26.0) - fast-glob: 3.3.2 - get-tsconfig: 4.7.5 - is-core-module: 2.14.0 - is-glob: 4.0.3 - transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-node - - eslint-import-resolver-webpack - - supports-color - - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.29.1)(eslint@8.57.0): - dependencies: - debug: 4.3.5 - enhanced-resolve: 5.17.0 - eslint: 8.57.0 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) - fast-glob: 3.3.2 - get-tsconfig: 4.7.5 - is-core-module: 2.14.0 - is-glob: 4.0.3 - transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-node - - eslint-import-resolver-webpack - - supports-color - - eslint-module-utils@2.8.1(@typescript-eslint/parser@5.62.0(eslint@8.26.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.26.0): - dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.26.0)(typescript@5.5.3) - eslint: 8.26.0 - eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.26.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.29.1)(eslint@8.26.0) - transitivePeerDependencies: - - supports-color - - eslint-module-utils@2.8.1(@typescript-eslint/parser@5.62.0(eslint@8.26.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.26.0): - dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.26.0)(typescript@5.5.3) - eslint: 8.26.0 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.26.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.29.1)(eslint@8.26.0) - transitivePeerDependencies: - - supports-color - - eslint-module-utils@2.8.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): - dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.5.3) - eslint: 8.57.0 - eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.29.1)(eslint@8.57.0) - transitivePeerDependencies: - - supports-color - - eslint-module-utils@2.8.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): - dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.5.3) - eslint: 8.57.0 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.29.1)(eslint@8.57.0) - transitivePeerDependencies: - - supports-color - - eslint-plugin-es@3.0.1(eslint@8.26.0): - dependencies: - eslint: 8.26.0 - eslint-utils: 2.1.0 - regexpp: 3.2.0 - - eslint-plugin-es@3.0.1(eslint@8.57.0): - dependencies: - eslint: 8.57.0 - eslint-utils: 2.1.0 - regexpp: 3.2.0 - - eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.26.0)(typescript@5.5.3))(eslint@8.26.0): - dependencies: - array-includes: 3.1.8 - array.prototype.findlastindex: 1.2.5 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.26.0 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@5.62.0(eslint@8.26.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.26.0) - hasown: 2.0.2 - is-core-module: 2.14.0 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.0 - semver: 6.3.1 - tsconfig-paths: 3.15.0 - optionalDependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.26.0)(typescript@5.5.3) - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): - dependencies: - array-includes: 3.1.8 - array.prototype.findlastindex: 1.2.5 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.57.0 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) - hasown: 2.0.2 - is-core-module: 2.14.0 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.0 - semver: 6.3.1 - tsconfig-paths: 3.15.0 - optionalDependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.5.3) - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - eslint-plugin-jest-dom@4.0.3(eslint@8.26.0): - dependencies: - '@babel/runtime': 7.24.8 - '@testing-library/dom': 8.20.1 - eslint: 8.26.0 - requireindex: 1.2.0 - - eslint-plugin-jest-dom@4.0.3(eslint@8.57.0): - dependencies: - '@babel/runtime': 7.24.8 - '@testing-library/dom': 8.20.1 - eslint: 8.57.0 - requireindex: 1.2.0 - - eslint-plugin-jest@26.9.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.26.0)(typescript@5.5.3))(eslint@8.26.0)(typescript@5.5.3))(eslint@8.26.0)(typescript@5.5.3): - dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.26.0)(typescript@5.5.3) - eslint: 8.26.0 - optionalDependencies: - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.26.0)(typescript@5.5.3))(eslint@8.26.0)(typescript@5.5.3) - transitivePeerDependencies: - - supports-color - - typescript - - eslint-plugin-jest@26.9.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3): - dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.5.3) - eslint: 8.57.0 - optionalDependencies: - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3) - transitivePeerDependencies: - - supports-color - - typescript - - eslint-plugin-jsx-a11y@6.9.0(eslint@8.26.0): - dependencies: - aria-query: 5.1.3 - array-includes: 3.1.8 - array.prototype.flatmap: 1.3.2 - ast-types-flow: 0.0.8 - axe-core: 4.9.1 - axobject-query: 3.1.1 - damerau-levenshtein: 1.0.8 - emoji-regex: 9.2.2 - es-iterator-helpers: 1.0.19 - eslint: 8.26.0 - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - language-tags: 1.0.9 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - safe-regex-test: 1.0.3 - string.prototype.includes: 2.0.0 - - eslint-plugin-jsx-a11y@6.9.0(eslint@8.57.0): - dependencies: - aria-query: 5.1.3 - array-includes: 3.1.8 - array.prototype.flatmap: 1.3.2 - ast-types-flow: 0.0.8 - axe-core: 4.9.1 - axobject-query: 3.1.1 - damerau-levenshtein: 1.0.8 - emoji-regex: 9.2.2 - es-iterator-helpers: 1.0.19 - eslint: 8.57.0 - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - language-tags: 1.0.9 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - safe-regex-test: 1.0.3 - string.prototype.includes: 2.0.0 - - eslint-plugin-node@11.1.0(eslint@8.26.0): - dependencies: - eslint: 8.26.0 - eslint-plugin-es: 3.0.1(eslint@8.26.0) - eslint-utils: 2.1.0 - ignore: 5.3.1 - minimatch: 3.1.2 - resolve: 1.22.8 - semver: 6.3.1 - - eslint-plugin-node@11.1.0(eslint@8.57.0): - dependencies: - eslint: 8.57.0 - eslint-plugin-es: 3.0.1(eslint@8.57.0) - eslint-utils: 2.1.0 - ignore: 5.3.1 - minimatch: 3.1.2 - resolve: 1.22.8 - semver: 6.3.1 - - eslint-plugin-react-hooks@4.6.2(eslint@8.26.0): - dependencies: - eslint: 8.26.0 - - eslint-plugin-react-hooks@4.6.2(eslint@8.57.0): - dependencies: - eslint: 8.57.0 + eslint-plugin-turbo: 2.4.0(eslint@7.32.0)(turbo@2.2.3) + turbo: 2.2.3 eslint-plugin-react@7.31.8(eslint@7.32.0): dependencies: @@ -8692,77 +6665,16 @@ snapshots: object.fromentries: 2.0.8 object.hasown: 1.1.4 object.values: 1.2.0 - prop-types: 15.8.1 - resolve: 2.0.0-next.5 - semver: 6.3.1 - string.prototype.matchall: 4.0.11 - - eslint-plugin-react@7.34.4(eslint@8.26.0): - dependencies: - array-includes: 3.1.8 - array.prototype.findlast: 1.2.5 - array.prototype.flatmap: 1.3.2 - array.prototype.toreversed: 1.1.2 - array.prototype.tosorted: 1.1.4 - doctrine: 2.1.0 - es-iterator-helpers: 1.0.19 - eslint: 8.26.0 - estraverse: 5.3.0 - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - minimatch: 3.1.2 - object.entries: 1.1.8 - object.fromentries: 2.0.8 - object.values: 1.2.0 - prop-types: 15.8.1 - resolve: 2.0.0-next.5 - semver: 6.3.1 - string.prototype.matchall: 4.0.11 - string.prototype.repeat: 1.0.0 - - eslint-plugin-react@7.34.4(eslint@8.57.0): - dependencies: - array-includes: 3.1.8 - array.prototype.findlast: 1.2.5 - array.prototype.flatmap: 1.3.2 - array.prototype.toreversed: 1.1.2 - array.prototype.tosorted: 1.1.4 - doctrine: 2.1.0 - es-iterator-helpers: 1.0.19 - eslint: 8.57.0 - estraverse: 5.3.0 - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - minimatch: 3.1.2 - object.entries: 1.1.8 - object.fromentries: 2.0.8 - object.values: 1.2.0 - prop-types: 15.8.1 - resolve: 2.0.0-next.5 - semver: 6.3.1 - string.prototype.matchall: 4.0.11 - string.prototype.repeat: 1.0.0 - - eslint-plugin-testing-library@5.11.1(eslint@8.26.0)(typescript@5.5.3): - dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.26.0)(typescript@5.5.3) - eslint: 8.26.0 - transitivePeerDependencies: - - supports-color - - typescript - - eslint-plugin-testing-library@5.11.1(eslint@8.57.0)(typescript@5.5.3): - dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.5.3) - eslint: 8.57.0 - transitivePeerDependencies: - - supports-color - - typescript + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.11 - eslint-plugin-turbo@2.3.0(eslint@7.32.0): + eslint-plugin-turbo@2.4.0(eslint@7.32.0)(turbo@2.2.3): dependencies: dotenv: 16.0.3 eslint: 7.32.0 + turbo: 2.2.3 eslint-scope@5.1.1: dependencies: @@ -8947,64 +6859,10 @@ snapshots: estraverse@5.3.0: {} - estree-util-attach-comments@2.1.1: - dependencies: - '@types/estree': 1.0.5 - - estree-util-build-jsx@2.2.2: - dependencies: - '@types/estree-jsx': 1.0.5 - estree-util-is-identifier-name: 2.1.0 - estree-walker: 3.0.3 - - estree-util-is-identifier-name@1.1.0: {} - - estree-util-is-identifier-name@2.1.0: {} - - estree-util-to-js@1.2.0: - dependencies: - '@types/estree-jsx': 1.0.5 - astring: 1.8.6 - source-map: 0.7.4 - - estree-util-value-to-estree@1.3.0: - dependencies: - is-plain-obj: 3.0.0 - - estree-util-visit@1.2.1: - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/unist': 2.0.10 - estree-walker@0.6.1: {} - estree-walker@3.0.3: - dependencies: - '@types/estree': 1.0.5 - esutils@2.0.3: {} - etag@1.8.1: {} - - eval@0.1.8: - dependencies: - '@types/node': 18.19.39 - require-like: 0.1.2 - - event-target-shim@5.0.1: {} - - execa@5.1.1: - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - execa@6.1.0: dependencies: cross-spawn: 7.0.3 @@ -9021,44 +6879,6 @@ snapshots: expand-template@2.0.3: {} - express@4.21.1: - dependencies: - accepts: 1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.3 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookie: 0.7.1 - cookie-signature: 1.0.6 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: 2.0.0 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 1.3.1 - fresh: 0.5.2 - http-errors: 2.0.0 - merge-descriptors: 1.0.3 - methods: 1.1.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - path-to-regexp: 0.1.10 - proxy-addr: 2.0.7 - qs: 6.13.0 - range-parser: 1.2.1 - safe-buffer: 5.2.1 - send: 0.19.0 - serve-static: 1.16.2 - setprototypeof: 1.2.0 - statuses: 2.0.1 - type-is: 1.6.18 - utils-merge: 1.0.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - - extend@3.0.2: {} - extendable-error@0.1.7: {} external-editor@3.1.0: @@ -9087,9 +6907,9 @@ snapshots: dependencies: reusify: 1.0.4 - fault@2.0.1: - dependencies: - format: 0.2.2 + fdir@6.4.3(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 file-entry-cache@6.0.1: dependencies: @@ -9101,18 +6921,6 @@ snapshots: dependencies: to-regex-range: 5.0.1 - finalhandler@1.3.1: - dependencies: - debug: 2.6.9 - encodeurl: 2.0.0 - escape-html: 1.0.3 - on-finished: 2.4.1 - parseurl: 1.3.3 - statuses: 2.0.1 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - find-up@4.1.0: dependencies: locate-path: 5.0.0 @@ -9147,14 +6955,8 @@ snapshots: cross-spawn: 7.0.3 signal-exit: 4.1.0 - format@0.2.2: {} - - forwarded@0.2.0: {} - fraction.js@4.3.7: {} - fresh@0.5.2: {} - fs-constants@1.0.0: {} fs-extra@10.1.0: @@ -9175,14 +6977,6 @@ snapshots: jsonfile: 4.0.0 universalify: 0.1.2 - fs-minipass@2.1.0: - dependencies: - minipass: 3.3.6 - - fs-minipass@3.0.3: - dependencies: - minipass: 7.1.2 - fs.realpath@1.0.0: {} fsevents@2.3.3: @@ -9201,10 +6995,6 @@ snapshots: functions-have-names@1.2.3: {} - generic-names@4.0.0: - dependencies: - loader-utils: 3.3.1 - gensync@1.0.0-beta.2: {} get-caller-file@2.0.5: {} @@ -9219,8 +7009,6 @@ snapshots: has-symbols: 1.0.3 hasown: 2.0.2 - get-port@5.1.1: {} - get-source@2.0.12: dependencies: data-uri-to-buffer: 2.0.2 @@ -9234,10 +7022,6 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.2.4 - get-tsconfig@4.7.5: - dependencies: - resolve-pkg-maps: 1.0.0 - github-from-package@0.0.0: {} glob-parent@5.1.2: @@ -9331,56 +7115,20 @@ snapshots: dependencies: function-bind: 1.1.2 - hast-util-to-estree@2.3.3: - dependencies: - '@types/estree': 1.0.5 - '@types/estree-jsx': 1.0.5 - '@types/hast': 2.3.10 - '@types/unist': 2.0.10 - comma-separated-tokens: 2.0.3 - estree-util-attach-comments: 2.1.1 - estree-util-is-identifier-name: 2.1.0 - hast-util-whitespace: 2.0.1 - mdast-util-mdx-expression: 1.3.2 - mdast-util-mdxjs-esm: 1.3.1 - property-information: 6.5.0 - space-separated-tokens: 2.0.2 - style-to-object: 0.4.4 - unist-util-position: 4.0.4 - zwitch: 2.0.4 - transitivePeerDependencies: - - supports-color - - hast-util-whitespace@2.0.1: {} - highlight.js@11.10.0: {} hosted-git-info@6.1.1: dependencies: lru-cache: 7.18.3 - http-errors@2.0.0: - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - human-id@1.0.2: {} - human-signals@2.1.0: {} - human-signals@3.0.1: {} iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - ieee754@1.2.1: {} ignore@4.0.6: {} @@ -9394,8 +7142,6 @@ snapshots: imurmurhash@0.1.4: {} - indent-string@4.0.0: {} - inflight@1.0.6: dependencies: once: 1.4.0 @@ -9405,37 +7151,17 @@ snapshots: ini@1.3.8: {} - inline-style-parser@0.1.1: {} - internal-slot@1.0.7: dependencies: es-errors: 1.3.0 hasown: 2.0.2 side-channel: 1.0.6 - ipaddr.js@1.9.1: {} - - is-alphabetical@2.0.1: {} - - is-alphanumerical@2.0.1: - dependencies: - is-alphabetical: 2.0.1 - is-decimal: 2.0.1 - - is-arguments@1.1.1: - dependencies: - call-bind: 1.0.7 - has-tostringtag: 1.0.2 - is-array-buffer@3.0.4: dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 - is-async-function@2.0.0: - dependencies: - has-tostringtag: 1.0.2 - is-bigint@1.0.4: dependencies: has-bigints: 1.0.2 @@ -9449,8 +7175,6 @@ snapshots: call-bind: 1.0.7 has-tostringtag: 1.0.2 - is-buffer@2.0.5: {} - is-callable@1.2.7: {} is-core-module@2.14.0: @@ -9465,36 +7189,20 @@ snapshots: dependencies: has-tostringtag: 1.0.2 - is-decimal@2.0.1: {} - is-deflate@1.0.0: {} is-extglob@2.1.1: {} - is-finalizationregistry@1.0.2: - dependencies: - call-bind: 1.0.7 - is-fullwidth-code-point@3.0.0: {} is-fullwidth-code-point@4.0.0: {} - is-generator-function@1.0.10: - dependencies: - has-tostringtag: 1.0.2 - is-glob@4.0.3: dependencies: is-extglob: 2.1.1 is-gzip@1.0.0: {} - is-hexadecimal@2.0.1: {} - - is-interactive@1.0.0: {} - - is-map@2.0.3: {} - is-negative-zero@2.0.3: {} is-number-object@1.0.7: @@ -9505,27 +7213,15 @@ snapshots: is-path-inside@3.0.3: {} - is-plain-obj@3.0.0: {} - - is-plain-obj@4.1.0: {} - - is-reference@3.0.2: - dependencies: - '@types/estree': 1.0.5 - is-regex@1.1.4: dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.2 - is-set@2.0.3: {} - is-shared-array-buffer@1.0.3: dependencies: call-bind: 1.0.7 - is-stream@2.0.1: {} - is-stream@3.0.0: {} is-string@1.0.7: @@ -9544,19 +7240,10 @@ snapshots: dependencies: which-typed-array: 1.1.15 - is-unicode-supported@0.1.0: {} - - is-weakmap@2.0.2: {} - is-weakref@1.0.2: dependencies: call-bind: 1.0.7 - is-weakset@2.0.3: - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - is-windows@1.0.2: {} isarray@1.0.0: {} @@ -9565,28 +7252,16 @@ snapshots: isbot@5.1.14: {} - isbot@5.1.17: {} + isbot@5.1.22: {} isexe@2.0.0: {} - iterator.prototype@1.1.2: - dependencies: - define-properties: 1.2.1 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 - reflect.getprototypeof: 1.0.6 - set-function-name: 2.0.2 - - itty-time@1.0.6: {} - jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 - javascript-stringify@2.1.0: {} - jiti@1.21.6: {} joycon@3.1.1: {} @@ -9618,10 +7293,6 @@ snapshots: json-stable-stringify-without-jsonify@1.0.1: {} - json5@1.0.2: - dependencies: - minimist: 1.2.8 - json5@2.2.3: {} jsonfile@4.0.0: @@ -9647,12 +7318,6 @@ snapshots: kleur@4.1.5: {} - language-subtag-registry@0.3.23: {} - - language-tags@1.0.9: - dependencies: - language-subtag-registry: 0.3.23 - levn@0.4.1: dependencies: prelude-ls: 1.2.1 @@ -9673,15 +7338,8 @@ snapshots: pify: 4.0.1 strip-bom: 3.0.0 - loader-utils@3.3.1: {} - local-pkg@0.4.3: {} - local-pkg@0.5.0: - dependencies: - mlly: 1.7.1 - pkg-types: 1.1.3 - locate-path@5.0.0: dependencies: p-locate: 4.1.0 @@ -9690,12 +7348,8 @@ snapshots: dependencies: p-locate: 5.0.0 - lodash.camelcase@4.3.0: {} - lodash.castarray@4.4.0: {} - lodash.debounce@4.0.8: {} - lodash.isplainobject@4.0.6: {} lodash.merge@4.6.2: {} @@ -9708,13 +7362,6 @@ snapshots: lodash@4.17.21: {} - log-symbols@4.1.0: - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - - longest-streak@3.1.0: {} - loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 @@ -9736,386 +7383,40 @@ snapshots: lru-cache@7.18.3: {} - lz-string@1.5.0: {} - magic-string@0.25.9: dependencies: sourcemap-codec: 1.4.8 - markdown-extensions@1.1.1: {} - marked@4.3.0: {} - mdast-util-definitions@5.1.2: - dependencies: - '@types/mdast': 3.0.15 - '@types/unist': 2.0.10 - unist-util-visit: 4.1.2 - - mdast-util-from-markdown@1.3.1: - dependencies: - '@types/mdast': 3.0.15 - '@types/unist': 2.0.10 - decode-named-character-reference: 1.0.2 - mdast-util-to-string: 3.2.0 - micromark: 3.2.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-decode-string: 1.1.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - unist-util-stringify-position: 3.0.3 - uvu: 0.5.6 - transitivePeerDependencies: - - supports-color - - mdast-util-frontmatter@1.0.1: - dependencies: - '@types/mdast': 3.0.15 - mdast-util-to-markdown: 1.5.0 - micromark-extension-frontmatter: 1.1.1 - - mdast-util-mdx-expression@1.3.2: - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 2.3.10 - '@types/mdast': 3.0.15 - mdast-util-from-markdown: 1.3.1 - mdast-util-to-markdown: 1.5.0 - transitivePeerDependencies: - - supports-color - - mdast-util-mdx-jsx@2.1.4: - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 2.3.10 - '@types/mdast': 3.0.15 - '@types/unist': 2.0.10 - ccount: 2.0.1 - mdast-util-from-markdown: 1.3.1 - mdast-util-to-markdown: 1.5.0 - parse-entities: 4.0.1 - stringify-entities: 4.0.4 - unist-util-remove-position: 4.0.2 - unist-util-stringify-position: 3.0.3 - vfile-message: 3.1.4 - transitivePeerDependencies: - - supports-color - - mdast-util-mdx@2.0.1: - dependencies: - mdast-util-from-markdown: 1.3.1 - mdast-util-mdx-expression: 1.3.2 - mdast-util-mdx-jsx: 2.1.4 - mdast-util-mdxjs-esm: 1.3.1 - mdast-util-to-markdown: 1.5.0 - transitivePeerDependencies: - - supports-color - - mdast-util-mdxjs-esm@1.3.1: - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 2.3.10 - '@types/mdast': 3.0.15 - mdast-util-from-markdown: 1.3.1 - mdast-util-to-markdown: 1.5.0 - transitivePeerDependencies: - - supports-color - - mdast-util-phrasing@3.0.1: - dependencies: - '@types/mdast': 3.0.15 - unist-util-is: 5.2.1 - - mdast-util-to-hast@12.3.0: - dependencies: - '@types/hast': 2.3.10 - '@types/mdast': 3.0.15 - mdast-util-definitions: 5.1.2 - micromark-util-sanitize-uri: 1.2.0 - trim-lines: 3.0.1 - unist-util-generated: 2.0.1 - unist-util-position: 4.0.4 - unist-util-visit: 4.1.2 - - mdast-util-to-markdown@1.5.0: - dependencies: - '@types/mdast': 3.0.15 - '@types/unist': 2.0.10 - longest-streak: 3.1.0 - mdast-util-phrasing: 3.0.1 - mdast-util-to-string: 3.2.0 - micromark-util-decode-string: 1.1.0 - unist-util-visit: 4.1.2 - zwitch: 2.0.4 - - mdast-util-to-string@3.2.0: - dependencies: - '@types/mdast': 3.0.15 - - media-query-parser@2.0.2: - dependencies: - '@babel/runtime': 7.24.8 - - media-typer@0.3.0: {} - - merge-descriptors@1.0.3: {} - merge-stream@2.0.0: {} merge2@1.4.1: {} - methods@1.1.2: {} - - micromark-core-commonmark@1.1.0: - dependencies: - decode-named-character-reference: 1.0.2 - micromark-factory-destination: 1.1.0 - micromark-factory-label: 1.1.0 - micromark-factory-space: 1.1.0 - micromark-factory-title: 1.1.0 - micromark-factory-whitespace: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-chunked: 1.1.0 - micromark-util-classify-character: 1.1.0 - micromark-util-html-tag-name: 1.2.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-resolve-all: 1.1.0 - micromark-util-subtokenize: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - - micromark-extension-frontmatter@1.1.1: - dependencies: - fault: 2.0.1 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - - micromark-extension-mdx-expression@1.0.8: - dependencies: - '@types/estree': 1.0.5 - micromark-factory-mdx-expression: 1.0.9 - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-events-to-acorn: 1.2.3 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - - micromark-extension-mdx-jsx@1.0.5: - dependencies: - '@types/acorn': 4.0.6 - '@types/estree': 1.0.5 - estree-util-is-identifier-name: 2.1.0 - micromark-factory-mdx-expression: 1.0.9 - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - vfile-message: 3.1.4 - - micromark-extension-mdx-md@1.0.1: - dependencies: - micromark-util-types: 1.1.0 - - micromark-extension-mdxjs-esm@1.0.5: - dependencies: - '@types/estree': 1.0.5 - micromark-core-commonmark: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-events-to-acorn: 1.2.3 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - unist-util-position-from-estree: 1.1.2 - uvu: 0.5.6 - vfile-message: 3.1.4 - - micromark-extension-mdxjs@1.0.1: - dependencies: - acorn: 8.12.1 - acorn-jsx: 5.3.2(acorn@8.12.1) - micromark-extension-mdx-expression: 1.0.8 - micromark-extension-mdx-jsx: 1.0.5 - micromark-extension-mdx-md: 1.0.1 - micromark-extension-mdxjs-esm: 1.0.5 - micromark-util-combine-extensions: 1.1.0 - micromark-util-types: 1.1.0 - - micromark-factory-destination@1.1.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - - micromark-factory-label@1.1.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - - micromark-factory-mdx-expression@1.0.9: - dependencies: - '@types/estree': 1.0.5 - micromark-util-character: 1.2.0 - micromark-util-events-to-acorn: 1.2.3 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - unist-util-position-from-estree: 1.1.2 - uvu: 0.5.6 - vfile-message: 3.1.4 - - micromark-factory-space@1.1.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-types: 1.1.0 - - micromark-factory-title@1.1.0: - dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - - micromark-factory-whitespace@1.1.0: - dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - - micromark-util-character@1.2.0: - dependencies: - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - - micromark-util-chunked@1.1.0: - dependencies: - micromark-util-symbol: 1.1.0 - - micromark-util-classify-character@1.1.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - - micromark-util-combine-extensions@1.1.0: - dependencies: - micromark-util-chunked: 1.1.0 - micromark-util-types: 1.1.0 - - micromark-util-decode-numeric-character-reference@1.1.0: - dependencies: - micromark-util-symbol: 1.1.0 - - micromark-util-decode-string@1.1.0: - dependencies: - decode-named-character-reference: 1.0.2 - micromark-util-character: 1.2.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-symbol: 1.1.0 - - micromark-util-encode@1.1.0: {} - - micromark-util-events-to-acorn@1.2.3: - dependencies: - '@types/acorn': 4.0.6 - '@types/estree': 1.0.5 - '@types/unist': 2.0.10 - estree-util-visit: 1.2.1 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - vfile-message: 3.1.4 - - micromark-util-html-tag-name@1.2.0: {} - - micromark-util-normalize-identifier@1.1.0: - dependencies: - micromark-util-symbol: 1.1.0 - - micromark-util-resolve-all@1.1.0: - dependencies: - micromark-util-types: 1.1.0 - - micromark-util-sanitize-uri@1.2.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-encode: 1.1.0 - micromark-util-symbol: 1.1.0 - - micromark-util-subtokenize@1.1.0: - dependencies: - micromark-util-chunked: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - - micromark-util-symbol@1.1.0: {} - - micromark-util-types@1.1.0: {} - - micromark@3.2.0: - dependencies: - '@types/debug': 4.1.12 - debug: 4.3.5 - decode-named-character-reference: 1.0.2 - micromark-core-commonmark: 1.1.0 - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-chunked: 1.1.0 - micromark-util-combine-extensions: 1.1.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-encode: 1.1.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-resolve-all: 1.1.0 - micromark-util-sanitize-uri: 1.2.0 - micromark-util-subtokenize: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - transitivePeerDependencies: - - supports-color - micromatch@4.0.7: dependencies: braces: 3.0.3 picomatch: 2.3.1 - mime-db@1.52.0: {} - - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 - - mime@1.6.0: {} - - mime@2.6.0: {} - mime@3.0.0: {} - mimic-fn@2.1.0: {} - mimic-fn@4.0.0: {} mimic-response@3.1.0: {} mini-svg-data-uri@1.4.4: {} - miniflare@3.20241205.0: + miniflare@3.20241230.2: dependencies: '@cspotcode/source-map-support': 0.8.1 - acorn: 8.12.1 + acorn: 8.14.0 acorn-walk: 8.3.3 capnp-ts: 0.7.0 exit-hook: 2.2.1 glob-to-regexp: 0.4.1 stoppable: 1.1.0 undici: 5.28.4 - workerd: 1.20241205.0 + workerd: 1.20241230.0 ws: 8.18.0 youch: 3.3.3 zod: 3.23.8 @@ -10128,45 +7429,16 @@ snapshots: dependencies: brace-expansion: 1.1.11 - minimatch@7.4.6: - dependencies: - brace-expansion: 2.0.1 - minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 minimist@1.2.8: {} - minipass-collect@1.0.2: - dependencies: - minipass: 3.3.6 - - minipass-flush@1.0.5: - dependencies: - minipass: 3.3.6 - - minipass-pipeline@1.2.4: - dependencies: - minipass: 3.3.6 - - minipass@3.3.6: - dependencies: - yallist: 4.0.0 - - minipass@5.0.0: {} - minipass@7.1.2: {} - minizlib@2.1.2: - dependencies: - minipass: 3.3.6 - yallist: 4.0.0 - mkdirp-classic@0.5.3: {} - mkdirp@1.0.4: {} - mlly@1.7.1: dependencies: acorn: 8.12.1 @@ -10174,16 +7446,17 @@ snapshots: pkg-types: 1.1.3 ufo: 1.5.4 - modern-ahocorasick@1.0.1: {} + mlly@1.7.4: + dependencies: + acorn: 8.14.0 + pathe: 2.0.2 + pkg-types: 1.3.1 + ufo: 1.5.4 mousetrap@1.6.5: {} mri@1.2.0: {} - mrmime@1.0.1: {} - - ms@2.0.0: {} - ms@2.1.2: {} ms@2.1.3: {} @@ -10200,18 +7473,12 @@ snapshots: napi-build-utils@1.0.2: {} - natural-compare-lite@1.4.0: {} - natural-compare@1.4.0: {} - negotiator@0.6.3: {} - node-abi@3.71.0: dependencies: semver: 7.6.2 - node-forge@1.3.1: {} - node-releases@2.0.14: {} normalize-package-data@5.0.0: @@ -10245,10 +7512,6 @@ snapshots: npm-package-arg: 10.1.0 semver: 7.6.2 - npm-run-path@4.0.1: - dependencies: - path-key: 3.1.1 - npm-run-path@5.3.0: dependencies: path-key: 4.0.0 @@ -10266,11 +7529,6 @@ snapshots: object-inspect@1.13.2: {} - object-is@1.1.6: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - object-keys@1.1.1: {} object.assign@4.1.5: @@ -10293,12 +7551,6 @@ snapshots: es-abstract: 1.23.3 es-object-atoms: 1.0.0 - object.groupby@1.0.3: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - object.hasown@1.1.4: dependencies: define-properties: 1.2.1 @@ -10313,18 +7565,10 @@ snapshots: ohash@1.1.4: {} - on-finished@2.4.1: - dependencies: - ee-first: 1.1.1 - once@1.4.0: dependencies: wrappy: 1.0.2 - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - onetime@6.0.0: dependencies: mimic-fn: 4.0.0 @@ -10338,24 +7582,10 @@ snapshots: type-check: 0.4.0 word-wrap: 1.2.5 - ora@5.4.1: - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.9.2 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - os-tmpdir@1.0.2: {} outdent@0.5.0: {} - outdent@0.8.0: {} - p-filter@2.1.0: dependencies: p-map: 2.1.0 @@ -10382,10 +7612,6 @@ snapshots: p-map@2.1.0: {} - p-map@4.0.0: - dependencies: - aggregate-error: 3.1.0 - p-try@2.2.0: {} package-json-from-dist@1.0.0: {} @@ -10396,23 +7622,8 @@ snapshots: dependencies: callsites: 3.1.0 - parse-entities@4.0.1: - dependencies: - '@types/unist': 2.0.10 - character-entities: 2.0.2 - character-entities-legacy: 3.0.0 - character-reference-invalid: 2.0.1 - decode-named-character-reference: 1.0.2 - is-alphanumerical: 2.0.1 - is-decimal: 2.0.1 - is-hexadecimal: 2.0.1 - - parse-ms@2.1.0: {} - parse-package-name@1.0.0: {} - parseurl@1.3.3: {} - path-exists@4.0.0: {} path-is-absolute@1.0.1: {} @@ -10428,14 +7639,14 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 - path-to-regexp@0.1.10: {} - path-to-regexp@6.3.0: {} path-type@4.0.0: {} pathe@1.1.2: {} + pathe@2.0.2: {} + pathval@1.1.1: {} peek-stream@1.1.3: @@ -10444,17 +7655,13 @@ snapshots: duplexify: 3.7.1 through2: 2.0.5 - periscopic@3.1.0: - dependencies: - '@types/estree': 1.0.5 - estree-walker: 3.0.3 - is-reference: 3.0.2 - picocolors@1.0.1: {} + picocolors@1.1.1: {} + picomatch@2.3.1: {} - pidtree@0.6.0: {} + picomatch@4.0.2: {} pify@2.3.0: {} @@ -10469,17 +7676,19 @@ snapshots: pkg-types@1.1.3: dependencies: confbox: 0.1.7 - mlly: 1.7.1 + mlly: 1.7.4 pathe: 1.1.2 + pkg-types@1.3.1: + dependencies: + confbox: 0.1.8 + mlly: 1.7.4 + pathe: 2.0.2 + pluralize@8.0.0: {} possible-typed-array-names@1.0.0: {} - postcss-discard-duplicates@5.1.0(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - postcss-focus-visible@6.0.4(postcss@8.4.39): dependencies: postcss: 8.4.39 @@ -10504,13 +7713,6 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.4.39 - postcss-load-config@3.1.4(postcss@8.4.39): - dependencies: - lilconfig: 2.1.0 - yaml: 1.10.2 - optionalDependencies: - postcss: 8.4.39 - postcss-load-config@4.0.2(postcss@8.4.39): dependencies: lilconfig: 3.1.2 @@ -10518,38 +7720,13 @@ snapshots: optionalDependencies: postcss: 8.4.39 - postcss-modules-extract-imports@3.1.0(postcss@8.4.39): + postcss-load-config@6.0.1(jiti@1.21.6)(postcss@8.4.39)(yaml@2.4.5): dependencies: + lilconfig: 3.1.2 + optionalDependencies: + jiti: 1.21.6 postcss: 8.4.39 - - postcss-modules-local-by-default@4.0.5(postcss@8.4.39): - dependencies: - icss-utils: 5.1.0(postcss@8.4.39) - postcss: 8.4.39 - postcss-selector-parser: 6.1.1 - postcss-value-parser: 4.2.0 - - postcss-modules-scope@3.2.0(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - postcss-selector-parser: 6.1.1 - - postcss-modules-values@4.0.0(postcss@8.4.39): - dependencies: - icss-utils: 5.1.0(postcss@8.4.39) - postcss: 8.4.39 - - postcss-modules@6.0.0(postcss@8.4.39): - dependencies: - generic-names: 4.0.0 - icss-utils: 5.1.0(postcss@8.4.39) - lodash.camelcase: 4.3.0 - postcss: 8.4.39 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.39) - postcss-modules-local-by-default: 4.0.5(postcss@8.4.39) - postcss-modules-scope: 3.2.0(postcss@8.4.39) - postcss-modules-values: 4.0.0(postcss@8.4.39) - string-hash: 1.1.3 + yaml: 2.4.5 postcss-nested@6.0.1(postcss@8.4.39): dependencies: @@ -10610,10 +7787,6 @@ snapshots: ansi-styles: 5.2.0 react-is: 17.0.2 - pretty-ms@7.0.1: - dependencies: - parse-ms: 2.1.0 - printable-characters@1.0.42: {} prism-react-renderer@2.3.1(react@18.2.0): @@ -10641,13 +7814,6 @@ snapshots: object-assign: 4.1.1 react-is: 16.13.1 - property-information@6.5.0: {} - - proxy-addr@2.0.7: - dependencies: - forwarded: 0.2.0 - ipaddr.js: 1.9.1 - pseudomap@1.0.2: {} pump@2.0.1: @@ -10668,21 +7834,8 @@ snapshots: punycode@2.3.1: {} - qs@6.13.0: - dependencies: - side-channel: 1.0.6 - queue-microtask@1.2.3: {} - range-parser@1.2.1: {} - - raw-body@2.5.2: - dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - rc@1.2.8: dependencies: deep-extend: 0.6.0 @@ -10702,17 +7855,15 @@ snapshots: react-refresh@0.14.2: {} - react-router-dom@6.28.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + react-router@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@remix-run/router': 1.21.0 + '@types/cookie': 0.6.0 + cookie: 1.0.2 react: 18.2.0 + set-cookie-parser: 2.7.1 + turbo-stream: 2.4.0 + optionalDependencies: react-dom: 18.2.0(react@18.2.0) - react-router: 6.28.0(react@18.2.0) - - react-router@6.28.0(react@18.2.0): - dependencies: - '@remix-run/router': 1.21.0 - react: 18.2.0 react@18.2.0: dependencies: @@ -10751,16 +7902,6 @@ snapshots: readdirp@4.0.2: {} - reflect.getprototypeof@1.0.6: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - globalthis: 1.0.4 - which-builtin-type: 1.1.3 - regenerator-runtime@0.14.1: {} regexp.prototype.flags@1.5.2: @@ -10772,58 +7913,14 @@ snapshots: regexpp@3.2.0: {} - remark-frontmatter@4.0.1: - dependencies: - '@types/mdast': 3.0.15 - mdast-util-frontmatter: 1.0.1 - micromark-extension-frontmatter: 1.1.1 - unified: 10.1.2 - - remark-mdx-frontmatter@1.1.1: - dependencies: - estree-util-is-identifier-name: 1.1.0 - estree-util-value-to-estree: 1.3.0 - js-yaml: 4.1.0 - toml: 3.0.0 - - remark-mdx@2.3.0: - dependencies: - mdast-util-mdx: 2.0.1 - micromark-extension-mdxjs: 1.0.1 - transitivePeerDependencies: - - supports-color - - remark-parse@10.0.2: - dependencies: - '@types/mdast': 3.0.15 - mdast-util-from-markdown: 1.3.1 - unified: 10.1.2 - transitivePeerDependencies: - - supports-color - - remark-rehype@10.1.0: - dependencies: - '@types/hast': 2.3.10 - '@types/mdast': 3.0.15 - mdast-util-to-hast: 12.3.0 - unified: 10.1.2 - require-directory@2.1.1: {} require-from-string@2.0.2: {} - require-like@0.1.2: {} - - requireindex@1.2.0: {} - resolve-from@4.0.0: {} resolve-from@5.0.0: {} - resolve-pkg-maps@1.0.0: {} - - resolve.exports@2.0.2: {} - resolve@1.22.8: dependencies: is-core-module: 2.14.0 @@ -10836,11 +7933,6 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - restore-cursor@3.1.0: - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - retry@0.12.0: {} reusify@1.0.4: {} @@ -10889,6 +7981,31 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.18.1 fsevents: 2.3.3 + rollup@4.30.1: + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.30.1 + '@rollup/rollup-android-arm64': 4.30.1 + '@rollup/rollup-darwin-arm64': 4.30.1 + '@rollup/rollup-darwin-x64': 4.30.1 + '@rollup/rollup-freebsd-arm64': 4.30.1 + '@rollup/rollup-freebsd-x64': 4.30.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.30.1 + '@rollup/rollup-linux-arm-musleabihf': 4.30.1 + '@rollup/rollup-linux-arm64-gnu': 4.30.1 + '@rollup/rollup-linux-arm64-musl': 4.30.1 + '@rollup/rollup-linux-loongarch64-gnu': 4.30.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.30.1 + '@rollup/rollup-linux-riscv64-gnu': 4.30.1 + '@rollup/rollup-linux-s390x-gnu': 4.30.1 + '@rollup/rollup-linux-x64-gnu': 4.30.1 + '@rollup/rollup-linux-x64-musl': 4.30.1 + '@rollup/rollup-win32-arm64-msvc': 4.30.1 + '@rollup/rollup-win32-ia32-msvc': 4.30.1 + '@rollup/rollup-win32-x64-msvc': 4.30.1 + fsevents: 2.3.3 + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -10897,10 +8014,6 @@ snapshots: dependencies: tslib: 2.6.3 - sade@1.8.1: - dependencies: - mri: 1.2.0 - safe-array-concat@1.1.2: dependencies: call-bind: 1.0.7 @@ -10926,44 +8039,14 @@ snapshots: search-insights@2.15.0: {} - selfsigned@2.4.1: - dependencies: - '@types/node-forge': 1.3.11 - node-forge: 1.3.1 - semver@6.3.1: {} semver@7.6.2: {} - send@0.19.0: - dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 0.5.2 - http-errors: 2.0.0 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.1 - transitivePeerDependencies: - - supports-color - - serve-static@1.16.2: - dependencies: - encodeurl: 2.0.0 - escape-html: 1.0.3 - parseurl: 1.3.3 - send: 0.19.0 - transitivePeerDependencies: - - supports-color - set-cookie-parser@2.6.0: {} + set-cookie-parser@2.7.1: {} + set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -10980,8 +8063,6 @@ snapshots: functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 - setprototypeof@1.2.0: {} - shebang-command@1.2.0: dependencies: shebang-regex: 1.0.0 @@ -11041,16 +8122,12 @@ snapshots: source-map@0.6.1: {} - source-map@0.7.4: {} - source-map@0.8.0-beta.0: dependencies: whatwg-url: 7.1.0 sourcemap-codec@1.4.8: {} - space-separated-tokens@2.0.2: {} - spawn-command@0.0.2: {} spawndamnit@2.0.0: @@ -11074,10 +8151,6 @@ snapshots: sprintf-js@1.0.3: {} - ssri@10.0.6: - dependencies: - minipass: 7.1.2 - stackback@0.0.2: {} stacktracey@2.1.8: @@ -11085,14 +8158,8 @@ snapshots: as-table: 1.0.55 get-source: 2.0.12 - statuses@2.0.1: {} - std-env@3.7.0: {} - stop-iteration-iterator@1.0.0: - dependencies: - internal-slot: 1.0.7 - stoppable@1.1.0: {} stream-shift@1.0.3: {} @@ -11101,8 +8168,6 @@ snapshots: streamsearch@1.1.0: {} - string-hash@1.1.3: {} - string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -11115,11 +8180,6 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.1.0 - string.prototype.includes@2.0.0: - dependencies: - define-properties: 1.2.1 - es-abstract: 1.23.3 - string.prototype.matchall@4.0.11: dependencies: call-bind: 1.0.7 @@ -11135,11 +8195,6 @@ snapshots: set-function-name: 2.0.2 side-channel: 1.0.6 - string.prototype.repeat@1.0.0: - dependencies: - define-properties: 1.2.1 - es-abstract: 1.23.3 - string.prototype.trim@1.2.9: dependencies: call-bind: 1.0.7 @@ -11167,11 +8222,6 @@ snapshots: dependencies: safe-buffer: 5.2.1 - stringify-entities@4.0.4: - dependencies: - character-entities-html4: 2.1.0 - character-entities-legacy: 3.0.0 - strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 @@ -11182,8 +8232,6 @@ snapshots: strip-bom@3.0.0: {} - strip-final-newline@2.0.0: {} - strip-final-newline@3.0.0: {} strip-json-comments@2.0.1: {} @@ -11194,10 +8242,6 @@ snapshots: dependencies: acorn: 8.12.1 - style-to-object@0.4.4: - dependencies: - inline-style-parser: 0.1.1 - sucrase@3.35.0: dependencies: '@jridgewell/gen-mapping': 0.3.5 @@ -11259,8 +8303,6 @@ snapshots: transitivePeerDependencies: - ts-node - tapable@2.2.1: {} - tar-fs@2.1.1: dependencies: chownr: 1.1.4 @@ -11276,15 +8318,6 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 - tar@6.2.1: - dependencies: - chownr: 2.0.0 - fs-minipass: 2.1.0 - minipass: 5.0.0 - minizlib: 2.1.2 - mkdirp: 1.0.4 - yallist: 4.0.0 - term-size@2.2.1: {} text-table@0.2.0: {} @@ -11312,6 +8345,13 @@ snapshots: tinybench@2.8.0: {} + tinyexec@0.3.2: {} + + tinyglobby@0.2.10: + dependencies: + fdir: 6.4.3(picomatch@4.0.2) + picomatch: 4.0.2 + tinypool@0.3.1: {} tinyspy@1.1.1: {} @@ -11326,70 +8366,46 @@ snapshots: dependencies: is-number: 7.0.0 - toidentifier@1.0.1: {} - - toml@3.0.0: {} - tr46@1.0.1: dependencies: punycode: 2.3.1 tree-kill@1.2.2: {} - trim-lines@3.0.1: {} - - trough@2.2.0: {} - ts-interface-checker@0.1.13: {} - tsconfck@3.1.1(typescript@5.5.3): + tsconfck@3.1.1(typescript@5.7.3): optionalDependencies: - typescript: 5.5.3 - - tsconfig-paths@3.15.0: - dependencies: - '@types/json5': 0.0.29 - json5: 1.0.2 - minimist: 1.2.8 - strip-bom: 3.0.0 - - tsconfig-paths@4.2.0: - dependencies: - json5: 2.2.3 - minimist: 1.2.8 - strip-bom: 3.0.0 - - tslib@1.14.1: {} + typescript: 5.7.3 tslib@2.6.3: {} - tsup@6.7.0(postcss@8.4.39)(typescript@5.5.3): + tsup@8.3.5(jiti@1.21.6)(postcss@8.4.39)(typescript@5.7.3)(yaml@2.4.5): dependencies: - bundle-require: 4.2.1(esbuild@0.17.19) + bundle-require: 5.1.0(esbuild@0.24.2) cac: 6.7.14 - chokidar: 3.6.0 - debug: 4.3.5 - esbuild: 0.17.19 - execa: 5.1.1 - globby: 11.1.0 + chokidar: 4.0.2 + consola: 3.4.0 + debug: 4.4.0 + esbuild: 0.24.2 joycon: 3.1.1 - postcss-load-config: 3.1.4(postcss@8.4.39) + picocolors: 1.1.1 + postcss-load-config: 6.0.1(jiti@1.21.6)(postcss@8.4.39)(yaml@2.4.5) resolve-from: 5.0.0 - rollup: 3.29.4 + rollup: 4.30.1 source-map: 0.8.0-beta.0 sucrase: 3.35.0 + tinyexec: 0.3.2 + tinyglobby: 0.2.10 tree-kill: 1.2.2 optionalDependencies: postcss: 8.4.39 - typescript: 5.5.3 + typescript: 5.7.3 transitivePeerDependencies: + - jiti - supports-color - - ts-node - - tsutils@3.21.0(typescript@5.5.3): - dependencies: - tslib: 1.14.1 - typescript: 5.5.3 + - tsx + - yaml tunnel-agent@0.6.0: dependencies: @@ -11432,11 +8448,6 @@ snapshots: type-fest@0.20.2: {} - type-is@1.6.18: - dependencies: - media-typer: 0.3.0 - mime-types: 2.1.35 - typed-array-buffer@1.0.2: dependencies: call-bind: 1.0.7 @@ -11469,7 +8480,7 @@ snapshots: is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 - typescript@5.5.3: {} + typescript@5.7.3: {} ufo@1.5.4: {} @@ -11492,71 +8503,18 @@ snapshots: undici@6.19.2: {} - unenv-nightly@2.0.0-20241204-140205-a5d5190: + unenv-nightly@2.0.0-20250109-100802-88ad671: dependencies: defu: 6.1.4 + mlly: 1.7.4 ohash: 1.1.4 pathe: 1.1.2 ufo: 1.5.4 - unified@10.1.2: - dependencies: - '@types/unist': 2.0.10 - bail: 2.0.2 - extend: 3.0.2 - is-buffer: 2.0.5 - is-plain-obj: 4.1.0 - trough: 2.2.0 - vfile: 5.3.7 - - unique-filename@3.0.0: - dependencies: - unique-slug: 4.0.0 - - unique-slug@4.0.0: - dependencies: - imurmurhash: 0.1.4 - - unist-util-generated@2.0.1: {} - - unist-util-is@5.2.1: - dependencies: - '@types/unist': 2.0.10 - - unist-util-position-from-estree@1.1.2: - dependencies: - '@types/unist': 2.0.10 - - unist-util-position@4.0.4: - dependencies: - '@types/unist': 2.0.10 - - unist-util-remove-position@4.0.2: - dependencies: - '@types/unist': 2.0.10 - unist-util-visit: 4.1.2 - - unist-util-stringify-position@3.0.3: - dependencies: - '@types/unist': 2.0.10 - - unist-util-visit-parents@5.1.3: - dependencies: - '@types/unist': 2.0.10 - unist-util-is: 5.2.1 - - unist-util-visit@4.1.2: - dependencies: - '@types/unist': 2.0.10 - unist-util-is: 5.2.1 - unist-util-visit-parents: 5.1.3 - universalify@0.1.2: {} universalify@2.0.1: {} - unpipe@1.0.0: {} - update-browserslist-db@1.1.0(browserslist@4.23.2): dependencies: browserslist: 4.23.2 @@ -11571,28 +8529,11 @@ snapshots: util-deprecate@1.0.2: {} - util@0.12.5: - dependencies: - inherits: 2.0.4 - is-arguments: 1.1.1 - is-generator-function: 1.0.10 - is-typed-array: 1.1.13 - which-typed-array: 1.1.15 - - utils-merge@1.0.1: {} - - uvu@0.5.6: - dependencies: - dequal: 2.0.3 - diff: 5.2.0 - kleur: 4.1.5 - sade: 1.8.1 - v8-compile-cache@2.4.0: {} - valibot@0.41.0(typescript@5.5.3): + valibot@0.41.0(typescript@5.7.3): optionalDependencies: - typescript: 5.5.3 + typescript: 5.7.3 validate-npm-package-license@3.0.4: dependencies: @@ -11605,20 +8546,6 @@ snapshots: validate-npm-package-name@5.0.1: {} - vary@1.1.2: {} - - vfile-message@3.1.4: - dependencies: - '@types/unist': 2.0.10 - unist-util-stringify-position: 3.0.3 - - vfile@5.3.7: - dependencies: - '@types/unist': 2.0.10 - is-buffer: 2.0.5 - unist-util-stringify-position: 3.0.3 - vfile-message: 3.1.4 - vite-node@0.28.5(@types/node@18.19.39): dependencies: cac: 6.7.14 @@ -11639,12 +8566,12 @@ snapshots: - supports-color - terser - vite-node@1.6.0(@types/node@18.19.39): + vite-node@3.0.0-beta.2(@types/node@18.19.39): dependencies: cac: 6.7.14 - debug: 4.3.5 + debug: 4.4.0 + es-module-lexer: 1.5.4 pathe: 1.1.2 - picocolors: 1.0.1 vite: 5.3.4(@types/node@18.19.39) transitivePeerDependencies: - '@types/node' @@ -11656,11 +8583,11 @@ snapshots: - supports-color - terser - vite-tsconfig-paths@4.3.2(typescript@5.5.3)(vite@5.3.4(@types/node@18.19.39)): + vite-tsconfig-paths@4.3.2(typescript@5.7.3)(vite@5.3.4(@types/node@18.19.39)): dependencies: debug: 4.3.5 globrex: 0.1.2 - tsconfck: 3.1.1(typescript@5.5.3) + tsconfck: 3.1.1(typescript@5.7.3) optionalDependencies: vite: 5.3.4(@types/node@18.19.39) transitivePeerDependencies: @@ -11720,18 +8647,6 @@ snapshots: - supports-color - terser - wcwidth@1.0.1: - dependencies: - defaults: 1.0.4 - - web-encoding@1.1.5: - dependencies: - util: 0.12.5 - optionalDependencies: - '@zxing/text-encoding': 0.9.0 - - web-streams-polyfill@3.3.3: {} - webidl-conversions@4.0.2: {} whatwg-url@7.1.0: @@ -11748,28 +8663,6 @@ snapshots: is-string: 1.0.7 is-symbol: 1.0.4 - which-builtin-type@1.1.3: - dependencies: - function.prototype.name: 1.1.6 - has-tostringtag: 1.0.2 - is-async-function: 2.0.0 - is-date-object: 1.0.5 - is-finalizationregistry: 1.0.2 - is-generator-function: 1.0.10 - is-regex: 1.1.4 - is-weakref: 1.0.2 - isarray: 2.0.5 - which-boxed-primitive: 1.0.2 - which-collection: 1.0.2 - which-typed-array: 1.1.15 - - which-collection@1.0.2: - dependencies: - is-map: 2.0.3 - is-set: 2.0.3 - is-weakmap: 2.0.2 - is-weakset: 2.0.3 - which-pm@2.2.0: dependencies: load-yaml-file: 0.2.0 @@ -11802,35 +8695,27 @@ snapshots: word-wrap@1.2.5: {} - workerd@1.20241205.0: + workerd@1.20241230.0: optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20241205.0 - '@cloudflare/workerd-darwin-arm64': 1.20241205.0 - '@cloudflare/workerd-linux-64': 1.20241205.0 - '@cloudflare/workerd-linux-arm64': 1.20241205.0 - '@cloudflare/workerd-windows-64': 1.20241205.0 + '@cloudflare/workerd-darwin-64': 1.20241230.0 + '@cloudflare/workerd-darwin-arm64': 1.20241230.0 + '@cloudflare/workerd-linux-64': 1.20241230.0 + '@cloudflare/workerd-linux-arm64': 1.20241230.0 + '@cloudflare/workerd-windows-64': 1.20241230.0 - wrangler@3.96.0(@cloudflare/workers-types@4.20241018.0): + wrangler@3.103.2(@cloudflare/workers-types@4.20250109.0): dependencies: '@cloudflare/kv-asset-handler': 0.3.4 '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19) '@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.17.19) blake3-wasm: 2.1.5 - chokidar: 4.0.2 - date-fns: 4.1.0 esbuild: 0.17.19 - itty-time: 1.0.6 - miniflare: 3.20241205.0 - nanoid: 3.3.7 + miniflare: 3.20241230.2 path-to-regexp: 6.3.0 - resolve: 1.22.8 - selfsigned: 2.4.1 - source-map: 0.6.1 - unenv: unenv-nightly@2.0.0-20241204-140205-a5d5190 - workerd: 1.20241205.0 - xxhash-wasm: 1.0.2 + unenv: unenv-nightly@2.0.0-20250109-100802-88ad671 + workerd: 1.20241230.0 optionalDependencies: - '@cloudflare/workers-types': 4.20241018.0 + '@cloudflare/workers-types': 4.20250109.0 fsevents: 2.3.3 transitivePeerDependencies: - bufferutil @@ -11851,24 +8736,16 @@ snapshots: wrappy@1.0.2: {} - ws@7.5.10: {} - ws@8.18.0: {} xtend@4.0.2: {} - xxhash-wasm@1.0.2: {} - y18n@5.0.8: {} yallist@2.1.2: {} yallist@3.1.1: {} - yallist@4.0.0: {} - - yaml@1.10.2: {} - yaml@2.4.5: {} yargs-parser@21.1.1: {} @@ -11894,5 +8771,3 @@ snapshots: stacktracey: 2.1.8 zod@3.23.8: {} - - zwitch@2.0.4: {} diff --git a/templates/remix/.gitignore b/templates/remix/.gitignore index b702487b..1ffc3d7e 100644 --- a/templates/remix/.gitignore +++ b/templates/remix/.gitignore @@ -8,3 +8,4 @@ node_modules /.wrangler superflare.env.d.ts .dev.vars +.react-router/ diff --git a/templates/remix/README.md b/templates/remix/README.md index 179a49db..a611303c 100644 --- a/templates/remix/README.md +++ b/templates/remix/README.md @@ -1,6 +1,7 @@ -# Superflare + Remix -This is a template for using Superflare + Remix. +# Superflare + React Router + +This is a template for using Superflare + React Router. ```bash npm run dev diff --git a/templates/remix/app/entry.client.tsx b/templates/remix/app/entry.client.tsx deleted file mode 100644 index 94d5dc0d..00000000 --- a/templates/remix/app/entry.client.tsx +++ /dev/null @@ -1,18 +0,0 @@ -/** - * By default, Remix will handle hydrating your app on the client for you. - * You are free to delete this file if you'd like to, but if you ever want it revealed again, you can run `npx remix reveal` ✨ - * For more information, see https://remix.run/file-conventions/entry.client - */ - -import { RemixBrowser } from "@remix-run/react"; -import { startTransition, StrictMode } from "react"; -import { hydrateRoot } from "react-dom/client"; - -startTransition(() => { - hydrateRoot( - document, - - - - ); -}); diff --git a/templates/remix/app/entry.server.tsx b/templates/remix/app/entry.server.tsx index e9bcdda5..dd9530af 100644 --- a/templates/remix/app/entry.server.tsx +++ b/templates/remix/app/entry.server.tsx @@ -4,36 +4,43 @@ * For more information, see https://remix.run/file-conventions/entry.server */ import { renderToReadableStream } from "react-dom/server"; -import { type EntryContext } from "@remix-run/cloudflare"; -import { RemixServer } from "@remix-run/react"; +import { type EntryContext, ServerRouter } from "react-router"; import { isbot } from "isbot"; export default async function handleRequest( request: Request, responseStatusCode: number, responseHeaders: Headers, - remixContext: EntryContext + routerContext: EntryContext ) { + let shellRendered = false; + const userAgent = request.headers.get("user-agent"); + const body = await renderToReadableStream( - , + , { onError(error: unknown) { responseStatusCode = 500; - // Log streaming rendering errors from inside the shell - console.error(error); + // Log streaming rendering errors from inside the shell. Don't log + // errors encountered during initial shell rendering since they'll + // reject and get logged in handleDocumentRequest. + if (shellRendered) { + console.error(error); + } }, - signal: request.signal, } ); + shellRendered = true; - if (isbot(request.headers.get("user-agent") || "")) { + // Ensure requests from bots and SPA Mode renders wait for all content to load before responding + // https://react.dev/reference/react-dom/server/renderToPipeableStream#waiting-for-all-content-to-load-for-crawlers-and-static-generation + if ((userAgent && isbot(userAgent)) || routerContext.isSpaMode) { await body.allReady; } responseHeaders.set("Content-Type", "text/html"); - return new Response(body, { - status: responseStatusCode, headers: responseHeaders, + status: responseStatusCode, }); } diff --git a/templates/remix/app/root.tsx b/templates/remix/app/root.tsx index df63569f..0dfe7996 100644 --- a/templates/remix/app/root.tsx +++ b/templates/remix/app/root.tsx @@ -1,11 +1,11 @@ -import type { MetaFunction } from "@remix-run/cloudflare"; import { + type MetaFunction, Links, Meta, Outlet, Scripts, ScrollRestoration, -} from "@remix-run/react"; +} from "react-router"; export const meta: MetaFunction = () => [ { charset: "utf-8" }, diff --git a/templates/remix/app/routes.ts b/templates/remix/app/routes.ts new file mode 100644 index 00000000..4c05936c --- /dev/null +++ b/templates/remix/app/routes.ts @@ -0,0 +1,4 @@ +import { type RouteConfig } from "@react-router/dev/routes"; +import { flatRoutes } from "@react-router/fs-routes"; + +export default flatRoutes() satisfies RouteConfig; diff --git a/templates/remix/app/routes/_auth.login.tsx b/templates/remix/app/routes/_auth.login.tsx index c4a9b8b3..decaf379 100644 --- a/templates/remix/app/routes/_auth.login.tsx +++ b/templates/remix/app/routes/_auth.login.tsx @@ -1,11 +1,9 @@ -import { Form, Link, useActionData } from "@remix-run/react"; -import { json, redirect, type ActionFunctionArgs } from "@remix-run/cloudflare"; +import { Form, Link, redirect, useActionData } from "react-router"; import { User } from "~/models/User"; -export async function action({ - request, - context: { auth }, -}: ActionFunctionArgs) { +import type { Route } from "./+types/_auth.login"; + +export async function action({ request, context: { auth } }: Route.ActionArgs) { if (await auth.check(User)) { return redirect("/dashboard"); } @@ -18,11 +16,11 @@ export async function action({ return redirect("/dashboard"); } - return json({ error: "Invalid credentials" }, { status: 400 }); + return Response.json({ error: "Invalid credentials" }, { status: 400 }); } export default function Login() { - const actionData = useActionData(); + const actionData = useActionData<{ error: string }>(); return ( diff --git a/templates/remix/app/routes/_auth.logout.ts b/templates/remix/app/routes/_auth.logout.ts index 5c9f9005..651fc63b 100644 --- a/templates/remix/app/routes/_auth.logout.ts +++ b/templates/remix/app/routes/_auth.logout.ts @@ -1,6 +1,8 @@ -import { type ActionFunctionArgs, redirect } from "@remix-run/cloudflare"; +import { redirect } from "react-router"; -export async function action({ context: { auth } }: ActionFunctionArgs) { +import type { Route } from "./+types/_auth.logout"; + +export async function action({ context: { auth } }: Route.ActionArgs) { auth.logout(); return redirect("/"); diff --git a/templates/remix/app/routes/_auth.register.tsx b/templates/remix/app/routes/_auth.register.tsx index 8955e03c..9decd5c8 100644 --- a/templates/remix/app/routes/_auth.register.tsx +++ b/templates/remix/app/routes/_auth.register.tsx @@ -1,12 +1,10 @@ -import { Form, Link, useActionData } from "@remix-run/react"; -import { json, redirect, type ActionFunctionArgs } from "@remix-run/cloudflare"; +import { Form, Link, redirect, useActionData } from "react-router"; import { User } from "~/models/User"; import { hash } from "superflare"; -export async function action({ - request, - context: { auth }, -}: ActionFunctionArgs) { +import type { Route } from "./+types/_auth.register"; + +export async function action({ request, context: { auth } }: Route.ActionArgs) { if (await auth.check(User)) { return redirect("/dashboard"); } @@ -16,7 +14,7 @@ export async function action({ const password = formData.get("password") as string; if (await User.where("email", email).count()) { - return json({ error: "Email already exists" }, { status: 400 }); + return Response.json({ error: "Email already exists" }, { status: 400 }); } const user = await User.create({ @@ -30,7 +28,7 @@ export async function action({ } export default function Register() { - const actionData = useActionData(); + const actionData = useActionData<{ error: string }>(); return ( diff --git a/templates/remix/app/routes/dashboard.tsx b/templates/remix/app/routes/dashboard.tsx index 24ad1538..db7af2ed 100644 --- a/templates/remix/app/routes/dashboard.tsx +++ b/templates/remix/app/routes/dashboard.tsx @@ -1,15 +1,16 @@ -import { type LoaderFunctionArgs, redirect, json } from "@remix-run/cloudflare"; -import { useLoaderData } from "@remix-run/react"; +import { redirect, useLoaderData } from "react-router"; import { User } from "~/models/User"; -export async function loader({ context: { auth } }: LoaderFunctionArgs) { +import type { Route } from "./+types/dashboard"; + +export async function loader({ context: { auth } }: Route.LoaderArgs) { if (!(await auth.check(User))) { return redirect("/login"); } - return json({ + return { user: (await auth.user(User)) as User, - }); + }; } export default function Dashboard() { diff --git a/templates/remix/load-context.ts b/templates/remix/load-context.ts index 1df09185..816f3f41 100644 --- a/templates/remix/load-context.ts +++ b/templates/remix/load-context.ts @@ -1,7 +1,9 @@ import { type Cloudflare } from "@superflare/remix"; -declare module "@remix-run/cloudflare" { +declare module "react-router" { interface AppLoadContext { cloudflare: Cloudflare; } } + +export {}; // necessary for TS to treat this as a module diff --git a/templates/remix/package.json b/templates/remix/package.json index 9bb27124..bd3674c8 100644 --- a/templates/remix/package.json +++ b/templates/remix/package.json @@ -6,28 +6,29 @@ "private": true, "sideEffects": false, "scripts": { - "build": "remix vite:build", - "deploy": "wrangler -j deploy", + "build": "react-router build", + "deploy": "wrangler deploy", "dev": "superflare dev", - "start": "wrangler -j dev", - "typegen": "wrangler -j types", - "typecheck": "tsc" + "start": "wrangler dev", + "typegen": "superflare migrate && wrangler types && react-router typegen", + "typecheck": "react-router typegen && tsc" }, "keywords": [], "license": "MIT", "dependencies": { - "@remix-run/cloudflare": "^2.12.1", - "@remix-run/react": "^2.12.1", + "@react-router/cloudflare": "^7.0.0", + "@react-router/fs-routes": "^7.0.0", "@superflare/remix": "workspace:*", "isbot": "^5.1.13", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-router": "^7.0.0", "superflare": "workspace:*", "tiny-invariant": "^1.3.1" }, "devDependencies": { - "@cloudflare/workers-types": "^4.20241011.0", - "@remix-run/dev": "^2.12.1", + "@cloudflare/workers-types": "^4.20250109.0", + "@react-router/dev": "^7.0.0", "@types/react": "^18.0.28", "@types/react-dom": "^18.0.11", "typescript": "^5", diff --git a/templates/remix/react-router.config.ts b/templates/remix/react-router.config.ts new file mode 100644 index 00000000..04e55c93 --- /dev/null +++ b/templates/remix/react-router.config.ts @@ -0,0 +1,3 @@ +import { type Config } from "@react-router/dev/config"; + +export default { ssr: true } satisfies Config; diff --git a/templates/remix/tsconfig.json b/templates/remix/tsconfig.json index 42d66e8c..92137b02 100644 --- a/templates/remix/tsconfig.json +++ b/templates/remix/tsconfig.json @@ -1,8 +1,18 @@ { - "include": ["worker-configuration.d.ts", "**/*.ts", "**/*.tsx"], + "include": [ + "worker-configuration.d.ts", + "**/*.ts", + "**/*.tsx", + ".react-router/types/**/*" + ], "compilerOptions": { "lib": ["DOM", "DOM.Iterable", "ES2022"], - "types": ["@remix-run/cloudflare", "vite/client"], + "types": [ + "@cloudflare/workers-types", + "@react-router/cloudflare", + "vite/client" + ], + "rootDirs": [".", "./.react-router/types"], "isolatedModules": true, "esModuleInterop": true, "jsx": "react-jsx", @@ -18,7 +28,7 @@ "~/*": ["./app/*"] }, - // Remix takes care of building everything in `remix build`. + // React router takes care of building everything in `react-router build`. "noEmit": true } } diff --git a/templates/remix/vite.config.ts b/templates/remix/vite.config.ts index 9d2c63ec..62ea0fb9 100644 --- a/templates/remix/vite.config.ts +++ b/templates/remix/vite.config.ts @@ -1,19 +1,12 @@ import { defineConfig } from "vite"; -import { vitePlugin as remix } from "@remix-run/dev"; +import { reactRouter } from "@react-router/dev/vite"; import { superflareDevProxyVitePlugin } from "@superflare/remix/dev"; import tsconfigPaths from "vite-tsconfig-paths"; export default defineConfig({ plugins: [ superflareDevProxyVitePlugin(), - remix({ - future: { - v3_fetcherPersist: true, - v3_lazyRouteDiscovery: true, - v3_relativeSplatPath: true, - v3_throwAbortReason: true, - }, - }), + reactRouter(), tsconfigPaths(), ], ssr: { diff --git a/templates/remix/worker.ts b/templates/remix/worker.ts index fca4c943..39da65d6 100644 --- a/templates/remix/worker.ts +++ b/templates/remix/worker.ts @@ -1,4 +1,4 @@ -import { createRequestHandler, type ServerBuild } from "@remix-run/cloudflare"; +import { createRequestHandler, type ServerBuild } from "react-router"; import { handleFetch } from "@superflare/remix"; import { handleQueue, handleScheduled } from "superflare"; import config from "./superflare.config";