From 51390e0547ccf66b834f4a7c10b6a2101b17506a Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Thu, 16 Jan 2025 21:43:29 -0800 Subject: [PATCH 01/29] Cleanup additional defunct JSON config flags follow-up to 905ba4c6cf43de5be83eca5960ff4e182a486152 --- templates/remix/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/remix/package.json b/templates/remix/package.json index 9bb27124..89a9eba4 100644 --- a/templates/remix/package.json +++ b/templates/remix/package.json @@ -7,10 +7,10 @@ "sideEffects": false, "scripts": { "build": "remix vite:build", - "deploy": "wrangler -j deploy", + "deploy": "wrangler deploy", "dev": "superflare dev", - "start": "wrangler -j dev", - "typegen": "wrangler -j types", + "start": "wrangler dev", + "typegen": "wrangler types", "typecheck": "tsc" }, "keywords": [], From c83481976125f77d0d4732f950c635ee7d3202c8 Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Tue, 21 Jan 2025 09:26:59 -0800 Subject: [PATCH 02/29] Apply toJSON() to relations (stop password leak) using serialize skips the potential toJSON() override used to e.g. not include User.password in the serialized form of a User when it is serialized as a relation of another model (e.g. Article in examples/remix-cms) --- packages/superflare/src/model.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/superflare/src/model.ts b/packages/superflare/src/model.ts index 67f645c5..f280f161 100644 --- a/packages/superflare/src/model.ts +++ b/packages/superflare/src/model.ts @@ -220,8 +220,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); } From 80ed4bfc80188888155f350bff5c555a5905cee9 Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Tue, 21 Jan 2025 09:42:06 -0800 Subject: [PATCH 03/29] Add explicit toJSON() method to queries allows for e.g.: const articles = await Article.with("user").orderBy("createdAt", "desc").toJSON(); from a loader to explicitly return the serialized version of a model to provide it to a component. this makes it so that the version of the model that is provided during SSR is exactly equivalent to the version of the model that is made available to the component when rendered on the client. otherwise, the data made available to the component during SSR when using single fetch is the actual model instance. --- packages/superflare/src/query-builder.ts | 9 +++++++++ 1 file changed, 9 insertions(+) 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() From 3e5940367fa17df3af05e1eecc4d6b6b6063cf3e Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Tue, 21 Jan 2025 09:38:30 -0800 Subject: [PATCH 04/29] Add single fetch serialization ownKeys proxy trap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit single fetch uses turbo-stream to serialize data, meaning that model.toJSON() is no longer automatically invoked as was the case with the remix json() helper. turbo-stream’s encode function calls flatten, which defines a partsForObj util that gets called for POJOs and uses Object.keys(): https://github.com/jacob-ebey/turbo-stream/blob/main/src/flatten.ts#L50 customizing ownKeys() to use toJSON() to return the appropriate keys ensures that the object gets serialized by turbo-stream in the form defined by the model ( including any customizations, e.g. the default User model, which removes the password field from the result) however, calling target.toJSON() means that relation field keys are also returned, which causes the relation model name to exist on the model (though undefined). this is why we need to check in the get() proxy trap if the prop is not undefined on target, rather than just check for the existence of the prop in target. --- packages/superflare/src/model.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/superflare/src/model.ts b/packages/superflare/src/model.ts index f280f161..2e34c558 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]; } @@ -59,6 +59,10 @@ export class Model { target.attributes[prop] = value; return true; }, + + ownKeys(target) { + return Object.keys(target.toJSON()); + }, }); } From 4e94c502ca546bcacc7cb7b7a5dd3c715ab7da87 Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Thu, 16 Jan 2025 22:20:17 -0800 Subject: [PATCH 05/29] Migrate to single fetch (prep for rr v7) https://remix.run/docs/en/main/guides/single-fetch --- apps/site/app/root.tsx | 5 ++--- apps/site/app/routes/_index.tsx | 3 +-- apps/site/vite.config.ts | 8 ++++++++ examples/remix-cms/app/routes/admin.tsx | 7 ++----- .../app/routes/admin/articles.$slug.preview.tsx | 4 ++-- .../remix-cms/app/routes/admin/articles.$slug.tsx | 4 ++-- examples/remix-cms/app/routes/admin/articles.tsx | 3 +-- .../app/routes/admin/components/article-form.tsx | 11 +++-------- examples/remix-cms/app/routes/admin/upload.$.ts | 6 ++---- examples/remix-cms/app/routes/auth/login.tsx | 6 +++--- examples/remix-cms/app/routes/auth/register.tsx | 6 +++--- examples/remix-cms/vite.config.ts | 8 ++++++++ packages/superflare/docs/database/relationships.md | 3 +-- packages/superflare/docs/security/authentication.md | 2 +- packages/superflare/docs/sessions.md | 6 +++--- templates/remix/app/routes/_auth.login.tsx | 6 +++--- templates/remix/app/routes/_auth.register.tsx | 6 +++--- templates/remix/app/routes/dashboard.tsx | 6 +++--- templates/remix/vite.config.ts | 8 ++++++++ 19 files changed, 59 insertions(+), 49 deletions(-) diff --git a/apps/site/app/root.tsx b/apps/site/app/root.tsx index 31dfb615..355273a1 100644 --- a/apps/site/app/root.tsx +++ b/apps/site/app/root.tsx @@ -1,5 +1,4 @@ import { - json, type LinksFunction, type MetaFunction, type LoaderFunctionArgs, @@ -46,13 +45,13 @@ export const links: LinksFunction = () => [ ]; export async function loader({ context: { cloudflare } }: LoaderFunctionArgs) { - return json({ + 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/_index.tsx b/apps/site/app/routes/_index.tsx index 6be01456..a8f01ebf 100644 --- a/apps/site/app/routes/_index.tsx +++ b/apps/site/app/routes/_index.tsx @@ -1,5 +1,4 @@ import { - json, type LoaderFunctionArgs, type MetaFunction, } from "@remix-run/cloudflare"; @@ -34,7 +33,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/vite.config.ts b/apps/site/vite.config.ts index eaa5f35a..2d815fce 100644 --- a/apps/site/vite.config.ts +++ b/apps/site/vite.config.ts @@ -5,6 +5,13 @@ import { } from "@remix-run/dev"; import tsconfigPaths from "vite-tsconfig-paths"; +declare module "@remix-run/cloudflare" { + // eslint-disable-next-line @typescript-eslint/consistent-type-definitions + interface Future { + v3_singleFetch: true; + } +} + export default defineConfig({ plugins: [ cloudflareDevProxyVitePlugin(), @@ -13,6 +20,7 @@ export default defineConfig({ v3_fetcherPersist: true, v3_lazyRouteDiscovery: true, v3_relativeSplatPath: true, + v3_singleFetch: true, v3_throwAbortReason: true, }, }), diff --git a/examples/remix-cms/app/routes/admin.tsx b/examples/remix-cms/app/routes/admin.tsx index 593cf6d8..bfc68ffe 100644 --- a/examples/remix-cms/app/routes/admin.tsx +++ b/examples/remix-cms/app/routes/admin.tsx @@ -14,7 +14,7 @@ import { import clsx from "clsx"; import { Link, NavLink, Outlet, useLoaderData } from "@remix-run/react"; import { Toast } from "~/components/Toast"; -import { json, type LoaderFunctionArgs, redirect } from "@remix-run/cloudflare"; +import { type LoaderFunctionArgs, redirect } from "@remix-run/cloudflare"; import { User } from "~/models/User"; const navigation = [ @@ -33,10 +33,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/articles.$slug.preview.tsx b/examples/remix-cms/app/routes/admin/articles.$slug.preview.tsx index b4edd183..8570d78d 100644 --- a/examples/remix-cms/app/routes/admin/articles.$slug.preview.tsx +++ b/examples/remix-cms/app/routes/admin/articles.$slug.preview.tsx @@ -19,10 +19,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.$slug.tsx b/examples/remix-cms/app/routes/admin/articles.$slug.tsx index f7732034..b9d4e2a2 100644 --- a/examples/remix-cms/app/routes/admin/articles.$slug.tsx +++ b/examples/remix-cms/app/routes/admin/articles.$slug.tsx @@ -1,5 +1,5 @@ import { EyeIcon } from "@heroicons/react/24/outline"; -import { json, type LoaderFunctionArgs } from "@remix-run/cloudflare"; +import { type LoaderFunctionArgs } from "@remix-run/cloudflare"; import { useLoaderData, useRevalidator } from "@remix-run/react"; import invariant from "tiny-invariant"; import { Button, SecondaryButton } from "~/components/admin/Button"; @@ -24,7 +24,7 @@ export async function loader({ params }: LoaderFunctionArgs) { SayHelloJob.dispatch(article); - return json({ article }); + return { article }; } export default function NewArticle() { diff --git a/examples/remix-cms/app/routes/admin/articles.tsx b/examples/remix-cms/app/routes/admin/articles.tsx index 91c6ae79..75dd6515 100644 --- a/examples/remix-cms/app/routes/admin/articles.tsx +++ b/examples/remix-cms/app/routes/admin/articles.tsx @@ -1,4 +1,3 @@ -import { json } from "@remix-run/cloudflare"; import { Link, useLoaderData } from "@remix-run/react"; import { Button } from "~/components/admin/Button"; import { Page } from "~/components/admin/Page"; @@ -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/components/article-form.tsx b/examples/remix-cms/app/routes/admin/components/article-form.tsx index 19fde31d..879bfd55 100644 --- a/examples/remix-cms/app/routes/admin/components/article-form.tsx +++ b/examples/remix-cms/app/routes/admin/components/article-form.tsx @@ -1,9 +1,4 @@ -import { - json, - redirect, - type SerializeFrom, - type ActionFunctionArgs, -} from "@remix-run/cloudflare"; +import { redirect, type ActionFunctionArgs } from "@remix-run/cloudflare"; import { Form, useActionData } from "@remix-run/react"; import { Article } from "~/models/Article"; import invariant from "tiny-invariant"; @@ -29,7 +24,7 @@ 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, @@ -110,7 +105,7 @@ export function ArticleForm({ article, id, }: { - article?: SerializeFrom
; + article?: Article; id?: string; }) { const actionData = useActionData(); diff --git a/examples/remix-cms/app/routes/admin/upload.$.ts b/examples/remix-cms/app/routes/admin/upload.$.ts index 66a572e1..60994ba7 100644 --- a/examples/remix-cms/app/routes/admin/upload.$.ts +++ b/examples/remix-cms/app/routes/admin/upload.$.ts @@ -1,4 +1,4 @@ -import { json, type ActionFunctionArgs } from "@remix-run/cloudflare"; +import { type ActionFunctionArgs } from "@remix-run/cloudflare"; import { parseMultipartFormData, storage } from "superflare"; export async function action({ request }: ActionFunctionArgs) { @@ -13,7 +13,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/auth/login.tsx b/examples/remix-cms/app/routes/auth/login.tsx index bb3b5124..397c45e8 100644 --- a/examples/remix-cms/app/routes/auth/login.tsx +++ b/examples/remix-cms/app/routes/auth/login.tsx @@ -1,5 +1,5 @@ +import { redirect, type ActionFunctionArgs } from "@remix-run/cloudflare"; import { Form, Link, useActionData } from "@remix-run/react"; -import { json, redirect, type ActionFunctionArgs } from "@remix-run/cloudflare"; import { Button } from "~/components/admin/Button"; import { FormField } from "~/components/Form"; import { User } from "~/models/User"; @@ -26,11 +26,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/register.tsx b/examples/remix-cms/app/routes/auth/register.tsx index 3ccc8ebc..341b8a79 100644 --- a/examples/remix-cms/app/routes/auth/register.tsx +++ b/examples/remix-cms/app/routes/auth/register.tsx @@ -1,5 +1,5 @@ import { Form, Link, useActionData } from "@remix-run/react"; -import { json, redirect, type ActionFunctionArgs } from "@remix-run/cloudflare"; +import { redirect, type ActionFunctionArgs } from "@remix-run/cloudflare"; import { Button } from "~/components/admin/Button"; import { FormField } from "~/components/Form"; import { User } from "~/models/User"; @@ -19,7 +19,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 +34,7 @@ export async function action({ } export default function Register() { - const actionData = useActionData(); + const actionData = useActionData<{ error: string }>(); return (
diff --git a/examples/remix-cms/vite.config.ts b/examples/remix-cms/vite.config.ts index eee688b5..a51c140d 100644 --- a/examples/remix-cms/vite.config.ts +++ b/examples/remix-cms/vite.config.ts @@ -4,6 +4,13 @@ import { createRoutesFromFolders } from "@remix-run/v1-route-convention"; import { superflareDevProxyVitePlugin } from "@superflare/remix/dev"; import tsconfigPaths from "vite-tsconfig-paths"; +declare module "@remix-run/cloudflare" { + // eslint-disable-next-line @typescript-eslint/consistent-type-definitions + interface Future { + v3_singleFetch: true; + } +} + export default defineConfig({ plugins: [ superflareDevProxyVitePlugin(), @@ -12,6 +19,7 @@ export default defineConfig({ v3_fetcherPersist: true, v3_lazyRouteDiscovery: true, v3_relativeSplatPath: true, + v3_singleFetch: true, v3_throwAbortReason: true, }, // Tell Remix to ignore everything in the routes directory. diff --git a/packages/superflare/docs/database/relationships.md b/packages/superflare/docs/database/relationships.md index 768ee497..a983b1b7 100644 --- a/packages/superflare/docs/database/relationships.md +++ b/packages/superflare/docs/database/relationships.md @@ -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/security/authentication.md b/packages/superflare/docs/security/authentication.md index 5a9f72cd..ab9d38cc 100644 --- a/packages/superflare/docs/security/authentication.md +++ b/packages/superflare/docs/security/authentication.md @@ -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}!` }; } ``` diff --git a/packages/superflare/docs/sessions.md b/packages/superflare/docs/sessions.md index 0fa43068..4eb1fa5f 100644 --- a/packages/superflare/docs/sessions.md +++ b/packages/superflare/docs/sessions.md @@ -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/templates/remix/app/routes/_auth.login.tsx b/templates/remix/app/routes/_auth.login.tsx index c4a9b8b3..1b8161c6 100644 --- a/templates/remix/app/routes/_auth.login.tsx +++ b/templates/remix/app/routes/_auth.login.tsx @@ -1,5 +1,5 @@ import { Form, Link, useActionData } from "@remix-run/react"; -import { json, redirect, type ActionFunctionArgs } from "@remix-run/cloudflare"; +import { redirect, type ActionFunctionArgs } from "@remix-run/cloudflare"; import { User } from "~/models/User"; export async function action({ @@ -18,11 +18,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.register.tsx b/templates/remix/app/routes/_auth.register.tsx index 8955e03c..a17ead1b 100644 --- a/templates/remix/app/routes/_auth.register.tsx +++ b/templates/remix/app/routes/_auth.register.tsx @@ -1,5 +1,5 @@ import { Form, Link, useActionData } from "@remix-run/react"; -import { json, redirect, type ActionFunctionArgs } from "@remix-run/cloudflare"; +import { redirect, type ActionFunctionArgs } from "@remix-run/cloudflare"; import { User } from "~/models/User"; import { hash } from "superflare"; @@ -16,7 +16,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 +30,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..0a383815 100644 --- a/templates/remix/app/routes/dashboard.tsx +++ b/templates/remix/app/routes/dashboard.tsx @@ -1,4 +1,4 @@ -import { type LoaderFunctionArgs, redirect, json } from "@remix-run/cloudflare"; +import { type LoaderFunctionArgs, redirect } from "@remix-run/cloudflare"; import { useLoaderData } from "@remix-run/react"; import { User } from "~/models/User"; @@ -7,9 +7,9 @@ export async function loader({ context: { auth } }: LoaderFunctionArgs) { return redirect("/login"); } - return json({ + return { user: (await auth.user(User)) as User, - }); + }; } export default function Dashboard() { diff --git a/templates/remix/vite.config.ts b/templates/remix/vite.config.ts index 9d2c63ec..2bcb6055 100644 --- a/templates/remix/vite.config.ts +++ b/templates/remix/vite.config.ts @@ -3,6 +3,13 @@ import { vitePlugin as remix } from "@remix-run/dev"; import { superflareDevProxyVitePlugin } from "@superflare/remix/dev"; import tsconfigPaths from "vite-tsconfig-paths"; +declare module "@remix-run/cloudflare" { + // eslint-disable-next-line @typescript-eslint/consistent-type-definitions + interface Future { + v3_singleFetch: true; + } +} + export default defineConfig({ plugins: [ superflareDevProxyVitePlugin(), @@ -11,6 +18,7 @@ export default defineConfig({ v3_fetcherPersist: true, v3_lazyRouteDiscovery: true, v3_relativeSplatPath: true, + v3_singleFetch: true, v3_throwAbortReason: true, }, }), From b63ea4fb7f314691dec0c08a5fcf563a7aa93149 Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Tue, 21 Jan 2025 16:30:05 -0800 Subject: [PATCH 06/29] Refactor Model+QueryBuilder types for single fetch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit • add an IsSingle type argument to QueryBuilder to track if first() has been invoked • add the toJSON method to QueryBuilder • update return types of BaseModel query methods to return a QueryBuilder • update QueryBuilder promise methods (then/catch) to resolve query results based on if IsSingle (i.e. if first() has been invoked) or not --- packages/superflare/index.types.ts | 67 +++++++++++++++++++++--------- 1 file changed, 48 insertions(+), 19 deletions(-) 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; From 185c6cc3611a8badfb0de977235376e6e7281ded Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Tue, 21 Jan 2025 16:38:21 -0800 Subject: [PATCH 07/29] =?UTF-8?q?Remove=20relation=20promise=20union=20?= =?UTF-8?q?=E2=86=92=20improve=20Model=20type?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit this allows proper type checking of resolved instances of the model when using single fetch --- examples/remix-cms/app/models/Article.ts | 2 +- examples/remix-cms/app/models/User.ts | 1 + packages/superflare/docs/database/relationships.md | 12 ++++++------ packages/superflare/tests/model/belongs-to.test.ts | 2 +- 4 files changed, 9 insertions(+), 8 deletions(-) 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/packages/superflare/docs/database/relationships.md b/packages/superflare/docs/database/relationships.md index a983b1b7..a3290f1e 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); } @@ -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); } 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); } From 0007acbdce6185c43c34b0e6bcaaecd288da4a99 Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Fri, 17 Jan 2025 13:42:32 -0800 Subject: [PATCH 08/29] Remove defunct build.d.ts files, add GH env var the placeholder GITHUB_TOKEN in .dev.vars ensures that wrangler includes it in its typegen (worker-configuration.d.ts) --- apps/site/.env.example | 1 + apps/site/types/build.d.ts | 8 -------- apps/site/worker-configuration.d.ts | 1 + examples/remix-cms/types/build.d.ts | 8 -------- 4 files changed, 2 insertions(+), 16 deletions(-) delete mode 100644 apps/site/types/build.d.ts delete mode 100644 examples/remix-cms/types/build.d.ts 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/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/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/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"]; From 8665ffb7ac91362b0dbb4b92b4de9fd9de568b0d Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Tue, 21 Jan 2025 16:14:26 -0800 Subject: [PATCH 09/29] =?UTF-8?q?=F0=9F=93=9D=20Fix=20typos/grammar=20in?= =?UTF-8?q?=20docs=20and=20comments?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/superflare/docs/database/getting-started.md | 2 +- packages/superflare/docs/database/relationships.md | 2 +- packages/superflare/src/model.ts | 2 +- packages/superflare/tests/d1-types.test.ts | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) 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 a3290f1e..18335b4b 100644 --- a/packages/superflare/docs/database/relationships.md +++ b/packages/superflare/docs/database/relationships.md @@ -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: diff --git a/packages/superflare/src/model.ts b/packages/superflare/src/model.ts index 2e34c558..de94d278 100644 --- a/packages/superflare/src/model.ts +++ b/packages/superflare/src/model.ts @@ -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](); } 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" + From 89878fc74012a73c34ea6ea91c3215389962adb4 Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Thu, 6 Feb 2025 18:35:21 -0800 Subject: [PATCH 10/29] Update publish-snapshot.yml to get latest corepack --- .github/workflows/publish-snapshot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 From 962f9114a33326271ea36a5765fc28be3f60832b Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Tue, 21 Jan 2025 16:38:21 -0800 Subject: [PATCH 11/29] =?UTF-8?q?Remove=20relation=20promise=20union=20?= =?UTF-8?q?=E2=86=92=20improve=20Model=20type?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit this allows proper type checking of resolved instances of the model when using single fetch --- examples/remix-cms/app/routes/admin/articles.$slug.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/remix-cms/app/routes/admin/articles.$slug.tsx b/examples/remix-cms/app/routes/admin/articles.$slug.tsx index b9d4e2a2..a679f92a 100644 --- a/examples/remix-cms/app/routes/admin/articles.$slug.tsx +++ b/examples/remix-cms/app/routes/admin/articles.$slug.tsx @@ -21,7 +21,7 @@ export async function loader({ params }: LoaderFunctionArgs) { if (!article) { throw new Response("Not found", { status: 404 }); } - + console.log(article.user.name); SayHelloJob.dispatch(article); return { article }; From 810d971da16009e66639dc6e0ef39d3da47ff397 Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Fri, 17 Jan 2025 14:46:37 -0800 Subject: [PATCH 12/29] Remove deprecated @remix-run/eslint-config --- apps/site/package.json | 1 - examples/remix-cms/.eslintrc.js | 2 +- examples/remix-cms/package.json | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/apps/site/package.json b/apps/site/package.json index 67a71605..a950b27d 100644 --- a/apps/site/package.json +++ b/apps/site/package.json @@ -39,7 +39,6 @@ "devDependencies": { "@cloudflare/workers-types": "^4.20241011.0", "@remix-run/dev": "^2.12.1", - "@remix-run/eslint-config": "^2.12.1", "@types/js-yaml": "^4.0.5", "@types/react": "^18.0.28", "@types/react-dom": "^18.0.11", 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/package.json b/examples/remix-cms/package.json index ccf06027..b6d311cc 100644 --- a/examples/remix-cms/package.json +++ b/examples/remix-cms/package.json @@ -39,7 +39,6 @@ "@cloudflare/workers-types": "^4.20241011.0", "@faker-js/faker": "^7.6.0", "@remix-run/dev": "^2.12.1", - "@remix-run/eslint-config": "^2.12.1", "@tailwindcss/typography": "^0.5.9", "@types/marked": "^4.0.8", "@types/react": "^18.0.28", From 1e38a95a2be1db5abd970f38bd4b9a1ed1c1128e Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Fri, 17 Jan 2025 10:59:07 -0800 Subject: [PATCH 13/29] Migrate examples/remix-cms to RR v7 --- examples/remix-cms/.gitignore | 1 + .../remix-cms/app/components/admin/Button.tsx | 2 +- examples/remix-cms/app/entry.client.tsx | 4 +- examples/remix-cms/app/entry.server.tsx | 7 +- examples/remix-cms/app/root.tsx | 5 +- examples/remix-cms/app/routes.ts | 4 + .../app/routes/{index.tsx => _index.tsx} | 0 .../{admin/index.tsx => admin._index.tsx} | 0 ...ug.tsx => admin.articles.$slug._index.tsx} | 11 +- ...w.tsx => admin.articles.$slug.preview.tsx} | 3 +- ...articles.tsx => admin.articles._index.tsx} | 2 +- ...rticles.new.tsx => admin.articles.new.tsx} | 4 +- .../{admin/profile.tsx => admin.profile.tsx} | 4 +- examples/remix-cms/app/routes/admin.tsx | 10 +- .../{admin/upload.$.ts => admin.upload.$.ts} | 2 +- .../routes/admin/components/article-form.tsx | 8 +- .../routes/{auth/login.tsx => auth.login.tsx} | 9 +- .../routes/{auth/logout.ts => auth.logout.ts} | 2 +- .../{auth/register.tsx => auth.register.tsx} | 9 +- examples/remix-cms/app/routes/auth.tsx | 2 +- examples/remix-cms/app/routes/auth/hooks.ts | 2 +- .../app/routes/channel.$channelName.ts | 2 +- examples/remix-cms/app/routes/storage.$.tsx | 2 +- examples/remix-cms/functions/[[remix]].ts | 13 +- examples/remix-cms/load-context.ts | 14 +- examples/remix-cms/package.json | 14 +- examples/remix-cms/react-router.config.ts | 3 + examples/remix-cms/tsconfig.json | 16 +- examples/remix-cms/vite.config.ts | 30 +-- examples/remix-cms/worker.ts | 2 +- pnpm-lock.yaml | 248 +++++++++++++++--- 31 files changed, 323 insertions(+), 112 deletions(-) create mode 100644 examples/remix-cms/app/routes.ts rename examples/remix-cms/app/routes/{index.tsx => _index.tsx} (100%) rename examples/remix-cms/app/routes/{admin/index.tsx => admin._index.tsx} (100%) rename examples/remix-cms/app/routes/{admin/articles.$slug.tsx => admin.articles.$slug._index.tsx} (85%) rename examples/remix-cms/app/routes/{admin/articles.$slug.preview.tsx => admin.articles.$slug.preview.tsx} (90%) rename examples/remix-cms/app/routes/{admin/articles.tsx => admin.articles._index.tsx} (98%) rename examples/remix-cms/app/routes/{admin/articles.new.tsx => admin.articles.new.tsx} (74%) rename examples/remix-cms/app/routes/{admin/profile.tsx => admin.profile.tsx} (80%) rename examples/remix-cms/app/routes/{admin/upload.$.ts => admin.upload.$.ts} (87%) rename examples/remix-cms/app/routes/{auth/login.tsx => auth.login.tsx} (93%) rename examples/remix-cms/app/routes/{auth/logout.ts => auth.logout.ts} (61%) rename examples/remix-cms/app/routes/{auth/register.tsx => auth.register.tsx} (92%) create mode 100644 examples/remix-cms/react-router.config.ts 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 index 94d5dc0d..e83e552c 100644 --- a/examples/remix-cms/app/entry.client.tsx +++ b/examples/remix-cms/app/entry.client.tsx @@ -4,7 +4,7 @@ * For more information, see https://remix.run/file-conventions/entry.client */ -import { RemixBrowser } from "@remix-run/react"; +import { HydratedRouter } from "react-router/dom"; import { startTransition, StrictMode } from "react"; import { hydrateRoot } from "react-dom/client"; @@ -12,7 +12,7 @@ startTransition(() => { hydrateRoot( document, - + ); }); diff --git a/examples/remix-cms/app/entry.server.tsx b/examples/remix-cms/app/entry.server.tsx index d3c0bbbd..4c44f66c 100644 --- a/examples/remix-cms/app/entry.server.tsx +++ b/examples/remix-cms/app/entry.server.tsx @@ -1,16 +1,15 @@ 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 + reactRouterContext: EntryContext ) { const body = await renderToReadableStream( - , + , { onError(error: unknown) { responseStatusCode = 500; 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 85% rename from examples/remix-cms/app/routes/admin/articles.$slug.tsx rename to examples/remix-cms/app/routes/admin.articles.$slug._index.tsx index a679f92a..d2d14453 100644 --- a/examples/remix-cms/app/routes/admin/articles.$slug.tsx +++ b/examples/remix-cms/app/routes/admin.articles.$slug._index.tsx @@ -1,15 +1,18 @@ import { EyeIcon } from "@heroicons/react/24/outline"; -import { type LoaderFunctionArgs } from "@remix-run/cloudflare"; -import { useLoaderData, useRevalidator } from "@remix-run/react"; +import { + type LoaderFunctionArgs, + 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"; +export { action } from "./admin/components/article-form"; export async function loader({ params }: LoaderFunctionArgs) { const { slug } = params; 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 90% 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 8570d78d..74926b73 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 { type LoaderFunctionArgs, useLoaderData } from "react-router"; import invariant from "tiny-invariant"; import { SecondaryButton } from "~/components/admin/Button"; diff --git a/examples/remix-cms/app/routes/admin/articles.tsx b/examples/remix-cms/app/routes/admin.articles._index.tsx similarity index 98% rename from examples/remix-cms/app/routes/admin/articles.tsx rename to examples/remix-cms/app/routes/admin.articles._index.tsx index 75dd6515..f6db27d8 100644 --- a/examples/remix-cms/app/routes/admin/articles.tsx +++ b/examples/remix-cms/app/routes/admin.articles._index.tsx @@ -1,4 +1,4 @@ -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"; 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 bfc68ffe..1b52c6c5 100644 --- a/examples/remix-cms/app/routes/admin.tsx +++ b/examples/remix-cms/app/routes/admin.tsx @@ -12,9 +12,15 @@ import { XMarkIcon, } from "@heroicons/react/24/outline"; import clsx from "clsx"; -import { Link, NavLink, Outlet, useLoaderData } from "@remix-run/react"; +import { + type LoaderFunctionArgs, + Link, + NavLink, + Outlet, + redirect, + useLoaderData, +} from "react-router"; import { Toast } from "~/components/Toast"; -import { type LoaderFunctionArgs, redirect } from "@remix-run/cloudflare"; import { User } from "~/models/User"; const navigation = [ diff --git a/examples/remix-cms/app/routes/admin/upload.$.ts b/examples/remix-cms/app/routes/admin.upload.$.ts similarity index 87% rename from examples/remix-cms/app/routes/admin/upload.$.ts rename to examples/remix-cms/app/routes/admin.upload.$.ts index 60994ba7..3d4cb07c 100644 --- a/examples/remix-cms/app/routes/admin/upload.$.ts +++ b/examples/remix-cms/app/routes/admin.upload.$.ts @@ -1,4 +1,4 @@ -import { type ActionFunctionArgs } from "@remix-run/cloudflare"; +import { type ActionFunctionArgs } from "react-router"; import { parseMultipartFormData, storage } from "superflare"; export async function action({ request }: ActionFunctionArgs) { 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 879bfd55..9bb25822 100644 --- a/examples/remix-cms/app/routes/admin/components/article-form.tsx +++ b/examples/remix-cms/app/routes/admin/components/article-form.tsx @@ -1,5 +1,9 @@ -import { redirect, type ActionFunctionArgs } from "@remix-run/cloudflare"; -import { Form, useActionData } from "@remix-run/react"; +import { + type ActionFunctionArgs, + Form, + redirect, + useActionData, +} from "react-router"; import { Article } from "~/models/Article"; import invariant from "tiny-invariant"; import { FormField } from "~/components/Form"; diff --git a/examples/remix-cms/app/routes/auth/login.tsx b/examples/remix-cms/app/routes/auth.login.tsx similarity index 93% rename from examples/remix-cms/app/routes/auth/login.tsx rename to examples/remix-cms/app/routes/auth.login.tsx index 397c45e8..c444b4cb 100644 --- a/examples/remix-cms/app/routes/auth/login.tsx +++ b/examples/remix-cms/app/routes/auth.login.tsx @@ -1,5 +1,10 @@ -import { redirect, type ActionFunctionArgs } from "@remix-run/cloudflare"; -import { Form, Link, useActionData } from "@remix-run/react"; +import { + type ActionFunctionArgs, + Form, + Link, + redirect, + useActionData, +} from "react-router"; import { Button } from "~/components/admin/Button"; import { FormField } from "~/components/Form"; import { User } from "~/models/User"; diff --git a/examples/remix-cms/app/routes/auth/logout.ts b/examples/remix-cms/app/routes/auth.logout.ts similarity index 61% rename from examples/remix-cms/app/routes/auth/logout.ts rename to examples/remix-cms/app/routes/auth.logout.ts index 5c9f9005..e93ba8ff 100644 --- a/examples/remix-cms/app/routes/auth/logout.ts +++ b/examples/remix-cms/app/routes/auth.logout.ts @@ -1,4 +1,4 @@ -import { type ActionFunctionArgs, redirect } from "@remix-run/cloudflare"; +import { type ActionFunctionArgs, redirect } from "react-router"; export async function action({ context: { auth } }: ActionFunctionArgs) { auth.logout(); diff --git a/examples/remix-cms/app/routes/auth/register.tsx b/examples/remix-cms/app/routes/auth.register.tsx similarity index 92% rename from examples/remix-cms/app/routes/auth/register.tsx rename to examples/remix-cms/app/routes/auth.register.tsx index 341b8a79..c43a2781 100644 --- a/examples/remix-cms/app/routes/auth/register.tsx +++ b/examples/remix-cms/app/routes/auth.register.tsx @@ -1,5 +1,10 @@ -import { Form, Link, useActionData } from "@remix-run/react"; -import { redirect, type ActionFunctionArgs } from "@remix-run/cloudflare"; +import { + type ActionFunctionArgs, + Form, + Link, + redirect, + useActionData, +} from "react-router"; import { Button } from "~/components/admin/Button"; import { FormField } from "~/components/Form"; import { User } from "~/models/User"; 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/channel.$channelName.ts b/examples/remix-cms/app/routes/channel.$channelName.ts index 7f407f37..7d5e4e64 100644 --- a/examples/remix-cms/app/routes/channel.$channelName.ts +++ b/examples/remix-cms/app/routes/channel.$channelName.ts @@ -1,4 +1,4 @@ -import type { LoaderFunctionArgs } from "@remix-run/cloudflare"; +import type { LoaderFunctionArgs } from "react-router"; import { handleWebSockets } from "superflare"; import { User } from "~/models/User"; diff --git a/examples/remix-cms/app/routes/storage.$.tsx b/examples/remix-cms/app/routes/storage.$.tsx index b4f2489a..c86df267 100644 --- a/examples/remix-cms/app/routes/storage.$.tsx +++ b/examples/remix-cms/app/routes/storage.$.tsx @@ -1,4 +1,4 @@ -import { type LoaderFunctionArgs } from "@remix-run/cloudflare"; +import { type LoaderFunctionArgs } from "react-router"; import { servePublicPathFromStorage } from "superflare"; export async function loader({ request }: LoaderFunctionArgs) { diff --git a/examples/remix-cms/functions/[[remix]].ts b/examples/remix-cms/functions/[[remix]].ts index 72a84613..17cbf41d 100644 --- a/examples/remix-cms/functions/[[remix]].ts +++ b/examples/remix-cms/functions/[[remix]].ts @@ -1,18 +1,15 @@ -import { - createRequestHandler, - createCookieSessionStorage, -} from "@remix-run/cloudflare"; +import { createRequestHandler, createCookieSessionStorage } from "react-router"; import { handleFetch, SuperflareAuth } from "superflare"; import getConfig 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( + if (!handleRequest) { + handleRequest = createRequestHandler( build as any, ctx.env.CF_PAGES ? "production" : "development" ); @@ -41,7 +38,7 @@ export const onRequest: PagesFunction = async (ctx) => { getSessionCookie: () => sessionStorage.commitSession(session), }, () => - remixHandler(ctx.request, { + handleRequest(ctx.request, { auth: new SuperflareAuth(session), session, env: ctx.env, diff --git a/examples/remix-cms/load-context.ts b/examples/remix-cms/load-context.ts index 1df09185..88b0308a 100644 --- a/examples/remix-cms/load-context.ts +++ b/examples/remix-cms/load-context.ts @@ -1,7 +1,19 @@ import { type Cloudflare } from "@superflare/remix"; -declare module "@remix-run/cloudflare" { +declare module "react-router" { interface AppLoadContext { cloudflare: Cloudflare; } + + // TODO: remove this once we've migrated to `Route.LoaderArgs` instead for our loaders + interface LoaderFunctionArgs { + context: AppLoadContext; + } + + // TODO: remove this once we've migrated to `Route.ActionArgs` instead for our actions + interface ActionFunctionArgs { + context: AppLoadContext; + } } + +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 b6d311cc..13ffe088 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" + "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,6 +30,7 @@ "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" @@ -38,7 +38,7 @@ "devDependencies": { "@cloudflare/workers-types": "^4.20241011.0", "@faker-js/faker": "^7.6.0", - "@remix-run/dev": "^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/vite.config.ts b/examples/remix-cms/vite.config.ts index a51c140d..62ea0fb9 100644 --- a/examples/remix-cms/vite.config.ts +++ b/examples/remix-cms/vite.config.ts @@ -1,38 +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"; -declare module "@remix-run/cloudflare" { - // eslint-disable-next-line @typescript-eslint/consistent-type-definitions - interface Future { - v3_singleFetch: true; - } -} - export default defineConfig({ plugins: [ superflareDevProxyVitePlugin(), - remix({ - future: { - v3_fetcherPersist: true, - v3_lazyRouteDiscovery: true, - v3_relativeSplatPath: true, - v3_singleFetch: 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/pnpm-lock.yaml b/pnpm-lock.yaml index 390e43c0..fc07a861 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -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.20241018.0)(react-router@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(tsup@6.7.0(postcss@8.4.39)(typescript@5.5.3))(typescript@5.5.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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20241018.0)))(typescript@5.5.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 @@ -197,9 +197,9 @@ importers: '@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)) + '@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.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) @@ -1574,6 +1574,9 @@ packages: resolution: {integrity: sha512-/TL0np4uYDl+6MdseDApZmDdlJ6Y7AY5iDY0TvUQJG9nyBoCjX6w0Zn4SiKDwO6660rPtSqZ5c7HzbPhGb5vsA==} engines: {node: '>=16.13'} + '@mjackson/node-fetch-server@0.2.0': + resolution: {integrity: sha512-EMlH1e30yzmTpGLQjlFmaDAjyOeZhng1/XCd7DExR8PNAnG/G1tyruZxEoUe11ClnwGhGrtsdnyyUx1frSzjng==} + '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} @@ -1630,6 +1633,56 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.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 + + '@react-router/dev@7.1.2': + resolution: {integrity: sha512-iQ9t0SPEn8CopPOavVlThVG4GySqcQpsFyiyYJWtxzNCUY5wvhtEgSNIzIAD3o9Dv5X3IDfUQY6TvIzVrvFohw==} + engines: {node: '>=20.0.0'} + hasBin: true + peerDependencies: + '@react-router/serve': ^7.1.2 + react-router: ^7.1.2 + typescript: ^5.1.0 + vite: ^5.1.0 || ^6.0.0 + wrangler: ^3.28.2 + peerDependenciesMeta: + '@react-router/serve': + optional: true + typescript: + optional: true + wrangler: + optional: true + + '@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 + + '@react-router/node@7.1.2': + resolution: {integrity: sha512-PYLP0Vg0iE4w8iIHsusjMZx6h2PH2D4xSWQ550bgeW6Gj0JE6haB2HcaThvUyhBnnxZqNOPH335dvn+r76N5gQ==} + engines: {node: '>=20.0.0'} + peerDependencies: + react-router: 7.1.2 + typescript: ^5.1.0 + peerDependenciesMeta: + typescript: + optional: true + '@react-stately/utils@3.10.2': resolution: {integrity: sha512-fh6OTQtbeQC0ywp6LJuuKs6tKIgFvt/DlIZEcIpGho6/oZG229UnIk6TUekwxnDbumuYyan6D9EgUtEMmT8UIg==} peerDependencies: @@ -1715,11 +1768,6 @@ packages: typescript: optional: true - '@remix-run/v1-route-convention@0.1.4': - resolution: {integrity: sha512-fVTr9YlNLWfaiM/6Y56sOtcY8x1bBJQHY0sDWO5+Z/vjJ2Ni7fe2fwrzs1jUFciMPXqBQdFGePnkuiYLz3cuUA==} - peerDependencies: - '@remix-run/dev': ^1.15.0 || ^2.0.0 - '@remix-run/web-blob@3.1.0': resolution: {integrity: sha512-owGzFLbqPH9PlKb8KvpNJ0NO74HWE2euAn61eEiyCXX/oteoVzTVSN8mpLgDjaxBf2btj5/nUllSUgpyd6IH6g==} @@ -2217,6 +2265,9 @@ packages: axobject-query@3.1.1: resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==} + babel-dead-code-elimination@1.0.8: + resolution: {integrity: sha512-og6HQERk0Cmm+nTT4Od2wbPtgABXFMPaHACjbKLulZIFMkYyXZLkUGuAxdgpMJBrxyt/XFpSz++lNzjbcMnPkQ==} + bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} @@ -2472,6 +2523,10 @@ packages: 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==} @@ -2548,6 +2603,15 @@ packages: supports-color: optional: true + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decode-named-character-reference@1.0.2: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} @@ -3975,10 +4039,6 @@ packages: 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'} @@ -4311,6 +4371,9 @@ packages: 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'} @@ -4587,6 +4650,16 @@ packages: peerDependencies: react: '>=16.8' + react-router@7.1.2: + resolution: {integrity: sha512-KeallSO30KLpIe/ZZqfk6pCJ1c+5JhMxl3SCS3Zx1LgaGuQbgLDmjuNi6KZ5LnAV9sWjbmBWGRw8Um/Pw6BExg==} + engines: {node: '>=20.0.0'} + peerDependencies: + react: '>=18' + react-dom: '>=18' + peerDependenciesMeta: + react-dom: + optional: true + react@18.2.0: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} engines: {node: '>=0.10.0'} @@ -5380,6 +5453,11 @@ packages: engines: {node: ^18.0.0 || >=20.0.0} hasBin: true + 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: resolution: {integrity: sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==} peerDependencies: @@ -6772,6 +6850,8 @@ snapshots: dependencies: '@miniflare/shared': 2.14.2 + '@mjackson/node-fetch-server@0.2.0': {} + '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': dependencies: eslint-scope: 5.1.1 @@ -6855,6 +6935,79 @@ snapshots: clsx: 2.1.1 react: 18.2.0 + '@react-router/cloudflare@7.1.2(@cloudflare/workers-types@4.20241018.0)(react-router@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(tsup@6.7.0(postcss@8.4.39)(typescript@5.5.3))(typescript@5.5.3)': + dependencies: + '@cloudflare/workers-types': 4.20241018.0 + react-router: 7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + tsup: 6.7.0(postcss@8.4.39)(typescript@5.5.3) + optionalDependencies: + typescript: 5.5.3 + + '@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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20241018.0))': + dependencies: + '@babel/core': 7.24.8 + '@babel/generator': 7.24.8 + '@babel/parser': 7.24.8 + '@babel/plugin-syntax-decorators': 7.24.7(@babel/core@7.24.8) + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.8) + '@babel/preset-typescript': 7.24.7(@babel/core@7.24.8) + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.8 + '@npmcli/package-json': 4.0.1 + '@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.5.3) + arg: 5.0.2 + babel-dead-code-elimination: 1.0.8 + chokidar: 4.0.2 + dedent: 1.5.3 + es-module-lexer: 1.5.4 + exit-hook: 2.2.1 + fs-extra: 10.1.0 + gunzip-maybe: 1.4.2 + jsesc: 3.0.2 + lodash: 4.17.21 + pathe: 1.1.2 + picocolors: 1.1.1 + picomatch: 2.3.1 + prettier: 2.8.8 + react-refresh: 0.14.2 + 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 + valibot: 0.41.0(typescript@5.5.3) + vite: 5.3.4(@types/node@18.19.39) + vite-node: 3.0.0-beta.2(@types/node@18.19.39) + optionalDependencies: + typescript: 5.5.3 + wrangler: 3.96.0(@cloudflare/workers-types@4.20241018.0) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - bluebird + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + + '@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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20241018.0)))(typescript@5.5.3)': + dependencies: + '@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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20241018.0)) + minimatch: 9.0.5 + optionalDependencies: + 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.5.3)': + dependencies: + '@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 + '@react-stately/utils@3.10.2(react@18.2.0)': dependencies: '@swc/helpers': 0.5.12 @@ -7041,11 +7194,6 @@ snapshots: optionalDependencies: typescript: 5.5.3 - '@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 - '@remix-run/web-blob@3.1.0': dependencies: '@remix-run/web-stream': 1.1.0 @@ -7707,6 +7855,15 @@ snapshots: dependencies: deep-equal: 2.2.3 + babel-dead-code-elimination@1.0.8: + dependencies: + '@babel/core': 7.24.8 + '@babel/parser': 7.24.8 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.8 + transitivePeerDependencies: + - supports-color + bail@2.0.2: {} balanced-match@1.0.2: {} @@ -7981,6 +8138,8 @@ snapshots: cookie@0.7.1: {} + cookie@1.0.2: {} + core-util-is@1.0.3: {} cross-spawn@5.1.0: @@ -8043,6 +8202,10 @@ snapshots: dependencies: ms: 2.1.2 + debug@4.4.0: + dependencies: + ms: 2.1.3 + decode-named-character-reference@1.0.2: dependencies: character-entities: 2.0.2 @@ -10128,10 +10291,6 @@ 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 @@ -10452,6 +10611,8 @@ snapshots: picocolors@1.0.1: {} + picocolors@1.1.1: {} + picomatch@2.3.1: {} pidtree@0.6.0: {} @@ -10714,6 +10875,16 @@ snapshots: '@remix-run/router': 1.21.0 react: 18.2.0 + react-router@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + dependencies: + '@types/cookie': 0.6.0 + cookie: 1.0.2 + react: 18.2.0 + set-cookie-parser: 2.6.0 + turbo-stream: 2.4.0 + optionalDependencies: + react-dom: 18.2.0(react@18.2.0) + react@18.2.0: dependencies: loose-envify: 1.4.0 @@ -11656,6 +11827,23 @@ snapshots: - supports-color - terser + vite-node@3.0.0-beta.2(@types/node@18.19.39): + dependencies: + cac: 6.7.14 + debug: 4.4.0 + es-module-lexer: 1.5.4 + pathe: 1.1.2 + vite: 5.3.4(@types/node@18.19.39) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + vite-tsconfig-paths@4.3.2(typescript@5.5.3)(vite@5.3.4(@types/node@18.19.39)): dependencies: debug: 4.3.5 From ba759274b95f296532a668be874d2d9fc55a7417 Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Fri, 17 Jan 2025 12:11:06 -0800 Subject: [PATCH 14/29] Migrate templates/remix to RR v7 --- templates/remix/.gitignore | 1 + templates/remix/README.md | 5 +++-- templates/remix/app/entry.client.tsx | 4 ++-- templates/remix/app/entry.server.tsx | 7 +++---- templates/remix/app/root.tsx | 4 ++-- templates/remix/app/routes.ts | 4 ++++ templates/remix/app/routes/_auth.login.tsx | 9 +++++++-- templates/remix/app/routes/_auth.logout.ts | 2 +- templates/remix/app/routes/_auth.register.tsx | 9 +++++++-- templates/remix/app/routes/dashboard.tsx | 3 +-- templates/remix/load-context.ts | 14 +++++++++++++- templates/remix/package.json | 11 ++++++----- templates/remix/react-router.config.ts | 3 +++ templates/remix/tsconfig.json | 16 +++++++++++++--- templates/remix/vite.config.ts | 19 ++----------------- templates/remix/worker.ts | 2 +- 16 files changed, 69 insertions(+), 44 deletions(-) create mode 100644 templates/remix/app/routes.ts create mode 100644 templates/remix/react-router.config.ts 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 index 94d5dc0d..e83e552c 100644 --- a/templates/remix/app/entry.client.tsx +++ b/templates/remix/app/entry.client.tsx @@ -4,7 +4,7 @@ * For more information, see https://remix.run/file-conventions/entry.client */ -import { RemixBrowser } from "@remix-run/react"; +import { HydratedRouter } from "react-router/dom"; import { startTransition, StrictMode } from "react"; import { hydrateRoot } from "react-dom/client"; @@ -12,7 +12,7 @@ startTransition(() => { hydrateRoot( document, - + ); }); diff --git a/templates/remix/app/entry.server.tsx b/templates/remix/app/entry.server.tsx index e9bcdda5..4c149f86 100644 --- a/templates/remix/app/entry.server.tsx +++ b/templates/remix/app/entry.server.tsx @@ -4,18 +4,17 @@ * 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 + reactRouterContext: EntryContext ) { const body = await renderToReadableStream( - , + , { onError(error: unknown) { responseStatusCode = 500; 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 1b8161c6..73941f3b 100644 --- a/templates/remix/app/routes/_auth.login.tsx +++ b/templates/remix/app/routes/_auth.login.tsx @@ -1,5 +1,10 @@ -import { Form, Link, useActionData } from "@remix-run/react"; -import { redirect, type ActionFunctionArgs } from "@remix-run/cloudflare"; +import { + type ActionFunctionArgs, + Form, + Link, + redirect, + useActionData, +} from "react-router"; import { User } from "~/models/User"; export async function action({ diff --git a/templates/remix/app/routes/_auth.logout.ts b/templates/remix/app/routes/_auth.logout.ts index 5c9f9005..e93ba8ff 100644 --- a/templates/remix/app/routes/_auth.logout.ts +++ b/templates/remix/app/routes/_auth.logout.ts @@ -1,4 +1,4 @@ -import { type ActionFunctionArgs, redirect } from "@remix-run/cloudflare"; +import { type ActionFunctionArgs, redirect } from "react-router"; export async function action({ context: { auth } }: ActionFunctionArgs) { auth.logout(); diff --git a/templates/remix/app/routes/_auth.register.tsx b/templates/remix/app/routes/_auth.register.tsx index a17ead1b..d8e78d44 100644 --- a/templates/remix/app/routes/_auth.register.tsx +++ b/templates/remix/app/routes/_auth.register.tsx @@ -1,5 +1,10 @@ -import { Form, Link, useActionData } from "@remix-run/react"; -import { redirect, type ActionFunctionArgs } from "@remix-run/cloudflare"; +import { + type ActionFunctionArgs, + Form, + Link, + redirect, + useActionData, +} from "react-router"; import { User } from "~/models/User"; import { hash } from "superflare"; diff --git a/templates/remix/app/routes/dashboard.tsx b/templates/remix/app/routes/dashboard.tsx index 0a383815..544f307a 100644 --- a/templates/remix/app/routes/dashboard.tsx +++ b/templates/remix/app/routes/dashboard.tsx @@ -1,5 +1,4 @@ -import { type LoaderFunctionArgs, redirect } from "@remix-run/cloudflare"; -import { useLoaderData } from "@remix-run/react"; +import { type LoaderFunctionArgs, redirect, useLoaderData } from "react-router"; import { User } from "~/models/User"; export async function loader({ context: { auth } }: LoaderFunctionArgs) { diff --git a/templates/remix/load-context.ts b/templates/remix/load-context.ts index 1df09185..88b0308a 100644 --- a/templates/remix/load-context.ts +++ b/templates/remix/load-context.ts @@ -1,7 +1,19 @@ import { type Cloudflare } from "@superflare/remix"; -declare module "@remix-run/cloudflare" { +declare module "react-router" { interface AppLoadContext { cloudflare: Cloudflare; } + + // TODO: remove this once we've migrated to `Route.LoaderArgs` instead for our loaders + interface LoaderFunctionArgs { + context: AppLoadContext; + } + + // TODO: remove this once we've migrated to `Route.ActionArgs` instead for our actions + interface ActionFunctionArgs { + context: AppLoadContext; + } } + +export {}; // necessary for TS to treat this as a module diff --git a/templates/remix/package.json b/templates/remix/package.json index 89a9eba4..e21d1092 100644 --- a/templates/remix/package.json +++ b/templates/remix/package.json @@ -6,28 +6,29 @@ "private": true, "sideEffects": false, "scripts": { - "build": "remix vite:build", + "build": "react-router build", "deploy": "wrangler deploy", "dev": "superflare dev", "start": "wrangler dev", "typegen": "wrangler types", - "typecheck": "tsc" + "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", + "@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 2bcb6055..62ea0fb9 100644 --- a/templates/remix/vite.config.ts +++ b/templates/remix/vite.config.ts @@ -1,27 +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"; -declare module "@remix-run/cloudflare" { - // eslint-disable-next-line @typescript-eslint/consistent-type-definitions - interface Future { - v3_singleFetch: true; - } -} - export default defineConfig({ plugins: [ superflareDevProxyVitePlugin(), - remix({ - future: { - v3_fetcherPersist: true, - v3_lazyRouteDiscovery: true, - v3_relativeSplatPath: true, - v3_singleFetch: 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"; From 181876a5006e6f4f5f8181f1e723787f3b0ec077 Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Fri, 17 Jan 2025 12:14:52 -0800 Subject: [PATCH 15/29] Migrate apps/site to RR v7 --- apps/site/.gitignore | 2 +- apps/site/app/components/Button.tsx | 2 +- apps/site/app/components/Layout.tsx | 2 +- apps/site/app/components/MobileNavigation.tsx | 2 +- apps/site/app/components/Navigation.tsx | 2 +- apps/site/app/components/QuickLinks.jsx | 2 +- apps/site/app/components/Search.tsx | 2 +- apps/site/app/entry.client.tsx | 17 ++++++++ apps/site/app/entry.server.tsx | 43 +++++++++++++++++++ apps/site/app/root.tsx | 4 +- apps/site/app/routes.ts | 4 ++ apps/site/app/routes/$.tsx | 2 +- apps/site/app/routes/_index.tsx | 7 +-- apps/site/load-context.ts | 16 ++++++- apps/site/package.json | 13 +++--- apps/site/react-router.config.ts | 3 ++ apps/site/tsconfig.json | 16 +++++-- apps/site/vite.config.ts | 27 ++---------- apps/site/worker.ts | 8 ++-- 19 files changed, 120 insertions(+), 54 deletions(-) create mode 100644 apps/site/app/entry.client.tsx create mode 100644 apps/site/app/entry.server.tsx create mode 100644 apps/site/app/routes.ts create mode 100644 apps/site/react-router.config.ts 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.client.tsx b/apps/site/app/entry.client.tsx new file mode 100644 index 00000000..95da3799 --- /dev/null +++ b/apps/site/app/entry.client.tsx @@ -0,0 +1,17 @@ +/** + * 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 { startTransition, StrictMode } from "react"; +import { hydrateRoot } from "react-dom/client"; +import { HydratedRouter } from "react-router/dom"; + +startTransition(() => { + hydrateRoot( + document, + + + + ); +}); diff --git a/apps/site/app/entry.server.tsx b/apps/site/app/entry.server.tsx new file mode 100644 index 00000000..ba4346b4 --- /dev/null +++ b/apps/site/app/entry.server.tsx @@ -0,0 +1,43 @@ +/** + * 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, + reactRouterContext: EntryContext, + _loadContext: AppLoadContext +) { + const body = await renderToReadableStream( + , + { + onError(error: unknown) { + // Log streaming rendering errors from inside the shell + console.error(error); + responseStatusCode = 500; + }, + signal: request.signal, + } + ); + + if (isbot(request.headers.get("user-agent") || "")) { + 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 355273a1..bfff8df0 100644 --- a/apps/site/app/root.tsx +++ b/apps/site/app/root.tsx @@ -2,15 +2,13 @@ import { 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"; 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..5688e742 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"; diff --git a/apps/site/app/routes/_index.tsx b/apps/site/app/routes/_index.tsx index a8f01ebf..2a01f8b6 100644 --- a/apps/site/app/routes/_index.tsx +++ b/apps/site/app/routes/_index.tsx @@ -1,8 +1,5 @@ -import { - type LoaderFunctionArgs, - type MetaFunction, -} from "@remix-run/cloudflare"; -import { useLoaderData } from "@remix-run/react"; +import { type LoaderFunctionArgs, 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"; diff --git a/apps/site/load-context.ts b/apps/site/load-context.ts index 23889d2d..f237fbf1 100644 --- a/apps/site/load-context.ts +++ b/apps/site/load-context.ts @@ -7,8 +7,22 @@ type Cloudflare = Omit, "dispose" | "caches"> & { caches: CacheStorage; }; -declare module "@remix-run/cloudflare" { +declare module "react-router" { interface AppLoadContext { cloudflare: Cloudflare; } + + // TODO: remove this once we've migrated to `Route.LoaderArgs` instead for our loaders + // eslint-disable-next-line @typescript-eslint/consistent-type-definitions + interface LoaderFunctionArgs { + context: AppLoadContext; + } + + // TODO: remove this once we've migrated to `Route.ActionArgs` instead for our actions + // eslint-disable-next-line @typescript-eslint/consistent-type-definitions + interface ActionFunctionArgs { + context: AppLoadContext; + } } + +export {}; // necessary for TS to treat this as a module diff --git a/apps/site/package.json b/apps/site/package.json index a950b27d..4923352a 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" + "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,12 +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", + "@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/vite.config.ts b/apps/site/vite.config.ts index 2d815fce..c3611714 100644 --- a/apps/site/vite.config.ts +++ b/apps/site/vite.config.ts @@ -1,31 +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"; -declare module "@remix-run/cloudflare" { - // eslint-disable-next-line @typescript-eslint/consistent-type-definitions - interface Future { - v3_singleFetch: true; - } -} - export default defineConfig({ - plugins: [ - cloudflareDevProxyVitePlugin(), - remix({ - future: { - v3_fetcherPersist: true, - v3_lazyRouteDiscovery: true, - v3_relativeSplatPath: true, - v3_singleFetch: true, - v3_throwAbortReason: true, - }, - }), - tsconfigPaths(), - ], + plugins: [cloudflareDevProxy(), reactRouter(), tsconfigPaths()], ssr: { noExternal: ["@docsearch/react", "@markdoc/markdoc"], resolve: { 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 }); From b1b664588a53c3b76aece805e22a429d2ae43b87 Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Fri, 17 Jan 2025 12:15:42 -0800 Subject: [PATCH 16/29] Update lock file with RR v7 dependency changes --- pnpm-lock.yaml | 1401 ++++-------------------------------------------- 1 file changed, 92 insertions(+), 1309 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fc07a861..c67f7ca8 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.20241018.0)(react-router@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(tsup@6.7.0(postcss@8.4.39)(typescript@5.5.3))(typescript@5.5.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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20241018.0)))(typescript@5.5.3) '@sindresorhus/slugify': specifier: ^2.1.1 version: 2.2.1 @@ -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 @@ -94,12 +97,9 @@ importers: '@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) + '@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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20241018.0)) '@types/js-yaml': specifier: ^4.0.5 version: 4.0.9 @@ -200,9 +200,6 @@ importers: '@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.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) '@tailwindcss/typography': specifier: ^0.5.9 version: 0.5.13(tailwindcss@3.4.4) @@ -391,12 +388,12 @@ importers: 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.20241018.0)(react-router@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(tsup@6.7.0(postcss@8.4.39)(typescript@5.5.3))(typescript@5.5.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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20241018.0)))(typescript@5.5.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 @@ -419,9 +419,9 @@ importers: '@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)) + '@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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20241018.0)) '@types/react': specifier: ^18.0.28 version: 18.3.3 @@ -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'} @@ -1577,9 +1540,6 @@ packages: '@mjackson/node-fetch-server@0.2.0': resolution: {integrity: sha512-EMlH1e30yzmTpGLQjlFmaDAjyOeZhng1/XCd7DExR8PNAnG/G1tyruZxEoUe11ClnwGhGrtsdnyyUx1frSzjng==} - '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': - resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} - '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1723,18 +1683,6 @@ packages: 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'} @@ -1864,9 +1812,6 @@ packages: cpu: [x64] os: [win32] - '@rushstack/eslint-patch@1.10.3': - resolution: {integrity: sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==} - '@sindresorhus/slugify@2.2.1': resolution: {integrity: sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==} engines: {node: '>=12'} @@ -1897,16 +1842,9 @@ 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==} @@ -1940,12 +1878,6 @@ packages: '@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==} @@ -2009,64 +1941,6 @@ packages: '@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==} @@ -2185,9 +2059,6 @@ 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'} @@ -2203,14 +2074,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'} @@ -2219,13 +2082,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'} @@ -2236,9 +2092,6 @@ 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'} @@ -2258,13 +2111,6 @@ 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==} - babel-dead-code-elimination@1.0.8: resolution: {integrity: sha512-og6HQERk0Cmm+nTT4Od2wbPtgABXFMPaHACjbKLulZIFMkYyXZLkUGuAxdgpMJBrxyt/XFpSz++lNzjbcMnPkQ==} @@ -2549,9 +2395,6 @@ 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==} @@ -2586,14 +2429,6 @@ packages: supports-color: optional: true - debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.3.5: resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} engines: {node: '>=6.0'} @@ -2631,10 +2466,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'} @@ -2705,9 +2536,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'} @@ -2749,10 +2577,6 @@ packages: 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'} @@ -2772,13 +2596,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==} @@ -2858,111 +2675,12 @@ packages: 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 - eslint-plugin-react@7.31.8: resolution: {integrity: sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw==} engines: {node: '>=4'} 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==} peerDependencies: @@ -3276,9 +2994,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==} @@ -3463,10 +3178,6 @@ packages: 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==} @@ -3508,9 +3219,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'} @@ -3538,10 +3246,6 @@ packages: 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'} @@ -3573,10 +3277,6 @@ packages: 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'} @@ -3609,17 +3309,9 @@ packages: 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'} @@ -3641,9 +3333,6 @@ packages: 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==} @@ -3701,10 +3390,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'} @@ -3727,13 +3412,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'} @@ -3831,10 +3509,6 @@ 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==} @@ -4123,9 +3797,6 @@ 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==} @@ -4195,10 +3866,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'} @@ -4215,10 +3882,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'} @@ -4686,10 +4349,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==} @@ -4728,10 +4387,6 @@ packages: 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'} @@ -4740,9 +4395,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'} @@ -4978,10 +4630,6 @@ packages: 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'} @@ -5007,16 +4655,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'} @@ -5104,10 +4746,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==} @@ -5201,16 +4839,10 @@ 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==} @@ -5230,12 +4862,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==} @@ -5563,14 +5189,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'} @@ -5851,22 +5469,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 @@ -6018,69 +5620,28 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-display-name@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-typescript@7.24.8(@babel/core@7.24.8)': dependencies: '@babel/core': 7.24.8 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.24.8(@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) + '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.8) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-jsx@7.24.7(@babel/core@7.24.8)': + '@babel/preset-typescript@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/helper-validator-option': 7.24.8 '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.8) - '@babel/types': 7.24.8 + '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.24.8) + '@babel/plugin-transform-typescript': 7.24.8(@babel/core@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 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.24.8) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.8) - 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 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-option': 7.24.8 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.24.8) - '@babel/plugin-transform-typescript': 7.24.8(@babel/core@7.24.8) - transitivePeerDependencies: - - supports-color - - '@babel/runtime@7.24.8': + '@babel/runtime@7.24.8': dependencies: regenerator-runtime: 0.14.1 @@ -6611,11 +6172,6 @@ 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 - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': dependencies: eslint: 8.57.0 @@ -6852,10 +6408,6 @@ snapshots: '@mjackson/node-fetch-server@0.2.0': {} - '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': - dependencies: - eslint-scope: 5.1.1 - '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -7102,60 +6654,6 @@ snapshots: - 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)': - 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 - optionalDependencies: - typescript: 5.5.3 - transitivePeerDependencies: - - eslint-import-resolver-webpack - - jest - - supports-color - '@remix-run/node@2.14.0(typescript@5.5.3)': dependencies: '@remix-run/server-runtime': 2.14.0(typescript@5.5.3) @@ -7270,8 +6768,6 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.18.1': optional: true - '@rushstack/eslint-patch@1.10.3': {} - '@sindresorhus/slugify@2.2.1': dependencies: '@sindresorhus/transliterate': 1.6.0 @@ -7306,23 +6802,10 @@ 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': @@ -7357,10 +6840,6 @@ snapshots: '@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 @@ -7427,148 +6906,6 @@ snapshots: 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': @@ -7743,10 +7080,6 @@ 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 @@ -7765,24 +7098,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 @@ -7797,21 +7112,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 @@ -7829,8 +7129,6 @@ snapshots: assertion-error@1.1.0: {} - ast-types-flow@0.0.8: {} - astral-regex@2.0.0: {} astring@1.8.6: {} @@ -7849,12 +7147,6 @@ snapshots: dependencies: possible-typed-array-names: 1.0.0 - axe-core@4.9.1: {} - - axobject-query@3.1.1: - dependencies: - deep-equal: 2.2.3 - babel-dead-code-elimination@1.0.8: dependencies: '@babel/core': 7.24.8 @@ -8160,8 +7452,6 @@ snapshots: csstype@3.1.3: {} - damerau-levenshtein@1.0.8: {} - data-uri-to-buffer@2.0.2: {} data-uri-to-buffer@3.0.1: {} @@ -8194,10 +7484,6 @@ snapshots: dependencies: ms: 2.0.0 - debug@3.2.7: - dependencies: - ms: 2.1.3 - debug@4.3.5: dependencies: ms: 2.1.2 @@ -8220,27 +7506,6 @@ 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: {} @@ -8295,8 +7560,6 @@ snapshots: dependencies: esutils: 2.0.3 - dom-accessibility-api@0.5.16: {} - dotenv@10.0.0: {} dotenv@16.0.3: {} @@ -8328,11 +7591,6 @@ snapshots: 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 @@ -8395,35 +7653,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: @@ -8507,340 +7736,78 @@ snapshots: '@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 - '@esbuild/android-arm64': 0.18.20 - '@esbuild/android-x64': 0.18.20 - '@esbuild/darwin-arm64': 0.18.20 - '@esbuild/darwin-x64': 0.18.20 - '@esbuild/freebsd-arm64': 0.18.20 - '@esbuild/freebsd-x64': 0.18.20 - '@esbuild/linux-arm': 0.18.20 - '@esbuild/linux-arm64': 0.18.20 - '@esbuild/linux-ia32': 0.18.20 - '@esbuild/linux-loong64': 0.18.20 - '@esbuild/linux-mips64el': 0.18.20 - '@esbuild/linux-ppc64': 0.18.20 - '@esbuild/linux-riscv64': 0.18.20 - '@esbuild/linux-s390x': 0.18.20 - '@esbuild/linux-x64': 0.18.20 - '@esbuild/netbsd-x64': 0.18.20 - '@esbuild/openbsd-x64': 0.18.20 - '@esbuild/sunos-x64': 0.18.20 - '@esbuild/win32-arm64': 0.18.20 - '@esbuild/win32-ia32': 0.18.20 - '@esbuild/win32-x64': 0.18.20 - - esbuild@0.21.5: - optionalDependencies: - '@esbuild/aix-ppc64': 0.21.5 - '@esbuild/android-arm': 0.21.5 - '@esbuild/android-arm64': 0.21.5 - '@esbuild/android-x64': 0.21.5 - '@esbuild/darwin-arm64': 0.21.5 - '@esbuild/darwin-x64': 0.21.5 - '@esbuild/freebsd-arm64': 0.21.5 - '@esbuild/freebsd-x64': 0.21.5 - '@esbuild/linux-arm': 0.21.5 - '@esbuild/linux-arm64': 0.21.5 - '@esbuild/linux-ia32': 0.21.5 - '@esbuild/linux-loong64': 0.21.5 - '@esbuild/linux-mips64el': 0.21.5 - '@esbuild/linux-ppc64': 0.21.5 - '@esbuild/linux-riscv64': 0.21.5 - '@esbuild/linux-s390x': 0.21.5 - '@esbuild/linux-x64': 0.21.5 - '@esbuild/netbsd-x64': 0.21.5 - '@esbuild/openbsd-x64': 0.21.5 - '@esbuild/sunos-x64': 0.21.5 - '@esbuild/win32-arm64': 0.21.5 - '@esbuild/win32-ia32': 0.21.5 - '@esbuild/win32-x64': 0.21.5 - - escalade@3.1.2: {} - - escape-html@1.0.3: {} - - escape-string-regexp@1.0.5: {} - - escape-string-regexp@4.0.0: {} - - escape-string-regexp@5.0.0: {} - - eslint-config-prettier@8.10.0(eslint@7.32.0): - dependencies: - eslint: 7.32.0 - - eslint-config-turbo@2.3.0(eslint@7.32.0): - 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 + '@esbuild/win32-ia32': 0.17.6 + '@esbuild/win32-x64': 0.17.6 - 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 + esbuild@0.18.20: 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 + '@esbuild/android-arm': 0.18.20 + '@esbuild/android-arm64': 0.18.20 + '@esbuild/android-x64': 0.18.20 + '@esbuild/darwin-arm64': 0.18.20 + '@esbuild/darwin-x64': 0.18.20 + '@esbuild/freebsd-arm64': 0.18.20 + '@esbuild/freebsd-x64': 0.18.20 + '@esbuild/linux-arm': 0.18.20 + '@esbuild/linux-arm64': 0.18.20 + '@esbuild/linux-ia32': 0.18.20 + '@esbuild/linux-loong64': 0.18.20 + '@esbuild/linux-mips64el': 0.18.20 + '@esbuild/linux-ppc64': 0.18.20 + '@esbuild/linux-riscv64': 0.18.20 + '@esbuild/linux-s390x': 0.18.20 + '@esbuild/linux-x64': 0.18.20 + '@esbuild/netbsd-x64': 0.18.20 + '@esbuild/openbsd-x64': 0.18.20 + '@esbuild/sunos-x64': 0.18.20 + '@esbuild/win32-arm64': 0.18.20 + '@esbuild/win32-ia32': 0.18.20 + '@esbuild/win32-x64': 0.18.20 - 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 + esbuild@0.21.5: 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 + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 - 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 + escalade@3.1.2: {} - 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 + escape-html@1.0.3: {} - 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 + escape-string-regexp@1.0.5: {} - 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 + escape-string-regexp@4.0.0: {} - 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 + escape-string-regexp@5.0.0: {} - eslint-plugin-react-hooks@4.6.2(eslint@8.26.0): + eslint-config-prettier@8.10.0(eslint@7.32.0): dependencies: - eslint: 8.26.0 + eslint: 7.32.0 - eslint-plugin-react-hooks@4.6.2(eslint@8.57.0): + eslint-config-turbo@2.3.0(eslint@7.32.0): dependencies: - eslint: 8.57.0 + eslint: 7.32.0 + eslint-plugin-turbo: 2.3.0(eslint@7.32.0) eslint-plugin-react@7.31.8(eslint@7.32.0): dependencies: @@ -8860,68 +7827,6 @@ snapshots: 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 - eslint-plugin-turbo@2.3.0(eslint@7.32.0): dependencies: dotenv: 16.0.3 @@ -9397,10 +8302,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: @@ -9595,10 +8496,6 @@ snapshots: 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 @@ -9634,10 +8531,6 @@ snapshots: 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: {} @@ -9656,8 +8549,6 @@ snapshots: is-interactive@1.0.0: {} - is-map@2.0.3: {} - is-negative-zero@2.0.3: {} is-number-object@1.0.7: @@ -9681,8 +8572,6 @@ snapshots: 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 @@ -9709,17 +8598,10 @@ snapshots: 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: {} @@ -9732,14 +8614,6 @@ snapshots: 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: @@ -9781,10 +8655,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: @@ -9810,12 +8680,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 @@ -9899,8 +8763,6 @@ snapshots: lru-cache@7.18.3: {} - lz-string@1.5.0: {} - magic-string@0.25.9: dependencies: sourcemap-codec: 1.4.8 @@ -10359,8 +9221,6 @@ snapshots: napi-build-utils@1.0.2: {} - natural-compare-lite@1.4.0: {} - natural-compare@1.4.0: {} negotiator@0.6.3: {} @@ -10425,11 +9285,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: @@ -10452,12 +9307,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 @@ -10922,16 +9771,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: @@ -10985,14 +9824,10 @@ snapshots: 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: @@ -11260,10 +10095,6 @@ snapshots: 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: {} @@ -11286,11 +10117,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 @@ -11306,11 +10132,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 @@ -11430,8 +10251,6 @@ snapshots: transitivePeerDependencies: - ts-node - tapable@2.2.1: {} - tar-fs@2.1.1: dependencies: chownr: 1.1.4 @@ -11517,21 +10336,12 @@ snapshots: 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: {} - tslib@2.6.3: {} tsup@6.7.0(postcss@8.4.39)(typescript@5.5.3): @@ -11557,11 +10367,6 @@ snapshots: - supports-color - ts-node - tsutils@3.21.0(typescript@5.5.3): - dependencies: - tslib: 1.14.1 - typescript: 5.5.3 - tunnel-agent@0.6.0: dependencies: safe-buffer: 5.2.1 @@ -11936,28 +10741,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 From dbe3f85483de87ccc882639677e69483e1c0f35c Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Sat, 18 Jan 2025 20:06:24 -0800 Subject: [PATCH 17/29] Upgrade @cloudflare/workers-types + tsup --- apps/site/package.json | 2 +- examples/remix-cms/package.json | 2 +- packages/superflare-remix/package.json | 4 +- packages/superflare/package.json | 4 +- pnpm-lock.yaml | 1126 ++++++++++++++++++------ templates/remix/package.json | 2 +- 6 files changed, 886 insertions(+), 254 deletions(-) diff --git a/apps/site/package.json b/apps/site/package.json index 4923352a..223953c0 100644 --- a/apps/site/package.json +++ b/apps/site/package.json @@ -38,7 +38,7 @@ "tiny-invariant": "^1.3.1" }, "devDependencies": { - "@cloudflare/workers-types": "^4.20241011.0", + "@cloudflare/workers-types": "^4.20250109.0", "@react-router/dev": "^7.0.0", "@types/js-yaml": "^4.0.5", "@types/react": "^18.0.28", diff --git a/examples/remix-cms/package.json b/examples/remix-cms/package.json index 13ffe088..361697d5 100644 --- a/examples/remix-cms/package.json +++ b/examples/remix-cms/package.json @@ -36,7 +36,7 @@ "tiny-invariant": "^1.3.1" }, "devDependencies": { - "@cloudflare/workers-types": "^4.20241011.0", + "@cloudflare/workers-types": "^4.20250109.0", "@faker-js/faker": "^7.6.0", "@react-router/dev": "^7.0.0", "@tailwindcss/typography": "^0.5.9", diff --git a/packages/superflare-remix/package.json b/packages/superflare-remix/package.json index 7712a057..d990d4e2 100644 --- a/packages/superflare-remix/package.json +++ b/packages/superflare-remix/package.json @@ -37,12 +37,12 @@ "author": "Josh Larson ", "license": "MIT", "devDependencies": { - "@cloudflare/workers-types": "^4.20241011.0", + "@cloudflare/workers-types": "^4.20250109.0", "@remix-run/cloudflare": "^2.12.1", "@remix-run/dev": "^2.12.1", "@remix-run/server-runtime": "^2.12.1", "tsconfig": "workspace:*", - "tsup": "^6.6.3", + "tsup": "^8.3.5", "typescript": "^5", "vite": "^5", "wrangler": "^3.91.0" diff --git a/packages/superflare/package.json b/packages/superflare/package.json index c82b2c05..46ebd0cf 100644 --- a/packages/superflare/package.json +++ b/packages/superflare/package.json @@ -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/pnpm-lock.yaml b/pnpm-lock.yaml index c67f7ca8..25cdbb75 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -44,10 +44,10 @@ importers: version: 0.4.0(@types/react@18.3.3)(react@18.2.0) '@react-router/cloudflare': specifier: ^7.0.0 - version: 7.1.2(@cloudflare/workers-types@4.20241018.0)(react-router@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(tsup@6.7.0(postcss@8.4.39)(typescript@5.5.3))(typescript@5.5.3) + 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.5.3)(yaml@2.4.5))(typescript@5.5.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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20241018.0)))(typescript@5.5.3) + 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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20250109.0)))(typescript@5.5.3) '@sindresorhus/slugify': specifier: ^2.1.1 version: 2.2.1 @@ -95,11 +95,11 @@ 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 '@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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20241018.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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20250109.0)) '@types/js-yaml': specifier: ^4.0.5 version: 4.0.9 @@ -138,7 +138,7 @@ importers: version: 4.3.2(typescript@5.5.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.96.0(@cloudflare/workers-types@4.20250109.0) examples/remix-cms: dependencies: @@ -150,10 +150,10 @@ importers: version: 2.1.5(react@18.2.0) '@react-router/cloudflare': specifier: ^7.0.0 - version: 7.1.2(@cloudflare/workers-types@4.20241018.0)(react-router@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(tsup@6.7.0(postcss@8.4.39)(typescript@5.5.3))(typescript@5.5.3) + 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.5.3)(yaml@2.4.5))(typescript@5.5.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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20241018.0)))(typescript@5.5.3) + 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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20250109.0)))(typescript@5.5.3) '@superflare/remix': specifier: workspace:* version: link:../../packages/superflare-remix @@ -192,14 +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 '@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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20241018.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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20250109.0)) '@tailwindcss/typography': specifier: ^0.5.9 version: 0.5.13(tailwindcss@3.4.4) @@ -238,7 +238,7 @@ importers: version: 4.3.2(typescript@5.5.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.96.0(@cloudflare/workers-types@4.20250109.0) packages/eslint-config-custom: dependencies: @@ -299,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.96.0(@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 @@ -341,8 +341,8 @@ 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.5.3)(yaml@2.4.5) typescript: specifier: ^5 version: 5.5.3 @@ -357,23 +357,23 @@ importers: version: link:../superflare devDependencies: '@cloudflare/workers-types': - specifier: ^4.20241011.0 - version: 4.20241018.0 + specifier: ^4.20250109.0 + version: 4.20250109.0 '@remix-run/cloudflare': specifier: ^2.12.1 - version: 2.14.0(@cloudflare/workers-types@4.20241018.0)(typescript@5.5.3) + version: 2.15.2(@cloudflare/workers-types@4.20250109.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)) + version: 2.15.2(@remix-run/react@2.15.2(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.20250109.0)) '@remix-run/server-runtime': specifier: ^2.12.1 - version: 2.14.0(typescript@5.5.3) + version: 2.15.2(typescript@5.5.3) 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.5.3)(yaml@2.4.5) typescript: specifier: ^5 version: 5.5.3 @@ -382,7 +382,7 @@ importers: 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.96.0(@cloudflare/workers-types@4.20250109.0) packages/tsconfig: {} @@ -390,10 +390,10 @@ importers: dependencies: '@react-router/cloudflare': specifier: ^7.0.0 - version: 7.1.2(@cloudflare/workers-types@4.20241018.0)(react-router@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(tsup@6.7.0(postcss@8.4.39)(typescript@5.5.3))(typescript@5.5.3) + 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.5.3)(yaml@2.4.5))(typescript@5.5.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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20241018.0)))(typescript@5.5.3) + 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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20250109.0)))(typescript@5.5.3) '@superflare/remix': specifier: workspace:* version: link:../../packages/superflare-remix @@ -417,11 +417,11 @@ 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 '@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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20241018.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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20250109.0)) '@types/react': specifier: ^18.0.28 version: 18.3.3 @@ -439,7 +439,7 @@ importers: version: 4.3.2(typescript@5.5.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.96.0(@cloudflare/workers-types@4.20250109.0) packages: @@ -791,8 +791,8 @@ packages: 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==} @@ -822,8 +822,8 @@ packages: search-insights: optional: true - '@emotion/hash@0.9.1': - resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==} + '@emotion/hash@0.9.2': + resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} '@esbuild-plugins/node-globals-polyfill@0.2.3': resolution: {integrity: sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==} @@ -841,6 +841,12 @@ 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'} @@ -865,6 +871,12 @@ packages: cpu: [arm64] os: [android] + '@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.19': resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} engines: {node: '>=12'} @@ -889,6 +901,12 @@ packages: cpu: [arm] os: [android] + '@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.19': resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} engines: {node: '>=12'} @@ -913,6 +931,12 @@ 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'} @@ -937,6 +961,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.24.2': + resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.17.19': resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} engines: {node: '>=12'} @@ -961,6 +991,12 @@ 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'} @@ -985,6 +1021,12 @@ packages: cpu: [arm64] os: [freebsd] + '@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.19': resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} engines: {node: '>=12'} @@ -1009,6 +1051,12 @@ 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'} @@ -1033,6 +1081,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.24.2': + resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.17.19': resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} engines: {node: '>=12'} @@ -1057,6 +1111,12 @@ packages: cpu: [arm] os: [linux] + '@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.19': resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} engines: {node: '>=12'} @@ -1081,6 +1141,12 @@ packages: cpu: [ia32] os: [linux] + '@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.19': resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} engines: {node: '>=12'} @@ -1105,6 +1171,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.24.2': + resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.17.19': resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} engines: {node: '>=12'} @@ -1129,6 +1201,12 @@ packages: cpu: [mips64el] os: [linux] + '@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.19': resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} engines: {node: '>=12'} @@ -1153,6 +1231,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.24.2': + resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.17.19': resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} engines: {node: '>=12'} @@ -1177,6 +1261,12 @@ packages: cpu: [riscv64] os: [linux] + '@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.19': resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} engines: {node: '>=12'} @@ -1201,6 +1291,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.24.2': + resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.17.19': resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} engines: {node: '>=12'} @@ -1225,6 +1321,18 @@ packages: cpu: [x64] os: [linux] + '@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.19': resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} engines: {node: '>=12'} @@ -1249,6 +1357,18 @@ packages: cpu: [x64] os: [netbsd] + '@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.19': resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} engines: {node: '>=12'} @@ -1273,6 +1393,12 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.24.2': + resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/sunos-x64@0.17.19': resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} engines: {node: '>=12'} @@ -1297,6 +1423,12 @@ 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'} @@ -1321,6 +1453,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.24.2': + resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.17.19': resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} engines: {node: '>=12'} @@ -1345,6 +1483,12 @@ packages: cpu: [ia32] os: [win32] + '@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.19': resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} engines: {node: '>=12'} @@ -1369,6 +1513,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} @@ -1653,8 +1803,8 @@ packages: 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==} + '@remix-run/cloudflare@2.15.2': + resolution: {integrity: sha512-6D/WTx3IbQYCWQ/BVNRItXI2upgDvkcCVYwZhvIctF4o+5+IaF21ZA1HTekQEnBfmYTpffJ3Jko1sCkqoMeOdw==} engines: {node: '>=18.0.0'} peerDependencies: '@cloudflare/workers-types': ^4.0.0 @@ -1663,13 +1813,13 @@ packages: typescript: optional: true - '@remix-run/dev@2.14.0': - resolution: {integrity: sha512-WMun4fy0ANh92WecufUNb3IV/R02uyfBslM7g7nCO1/lzDII+XmfEkZY5CWPaLmnkoAc1DR2G60+eTHRo480Ug==} + '@remix-run/dev@2.15.2': + resolution: {integrity: sha512-o8lix8t4GBhtXjo/G1IzwtHVW5GRMs7amtFtBHiR1bhSyK7VyX5qGtTDmJyny5QDv83pxaLOCiE0dUng2BCoyQ==} engines: {node: '>=18.0.0'} hasBin: true peerDependencies: - '@remix-run/react': ^2.14.0 - '@remix-run/serve': ^2.14.0 + '@remix-run/react': ^2.15.2 + '@remix-run/serve': ^2.15.2 typescript: ^5.1.0 vite: ^5.1.0 wrangler: ^3.28.2 @@ -1683,8 +1833,8 @@ packages: wrangler: optional: true - '@remix-run/node@2.14.0': - resolution: {integrity: sha512-ou16LMJYv0ElIToZ6dDqaLjv1T3iBEwuJTBahveEA8NkkACIWODJ2fgUYf1UKLMKHVdHjNImLzS37HdSZY0Q6g==} + '@remix-run/node@2.15.2': + resolution: {integrity: sha512-NS/h5uxje7DYCNgcKqKAiUhf0r2HVnoYUBWLyIIMmCUP1ddWurBP6xTPcWzGhEvV/EvguniYi1wJZ5+X8sonWw==} engines: {node: '>=18.0.0'} peerDependencies: typescript: ^5.1.0 @@ -1692,8 +1842,8 @@ packages: typescript: optional: true - '@remix-run/react@2.14.0': - resolution: {integrity: sha512-uQcy5gxazHtpislgonx2dwRuR/CbvYUeguQxDgawd+dAyoglK2rFx58+F6Kj0Vjw6v/iuvxibA/lEAiAaB4ZmQ==} + '@remix-run/react@2.15.2': + resolution: {integrity: sha512-NAAMsSgoC/sdOgovUewwRCE/RUm3F+MBxxZKfwu3POCNeHaplY5qGkH/y8PUXvdN1EBG7Z0Ko43dyzCfcEy5PA==} engines: {node: '>=18.0.0'} peerDependencies: react: ^18.0.0 @@ -1707,8 +1857,8 @@ packages: resolution: {integrity: sha512-xfSkCAchbdG5PnbrKqFWwia4Bi61nH+wm8wLEqfHDyp7Y3dZzgqS2itV8i4gAq9pC2HsTpwyBC6Ds8VHZ96JlA==} engines: {node: '>=14.0.0'} - '@remix-run/server-runtime@2.14.0': - resolution: {integrity: sha512-9Th9UzDaoFFBD7zA5mRI1KT8JktFLN4ij9jPygrKBhG/kYmNIvhcMtq9VyjcbMvFK5natTyhOhrrKRIHtijD4w==} + '@remix-run/server-runtime@2.15.2': + resolution: {integrity: sha512-OqiPcvEnnU88B8b1LIWHHkQ3Tz2GDAmQ1RihFNQsbrFKpDsQLkw0lJlnfgKA/uHd0CEEacpfV7C9qqJT3V6Z2g==} engines: {node: '>=18.0.0'} peerDependencies: typescript: ^5.1.0 @@ -1737,81 +1887,176 @@ packages: 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-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] + '@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==} engines: {node: '>=12'} @@ -1869,6 +2114,9 @@ packages: '@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==} @@ -1896,8 +2144,8 @@ packages: '@types/mdx@2.0.13': resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} - '@types/ms@0.7.34': - resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} '@types/node-forge@1.3.11': resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} @@ -1932,8 +2180,8 @@ 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/unist@2.0.11': + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} @@ -1944,17 +2192,17 @@ packages: '@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/babel-plugin-debug-ids@1.2.0': + resolution: {integrity: sha512-z5nx2QBnOhvmlmBKeRX5sPVLz437wV30u+GJL+Hzj1rGiJYVNvgIIlzUpRNjVQ0MgAgiQIqIUbqPnmMc6HmDlQ==} - '@vanilla-extract/css@1.15.3': - resolution: {integrity: sha512-mxoskDAxdQAspbkmQRxBvolUi1u1jnyy9WZGm+GeH8V2wwhEvndzl1QoK7w8JfA0WFevTxbev5d+i+xACZlPhA==} + '@vanilla-extract/css@1.17.0': + resolution: {integrity: sha512-W6FqVFDD+C71ZlKsuj0MxOXSvHb1tvQ9h/+79aYfi097wLsALrnnBzd0by8C///iurrpQ3S+SH74lXd7Lr9MvA==} '@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==} + '@vanilla-extract/private@1.0.6': + resolution: {integrity: sha512-ytsG/JLweEjw7DBuZ/0JCN4WAQgM9erfSTdS1NQY778hFQSZ6cfCDEZZ0sgVm4k54uNz6ImKB33AYvSR//fjxw==} '@vitest/expect@0.28.5': resolution: {integrity: sha512-gqTZwoUTwepwGIatnw4UKpQfnoyV0Z9Czn9+Lo2/jLIt4/AXLTn+oVZxlQ7Ng8bzcNkR+3DqLJ08kNr8jRmdNQ==} @@ -2001,6 +2249,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + engines: {node: '>=0.4.0'} + hasBin: true + aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} @@ -2096,8 +2349,8 @@ packages: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} - astring@1.8.6: - resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} + astring@1.9.0: + resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true autoprefixer@10.4.19: @@ -2177,11 +2430,11 @@ 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==} @@ -2199,10 +2452,18 @@ packages: resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + call-bind-apply-helpers@1.0.1: + resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} + engines: {node: '>= 0.4'} + call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} + call-bound@1.0.3: + resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} + engines: {node: '>= 0.4'} + callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -2339,6 +2600,13 @@ packages: confbox@0.1.7: resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + + consola@3.4.0: + resolution: {integrity: sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==} + engines: {node: ^14.18.0 || >=16.10.0} + content-disposition@0.5.4: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} @@ -2353,8 +2621,8 @@ packages: cookie-signature@1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - cookie-signature@1.2.1: - resolution: {integrity: sha512-78KWk9T26NhzXtuL26cIJ8/qNHANyJ/ZYrmEXFzUmhZdjpBv+DlWlOANRTGBt48YcyslsLrj0bMLFTmXvLRCOw==} + cookie-signature@1.2.2: + resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} engines: {node: '>=6.6.0'} cookie@0.5.0: @@ -2544,9 +2812,9 @@ packages: resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} engines: {node: '>=12'} - dotenv@16.4.5: - resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} - engines: {node: '>=12'} + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} duplexify@3.7.1: resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} @@ -2592,6 +2860,10 @@ packages: resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} engines: {node: '>= 0.4'} + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + es-errors@1.3.0: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} @@ -2614,11 +2886,11 @@ 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==} + esbuild-plugins-node-modules-polyfill@1.6.8: + resolution: {integrity: sha512-bRB4qbgUDWrdY1eMk123KiaCSW9VzQ+QLZrmU7D//cCFkmksPd9mUMpmWoFK/rxjIeTfTSOpKCoGoimlvI+AWw==} 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: '>=0.14.0 <=0.24.x' esbuild-register@3.5.0: resolution: {integrity: sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==} @@ -2645,6 +2917,11 @@ 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'} @@ -2823,8 +3100,8 @@ 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==} + express@4.21.2: + resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} engines: {node: '>= 0.10.0'} extend@3.0.2: @@ -2859,6 +3136,14 @@ packages: 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==} engines: {node: ^10.12.0 || >=12.0.0} @@ -2979,10 +3264,18 @@ packages: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} + get-intrinsic@1.2.7: + resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} + engines: {node: '>= 0.4'} + get-port@5.1.1: resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} engines: {node: '>=8'} + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + get-source@2.0.12: resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} @@ -3038,6 +3331,10 @@ packages: gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -3073,6 +3370,10 @@ packages: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + has-tostringtag@1.0.2: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} @@ -3170,8 +3471,8 @@ packages: 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==} + is-arguments@1.2.0: + resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} engines: {node: '>= 0.4'} is-array-buffer@3.0.4: @@ -3227,8 +3528,8 @@ packages: resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} engines: {node: '>=12'} - is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + is-generator-function@1.1.0: + resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} engines: {node: '>= 0.4'} is-glob@4.0.3: @@ -3270,13 +3571,17 @@ packages: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} - is-reference@3.0.2: - resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + is-reference@3.0.3: + resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + engines: {node: '>= 0.4'} + is-shared-array-buffer@1.0.3: resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} engines: {node: '>= 0.4'} @@ -3443,8 +3748,8 @@ packages: resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} engines: {node: '>=14'} - local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + local-pkg@0.5.1: + resolution: {integrity: sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==} engines: {node: '>=14'} locate-path@5.0.0: @@ -3521,6 +3826,10 @@ packages: engines: {node: '>= 12'} hasBin: true + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + mdast-util-definitions@5.1.2: resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==} @@ -3759,8 +4068,11 @@ packages: 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==} + + modern-ahocorasick@1.1.0: + resolution: {integrity: sha512-sEKPVl2rM+MNVkGQt3ChdmD8YsigmXdn5NifZn6jiwn9LRJpWm8F3guhaqrJT/JOat6pwpbXEk6kv+b9DMIjsQ==} mousetrap@1.6.5: resolution: {integrity: sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==} @@ -3972,8 +4284,8 @@ 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-entities@4.0.2: + resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} parse-ms@2.1.0: resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} @@ -4009,8 +4321,8 @@ 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@0.1.12: + resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} path-to-regexp@6.3.0: resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} @@ -4022,6 +4334,9 @@ 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==} @@ -4041,6 +4356,10 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + pidtree@0.6.0: resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} engines: {node: '>=0.10'} @@ -4065,6 +4384,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'} @@ -4103,9 +4425,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' @@ -4115,16 +4437,22 @@ 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: @@ -4133,14 +4461,14 @@ packages: peerDependencies: postcss: ^8.1.0 - postcss-modules-local-by-default@4.0.5: - resolution: {integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==} + postcss-modules-local-by-default@4.2.0: + resolution: {integrity: sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 - postcss-modules-scope@3.2.0: - resolution: {integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==} + postcss-modules-scope@3.2.1: + resolution: {integrity: sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 @@ -4151,8 +4479,8 @@ packages: peerDependencies: postcss: ^8.1.0 - postcss-modules@6.0.0: - resolution: {integrity: sha512-7DGfnlyi/ju82BRzTIjWS5C4Tafmzl3R79YP/PASiocj+aa6yYphHhhKUOEoXQToId5rgyFgJ88+ccOUydjBXQ==} + postcss-modules@6.0.1: + resolution: {integrity: sha512-zyo2sAkVvuZFFy0gc2+4O+xar5dYlaVy/ebO24KT0ftk/iJevSNyPyQellsBLlnccwh7f6V6Y4GvuKRYToNgpQ==} peerDependencies: postcss: ^8.0.0 @@ -4170,6 +4498,10 @@ packages: resolution: {integrity: sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==} engines: {node: '>=4'} + postcss-selector-parser@7.0.0: + resolution: {integrity: sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==} + engines: {node: '>=4'} + postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -4300,15 +4632,15 @@ packages: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} - react-router-dom@6.28.0: - resolution: {integrity: sha512-kQ7Unsl5YdyOltsPGl31zOjLrDv+m2VcIEcIHqYYD3Lp0UppLjrzcfJqDJwXxFw3TH/yvapbnUvPlAj7Kx5nbg==} + react-router-dom@6.28.1: + resolution: {integrity: sha512-YraE27C/RdjcZwl5UCqF/ffXnZDxpJdk9Q6jw38SZHjXs7NNdpViq2l2c7fO7+4uWaEfcwfGCv3RSg4e1By/fQ==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' - react-router@6.28.0: - resolution: {integrity: sha512-HrYdIFqdrnhDw0PqG/AKjAqEqM7AvxCz0DQ4h2W8k6nqmc5uRBYDag0SBxx9iYz5G8gnuNVLzUe13wl9eAsXXg==} + react-router@6.28.1: + resolution: {integrity: sha512-2omQTA3rkMljmrvvo6WtewGdVh45SpL9hGiCI9uUrwGGfNFDIvGK4gYJsKlJoNVi6AQZcopSCballL+QGOm7fA==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' @@ -4395,8 +4727,8 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} - resolve.exports@2.0.2: - resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} + resolve.exports@2.0.3: + resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} engines: {node: '>=10'} resolve@1.22.8: @@ -4444,6 +4776,11 @@ 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==} @@ -4468,6 +4805,10 @@ packages: resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} engines: {node: '>= 0.4'} + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} + safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -4786,6 +5127,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'} @@ -4846,15 +5194,18 @@ packages: 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: @@ -5290,10 +5641,6 @@ packages: 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'} @@ -5868,7 +6215,7 @@ snapshots: '@cloudflare/workerd-windows-64@1.20241205.0': optional: true - '@cloudflare/workers-types@4.20241018.0': {} + '@cloudflare/workers-types@4.20250109.0': {} '@colors/colors@1.5.0': optional: true @@ -5893,7 +6240,7 @@ snapshots: transitivePeerDependencies: - '@algolia/client-search' - '@emotion/hash@0.9.1': {} + '@emotion/hash@0.9.2': {} '@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.17.19)': dependencies: @@ -5908,6 +6255,9 @@ snapshots: '@esbuild/aix-ppc64@0.21.5': optional: true + '@esbuild/aix-ppc64@0.24.2': + optional: true + '@esbuild/android-arm64@0.17.19': optional: true @@ -5920,6 +6270,9 @@ snapshots: '@esbuild/android-arm64@0.21.5': optional: true + '@esbuild/android-arm64@0.24.2': + optional: true + '@esbuild/android-arm@0.17.19': optional: true @@ -5932,6 +6285,9 @@ snapshots: '@esbuild/android-arm@0.21.5': optional: true + '@esbuild/android-arm@0.24.2': + optional: true + '@esbuild/android-x64@0.17.19': optional: true @@ -5944,6 +6300,9 @@ snapshots: '@esbuild/android-x64@0.21.5': optional: true + '@esbuild/android-x64@0.24.2': + optional: true + '@esbuild/darwin-arm64@0.17.19': optional: true @@ -5956,6 +6315,9 @@ snapshots: '@esbuild/darwin-arm64@0.21.5': optional: true + '@esbuild/darwin-arm64@0.24.2': + optional: true + '@esbuild/darwin-x64@0.17.19': optional: true @@ -5968,6 +6330,9 @@ snapshots: '@esbuild/darwin-x64@0.21.5': optional: true + '@esbuild/darwin-x64@0.24.2': + optional: true + '@esbuild/freebsd-arm64@0.17.19': optional: true @@ -5980,6 +6345,9 @@ snapshots: '@esbuild/freebsd-arm64@0.21.5': optional: true + '@esbuild/freebsd-arm64@0.24.2': + optional: true + '@esbuild/freebsd-x64@0.17.19': optional: true @@ -5992,6 +6360,9 @@ snapshots: '@esbuild/freebsd-x64@0.21.5': optional: true + '@esbuild/freebsd-x64@0.24.2': + optional: true + '@esbuild/linux-arm64@0.17.19': optional: true @@ -6004,6 +6375,9 @@ snapshots: '@esbuild/linux-arm64@0.21.5': optional: true + '@esbuild/linux-arm64@0.24.2': + optional: true + '@esbuild/linux-arm@0.17.19': optional: true @@ -6016,6 +6390,9 @@ snapshots: '@esbuild/linux-arm@0.21.5': optional: true + '@esbuild/linux-arm@0.24.2': + optional: true + '@esbuild/linux-ia32@0.17.19': optional: true @@ -6028,6 +6405,9 @@ snapshots: '@esbuild/linux-ia32@0.21.5': optional: true + '@esbuild/linux-ia32@0.24.2': + optional: true + '@esbuild/linux-loong64@0.17.19': optional: true @@ -6040,6 +6420,9 @@ snapshots: '@esbuild/linux-loong64@0.21.5': optional: true + '@esbuild/linux-loong64@0.24.2': + optional: true + '@esbuild/linux-mips64el@0.17.19': optional: true @@ -6052,6 +6435,9 @@ snapshots: '@esbuild/linux-mips64el@0.21.5': optional: true + '@esbuild/linux-mips64el@0.24.2': + optional: true + '@esbuild/linux-ppc64@0.17.19': optional: true @@ -6064,6 +6450,9 @@ snapshots: '@esbuild/linux-ppc64@0.21.5': optional: true + '@esbuild/linux-ppc64@0.24.2': + optional: true + '@esbuild/linux-riscv64@0.17.19': optional: true @@ -6076,6 +6465,9 @@ snapshots: '@esbuild/linux-riscv64@0.21.5': optional: true + '@esbuild/linux-riscv64@0.24.2': + optional: true + '@esbuild/linux-s390x@0.17.19': optional: true @@ -6088,6 +6480,9 @@ snapshots: '@esbuild/linux-s390x@0.21.5': optional: true + '@esbuild/linux-s390x@0.24.2': + optional: true + '@esbuild/linux-x64@0.17.19': optional: true @@ -6100,6 +6495,12 @@ snapshots: '@esbuild/linux-x64@0.21.5': optional: true + '@esbuild/linux-x64@0.24.2': + optional: true + + '@esbuild/netbsd-arm64@0.24.2': + optional: true + '@esbuild/netbsd-x64@0.17.19': optional: true @@ -6112,6 +6513,12 @@ snapshots: '@esbuild/netbsd-x64@0.21.5': optional: true + '@esbuild/netbsd-x64@0.24.2': + optional: true + + '@esbuild/openbsd-arm64@0.24.2': + optional: true + '@esbuild/openbsd-x64@0.17.19': optional: true @@ -6124,6 +6531,9 @@ snapshots: '@esbuild/openbsd-x64@0.21.5': optional: true + '@esbuild/openbsd-x64@0.24.2': + optional: true + '@esbuild/sunos-x64@0.17.19': optional: true @@ -6136,6 +6546,9 @@ snapshots: '@esbuild/sunos-x64@0.21.5': optional: true + '@esbuild/sunos-x64@0.24.2': + optional: true + '@esbuild/win32-arm64@0.17.19': optional: true @@ -6148,6 +6561,9 @@ snapshots: '@esbuild/win32-arm64@0.21.5': optional: true + '@esbuild/win32-arm64@0.24.2': + optional: true + '@esbuild/win32-ia32@0.17.19': optional: true @@ -6160,6 +6576,9 @@ snapshots: '@esbuild/win32-ia32@0.21.5': optional: true + '@esbuild/win32-ia32@0.24.2': + optional: true + '@esbuild/win32-x64@0.17.19': optional: true @@ -6172,6 +6591,9 @@ snapshots: '@esbuild/win32-x64@0.21.5': optional: true + '@esbuild/win32-x64@0.24.2': + optional: true + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': dependencies: eslint: 8.57.0 @@ -6487,15 +6909,15 @@ snapshots: clsx: 2.1.1 react: 18.2.0 - '@react-router/cloudflare@7.1.2(@cloudflare/workers-types@4.20241018.0)(react-router@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(tsup@6.7.0(postcss@8.4.39)(typescript@5.5.3))(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.5.3)(yaml@2.4.5))(typescript@5.5.3)': dependencies: - '@cloudflare/workers-types': 4.20241018.0 + '@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: 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.5.3)(yaml@2.4.5) optionalDependencies: typescript: 5.5.3 - '@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.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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20250109.0))': dependencies: '@babel/core': 7.24.8 '@babel/generator': 7.24.8 @@ -6530,7 +6952,7 @@ snapshots: vite-node: 3.0.0-beta.2(@types/node@18.19.39) optionalDependencies: typescript: 5.5.3 - wrangler: 3.96.0(@cloudflare/workers-types@4.20241018.0) + wrangler: 3.96.0(@cloudflare/workers-types@4.20250109.0) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -6543,9 +6965,9 @@ snapshots: - supports-color - terser - '@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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20241018.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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20250109.0)))(typescript@5.5.3)': dependencies: - '@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.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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20250109.0)) minimatch: 9.0.5 optionalDependencies: typescript: 5.5.3 @@ -6569,15 +6991,15 @@ snapshots: dependencies: react: 18.2.0 - '@remix-run/cloudflare@2.14.0(@cloudflare/workers-types@4.20241018.0)(typescript@5.5.3)': + '@remix-run/cloudflare@2.15.2(@cloudflare/workers-types@4.20250109.0)(typescript@5.5.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 + '@remix-run/server-runtime': 2.15.2(typescript@5.5.3) optionalDependencies: typescript: 5.5.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))': + '@remix-run/dev@2.15.2(@remix-run/react@2.15.2(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.20250109.0))': dependencies: '@babel/core': 7.24.8 '@babel/generator': 7.24.8 @@ -6589,10 +7011,10 @@ snapshots: '@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/node': 2.15.2(typescript@5.5.3) + '@remix-run/react': 2.15.2(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) + '@remix-run/server-runtime': 2.15.2(typescript@5.5.3) '@types/mdx': 2.0.13 '@vanilla-extract/integration': 6.5.0(@types/node@18.19.39) arg: 5.0.2 @@ -6600,13 +7022,13 @@ snapshots: chalk: 4.1.2 chokidar: 3.6.0 cross-spawn: 7.0.3 - dotenv: 16.4.5 + dotenv: 16.0.3 es-module-lexer: 1.5.4 esbuild: 0.17.6 - esbuild-plugins-node-modules-polyfill: 1.6.4(esbuild@0.17.6) + esbuild-plugins-node-modules-polyfill: 1.6.8(esbuild@0.17.6) execa: 5.1.1 exit-hook: 2.2.1 - express: 4.21.1 + express: 4.21.2 fs-extra: 10.1.0 get-port: 5.1.1 gunzip-maybe: 1.4.2 @@ -6616,13 +7038,13 @@ snapshots: lodash.debounce: 4.0.8 minimatch: 9.0.5 ora: 5.4.1 - picocolors: 1.0.1 + 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) + postcss-modules: 6.0.1(postcss@8.4.39) prettier: 2.8.8 pretty-ms: 7.0.1 react-refresh: 0.14.2 @@ -6638,7 +7060,7 @@ snapshots: optionalDependencies: typescript: 5.5.3 vite: 5.3.4(@types/node@18.19.39) - wrangler: 3.96.0(@cloudflare/workers-types@4.20241018.0) + wrangler: 3.96.0(@cloudflare/workers-types@4.20250109.0) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -6654,33 +7076,33 @@ snapshots: - ts-node - utf-8-validate - '@remix-run/node@2.14.0(typescript@5.5.3)': + '@remix-run/node@2.15.2(typescript@5.5.3)': dependencies: - '@remix-run/server-runtime': 2.14.0(typescript@5.5.3) + '@remix-run/server-runtime': 2.15.2(typescript@5.5.3) '@remix-run/web-fetch': 4.4.2 '@web3-storage/multipart-parser': 1.0.0 - cookie-signature: 1.2.1 + cookie-signature: 1.2.2 source-map-support: 0.5.21 stream-slice: 0.1.2 undici: 6.19.2 optionalDependencies: 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/react@2.15.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.3)': dependencies: '@remix-run/router': 1.21.0 - '@remix-run/server-runtime': 2.14.0(typescript@5.5.3) + '@remix-run/server-runtime': 2.15.2(typescript@5.5.3) 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) + react-router: 6.28.1(react@18.2.0) + react-router-dom: 6.28.1(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)': + '@remix-run/server-runtime@2.15.2(typescript@5.5.3)': dependencies: '@remix-run/router': 1.21.0 '@types/cookie': 0.6.0 @@ -6723,51 +7145,108 @@ snapshots: '@rollup/rollup-android-arm-eabi@4.18.1': optional: true + '@rollup/rollup-android-arm-eabi@4.30.1': + optional: true + '@rollup/rollup-android-arm64@4.18.1': optional: true + '@rollup/rollup-android-arm64@4.30.1': + optional: true + '@rollup/rollup-darwin-arm64@4.18.1': optional: true + '@rollup/rollup-darwin-arm64@4.30.1': + optional: true + '@rollup/rollup-darwin-x64@4.18.1': optional: true + '@rollup/rollup-darwin-x64@4.30.1': + optional: true + + '@rollup/rollup-freebsd-arm64@4.30.1': + optional: true + + '@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 + '@rollup/rollup-win32-x64-msvc@4.30.1': + optional: true + '@sindresorhus/slugify@2.2.1': dependencies: '@sindresorhus/transliterate': 1.6.0 @@ -6804,7 +7283,7 @@ snapshots: '@types/acorn@4.0.6': dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 '@types/bcryptjs@2.4.6': {} @@ -6822,21 +7301,23 @@ snapshots: '@types/debug@4.1.12': dependencies: - '@types/ms': 0.7.34 + '@types/ms': 2.1.0 '@types/estree-jsx@1.0.5': dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 '@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/unist': 2.0.11 '@types/js-yaml@4.0.9': {} @@ -6853,14 +7334,14 @@ snapshots: '@types/mdast@3.0.15': dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.11 '@types/mdurl@2.0.0': optional: true '@types/mdx@2.0.13': {} - '@types/ms@0.7.34': {} + '@types/ms@2.1.0': {} '@types/node-forge@1.3.11': dependencies: @@ -6898,7 +7379,7 @@ snapshots: dependencies: '@types/node': 18.19.39 - '@types/unist@2.0.10': {} + '@types/unist@2.0.11': {} '@types/yargs-parser@21.0.3': {} @@ -6908,25 +7389,26 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vanilla-extract/babel-plugin-debug-ids@1.0.6': + '@vanilla-extract/babel-plugin-debug-ids@1.2.0': dependencies: '@babel/core': 7.24.8 transitivePeerDependencies: - supports-color - '@vanilla-extract/css@1.15.3': + '@vanilla-extract/css@1.17.0': dependencies: - '@emotion/hash': 0.9.1 - '@vanilla-extract/private': 1.0.5 + '@emotion/hash': 0.9.2 + '@vanilla-extract/private': 1.0.6 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 + lru-cache: 10.4.3 media-query-parser: 2.0.2 - modern-ahocorasick: 1.0.1 - picocolors: 1.0.1 + modern-ahocorasick: 1.1.0 + picocolors: 1.1.1 transitivePeerDependencies: - babel-plugin-macros @@ -6934,8 +7416,8 @@ snapshots: 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 + '@vanilla-extract/babel-plugin-debug-ids': 1.2.0 + '@vanilla-extract/css': 1.17.0 esbuild: 0.17.19 eval: 0.1.8 find-up: 5.0.0 @@ -6956,7 +7438,7 @@ snapshots: - supports-color - terser - '@vanilla-extract/private@1.0.5': {} + '@vanilla-extract/private@1.0.6': {} '@vitest/expect@0.28.5': dependencies: @@ -7012,6 +7494,8 @@ snapshots: acorn@8.12.1: {} + acorn@8.14.0: {} + aggregate-error@3.1.0: dependencies: clean-stack: 2.2.0 @@ -7131,7 +7615,7 @@ snapshots: astral-regex@2.0.0: {} - astring@1.8.6: {} + astring@1.9.0: {} autoprefixer@10.4.19(postcss@8.4.39): dependencies: @@ -7239,9 +7723,9 @@ 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: @@ -7267,6 +7751,11 @@ snapshots: tar: 6.2.1 unique-filename: 3.0.0 + call-bind-apply-helpers@1.0.1: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + call-bind@1.0.7: dependencies: es-define-property: 1.0.0 @@ -7275,6 +7764,11 @@ snapshots: get-intrinsic: 1.2.4 set-function-length: 1.2.2 + call-bound@1.0.3: + dependencies: + call-bind-apply-helpers: 1.0.1 + get-intrinsic: 1.2.7 + callsites@3.1.0: {} camelcase-css@2.0.1: {} @@ -7412,6 +7906,10 @@ snapshots: confbox@0.1.7: {} + confbox@0.1.8: {} + + consola@3.4.0: {} + content-disposition@0.5.4: dependencies: safe-buffer: 5.2.1 @@ -7422,7 +7920,7 @@ snapshots: cookie-signature@1.0.6: {} - cookie-signature@1.2.1: {} + cookie-signature@1.2.2: {} cookie@0.5.0: {} @@ -7564,7 +8062,11 @@ snapshots: dotenv@16.0.3: {} - dotenv@16.4.5: {} + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 duplexify@3.7.1: dependencies: @@ -7651,6 +8153,8 @@ snapshots: dependencies: get-intrinsic: 1.2.4 + es-define-property@1.0.1: {} + es-errors@1.3.0: {} es-module-lexer@1.5.4: {} @@ -7675,12 +8179,12 @@ snapshots: is-date-object: 1.0.5 is-symbol: 1.0.4 - esbuild-plugins-node-modules-polyfill@1.6.4(esbuild@0.17.6): + esbuild-plugins-node-modules-polyfill@1.6.8(esbuild@0.17.6): dependencies: '@jspm/core': 2.0.1 esbuild: 0.17.6 - local-pkg: 0.5.0 - resolve.exports: 2.0.2 + local-pkg: 0.5.1 + resolve.exports: 2.0.3 esbuild-register@3.5.0(esbuild@0.17.19): dependencies: @@ -7790,6 +8294,34 @@ snapshots: '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 + 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 + escalade@3.1.2: {} escape-html@1.0.3: {} @@ -8017,7 +8549,7 @@ snapshots: estree-util-attach-comments@2.1.1: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 estree-util-build-jsx@2.2.2: dependencies: @@ -8032,7 +8564,7 @@ snapshots: estree-util-to-js@1.2.0: dependencies: '@types/estree-jsx': 1.0.5 - astring: 1.8.6 + astring: 1.9.0 source-map: 0.7.4 estree-util-value-to-estree@1.3.0: @@ -8042,13 +8574,13 @@ snapshots: estree-util-visit@1.2.1: dependencies: '@types/estree-jsx': 1.0.5 - '@types/unist': 2.0.10 + '@types/unist': 2.0.11 estree-walker@0.6.1: {} estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 esutils@2.0.3: {} @@ -8089,7 +8621,7 @@ snapshots: expand-template@2.0.3: {} - express@4.21.1: + express@4.21.2: dependencies: accepts: 1.3.8 array-flatten: 1.1.1 @@ -8110,7 +8642,7 @@ snapshots: methods: 1.1.2 on-finished: 2.4.1 parseurl: 1.3.3 - path-to-regexp: 0.1.10 + path-to-regexp: 0.1.12 proxy-addr: 2.0.7 qs: 6.13.0 range-parser: 1.2.1 @@ -8159,6 +8691,10 @@ snapshots: 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: flat-cache: 3.2.0 @@ -8287,8 +8823,26 @@ snapshots: has-symbols: 1.0.3 hasown: 2.0.2 + get-intrinsic@1.2.7: + dependencies: + call-bind-apply-helpers: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + get-port@5.1.1: {} + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.0.0 + get-source@2.0.12: dependencies: data-uri-to-buffer: 2.0.2 @@ -8358,6 +8912,8 @@ snapshots: dependencies: get-intrinsic: 1.2.4 + gopd@1.2.0: {} + graceful-fs@4.2.11: {} grapheme-splitter@1.0.4: {} @@ -8387,6 +8943,8 @@ snapshots: has-symbols@1.0.3: {} + has-symbols@1.1.0: {} + has-tostringtag@1.0.2: dependencies: has-symbols: 1.0.3 @@ -8397,10 +8955,10 @@ snapshots: hast-util-to-estree@2.3.3: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 '@types/estree-jsx': 1.0.5 '@types/hast': 2.3.10 - '@types/unist': 2.0.10 + '@types/unist': 2.0.11 comma-separated-tokens: 2.0.3 estree-util-attach-comments: 2.1.1 estree-util-is-identifier-name: 2.1.0 @@ -8486,9 +9044,9 @@ snapshots: is-alphabetical: 2.0.1 is-decimal: 2.0.1 - is-arguments@1.1.1: + is-arguments@1.2.0: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 has-tostringtag: 1.0.2 is-array-buffer@3.0.4: @@ -8535,9 +9093,12 @@ snapshots: is-fullwidth-code-point@4.0.0: {} - is-generator-function@1.0.10: + is-generator-function@1.1.0: dependencies: + call-bound: 1.0.3 + get-proto: 1.0.1 has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 is-glob@4.0.3: dependencies: @@ -8563,15 +9124,22 @@ snapshots: is-plain-obj@4.1.0: {} - is-reference@3.0.2: + is-reference@3.0.3: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 is-regex@1.1.4: dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.2 + is-regex@1.2.1: + dependencies: + call-bound: 1.0.3 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + is-shared-array-buffer@1.0.3: dependencies: call-bind: 1.0.7 @@ -8704,10 +9272,10 @@ snapshots: local-pkg@0.4.3: {} - local-pkg@0.5.0: + local-pkg@0.5.1: dependencies: - mlly: 1.7.1 - pkg-types: 1.1.3 + mlly: 1.7.4 + pkg-types: 1.3.1 locate-path@5.0.0: dependencies: @@ -8771,16 +9339,18 @@ snapshots: marked@4.3.0: {} + math-intrinsics@1.1.0: {} + mdast-util-definitions@5.1.2: dependencies: '@types/mdast': 3.0.15 - '@types/unist': 2.0.10 + '@types/unist': 2.0.11 unist-util-visit: 4.1.2 mdast-util-from-markdown@1.3.1: dependencies: '@types/mdast': 3.0.15 - '@types/unist': 2.0.10 + '@types/unist': 2.0.11 decode-named-character-reference: 1.0.2 mdast-util-to-string: 3.2.0 micromark: 3.2.0 @@ -8815,11 +9385,11 @@ snapshots: '@types/estree-jsx': 1.0.5 '@types/hast': 2.3.10 '@types/mdast': 3.0.15 - '@types/unist': 2.0.10 + '@types/unist': 2.0.11 ccount: 2.0.1 mdast-util-from-markdown: 1.3.1 mdast-util-to-markdown: 1.5.0 - parse-entities: 4.0.1 + parse-entities: 4.0.2 stringify-entities: 4.0.4 unist-util-remove-position: 4.0.2 unist-util-stringify-position: 3.0.3 @@ -8866,7 +9436,7 @@ snapshots: mdast-util-to-markdown@1.5.0: dependencies: '@types/mdast': 3.0.15 - '@types/unist': 2.0.10 + '@types/unist': 2.0.11 longest-streak: 3.1.0 mdast-util-phrasing: 3.0.1 mdast-util-to-string: 3.2.0 @@ -8920,7 +9490,7 @@ snapshots: micromark-extension-mdx-expression@1.0.8: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 micromark-factory-mdx-expression: 1.0.9 micromark-factory-space: 1.1.0 micromark-util-character: 1.2.0 @@ -8932,7 +9502,7 @@ snapshots: micromark-extension-mdx-jsx@1.0.5: dependencies: '@types/acorn': 4.0.6 - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 estree-util-is-identifier-name: 2.1.0 micromark-factory-mdx-expression: 1.0.9 micromark-factory-space: 1.1.0 @@ -8948,7 +9518,7 @@ snapshots: micromark-extension-mdxjs-esm@1.0.5: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 micromark-core-commonmark: 1.1.0 micromark-util-character: 1.2.0 micromark-util-events-to-acorn: 1.2.3 @@ -8984,7 +9554,7 @@ snapshots: micromark-factory-mdx-expression@1.0.9: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 micromark-util-character: 1.2.0 micromark-util-events-to-acorn: 1.2.3 micromark-util-symbol: 1.1.0 @@ -9048,8 +9618,8 @@ snapshots: micromark-util-events-to-acorn@1.2.3: dependencies: '@types/acorn': 4.0.6 - '@types/estree': 1.0.5 - '@types/unist': 2.0.10 + '@types/estree': 1.0.6 + '@types/unist': 2.0.11 estree-util-visit: 1.2.1 micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 @@ -9086,7 +9656,7 @@ snapshots: micromark@3.2.0: dependencies: '@types/debug': 4.1.12 - debug: 4.3.5 + debug: 4.4.0 decode-named-character-reference: 1.0.2 micromark-core-commonmark: 1.1.0 micromark-factory-space: 1.1.0 @@ -9195,7 +9765,14 @@ 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 + + modern-ahocorasick@1.1.0: {} mousetrap@1.6.5: {} @@ -9404,10 +9981,9 @@ snapshots: dependencies: callsites: 3.1.0 - parse-entities@4.0.1: + parse-entities@4.0.2: dependencies: - '@types/unist': 2.0.10 - character-entities: 2.0.2 + '@types/unist': 2.0.11 character-entities-legacy: 3.0.0 character-reference-invalid: 2.0.1 decode-named-character-reference: 1.0.2 @@ -9436,7 +10012,7 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 - path-to-regexp@0.1.10: {} + path-to-regexp@0.1.12: {} path-to-regexp@6.3.0: {} @@ -9444,6 +10020,8 @@ snapshots: pathe@1.1.2: {} + pathe@2.0.2: {} + pathval@1.1.1: {} peek-stream@1.1.3: @@ -9454,9 +10032,9 @@ snapshots: periscopic@3.1.0: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 estree-walker: 3.0.3 - is-reference: 3.0.2 + is-reference: 3.0.3 picocolors@1.0.1: {} @@ -9464,6 +10042,8 @@ snapshots: picomatch@2.3.1: {} + picomatch@4.0.2: {} + pidtree@0.6.0: {} pify@2.3.0: {} @@ -9482,6 +10062,12 @@ snapshots: mlly: 1.7.1 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: {} @@ -9514,50 +10100,51 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.4.39 - postcss-load-config@3.1.4(postcss@8.4.39): + postcss-load-config@4.0.2(postcss@8.4.39): dependencies: - lilconfig: 2.1.0 - yaml: 1.10.2 + lilconfig: 3.1.2 + yaml: 2.4.5 optionalDependencies: postcss: 8.4.39 - postcss-load-config@4.0.2(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 - yaml: 2.4.5 optionalDependencies: + jiti: 1.21.6 postcss: 8.4.39 + yaml: 2.4.5 postcss-modules-extract-imports@3.1.0(postcss@8.4.39): dependencies: postcss: 8.4.39 - postcss-modules-local-by-default@4.0.5(postcss@8.4.39): + postcss-modules-local-by-default@4.2.0(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-selector-parser: 7.0.0 postcss-value-parser: 4.2.0 - postcss-modules-scope@3.2.0(postcss@8.4.39): + postcss-modules-scope@3.2.1(postcss@8.4.39): dependencies: postcss: 8.4.39 - postcss-selector-parser: 6.1.1 + postcss-selector-parser: 7.0.0 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): + postcss-modules@6.0.1(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-local-by-default: 4.2.0(postcss@8.4.39) + postcss-modules-scope: 3.2.1(postcss@8.4.39) postcss-modules-values: 4.0.0(postcss@8.4.39) string-hash: 1.1.3 @@ -9576,6 +10163,11 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 + postcss-selector-parser@7.0.0: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + postcss-value-parser@4.2.0: {} postcss@8.4.39: @@ -9712,14 +10304,14 @@ 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-dom@6.28.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@remix-run/router': 1.21.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-router: 6.28.0(react@18.2.0) + react-router: 6.28.1(react@18.2.0) - react-router@6.28.0(react@18.2.0): + react-router@6.28.1(react@18.2.0): dependencies: '@remix-run/router': 1.21.0 react: 18.2.0 @@ -9828,7 +10420,7 @@ snapshots: resolve-from@5.0.0: {} - resolve.exports@2.0.2: {} + resolve.exports@2.0.3: {} resolve@1.22.8: dependencies: @@ -9895,6 +10487,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 @@ -9924,6 +10541,12 @@ snapshots: es-errors: 1.3.0 is-regex: 1.1.4 + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-regex: 1.2.1 + safer-buffer@2.1.2: {} scheduler@0.23.2: @@ -10302,6 +10925,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: {} @@ -10344,28 +10974,32 @@ snapshots: 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.5.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 transitivePeerDependencies: + - jiti - supports-color - - ts-node + - tsx + - yaml tunnel-agent@0.6.0: dependencies: @@ -10477,7 +11111,7 @@ snapshots: unified@10.1.2: dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.11 bail: 2.0.2 extend: 3.0.2 is-buffer: 2.0.5 @@ -10497,33 +11131,33 @@ snapshots: unist-util-is@5.2.1: dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.11 unist-util-position-from-estree@1.1.2: dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.11 unist-util-position@4.0.4: dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.11 unist-util-remove-position@4.0.2: dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.11 unist-util-visit: 4.1.2 unist-util-stringify-position@3.0.3: dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.11 unist-util-visit-parents@5.1.3: dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.11 unist-util-is: 5.2.1 unist-util-visit@4.1.2: dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.11 unist-util-is: 5.2.1 unist-util-visit-parents: 5.1.3 @@ -10550,8 +11184,8 @@ snapshots: util@0.12.5: dependencies: inherits: 2.0.4 - is-arguments: 1.1.1 - is-generator-function: 1.0.10 + is-arguments: 1.2.0 + is-generator-function: 1.1.0 is-typed-array: 1.1.13 which-typed-array: 1.1.15 @@ -10585,12 +11219,12 @@ snapshots: vfile-message@3.1.4: dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.11 unist-util-stringify-position: 3.0.3 vfile@5.3.7: dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.11 is-buffer: 2.0.5 unist-util-stringify-position: 3.0.3 vfile-message: 3.1.4 @@ -10618,9 +11252,9 @@ snapshots: vite-node@1.6.0(@types/node@18.19.39): dependencies: cac: 6.7.14 - debug: 4.3.5 + debug: 4.4.0 pathe: 1.1.2 - picocolors: 1.0.1 + picocolors: 1.1.1 vite: 5.3.4(@types/node@18.19.39) transitivePeerDependencies: - '@types/node' @@ -10781,7 +11415,7 @@ snapshots: '@cloudflare/workerd-linux-arm64': 1.20241205.0 '@cloudflare/workerd-windows-64': 1.20241205.0 - wrangler@3.96.0(@cloudflare/workers-types@4.20241018.0): + wrangler@3.96.0(@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) @@ -10801,7 +11435,7 @@ snapshots: workerd: 1.20241205.0 xxhash-wasm: 1.0.2 optionalDependencies: - '@cloudflare/workers-types': 4.20241018.0 + '@cloudflare/workers-types': 4.20250109.0 fsevents: 2.3.3 transitivePeerDependencies: - bufferutil @@ -10838,8 +11472,6 @@ snapshots: yallist@4.0.0: {} - yaml@1.10.2: {} - yaml@2.4.5: {} yargs-parser@21.1.1: {} diff --git a/templates/remix/package.json b/templates/remix/package.json index e21d1092..e858c45e 100644 --- a/templates/remix/package.json +++ b/templates/remix/package.json @@ -27,7 +27,7 @@ "tiny-invariant": "^1.3.1" }, "devDependencies": { - "@cloudflare/workers-types": "^4.20241011.0", + "@cloudflare/workers-types": "^4.20250109.0", "@react-router/dev": "^7.0.0", "@types/react": "^18.0.28", "@types/react-dom": "^18.0.11", From 9e09e1af8683544bc2e5372f5ba2d98245eb1696 Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Mon, 20 Jan 2025 08:54:22 -0800 Subject: [PATCH 18/29] =?UTF-8?q?Adapt=20superflare=20from=20remix=20?= =?UTF-8?q?=E2=86=92=20react-router?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit this required duplicating node-adapter.js and maintaining it within superflare-remix, because it’s no longer included in the published package’s dist/ directory. here’s a PR that exposes the (from|to)NodeRequest utilities that we depend on in the superflareDevProxyVitePlugin: https://github.com/remix-run/react-router/pull/12774 if it gets merged, we can remove superflare-remix/node.adapter.ts and import those utils alongside cloudflareDevProxy note that i also needed to update superflare-remix’s tsconfig.json module and moduleResolution settings to get it to build without error (presumably due to changes between the published remix vs react-router packages --- packages/superflare-remix/dev.ts | 16 +- packages/superflare-remix/index.ts | 6 +- packages/superflare-remix/load-context.ts | 8 +- packages/superflare-remix/node-adapter.ts | 106 + packages/superflare-remix/package.json | 14 +- packages/superflare-remix/tsconfig.json | 3 +- packages/superflare/cli/dev.ts | 2 +- pnpm-lock.yaml | 2984 +-------------------- 8 files changed, 257 insertions(+), 2882 deletions(-) create mode 100644 packages/superflare-remix/node-adapter.ts diff --git a/packages/superflare-remix/dev.ts b/packages/superflare-remix/dev.ts index eee2f24d..011a404b 100644 --- a/packages/superflare-remix/dev.ts +++ b/packages/superflare-remix/dev.ts @@ -1,15 +1,9 @@ -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 { 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"; +import { fromNodeRequest, toNodeRequest } from "./node-adapter"; /** * This is copied from the workers-sdk repo (used for wrangler’s getPlatformProxy). @@ -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,7 +55,7 @@ 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"); 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/node-adapter.ts b/packages/superflare-remix/node-adapter.ts new file mode 100644 index 00000000..052faf75 --- /dev/null +++ b/packages/superflare-remix/node-adapter.ts @@ -0,0 +1,106 @@ +// https://github.com/remix-run/react-router/blob/main/packages/react-router-dev/vite/node-adapter.ts +declare module "set-cookie-parser"; +import type { IncomingHttpHeaders, ServerResponse } from "node:http"; +import { once } from "node:events"; +import { Readable } from "node:stream"; +import { splitCookiesString } from "set-cookie-parser"; +import { createReadableStreamFromReadable } from "@react-router/node"; +import type * as Vite from "vite"; + +export type NodeRequestHandler = ( + req: Vite.Connect.IncomingMessage, + res: ServerResponse +) => Promise; + +function fromNodeHeaders(nodeHeaders: IncomingHttpHeaders): Headers { + let headers = new Headers(); + + for (let [key, values] of Object.entries(nodeHeaders)) { + if (values) { + if (Array.isArray(values)) { + for (let value of values) { + headers.append(key, value); + } + } else { + headers.set(key, values); + } + } + } + + return headers; +} + +// Based on `createRemixRequest` in packages/react-router-express/server.ts +export function fromNodeRequest( + nodeReq: Vite.Connect.IncomingMessage, + nodeRes: ServerResponse +): Request { + let origin = + nodeReq.headers.origin && "null" !== nodeReq.headers.origin + ? nodeReq.headers.origin + : `http://${nodeReq.headers.host}`; + // Use `req.originalUrl` so React Router is aware of the full path + invariant( + nodeReq.originalUrl, + "Expected `nodeReq.originalUrl` to be defined" + ); + // @ts-expect-error this is a @react-router/dev file + let url = new URL(nodeReq.originalUrl, origin); + + // Abort action/loaders once we can no longer write a response + let controller: AbortController | null = new AbortController(); + let init: RequestInit = { + method: nodeReq.method, + headers: fromNodeHeaders(nodeReq.headers), + signal: controller.signal, + }; + + // Abort action/loaders once we can no longer write a response iff we have + // not yet sent a response (i.e., `close` without `finish`) + // `finish` -> done rendering the response + // `close` -> response can no longer be written to + nodeRes.on("finish", () => (controller = null)); + nodeRes.on("close", () => controller?.abort()); + + if (nodeReq.method !== "GET" && nodeReq.method !== "HEAD") { + init.body = createReadableStreamFromReadable(nodeReq); + (init as { duplex: "half" }).duplex = "half"; + } + + return new Request(url.href, init); +} + +// Adapted from solid-start's `handleNodeResponse`: +// https://github.com/solidjs/solid-start/blob/7398163869b489cce503c167e284891cf51a6613/packages/start/node/fetch.js#L162-L185 +export async function toNodeRequest(res: Response, nodeRes: ServerResponse) { + nodeRes.statusCode = res.status; + nodeRes.statusMessage = res.statusText; + + let cookiesStrings = []; + + for (let [name, value] of res.headers) { + if (name === "set-cookie") { + cookiesStrings.push(...splitCookiesString(value)); + } else nodeRes.setHeader(name, value); + } + + if (cookiesStrings.length) { + nodeRes.setHeader("set-cookie", cookiesStrings); + } + + if (res.body) { + // https://github.com/microsoft/TypeScript/issues/29867 + let responseBody = res.body as unknown as AsyncIterable; + let readable = Readable.from(responseBody); + readable.pipe(nodeRes); + await once(readable, "end"); + } else { + nodeRes.end(); + } +} + +function invariant(value: any, message?: string) { + if (value === false || value == null) { + throw new Error(message); + } +} diff --git a/packages/superflare-remix/package.json b/packages/superflare-remix/package.json index d990d4e2..c11d1ce0 100644 --- a/packages/superflare-remix/package.json +++ b/packages/superflare-remix/package.json @@ -38,9 +38,10 @@ "license": "MIT", "devDependencies": { "@cloudflare/workers-types": "^4.20250109.0", - "@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/node": "^7", + "@types/set-cookie-parser": "^2.4.10", + "react-router": "^7", "tsconfig": "workspace:*", "tsup": "^8.3.5", "typescript": "^5", @@ -48,12 +49,13 @@ "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/node": "^7", + "react-router": "^7", "wrangler": "^3.91.0" }, "dependencies": { + "set-cookie-parser": "^2.7.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/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/pnpm-lock.yaml b/pnpm-lock.yaml index 25cdbb75..028c182e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -44,10 +44,10 @@ importers: version: 0.4.0(@types/react@18.3.3)(react@18.2.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.5.3)(yaml@2.4.5))(typescript@5.5.3) + 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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20250109.0)))(typescript@5.5.3) + 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.21 js-yaml: specifier: ^4.1.0 version: 4.1.0 @@ -99,7 +99,7 @@ importers: 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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20250109.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.20250109.0) + version: 3.103.2(@cloudflare/workers-types@4.20250109.0) examples/remix-cms: dependencies: @@ -150,10 +150,10 @@ importers: version: 2.1.5(react@18.2.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.5.3)(yaml@2.4.5))(typescript@5.5.3) + 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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20250109.0)))(typescript@5.5.3) + 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 @@ -199,7 +199,7 @@ importers: version: 7.6.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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20250109.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) @@ -229,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.20250109.0) + version: 3.103.2(@cloudflare/workers-types@4.20250109.0) packages/eslint-config-custom: dependencies: @@ -250,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.3.3(eslint@7.32.0) 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: @@ -299,7 +299,7 @@ importers: version: 1.3.3 wrangler: specifier: ^3.91.0 - version: 3.96.0(@cloudflare/workers-types@4.20250109.0) + version: 3.103.2(@cloudflare/workers-types@4.20250109.0) yargs: specifier: ^17.6.2 version: 17.7.2 @@ -342,16 +342,19 @@ importers: version: link:../tsconfig tsup: specifier: ^8.3.5 - version: 8.3.5(jiti@1.21.6)(postcss@8.4.39)(typescript@5.5.3)(yaml@2.4.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: + set-cookie-parser: + specifier: ^2.7.1 + version: 2.7.1 superflare: specifier: workspace:* version: link:../superflare @@ -359,30 +362,33 @@ importers: '@cloudflare/workers-types': specifier: ^4.20250109.0 version: 4.20250109.0 - '@remix-run/cloudflare': - specifier: ^2.12.1 - version: 2.15.2(@cloudflare/workers-types@4.20250109.0)(typescript@5.5.3) - '@remix-run/dev': - specifier: ^2.12.1 - version: 2.15.2(@remix-run/react@2.15.2(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.20250109.0)) - '@remix-run/server-runtime': - specifier: ^2.12.1 - version: 2.15.2(typescript@5.5.3) + '@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/node': + specifier: ^7 + version: 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) + '@types/set-cookie-parser': + specifier: ^2.4.10 + version: 2.4.10 + 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: ^8.3.5 - version: 8.3.5(jiti@1.21.6)(postcss@8.4.39)(typescript@5.5.3)(yaml@2.4.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.20250109.0) + version: 3.103.2(@cloudflare/workers-types@4.20250109.0) packages/tsconfig: {} @@ -390,10 +396,10 @@ importers: dependencies: '@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.5.3)(yaml@2.4.5))(typescript@5.5.3) + 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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20250109.0)))(typescript@5.5.3) + 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 @@ -421,7 +427,7 @@ importers: 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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20250109.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 +436,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.20250109.0) + version: 3.103.2(@cloudflare/workers-types@4.20250109.0) packages: @@ -754,39 +760,36 @@ 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] @@ -822,9 +825,6 @@ packages: search-insights: optional: true - '@emotion/hash@0.9.2': - resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} - '@esbuild-plugins/node-globals-polyfill@0.2.3': resolution: {integrity: sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==} peerDependencies: @@ -853,12 +853,6 @@ packages: 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'} @@ -883,12 +877,6 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.17.6': - resolution: {integrity: sha512-bSC9YVUjADDy1gae8RrioINU6e1lCkg3VGVwm0QQ2E1CWcC4gnMce9+B6RpxuSsrsXsk1yojn7sp1fnG8erE2g==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.18.20': resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} engines: {node: '>=12'} @@ -913,12 +901,6 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.17.6': - resolution: {integrity: sha512-MVcYcgSO7pfu/x34uX9u2QIZHmXAB7dEiLQC5bBl5Ryqtpj9lT2sg3gNDEsrPEmimSJW2FXIaxqSQ501YLDsZQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.18.20': resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} engines: {node: '>=12'} @@ -943,12 +925,6 @@ packages: 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'} @@ -973,12 +949,6 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.17.6': - resolution: {integrity: sha512-xh2A5oPrYRfMFz74QXIQTQo8uA+hYzGWJFoeTE8EvoZGHb+idyV4ATaukaUvnnxJiauhs/fPx3vYhU4wiGfosg==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.18.20': resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} engines: {node: '>=12'} @@ -1003,12 +973,6 @@ packages: 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'} @@ -1033,12 +997,6 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.17.6': - resolution: {integrity: sha512-Uh3HLWGzH6FwpviUcLMKPCbZUAFzv67Wj5MTwK6jn89b576SR2IbEp+tqUHTr8DIl0iDmBAf51MVaP7pw6PY5Q==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.18.20': resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} engines: {node: '>=12'} @@ -1063,12 +1021,6 @@ packages: 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'} @@ -1093,12 +1045,6 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.17.6': - resolution: {integrity: sha512-7YdGiurNt7lqO0Bf/U9/arrPWPqdPqcV6JCZda4LZgEn+PTQ5SMEI4MGR52Bfn3+d6bNEGcWFzlIxiQdS48YUw==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.18.20': resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} engines: {node: '>=12'} @@ -1123,12 +1069,6 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.17.6': - resolution: {integrity: sha512-ujp8uoQCM9FRcbDfkqECoARsLnLfCUhKARTP56TFPog8ie9JG83D5GVKjQ6yVrEVdMie1djH86fm98eY3quQkQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.18.20': resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} engines: {node: '>=12'} @@ -1153,12 +1093,6 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.17.6': - resolution: {integrity: sha512-y2NX1+X/Nt+izj9bLoiaYB9YXT/LoaQFYvCkVD77G/4F+/yuVXYCWz4SE9yr5CBMbOxOfBcy/xFL4LlOeNlzYQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.18.20': resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} engines: {node: '>=12'} @@ -1183,12 +1117,6 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.17.6': - resolution: {integrity: sha512-09AXKB1HDOzXD+j3FdXCiL/MWmZP0Ex9eR8DLMBVcHorrWJxWmY8Nms2Nm41iRM64WVx7bA/JVHMv081iP2kUA==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.18.20': resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} engines: {node: '>=12'} @@ -1213,12 +1141,6 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.17.6': - resolution: {integrity: sha512-AmLhMzkM8JuqTIOhxnX4ubh0XWJIznEynRnZAVdA2mMKE6FAfwT2TWKTwdqMG+qEaeyDPtfNoZRpJbD4ZBv0Tg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.18.20': resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} engines: {node: '>=12'} @@ -1243,12 +1165,6 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.17.6': - resolution: {integrity: sha512-Y4Ri62PfavhLQhFbqucysHOmRamlTVK10zPWlqjNbj2XMea+BOs4w6ASKwQwAiqf9ZqcY9Ab7NOU4wIgpxwoSQ==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.18.20': resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} engines: {node: '>=12'} @@ -1273,12 +1189,6 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.17.6': - resolution: {integrity: sha512-SPUiz4fDbnNEm3JSdUW8pBJ/vkop3M1YwZAVwvdwlFLoJwKEZ9L98l3tzeyMzq27CyepDQ3Qgoba44StgbiN5Q==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.18.20': resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} engines: {node: '>=12'} @@ -1303,12 +1213,6 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.17.6': - resolution: {integrity: sha512-a3yHLmOodHrzuNgdpB7peFGPx1iJ2x6m+uDvhP2CKdr2CwOaqEFMeSqYAHU7hG+RjCq8r2NFujcd/YsEsFgTGw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.18.20': resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} engines: {node: '>=12'} @@ -1339,12 +1243,6 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.17.6': - resolution: {integrity: sha512-EanJqcU/4uZIBreTrnbnre2DXgXSa+Gjap7ifRfllpmyAU7YMvaXmljdArptTHmjrkkKm9BK6GH5D5Yo+p6y5A==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.18.20': resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} engines: {node: '>=12'} @@ -1375,12 +1273,6 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.17.6': - resolution: {integrity: sha512-xaxeSunhQRsTNGFanoOkkLtnmMn5QbA0qBhNet/XLVsc+OVkpIWPHcr3zTW2gxVU5YOHFbIHR9ODuaUdNza2Vw==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.18.20': resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} engines: {node: '>=12'} @@ -1405,12 +1297,6 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.17.6': - resolution: {integrity: sha512-gnMnMPg5pfMkZvhHee21KbKdc6W3GR8/JuE0Da1kjwpK6oiFU3nqfHuVPgUX2rsOx9N2SadSQTIYV1CIjYG+xw==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.18.20': resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} engines: {node: '>=12'} @@ -1435,12 +1321,6 @@ packages: 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'} @@ -1465,12 +1345,6 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.17.6': - resolution: {integrity: sha512-96yEFzLhq5bv9jJo5JhTs1gI+1cKQ83cUpyxHuGqXVwQtY5Eq54ZEsKs8veKtiKwlrNimtckHEkj4mRh4pPjsg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.18.20': resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} engines: {node: '>=12'} @@ -1495,12 +1369,6 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.17.6': - resolution: {integrity: sha512-n6d8MOyUrNp6G4VSpRcgjs5xj4A91svJSaiwLIDWVWEsZtpN5FA9NlBbZHDmAJc2e8e6SF4tkBD3HAvPF+7igA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.18.20': resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} engines: {node: '>=12'} @@ -1643,9 +1511,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==} @@ -1664,9 +1529,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'} @@ -1702,10 +1564,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} @@ -1803,85 +1661,6 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - '@remix-run/cloudflare@2.15.2': - resolution: {integrity: sha512-6D/WTx3IbQYCWQ/BVNRItXI2upgDvkcCVYwZhvIctF4o+5+IaF21ZA1HTekQEnBfmYTpffJ3Jko1sCkqoMeOdw==} - engines: {node: '>=18.0.0'} - peerDependencies: - '@cloudflare/workers-types': ^4.0.0 - typescript: ^5.1.0 - peerDependenciesMeta: - typescript: - optional: true - - '@remix-run/dev@2.15.2': - resolution: {integrity: sha512-o8lix8t4GBhtXjo/G1IzwtHVW5GRMs7amtFtBHiR1bhSyK7VyX5qGtTDmJyny5QDv83pxaLOCiE0dUng2BCoyQ==} - engines: {node: '>=18.0.0'} - hasBin: true - peerDependencies: - '@remix-run/react': ^2.15.2 - '@remix-run/serve': ^2.15.2 - typescript: ^5.1.0 - vite: ^5.1.0 - wrangler: ^3.28.2 - peerDependenciesMeta: - '@remix-run/serve': - optional: true - typescript: - optional: true - vite: - optional: true - wrangler: - optional: true - - '@remix-run/node@2.15.2': - resolution: {integrity: sha512-NS/h5uxje7DYCNgcKqKAiUhf0r2HVnoYUBWLyIIMmCUP1ddWurBP6xTPcWzGhEvV/EvguniYi1wJZ5+X8sonWw==} - engines: {node: '>=18.0.0'} - peerDependencies: - typescript: ^5.1.0 - peerDependenciesMeta: - typescript: - optional: true - - '@remix-run/react@2.15.2': - resolution: {integrity: sha512-NAAMsSgoC/sdOgovUewwRCE/RUm3F+MBxxZKfwu3POCNeHaplY5qGkH/y8PUXvdN1EBG7Z0Ko43dyzCfcEy5PA==} - engines: {node: '>=18.0.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - 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.15.2': - resolution: {integrity: sha512-OqiPcvEnnU88B8b1LIWHHkQ3Tz2GDAmQ1RihFNQsbrFKpDsQLkw0lJlnfgKA/uHd0CEEacpfV7C9qqJT3V6Z2g==} - engines: {node: '>=18.0.0'} - peerDependencies: - typescript: ^5.1.0 - peerDependenciesMeta: - typescript: - optional: true - - '@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==} - '@rollup/rollup-android-arm-eabi@4.18.1': resolution: {integrity: sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==} cpu: [arm] @@ -2087,9 +1866,6 @@ packages: '@tanstack/virtual-core@3.8.3': resolution: {integrity: sha512-vd2A2TnM5lbnWZnHi9B+L2gPtkSeOtJOAw358JqokIH1+v2J7vUAzFVPwB/wrye12RFOurffXu33plm4uQ+JBQ==} - '@types/acorn@4.0.6': - resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} - '@types/bcryptjs@2.4.6': resolution: {integrity: sha512-9xlo6R2qDs5uixm0bcIqCeMCE6HiQsIyel9KQySStiyqNl2tnj2mP3DX1Nf56MD6KMenNNlBBsy3LJ7gUEQPXQ==} @@ -2105,12 +1881,6 @@ 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==} @@ -2120,9 +1890,6 @@ packages: '@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==} @@ -2135,21 +1902,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@2.1.0': - resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - - '@types/node-forge@1.3.11': - resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} - '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} @@ -2174,15 +1929,15 @@ packages: '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + '@types/set-cookie-parser@2.4.10': + resolution: {integrity: sha512-GGmQVGpQWUe5qglJozEjZV/5dyxbOOZ0LHe/lqyWssB88Y4svNfst0uqBVscdDeIKl5Jy5+aPSvy7mI9tYRguw==} + '@types/tar-fs@2.0.4': resolution: {integrity: sha512-ipPec0CjTmVDWE+QKr9cTmIIoTl7dFG/yARCM5MqK8i6CNLIG1P8x4kwDsOQY1ChZOZjH0wO9nvfgBvWl4R3kA==} '@types/tar-stream@3.1.3': resolution: {integrity: sha512-Zbnx4wpkWBMBSu5CytMbrT5ZpMiF55qgM+EpHzR4yIDu7mv52cej8hTkOc6K+LzpkOAbxwn/m7j3iO+/l42YkQ==} - '@types/unist@2.0.11': - resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} - '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} @@ -2192,18 +1947,6 @@ packages: '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@vanilla-extract/babel-plugin-debug-ids@1.2.0': - resolution: {integrity: sha512-z5nx2QBnOhvmlmBKeRX5sPVLz437wV30u+GJL+Hzj1rGiJYVNvgIIlzUpRNjVQ0MgAgiQIqIUbqPnmMc6HmDlQ==} - - '@vanilla-extract/css@1.17.0': - resolution: {integrity: sha512-W6FqVFDD+C71ZlKsuj0MxOXSvHb1tvQ9h/+79aYfi097wLsALrnnBzd0by8C///iurrpQ3S+SH74lXd7Lr9MvA==} - - '@vanilla-extract/integration@6.5.0': - resolution: {integrity: sha512-E2YcfO8vA+vs+ua+gpvy1HRqvgWbI+MTlUpxA8FvatOvybuNcWAY0CKwQ/Gpj7rswYKtC6C7+xw33emM6/ImdQ==} - - '@vanilla-extract/private@1.0.6': - resolution: {integrity: sha512-ytsG/JLweEjw7DBuZ/0JCN4WAQgM9erfSTdS1NQY778hFQSZ6cfCDEZZ0sgVm4k54uNz6ImKB33AYvSR//fjxw==} - '@vitest/expect@0.28.5': resolution: {integrity: sha512-gqTZwoUTwepwGIatnw4UKpQfnoyV0Z9Czn9+Lo2/jLIt4/AXLTn+oVZxlQ7Ng8bzcNkR+3DqLJ08kNr8jRmdNQ==} @@ -2219,17 +1962,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: @@ -2254,10 +1986,6 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} - ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -2316,9 +2044,6 @@ packages: 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'} @@ -2349,10 +2074,6 @@ packages: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} - astring@1.9.0: - resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} - hasBin: true - autoprefixer@10.4.19: resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} engines: {node: ^10 || ^12 || >=14} @@ -2367,9 +2088,6 @@ packages: babel-dead-code-elimination@1.0.8: resolution: {integrity: sha512-og6HQERk0Cmm+nTT4Od2wbPtgABXFMPaHACjbKLulZIFMkYyXZLkUGuAxdgpMJBrxyt/XFpSz++lNzjbcMnPkQ==} - bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} - balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -2399,10 +2117,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==} @@ -2440,30 +2154,14 @@ packages: 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-apply-helpers@1.0.1: - resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} - engines: {node: '>= 0.4'} - call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} - call-bound@1.0.3: - resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} - engines: {node: '>= 0.4'} - callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -2478,9 +2176,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'} @@ -2493,18 +2188,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==} @@ -2522,26 +2205,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.*} @@ -2557,10 +2224,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'} @@ -2582,9 +2245,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'} @@ -2607,36 +2267,13 @@ packages: resolution: {integrity: sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==} engines: {node: ^14.18.0 || >=16.10.0} - content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} - - content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} - 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.2: - resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} - 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'} @@ -2651,10 +2288,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'} @@ -2666,10 +2299,6 @@ packages: 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'} @@ -2686,17 +2315,6 @@ 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@4.3.5: resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} engines: {node: '>=6.0'} @@ -2715,9 +2333,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'} @@ -2741,16 +2356,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'} @@ -2762,18 +2367,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'} @@ -2812,19 +2405,12 @@ packages: resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} engines: {node: '>=12'} - dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} - 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==} @@ -2834,14 +2420,6 @@ 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==} @@ -2860,10 +2438,6 @@ packages: resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} engines: {node: '>= 0.4'} - es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} - es-errors@1.3.0: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} @@ -2886,12 +2460,6 @@ packages: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} - esbuild-plugins-node-modules-polyfill@1.6.8: - resolution: {integrity: sha512-bRB4qbgUDWrdY1eMk123KiaCSW9VzQ+QLZrmU7D//cCFkmksPd9mUMpmWoFK/rxjIeTfTSOpKCoGoimlvI+AWw==} - engines: {node: '>=14.0.0'} - peerDependencies: - esbuild: '>=0.14.0 <=0.24.x' - esbuild-register@3.5.0: resolution: {integrity: sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==} peerDependencies: @@ -2902,11 +2470,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'} @@ -2926,9 +2489,6 @@ packages: 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'} @@ -2947,8 +2507,8 @@ packages: peerDependencies: eslint: '>=7.0.0' - eslint-config-turbo@2.3.0: - resolution: {integrity: sha512-Nm9WZgNoUIJw4bpYQugGCDjzYy1TlUD4sQ/nGblL+HdNqJWCj5NqXbJ1k+TBfYedhr65dlGoAFPYUOfjUOmKVg==} + eslint-config-turbo@2.3.3: + resolution: {integrity: sha512-cM9wSBYowQIrjx2MPCzFE6jTnG4vpTPJKZ/O+Ps3CqrmGK/wtNOsY6WHGMwLtKY/nNbgRahAJH6jGVF6k2coOg==} peerDependencies: eslint: '>6.6.0' @@ -2958,8 +2518,8 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - eslint-plugin-turbo@2.3.0: - resolution: {integrity: sha512-2iVUoIhrjp6kI8p0J4NewKPpXaKrHvL4K4eRnNXbqZvP/7xsm4Of+33B3b7m7OsS0UgX8HHOjlB9bEjigKMkMA==} + eslint-plugin-turbo@2.3.3: + resolution: {integrity: sha512-j8UEA0Z+NNCsjZep9G5u5soDQHcXq/x4amrwulk6eHF1U91H2qAjp5I4jQcvJewmccCJbVp734PkHHTRnosjpg==} peerDependencies: eslint: '>6.6.0' @@ -3040,54 +2600,13 @@ 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-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'} - execa@6.1.0: resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3100,13 +2619,6 @@ packages: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} - express@4.21.2: - resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} - 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==} @@ -3133,9 +2645,6 @@ 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: @@ -3155,10 +2664,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'} @@ -3187,21 +2692,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==} @@ -3217,14 +2710,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==} @@ -3246,9 +2731,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'} @@ -3264,18 +2746,6 @@ packages: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} - get-intrinsic@1.2.7: - resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} - engines: {node: '>= 0.4'} - - get-port@5.1.1: - resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} - engines: {node: '>=8'} - - get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} - get-source@2.0.12: resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} @@ -3331,10 +2801,6 @@ packages: gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} - graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -3370,10 +2836,6 @@ packages: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} - has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} - has-tostringtag@1.0.2: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} @@ -3382,12 +2844,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'} @@ -3396,17 +2852,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'} @@ -3415,12 +2863,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==} @@ -3440,10 +2882,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. @@ -3454,27 +2892,10 @@ 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.2.0: - resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} - engines: {node: '>= 0.4'} - is-array-buffer@3.0.4: resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} engines: {node: '>= 0.4'} @@ -3490,10 +2911,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'} @@ -3510,9 +2927,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==} @@ -3528,10 +2942,6 @@ packages: resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} engines: {node: '>=12'} - is-generator-function@1.1.0: - resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} - engines: {node: '>= 0.4'} - is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -3540,13 +2950,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-negative-zero@2.0.3: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} @@ -3563,33 +2966,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.3: - resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} - is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} - is-regex@1.2.1: - resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} - 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} @@ -3610,10 +2994,6 @@ 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-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} @@ -3631,22 +3011,16 @@ packages: resolution: {integrity: sha512-4X8KZHyaIqXOqEv1qfZOqshMX3r7Q/VtMEMzuGPZljDMEIGpX7bcGODR9gZztXdcPBEJpNioQXXBJun+xi2G5g==} engines: {node: '>=18'} - isbot@5.1.17: - resolution: {integrity: sha512-/wch8pRKZE+aoVhRX/hYPY1C7dMCeeMyhkQLNLNlYAbGQn9bkvMB8fOUXNnk5I0m4vDYbBJ9ciVtkr9zfBJ7qA==} + isbot@5.1.21: + resolution: {integrity: sha512-0q3naRVpENL0ReKHeNcwn/G7BDynp0DqZUckKyFtM9+hmpnPqgm8+8wbjiVZ0XNhq1wPQV28/Pb8Snh5adeUHA==} engines: {node: '>=18'} isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - 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 @@ -3740,18 +3114,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.1: - resolution: {integrity: sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==} - engines: {node: '>=14'} - locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -3760,15 +3126,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==} @@ -3787,13 +3147,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 @@ -3817,62 +3170,11 @@ packages: 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 - math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} - - 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==} @@ -3880,128 +3182,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'} @@ -4014,8 +3203,8 @@ 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 @@ -4029,51 +3218,19 @@ 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==} mlly@1.7.4: resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} - modern-ahocorasick@1.1.0: - resolution: {integrity: sha512-sEKPVl2rM+MNVkGQt3ChdmD8YsigmXdn5NifZn6jiwn9LRJpWm8F3guhaqrJT/JOat6pwpbXEk6kv+b9DMIjsQ==} - mousetrap@1.6.5: resolution: {integrity: sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==} @@ -4081,13 +3238,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==} @@ -4112,18 +3262,10 @@ packages: 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==} @@ -4155,10 +3297,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} @@ -4205,17 +3343,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'} @@ -4224,10 +3354,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'} @@ -4235,9 +3361,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'} @@ -4266,10 +3389,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'} @@ -4284,20 +3403,9 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - parse-entities@4.0.2: - resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} - - 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'} @@ -4321,9 +3429,6 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - path-to-regexp@0.1.12: - resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} - path-to-regexp@6.3.0: resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} @@ -4343,9 +3448,6 @@ packages: 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==} @@ -4360,11 +3462,6 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} - pidtree@0.6.0: - resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} - engines: {node: '>=0.10'} - hasBin: true - pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} @@ -4395,12 +3492,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} @@ -4455,35 +3546,6 @@ packages: 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.2.0: - resolution: {integrity: sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-scope@3.2.1: - resolution: {integrity: sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==} - 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.1: - resolution: {integrity: sha512-zyo2sAkVvuZFFy0gc2+4O+xar5dYlaVy/ebO24KT0ftk/iJevSNyPyQellsBLlnccwh7f6V6Y4GvuKRYToNgpQ==} - peerDependencies: - postcss: ^8.0.0 - postcss-nested@6.0.1: resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} @@ -4498,10 +3560,6 @@ packages: resolution: {integrity: sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==} engines: {node: '>=4'} - postcss-selector-parser@7.0.0: - resolution: {integrity: sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==} - engines: {node: '>=4'} - postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -4537,10 +3595,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==} @@ -4575,13 +3629,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==} @@ -4598,21 +3645,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 @@ -4632,19 +3667,6 @@ packages: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} - react-router-dom@6.28.1: - resolution: {integrity: sha512-YraE27C/RdjcZwl5UCqF/ffXnZDxpJdk9Q6jw38SZHjXs7NNdpViq2l2c7fO7+4uWaEfcwfGCv3RSg4e1By/fQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - - react-router@6.28.1: - resolution: {integrity: sha512-2omQTA3rkMljmrvvo6WtewGdVh45SpL9hGiCI9uUrwGGfNFDIvGK4gYJsKlJoNVi6AQZcopSCballL+QGOm7fA==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=16.8' - react-router@7.1.2: resolution: {integrity: sha512-KeallSO30KLpIe/ZZqfk6pCJ1c+5JhMxl3SCS3Zx1LgaGuQbgLDmjuNi6KZ5LnAV9sWjbmBWGRw8Um/Pw6BExg==} engines: {node: '>=20.0.0'} @@ -4692,22 +3714,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'} @@ -4716,9 +3722,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==} - resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -4727,10 +3730,6 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} - resolve.exports@2.0.3: - resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} - engines: {node: '>=10'} - resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true @@ -4739,10 +3738,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'} @@ -4787,10 +3782,6 @@ packages: 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'} @@ -4805,10 +3796,6 @@ packages: resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} engines: {node: '>= 0.4'} - safe-regex-test@1.1.0: - resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} - engines: {node: '>= 0.4'} - safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -4818,10 +3805,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 @@ -4831,17 +3814,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'} @@ -4850,9 +3828,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'} @@ -4918,10 +3893,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'} @@ -4930,9 +3901,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==} @@ -4954,20 +3922,12 @@ 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==} @@ -4985,9 +3945,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'} @@ -5017,9 +3974,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'} @@ -5032,10 +3986,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'} @@ -5051,9 +4001,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'} @@ -5094,10 +4041,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'} @@ -5154,13 +4097,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==} @@ -5168,12 +4104,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==} @@ -5187,10 +4117,6 @@ packages: typescript: optional: true - tsconfig-paths@4.2.0: - resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} - engines: {node: '>=6'} - tslib@2.6.3: resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} @@ -5265,10 +4191,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'} @@ -5285,8 +4207,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 @@ -5311,43 +4233,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==} @@ -5357,10 +4244,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 @@ -5376,18 +4259,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==} @@ -5410,26 +4281,11 @@ 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} - hasBin: true - vite-node@3.0.0-beta.2: resolution: {integrity: sha512-ofTf6cfRdL30Wbl9n/BX81EyIR5s4PReLmSurrxQ+koLaWUNOEo8E0lCM53OJkb8vpa2URM2nSrxZsIFyvY1rg==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -5521,16 +4377,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==} @@ -5571,17 +4417,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 @@ -5597,18 +4443,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'} @@ -5625,9 +4459,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'} @@ -5638,9 +4469,6 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@2.4.5: resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} engines: {node: '>= 14'} @@ -5668,9 +4496,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)': @@ -6192,27 +5017,23 @@ 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.20250109.0': {} @@ -6240,8 +5061,6 @@ snapshots: transitivePeerDependencies: - '@algolia/client-search' - '@emotion/hash@0.9.2': {} - '@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.17.19)': dependencies: esbuild: 0.17.19 @@ -6261,9 +5080,6 @@ snapshots: '@esbuild/android-arm64@0.17.19': optional: true - '@esbuild/android-arm64@0.17.6': - optional: true - '@esbuild/android-arm64@0.18.20': optional: true @@ -6276,9 +5092,6 @@ snapshots: '@esbuild/android-arm@0.17.19': optional: true - '@esbuild/android-arm@0.17.6': - optional: true - '@esbuild/android-arm@0.18.20': optional: true @@ -6291,9 +5104,6 @@ snapshots: '@esbuild/android-x64@0.17.19': optional: true - '@esbuild/android-x64@0.17.6': - optional: true - '@esbuild/android-x64@0.18.20': optional: true @@ -6306,9 +5116,6 @@ snapshots: '@esbuild/darwin-arm64@0.17.19': optional: true - '@esbuild/darwin-arm64@0.17.6': - optional: true - '@esbuild/darwin-arm64@0.18.20': optional: true @@ -6321,9 +5128,6 @@ snapshots: '@esbuild/darwin-x64@0.17.19': optional: true - '@esbuild/darwin-x64@0.17.6': - optional: true - '@esbuild/darwin-x64@0.18.20': optional: true @@ -6336,9 +5140,6 @@ snapshots: '@esbuild/freebsd-arm64@0.17.19': optional: true - '@esbuild/freebsd-arm64@0.17.6': - optional: true - '@esbuild/freebsd-arm64@0.18.20': optional: true @@ -6351,9 +5152,6 @@ snapshots: '@esbuild/freebsd-x64@0.17.19': optional: true - '@esbuild/freebsd-x64@0.17.6': - optional: true - '@esbuild/freebsd-x64@0.18.20': optional: true @@ -6366,9 +5164,6 @@ snapshots: '@esbuild/linux-arm64@0.17.19': optional: true - '@esbuild/linux-arm64@0.17.6': - optional: true - '@esbuild/linux-arm64@0.18.20': optional: true @@ -6381,9 +5176,6 @@ snapshots: '@esbuild/linux-arm@0.17.19': optional: true - '@esbuild/linux-arm@0.17.6': - optional: true - '@esbuild/linux-arm@0.18.20': optional: true @@ -6396,9 +5188,6 @@ snapshots: '@esbuild/linux-ia32@0.17.19': optional: true - '@esbuild/linux-ia32@0.17.6': - optional: true - '@esbuild/linux-ia32@0.18.20': optional: true @@ -6411,9 +5200,6 @@ snapshots: '@esbuild/linux-loong64@0.17.19': optional: true - '@esbuild/linux-loong64@0.17.6': - optional: true - '@esbuild/linux-loong64@0.18.20': optional: true @@ -6426,9 +5212,6 @@ snapshots: '@esbuild/linux-mips64el@0.17.19': optional: true - '@esbuild/linux-mips64el@0.17.6': - optional: true - '@esbuild/linux-mips64el@0.18.20': optional: true @@ -6441,9 +5224,6 @@ snapshots: '@esbuild/linux-ppc64@0.17.19': optional: true - '@esbuild/linux-ppc64@0.17.6': - optional: true - '@esbuild/linux-ppc64@0.18.20': optional: true @@ -6456,9 +5236,6 @@ snapshots: '@esbuild/linux-riscv64@0.17.19': optional: true - '@esbuild/linux-riscv64@0.17.6': - optional: true - '@esbuild/linux-riscv64@0.18.20': optional: true @@ -6471,9 +5248,6 @@ snapshots: '@esbuild/linux-s390x@0.17.19': optional: true - '@esbuild/linux-s390x@0.17.6': - optional: true - '@esbuild/linux-s390x@0.18.20': optional: true @@ -6486,9 +5260,6 @@ snapshots: '@esbuild/linux-x64@0.17.19': optional: true - '@esbuild/linux-x64@0.17.6': - optional: true - '@esbuild/linux-x64@0.18.20': optional: true @@ -6504,9 +5275,6 @@ snapshots: '@esbuild/netbsd-x64@0.17.19': optional: true - '@esbuild/netbsd-x64@0.17.6': - optional: true - '@esbuild/netbsd-x64@0.18.20': optional: true @@ -6522,9 +5290,6 @@ snapshots: '@esbuild/openbsd-x64@0.17.19': optional: true - '@esbuild/openbsd-x64@0.17.6': - optional: true - '@esbuild/openbsd-x64@0.18.20': optional: true @@ -6537,9 +5302,6 @@ snapshots: '@esbuild/sunos-x64@0.17.19': optional: true - '@esbuild/sunos-x64@0.17.6': - optional: true - '@esbuild/sunos-x64@0.18.20': optional: true @@ -6552,9 +5314,6 @@ snapshots: '@esbuild/win32-arm64@0.17.19': optional: true - '@esbuild/win32-arm64@0.17.6': - optional: true - '@esbuild/win32-arm64@0.18.20': optional: true @@ -6567,9 +5326,6 @@ snapshots: '@esbuild/win32-ia32@0.17.19': optional: true - '@esbuild/win32-ia32@0.17.6': - optional: true - '@esbuild/win32-ia32@0.18.20': optional: true @@ -6582,9 +5338,6 @@ snapshots: '@esbuild/win32-x64@0.17.19': optional: true - '@esbuild/win32-x64@0.17.6': - optional: true - '@esbuild/win32-x64@0.18.20': optional: true @@ -6749,8 +5502,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 @@ -6773,28 +5524,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 @@ -6842,10 +5571,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 @@ -6909,15 +5634,15 @@ snapshots: clsx: 2.1.1 react: 18.2.0 - '@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.5.3)(yaml@2.4.5))(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/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.5.3)(yaml@2.4.5) + 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 - '@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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20250109.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 @@ -6928,7 +5653,7 @@ snapshots: '@babel/traverse': 7.24.8 '@babel/types': 7.24.8 '@npmcli/package-json': 4.0.1 - '@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.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) arg: 5.0.2 babel-dead-code-elimination: 1.0.8 chokidar: 4.0.2 @@ -6947,12 +5672,12 @@ snapshots: 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 - valibot: 0.41.0(typescript@5.5.3) + valibot: 0.41.0(typescript@5.7.3) vite: 5.3.4(@types/node@18.19.39) vite-node: 3.0.0-beta.2(@types/node@18.19.39) optionalDependencies: - typescript: 5.5.3 - wrangler: 3.96.0(@cloudflare/workers-types@4.20250109.0) + typescript: 5.7.3 + wrangler: 3.103.2(@cloudflare/workers-types@4.20250109.0) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -6965,14 +5690,14 @@ snapshots: - supports-color - terser - '@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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20250109.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: - '@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.5.3)(vite@5.3.4(@types/node@18.19.39))(wrangler@3.96.0(@cloudflare/workers-types@4.20250109.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 + typescript: 5.7.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.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: '@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) @@ -6980,7 +5705,7 @@ snapshots: stream-slice: 0.1.2 undici: 6.19.2 optionalDependencies: - typescript: 5.5.3 + typescript: 5.7.3 '@react-stately/utils@3.10.2(react@18.2.0)': dependencies: @@ -6991,157 +5716,6 @@ snapshots: dependencies: react: 18.2.0 - '@remix-run/cloudflare@2.15.2(@cloudflare/workers-types@4.20250109.0)(typescript@5.5.3)': - dependencies: - '@cloudflare/kv-asset-handler': 0.1.3 - '@cloudflare/workers-types': 4.20250109.0 - '@remix-run/server-runtime': 2.15.2(typescript@5.5.3) - optionalDependencies: - typescript: 5.5.3 - - '@remix-run/dev@2.15.2(@remix-run/react@2.15.2(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.20250109.0))': - dependencies: - '@babel/core': 7.24.8 - '@babel/generator': 7.24.8 - '@babel/parser': 7.24.8 - '@babel/plugin-syntax-decorators': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.8) - '@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.15.2(typescript@5.5.3) - '@remix-run/react': 2.15.2(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.15.2(typescript@5.5.3) - '@types/mdx': 2.0.13 - '@vanilla-extract/integration': 6.5.0(@types/node@18.19.39) - arg: 5.0.2 - cacache: 17.1.4 - chalk: 4.1.2 - chokidar: 3.6.0 - cross-spawn: 7.0.3 - dotenv: 16.0.3 - es-module-lexer: 1.5.4 - esbuild: 0.17.6 - esbuild-plugins-node-modules-polyfill: 1.6.8(esbuild@0.17.6) - execa: 5.1.1 - exit-hook: 2.2.1 - express: 4.21.2 - 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.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.1(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 - 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 - vite: 5.3.4(@types/node@18.19.39) - wrangler: 3.96.0(@cloudflare/workers-types@4.20250109.0) - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - bluebird - - bufferutil - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - ts-node - - utf-8-validate - - '@remix-run/node@2.15.2(typescript@5.5.3)': - dependencies: - '@remix-run/server-runtime': 2.15.2(typescript@5.5.3) - '@remix-run/web-fetch': 4.4.2 - '@web3-storage/multipart-parser': 1.0.0 - cookie-signature: 1.2.2 - source-map-support: 0.5.21 - stream-slice: 0.1.2 - undici: 6.19.2 - optionalDependencies: - typescript: 5.5.3 - - '@remix-run/react@2.15.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.3)': - dependencies: - '@remix-run/router': 1.21.0 - '@remix-run/server-runtime': 2.15.2(typescript@5.5.3) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-router: 6.28.1(react@18.2.0) - react-router-dom: 6.28.1(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.15.2(typescript@5.5.3)': - 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 - - '@remix-run/web-blob@3.1.0': - dependencies: - '@remix-run/web-stream': 1.1.0 - web-encoding: 1.1.5 - - '@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 - - '@remix-run/web-file@3.1.0': - dependencies: - '@remix-run/web-blob': 3.1.0 - - '@remix-run/web-form-data@3.1.0': - dependencies: - web-encoding: 1.1.5 - - '@remix-run/web-stream@1.1.0': - dependencies: - web-streams-polyfill: 3.3.3 - '@rollup/rollup-android-arm-eabi@4.18.1': optional: true @@ -7281,10 +5855,6 @@ snapshots: '@tanstack/virtual-core@3.8.3': {} - '@types/acorn@4.0.6': - dependencies: - '@types/estree': 1.0.6 - '@types/bcryptjs@2.4.6': {} '@types/better-sqlite3@7.6.11': @@ -7299,14 +5869,6 @@ snapshots: '@types/cookie@0.6.0': {} - '@types/debug@4.1.12': - dependencies: - '@types/ms': 2.1.0 - - '@types/estree-jsx@1.0.5': - dependencies: - '@types/estree': 1.0.6 - '@types/estree@1.0.5': {} '@types/estree@1.0.6': {} @@ -7315,10 +5877,6 @@ snapshots: dependencies: '@types/node': 18.19.39 - '@types/hast@2.3.10': - dependencies: - '@types/unist': 2.0.11 - '@types/js-yaml@4.0.9': {} '@types/linkify-it@5.0.0': @@ -7332,21 +5890,9 @@ snapshots: '@types/marked@4.3.2': {} - '@types/mdast@3.0.15': - dependencies: - '@types/unist': 2.0.11 - '@types/mdurl@2.0.0': optional: true - '@types/mdx@2.0.13': {} - - '@types/ms@2.1.0': {} - - '@types/node-forge@1.3.11': - dependencies: - '@types/node': 18.19.39 - '@types/node@12.20.55': {} '@types/node@18.19.39': @@ -7370,6 +5916,10 @@ snapshots: '@types/semver@7.5.8': {} + '@types/set-cookie-parser@2.4.10': + dependencies: + '@types/node': 18.19.39 + '@types/tar-fs@2.0.4': dependencies: '@types/node': 18.19.39 @@ -7379,8 +5929,6 @@ snapshots: dependencies: '@types/node': 18.19.39 - '@types/unist@2.0.11': {} - '@types/yargs-parser@21.0.3': {} '@types/yargs@17.0.32': @@ -7389,57 +5937,6 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vanilla-extract/babel-plugin-debug-ids@1.2.0': - dependencies: - '@babel/core': 7.24.8 - transitivePeerDependencies: - - supports-color - - '@vanilla-extract/css@1.17.0': - dependencies: - '@emotion/hash': 0.9.2 - '@vanilla-extract/private': 1.0.6 - 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 - lru-cache: 10.4.3 - media-query-parser: 2.0.2 - modern-ahocorasick: 1.1.0 - picocolors: 1.1.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.2.0 - '@vanilla-extract/css': 1.17.0 - 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.6': {} - '@vitest/expect@0.28.5': dependencies: '@vitest/spy': 0.28.5 @@ -7466,18 +5963,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 @@ -7496,11 +5981,6 @@ snapshots: acorn@8.14.0: {} - aggregate-error@3.1.0: - dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 - ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -7569,8 +6049,6 @@ snapshots: 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 @@ -7615,8 +6093,6 @@ snapshots: astral-regex@2.0.0: {} - astring@1.9.0: {} - autoprefixer@10.4.19(postcss@8.4.39): dependencies: browserslist: 4.23.2 @@ -7640,8 +6116,6 @@ snapshots: transitivePeerDependencies: - supports-color - bail@2.0.2: {} - balanced-match@1.0.2: {} base64-js@1.5.1: {} @@ -7671,23 +6145,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 @@ -7732,30 +6189,8 @@ snapshots: 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-apply-helpers@1.0.1: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - call-bind@1.0.7: dependencies: es-define-property: 1.0.0 @@ -7764,11 +6199,6 @@ snapshots: get-intrinsic: 1.2.4 set-function-length: 1.2.2 - call-bound@1.0.3: - dependencies: - call-bind-apply-helpers: 1.0.1 - get-intrinsic: 1.2.7 - callsites@3.1.0: {} camelcase-css@2.0.1: {} @@ -7777,13 +6207,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 @@ -7805,14 +6233,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: @@ -7837,19 +6257,9 @@ 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: + cli-table3@0.6.5: dependencies: string-width: 4.2.3 optionalDependencies: @@ -7868,8 +6278,6 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - clone@1.0.4: {} - clsx@1.2.1: {} clsx@2.1.1: {} @@ -7886,8 +6294,6 @@ snapshots: color-name@1.1.4: {} - comma-separated-tokens@2.0.3: {} - commander@4.1.1: {} concat-map@0.0.1: {} @@ -7910,24 +6316,10 @@ snapshots: consola@3.4.0: {} - content-disposition@0.5.4: - dependencies: - safe-buffer: 5.2.1 - - content-type@1.0.5: {} - convert-source-map@2.0.0: {} - cookie-signature@1.0.6: {} - - cookie-signature@1.2.2: {} - cookie@0.5.0: {} - cookie@0.6.0: {} - - cookie@0.7.1: {} - cookie@1.0.2: {} core-util-is@1.0.3: {} @@ -7944,16 +6336,12 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - css-what@6.1.0: {} - cssesc@3.0.0: {} csstype@3.1.3: {} 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 @@ -7976,12 +6364,6 @@ snapshots: dependencies: '@babel/runtime': 7.24.8 - date-fns@4.1.0: {} - - debug@2.6.9: - dependencies: - ms: 2.0.0 - debug@4.3.5: dependencies: ms: 2.1.2 @@ -7990,10 +6372,6 @@ snapshots: dependencies: ms: 2.1.3 - decode-named-character-reference@1.0.2: - dependencies: - character-entities: 2.0.2 - decompress-response@6.0.0: dependencies: mimic-response: 3.1.0 @@ -8008,14 +6386,6 @@ snapshots: 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 @@ -8030,12 +6400,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: {} @@ -8062,12 +6426,6 @@ snapshots: dotenv@16.0.3: {} - dunder-proto@1.0.1: - dependencies: - call-bind-apply-helpers: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - duplexify@3.7.1: dependencies: end-of-stream: 1.4.4 @@ -8077,18 +6435,12 @@ 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 @@ -8153,8 +6505,6 @@ snapshots: dependencies: get-intrinsic: 1.2.4 - es-define-property@1.0.1: {} - es-errors@1.3.0: {} es-module-lexer@1.5.4: {} @@ -8179,13 +6529,6 @@ snapshots: is-date-object: 1.0.5 is-symbol: 1.0.4 - esbuild-plugins-node-modules-polyfill@1.6.8(esbuild@0.17.6): - dependencies: - '@jspm/core': 2.0.1 - esbuild: 0.17.6 - local-pkg: 0.5.1 - resolve.exports: 2.0.3 - esbuild-register@3.5.0(esbuild@0.17.19): dependencies: debug: 4.3.5 @@ -8218,31 +6561,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 @@ -8324,8 +6642,6 @@ snapshots: escalade@3.1.2: {} - escape-html@1.0.3: {} - escape-string-regexp@1.0.5: {} escape-string-regexp@4.0.0: {} @@ -8336,10 +6652,10 @@ snapshots: dependencies: eslint: 7.32.0 - eslint-config-turbo@2.3.0(eslint@7.32.0): + eslint-config-turbo@2.3.3(eslint@7.32.0): dependencies: eslint: 7.32.0 - eslint-plugin-turbo: 2.3.0(eslint@7.32.0) + eslint-plugin-turbo: 2.3.3(eslint@7.32.0) eslint-plugin-react@7.31.8(eslint@7.32.0): dependencies: @@ -8359,7 +6675,7 @@ snapshots: semver: 6.3.1 string.prototype.matchall: 4.0.11 - eslint-plugin-turbo@2.3.0(eslint@7.32.0): + eslint-plugin-turbo@2.3.3(eslint@7.32.0): dependencies: dotenv: 16.0.3 eslint: 7.32.0 @@ -8547,64 +6863,10 @@ snapshots: estraverse@5.3.0: {} - estree-util-attach-comments@2.1.1: - dependencies: - '@types/estree': 1.0.6 - - 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.9.0 - 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.11 - estree-walker@0.6.1: {} - estree-walker@3.0.3: - dependencies: - '@types/estree': 1.0.6 - 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 @@ -8621,44 +6883,6 @@ snapshots: expand-template@2.0.3: {} - express@4.21.2: - 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.12 - 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: @@ -8687,10 +6911,6 @@ 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 @@ -8705,18 +6925,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 @@ -8751,14 +6959,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: @@ -8779,14 +6981,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: @@ -8805,10 +6999,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: {} @@ -8823,26 +7013,6 @@ snapshots: has-symbols: 1.0.3 hasown: 2.0.2 - get-intrinsic@1.2.7: - dependencies: - call-bind-apply-helpers: 1.0.1 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - function-bind: 1.1.2 - get-proto: 1.0.1 - gopd: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - math-intrinsics: 1.1.0 - - get-port@5.1.1: {} - - get-proto@1.0.1: - dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.0.0 - get-source@2.0.12: dependencies: data-uri-to-buffer: 2.0.2 @@ -8912,8 +7082,6 @@ snapshots: dependencies: get-intrinsic: 1.2.4 - gopd@1.2.0: {} - graceful-fs@4.2.11: {} grapheme-splitter@1.0.4: {} @@ -8943,8 +7111,6 @@ snapshots: has-symbols@1.0.3: {} - has-symbols@1.1.0: {} - has-tostringtag@1.0.2: dependencies: has-symbols: 1.0.3 @@ -8953,56 +7119,20 @@ snapshots: dependencies: function-bind: 1.1.2 - hast-util-to-estree@2.3.3: - dependencies: - '@types/estree': 1.0.6 - '@types/estree-jsx': 1.0.5 - '@types/hast': 2.3.10 - '@types/unist': 2.0.11 - 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: {} @@ -9016,8 +7146,6 @@ snapshots: imurmurhash@0.1.4: {} - indent-string@4.0.0: {} - inflight@1.0.6: dependencies: once: 1.4.0 @@ -9027,28 +7155,12 @@ 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.2.0: - dependencies: - call-bound: 1.0.3 - has-tostringtag: 1.0.2 - is-array-buffer@3.0.4: dependencies: call-bind: 1.0.7 @@ -9067,8 +7179,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: @@ -9083,8 +7193,6 @@ snapshots: dependencies: has-tostringtag: 1.0.2 - is-decimal@2.0.1: {} - is-deflate@1.0.0: {} is-extglob@2.1.1: {} @@ -9093,23 +7201,12 @@ snapshots: is-fullwidth-code-point@4.0.0: {} - is-generator-function@1.1.0: - dependencies: - call-bound: 1.0.3 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - 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-negative-zero@2.0.3: {} is-number-object@1.0.7: @@ -9120,32 +7217,15 @@ snapshots: is-path-inside@3.0.3: {} - is-plain-obj@3.0.0: {} - - is-plain-obj@4.1.0: {} - - is-reference@3.0.3: - dependencies: - '@types/estree': 1.0.6 - is-regex@1.1.4: dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.2 - is-regex@1.2.1: - dependencies: - call-bound: 1.0.3 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - 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: @@ -9164,8 +7244,6 @@ snapshots: dependencies: which-typed-array: 1.1.15 - is-unicode-supported@0.1.0: {} - is-weakref@1.0.2: dependencies: call-bind: 1.0.7 @@ -9178,20 +7256,16 @@ snapshots: isbot@5.1.14: {} - isbot@5.1.17: {} + isbot@5.1.21: {} isexe@2.0.0: {} - 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: {} @@ -9268,15 +7342,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.1: - dependencies: - mlly: 1.7.4 - pkg-types: 1.3.1 - locate-path@5.0.0: dependencies: p-locate: 4.1.0 @@ -9285,12 +7352,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: {} @@ -9303,13 +7366,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 @@ -9335,382 +7391,36 @@ snapshots: dependencies: sourcemap-codec: 1.4.8 - markdown-extensions@1.1.1: {} - marked@4.3.0: {} - math-intrinsics@1.1.0: {} - - mdast-util-definitions@5.1.2: - dependencies: - '@types/mdast': 3.0.15 - '@types/unist': 2.0.11 - unist-util-visit: 4.1.2 - - mdast-util-from-markdown@1.3.1: - dependencies: - '@types/mdast': 3.0.15 - '@types/unist': 2.0.11 - 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.11 - ccount: 2.0.1 - mdast-util-from-markdown: 1.3.1 - mdast-util-to-markdown: 1.5.0 - parse-entities: 4.0.2 - 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.11 - 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.6 - 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.6 - 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.6 - 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.6 - 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.6 - '@types/unist': 2.0.11 - 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.4.0 - 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 @@ -9729,35 +7439,10 @@ snapshots: 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 @@ -9772,16 +7457,10 @@ snapshots: pkg-types: 1.3.1 ufo: 1.5.4 - modern-ahocorasick@1.1.0: {} - mousetrap@1.6.5: {} mri@1.2.0: {} - mrmime@1.0.1: {} - - ms@2.0.0: {} - ms@2.1.2: {} ms@2.1.3: {} @@ -9800,14 +7479,10 @@ snapshots: 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: @@ -9841,10 +7516,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 @@ -9898,18 +7569,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 @@ -9923,24 +7586,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 @@ -9967,10 +7616,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: {} @@ -9981,22 +7626,8 @@ snapshots: dependencies: callsites: 3.1.0 - parse-entities@4.0.2: - dependencies: - '@types/unist': 2.0.11 - 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: {} @@ -10012,8 +7643,6 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 - path-to-regexp@0.1.12: {} - path-to-regexp@6.3.0: {} path-type@4.0.0: {} @@ -10030,12 +7659,6 @@ snapshots: duplexify: 3.7.1 through2: 2.0.5 - periscopic@3.1.0: - dependencies: - '@types/estree': 1.0.6 - estree-walker: 3.0.3 - is-reference: 3.0.3 - picocolors@1.0.1: {} picocolors@1.1.1: {} @@ -10044,8 +7667,6 @@ snapshots: picomatch@4.0.2: {} - pidtree@0.6.0: {} - pify@2.3.0: {} pify@4.0.1: {} @@ -10072,10 +7693,6 @@ snapshots: 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 @@ -10115,39 +7732,6 @@ snapshots: postcss: 8.4.39 yaml: 2.4.5 - postcss-modules-extract-imports@3.1.0(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - - postcss-modules-local-by-default@4.2.0(postcss@8.4.39): - dependencies: - icss-utils: 5.1.0(postcss@8.4.39) - postcss: 8.4.39 - postcss-selector-parser: 7.0.0 - postcss-value-parser: 4.2.0 - - postcss-modules-scope@3.2.1(postcss@8.4.39): - dependencies: - postcss: 8.4.39 - postcss-selector-parser: 7.0.0 - - 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.1(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.2.0(postcss@8.4.39) - postcss-modules-scope: 3.2.1(postcss@8.4.39) - postcss-modules-values: 4.0.0(postcss@8.4.39) - string-hash: 1.1.3 - postcss-nested@6.0.1(postcss@8.4.39): dependencies: postcss: 8.4.39 @@ -10163,11 +7747,6 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-selector-parser@7.0.0: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - postcss-value-parser@4.2.0: {} postcss@8.4.39: @@ -10212,10 +7791,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): @@ -10243,13 +7818,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: @@ -10270,21 +7838,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 @@ -10304,24 +7859,12 @@ snapshots: react-refresh@0.14.2: {} - react-router-dom@6.28.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@remix-run/router': 1.21.0 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-router: 6.28.1(react@18.2.0) - - react-router@6.28.1(react@18.2.0): - dependencies: - '@remix-run/router': 1.21.0 - react: 18.2.0 - react-router@7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@types/cookie': 0.6.0 cookie: 1.0.2 react: 18.2.0 - set-cookie-parser: 2.6.0 + set-cookie-parser: 2.7.1 turbo-stream: 2.4.0 optionalDependencies: react-dom: 18.2.0(react@18.2.0) @@ -10374,54 +7917,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: {} - resolve-from@4.0.0: {} resolve-from@5.0.0: {} - resolve.exports@2.0.3: {} - resolve@1.22.8: dependencies: is-core-module: 2.14.0 @@ -10434,11 +7937,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: {} @@ -10520,10 +8018,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 @@ -10541,12 +8035,6 @@ snapshots: es-errors: 1.3.0 is-regex: 1.1.4 - safe-regex-test@1.1.0: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - is-regex: 1.2.1 - safer-buffer@2.1.2: {} scheduler@0.23.2: @@ -10555,44 +8043,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 @@ -10609,8 +8067,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 @@ -10670,16 +8126,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: @@ -10703,10 +8155,6 @@ snapshots: sprintf-js@1.0.3: {} - ssri@10.0.6: - dependencies: - minipass: 7.1.2 - stackback@0.0.2: {} stacktracey@2.1.8: @@ -10714,8 +8162,6 @@ snapshots: as-table: 1.0.55 get-source: 2.0.12 - statuses@2.0.1: {} - std-env@3.7.0: {} stoppable@1.1.0: {} @@ -10726,8 +8172,6 @@ snapshots: streamsearch@1.1.0: {} - string-hash@1.1.3: {} - string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -10782,11 +8226,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 @@ -10797,8 +8236,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: {} @@ -10809,10 +8246,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 @@ -10889,15 +8322,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: {} @@ -10946,35 +8370,21 @@ 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@4.2.0: - dependencies: - json5: 2.2.3 - minimist: 1.2.8 - strip-bom: 3.0.0 + typescript: 5.7.3 tslib@2.6.3: {} - tsup@8.3.5(jiti@1.21.6)(postcss@8.4.39)(typescript@5.5.3)(yaml@2.4.5): + tsup@8.3.5(jiti@1.21.6)(postcss@8.4.39)(typescript@5.7.3)(yaml@2.4.5): dependencies: bundle-require: 5.1.0(esbuild@0.24.2) cac: 6.7.14 @@ -10994,7 +8404,7 @@ snapshots: tree-kill: 1.2.2 optionalDependencies: postcss: 8.4.39 - typescript: 5.5.3 + typescript: 5.7.3 transitivePeerDependencies: - jiti - supports-color @@ -11042,11 +8452,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 @@ -11079,7 +8484,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: {} @@ -11102,71 +8507,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.11 - 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.11 - - unist-util-position-from-estree@1.1.2: - dependencies: - '@types/unist': 2.0.11 - - unist-util-position@4.0.4: - dependencies: - '@types/unist': 2.0.11 - - unist-util-remove-position@4.0.2: - dependencies: - '@types/unist': 2.0.11 - unist-util-visit: 4.1.2 - - unist-util-stringify-position@3.0.3: - dependencies: - '@types/unist': 2.0.11 - - unist-util-visit-parents@5.1.3: - dependencies: - '@types/unist': 2.0.11 - unist-util-is: 5.2.1 - - unist-util-visit@4.1.2: - dependencies: - '@types/unist': 2.0.11 - 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 @@ -11181,28 +8533,11 @@ snapshots: util-deprecate@1.0.2: {} - util@0.12.5: - dependencies: - inherits: 2.0.4 - is-arguments: 1.2.0 - is-generator-function: 1.1.0 - 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: @@ -11215,20 +8550,6 @@ snapshots: validate-npm-package-name@5.0.1: {} - vary@1.1.2: {} - - vfile-message@3.1.4: - dependencies: - '@types/unist': 2.0.11 - unist-util-stringify-position: 3.0.3 - - vfile@5.3.7: - dependencies: - '@types/unist': 2.0.11 - 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 @@ -11249,23 +8570,6 @@ snapshots: - supports-color - terser - vite-node@1.6.0(@types/node@18.19.39): - dependencies: - cac: 6.7.14 - debug: 4.4.0 - pathe: 1.1.2 - picocolors: 1.1.1 - vite: 5.3.4(@types/node@18.19.39) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - vite-node@3.0.0-beta.2(@types/node@18.19.39): dependencies: cac: 6.7.14 @@ -11283,11 +8587,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: @@ -11347,18 +8651,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: @@ -11407,33 +8699,25 @@ 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.20250109.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.20250109.0 fsevents: 2.3.3 @@ -11456,22 +8740,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@2.4.5: {} yargs-parser@21.1.1: {} @@ -11497,5 +8775,3 @@ snapshots: stacktracey: 2.1.8 zod@3.23.8: {} - - zwitch@2.0.4: {} From ed63075a52229f0b86a96df5bd3a39758ab004cc Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Mon, 20 Jan 2025 09:00:42 -0800 Subject: [PATCH 19/29] =?UTF-8?q?:memo:=20Update=20docs=20from=20remix=20?= =?UTF-8?q?=E2=86=92=20react-router?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/superflare/docs/file-storage.md | 2 +- packages/superflare/docs/getting-started.md | 10 +++++----- packages/superflare/docs/index.md | 2 +- packages/superflare/docs/reference/cli.md | 2 +- packages/superflare/docs/security/authentication.md | 2 +- packages/superflare/docs/sessions.md | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/superflare/docs/file-storage.md b/packages/superflare/docs/file-storage.md index 301dd16a..402f8cb2 100644 --- a/packages/superflare/docs/file-storage.md +++ b/packages/superflare/docs/file-storage.md @@ -140,7 +140,7 @@ 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 { type LoaderFunctionArgs } from "react-router"; import { servePublicPathFromStorage } from "superflare"; export async function loader({ request }: LoaderFunctionArgs) { 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 ab9d38cc..5a212d83 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 diff --git a/packages/superflare/docs/sessions.md b/packages/superflare/docs/sessions.md index 4eb1fa5f..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. From e01605bdc3b7c3b73ae8ceb5caf7ecd4218d7a84 Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Tue, 21 Jan 2025 11:49:32 -0800 Subject: [PATCH 20/29] Update unused pages function example to latest API fixes 4 type errors in examples/remix-cms --- examples/remix-cms/functions/[[remix]].ts | 48 ++++++++--------------- 1 file changed, 17 insertions(+), 31 deletions(-) diff --git a/examples/remix-cms/functions/[[remix]].ts b/examples/remix-cms/functions/[[remix]].ts index 17cbf41d..62f85df7 100644 --- a/examples/remix-cms/functions/[[remix]].ts +++ b/examples/remix-cms/functions/[[remix]].ts @@ -1,47 +1,33 @@ import { createRequestHandler, createCookieSessionStorage } from "react-router"; -import { handleFetch, SuperflareAuth } from "superflare"; -import getConfig from "../superflare.config"; +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 handleRequest: ReturnType; -export const onRequest: PagesFunction = async (ctx) => { +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), - }, - () => - handleRequest(ctx.request, { - auth: new SuperflareAuth(session), - session, - env: ctx.env, - }) + return handleFetch( + context.request, + context.env, + ctx, + config, + handleRequest ); }; From e6830bf0a51372e608c33791e9906cc3eaf27738 Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Wed, 22 Jan 2025 17:26:23 -0600 Subject: [PATCH 21/29] Add react-router to typegen command --- apps/site/package.json | 2 +- examples/remix-cms/package.json | 2 +- templates/remix/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/site/package.json b/apps/site/package.json index 223953c0..c21fb27a 100644 --- a/apps/site/package.json +++ b/apps/site/package.json @@ -10,7 +10,7 @@ "dev:docs": "node ./scripts/serve-local-docs.mjs", "dev": "concurrently \"npm:dev:*\"", "start": "wrangler dev", - "typegen": "wrangler types", + "typegen": "wrangler types && react-router typegen", "typecheck": "react-router typegen && tsc" }, "browserslist": "defaults, not ie <= 11", diff --git a/examples/remix-cms/package.json b/examples/remix-cms/package.json index 361697d5..b898df31 100644 --- a/examples/remix-cms/package.json +++ b/examples/remix-cms/package.json @@ -11,7 +11,7 @@ "dev": "superflare dev", "start": "wrangler dev", "migrate": "superflare migrate", - "typegen": "wrangler types", + "typegen": "superflare migrate && wrangler types && react-router typegen", "typecheck": "react-router typegen && tsc" }, "keywords": [], diff --git a/templates/remix/package.json b/templates/remix/package.json index e858c45e..bd3674c8 100644 --- a/templates/remix/package.json +++ b/templates/remix/package.json @@ -10,7 +10,7 @@ "deploy": "wrangler deploy", "dev": "superflare dev", "start": "wrangler dev", - "typegen": "wrangler types", + "typegen": "superflare migrate && wrangler types && react-router typegen", "typecheck": "react-router typegen && tsc" }, "keywords": [], From 15b4549ea72a3ff2468c4d576d7d6427c4ea1bfe Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Wed, 22 Jan 2025 17:30:29 -0600 Subject: [PATCH 22/29] Migrate docs site/remix-cms/template to RR types --- apps/site/app/root.tsx | 5 +++-- apps/site/app/routes/$.tsx | 4 +--- apps/site/app/routes/_index.tsx | 8 +++++--- apps/site/load-context.ts | 12 ------------ .../app/routes/admin.articles.$slug._index.tsx | 10 ++++------ .../app/routes/admin.articles.$slug.preview.tsx | 6 ++++-- examples/remix-cms/app/routes/admin.tsx | 15 ++++----------- examples/remix-cms/app/routes/admin.upload.$.ts | 5 +++-- .../app/routes/admin/components/article-form.tsx | 11 ++++------- examples/remix-cms/app/routes/auth.login.tsx | 15 ++++----------- examples/remix-cms/app/routes/auth.logout.ts | 6 ++++-- examples/remix-cms/app/routes/auth.register.tsx | 15 ++++----------- .../remix-cms/app/routes/channel.$channelName.ts | 5 +++-- examples/remix-cms/app/routes/storage.$.tsx | 5 +++-- examples/remix-cms/load-context.ts | 10 ---------- packages/superflare/docs/file-storage.md | 5 +++-- .../superflare/docs/security/authentication.md | 4 ++-- templates/remix/app/routes/_auth.login.tsx | 15 ++++----------- templates/remix/app/routes/_auth.logout.ts | 6 ++++-- templates/remix/app/routes/_auth.register.tsx | 15 ++++----------- templates/remix/app/routes/dashboard.tsx | 6 ++++-- templates/remix/load-context.ts | 10 ---------- 22 files changed, 67 insertions(+), 126 deletions(-) diff --git a/apps/site/app/root.tsx b/apps/site/app/root.tsx index bfff8df0..77f8ebc4 100644 --- a/apps/site/app/root.tsx +++ b/apps/site/app/root.tsx @@ -1,7 +1,6 @@ import { type LinksFunction, type MetaFunction, - type LoaderFunctionArgs, Links, Meta, Outlet, @@ -13,6 +12,8 @@ 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" }, @@ -42,7 +43,7 @@ export const links: LinksFunction = () => [ }, ]; -export async function loader({ context: { cloudflare } }: LoaderFunctionArgs) { +export async function loader({ context: { cloudflare } }: Route.LoaderArgs) { return { ENV: { DOCSEARCH_APP_ID: cloudflare.env.DOCSEARCH_APP_ID, diff --git a/apps/site/app/routes/$.tsx b/apps/site/app/routes/$.tsx index 5688e742..e3dc734c 100644 --- a/apps/site/app/routes/$.tsx +++ b/apps/site/app/routes/$.tsx @@ -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 2a01f8b6..2f3ce377 100644 --- a/apps/site/app/routes/_index.tsx +++ b/apps/site/app/routes/_index.tsx @@ -1,14 +1,16 @@ -import { type LoaderFunctionArgs, type MetaFunction } from "react-router"; +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( diff --git a/apps/site/load-context.ts b/apps/site/load-context.ts index f237fbf1..c8314b57 100644 --- a/apps/site/load-context.ts +++ b/apps/site/load-context.ts @@ -11,18 +11,6 @@ declare module "react-router" { interface AppLoadContext { cloudflare: Cloudflare; } - - // TODO: remove this once we've migrated to `Route.LoaderArgs` instead for our loaders - // eslint-disable-next-line @typescript-eslint/consistent-type-definitions - interface LoaderFunctionArgs { - context: AppLoadContext; - } - - // TODO: remove this once we've migrated to `Route.ActionArgs` instead for our actions - // eslint-disable-next-line @typescript-eslint/consistent-type-definitions - interface ActionFunctionArgs { - context: AppLoadContext; - } } export {}; // necessary for TS to treat this as a module diff --git a/examples/remix-cms/app/routes/admin.articles.$slug._index.tsx b/examples/remix-cms/app/routes/admin.articles.$slug._index.tsx index d2d14453..d5b7cea4 100644 --- a/examples/remix-cms/app/routes/admin.articles.$slug._index.tsx +++ b/examples/remix-cms/app/routes/admin.articles.$slug._index.tsx @@ -1,9 +1,5 @@ import { EyeIcon } from "@heroicons/react/24/outline"; -import { - type LoaderFunctionArgs, - useLoaderData, - useRevalidator, -} from "react-router"; +import { useLoaderData, useRevalidator } from "react-router"; import invariant from "tiny-invariant"; import { Button, SecondaryButton } from "~/components/admin/Button"; import { Page } from "~/components/admin/Page"; @@ -12,9 +8,11 @@ import { Article } from "~/models/Article"; import { useChannel } from "~/utils/use-channel"; import { ArticleForm } from "./admin/components/article-form"; +import type { Route } from "./+types/admin.articles.$slug._index"; + export { action } from "./admin/components/article-form"; -export async function loader({ params }: LoaderFunctionArgs) { +export async function loader({ params }: Route.LoaderArgs) { const { slug } = params; invariant(typeof slug === "string", "Missing slug"); diff --git a/examples/remix-cms/app/routes/admin.articles.$slug.preview.tsx b/examples/remix-cms/app/routes/admin.articles.$slug.preview.tsx index 74926b73..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,5 +1,5 @@ import { PencilSquareIcon } from "@heroicons/react/24/outline"; -import { type LoaderFunctionArgs, useLoaderData } from "react-router"; +import { useLoaderData } from "react-router"; import invariant from "tiny-invariant"; import { SecondaryButton } from "~/components/admin/Button"; @@ -7,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"); diff --git a/examples/remix-cms/app/routes/admin.tsx b/examples/remix-cms/app/routes/admin.tsx index 1b52c6c5..0c010920 100644 --- a/examples/remix-cms/app/routes/admin.tsx +++ b/examples/remix-cms/app/routes/admin.tsx @@ -12,25 +12,18 @@ import { XMarkIcon, } from "@heroicons/react/24/outline"; import clsx from "clsx"; -import { - type LoaderFunctionArgs, - Link, - NavLink, - Outlet, - redirect, - useLoaderData, -} from "react-router"; +import { Link, NavLink, Outlet, redirect, useLoaderData } from "react-router"; import { Toast } from "~/components/Toast"; 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"); } diff --git a/examples/remix-cms/app/routes/admin.upload.$.ts b/examples/remix-cms/app/routes/admin.upload.$.ts index 3d4cb07c..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 { type ActionFunctionArgs } from "react-router"; 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 }) => { 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 9bb25822..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,9 +1,4 @@ -import { - type ActionFunctionArgs, - Form, - redirect, - useActionData, -} from "react-router"; +import { Form, redirect, useActionData } from "react-router"; import { Article } from "~/models/Article"; import invariant from "tiny-invariant"; import { FormField } from "~/components/Form"; @@ -11,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; @@ -33,7 +30,7 @@ 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"); diff --git a/examples/remix-cms/app/routes/auth.login.tsx b/examples/remix-cms/app/routes/auth.login.tsx index c444b4cb..8db8b42a 100644 --- a/examples/remix-cms/app/routes/auth.login.tsx +++ b/examples/remix-cms/app/routes/auth.login.tsx @@ -1,18 +1,11 @@ -import { - type ActionFunctionArgs, - Form, - Link, - redirect, - useActionData, -} from "react-router"; +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"); } diff --git a/examples/remix-cms/app/routes/auth.logout.ts b/examples/remix-cms/app/routes/auth.logout.ts index e93ba8ff..3877f409 100644 --- a/examples/remix-cms/app/routes/auth.logout.ts +++ b/examples/remix-cms/app/routes/auth.logout.ts @@ -1,6 +1,8 @@ -import { type ActionFunctionArgs, redirect } from "react-router"; +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/examples/remix-cms/app/routes/auth.register.tsx b/examples/remix-cms/app/routes/auth.register.tsx index c43a2781..fa949eed 100644 --- a/examples/remix-cms/app/routes/auth.register.tsx +++ b/examples/remix-cms/app/routes/auth.register.tsx @@ -1,19 +1,12 @@ -import { - type ActionFunctionArgs, - Form, - Link, - redirect, - useActionData, -} from "react-router"; +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"); } diff --git a/examples/remix-cms/app/routes/channel.$channelName.ts b/examples/remix-cms/app/routes/channel.$channelName.ts index 7d5e4e64..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 "react-router"; 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 c86df267..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 "react-router"; 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/load-context.ts b/examples/remix-cms/load-context.ts index 88b0308a..816f3f41 100644 --- a/examples/remix-cms/load-context.ts +++ b/examples/remix-cms/load-context.ts @@ -4,16 +4,6 @@ declare module "react-router" { interface AppLoadContext { cloudflare: Cloudflare; } - - // TODO: remove this once we've migrated to `Route.LoaderArgs` instead for our loaders - interface LoaderFunctionArgs { - context: AppLoadContext; - } - - // TODO: remove this once we've migrated to `Route.ActionArgs` instead for our actions - interface ActionFunctionArgs { - context: AppLoadContext; - } } export {}; // necessary for TS to treat this as a module diff --git a/packages/superflare/docs/file-storage.md b/packages/superflare/docs/file-storage.md index 402f8cb2..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 "react-router"; 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/security/authentication.md b/packages/superflare/docs/security/authentication.md index 5a212d83..d17d0f46 100644 --- a/packages/superflare/docs/security/authentication.md +++ b/packages/superflare/docs/security/authentication.md @@ -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"); @@ -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/templates/remix/app/routes/_auth.login.tsx b/templates/remix/app/routes/_auth.login.tsx index 73941f3b..decaf379 100644 --- a/templates/remix/app/routes/_auth.login.tsx +++ b/templates/remix/app/routes/_auth.login.tsx @@ -1,16 +1,9 @@ -import { - type ActionFunctionArgs, - Form, - Link, - redirect, - useActionData, -} from "react-router"; +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"); } diff --git a/templates/remix/app/routes/_auth.logout.ts b/templates/remix/app/routes/_auth.logout.ts index e93ba8ff..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 "react-router"; +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 d8e78d44..9decd5c8 100644 --- a/templates/remix/app/routes/_auth.register.tsx +++ b/templates/remix/app/routes/_auth.register.tsx @@ -1,17 +1,10 @@ -import { - type ActionFunctionArgs, - Form, - Link, - redirect, - useActionData, -} from "react-router"; +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"); } diff --git a/templates/remix/app/routes/dashboard.tsx b/templates/remix/app/routes/dashboard.tsx index 544f307a..db7af2ed 100644 --- a/templates/remix/app/routes/dashboard.tsx +++ b/templates/remix/app/routes/dashboard.tsx @@ -1,7 +1,9 @@ -import { type LoaderFunctionArgs, redirect, useLoaderData } from "react-router"; +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"); } diff --git a/templates/remix/load-context.ts b/templates/remix/load-context.ts index 88b0308a..816f3f41 100644 --- a/templates/remix/load-context.ts +++ b/templates/remix/load-context.ts @@ -4,16 +4,6 @@ declare module "react-router" { interface AppLoadContext { cloudflare: Cloudflare; } - - // TODO: remove this once we've migrated to `Route.LoaderArgs` instead for our loaders - interface LoaderFunctionArgs { - context: AppLoadContext; - } - - // TODO: remove this once we've migrated to `Route.ActionArgs` instead for our actions - interface ActionFunctionArgs { - context: AppLoadContext; - } } export {}; // necessary for TS to treat this as a module From 4dbe4dba73ad066076b2b1c31349090c7f06e243 Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Wed, 22 Jan 2025 17:35:20 -0600 Subject: [PATCH 23/29] Return seed callback to enable awaiting result MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ensures that the seed command can complete all of its async work and exit properly and makes it so that errors can be caught and logged (lines 45–47) --- packages/superflare/cli/db/seed.ts | 1 - packages/superflare/src/seeder.ts | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) 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/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(); }; } From 27900eadcb882a57232d13cea76332b1cd2c2714 Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Mon, 27 Jan 2025 18:27:34 -0500 Subject: [PATCH 24/29] Bump eslint(-register) dependencies --- packages/superflare/package.json | 4 ++-- pnpm-lock.yaml | 26 +++++++++++++------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/packages/superflare/package.json b/packages/superflare/package.json index 46ebd0cf..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", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 028c182e..6714abbd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -277,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 @@ -2460,8 +2460,8 @@ packages: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} - 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' @@ -5357,7 +5357,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 @@ -5385,7 +5385,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 @@ -5458,7 +5458,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 @@ -6529,10 +6529,10 @@ snapshots: is-date-object: 1.0.5 is-symbol: 1.0.4 - 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 @@ -7680,7 +7680,7 @@ 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: From 1314edaf450785da9059642621c19325f5de6b33 Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Thu, 6 Feb 2025 14:22:30 -0800 Subject: [PATCH 25/29] Use @mjackson/node-fetch-server for viteDevServer --- packages/superflare-remix/dev.ts | 6 +- packages/superflare-remix/node-adapter.ts | 106 ---------------------- packages/superflare-remix/package.json | 5 +- pnpm-lock.yaml | 52 +++++------ 4 files changed, 28 insertions(+), 141 deletions(-) delete mode 100644 packages/superflare-remix/node-adapter.ts diff --git a/packages/superflare-remix/dev.ts b/packages/superflare-remix/dev.ts index 011a404b..e4bc517c 100644 --- a/packages/superflare-remix/dev.ts +++ b/packages/superflare-remix/dev.ts @@ -1,9 +1,9 @@ +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"; -import { fromNodeRequest, toNodeRequest } from "./node-adapter"; /** * This is copied from the workers-sdk repo (used for wrangler’s getPlatformProxy). @@ -59,7 +59,7 @@ export function superflareDevProxyVitePlugin( )) as ServerBuild; const handler = createRequestHandler(build, "development"); - const request = fromNodeRequest(nodeReq, nodeRes); + const request = createRequest(nodeReq, nodeRes); const loadContext = await getLoadContext({ context, request, @@ -80,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/node-adapter.ts b/packages/superflare-remix/node-adapter.ts deleted file mode 100644 index 052faf75..00000000 --- a/packages/superflare-remix/node-adapter.ts +++ /dev/null @@ -1,106 +0,0 @@ -// https://github.com/remix-run/react-router/blob/main/packages/react-router-dev/vite/node-adapter.ts -declare module "set-cookie-parser"; -import type { IncomingHttpHeaders, ServerResponse } from "node:http"; -import { once } from "node:events"; -import { Readable } from "node:stream"; -import { splitCookiesString } from "set-cookie-parser"; -import { createReadableStreamFromReadable } from "@react-router/node"; -import type * as Vite from "vite"; - -export type NodeRequestHandler = ( - req: Vite.Connect.IncomingMessage, - res: ServerResponse -) => Promise; - -function fromNodeHeaders(nodeHeaders: IncomingHttpHeaders): Headers { - let headers = new Headers(); - - for (let [key, values] of Object.entries(nodeHeaders)) { - if (values) { - if (Array.isArray(values)) { - for (let value of values) { - headers.append(key, value); - } - } else { - headers.set(key, values); - } - } - } - - return headers; -} - -// Based on `createRemixRequest` in packages/react-router-express/server.ts -export function fromNodeRequest( - nodeReq: Vite.Connect.IncomingMessage, - nodeRes: ServerResponse -): Request { - let origin = - nodeReq.headers.origin && "null" !== nodeReq.headers.origin - ? nodeReq.headers.origin - : `http://${nodeReq.headers.host}`; - // Use `req.originalUrl` so React Router is aware of the full path - invariant( - nodeReq.originalUrl, - "Expected `nodeReq.originalUrl` to be defined" - ); - // @ts-expect-error this is a @react-router/dev file - let url = new URL(nodeReq.originalUrl, origin); - - // Abort action/loaders once we can no longer write a response - let controller: AbortController | null = new AbortController(); - let init: RequestInit = { - method: nodeReq.method, - headers: fromNodeHeaders(nodeReq.headers), - signal: controller.signal, - }; - - // Abort action/loaders once we can no longer write a response iff we have - // not yet sent a response (i.e., `close` without `finish`) - // `finish` -> done rendering the response - // `close` -> response can no longer be written to - nodeRes.on("finish", () => (controller = null)); - nodeRes.on("close", () => controller?.abort()); - - if (nodeReq.method !== "GET" && nodeReq.method !== "HEAD") { - init.body = createReadableStreamFromReadable(nodeReq); - (init as { duplex: "half" }).duplex = "half"; - } - - return new Request(url.href, init); -} - -// Adapted from solid-start's `handleNodeResponse`: -// https://github.com/solidjs/solid-start/blob/7398163869b489cce503c167e284891cf51a6613/packages/start/node/fetch.js#L162-L185 -export async function toNodeRequest(res: Response, nodeRes: ServerResponse) { - nodeRes.statusCode = res.status; - nodeRes.statusMessage = res.statusText; - - let cookiesStrings = []; - - for (let [name, value] of res.headers) { - if (name === "set-cookie") { - cookiesStrings.push(...splitCookiesString(value)); - } else nodeRes.setHeader(name, value); - } - - if (cookiesStrings.length) { - nodeRes.setHeader("set-cookie", cookiesStrings); - } - - if (res.body) { - // https://github.com/microsoft/TypeScript/issues/29867 - let responseBody = res.body as unknown as AsyncIterable; - let readable = Readable.from(responseBody); - readable.pipe(nodeRes); - await once(readable, "end"); - } else { - nodeRes.end(); - } -} - -function invariant(value: any, message?: string) { - if (value === false || value == null) { - throw new Error(message); - } -} diff --git a/packages/superflare-remix/package.json b/packages/superflare-remix/package.json index c11d1ce0..5e964e30 100644 --- a/packages/superflare-remix/package.json +++ b/packages/superflare-remix/package.json @@ -39,8 +39,6 @@ "devDependencies": { "@cloudflare/workers-types": "^4.20250109.0", "@react-router/dev": "^7", - "@react-router/node": "^7", - "@types/set-cookie-parser": "^2.4.10", "react-router": "^7", "tsconfig": "workspace:*", "tsup": "^8.3.5", @@ -50,12 +48,11 @@ }, "peerDependencies": { "@react-router/dev": "^7", - "@react-router/node": "^7", "react-router": "^7", "wrangler": "^3.91.0" }, "dependencies": { - "set-cookie-parser": "^2.7.1", + "@mjackson/node-fetch-server": "^0.6.1", "superflare": "workspace:*" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6714abbd..e01f950a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -65,7 +65,7 @@ importers: version: 5.2.0 isbot: specifier: latest - version: 5.1.21 + version: 5.1.22 js-yaml: specifier: ^4.1.0 version: 4.1.0 @@ -250,7 +250,7 @@ importers: version: 8.10.0(eslint@7.32.0) eslint-config-turbo: specifier: latest - version: 2.3.3(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) @@ -352,9 +352,9 @@ importers: packages/superflare-remix: dependencies: - set-cookie-parser: - specifier: ^2.7.1 - version: 2.7.1 + '@mjackson/node-fetch-server': + specifier: ^0.6.1 + version: 0.6.1 superflare: specifier: workspace:* version: link:../superflare @@ -365,12 +365,6 @@ importers: '@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/node': - specifier: ^7 - version: 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) - '@types/set-cookie-parser': - specifier: ^2.4.10 - version: 2.4.10 react-router: specifier: ^7 version: 7.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -1552,6 +1546,9 @@ packages: '@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==} engines: {node: '>= 8'} @@ -1929,9 +1926,6 @@ packages: '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - '@types/set-cookie-parser@2.4.10': - resolution: {integrity: sha512-GGmQVGpQWUe5qglJozEjZV/5dyxbOOZ0LHe/lqyWssB88Y4svNfst0uqBVscdDeIKl5Jy5+aPSvy7mI9tYRguw==} - '@types/tar-fs@2.0.4': resolution: {integrity: sha512-ipPec0CjTmVDWE+QKr9cTmIIoTl7dFG/yARCM5MqK8i6CNLIG1P8x4kwDsOQY1ChZOZjH0wO9nvfgBvWl4R3kA==} @@ -2507,10 +2501,11 @@ packages: peerDependencies: eslint: '>=7.0.0' - eslint-config-turbo@2.3.3: - resolution: {integrity: sha512-cM9wSBYowQIrjx2MPCzFE6jTnG4vpTPJKZ/O+Ps3CqrmGK/wtNOsY6WHGMwLtKY/nNbgRahAJH6jGVF6k2coOg==} + eslint-config-turbo@2.4.0: + resolution: {integrity: sha512-AiRdy83iwyG4+iMSxXQGUbEClxkGxSlXYH8E2a+0972ao75OWnlDBiiuLMOzDpJubR+QVGC4zonn29AIFCSbFw==} peerDependencies: eslint: '>6.6.0' + turbo: '>2.0.0' eslint-plugin-react@7.31.8: resolution: {integrity: sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw==} @@ -2518,10 +2513,11 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - eslint-plugin-turbo@2.3.3: - resolution: {integrity: sha512-j8UEA0Z+NNCsjZep9G5u5soDQHcXq/x4amrwulk6eHF1U91H2qAjp5I4jQcvJewmccCJbVp734PkHHTRnosjpg==} + 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==} @@ -3011,8 +3007,8 @@ packages: resolution: {integrity: sha512-4X8KZHyaIqXOqEv1qfZOqshMX3r7Q/VtMEMzuGPZljDMEIGpX7bcGODR9gZztXdcPBEJpNioQXXBJun+xi2G5g==} engines: {node: '>=18'} - isbot@5.1.21: - resolution: {integrity: sha512-0q3naRVpENL0ReKHeNcwn/G7BDynp0DqZUckKyFtM9+hmpnPqgm8+8wbjiVZ0XNhq1wPQV28/Pb8Snh5adeUHA==} + isbot@5.1.22: + resolution: {integrity: sha512-RqCFY3cJy3c2y1I+rMn81cfzAR4XJwfPBC+M8kffUjbPzxApzyyv7Tbm1C/gXXq2dSCuD238pKFEWlQMTWsTFw==} engines: {node: '>=18'} isexe@2.0.0: @@ -5559,6 +5555,8 @@ snapshots: '@mjackson/node-fetch-server@0.2.0': {} + '@mjackson/node-fetch-server@0.6.1': {} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -5916,10 +5914,6 @@ snapshots: '@types/semver@7.5.8': {} - '@types/set-cookie-parser@2.4.10': - dependencies: - '@types/node': 18.19.39 - '@types/tar-fs@2.0.4': dependencies: '@types/node': 18.19.39 @@ -6652,10 +6646,11 @@ snapshots: dependencies: eslint: 7.32.0 - eslint-config-turbo@2.3.3(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.3(eslint@7.32.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: @@ -6675,10 +6670,11 @@ snapshots: semver: 6.3.1 string.prototype.matchall: 4.0.11 - eslint-plugin-turbo@2.3.3(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: @@ -7256,7 +7252,7 @@ snapshots: isbot@5.1.14: {} - isbot@5.1.21: {} + isbot@5.1.22: {} isexe@2.0.0: {} From 01f7b77425918525af4930bab2132770449e41b7 Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Thu, 6 Feb 2025 18:24:49 -0800 Subject: [PATCH 26/29] Adopt latest entry.(client|server).tsx examples MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit • update entry.server.tsx based on: https://github.com/remix-run/react-router-templates/blob/main/cloudflare/app/entry.server.tsx • remove entry.client.tsx files (they aren’t in the template examples any more) --- apps/site/app/entry.client.tsx | 17 ----------------- apps/site/app/entry.server.tsx | 22 +++++++++++++++------- examples/remix-cms/app/entry.client.tsx | 18 ------------------ examples/remix-cms/app/entry.server.tsx | 24 ++++++++++++++++-------- templates/remix/app/entry.client.tsx | 18 ------------------ templates/remix/app/entry.server.tsx | 24 ++++++++++++++++-------- 6 files changed, 47 insertions(+), 76 deletions(-) delete mode 100644 apps/site/app/entry.client.tsx delete mode 100644 examples/remix-cms/app/entry.client.tsx delete mode 100644 templates/remix/app/entry.client.tsx diff --git a/apps/site/app/entry.client.tsx b/apps/site/app/entry.client.tsx deleted file mode 100644 index 95da3799..00000000 --- a/apps/site/app/entry.client.tsx +++ /dev/null @@ -1,17 +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 { startTransition, StrictMode } from "react"; -import { hydrateRoot } from "react-dom/client"; -import { HydratedRouter } from "react-router/dom"; - -startTransition(() => { - hydrateRoot( - document, - - - - ); -}); diff --git a/apps/site/app/entry.server.tsx b/apps/site/app/entry.server.tsx index ba4346b4..89d682ad 100644 --- a/apps/site/app/entry.server.tsx +++ b/apps/site/app/entry.server.tsx @@ -16,22 +16,30 @@ export default async function handleRequest( request: Request, responseStatusCode: number, responseHeaders: Headers, - reactRouterContext: EntryContext, - _loadContext: AppLoadContext + routerContext: EntryContext ) { + let shellRendered = false; + const userAgent = request.headers.get("user-agent"); + const body = await renderToReadableStream( - , + , { onError(error: unknown) { - // Log streaming rendering errors from inside the shell - console.error(error); 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); + } }, - 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; } diff --git a/examples/remix-cms/app/entry.client.tsx b/examples/remix-cms/app/entry.client.tsx deleted file mode 100644 index e83e552c..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 { HydratedRouter } from "react-router/dom"; -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 4c44f66c..3acd2d67 100644 --- a/examples/remix-cms/app/entry.server.tsx +++ b/examples/remix-cms/app/entry.server.tsx @@ -6,28 +6,36 @@ export default async function handleRequest( request: Request, responseStatusCode: number, responseHeaders: Headers, - reactRouterContext: 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/entry.client.tsx b/templates/remix/app/entry.client.tsx deleted file mode 100644 index e83e552c..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 { HydratedRouter } from "react-router/dom"; -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 4c149f86..dd9530af 100644 --- a/templates/remix/app/entry.server.tsx +++ b/templates/remix/app/entry.server.tsx @@ -11,28 +11,36 @@ export default async function handleRequest( request: Request, responseStatusCode: number, responseHeaders: Headers, - reactRouterContext: 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, }); } From b32aefbcdd816fd1b548f505098c1e839983467d Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Thu, 20 Mar 2025 08:30:32 -0700 Subject: [PATCH 27/29] Upgrade wrangler dependencies to v4 --- apps/site/package.json | 2 +- examples/remix-cms/package.json | 2 +- packages/superflare-remix/package.json | 4 +- packages/superflare/package.json | 2 +- pnpm-lock.yaml | 762 ++++++++++++------------- templates/remix/package.json | 2 +- 6 files changed, 381 insertions(+), 393 deletions(-) diff --git a/apps/site/package.json b/apps/site/package.json index c21fb27a..d1a7a90a 100644 --- a/apps/site/package.json +++ b/apps/site/package.json @@ -52,6 +52,6 @@ "typescript": "^5", "vite": "^5.3.4", "vite-tsconfig-paths": "^4.3.2", - "wrangler": "^3.91.0" + "wrangler": "^4" } } diff --git a/examples/remix-cms/package.json b/examples/remix-cms/package.json index b898df31..2fe0a35d 100644 --- a/examples/remix-cms/package.json +++ b/examples/remix-cms/package.json @@ -51,7 +51,7 @@ "typescript": "^5", "vite": "^5.3.4", "vite-tsconfig-paths": "^4.3.2", - "wrangler": "^3.91.0" + "wrangler": "^4" }, "engines": { "node": ">=16.13" diff --git a/packages/superflare-remix/package.json b/packages/superflare-remix/package.json index 5e964e30..c1d1230b 100644 --- a/packages/superflare-remix/package.json +++ b/packages/superflare-remix/package.json @@ -44,12 +44,12 @@ "tsup": "^8.3.5", "typescript": "^5", "vite": "^5", - "wrangler": "^3.91.0" + "wrangler": "^4" }, "peerDependencies": { "@react-router/dev": "^7", "react-router": "^7", - "wrangler": "^3.91.0" + "wrangler": "^3.91.0 || ^4" }, "dependencies": { "@mjackson/node-fetch-server": "^0.6.1", diff --git a/packages/superflare/package.json b/packages/superflare/package.json index 6a0d28ec..8e9a8ba2 100644 --- a/packages/superflare/package.json +++ b/packages/superflare/package.json @@ -51,7 +51,7 @@ "pluralize": "^8.0.0", "tar-fs": "^2.1.1", "tiny-invariant": "^1.3.1", - "wrangler": "^3.91.0", + "wrangler": "^4", "yargs": "^17.6.2" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e01f950a..292dec92 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,7 +47,7 @@ importers: 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) + 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@4.2.0(@cloudflare/workers-types@4.20250109.0)))(typescript@5.7.3) '@sindresorhus/slugify': specifier: ^2.1.1 version: 2.2.1 @@ -99,7 +99,7 @@ importers: 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)) + 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@4.2.0(@cloudflare/workers-types@4.20250109.0)) '@types/js-yaml': specifier: ^4.0.5 version: 4.0.9 @@ -137,8 +137,8 @@ importers: specifier: ^4.3.2 version: 4.3.2(typescript@5.7.3)(vite@5.3.4(@types/node@18.19.39)) wrangler: - specifier: ^3.91.0 - version: 3.103.2(@cloudflare/workers-types@4.20250109.0) + specifier: ^4 + version: 4.2.0(@cloudflare/workers-types@4.20250109.0) examples/remix-cms: dependencies: @@ -153,7 +153,7 @@ importers: 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) + 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@4.2.0(@cloudflare/workers-types@4.20250109.0)))(typescript@5.7.3) '@superflare/remix': specifier: workspace:* version: link:../../packages/superflare-remix @@ -199,7 +199,7 @@ importers: version: 7.6.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)) + 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@4.2.0(@cloudflare/workers-types@4.20250109.0)) '@tailwindcss/typography': specifier: ^0.5.9 version: 0.5.13(tailwindcss@3.4.4) @@ -237,8 +237,8 @@ importers: specifier: ^4.3.2 version: 4.3.2(typescript@5.7.3)(vite@5.3.4(@types/node@18.19.39)) wrangler: - specifier: ^3.91.0 - version: 3.103.2(@cloudflare/workers-types@4.20250109.0) + specifier: ^4 + version: 4.2.0(@cloudflare/workers-types@4.20250109.0) packages/eslint-config-custom: dependencies: @@ -298,8 +298,8 @@ importers: specifier: ^1.3.1 version: 1.3.3 wrangler: - specifier: ^3.91.0 - version: 3.103.2(@cloudflare/workers-types@4.20250109.0) + specifier: ^4 + version: 4.2.0(@cloudflare/workers-types@4.20250109.0) yargs: specifier: ^17.6.2 version: 17.7.2 @@ -364,7 +364,7 @@ importers: 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)) + 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@4.2.0(@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) @@ -381,8 +381,8 @@ importers: specifier: ^5 version: 5.3.4(@types/node@18.19.39) wrangler: - specifier: ^3.91.0 - version: 3.103.2(@cloudflare/workers-types@4.20250109.0) + specifier: ^4 + version: 4.2.0(@cloudflare/workers-types@4.20250109.0) packages/tsconfig: {} @@ -393,7 +393,7 @@ importers: 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) + 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@4.2.0(@cloudflare/workers-types@4.20250109.0)))(typescript@5.7.3) '@superflare/remix': specifier: workspace:* version: link:../../packages/superflare-remix @@ -421,7 +421,7 @@ importers: 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)) + 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@4.2.0(@cloudflare/workers-types@4.20250109.0)) '@types/react': specifier: ^18.0.28 version: 18.3.3 @@ -438,8 +438,8 @@ importers: specifier: ^4.3.2 version: 4.3.2(typescript@5.7.3)(vite@5.3.4(@types/node@18.19.39)) wrangler: - specifier: ^3.91.0 - version: 3.103.2(@cloudflare/workers-types@4.20250109.0) + specifier: ^4 + version: 4.2.0(@cloudflare/workers-types@4.20250109.0) packages: @@ -754,36 +754,45 @@ packages: bundledDependencies: - is-unicode-supported - '@cloudflare/kv-asset-handler@0.3.4': - resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==} - engines: {node: '>=16.13'} + '@cloudflare/kv-asset-handler@0.4.0': + resolution: {integrity: sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==} + engines: {node: '>=18.0.0'} + + '@cloudflare/unenv-preset@2.0.2': + resolution: {integrity: sha512-nyzYnlZjjV5xT3LizahG1Iu6mnrCaxglJ04rZLpDwlDVDZ7v46lNsfxhV3A/xtfgQuSHmLnc6SVI+KwBpc3Lwg==} + peerDependencies: + unenv: 2.0.0-rc.14 + workerd: ^1.20250124.0 + peerDependenciesMeta: + workerd: + optional: true - '@cloudflare/workerd-darwin-64@1.20241230.0': - resolution: {integrity: sha512-BZHLg4bbhNQoaY1Uan81O3FV/zcmWueC55juhnaI7NAobiQth9RppadPNpxNAmS9fK2mR5z8xrwMQSQrHmztyQ==} + '@cloudflare/workerd-darwin-64@1.20250317.0': + resolution: {integrity: sha512-ZnpF+MP/azHJ7sUOW9Ut/5pqeijsEOSmRUpONDXImv/DiHgtCd2BA/He11srp8nG2XeWav3jk+Ob84NKrrXXHg==} engines: {node: '>=16'} cpu: [x64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20241230.0': - resolution: {integrity: sha512-lllxycj7EzYoJ0VOJh8M3palUgoonVrILnzGrgsworgWlIpgjfXGS7b41tEGCw6AxSxL9prmTIGtfSPUvn/rjg==} + '@cloudflare/workerd-darwin-arm64@1.20250317.0': + resolution: {integrity: sha512-ypn2/SIK7LAouYx5oB0NNhzb3h+ZdXtDh94VCcsNV81xAVdDXKp6xvTnqY8CWjGfuKWJocbRZVZvU+Lquhuujg==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] - '@cloudflare/workerd-linux-64@1.20241230.0': - resolution: {integrity: sha512-Y3mHcW0KghOmWdNZyHYpEOG4Ba/ga8tht5vj1a+WXfagEjMO8Y98XhZUlCaYa9yB7Wh5jVcK5LM2jlO/BLgqpA==} + '@cloudflare/workerd-linux-64@1.20250317.0': + resolution: {integrity: sha512-KfAHN9VHF2NxGjDjj7udLAatZ72GIg4xmN9r2AZ6N1/hsGDlbn+NbVkSJtWjpXBcCoWYxQqtAdpHyO4eb7nIvQ==} engines: {node: '>=16'} cpu: [x64] os: [linux] - '@cloudflare/workerd-linux-arm64@1.20241230.0': - resolution: {integrity: sha512-IAjhsWPlHzhhkJ6I49sDG6XfMnhPvv0szKGXxTWQK/IWMrbGdHm4RSfNKBSoLQm67jGMIzbmcrX9UIkms27Y1g==} + '@cloudflare/workerd-linux-arm64@1.20250317.0': + resolution: {integrity: sha512-o7a3poQ4vzw553xGudUWm8yGsfdRWSGxqDEdYyuzT5k3z4qjsYMGsZgW9Yw8x3f1SSpPgYpdLlc8IKg9n7eukA==} engines: {node: '>=16'} cpu: [arm64] os: [linux] - '@cloudflare/workerd-windows-64@1.20241230.0': - resolution: {integrity: sha512-y5SPIk9iOb2gz+yWtHxoeMnjPnkYQswiCJ480oHC6zexnJLlKTpcmBCjDH1nWCT4pQi8F25gaH8thgElf4NvXQ==} + '@cloudflare/workerd-windows-64@1.20250317.0': + resolution: {integrity: sha512-tfDSioKY5OKP0nZ7Mkc6bLcwY2fIrROwoq2WjekQ62x91KRbKCJwjkOSvyFJYbshDATK90GutYoblqV80e34jw==} engines: {node: '>=16'} cpu: [x64] os: [win32] @@ -819,15 +828,8 @@ packages: search-insights: optional: true - '@esbuild-plugins/node-globals-polyfill@0.2.3': - resolution: {integrity: sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==} - peerDependencies: - esbuild: '*' - - '@esbuild-plugins/node-modules-polyfill@0.2.2': - resolution: {integrity: sha512-LXV7QsWJxRuMYvKbiznh+U1ilIop3g2TeKRzUxOG5X3YITc8JyyTa90BmLwqqv0YnX4v32CSlG+vsziZp9dMvA==} - peerDependencies: - esbuild: '*' + '@emnapi/runtime@1.3.1': + resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} '@esbuild/aix-ppc64@0.21.5': resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} @@ -841,12 +843,6 @@ packages: 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.18.20': resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} engines: {node: '>=12'} @@ -865,12 +861,6 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm@0.17.19': - resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.18.20': resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} engines: {node: '>=12'} @@ -889,12 +879,6 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-x64@0.17.19': - resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.18.20': resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} engines: {node: '>=12'} @@ -913,12 +897,6 @@ packages: 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.18.20': resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} engines: {node: '>=12'} @@ -937,12 +915,6 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.17.19': - resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.18.20': resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} engines: {node: '>=12'} @@ -961,12 +933,6 @@ packages: 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.18.20': resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} engines: {node: '>=12'} @@ -985,12 +951,6 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.17.19': - resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.18.20': resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} engines: {node: '>=12'} @@ -1009,12 +969,6 @@ packages: 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.18.20': resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} engines: {node: '>=12'} @@ -1033,12 +987,6 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.17.19': - resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.18.20': resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} engines: {node: '>=12'} @@ -1057,12 +1005,6 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.17.19': - resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.18.20': resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} engines: {node: '>=12'} @@ -1081,12 +1023,6 @@ 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] - os: [linux] - '@esbuild/linux-loong64@0.18.20': resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} engines: {node: '>=12'} @@ -1105,12 +1041,6 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.17.19': - resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.18.20': resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} engines: {node: '>=12'} @@ -1129,12 +1059,6 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.17.19': - resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.18.20': resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} engines: {node: '>=12'} @@ -1153,12 +1077,6 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.17.19': - resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.18.20': resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} engines: {node: '>=12'} @@ -1177,12 +1095,6 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.17.19': - resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.18.20': resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} engines: {node: '>=12'} @@ -1201,12 +1113,6 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.17.19': - resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.18.20': resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} engines: {node: '>=12'} @@ -1231,12 +1137,6 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.17.19': - resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.18.20': resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} engines: {node: '>=12'} @@ -1261,12 +1161,6 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.17.19': - resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.18.20': resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} engines: {node: '>=12'} @@ -1285,12 +1179,6 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.17.19': - resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.18.20': resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} engines: {node: '>=12'} @@ -1309,12 +1197,6 @@ packages: 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.18.20': resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} engines: {node: '>=12'} @@ -1333,12 +1215,6 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.17.19': - resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.18.20': resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} engines: {node: '>=12'} @@ -1357,12 +1233,6 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.17.19': - resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.18.20': resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} engines: {node: '>=12'} @@ -1480,6 +1350,111 @@ packages: '@iarna/toml@2.2.5': resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} + '@img/sharp-darwin-arm64@0.33.5': + resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + + '@img/sharp-darwin-x64@0.33.5': + resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-darwin-arm64@1.0.4': + resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.0.4': + resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-linux-arm64@1.0.4': + resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linux-arm@1.0.5': + resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} + cpu: [arm] + os: [linux] + + '@img/sharp-libvips-linux-s390x@1.0.4': + resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} + cpu: [s390x] + os: [linux] + + '@img/sharp-libvips-linux-x64@1.0.4': + resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} + cpu: [x64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} + cpu: [x64] + os: [linux] + + '@img/sharp-linux-arm64@0.33.5': + resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linux-arm@0.33.5': + resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + + '@img/sharp-linux-s390x@0.33.5': + resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + + '@img/sharp-linux-x64@0.33.5': + resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-linuxmusl-arm64@0.33.5': + resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linuxmusl-x64@0.33.5': + resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-wasm32@0.33.5': + resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + + '@img/sharp-win32-ia32@0.33.5': + resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.33.5': + resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -1961,6 +1936,10 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} + acorn-walk@8.3.3: resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} engines: {node: '>=0.4.0'} @@ -2167,9 +2146,6 @@ packages: caniuse-lite@1.0.30001641: resolution: {integrity: sha512-Phv5thgl67bHYo1TtMY/MurjkHhV4EDaCosezRXgZ8jzA/Ub+wjxAvbGvjoFENStinwi5kCyOYV3mi5tOGykwA==} - capnp-ts@0.7.0: - resolution: {integrity: sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==} - chai@4.4.1: resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} engines: {node: '>=4'} @@ -2239,6 +2215,13 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + + color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} @@ -2459,11 +2442,6 @@ packages: peerDependencies: esbuild: '>=0.12 <1' - esbuild@0.17.19: - resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} - engines: {node: '>=12'} - hasBin: true - esbuild@0.18.20: resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} engines: {node: '>=12'} @@ -2596,9 +2574,6 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} - estree-walker@0.6.1: - resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} - esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -2615,6 +2590,9 @@ packages: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} + exsolve@1.0.4: + resolution: {integrity: sha512-xsZH6PXaER4XoV+NiT7JHp1bJodJVT+cxeSH1G0f0tlT0lJqYuHUP3bUx2HtfTDvOagMINYp8rsqusxud3RXhw==} + extendable-error@0.1.7: resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} @@ -2896,6 +2874,9 @@ packages: resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} engines: {node: '>= 0.4'} + is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} @@ -3163,9 +3144,6 @@ packages: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} - magic-string@0.25.9: - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - marked@4.3.0: resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==} engines: {node: '>= 12'} @@ -3199,9 +3177,9 @@ packages: resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} hasBin: true - miniflare@3.20241230.2: - resolution: {integrity: sha512-gFC3IaUKrLGdtA6y6PLpC/QE5YAjB5ITCfBZHkosRyFZ9ApaCHKcHRvrEFMc/R19QxxtHD+G3tExEHp7MmtsYQ==} - engines: {node: '>=16.13'} + miniflare@4.20250317.1: + resolution: {integrity: sha512-FFReRGco05fkgAB/x9VmxTuQ3KXW4JcpKkpuMZJn+JoZ2dd8hY5J1W9HBI4tSwfQ+hVyd9X7oXbn4BimoD3i8A==} + engines: {node: '>=18.0.0'} hasBin: true minimatch@3.1.2: @@ -3336,8 +3314,8 @@ packages: resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} engines: {node: '>= 0.4'} - ohash@1.1.4: - resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} + ohash@2.0.11: + resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -3438,6 +3416,9 @@ packages: pathe@2.0.2: resolution: {integrity: sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==} + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} @@ -3747,16 +3728,6 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rollup-plugin-inject@3.0.2: - resolution: {integrity: sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==} - deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject. - - rollup-plugin-node-polyfills@0.2.1: - resolution: {integrity: sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==} - - rollup-pluginutils@2.8.2: - resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} - rollup@3.29.4: resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} @@ -3810,6 +3781,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.7.1: + resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} + engines: {node: '>=10'} + hasBin: true + set-cookie-parser@2.6.0: resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} @@ -3824,6 +3800,10 @@ packages: resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} engines: {node: '>= 0.4'} + sharp@0.33.5: + resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + shebang-command@1.2.0: resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} engines: {node: '>=0.10.0'} @@ -3863,6 +3843,9 @@ packages: simple-get@4.0.1: resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} @@ -3893,10 +3876,6 @@ packages: resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} engines: {node: '>= 8'} - sourcemap-codec@1.4.8: - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - deprecated: Please use @jridgewell/sourcemap-codec instead - spawn-command@0.0.2: resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==} @@ -4221,16 +4200,16 @@ packages: resolution: {integrity: sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==} engines: {node: '>=14.0'} - undici@5.28.4: - resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} + undici@5.29.0: + resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} engines: {node: '>=14.0'} undici@6.19.2: resolution: {integrity: sha512-JfjKqIauur3Q6biAtHJ564e3bWa8VvT+7cSiOJHFbX4Erv6CLGDpg8z+Fmg/1OI/47RA+GI2QZaF48SSaLvyBA==} engines: {node: '>=18.17'} - unenv-nightly@2.0.0-20250109-100802-88ad671: - resolution: {integrity: sha512-Uij6gODNNNNsNBoDlnaMvZI99I6YlVJLRfYH8AOLMlbFrW7k2w872v9VLuIdch2vF8QBeSC4EftIh5sG4ibzdA==} + unenv@2.0.0-rc.14: + resolution: {integrity: sha512-od496pShMen7nOy5VmVJCnq8rptd45vh6Nx/r2iPbrba6pa6p+tS2ywuIHRZ/OBvSbQZB0kWvpO9XBNVFXHD3Q==} universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} @@ -4413,17 +4392,17 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - workerd@1.20241230.0: - resolution: {integrity: sha512-EgixXP0JGXGq6J9lz17TKIZtfNDUvJNG+cl9paPMfZuYWT920fFpBx+K04YmnbQRLnglsivF1GT9pxh1yrlWhg==} + workerd@1.20250317.0: + resolution: {integrity: sha512-m+aqA4RS/jsIaml0KuTi96UBlkx1vC0mcLClGKPFNPiMStK75hVQxUhupXEMI4knHtb/vgNQyPFMKAJtxW5c6w==} engines: {node: '>=16'} hasBin: true - wrangler@3.103.2: - resolution: {integrity: sha512-eYcnubPhPBU1QMZYTam+vfCLpaQx+x1EWA6nFbLhid1eqNDAk1dNwNlbo+ZryrOHDEX3XlOxn2Z3Fx8vVv3hKw==} - engines: {node: '>=16.17.0'} + wrangler@4.2.0: + resolution: {integrity: sha512-wY+jq6tsaBVrxCesJ9NF9R63T+96W6Ht9xEkAdw9JnkstUWM6lGywMOeupYP8Ji8x4roNa98XrT0Gw8qu+QRNQ==} + engines: {node: '>=18.0.0'} hasBin: true peerDependencies: - '@cloudflare/workers-types': ^4.20241230.0 + '@cloudflare/workers-types': ^4.20250317.0 peerDependenciesMeta: '@cloudflare/workers-types': optional: true @@ -4486,11 +4465,11 @@ packages: resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} engines: {node: '>=12.20'} - youch@3.3.3: - resolution: {integrity: sha512-qSFXUk3UZBLfggAW3dJKg0BMblG5biqSF8M34E06o5CSsZtH92u9Hqmj2RzGiHDi64fhe83+4tENFP2DB6t6ZA==} + youch@3.2.3: + resolution: {integrity: sha512-ZBcWz/uzZaQVdCvfV4uk616Bbpf2ee+F/AvuKDR5EwX/Y4v06xWdtMluqTD7+KlZdM93lLm9gMZYo0sKBS0pgw==} - zod@3.23.8: - resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + zod@3.22.3: + resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==} snapshots: @@ -5013,23 +4992,29 @@ snapshots: picocolors: 1.0.1 sisteransi: 1.0.5 - '@cloudflare/kv-asset-handler@0.3.4': + '@cloudflare/kv-asset-handler@0.4.0': dependencies: mime: 3.0.0 - '@cloudflare/workerd-darwin-64@1.20241230.0': + '@cloudflare/unenv-preset@2.0.2(unenv@2.0.0-rc.14)(workerd@1.20250317.0)': + dependencies: + unenv: 2.0.0-rc.14 + optionalDependencies: + workerd: 1.20250317.0 + + '@cloudflare/workerd-darwin-64@1.20250317.0': optional: true - '@cloudflare/workerd-darwin-arm64@1.20241230.0': + '@cloudflare/workerd-darwin-arm64@1.20250317.0': optional: true - '@cloudflare/workerd-linux-64@1.20241230.0': + '@cloudflare/workerd-linux-64@1.20250317.0': optional: true - '@cloudflare/workerd-linux-arm64@1.20241230.0': + '@cloudflare/workerd-linux-arm64@1.20250317.0': optional: true - '@cloudflare/workerd-windows-64@1.20241230.0': + '@cloudflare/workerd-windows-64@1.20250317.0': optional: true '@cloudflare/workers-types@4.20250109.0': {} @@ -5057,15 +5042,10 @@ snapshots: transitivePeerDependencies: - '@algolia/client-search' - '@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.17.19)': + '@emnapi/runtime@1.3.1': dependencies: - esbuild: 0.17.19 - - '@esbuild-plugins/node-modules-polyfill@0.2.2(esbuild@0.17.19)': - dependencies: - esbuild: 0.17.19 - escape-string-regexp: 4.0.0 - rollup-plugin-node-polyfills: 0.2.1 + tslib: 2.6.3 + optional: true '@esbuild/aix-ppc64@0.21.5': optional: true @@ -5073,9 +5053,6 @@ snapshots: '@esbuild/aix-ppc64@0.24.2': optional: true - '@esbuild/android-arm64@0.17.19': - optional: true - '@esbuild/android-arm64@0.18.20': optional: true @@ -5085,9 +5062,6 @@ snapshots: '@esbuild/android-arm64@0.24.2': optional: true - '@esbuild/android-arm@0.17.19': - optional: true - '@esbuild/android-arm@0.18.20': optional: true @@ -5097,9 +5071,6 @@ snapshots: '@esbuild/android-arm@0.24.2': optional: true - '@esbuild/android-x64@0.17.19': - optional: true - '@esbuild/android-x64@0.18.20': optional: true @@ -5109,9 +5080,6 @@ snapshots: '@esbuild/android-x64@0.24.2': optional: true - '@esbuild/darwin-arm64@0.17.19': - optional: true - '@esbuild/darwin-arm64@0.18.20': optional: true @@ -5121,9 +5089,6 @@ snapshots: '@esbuild/darwin-arm64@0.24.2': optional: true - '@esbuild/darwin-x64@0.17.19': - optional: true - '@esbuild/darwin-x64@0.18.20': optional: true @@ -5133,9 +5098,6 @@ snapshots: '@esbuild/darwin-x64@0.24.2': optional: true - '@esbuild/freebsd-arm64@0.17.19': - optional: true - '@esbuild/freebsd-arm64@0.18.20': optional: true @@ -5145,9 +5107,6 @@ snapshots: '@esbuild/freebsd-arm64@0.24.2': optional: true - '@esbuild/freebsd-x64@0.17.19': - optional: true - '@esbuild/freebsd-x64@0.18.20': optional: true @@ -5157,9 +5116,6 @@ snapshots: '@esbuild/freebsd-x64@0.24.2': optional: true - '@esbuild/linux-arm64@0.17.19': - optional: true - '@esbuild/linux-arm64@0.18.20': optional: true @@ -5169,9 +5125,6 @@ snapshots: '@esbuild/linux-arm64@0.24.2': optional: true - '@esbuild/linux-arm@0.17.19': - optional: true - '@esbuild/linux-arm@0.18.20': optional: true @@ -5181,9 +5134,6 @@ snapshots: '@esbuild/linux-arm@0.24.2': optional: true - '@esbuild/linux-ia32@0.17.19': - optional: true - '@esbuild/linux-ia32@0.18.20': optional: true @@ -5193,9 +5143,6 @@ snapshots: '@esbuild/linux-ia32@0.24.2': optional: true - '@esbuild/linux-loong64@0.17.19': - optional: true - '@esbuild/linux-loong64@0.18.20': optional: true @@ -5205,9 +5152,6 @@ snapshots: '@esbuild/linux-loong64@0.24.2': optional: true - '@esbuild/linux-mips64el@0.17.19': - optional: true - '@esbuild/linux-mips64el@0.18.20': optional: true @@ -5217,9 +5161,6 @@ snapshots: '@esbuild/linux-mips64el@0.24.2': optional: true - '@esbuild/linux-ppc64@0.17.19': - optional: true - '@esbuild/linux-ppc64@0.18.20': optional: true @@ -5229,9 +5170,6 @@ snapshots: '@esbuild/linux-ppc64@0.24.2': optional: true - '@esbuild/linux-riscv64@0.17.19': - optional: true - '@esbuild/linux-riscv64@0.18.20': optional: true @@ -5241,9 +5179,6 @@ snapshots: '@esbuild/linux-riscv64@0.24.2': optional: true - '@esbuild/linux-s390x@0.17.19': - optional: true - '@esbuild/linux-s390x@0.18.20': optional: true @@ -5253,9 +5188,6 @@ snapshots: '@esbuild/linux-s390x@0.24.2': optional: true - '@esbuild/linux-x64@0.17.19': - optional: true - '@esbuild/linux-x64@0.18.20': optional: true @@ -5268,9 +5200,6 @@ snapshots: '@esbuild/netbsd-arm64@0.24.2': optional: true - '@esbuild/netbsd-x64@0.17.19': - optional: true - '@esbuild/netbsd-x64@0.18.20': optional: true @@ -5283,9 +5212,6 @@ snapshots: '@esbuild/openbsd-arm64@0.24.2': optional: true - '@esbuild/openbsd-x64@0.17.19': - optional: true - '@esbuild/openbsd-x64@0.18.20': optional: true @@ -5295,9 +5221,6 @@ snapshots: '@esbuild/openbsd-x64@0.24.2': optional: true - '@esbuild/sunos-x64@0.17.19': - optional: true - '@esbuild/sunos-x64@0.18.20': optional: true @@ -5307,9 +5230,6 @@ snapshots: '@esbuild/sunos-x64@0.24.2': optional: true - '@esbuild/win32-arm64@0.17.19': - optional: true - '@esbuild/win32-arm64@0.18.20': optional: true @@ -5319,9 +5239,6 @@ snapshots: '@esbuild/win32-arm64@0.24.2': optional: true - '@esbuild/win32-ia32@0.17.19': - optional: true - '@esbuild/win32-ia32@0.18.20': optional: true @@ -5331,9 +5248,6 @@ snapshots: '@esbuild/win32-ia32@0.24.2': optional: true - '@esbuild/win32-x64@0.17.19': - optional: true - '@esbuild/win32-x64@0.18.20': optional: true @@ -5467,6 +5381,81 @@ snapshots: '@iarna/toml@2.2.5': {} + '@img/sharp-darwin-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.0.4 + optional: true + + '@img/sharp-darwin-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.0.4 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-darwin-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm@1.0.5': + optional: true + + '@img/sharp-libvips-linux-s390x@1.0.4': + optional: true + + '@img/sharp-libvips-linux-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + optional: true + + '@img/sharp-linux-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.0.4 + optional: true + + '@img/sharp-linux-arm@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.0.5 + optional: true + + '@img/sharp-linux-s390x@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.0.4 + optional: true + + '@img/sharp-linux-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + optional: true + + '@img/sharp-wasm32@0.33.5': + dependencies: + '@emnapi/runtime': 1.3.1 + optional: true + + '@img/sharp-win32-ia32@0.33.5': + optional: true + + '@img/sharp-win32-x64@0.33.5': + optional: true + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -5640,7 +5629,7 @@ snapshots: optionalDependencies: typescript: 5.7.3 - '@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))': + '@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@4.2.0(@cloudflare/workers-types@4.20250109.0))': dependencies: '@babel/core': 7.24.8 '@babel/generator': 7.24.8 @@ -5675,7 +5664,7 @@ snapshots: 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) + wrangler: 4.2.0(@cloudflare/workers-types@4.20250109.0) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -5688,9 +5677,9 @@ snapshots: - supports-color - terser - '@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)': + '@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@4.2.0(@cloudflare/workers-types@4.20250109.0)))(typescript@5.7.3)': dependencies: - '@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)) + '@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@4.2.0(@cloudflare/workers-types@4.20250109.0)) minimatch: 9.0.5 optionalDependencies: typescript: 5.7.3 @@ -5965,6 +5954,8 @@ snapshots: dependencies: acorn: 8.12.1 + acorn-walk@8.3.2: {} + acorn-walk@8.3.3: dependencies: acorn: 8.12.1 @@ -6199,13 +6190,6 @@ snapshots: caniuse-lite@1.0.30001641: {} - capnp-ts@0.7.0: - dependencies: - debug: 4.4.0 - tslib: 2.6.3 - transitivePeerDependencies: - - supports-color - chai@4.4.1: dependencies: assertion-error: 1.1.0 @@ -6288,6 +6272,18 @@ snapshots: color-name@1.1.4: {} + color-string@1.9.1: + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + optional: true + + color@4.2.3: + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + optional: true + commander@4.1.1: {} concat-map@0.0.1: {} @@ -6530,31 +6526,6 @@ snapshots: transitivePeerDependencies: - supports-color - esbuild@0.17.19: - optionalDependencies: - '@esbuild/android-arm': 0.17.19 - '@esbuild/android-arm64': 0.17.19 - '@esbuild/android-x64': 0.17.19 - '@esbuild/darwin-arm64': 0.17.19 - '@esbuild/darwin-x64': 0.17.19 - '@esbuild/freebsd-arm64': 0.17.19 - '@esbuild/freebsd-x64': 0.17.19 - '@esbuild/linux-arm': 0.17.19 - '@esbuild/linux-arm64': 0.17.19 - '@esbuild/linux-ia32': 0.17.19 - '@esbuild/linux-loong64': 0.17.19 - '@esbuild/linux-mips64el': 0.17.19 - '@esbuild/linux-ppc64': 0.17.19 - '@esbuild/linux-riscv64': 0.17.19 - '@esbuild/linux-s390x': 0.17.19 - '@esbuild/linux-x64': 0.17.19 - '@esbuild/netbsd-x64': 0.17.19 - '@esbuild/openbsd-x64': 0.17.19 - '@esbuild/sunos-x64': 0.17.19 - '@esbuild/win32-arm64': 0.17.19 - '@esbuild/win32-ia32': 0.17.19 - '@esbuild/win32-x64': 0.17.19 - esbuild@0.18.20: optionalDependencies: '@esbuild/android-arm': 0.18.20 @@ -6859,8 +6830,6 @@ snapshots: estraverse@5.3.0: {} - estree-walker@0.6.1: {} - esutils@2.0.3: {} execa@6.1.0: @@ -6879,6 +6848,8 @@ snapshots: expand-template@2.0.3: {} + exsolve@1.0.4: {} + extendable-error@0.1.7: {} external-editor@3.1.0: @@ -7162,6 +7133,9 @@ snapshots: call-bind: 1.0.7 get-intrinsic: 1.2.4 + is-arrayish@0.3.2: + optional: true + is-bigint@1.0.4: dependencies: has-bigints: 1.0.2 @@ -7383,10 +7357,6 @@ snapshots: lru-cache@7.18.3: {} - magic-string@0.25.9: - dependencies: - sourcemap-codec: 1.4.8 - marked@4.3.0: {} merge-stream@2.0.0: {} @@ -7406,23 +7376,21 @@ snapshots: mini-svg-data-uri@1.4.4: {} - miniflare@3.20241230.2: + miniflare@4.20250317.1: dependencies: '@cspotcode/source-map-support': 0.8.1 acorn: 8.14.0 - acorn-walk: 8.3.3 - capnp-ts: 0.7.0 + acorn-walk: 8.3.2 exit-hook: 2.2.1 glob-to-regexp: 0.4.1 stoppable: 1.1.0 - undici: 5.28.4 - workerd: 1.20241230.0 + undici: 5.29.0 + workerd: 1.20250317.0 ws: 8.18.0 - youch: 3.3.3 - zod: 3.23.8 + youch: 3.2.3 + zod: 3.22.3 transitivePeerDependencies: - bufferutil - - supports-color - utf-8-validate minimatch@3.1.2: @@ -7563,7 +7531,7 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.0.0 - ohash@1.1.4: {} + ohash@2.0.11: {} once@1.4.0: dependencies: @@ -7647,6 +7615,8 @@ snapshots: pathe@2.0.2: {} + pathe@2.0.3: {} + pathval@1.1.1: {} peek-stream@1.1.3: @@ -7941,20 +7911,6 @@ snapshots: dependencies: glob: 7.2.3 - rollup-plugin-inject@3.0.2: - dependencies: - estree-walker: 0.6.1 - magic-string: 0.25.9 - rollup-pluginutils: 2.8.2 - - rollup-plugin-node-polyfills@0.2.1: - dependencies: - rollup-plugin-inject: 3.0.2 - - rollup-pluginutils@2.8.2: - dependencies: - estree-walker: 0.6.1 - rollup@3.29.4: optionalDependencies: fsevents: 2.3.3 @@ -8043,6 +7999,9 @@ snapshots: semver@7.6.2: {} + semver@7.7.1: + optional: true + set-cookie-parser@2.6.0: {} set-cookie-parser@2.7.1: {} @@ -8063,6 +8022,33 @@ snapshots: functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 + sharp@0.33.5: + dependencies: + color: 4.2.3 + detect-libc: 2.0.3 + semver: 7.7.1 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.33.5 + '@img/sharp-darwin-x64': 0.33.5 + '@img/sharp-libvips-darwin-arm64': 1.0.4 + '@img/sharp-libvips-darwin-x64': 1.0.4 + '@img/sharp-libvips-linux-arm': 1.0.5 + '@img/sharp-libvips-linux-arm64': 1.0.4 + '@img/sharp-libvips-linux-s390x': 1.0.4 + '@img/sharp-libvips-linux-x64': 1.0.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + '@img/sharp-linux-arm': 0.33.5 + '@img/sharp-linux-arm64': 0.33.5 + '@img/sharp-linux-s390x': 0.33.5 + '@img/sharp-linux-x64': 0.33.5 + '@img/sharp-linuxmusl-arm64': 0.33.5 + '@img/sharp-linuxmusl-x64': 0.33.5 + '@img/sharp-wasm32': 0.33.5 + '@img/sharp-win32-ia32': 0.33.5 + '@img/sharp-win32-x64': 0.33.5 + optional: true + shebang-command@1.2.0: dependencies: shebang-regex: 1.0.0 @@ -8098,6 +8084,11 @@ snapshots: once: 1.4.0 simple-concat: 1.0.1 + simple-swizzle@0.2.2: + dependencies: + is-arrayish: 0.3.2 + optional: true + sisteransi@1.0.5: {} slash@3.0.0: {} @@ -8126,8 +8117,6 @@ snapshots: dependencies: whatwg-url: 7.1.0 - sourcemap-codec@1.4.8: {} - spawn-command@0.0.2: {} spawndamnit@2.0.0: @@ -8497,18 +8486,18 @@ snapshots: dependencies: '@fastify/busboy': 2.1.1 - undici@5.28.4: + undici@5.29.0: dependencies: '@fastify/busboy': 2.1.1 undici@6.19.2: {} - unenv-nightly@2.0.0-20250109-100802-88ad671: + unenv@2.0.0-rc.14: dependencies: defu: 6.1.4 - mlly: 1.7.4 - ohash: 1.1.4 - pathe: 1.1.2 + exsolve: 1.0.4 + ohash: 2.0.11 + pathe: 2.0.3 ufo: 1.5.4 universalify@0.1.2: {} @@ -8695,31 +8684,30 @@ snapshots: word-wrap@1.2.5: {} - workerd@1.20241230.0: + workerd@1.20250317.0: optionalDependencies: - '@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 + '@cloudflare/workerd-darwin-64': 1.20250317.0 + '@cloudflare/workerd-darwin-arm64': 1.20250317.0 + '@cloudflare/workerd-linux-64': 1.20250317.0 + '@cloudflare/workerd-linux-arm64': 1.20250317.0 + '@cloudflare/workerd-windows-64': 1.20250317.0 - wrangler@3.103.2(@cloudflare/workers-types@4.20250109.0): + wrangler@4.2.0(@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) + '@cloudflare/kv-asset-handler': 0.4.0 + '@cloudflare/unenv-preset': 2.0.2(unenv@2.0.0-rc.14)(workerd@1.20250317.0) blake3-wasm: 2.1.5 - esbuild: 0.17.19 - miniflare: 3.20241230.2 + esbuild: 0.24.2 + miniflare: 4.20250317.1 path-to-regexp: 6.3.0 - unenv: unenv-nightly@2.0.0-20250109-100802-88ad671 - workerd: 1.20241230.0 + unenv: 2.0.0-rc.14 + workerd: 1.20250317.0 optionalDependencies: '@cloudflare/workers-types': 4.20250109.0 fsevents: 2.3.3 + sharp: 0.33.5 transitivePeerDependencies: - bufferutil - - supports-color - utf-8-validate wrap-ansi@7.0.0: @@ -8764,10 +8752,10 @@ snapshots: yocto-queue@1.1.1: {} - youch@3.3.3: + youch@3.2.3: dependencies: cookie: 0.5.0 mustache: 4.2.0 stacktracey: 2.1.8 - zod@3.23.8: {} + zod@3.22.3: {} diff --git a/templates/remix/package.json b/templates/remix/package.json index bd3674c8..dd5e4921 100644 --- a/templates/remix/package.json +++ b/templates/remix/package.json @@ -34,7 +34,7 @@ "typescript": "^5", "vite": "^5.3.4", "vite-tsconfig-paths": "^4.3.2", - "wrangler": "^3.91.0" + "wrangler": "^4" }, "engines": { "node": ">=16.13" From 0fb4273b9ef73ac9f7cda58858a0c3b3bb9f8d18 Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Thu, 20 Mar 2025 08:31:16 -0700 Subject: [PATCH 28/29] Add wrangler.json $schema + required database_name --- apps/site/wrangler.json | 1 + examples/remix-cms/wrangler.json | 2 ++ templates/remix/wrangler.json | 1 + 3 files changed, 4 insertions(+) diff --git a/apps/site/wrangler.json b/apps/site/wrangler.json index fba33fb3..ce80e685 100644 --- a/apps/site/wrangler.json +++ b/apps/site/wrangler.json @@ -1,4 +1,5 @@ { + "$schema": "https://unpkg.com/wrangler@latest/config-schema.json", "name": "superflare-site", "main": "./worker.ts", "compatibility_date": "2024-09-25", diff --git a/examples/remix-cms/wrangler.json b/examples/remix-cms/wrangler.json index acc9ef8f..667f985c 100644 --- a/examples/remix-cms/wrangler.json +++ b/examples/remix-cms/wrangler.json @@ -1,4 +1,5 @@ { + "$schema": "https://unpkg.com/wrangler@latest/config-schema.json", "name": "remix-cms", "compatibility_flags": ["nodejs_compat"], "main": "./worker.ts", @@ -15,6 +16,7 @@ "d1_databases": [ { "binding": "DB", + "database_name": "remix-cms", "database_id": "f6ea5020-02e4-4926-a499-657afebdf67d" } ], diff --git a/templates/remix/wrangler.json b/templates/remix/wrangler.json index 7329635d..13eee9ba 100644 --- a/templates/remix/wrangler.json +++ b/templates/remix/wrangler.json @@ -1,4 +1,5 @@ { + "$schema": "https://unpkg.com/wrangler@latest/config-schema.json", "name": "remix-cms", "compatibility_flags": ["nodejs_compat"], "main": "./worker.ts", From 9025e415a1ee14fbb54a8c2784f166b1f0cb4f00 Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Thu, 20 Mar 2025 08:33:06 -0700 Subject: [PATCH 29/29] Filter all internal cloudflare D1 tables (_cf_*) new versions of wrangler include a new _cf_METADATA table that needs to be filtered out alongside _cf_KV, which i extrapolate to mean that any internal cloudflare tables introduced in the future will start with the _cf_ prefix --- packages/superflare/cli/d1-types.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/superflare/cli/d1-types.ts b/packages/superflare/cli/d1-types.ts index f75feaad..257e2234 100644 --- a/packages/superflare/cli/d1-types.ts +++ b/packages/superflare/cli/d1-types.ts @@ -50,7 +50,7 @@ interface ModelWithSuperflareTypes { } const isSqliteTable = (table: string) => - table === "_cf_KV" || table.startsWith("sqlite_"); + /^_cf_/.test(table) || table.startsWith("sqlite_"); export async function getD1DatabaseTables({ db,